[INFO] cloning repository https://github.com/0x7067/agent-bridge-mcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0x7067/agent-bridge-mcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x7067%2Fagent-bridge-mcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x7067%2Fagent-bridge-mcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 62399a5370a4c3cadea2f5125b79742a3af1e939
[INFO] testing 0x7067/agent-bridge-mcp against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x7067%2Fagent-bridge-mcp" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0x7067/agent-bridge-mcp
[INFO] finished tweaking git repo https://github.com/0x7067/agent-bridge-mcp
[INFO] tweaked toml for git repo https://github.com/0x7067/agent-bridge-mcp written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0x7067/agent-bridge-mcp on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0x7067/agent-bridge-mcp 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded log v0.4.30
[INFO] [stderr]   Downloaded pty-process v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c
[INFO] running `Command { std: "docker" "start" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", 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" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", 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" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling uuid v1.23.2
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling pty-process v0.5.3
[INFO] [stderr]    Compiling agent-bridge-mcp v0.1.0 (/opt/rustwide/workdir/crates/agent-bridge-mcp)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.05s
[INFO] running `Command { std: "docker" "inspect" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", 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" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling agent-bridge-mcp v0.1.0 (/opt/rustwide/workdir/crates/agent-bridge-mcp)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.94s
[INFO] running `Command { std: "docker" "inspect" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", 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" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/agent_bridge_mcp-59e3ba94ec8b79ee)
[INFO] [stdout] 
[INFO] [stdout] running 129 tests
[INFO] [stdout] test claude_host::tests::build_run_response_marks_success_when_final_text_present ... ok
[INFO] [stdout] test claude_host::tests::build_run_response_marks_failure_and_surfaces_pty_excerpt ... ok
[INFO] [stdout] test claude_host::tests::runner_error_messages_and_logs_are_sanitized ... ok
[INFO] [stdout] test claude_host::tests::unterminated_request_is_rejected ... ok
[INFO] [stdout] test claude_host::tests::socket_path_rejects_live_socket_and_removes_stale_socket ... ok
[INFO] [stdout] test claude_host::tests::workspace_policy_id_fails_for_noncanonical_workspace ... ok
[INFO] [stdout] test claude_host::tests::ping_request_returns_ready_policy_metadata ... ok
[INFO] [stdout] test claude_interactive::failure::tests::non_stop_failure_payload_is_ignored ... ok
[INFO] [stdout] test claude_host::tests::protocol_workspace_timeout_and_effort_validation_fail_before_spawn ... ok
[INFO] [stdout] test claude_host::tests::workspace_policy_id_uses_sorted_canonical_paths ... ok
[INFO] [stdout] test claude_interactive::failure::tests::stop_failure_maps_canonical_claude_errors ... ok
[INFO] [stdout] test claude_interactive::runner::tests::claude_spawn_uses_fixed_login_shell_and_interactive_flags ... ok
[INFO] [stdout] test claude_interactive::hooks::tests::settings_json_registers_runner_owned_lifecycle_hooks ... ok
[INFO] [stdout] test claude_host::tests::host_protocol_serializes_v2_request_and_result_schema ... ok
[INFO] [stdout] test claude_interactive::failure::tests::stop_failure_maps_model_and_oauth_errors ... ok
[INFO] [stdout] test claude_interactive::hooks::tests::event_parser_rejects_unknown_events ... ok
[INFO] [stdout] test claude_interactive::hooks::tests::temporary_settings_are_owner_only_and_not_durable_config ... ok
[INFO] [stdout] test claude_interactive::terminal::tests::terminal_probe_handler_handles_split_probe_bytes ... ok
[INFO] [stdout] test claude_interactive::terminal::tests::terminal_probe_handler_strips_probe_bytes_and_returns_responses ... ok
[INFO] [stdout] test claude_interactive::transcript::tests::malformed_transcript_without_assistant_returns_none ... ok
[INFO] [stdout] test claude_host::tests::command_descriptors_and_unknown_provider_requests_are_rejected ... ok
[INFO] [stdout] test claude_interactive::setup::tests::detects_login_and_workspace_trust_prompts ... ok
[INFO] [stdout] test claude_interactive::setup::tests::strips_ansi_before_matching_setup_prompt ... ok
[INFO] [stdout] test claude_interactive::transcript::tests::parse_transcript_skips_malformed_lines_before_assistant ... ok
[INFO] [stdout] test claude_host::tests::symlink_escape_cwd_is_rejected ... ok
[INFO] [stdout] test claude_host::tests::stream_capture_is_bounded_and_marks_truncation ... ok
[INFO] [stdout] test claude_interactive::setup::tests::ignores_normal_output ... ok
[INFO] [stdout] test claude_interactive::hooks::tests::hook_relay_helper_writes_event_log_events_without_stdout ... ok
[INFO] [stdout] test domain::tests::failure_category_transient_retry_set_matches_spec ... ok
[INFO] [stdout] test claude_host::tests::socket_path_rejects_workspace_file_and_symlink_paths ... ok
[INFO] [stdout] test provider::tests::acp_adapters_do_not_parse_legacy_cli_output ... ok
[INFO] [stdout] test provider::tests::acp_config_names_args_env_var_on_parse_error ... ok
[INFO] [stdout] test claude_interactive::transcript::tests::stop_result_rejects_unsafe_transcript_path_and_uses_fallback ... ok
[INFO] [stdout] test provider::tests::acp_config_parses_optional_args ... ok
[INFO] [stdout] test provider::tests::acp_config_uses_defaults_and_required_bins ... ok
[INFO] [stdout] test provider::tests::build_command_uses_acp_transport ... ok
[INFO] [stdout] test provider::tests::claude_acceptance_report_requires_result_json_line ... ok
[INFO] [stdout] test provider::tests::codex_adapter_detects_fatal_denial_via_trait ... ok
[INFO] [stdout] test provider::tests::lean_return_contract_preserves_mode_boundaries ... ok
[INFO] [stdout] test provider::tests::codex_options_accept_effort_as_thinking_alias ... ok
[INFO] [stdout] test provider::tests::read_only_prompts_prohibit_nested_delegation ... ok
[INFO] [stdout] test provider::tests::permissive_acceptance_reports_document_current_gaps ... ok
[INFO] [stdout] test provider::tests::unblocked_profile_adds_provider_owned_args ... ok
[INFO] [stdout] test provider::tests::prompts_use_shared_lean_return_contract_for_all_profiles ... ok
[INFO] [stdout] test provider::tests::validate_options_enforces_provider_rules ... ok
[INFO] [stdout] test claude_interactive::transcript::tests::stop_result_falls_back_to_last_assistant_message ... ok
[INFO] [stdout] test server::tests::binary_report_classifies_missing_and_oversized_files ... ok
[INFO] [stdout] test claude_interactive::transcript::tests::stop_result_prefers_transcript_assistant_text ... ok
[INFO] [stdout] test server::tests::binary_report_classifies_not_regular_file_as_error ... ok
[INFO] [stdout] test server::tests::binary_report_classifies_matching_and_differing_files ... ok
[INFO] [stdout] test runtime::tests::command_line_match_requires_agent_bridge_mcp_executable ... ok
[INFO] [stdout] test server::tests::command_diagnostics_classify_missing_absolute_and_path_lookup ... ok
[INFO] [stdout] test server::tests::client_diagnostics_from_home_do_not_expose_env_values ... ok
[INFO] [stdout] test server::tests::doctor_host_runner_response_reports_protocol_and_workspace_mismatch ... ok
[INFO] [stdout] test server::tests::doctor_host_runner_error_report_names_stale_pid_file ... ok
[INFO] [stdout] test server::tests::doctor_host_runner_response_reports_successful_ping_metadata ... ok
[INFO] [stdout] test server::tests::orphan_recommendations_empty_when_no_orphans ... ok
[INFO] [stdout] test server::tests::orphan_recommendations_warns_on_stale_worktree_orphans ... ok
[INFO] [stdout] test server::tests::parses_codex_agent_bridge_section_and_env_keys ... ok
[INFO] [stdout] test server::tests::probe_failure_builds_empty_result_with_category_and_error ... ok
[INFO] [stdout] test server::tests::release_binary_path_uses_doctor_cwd_when_no_override ... ok
[INFO] [stdout] test task::acp::tests::ordinary_end_turn_has_no_stop_reason_diagnostic ... ok
[INFO] [stdout] test server::tests::parses_json_agent_bridge_registration ... ok
[INFO] [stdout] test task::acp::tests::semantic_stop_reason_is_preserved_in_diagnostic ... ok
[INFO] [stdout] test task::complete::tests::scan_partial_results_emerges_when_no_final_result ... ok
[INFO] [stdout] test server::tests::doctor_orphans_ok_when_no_orphans ... ok
[INFO] [stdout] test server::tests::doctor_orphans_detects_cleanup_failed_diagnostics ... ok
[INFO] [stdout] test task::complete::tests::classify_success_exit_uses_acceptance_report_reason ... ok
[INFO] [stdout] test server::tests::doctor_orphans_detects_stale_worktree_records ... ok
[INFO] [stdout] test task::complete::tests::scan_partial_results_empty_when_no_result_at_all ... ok
[INFO] [stdout] test task::complete::tests::scan_partial_results_final_result_dominates ... ok
[INFO] [stdout] test task::complete::tests::success_acceptance_preserves_default_permissive_mode ... ok
[INFO] [stdout] test task::complete::tests::success_acceptance_rejects_codex_denial_without_strict_mode ... ok
[INFO] [stdout] test claude_host::tests::shutdown_cleanup_terminates_active_child_process_group ... ok
[INFO] [stdout] test domain::tests::failure_category_rejects_unknown_strings ... ok
[INFO] [stdout] test domain::tests::failure_category_round_trip_serialization ... ok
[INFO] [stdout] test task::complete::tests::success_acceptance_rejects_invalid_output_when_strict ... ok
[INFO] [stdout] test task::supervision::tests::registry_tracks_and_clears ... ok
[INFO] [stdout] test runtime::tests::pid_lock_reclaims_pid_file_for_unrelated_live_process ... ok
[INFO] [stdout] test domain::tests::failure_category_from_str_round_trip ... ok
[INFO] [stdout] test task::tests::agent_handoff_reports_failed_stopped_and_stale_outcomes ... ok
[INFO] [stdout] test task::supervision::tests::terminate_all_signals_only_registered_children ... ok
[INFO] [stdout] test task::tests::agent_handoff_reports_partial_before_failed_outcome ... ok
[INFO] [stdout] test task::tests::agent_handoff_reports_success_without_verification_claims ... ok
[INFO] [stdout] test task::tests::agent_timeline_prefers_high_stall_risk_over_events ... ok
[INFO] [stdout] test task::tests::agent_timeline_marks_running_activity_from_events ... ok
[INFO] [stdout] test task::supervision::tests::terminate_child_tree_sends_sigterm_to_unix_process_group ... ok
[INFO] [stdout] test task::tests::agent_timeline_marks_high_stall_risk_as_stalled ... ok
[INFO] [stdout] test task::supervision::tests::stderr_denial_scanner_reads_only_appended_bytes ... ok
[INFO] [stdout] test task::tests::completion_notification_payload_is_compact_and_actionable ... ok
[INFO] [stdout] test task::tests::display_title_uses_safe_provider_mode_fallback ... ok
[INFO] [stdout] test task::tests::insert_detail_fields_writes_detail_flags ... ok
[INFO] [stdout] test task::tests::compute_jittered_backoff_clamps_and_jitters ... ok
[INFO] [stdout] test task::tests::insert_evidence_fields_respects_section_flags ... ok
[INFO] [stdout] test task::tests::insert_outcome_fields_writes_exit_signal_error_and_type ... ok
[INFO] [stdout] test task::tests::insert_outcome_fields_writes_nulls_when_absent ... ok
[INFO] [stdout] test task::tests::max_active_tasks_defaults_when_unset ... ok
[INFO] [stdout] test task::tests::list_tasks_filters_and_rejects_invalid_limits ... ok
[INFO] [stdout] test task::tests::next_actions_reflect_running_final_and_worktree_states ... ok
[INFO] [stdout] test task::tests::public_agent_returns_lean_envelope_for_all_lifecycle_states ... ok
[INFO] [stdout] test task::tests::public_task_includes_quiet_timeline_for_state_only_observe_paths ... ok
[INFO] [stdout] test task::tests::list_tasks_defaults_to_bounded_active_recent_presentation ... ok
[INFO] [stdout] test task::tests::progress_snapshot_skips_corrupted_lines ... ok
[INFO] [stdout] test task::tests::load_registry_accepts_legacy_task_id_records ... ok
[INFO] [stdout] test task::tests::load_registry_rejects_corrupted_canonical_file ... ok
[INFO] [stdout] test task::tests::load_registry_removes_known_temp_files ... ok
[INFO] [stdout] test task::tests::observe_wakes_promptly_when_task_watch_is_signaled ... ok
[INFO] [stdout] test task::tests::read_capped_file_returns_without_waiting_for_fifo_eof ... ok
[INFO] [stdout] test task::tests::read_transcript_skips_corrupted_lines_before_cursor ... ok
[INFO] [stdout] test task::tests::read_transcript_marks_partial_and_final_result_events ... ok
[INFO] [stdout] test task::tests::remove_returns_error_on_save_failure ... ok
[INFO] [stdout] test task::tests::router_attempt_uses_spawn_wait_and_result_paths ... ok
[INFO] [stdout] test task::tests::transcript_evidence_skips_corrupted_lines ... ok
[INFO] [stdout] test task::tests::transition_status_rejects_illegal_moves ... ok
[INFO] [stdout] test task::tests::remove_records_diagnostic_on_dir_cleanup_failure ... ok
[INFO] [stdout] test task::tests::save_registry_preserves_records_from_concurrent_snapshot ... ok
[INFO] [stdout] test task::tests::start_preserves_running_task_owned_by_live_bridge ... ok
[INFO] [stdout] test task::tests::wait_wakes_promptly_when_task_watch_is_signaled ... ok
[INFO] [stdout] test task::complete::tests::scan_partial_results_skips_corrupted_lines_before_tail ... ok
[INFO] [stdout] test task::tests::remove_returns_error_on_git_worktree_failure ... ok
[INFO] [stdout] test task::tests::permanent_failure_does_not_trigger_retry ... ok
[INFO] [stdout] test task::tests::retry_appends_transcript_event_before_respawn ... ok
[INFO] [stdout] test claude_host::tests::oversized_request_is_rejected_before_json_parse ... ok
[INFO] [stdout] test task::tests::retry_exhaustion_schedules_respawns_within_budget ... ok
[INFO] [stdout] test claude_host::tests::client_disconnect_terminates_and_reaps_child has been running for over 60 seconds
[INFO] [stdout] test claude_interactive::runner::tests::owned_runner_completes_fake_claude_success has been running for over 60 seconds
[INFO] [stdout] test claude_interactive::runner::tests::owned_runner_detects_setup_prompt has been running for over 60 seconds
[INFO] [stdout] test claude_interactive::runner::tests::owned_runner_ignores_premature_stop_and_resolves_real_completion has been running for over 60 seconds
[INFO] [stdout] test claude_interactive::runner::tests::owned_runner_terminates_repl_after_stop_event has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c", kill_on_drop: false }`
[INFO] [stdout] b140088819e049373170ea9c53ff7254f17e708946960ad8294e2b95303aa07c
