[INFO] fetching crate ticker-core 0.1.1...
[INFO] testing ticker-core-0.1.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate ticker-core 0.1.1 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate ticker-core 0.1.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ticker-core 0.1.1
[INFO] tweaked toml for crates.io crate ticker-core 0.1.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ticker-core 0.1.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ticker-core 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust_xlsxwriter v0.94.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020
[INFO] running `Command { std: "docker" "start" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ticker-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling zip v7.2.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]    Compiling rust_xlsxwriter v0.94.0
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 44.43s
[INFO] running `Command { std: "docker" "inspect" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling ticker-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 48.61s
[INFO] running `Command { std: "docker" "inspect" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling ticker-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 45.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/ticker_core-8db38ab275d17dfc)
[INFO] [stdout] 
[INFO] [stdout] running 499 tests
[INFO] [stdout] test column::tests::ticks_meta_equality ... ok
[INFO] [stdout] test column::tests::ticks_meta_default ... ok
[INFO] [stdout] test column::tests::column_meta_custom_variant ... ok
[INFO] [stdout] test command::tests::a_bare_prefix_is_incomplete_and_names_its_continuations ... ok
[INFO] [stdout] test command::tests::a_bare_command_rejects_an_inline_argument ... ok
[INFO] [stdout] test command::tests::a_bare_interactive_command_prompts_even_with_a_trailing_space ... ok
[INFO] [stdout] test command::tests::a_bad_count_is_unknown_rather_than_rounded ... ok
[INFO] [stdout] test column::tests::column_clone ... ok
[INFO] [stdout] test column::tests::column_meta_ticks_variant ... ok
[INFO] [stdout] test command::tests::a_glued_digit_resolves_to_the_counted_command ... ok
[INFO] [stdout] test command::tests::a_counted_command_takes_no_inline_argument ... ok
[INFO] [stdout] test command::tests::a_digit_token_no_longer_jumps_to_a_sheet ... ok
[INFO] [stdout] test command::tests::a_complete_buffer_is_one_row_with_its_name_and_description ... ok
[INFO] [stdout] test command::tests::a_digit_prefixed_token_is_an_ordinary_command ... ok
[INFO] [stdout] test command::tests::a_narrow_screen_falls_back_to_one_column ... ok
[INFO] [stdout] test command::tests::a_path_taking_command_carries_its_path ... ok
[INFO] [stdout] test command::tests::a_list_long_enough_fills_every_row_the_band_reserved ... ok
[INFO] [stdout] test command::tests::a_missing_path_drops_the_parenthetical_entirely ... ok
[INFO] [stdout] test command::tests::a_squeezed_band_keeps_the_sentence_and_drops_the_values ... ok
[INFO] [stdout] test command::tests::a_complete_prefix_shows_the_command_row_above_its_cells ... ok
[INFO] [stdout] test command::tests::a_counted_command_shows_its_digit_against_its_name ... ok
[INFO] [stdout] test command::tests::a_help_word_names_a_command_only_when_it_is_one ... ok
[INFO] [stdout] test command::tests::a_trailing_space_alone_is_not_an_argument ... ok
[INFO] [stdout] test command::tests::an_argument_is_the_whole_remainder_spaces_included ... ok
[INFO] [stdout] test command::tests::a_hint_only_field_draws_exactly_the_rows_it_reserved ... ok
[INFO] [stdout] test command::tests::a_zero_width_band_is_empty ... ok
[INFO] [stdout] test command::tests::a_letter_leading_to_several_commands_takes_its_group_label ... ok
[INFO] [stdout] test command::tests::an_interactive_command_rejects_an_inline_argument_by_its_own_name ... ok
[INFO] [stdout] test command::tests::a_counted_command_stands_alone ... ok
[INFO] [stdout] test command::tests::an_interactive_command_claims_no_inline_argument ... ok
[INFO] [stdout] test command::tests::an_unknown_buffer_is_one_row_naming_the_token ... ok
[INFO] [stdout] test command::tests::an_unmatched_token_is_unknown ... ok
[INFO] [stdout] test command::tests::an_empty_buffer_offers_every_command ... ok
[INFO] [stdout] test command::tests::an_inline_argument_is_labelled ... ok
[INFO] [stdout] test command::tests::an_inline_argument_closes_the_token ... ok
[INFO] [stdout] test command::tests::every_band_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test command::tests::a_field_offering_neither_a_hint_nor_a_list_costs_no_rows ... ok
[INFO] [stdout] test command::tests::every_command_named_in_the_help_is_in_the_catalogue ... ok
[INFO] [stdout] test command::tests::every_completing_command_also_carries_a_bar_path_hint ... ok
[INFO] [stdout] test command::tests::every_palette_key_opens_at_least_one_command ... ok
[INFO] [stdout] test command::tests::every_path_hint_names_a_real_command ... ok
[INFO] [stdout] test command::tests::every_short_label_is_one_lowercase_word ... ok
[INFO] [stdout] test command::tests::every_interactive_command_has_at_least_two_fields ... ok
[INFO] [stdout] test command::tests::every_field_label_is_short_and_clean ... ok
[INFO] [stdout] test command::tests::neither_panel_toggle_still_resolves ... ok
[INFO] [stdout] test command::tests::exactly_one_field_in_the_catalogue_is_a_formula ... ok
[INFO] [stdout] test command::tests::every_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test command::tests::exactly_one_field_in_the_catalogue_offers_a_runtime_list ... ok
[INFO] [stdout] test command::tests::only_imports_first_field_completes_a_path ... ok
[INFO] [stdout] test command::tests::f_is_the_filter_command_and_nothing_continues_it ... ok
[INFO] [stdout] test command::tests::no_retired_name_still_resolves ... ok
[INFO] [stdout] test command::tests::no_command_name_is_all_digits ... ok
[INFO] [stdout] test command::tests::each_path_role_names_the_destinations_it_accepts ... ok
[INFO] [stdout] test command::tests::every_command_is_named_by_the_block_for_its_own_buffer ... ok
[INFO] [stdout] test command::tests::every_catalogue_first_letter_is_a_palette_key ... ok
[INFO] [stdout] test command::tests::only_an_inline_arity_names_its_argument ... ok
[INFO] [stdout] test command::tests::no_grid_line_exceeds_a_screen_wide_enough_for_a_column ... ok
[INFO] [stdout] test command::tests::the_block_never_uses_more_rows_than_it_was_given ... ok
[INFO] [stdout] test command::tests::the_duplicate_command_explains_why_it_needs_its_colon ... ok
[INFO] [stdout] test command::tests::the_filter_band_states_the_blank_rule_above_the_sheet_names ... ok
[INFO] [stdout] test command::tests::the_glued_digit_rule_does_not_claim_a_bare_number ... ok
[INFO] [stdout] test command::tests::every_first_letter_takes_the_palette_label ... ok
[INFO] [stdout] test command::tests::the_group_labels_are_exactly_the_shared_prefixes ... ok
[INFO] [stdout] test command::tests::every_name_is_non_empty_ascii_without_a_space ... ok
[INFO] [stdout] test command::tests::the_catalogue_is_sorted_and_holds_no_duplicate ... ok
[INFO] [stdout] test command::tests::a_sheet_list_too_long_for_the_band_names_how_many_it_left_out ... ok
[INFO] [stdout] test command::tests::the_help_letter_opens_the_hide_family ... ok
[INFO] [stdout] test command::tests::the_add_letter_is_a_prefix_and_nothing_more ... ok
[INFO] [stdout] test command::tests::the_save_command_names_both_the_file_formats_and_the_directory_default ... ok
[INFO] [stdout] test command::tests::an_overflowing_block_names_exactly_how_many_cells_are_hidden ... ok
[INFO] [stdout] test command::tests::a_signature_names_the_argument_the_arity_takes ... ok
[INFO] [stdout] test complete::tests::every_formula_candidate_resolves_through_from_name_and_no_alias_is_offered ... ok
[INFO] [stdout] test command::tests::the_catalogue_holds_the_vocabulary_and_none_of_the_retired_spellings ... ok
[INFO] [stdout] test complete::tests::every_live_candidate_resolves ... ok
[INFO] [stdout] test complete::tests::matching_ignores_case_but_the_inserted_text_keeps_the_stored_spelling ... ok
[INFO] [stdout] test command::tests::the_catalogue_names_the_interactive_commands_by_their_new_names ... ok
[INFO] [stdout] test complete::tests::every_filter_column_candidate_resolves_through_filter_col_by_name ... ok
[INFO] [stdout] test complete::tests::an_unclosed_bracket_offers_nothing ... ok
[INFO] [stdout] test complete::tests::several_matches_extend_to_their_longest_common_prefix ... ok
[INFO] [stdout] test complete::tests::nothing_matching_leaves_the_buffer_alone_and_names_the_catalogue ... ok
[INFO] [stdout] test complete::tests::the_column_candidates_are_the_sheet_in_order_and_nothing_more ... ok
[INFO] [stdout] test command::tests::the_empty_block_names_every_first_character_in_three_rows ... ok
[INFO] [stdout] test complete::tests::every_column_candidate_resolves_through_col_by_name ... ok
[INFO] [stdout] test complete::tests::a_sole_match_completes_in_full_in_its_stored_spelling ... ok
[INFO] [stdout] test command::tests::the_band_never_uses_more_rows_than_it_was_given ... ok
[INFO] [stdout] test complete::tests::the_cursor_kind_is_the_name_cell_rule_plus_a_typed_equals ... ok
[INFO] [stdout] test complete::tests::the_filter_column_candidates_are_the_sheet_then_tick_then_source_tick ... ok
[INFO] [stdout] test eval::tests::eval_abs_negative ... ok
[INFO] [stdout] test datasheet::tests::col_by_name_refuses_source_tick ... ok
[INFO] [stdout] test complete::tests::the_filter_column_slot_takes_the_filter_catalogue ... ok
[INFO] [stdout] test eval::tests::eval_avg_literals ... ok
[INFO] [stdout] test complete::tests::only_the_name_at_the_end_of_the_buffer_is_completed ... ok
[INFO] [stdout] test command::tests::a_retired_name_behind_punctuation_is_extracted_and_rejected ... ok
[INFO] [stdout] test eval::tests::eval_avg_empty_returns_none ... ok
[INFO] [stdout] test command::tests::the_import_hints_render_in_full_at_eighty_columns ... ok
[INFO] [stdout] test complete::tests::the_live_candidates_are_the_whole_catalogue_until_the_buffer_narrows_it ... ok
[INFO] [stdout] test command::tests::a_prefix_may_itself_be_a_complete_command ... ok
[INFO] [stdout] test eval::tests::eval_avg_with_range ... ok
[INFO] [stdout] test complete::tests::the_token_is_the_trailing_name_and_nothing_before_it ... ok
[INFO] [stdout] test eval::tests::eval_abs_positive ... ok
[INFO] [stdout] test datasheet::tests::a_user_column_named_source_tick_resolves_outside_the_filter_slot_only ... ok
[INFO] [stdout] test eval::tests::eval_cos_zero_is_one ... ok
[INFO] [stdout] test eval::tests::eval_avg_none_propagates ... ok
[INFO] [stdout] test datasheet::tests::filter_col_by_name_accepts_source_tick_in_any_case ... ok
[INFO] [stdout] test complete::tests::an_empty_token_offers_the_whole_catalogue ... ok
[INFO] [stdout] test eval::tests::eval_cos_none_inner_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_cos_pi_is_minus_one ... ok
[INFO] [stdout] test eval::tests::eval_count_range_running_total ... ok
[INFO] [stdout] test eval::tests::eval_max_empty_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_min_empty_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_current_tick_returns_tick_as_f64 ... ok
[INFO] [stdout] test eval::tests::eval_min_multiple ... ok
[INFO] [stdout] test eval::tests::eval_max_with_range ... ok
[INFO] [stdout] test eval::tests::eval_count_empty_terms_is_zero ... ok
[INFO] [stdout] test eval::tests::eval_current_tick_usable_in_expression ... ok
[INFO] [stdout] test eval::tests::eval_count_scalar_absent_is_zero ... ok
[INFO] [stdout] test eval::tests::eval_fill_nested_literal ... ok
[INFO] [stdout] test eval::tests::eval_count_scalar_present ... ok
[INFO] [stdout] test eval::tests::eval_literal ... ok
[INFO] [stdout] test eval::tests::eval_div_basic ... ok
[INFO] [stdout] test eval::tests::eval_neg_literal ... ok
[INFO] [stdout] test eval::tests::eval_div_none_denominator_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_max_multiple ... ok
[INFO] [stdout] test eval::tests::eval_neg_none_propagates ... ok
[INFO] [stdout] test eval::tests::eval_randfloat_different_ticks_differ ... ok
[INFO] [stdout] test eval::tests::eval_pow_fractional_exponent ... ok
[INFO] [stdout] test eval::tests::eval_div_by_zero_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_fill_nested_uses_current_tick ... ok
[INFO] [stdout] test eval::tests::eval_randfloat_equal_bounds_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_neg_double_negation ... ok
[INFO] [stdout] test eval::tests::eval_randfloat_in_range ... ok
[INFO] [stdout] test complete::tests::an_argument_cell_lists_the_sheets_columns_and_none_without_a_sheet ... ok
[INFO] [stdout] test eval::tests::eval_min_none_propagates ... ok
[INFO] [stdout] test eval::tests::eval_randint_deterministic ... ok
[INFO] [stdout] test eval::tests::eval_min_single ... ok
[INFO] [stdout] test eval::tests::eval_product_empty_is_one ... ok
[INFO] [stdout] test eval::tests::eval_product_literals ... ok
[INFO] [stdout] test eval::tests::eval_range_bounds_auto_swapped_when_reversed ... ok
[INFO] [stdout] test eval::tests::eval_range_mixed_with_scalar_in_sum ... ok
[INFO] [stdout] test eval::tests::eval_product_short_circuits_on_none ... ok
[INFO] [stdout] test eval::tests::eval_randfloat_deterministic ... ok
[INFO] [stdout] test eval::tests::eval_range_standalone_is_none ... ok
[INFO] [stdout] test eval::tests::eval_pow_integer_exponent ... ok
[INFO] [stdout] test eval::tests::eval_sum_literals ... ok
[INFO] [stdout] test eval::tests::eval_min_with_range ... ok
[INFO] [stdout] test eval::tests::eval_sqrt_positive ... ok
[INFO] [stdout] test eval::tests::eval_sum_range_with_none_short_circuits ... ok
[INFO] [stdout] test eval::tests::eval_sum_with_range ... ok
[INFO] [stdout] test eval::tests::filtered_range_tick_aggregates ... ok
[INFO] [stdout] test eval::tests::filtered_range_tick_matches_source_tick ... ok
[INFO] [stdout] test eval::tests::filtered_range_tick_nth_match ... ok
[INFO] [stdout] test eval::tests::eval_ref_resolves_target_cell ... ok
[INFO] [stdout] test eval::tests::eval_sin_half_pi_is_one ... ok
[INFO] [stdout] test eval::tests::eval_sum_empty_is_zero ... ok
[INFO] [stdout] test eval::tests::same_size_column_set_change_is_memoised ... ok
[INFO] [stdout] test eval::tests::eval_randint_in_range ... ok
[INFO] [stdout] test eval::tests::eval_randint_invalid_range_returns_none ... ok
[INFO] [stdout] test eval::tests::ticks_column_absent_from_cache_index ... ok
[INFO] [stdout] test eval::tests::orphaned_column_resolves_identically_and_is_memoised ... ok
[INFO] [stdout] test eval::tests::eval_sum_short_circuits_on_none ... ok
[INFO] [stdout] test eval::tests::eval_ref_missing_cell_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_sin_none_inner_returns_none ... ok
[INFO] [stdout] test eval::tests::eval_sin_propagates_with_current_tick ... ok
[INFO] [stdout] test eval::tests::eval_sin_zero_is_zero ... ok
[INFO] [stdout] test eval::tests::eval_sqrt_negative_returns_none ... ok
[INFO] [stdout] test formatter_lookup::tests::midi_note_lookup_c0 ... ok
[INFO] [stdout] test eval::tests::eval_sqrt_zero ... ok
[INFO] [stdout] test formatter_lookup::tests::midi_note_lookup_c5 ... ok
[INFO] [stdout] test formatter_lookup::tests::midi_note_lookup_g10 ... ok
[INFO] [stdout] test formula::tests::tick_ref_negative_offset ... ok
[INFO] [stdout] test formula::tests::tick_ref_current_returns_same_tick ... ok
[INFO] [stdout] test formula_editor::tests::a_filtered_range_decomposes_into_a_two_argument_filter_node ... ok
[INFO] [stdout] test formula::tests::tick_ref_absolute_ignores_current ... ok
[INFO] [stdout] test formula::tests::tick_ref_offset_clamps_at_zero ... ok
[INFO] [stdout] test formula::tests::tick_ref_positive_offset ... ok
[INFO] [stdout] test formula_editor::tests::a_decomposed_filtered_range_holds_no_raw_syntax ... ok
[INFO] [stdout] test formatter_lookup::tests::input_lookup_middle_c ... ok
[INFO] [stdout] test formula_editor::tests::a_compound_condition_survives_the_comma_form_round_trip ... ok
[INFO] [stdout] test formatter_lookup::tests::resolve_midi_note ... ok
[INFO] [stdout] test formatter_lookup::tests::thousands_sep ... ok
[INFO] [stdout] test formula_editor::tests::a_filtered_range_nested_in_sum_decomposes_too ... ok
[INFO] [stdout] test formatter_lookup::tests::install_skips_existing ... ok
[INFO] [stdout] test formatter_lookup::tests::usd_numeric_fallback ... ok
[INFO] [stdout] test formatter_lookup::tests::pct_numeric_fallback ... ok
[INFO] [stdout] test formula_editor::tests::add_arg_on_the_placeholder_appends ... ok
[INFO] [stdout] test formatter_lookup::tests::input_lookup_numeric_string ... ok
[INFO] [stdout] test formula_editor::tests::an_empty_write_on_a_filled_argument_clears_it ... ok
[INFO] [stdout] test formula_editor::tests::bare_text_renames_a_nested_formula_node_and_keeps_its_arguments ... ok
[INFO] [stdout] test formula_editor::tests::colon_disambiguation_matches_the_ux2_truth_table ... ok
[INFO] [stdout] test formula_editor::tests::a_zero_argument_name_over_a_filled_formula_leaves_the_tree_alone ... ok
[INFO] [stdout] test formula_editor::tests::a_variadic_converts_from_its_first_argument ... ok
[INFO] [stdout] test formula_editor::tests::cursor_cell_tracks_the_cursor_path ... ok
[INFO] [stdout] test formula_editor::tests::arrow_on_stale_cursor_resets_to_root ... ok
[INFO] [stdout] test formula_editor::tests::add_arg_refuses_a_fixed_arity_parent ... ok
[INFO] [stdout] test formula_editor::tests::add_arg_inserts_after_the_cursor_and_stands_on_the_new_slot ... ok
[INFO] [stdout] test formula_editor::tests::add_arg_refuses_the_root ... ok
[INFO] [stdout] test formatter_lookup::tests::bool_yesno_lookup ... ok
[INFO] [stdout] test formula_editor::tests::an_unnamed_node_blocks_the_commit_and_is_the_first_incomplete_path ... ok
[INFO] [stdout] test formula_editor::tests::a_nested_variadic_converts_without_reaching_its_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::a_value_over_a_nested_formula_node_still_becomes_a_leaf ... ok
[INFO] [stdout] test formula_editor::tests::arrows_out_of_the_root_formula_stay_put ... ok
[INFO] [stdout] test formula_editor::tests::arrows_never_change_the_tree ... ok
[INFO] [stdout] test formula_editor::tests::an_empty_write_on_the_variadic_placeholder_adds_no_argument ... ok
[INFO] [stdout] test formula_editor::tests::cursor_is_filter_column_slot_is_the_second_argument_of_a_filter_node ... ok
[INFO] [stdout] test formula_editor::tests::cursor_is_name_cell_is_the_root_and_every_formula_node ... ok
[INFO] [stdout] test formula_editor::tests::every_cell_of_the_neg_of_sum_tree_is_reachable_from_every_other ... ok
[INFO] [stdout] test formula_editor::tests::every_pair_of_tick_ref_bounds_survives_a_tree_round_trip ... ok
[INFO] [stdout] test formula_editor::tests::every_cell_of_the_nested_tree_is_reachable_from_every_other ... ok
[INFO] [stdout] test formula_editor::tests::empty_tree_grid ... ok
[INFO] [stdout] test formula_editor::tests::down_walks_out_of_a_nested_formula ... ok
[INFO] [stdout] test formula_editor::tests::dfs_order_sum_a_b ... ok
[INFO] [stdout] test formula_editor::tests::every_grid_cell_carries_formula_content ... ok
[INFO] [stdout] test formula_editor::tests::cursor_is_raw_syntax_reads_the_node_under_the_cursor ... ok
[INFO] [stdout] test formula_editor::tests::dfs_order_neg_x ... ok
[INFO] [stdout] test formula_editor::tests::has_source_tick_misuse_flags_only_the_unresolvable_leaves ... ok
[INFO] [stdout] test formula_editor::tests::move_prev_slot_from_first_arg_goes_to_parent ... ok
[INFO] [stdout] test formula_editor::tests::move_down_from_last_variadic_arg_reaches_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::formula_replace_with_value ... ok
[INFO] [stdout] test formula_editor::tests::filtered_range_bounds_survive_a_tree_round_trip ... ok
[INFO] [stdout] test formula_editor::tests::is_raw_syntax_recognises_the_filtered_range_prefix_and_nothing_else ... ok
[INFO] [stdout] test formula_editor::tests::exiting_a_fixed_arity_inner_formula_lands_on_the_next_slot ... ok
[INFO] [stdout] test formula_editor::tests::formula_rename_same_arity ... ok
[INFO] [stdout] test formula_editor::tests::leaf_tree ... ok
[INFO] [stdout] test formula_editor::tests::grid_layout_sum_a_neg_b ... ok
[INFO] [stdout] test formula_editor::tests::move_left_from_non_first_arg_stays ... ok
[INFO] [stdout] test formula_editor::tests::left_right_navigation ... ok
[INFO] [stdout] test formula_editor::tests::grid_layout_neg_x ... ok
[INFO] [stdout] test formula_editor::tests::move_up_crosses_subtrees ... ok
[INFO] [stdout] test formula_editor::tests::move_up_from_first_arg_stays ... ok
[INFO] [stdout] test formula_editor::tests::move_up_from_nested_non_first_sibling ... ok
[INFO] [stdout] test formula_editor::tests::move_prev_slot_is_not_the_exit_move ... ok
[INFO] [stdout] test formula_editor::tests::move_up_from_variadic_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::move_up_from_fixed_arity_non_first_arg ... ok
[INFO] [stdout] test formula_editor::tests::nested_fixtures_lay_out_as_documented ... ok
[INFO] [stdout] test formula_editor::tests::node_names_come_from_formula_kind ... ok
[INFO] [stdout] test formula_editor::tests::exiting_into_a_fixed_arity_parent_lands_on_its_name_cell ... ok
[INFO] [stdout] test formula_editor::tests::naming_a_formula_leaves_the_cursor_on_the_name_cell ... ok
[INFO] [stdout] test formula_editor::tests::remove_a_fixed_arity_argument_clears_it_and_keeps_the_count ... ok
[INFO] [stdout] test formula_editor::tests::naming_a_wrapper_keeps_the_wrapped_subtree_as_its_first_argument ... ok
[INFO] [stdout] test formula_editor::tests::remove_the_sole_variadic_argument_clears_it_instead ... ok
[INFO] [stdout] test formula_editor::tests::left_from_a_first_arg_still_reaches_the_parent_name_cell ... ok
[INFO] [stdout] test formula_editor::tests::remove_arg_refuses_the_root_and_the_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::the_bare_colon_span_round_trips_as_zero_to_end ... ok
[INFO] [stdout] test formula_editor::tests::typing_the_product_alias_builds_a_node_named_mul ... ok
[INFO] [stdout] test formula_editor::tests::the_unnamed_node_draws_as_an_empty_cell ... ok
[INFO] [stdout] test formula_editor::tests::unwrap_names_the_arguments_it_discarded ... ok
[INFO] [stdout] test formula_editor::tests::tree_round_trip_preserves_every_named_formula ... ok
[INFO] [stdout] test formula_editor::tests::unwrap_counts_one_discarded_argument_in_the_singular ... ok
[INFO] [stdout] test formula_editor::tests::move_right_from_placeholder_stays ... ok
[INFO] [stdout] test formula_editor::tests::right_from_every_cell_of_the_nested_tree ... ok
[INFO] [stdout] test formula_editor::tests::move_up_from_middle_variadic_arg ... ok
[INFO] [stdout] test formula_editor::tests::stop_stays_a_leaf ... ok
[INFO] [stdout] test formula_editor::tests::remove_the_last_variadic_argument_lands_the_cursor_on_the_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::remove_arg_takes_the_slot_out_of_a_variadic_list ... ok
[INFO] [stdout] test formula_editor::tests::left_exits_a_nested_formula_skipping_its_placeholder ... ok
[INFO] [stdout] test formula_editor::tests::up_from_every_cell_of_the_nested_tree ... ok
[INFO] [stdout] test formula_editor::tests::wrap_an_empty_argument_wraps_the_empty_slot ... ok
[INFO] [stdout] test formula_editor::tests::wrap_the_variadic_placeholder_turns_it_into_a_real_argument ... ok
[INFO] [stdout] test formula_editor::tests::wrap_a_nested_leaf_leaves_the_cursor_on_the_new_name_cell ... ok
[INFO] [stdout] test formula_editor::tests::wrap_a_root_leaf_keeps_its_text_and_the_cursor ... ok
[INFO] [stdout] test formula_parse::tests::a_bare_source_tick_reference_does_not_parse ... ok
[INFO] [stdout] test formula_parse::tests::filter_column_slot_accepts_tick_keywords ... ok
[INFO] [stdout] test formula_parse::tests::filter_column_slot_tick_full_range ... ok
[INFO] [stdout] test formula_parse::tests::parse_tick_ref_canonical_forms ... ok
[INFO] [stdout] test formula_parse::tests::property_context_bare_is_full_range ... ok
[INFO] [stdout] test formula_parse::tests::property_context_bracketed_tick_is_per_tick_ref ... ok
[INFO] [stdout] test formula_parse::tests::six_equivalent_forms_negative_offset ... ok
[INFO] [stdout] test formula_parse::tests::source_tick_still_parses_inside_filter ... ok
[INFO] [stdout] test formula_target::tests::a_cell_edit_carries_no_breadcrumb ... ok
[INFO] [stdout] test formula_parse::tests::tick_keyword_wins_over_user_column_named_tick ... ok
[INFO] [stdout] test formula_editor::tests::unwrap_promotes_the_only_argument ... ok
[INFO] [stdout] test formula_editor::tests::unwrap_refuses_a_leaf_and_a_placeholder_without_touching_the_tree ... ok
[INFO] [stdout] test formula_editor::tests::variadic_placeholder_sits_below_the_last_arg ... ok
[INFO] [stdout] test formula_editor::tests::unwrap_does_not_count_slots_the_user_never_filled ... ok
[INFO] [stdout] test formula_target::tests::a_filter_with_no_sheet_at_all_still_reads_as_a_sentence ... ok
[INFO] [stdout] test formula_parse::tests::six_equivalent_forms_positive_offset ... ok
[INFO] [stdout] test formula_target::tests::a_property_edit_names_the_property ... ok
[INFO] [stdout] test formula_parse::tests::bare_zero_offset_equivalence_bracket_only ... ok
[INFO] [stdout] test formula_parse::tests::bracket_only_without_current_col_returns_none ... ok
[INFO] [stdout] test formula_parse::tests::bare_zero_offset_equivalence_column_prefixed ... ok
[INFO] [stdout] test formula_target::tests::a_blank_filter_source_takes_the_sheet_the_front_end_resolved ... ok
[INFO] [stdout] test formula_text::tests::arithmetic ... ok
[INFO] [stdout] test formula_parse::tests::parse_col_range_bare_tick_is_full_range ... ok
[INFO] [stdout] test formula_parse::tests::parse_col_range_accepts_tick_keywords ... ok
[INFO] [stdout] test formula_parse::tests::empty_brackets_return_none ... ok
[INFO] [stdout] test formula_parse::tests::filter_tick_matches_source_tick_shape ... ok
[INFO] [stdout] test formula_text::tests::cell_refs ... ok
[INFO] [stdout] test formula_text::tests::financial ... ok
[INFO] [stdout] test formula_text::tests::literal ... ok
[INFO] [stdout] test formula_text::tests::logic_and_comparison ... ok
[INFO] [stdout] test formula_text::tests::nested ... ok
[INFO] [stdout] test formula_text::tests::period_range_shorthand ... ok
[INFO] [stdout] test formula_text::tests::source_tick_survives_save ... ok
[INFO] [stdout] test formula_target::tests::whether_there_is_a_breadcrumb_does_not_depend_on_the_sheet ... ok
[INFO] [stdout] test help::tests::every_command_in_the_catalogue_appears_on_the_help_screen ... ok
[INFO] [stdout] test formula_text::tests::flow_control ... ok
[INFO] [stdout] test help::tests::a_key_has_one_spelling_across_every_table ... ok
[INFO] [stdout] test help::tests::every_key_row_of_the_commands_topic_is_a_command ... ok
[INFO] [stdout] test help::tests::a_command_row_shows_its_colon_and_its_argument_shape ... ok
[INFO] [stdout] test formula_target::tests::a_named_filter_source_is_what_the_breadcrumb_names ... ok
[INFO] [stdout] test formula_text::tests::filtered_range_over_ticks ... ok
[INFO] [stdout] test formula_text::tests::ranges ... ok
[INFO] [stdout] test help::tests::a_new_binding_reaches_the_help_screen_with_no_generator_change ... ok
[INFO] [stdout] test formula_text::tests::filtered_range_over_ticks_renders_tick_not_ticks ... ok
[INFO] [stdout] test help::tests::a_table_with_one_context_gets_no_section_divider ... ok
[INFO] [stdout] test help::tests::every_binding_in_every_table_appears_on_the_help_screen ... ok
[INFO] [stdout] test help::tests::every_key_row_of_a_generated_topic_is_a_row_of_its_table ... ok
[INFO] [stdout] test help::tests::every_mode_in_all_keymaps_has_a_display_title ... ok
[INFO] [stdout] test help::tests::no_help_row_claims_a_bare_p_for_the_property_panel ... ok
[INFO] [stdout] test help::tests::no_section_of_a_topic_lists_the_same_key_twice ... ok
[INFO] [stdout] test help::tests::no_topic_claims_esc_cancels_one_level_of_a_nested_formula ... ok
[INFO] [stdout] test help::tests::the_column_header_rows_topic_describes_the_default_and_the_refusal ... ok
[INFO] [stdout] test help::tests::the_help_content_is_computed_once ... ok
[INFO] [stdout] test help::tests::the_command_mode_topic_lists_the_recall_pair ... ok
[INFO] [stdout] test help::tests::the_formula_syntax_topic_teaches_nesting_and_the_variadic_trailing_slot ... ok
[INFO] [stdout] test import::tests::detect_delimiter_tab ... ok
[INFO] [stdout] test help::tests::the_help_screen_always_has_topics ... ok
[INFO] [stdout] test import::tests::duplicate_error_is_deterministic_with_many_duplicates ... ok
[INFO] [stdout] test id::tests::ids_equality_and_ordering ... ok
[INFO] [stdout] test id::tests::ids_clone ... ok
[INFO] [stdout] test help::tests::the_formula_trees_backspace_row_carries_the_tables_description ... ok
[INFO] [stdout] test help::tests::the_formula_syntax_topics_guidance_is_prose_not_key_rows ... ok
[INFO] [stdout] test import::tests::duplicate_error_passes_through_when_no_duplicates ... ok
[INFO] [stdout] test import::tests::detect_format_json ... ok
[INFO] [stdout] test import::tests::duplicate_error_reports_source_order_first_tick ... ok
[INFO] [stdout] test import::tests::sheet_name_from_path_test ... ok
[INFO] [stdout] test keymap::tests::any_context_bindings_reach_both_focuses ... ok
[INFO] [stdout] test id::tests::ids_from_str ... ok
[INFO] [stdout] test id::tests::ticks_column_id_value ... ok
[INFO] [stdout] test import::tests::detect_delimiter_comma ... ok
[INFO] [stdout] test import::tests::detect_delimiter_semicolon ... ok
[INFO] [stdout] test import::tests::detect_format_csv ... ok
[INFO] [stdout] test keymap::tests::an_alt_ignoring_pattern_matches_with_and_without_alt ... ok
[INFO] [stdout] test help::tests::the_hand_written_topics_are_a_closed_set ... ok
[INFO] [stdout] test keymap::tests::any_digit_matches_ascii_digits_and_nothing_else ... ok
[INFO] [stdout] test keymap::tests::any_letter_matches_both_cases_and_nothing_else ... ok
[INFO] [stdout] test keymap::tests::binds_agrees_with_resolve_on_every_read_mode_context ... ok
[INFO] [stdout] test keymap::tests::context_selects_between_competing_bindings ... ok
[INFO] [stdout] test keymap::tests::every_keymap_is_enumerable_without_naming_its_action_type ... ok
[INFO] [stdout] test keymap::tests::every_other_constructor_still_rejects_alt ... ok
[INFO] [stdout] test keymap::tests::footer_hint_indents_and_joins_with_two_spaces ... ok
[INFO] [stdout] test keymap::tests::shift_is_ignored_so_uppercase_still_reaches_its_class ... ok
[INFO] [stdout] test keymap::tests::footer_segments_prefixes_every_segment_or_none ... ok
[INFO] [stdout] test keymap::tests::specific_chars_win_over_the_character_classes ... ok
[INFO] [stdout] test keymap::tests::null_matches_nothing ... ok
[INFO] [stdout] test keymap::tests::the_bare_arrows_belong_to_the_panel_but_only_under_its_focus ... ok
[INFO] [stdout] test line_edit::tests::multibyte_text_is_handled_at_character_granularity ... ok
[INFO] [stdout] test line_edit::tests::window_of_a_short_buffer_is_the_whole_buffer ... ok
[INFO] [stdout] test line_edit::tests::window_never_exceeds_its_width ... ok
[INFO] [stdout] test line_edit::tests::insert_at_every_caret_position_of_a_multibyte_buffer_stays_in_range ... ok
[INFO] [stdout] test line_edit::tests::window_of_zero_width_is_empty ... ok
[INFO] [stdout] test line_edit::tests::insert_at_start_middle_and_end ... ok
[INFO] [stdout] test line_edit::tests::window_scrolls_back_when_the_caret_returns_to_the_start ... ok
[INFO] [stdout] test line_edit::tests::left_and_right_saturate_at_the_ends ... ok
[INFO] [stdout] test keymap::tests::the_grid_has_no_printable_catch_all ... ok
[INFO] [stdout] test line_edit::tests::window_scrolls_to_keep_the_caret_on_the_last_column ... ok
[INFO] [stdout] test keymap::tests::the_raw_syntax_note_leads_the_bar_and_appears_nowhere_else ... ok
[INFO] [stdout] test line_edit::tests::backspace_removes_before_the_caret_and_is_a_no_op_at_zero ... ok
[INFO] [stdout] test line_edit::tests::clear_resets_the_caret ... ok
[INFO] [stdout] test line_edit::tests::from_char_holds_one_character ... ok
[INFO] [stdout] test line_edit::tests::from_text_puts_the_caret_at_the_end ... ok
[INFO] [stdout] test keymap::tests::patterns_lists_every_row_of_a_table ... ok
[INFO] [stdout] test keymap::tests::read_mode_still_ignores_alt_modified_characters ... ok
[INFO] [stdout] test keymap::tests::the_formula_bar_spells_the_colon_only_when_it_is_not_already_pending ... ok
[INFO] [stdout] test palette::tests::every_cell_in_a_row_starts_on_the_same_column ... ok
[INFO] [stdout] test palette::tests::every_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test palette::tests::the_layout_names_every_entry_exactly_once ... ok
[INFO] [stdout] test path_prompt::tests::a_long_directory_is_elided_for_every_role ... ok
[INFO] [stdout] test path_prompt::tests::a_long_directory_is_elided_from_the_left_and_the_format_survives ... ok
[INFO] [stdout] test palette::tests::first_letter_folds_case_and_rejects_everything_else ... ok
[INFO] [stdout] test palette::tests::a_narrow_screen_falls_back_to_one_column ... ok
[INFO] [stdout] test palette::tests::the_navigation_section_selects_no_command ... ok
[INFO] [stdout] test palette::tests::every_command_entry_is_rendered_with_its_colon ... ok
[INFO] [stdout] test path_prompt::tests::a_leading_tilde_becomes_the_home_directory ... ok
[INFO] [stdout] test palette::tests::eighty_columns_gives_four_command_rows_a_rule_and_one_navigation_row ... ok
[INFO] [stdout] test palette::tests::every_palette_key_selects_itself ... ok
[INFO] [stdout] test palette::tests::no_line_exceeds_the_screen_width ... ok
[INFO] [stdout] test palette::tests::the_command_section_shows_the_colon_and_the_navigation_section_does_not ... ok
[INFO] [stdout] test path_prompt::tests::a_backend_that_cannot_list_still_names_the_format ... ok
[INFO] [stdout] test path_prompt::tests::a_sole_match_completes_in_full_and_reports_its_kind ... ok
[INFO] [stdout] test palette::tests::narrower_screens_never_use_fewer_rows ... ok
[INFO] [stdout] test path_prompt::tests::every_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test path_prompt::tests::nothing_matching_completes_to_nothing ... ok
[INFO] [stdout] test path_prompt::tests::every_other_tilde_is_left_exactly_as_typed ... ok
[INFO] [stdout] test path_prompt::tests::import_reports_a_directory_as_not_a_file ... ok
[INFO] [stdout] test path_prompt::tests::import_names_the_format_the_matched_file_would_be_read_as ... ok
[INFO] [stdout] test path_prompt::tests::matches_that_share_nothing_further_are_ambiguous ... ok
[INFO] [stdout] test path_prompt::tests::open_claims_nothing_about_a_directory_it_cannot_list ... ok
[INFO] [stdout] test path_prompt::tests::the_band_never_exceeds_the_rows_it_is_given ... ok
[INFO] [stdout] test path_prompt::tests::open_names_what_the_matched_entry_opens ... ok
[INFO] [stdout] test path_prompt::tests::open_refuses_to_name_a_format_it_does_not_recognise ... ok
[INFO] [stdout] test path_prompt::tests::the_destination_row_names_the_directory_and_the_format ... ok
[INFO] [stdout] test path_prompt::tests::open_reports_a_name_that_matches_nothing ... ok
[INFO] [stdout] test path_prompt::tests::the_entries_are_filtered_by_what_is_typed_and_directories_carry_a_slash ... ok
[INFO] [stdout] test path_prompt::tests::what_does_not_fit_is_counted_rather_than_dropped ... ok
[INFO] [stdout] test path_prompt::tests::several_matches_extend_to_their_common_prefix ... ok
[INFO] [stdout] test path_prompt::tests::split_input_names_the_directory_and_the_prefix ... ok
[INFO] [stdout] test persistence::format_tests::an_extension_names_its_file_format ... ok
[INFO] [stdout] test persistence::format_tests::every_other_path_saves_as_a_multi_csv_directory ... ok
[INFO] [stdout] test persistence::format_tests::the_load_side_still_refuses_an_unrecognised_extension ... ok
[INFO] [stdout] test property::tests::display_number_integer ... ok
[INFO] [stdout] test property::tests::filtered_sheet_flags ... ok
[INFO] [stdout] test property::tests::is_mandatory_check ... ok
[INFO] [stdout] test property::tests::is_mandatory_for_knows_the_filtered_keys_that_is_mandatory_misses ... ok
[INFO] [stdout] test property::tests::iter_order_is_insertion_order ... ok
[INFO] [stdout] test project::tests::a_formatter_sheet_counts_as_a_taken_name ... ok
[INFO] [stdout] test path_prompt::tests::a_missing_directory_is_reported_as_missing_not_as_empty ... ok
[INFO] [stdout] test project::tests::datasheet_index_by_name_matches_without_regard_to_case ... ok
[INFO] [stdout] test project::tests::names_match_folds_ascii_case ... ok
[INFO] [stdout] test project::tests::names_match_folds_non_ascii_case ... ok
[INFO] [stdout] test project::tests::sheet_name_in_use_folds_case_and_skips_the_excluded_sheet ... ok
[INFO] [stdout] test project::tests::unique_sheet_name_returns_a_free_base_verbatim ... ok
[INFO] [stdout] test property::tests::display_number_float ... ok
[INFO] [stdout] test property::tests::normal_sheet_flags ... ok
[INFO] [stdout] test project::tests::unique_sheet_name_steps_past_occupied_names ... ok
[INFO] [stdout] test property::tests::cannot_remove_mandatory_key ... ok
[INFO] [stdout] test property::tests::display_bool ... ok
[INFO] [stdout] test property::tests::parse_bool ... ok
[INFO] [stdout] test property::tests::display_text ... ok
[INFO] [stdout] test project::tests::datasheet_index_by_name_takes_the_first_in_project_order_on_a_case_tie ... ok
[INFO] [stdout] test property::tests::parse_number ... ok
[INFO] [stdout] test property::tests::rename_keeps_the_entrys_slot ... ok
[INFO] [stdout] test project::tests::names_match_trims_whitespace_on_either_side ... ok
[INFO] [stdout] test property::tests::remove_for_refuses_filter_on_a_filtered_sheet_where_remove_does_not ... ok
[INFO] [stdout] test property::tests::remove_user_defined_key ... ok
[INFO] [stdout] test property::tests::default_has_mandatory_keys ... ok
[INFO] [stdout] test property::tests::rename_to_the_same_key_is_a_no_op_that_succeeds ... ok
[INFO] [stdout] test property::tests::rows_do_not_disturb_the_stored_order ... ok
[INFO] [stdout] test property::tests::rename_refuses_a_taken_key_and_an_absent_one ... ok
[INFO] [stdout] test property::tests::remove_for_drops_a_user_property_on_either_kind ... ok
[INFO] [stdout] test property::tests::parse_text_fallback ... ok
[INFO] [stdout] test property::tests::set_and_get_roundtrip ... ok
[INFO] [stdout] test property::tests::tick_count_default_is_100 ... ok
[INFO] [stdout] test textblock::tests::every_grid_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test textblock::tests::a_grid_never_exceeds_the_rows_it_is_given ... ok
[INFO] [stdout] test textblock::tests::every_wrapped_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test textblock::tests::a_narrow_grid_falls_back_to_one_column ... ok
[INFO] [stdout] test textblock::tests::every_wrapped_word_line_is_indented_and_has_no_trailing_space ... ok
[INFO] [stdout] test textblock::tests::a_segment_wider_than_the_width_gets_a_line_to_itself ... ok
[INFO] [stdout] test property::tests::rows_pin_the_mandatory_keys_above_a_user_property_added_first ... ok
[INFO] [stdout] test time_import::tests::duplicate_policy_from_str ... ok
[INFO] [stdout] test textblock::tests::a_sentence_that_fits_is_one_indented_line ... ok
[INFO] [stdout] test textblock::tests::segments_that_exactly_fill_the_width_do_not_spill ... ok
[INFO] [stdout] test textblock::tests::a_word_wider_than_the_line_gets_a_line_to_itself ... ok
[INFO] [stdout] test textblock::tests::wrapping_never_exceeds_the_rows_it_is_given ... ok
[INFO] [stdout] test property::tests::rows_on_a_filtered_sheet_pin_tick_count_then_filter ... ok
[INFO] [stdout] test textblock::tests::wrapping_words_keeps_single_spaces_and_breaks_on_the_width ... ok
[INFO] [stdout] test textblock::tests::wrapped_prose_never_exceeds_the_rows_it_is_given ... ok
[INFO] [stdout] test property::tests::rows_skip_a_mandatory_key_that_is_absent ... ok
[INFO] [stdout] test time_import::tests::detect_format_unix_seconds ... ok
[INFO] [stdout] test textblock::tests::one_segment_is_one_indented_line ... ok
[INFO] [stdout] test time_import::tests::detect_format_iso8601 ... ok
[INFO] [stdout] test time_import::tests::detect_format_date ... ok
[INFO] [stdout] test time_import::tests::ns_to_tick_millisecond ... ok
[INFO] [stdout] test view_util::tests::cos_of_literal ... ok
[INFO] [stdout] test time_import::tests::parse_date_non_epoch ... ok
[INFO] [stdout] test time_import::tests::parse_unix_seconds ... ok
[INFO] [stdout] test time_import::tests::ns_to_tick_week ... ok
[INFO] [stdout] test time_import::tests::tick_resolution_roundtrip ... ok
[INFO] [stdout] test time_import::tests::parse_date_only ... ok
[INFO] [stdout] test view_util::tests::count_of_ref ... ok
[INFO] [stdout] test time_import::tests::parse_unix_millis ... ok
[INFO] [stdout] test property::tests::with_tick_count_overrides_default ... ok
[INFO] [stdout] test view_util::tests::abs_of_ref ... ok
[INFO] [stdout] test view_util::tests::count_empty ... ok
[INFO] [stdout] test textblock::tests::what_the_grid_hides_is_counted_rather_than_dropped ... ok
[INFO] [stdout] test time_import::tests::ns_to_tick_day ... ok
[INFO] [stdout] test textblock::tests::a_grid_that_fits_carries_no_marker ... ok
[INFO] [stdout] test view_util::tests::fill_of_ref ... ok
[INFO] [stdout] test view_util::tests::literal_float ... ok
[INFO] [stdout] test view_util::tests::min_multiple ... ok
[INFO] [stdout] test view_util::tests::neg ... ok
[INFO] [stdout] test view_util::tests::current_tick ... ok
[INFO] [stdout] test view_util::tests::fill_of_current_tick ... ok
[INFO] [stdout] test view_util::tests::product_multiple ... ok
[INFO] [stdout] test view_util::tests::product_single_unwrapped ... ok
[INFO] [stdout] test view_util::tests::fill_of_literal ... ok
[INFO] [stdout] test view_util::tests::randfloat ... ok
[INFO] [stdout] test view_util::tests::randint ... ok
[INFO] [stdout] test view_util::tests::div ... ok
[INFO] [stdout] test view_util::tests::range_absolute_bounds ... ok
[INFO] [stdout] test view_util::tests::range_current_to_offset ... ok
[INFO] [stdout] test view_util::tests::ref_absolute ... ok
[INFO] [stdout] test view_util::tests::product_empty_is_one ... ok
[INFO] [stdout] test view_util::tests::ref_current_tick ... ok
[INFO] [stdout] test view_util::tests::sin_of_current_tick ... ok
[INFO] [stdout] test view_util::tests::sqrt_of_literal ... ok
[INFO] [stdout] test view_util::tests::stop ... ok
[INFO] [stdout] test view_util::tests::sum_multiple ... ok
[INFO] [stdout] test view_util::tests::ref_negative_offset ... ok
[INFO] [stdout] test view_util::tests::range_offset_to_current ... ok
[INFO] [stdout] test view_util::tests::sum_with_range ... ok
[INFO] [stdout] test view_util::tests::nested ... ok
[INFO] [stdout] test view_util::tests::pow ... ok
[INFO] [stdout] test view_util::tests::ref_positive_offset ... ok
[INFO] [stdout] test view_util::tests::sum_empty_is_zero ... ok
[INFO] [stdout] test view_util::tests::sum_single_unwrapped ... ok
[INFO] [stdout] test view_util::tests::literal_integer ... ok
[INFO] [stdout] test view_util::tests::max_single ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 499 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/aggr.rs (/opt/rustwide/target/release/deps/aggr-e3ee3242e0f8f000)
[INFO] [stdout] running 14 tests
[INFO] [stdout] test aggr_avg ... ok
[INFO] [stdout] test aggr_count ... ok
[INFO] [stdout] test aggr_max ... ok
[INFO] [stdout] test aggr_average_alias ... ok
[INFO] [stdout] test valid_aggregator_names ... ok
[INFO] [stdout] test no_aggregator_column_returns_raw_value ... ok
[INFO] [stdout] test aggr_bypassed_before_period_offset ... ok
[INFO] [stdout] test aggr_min ... ok
[INFO] [stdout] test aggr_sum_partial_period ... ok
[INFO] [stdout] test aggr_sum ... ok
[INFO] [stderr]      Running tests/datasheet.rs (/opt/rustwide/target/release/deps/datasheet-4d1cf6c30c6c33f8)
[INFO] [stdout] test aggr_total_alias_for_sum ... ok
[INFO] [stdout] test no_aggr_when_period_is_one ... ok
[INFO] [stdout] test aggr_mean_alias ... ok
[INFO] [stdout] test aggr_product ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test column_data_returns_sorted_entries ... ok
[INFO] [stdout] test remove_cleans_up_empty_column_entry ... ok
[INFO] [stdout] test remove_returns_value_and_clears_cell ... ok
[INFO] [stdout] test get_returns_none_when_unset ... ok
[INFO] [stdout] test column_range_empty_for_missing_column ... ok
[INFO] [stdout] test column_range_excludes_outside_bounds ... ok
[INFO] [stdout] test column_data_none_for_empty_column ... ok
[INFO] [stdout] test row_skips_columns_with_no_value_at_tick ... ok
[INFO] [stdout] test row_excludes_ticks_column ... ok
[INFO] [stdout] test column_range_single_tick ... ok
[INFO] [stdout] test all_ticks_empty_when_zero ... ok
[INFO] [stdout] test set_and_get_round_trip ... ok
[INFO] [stdout] test remove_leaves_column_when_other_ticks_remain ... ok
[INFO] [stdout] test remove_returns_none_when_absent ... ok
[INFO] [stdout] test tick_count_matches_meta ... ok
[INFO] [stdout] test new_has_ticks_column_first_and_no_cells ... ok
[INFO] [stdout] test ticks_with_data_empty_on_fresh_sheet ... ok
[INFO] [stdout] test row_respects_column_insertion_order ... ok
[INFO] [stdout] test set_returns_previous_value ... ok
[INFO] [stdout] test column_range_inclusive_bounds ... ok
[INFO] [stdout] test ticks_with_data_union_across_columns ... ok
[INFO] [stdout] test a_column_aggregator_and_formatter_survive_a_tic_round_trip ... FAILED
[INFO] [stdout] test row_empty_when_no_data_at_tick ... ok
[INFO] [stdout] test ticks_meta_round_trip ... ok
[INFO] [stdout] test a_tic_project_naming_a_missing_formatter_loads_and_keeps_the_name ... FAILED
[INFO] [stdout] test a_renamed_column_still_resolves_a_dependent_formula_after_a_round_trip ... FAILED
[INFO] [stdout] test mortgage_calc_loads_and_computes ... FAILED
[INFO] [stdout] test tic_format_round_trip ... FAILED
[INFO] [stdout] test tic_string_round_trip ... FAILED
[INFO] [stdout] test tic_save_to_string_matches_save_to_path ... FAILED
[INFO] [stdout] test set_panics_on_ticks_column - should panic ... ok
[INFO] [stdout] test saving_writes_properties_in_their_stored_order_not_the_panels ... FAILED
[INFO] [stdout] test toml_format_round_trip ... FAILED
[INFO] [stdout] test all_ticks_yields_full_range ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- a_column_aggregator_and_formatter_survive_a_tic_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'a_column_aggregator_and_formatter_survive_a_tic_round_trip' (2654) panicked at tests/datasheet.rs:452:10:
[INFO] [stdout] mortgageCalc fixture must be readable: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72ddd6e2 - <datasheet[f6a9362fd829d6ab]::a_column_aggregator_and_formatter_survive_a_tic_round_trip::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- a_tic_project_naming_a_missing_formatter_loads_and_keeps_the_name stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'a_tic_project_naming_a_missing_formatter_loads_and_keeps_the_name' (2656) panicked at tests/datasheet.rs:492:10:
[INFO] [stdout] mortgageCalc fixture must be readable: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dde68c - <datasheet[f6a9362fd829d6ab]::a_tic_project_naming_a_missing_formatter_loads_and_keeps_the_name::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- a_renamed_column_still_resolves_a_dependent_formula_after_a_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'a_renamed_column_still_resolves_a_dependent_formula_after_a_round_trip' (2655) panicked at tests/datasheet.rs:414:10:
[INFO] [stdout] mortgageCalc fixture must be readable: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stderr] error: test failed, to rerun pass `--test datasheet`
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72ddf1b6 - <datasheet[f6a9362fd829d6ab]::a_renamed_column_still_resolves_a_dependent_formula_after_a_round_trip::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- mortgage_calc_loads_and_computes stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'mortgage_calc_loads_and_computes' (2666) panicked at tests/datasheet.rs:263:33:
[INFO] [stdout] mortgageCalc project should load: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dd91e4 - <datasheet[f6a9362fd829d6ab]::mortgage_calc_loads_and_computes::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tic_format_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tic_format_round_trip' (2680) panicked at tests/datasheet.rs:313:33:
[INFO] [stdout] load mortgageCalc as multi-csv: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dd5e50 - <datasheet[f6a9362fd829d6ab]::tic_format_round_trip::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tic_string_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tic_string_round_trip' (2682) panicked at tests/datasheet.rs:384:33:
[INFO] [stdout] load mortgageCalc as multi-csv: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dd6335 - <datasheet[f6a9362fd829d6ab]::tic_string_round_trip::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tic_save_to_string_matches_save_to_path stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tic_save_to_string_matches_save_to_path' (2681) panicked at tests/datasheet.rs:532:33:
[INFO] [stdout] load mortgageCalc as multi-csv: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72ddcb00 - <datasheet[f6a9362fd829d6ab]::tic_save_to_string_matches_save_to_path::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- saving_writes_properties_in_their_stored_order_not_the_panels stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'saving_writes_properties_in_their_stored_order_not_the_panels' (2676) panicked at tests/datasheet.rs:555:10:
[INFO] [stdout] mortgageCalc fixture must be readable: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dddfa2 - <datasheet[f6a9362fd829d6ab]::saving_writes_properties_in_their_stored_order_not_the_panels::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- toml_format_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'toml_format_round_trip' (2687) panicked at tests/datasheet.rs:350:33:
[INFO] [stdout] load mortgageCalc as multi-csv: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f2d72fe7391 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f2d72ffe90a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f2d72feb96c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f2d72fc2396 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f2d72fdf249 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f2d72e051a0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f2d72fdf572 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f2d72fc2442 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f2d72fbaf19 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f2d72fc303d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f2d72fff06c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f2d72ffee42 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f2d72dd6bb3 - <datasheet[f6a9362fd829d6ab]::toml_format_round_trip::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f2d72df848b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f2d72e05af5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f2d72dff3b4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f2d72e08c52 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f2d72fe66f9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7736a6da3dfa - <unknown>
[INFO] [stdout]   19:     0x7736a6e373d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     a_column_aggregator_and_formatter_survive_a_tic_round_trip
[INFO] [stdout]     a_renamed_column_still_resolves_a_dependent_formula_after_a_round_trip
[INFO] [stdout]     a_tic_project_naming_a_missing_formatter_loads_and_keeps_the_name
[INFO] [stdout]     mortgage_calc_loads_and_computes
[INFO] [stdout]     saving_writes_properties_in_their_stored_order_not_the_panels
[INFO] [stdout]     tic_format_round_trip
[INFO] [stdout]     tic_save_to_string_matches_save_to_path
[INFO] [stdout]     tic_string_round_trip
[INFO] [stdout]     toml_format_round_trip
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 25 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020", kill_on_drop: false }`
[INFO] [stdout] 9546f683c375e0fb09de330e6bac6bf599fceba0cb32f8eee30e6da1804c7020
