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( + _ 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_rem( + _ arg0: T, + _ arg1: T, + result: T, + status: inout DecimalStatus + ) -> T { + // NaN(…) % SNaN(payload) = NaN(payload) + if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) { + return d + } + + if result.isNaN { + return result + } + + if let r = self.toSpeleotrove_rem_whenQuotientIsNotRepresentable( + arg0, + arg1, + status: &status + ) { + return r + } + + return result + } + + func toSpeleotrove_rem_whenQuotientIsNotRepresentable( + _ arg0: T, + _ arg1: T, + status: inout DecimalStatus + ) -> T? { + // https://speleotrove.com/decimal/daops.html#refremain + // https://speleotrove.com/decimal/daops.html#refremnear + // This operation will fail under the same conditions as integer division + // (that is, if integer division on the same two operands would fail, the + // remainder cannot be calculated), except when the quotient is very close + // to 10 raised to the power of the precision.[10] + // + // In plain words: + // Swift: the remainder is always returned even if the result of the integer + // division (quotient) is not representable in a given format. + // Speleotrove: if the result of the division (quotient) is not representable + // in a given format (overflow) then 'nan' is returned with + // 'invalidOperation' flag raised. + let r = self.divideInt(arg0, by: arg1, rounding: .toNearestOrAwayFromZero) + + if r.isNaN { + status.set(.isInvalidOperation) + return T.nan + } + + return nil + } + + /// result = (arg0 * arg1) + arg2 + func toSpeleotrove_fma( + _ arg0: T, + _ arg1: T, + _ arg2: T, + result: T + ) -> T { + // NaN or NaNaN or NaNaNaN? + var nanCount = 0 + + if arg0.isNaN { nanCount += 1 } + if arg1.isNaN { nanCount += 1 } + if arg2.isNaN { nanCount += 1 } + + // Single NaN should be handled by the module. + if nanCount >= 2 { + if arg0.isSignalingNaN { return self.removeSignalingBit(arg0) } + if arg1.isSignalingNaN { return self.removeSignalingBit(arg1) } + if arg2.isSignalingNaN { return self.removeSignalingBit(arg2) } + + return arg0.isNaN ? arg0 : arg1 + } + + return result + } + + // MARK: - Min, max + + func toSpeleotrove_min( + _ arg0: T, + _ arg1: T, + result: T + ) -> T { + // min(NaN(…), SNaN(payload)) = NaN(payload) + if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) { + return d + } + + // https://speleotrove.com/decimal/daops.html#refmin + // Otherwise (they are numerically equal): + // - if the operand signs differ the operand with sign 1 is chosen + // - if the signs and exponents are equal the operands are identical so either can be chosen + // - if the signs are both positive, the operand with the minimum exponent is chosen + // - if the signs are both negative, the operand with the maximum exponent is chosen. + + // If equal and we returned 'lhs'. + if arg0.isEqual(to: arg1) && result.isFinite && result.bid == arg0.bid { + if arg0.bid == arg1.bid { + return result + } + + if arg0.sign != arg1.sign { + return arg0.sign == .minus ? arg0 : arg1 + } + + let unpack0 = arg0._unpackFiniteOrZero() + let unpack1 = arg1._unpackFiniteOrZero() + + if arg0.sign == .plus { + return unpack0.exponent < unpack1.exponent ? arg0 : arg1 + } + + return unpack0.exponent > unpack1.exponent ? arg0 : arg1 + } + + return result + } + + func toSpeleotrove_max( + _ arg0: T, + _ arg1: T, + result: T + ) -> T { + // max(NaN(…), SNaN(payload)) = NaN(payload) + if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) { + return d + } + + // https://speleotrove.com/decimal/daops.html#refmax + // Otherwise (they are numerically equal): + // - if the operand signs differ the operand with sign 0 is chosen + // - if the signs and exponents are equal the operands are identical so either can be chosen + // - if the signs are both positive, the operand with the maximum exponent is chosen + // - if the signs are both negative, the operand with the minimum exponent is chosen. + + // If equal and we returned 'lhs'. + if arg0.isEqual(to: arg1) && result.isFinite && result.bid == arg0.bid { + if arg0.bid == arg1.bid { + return result + } + + if arg0.sign != arg1.sign { + return arg0.sign == .plus ? arg0 : arg1 + } + + let unpack0 = arg0._unpackFiniteOrZero() + let unpack1 = arg1._unpackFiniteOrZero() + + if arg0.sign == .plus { + return unpack0.exponent > unpack1.exponent ? arg0 : arg1 + } + + return unpack0.exponent < unpack1.exponent ? arg0 : arg1 + } + + return result + } + + // MARK: - Quant + + func toSpeleotrove_quantize( + _ arg0: T, + _ arg1: T, + result: T + ) -> T { + if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) { + return d + } + + return result + } + + // MARK: - Helpers + + /// `NaN(…) + SNaN(payload) = NaN(payload)` + /// + /// Snake case for readability. + private func nan_op_snan_is_snan( + _ arg0: T, + _ arg1: T, + result: T + ) -> T? { + if arg0.isQuietNaN && arg1.isSignalingNaN && result.bid == arg0.bid { + let payload = arg1._unpackNaN() + if payload.canonical != 0 { + return self.removeSignalingBit(arg1) + } + } + + return nil + } +} diff --git a/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Parse.swift b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Parse.swift new file mode 100644 index 0000000..4f538f6 --- /dev/null +++ b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Parse.swift @@ -0,0 +1,51 @@ +import XCTest +@testable import Decimal + +extension SpeleotroveMixin { + + func parseDecimal32(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal32? { + var status = DecimalStatus() + return self.parseDecimal(s, status: &status, file, line) + } + + func parseDecimal64(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal64? { + var status = DecimalStatus() + return self.parseDecimal(s, status: &status, file, line) + } + + func parseDecimal128(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal128? { + var status = DecimalStatus() + return self.parseDecimal(s, status: &status, file, line) + } + + func parseDecimal( + _ s: String, + status: inout DecimalStatus, + _ file: StaticString, + _ line: UInt + ) -> T? { + return self.parseDecimal(s, rounding: .towardZero, status: &status, file, line) + } + + func parseDecimal( + _ s: String, + rounding: DecimalFloatingPointRoundingRule, + status: inout DecimalStatus, + _ file: StaticString, + _ line: UInt + ) -> T? { + if s.starts(with: "#") { + let sub = s.dropFirst() + if let bid = T.BitPattern(sub, radix: 16) { + return T(decimalEncoding: bid) + } + } + + if let d = T(s, rounding: .towardZero, status: &status) { + return d + } + + XCTFail("Unable to parse \(T.self) from: \(s).", file: file, line: line) + return nil + } +} diff --git a/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin.swift b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin.swift new file mode 100644 index 0000000..66b6af4 --- /dev/null +++ b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin.swift @@ -0,0 +1,382 @@ +@testable import Decimal + +protocol SpeleotroveMixin {} + +extension SpeleotroveMixin { + + // MARK: - Copy + + // https://speleotrove.com/decimal/damisc.html#refcopya + // We do not have this operation, but we want those tests. + // Use only the public api! + func copyAbs(_ d: T) -> T { + return d.magnitude + } + + // https://speleotrove.com/decimal/damisc.html#refcopyn + // We do not have this operation, but we want those tests. + // Use only the public api! + func copyNegate(_ d: T) -> T { + return -d + } + + // MARK: - Next + + // https://speleotrove.com/decimal/daops.html#refnextow + // We do not have this operation, but we want those tests. + // Use only the public api! + func nextToward( + _ d: T, + _ direction: T, + status: inout DecimalStatus + ) -> T { + // Our 'next' takes only 1 arg, so we have to handle NaN here in the correct + // order ('d' before 'direction'). + if let nan = self.handleNaN(d, direction, status: &status) { + return nan + } + + if d == direction { + return d + } + + let result = d < direction ? + d.nextUp(status: &status) : + d.nextDown(status: &status) + + // IEEE 754 nextXX is quiet (quote from standard): + // nextUp(x) is quiet except for sNaNs. + // Speleotrove signals inexact underflow/overflow. + + if result.magnitude < T.leastNormalMagnitude { + status.set(.isUnderflowInexact) + } + + if !d.isInfinite && result.isInfinite { + status.set(.isOverflowInexact) + } + + return result + } + + // MARK: - Div, rem + + // https://speleotrove.com/decimal/daops.html#refdivint + // We do not have this operation, but we want those tests. + // Use only the public api! + func divideInt( + _ lhs: T, + by rhs: T, + rounding: DecimalFloatingPointRoundingRule + ) -> T { + var status = DecimalStatus() + + if let nan = self.handleNaN(lhs, rhs, status: &status) { + return nan + } + + let result = lhs.divided(by: rhs, rounding: rounding, status: &status) + + if status.isOverflow { + return T.nan + } + + if result.isInfinite { + return result + } + + let precision = T(1) + return result.quantized(to: precision, rounding: .towardZero) + } + + /// Use `truncatingRemainder` tests to test `remainder`. + func truncatingRemainderFromReminder( + _ lhs: T, + dividingBy rhs: T + ) -> T { + var status = DecimalStatus() + + if let nan = self.handleNaN(lhs, rhs, status: &status) { + return nan + } + + if let r = self.toSpeleotrove_rem_whenQuotientIsNotRepresentable( + lhs, + rhs, + status: &status + ) { + return r + } + + let result = lhs.remainder(dividingBy: rhs) + + if result.isNaN || result.isInfinite { + return result + } + + // This may not be correct for the 'halfway' case, but it is enough to pass + // all of the tests. Which is all we need to mark 'remainder' as 'tested'. + // We do not have to be 'perfect', because it is not a part of the public api. + + // No 'near' correction was performed? + if result.sign == lhs.sign { + return result + } + + // Near correction was performed. + // We have to restore what was before correction. + // The general idea is to 'flip' it to the other sign. + return result.sign == rhs.sign ? + result.subtracting(rhs, rounding: .towardZero) : + result.adding(rhs, rounding: .towardZero) + } + + // MARK: - Total order + + // https://speleotrove.com/decimal/damisc.html#refcotot + // In Speleotrove: total order returns -1, 0, 1. + // In Swift: total order returns 'isBelowOrEqual: Bool' + // So, we have to add equality checks and return '0'. + func totalOrder( + _ lhs: T, + _ rhs: T + ) -> Int { + // Totally greater? + if !lhs.isTotallyOrdered(belowOrEqualTo: rhs) { + return 1 + } + + // Ordered according to the initial 'lhs.isTotallyOrdered(belowOrEqualTo:)'. + let swiftResult = -1 + + if lhs.sign != rhs.sign { + return swiftResult + } + + if lhs.isInfinite && rhs.isInfinite { + return 0 + } + + // 2. Numbers (representations which are not NaNs) are ordered such that + // a larger numerical value is higher in the ordering. + // If two representations have the same numerical value then the exponent + // is taken into account; larger (more positive) exponents are higher + // in the ordering. + if lhs.isFinite && rhs.isFinite && lhs.isEqual(to: rhs) { + let lhsUnpack = lhs._unpackFiniteOrZero() + let rhsUnpack = rhs._unpackFiniteOrZero() + + if lhsUnpack.exponent == rhsUnpack.exponent { + return 0 + } + } + + // 4. Quiet NaNs and signaling NaNs are ordered according to their payload; + // a larger payload is higher in the ordering. + if lhs.isQuietNaN && rhs.isQuietNaN || lhs.isSignalingNaN && rhs.isSignalingNaN { + let lhsPayload = lhs._unpackNaN() + let rhsPayload = rhs._unpackNaN() + + if lhsPayload.canonical == rhsPayload.canonical { + return 0 + } + } + + return swiftResult + } + + // https://speleotrove.com/decimal/damisc.html#refcotot + // In Speleotrove: total order returns -1, 0, 1. + // In Swift: total order returns 'isBelowOrEqual: Bool' + // So, we have to add equality checks and return '0'. + func totalOrderMagnitude( + _ lhs: T, + _ rhs: T + ) -> Int { + return self.totalOrder(lhs.magnitude, rhs.magnitude) + } + + // MARK: - LogB, ScaleB + + // https://speleotrove.com/decimal/damisc.html#reflogb + // In Speleotrove: decimal + // In Swift: int + func logB( + _ d: T, + status: inout DecimalStatus + ) -> T { + let exponent = d.exponent(status: &status) + + if d.isQuietNaN { + if exponent == T.Exponent.max && status.isInvalidOperation { + status.clear(.isInvalidOperation) + return d + } + + return self.errorMarker() + } + + if d.isSignalingNaN { + if exponent == T.Exponent.max { + return self.removeSignalingBit(d) + } + + return self.errorMarker() + } + + // If the operand is infinite then +Infinity is returned. + if d.isInfinite { + if exponent == T.Exponent.max && status.isInvalidOperation { + status.clear(.isInvalidOperation) + return T.infinity + } + + return self.errorMarker() + } + + // If the operand is a zero, then –Infinity is returned and the Division + // by zero exceptional condition is raised. + if d.isZero { + if exponent == T.Exponent.min && status.isInvalidOperation { + status.clear(.isInvalidOperation) + status.set(.isDivisionByZero) + return -T.infinity + } + + return self.errorMarker() + } + + // Otherwise, the result is the integer which is the exponent of the + // magnitude of the most significant digit of the operand (as though the + // operand were truncated to a single digit while maintaining the value of + // that digit and without limiting the resulting exponent). + // All results are exact unless an integer result does not fit in the + // available precision. + return T(exponent, rounding: .towardZero) + } + + // https://speleotrove.com/decimal/damisc.html#refscaleb + // In Speleotrove: exponent is decimal + // In Swift: exponent is int + func scaleB( + _ d: T, + _ exponent: T, + rounding: DecimalFloatingPointRoundingRule, + status: inout DecimalStatus + ) -> T { + // scaleb takes two operands. + // If either operand is a NaN then the general arithmetic rules apply. + // Otherwise, the second operand must be a finite integer with an exponent + // of zero[4] and in the range ±2 × (Emax + precision) inclusive, where + // Emax is the largest value that can be returned by the logb operation at + // the same precision setting.[5] // (If is is not, the Invalid Operation + // condition is raised and the result is NaN.) + // + // If the first operand is infinite then that Infinity is returned, otherwise + // the result is the first operand modified by adding the value of the second + // operand to its exponent. The result may Overflow or Underflow. + + if exponent.isNaN || exponent.isInfinite { + if let r = self.handleNaN(d, exponent, status: &status) { + return r + } + + status.set(.isInvalidOperation) + return T.nan + } + + assert(exponent.isFinite) + let unpack = exponent._unpackFiniteOrZero() + let significand = unpack.significand.canonical + let maxSignificand = 2 * (T.emax + T.precisionInDigits) + + // Finite integer with an exponent of zero[4] and in the range + // ±2 × (Emax + precision) inclusive + guard unpack.exponent.signed == 0, + significand <= maxSignificand, + var e = T.Exponent(exactly: significand) else { + if let r = self.handleNaN(d, exponent, status: &status) { + return r + } + + status.set(.isInvalidOperation) + return T.nan + } + + if exponent.sign == .minus { + e.negate() + } + + let result = T( + sign: .plus, + exponent: e, + significand: d, + rounding: rounding, + status: &status + ) + + // Swift implementation should NOT raise 'invalidOperation'. + if result.isSignalingNaN && !status.isInvalidOperation { + status.set(.isInvalidOperation) + return self.removeSignalingBit(result) + } + + return result + } + + // MARK: - Reduce + + // https://speleotrove.com/decimal/daops.html#refredu + // We do not have this operation, but we want those tests. + // Use only the public api! + func reduce(_ d: T, expected: T) -> T { + return d.quantized(to: expected, rounding: .towardZero) + } + + // MARK: - Canonical + + // Our parser takes care of making things canonical. + func canonical(_ d: T) -> T { + return d + } + + // MARK: - Helpers + + private func handleNaN( + _ lhs: T, + _ rhs: T, + status: inout DecimalStatus + ) -> T? { + if lhs.isSignalingNaN { + status.set(.isInvalidOperation) + return self.removeSignalingBit(lhs) + } + + if rhs.isSignalingNaN { + status.set(.isInvalidOperation) + return self.removeSignalingBit(rhs) + } + + if lhs.isNaN { + return lhs + } + + if rhs.isNaN { + return rhs + } + + return nil + } + + // Ultra common. + // Swift is 'ok' with returning 'snan', but Speleotrove wants 'nan'. + func removeSignalingBit(_ d: T) -> T { + let bit = T.nanQuietMask ^ T.nanSignalingMask + return T(unchecked: d.bid & (~bit)) + } + + /// Invalid result: `0xbad`. + private func errorMarker() -> T { + return T(nan: 0xbad, signaling: true) + } +} diff --git a/Tests/DecimalTests/StaticPropertiesTests.swift b/Tests/DecimalTests/StaticPropertiesTests.swift new file mode 100644 index 0000000..1d99419 --- /dev/null +++ b/Tests/DecimalTests/StaticPropertiesTests.swift @@ -0,0 +1,236 @@ +import XCTest +@testable import Decimal + +class StaticPropertiesTests: XCTestCase, DecimalTests { + + // MARK: - 0, 1 + + func test_zero() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let plus = T.zero + XCTAssert(plus.isZero, file: file, line: line) + XCTAssert(plus.isCanonical, file: file, line: line) + + guard let fromInt: T = self.createExact(0) else { return } + self.assertEqual(plus, fromInt, file, line) + + self.assertUnpackFinite( + plus, + sign: .plus, + biasedExponent: T.exponentBias, + significand: 0, + file, + line + ) + + let minus = -T.zero + XCTAssert(minus.isZero, file: file, line: line) + XCTAssert(minus.isCanonical, file: file, line: line) + + self.assertEqual(minus, -fromInt, file, line) + + self.assertUnpackFinite( + minus, + sign: .minus, + biasedExponent: T.exponentBias, + significand: 0, + file, + line + ) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + func test_one() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let d = T._one + + guard let expected: T = self.createExact(1) else { return } + self.assertEqual(d, expected, file, line) + + self.assertUnpackFinite( + d, + sign: .plus, + biasedExponent: T.exponentBias, + significand: 1, + file, + line + ) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + // MARK: - NaN, infinity + + func test_nan() { + func testNaN( + _ d: T, + message: String, + file: StaticString, + line: UInt + ) { + XCTAssert(d.isNaN, message + ".isNaN", file: file, line: line) + XCTAssert(!d.isSignalingNaN, message + ".isSignalingNaN", file: file, line: line) + XCTAssert(d.isCanonical, message + ".isCanonical", file: file, line: line) + } + + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let nan = T.nan + testNaN(nan, message: "nan", file: file, line: line) + testNaN(-nan, message: "-nan", file: file, line: line) + + let payload = T(nan: 123, signaling: false) + testNaN(payload, message: "nan(…)", file: file, line: line) + testNaN(-payload, message: "-nan(…)", file: file, line: line) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + func test_snan() { + func testNaN( + _ d: T, + message: String, + file: StaticString = #file, + line: UInt = #line + ) { + XCTAssert(d.isNaN, message + ".isNaN", file: file, line: line) + XCTAssert(d.isSignalingNaN, message + ".isSignalingNaN", file: file, line: line) + XCTAssert(d.isCanonical, message + ".isCanonical", file: file, line: line) + } + + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let nan = T._signalingNaN + testNaN(nan, message: "snan", file: file, line: line) + testNaN(-nan, message: "-snan", file: file, line: line) + + let payload = T(nan: 123, signaling: true) + testNaN(payload, message: "snan(…)", file: file, line: line) + testNaN(-payload, message: "-snan(…)", 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 + ) { + let plus = T.infinity + XCTAssert(plus.isInfinite, file: file, line: line) + XCTAssert(plus.isCanonical, file: file, line: line) + + let minus = -T.infinity + XCTAssert(minus.isInfinite, file: file, line: line) + XCTAssert(minus.isCanonical, file: file, line: line) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + // MARK: - Limits + + func test_limits() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let greatestFinite = T.greatestFiniteMagnitude + self.assertEqual( + greatestFinite, + T.infinity.nextDown, + "greatestFiniteMagnitude", + file, + line + ) + + let leastNormal = T.leastNormalMagnitude + XCTAssert( + leastNormal.isNormal, + "leastNormal.isNormal", + file: file, + line: line + ) + XCTAssertFalse( + leastNormal.nextDown.isNormal, + "leastNormal.nextDown.isNormal", + file: file, + line: line + ) + + let leastNonzero = T.leastNonzeroMagnitude + self.assertEqual( + leastNonzero, + T.zero.nextUp, + "leastNonzero", + file, + line + ) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + // MARK: - π + + /// From docs: + /// This value is rounded toward zero to keep user computations with angles + /// from inadvertently ending up in the wrong quadrant. A type that conforms + /// to the `FloatingPoint` protocol provides the value for `pi` at its best + /// possible precision. + func test_pi() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + var status = DecimalStatus() + // swiftlint:disable:next line_length + let string = "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647" + + guard let expected = T._parse(string, rounding: .towardZero, status: &status) else { + XCTFail("Failed to parse π.", file: file, line: line) + return + } + + self.assertEqual(T.pi, expected, file, line) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } +} diff --git a/Tests/DecimalTests/UnaryTests.swift b/Tests/DecimalTests/UnaryTests.swift new file mode 100644 index 0000000..0c45ed1 --- /dev/null +++ b/Tests/DecimalTests/UnaryTests.swift @@ -0,0 +1,92 @@ +import XCTest +@testable import Decimal + +private func assertDouble(_ d: Double, _ expected: Double) { + let s = String(d) + let e = String(expected) + Swift.print(s, s == e ? "🟢" : "🔴") +} + +class UnaryTests: XCTestCase, DecimalTests { + + // MARK: - sNaN + +/* + // [Swift bug] This test is VERY unstable + func test_snan_double() { + let plus = Double.signalingNaN + let minus = -Double.signalingNaN + + // code below commented | code below uncommented + print(+plus, (+plus).bitPattern) // snan 9219994337134247936 | snan 9219994337134247936 + print(+minus, (+minus).bitPattern) // -snan 18443366373989023744 | nan 9222246136947933184 + print(-plus, (-plus).bitPattern) // -snan 18443366373989023744 | nan 9222246136947933184 + print(-minus, (-minus).bitPattern) // snan 9219994337134247936 | nan 9222246136947933184 + + // This is the 'code below': + // XCTAssertEqual((+plus).bitPattern, Double(signOf: +1, magnitudeOf: plus).bitPattern) + // XCTAssertEqual((+minus).bitPattern, Double(signOf: -1, magnitudeOf: plus).bitPattern) + // XCTAssertEqual((-plus).bitPattern, Double(signOf: -1, magnitudeOf: plus).bitPattern) + // XCTAssertEqual((-minus).bitPattern, Double(signOf: +1, magnitudeOf: plus).bitPattern) + } +*/ + + /// IEEE: NaN (section 6.2) + /// Swift: sNaN + func test_snan() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let plus = T.signalingNaN + let minus = -T.signalingNaN + + self.assertEqual(+plus, T(signOf: +1, magnitudeOf: plus), file, line) + self.assertEqual(+minus, T(signOf: -1, magnitudeOf: plus), file, line) + + self.assertEqual(-plus, T(signOf: -1, magnitudeOf: plus), file, line) + self.assertEqual(-minus, T(signOf: +1, magnitudeOf: plus), file, line) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } + + // MARK: - Zero + + func test_zero_double() { + let plus = 0.0 + let minus = -0.0 + + assertDouble(+plus, Double(signOf: +1, magnitudeOf: plus)) + assertDouble(+minus, Double(signOf: -1, magnitudeOf: plus)) + + assertDouble(-plus, Double(signOf: -1, magnitudeOf: plus)) + assertDouble(-minus, Double(signOf: +1, magnitudeOf: plus)) + } + + /// IEEE: ??? + /// Swift: + func test_zero() { + func test( + _ t: T.Type, + file: StaticString = #file, + line: UInt = #line + ) { + let plus = T.zero + let minus = -T.zero + + self.assertEqual(+plus, T(signOf: +1, magnitudeOf: plus), file, line) + self.assertEqual(+minus, T(signOf: -1, magnitudeOf: plus), file, line) + + self.assertEqual(-plus, T(signOf: -1, magnitudeOf: plus), file, line) + self.assertEqual(-minus, T(signOf: +1, magnitudeOf: plus), file, line) + } + + test(Decimal32.self) + test(Decimal64.self) + test(Decimal128.self) + } +}