tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema0-kwargs]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema0-returns]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema1-kwargs]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema1-returns]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema2-kwargs]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema2-returns]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema3-kwargs]
tests/test_action_schema_metadata.py::test_declared_schema_env_is_preserved[schema3-returns]
tests/test_action_schema_metadata.py::test_runtime_env_still_redacts_at_nested_metadata_locations[value0-expected0]
tests/test_action_schema_metadata.py::test_runtime_env_still_redacts_at_nested_metadata_locations[value1-expected1]
tests/test_action_schema_metadata.py::test_runtime_env_still_redacts_at_nested_metadata_locations[value2-[REDACTED]]
tests/test_action_schema_metadata.py::test_runtime_env_still_redacts_at_nested_metadata_locations[host-secret-[REDACTED]]
tests/test_action_schema_metadata.py::test_runtime_env_still_redacts_at_nested_metadata_locations[None-None]
tests/test_action_schema_metadata.py::test_public_metadata_preserves_schema_and_registry
tests/test_action_schema_metadata.py::test_default_planner_receives_real_declared_env_schema
tests/test_action_workspace_resource_order.py::test_action_orders_workspace_grant_sandbox_bundle_execution_and_cleanup
tests/test_action_workspace_resource_order.py::test_repeated_action_calls_receive_distinct_host_owned_call_ids
tests/test_action_workspace_resource_order.py::test_action_timeout_releases_resource_and_workspace_grant_exactly_once
tests/test_action_workspace_resource_order.py::test_action_reports_release_failure_and_still_revokes_workspace_grant
tests/test_action_workspace_resource_order.py::test_action_timeout_result_includes_release_failure_diagnostic
tests/test_agent_execution_artifact.py::test_text_artifact_uses_read_only_fallback_and_preserves_business_result
tests/test_agent_execution_artifact.py::test_json_artifact_uses_requested_path_in_read_write_workspace
tests/test_agent_execution_artifact.py::test_multiple_artifacts_support_sync_text_and_async_bytes_handlers
tests/test_agent_execution_artifact.py::test_artifacts_complete_before_review_and_are_visible_in_review_context
tests/test_agent_execution_artifact.py::test_artifact_rejects_paths_outside_task_workspace
tests/test_agent_execution_artifact.py::test_artifact_digest_mismatch_fails_declared_delivery
tests/test_agent_execution_artifact.py::test_artifact_rejects_invalid_declaration
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[direct_text]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[direct_json]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[concurrent_readers]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[mutation_and_fresh]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[provider_failure]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[fluent_isolation]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[validation_repair]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[validation_exhaustion]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[review_warn]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[review_block]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[artifact_review]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[artifact_escape]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[default_review_artifact]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[plan_ready]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[plan_clarification]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[plan_budget]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[plan_validation]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[long_content]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[long_content_rejected]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[action_once]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[resume_flat]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[resume_taskboard]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[goal_direct]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[ensure_short]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[ensure_continuation]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[ensure_stale]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[ensure_task_conflict]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[flat_task]
tests/test_agent_execution_characterization.py::test_execution_matches_recovered_behavior[taskboard_task]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[direct_json-path0-3]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[direct_json-path1-True]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[direct_text-path2-Dropped original input]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[direct_text-path3-Changed instruction]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[concurrent_readers-path4-2]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[action_once-path5-marker\nmarker\n]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[action_once-path6-replacement6]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[provider_failure-path7-ValueError]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[artifact_review-path8-0000000000000000000000000000000000000000000000000000000000000000]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[artifact_review-path9-application/x-unapproved]
tests/test_agent_execution_characterization.py::test_comparator_detects_unapproved_changes[default_review_artifact-path10-Artifact body omitted]
tests/test_agent_execution_characterization.py::test_comparator_detects_event_reordering_and_missing_keys
tests/test_agent_execution_characterization.py::test_approved_delta_is_exact_not_a_path_wildcard
tests/test_agent_execution_characterization.py::test_migrated_contracts_still_reject_unapproved_results[long_content-path0-Lost chapter]
tests/test_agent_execution_characterization.py::test_migrated_contracts_still_reject_unapproved_results[long_content-path1-5]
tests/test_agent_execution_characterization.py::test_migrated_contracts_still_reject_unapproved_results[long_content_rejected-path2-replacement2]
tests/test_agent_execution_characterization.py::test_migrated_contracts_still_reject_unapproved_results[ensure_continuation-path3-lost prefix]
tests/test_agent_execution_characterization.py::test_migrated_contracts_still_reject_unapproved_results[ensure_stale-path4-ValueError]
tests/test_agent_execution_characterization.py::test_normalization_preserves_unbound_business_ids_refs_and_file_digests
tests/test_agent_execution_characterization.py::test_normalization_preserves_distinct_identity_relationships
tests/test_agent_execution_characterization.py::test_normalization_rejects_broken_host_clocks[events0]
tests/test_agent_execution_characterization.py::test_normalization_rejects_broken_host_clocks[events1]
tests/test_agent_execution_compatibility.py::test_agent_quick_prompt_start_creates_isolated_execution_each_turn
tests/test_agent_execution_compatibility.py::test_completed_agent_execution_reconfiguration_requires_new_execution
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_is_opt_in_and_fluent
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_reconfiguration_after_start
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_short_path_reports_guarantee_level
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_continues_plain_text_losslessly
tests/test_agent_execution_compatibility.py::test_agent_execution_long_output_settles_stage_owned_continuation_tasks
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_separates_text_anchor_from_continuity_context
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_stream_hides_private_envelopes
tests/test_agent_execution_compatibility.py::test_long_output_continuation_keeps_request_scope_carrier_and_local_settings
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta0]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta1]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta2]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta3]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta4]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta5]
tests/test_agent_execution_compatibility.py::test_long_output_rejects_unsafe_or_conflicting_terminal_facts[meta6]
tests/test_agent_execution_compatibility.py::test_long_output_does_not_continue_an_unsafe_initial_response[meta0]
tests/test_agent_execution_compatibility.py::test_long_output_does_not_continue_an_unsafe_initial_response[meta1]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta0-complete]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta1-complete]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta2-length]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta3-length]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta4-unknown]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_positive_terminal_signals[meta5-unknown]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_list_level_description[False]
tests/test_agent_execution_compatibility.py::test_long_output_preserves_list_level_description[True]
tests/test_agent_execution_compatibility.py::test_long_output_prompt_contains_only_relevant_carrier_rules[False]
tests/test_agent_execution_compatibility.py::test_long_output_prompt_contains_only_relevant_carrier_rules[True]
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_preserves_complete_structured_units
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_validates_only_final_assembled_value
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_replays_root_list
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_keeps_valid_prefix_and_regenerates_invalid_unit
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_enforces_constrained_list_bounds
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_nested_constraint_violation_before_manifest
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_orders_exact_lists_and_exposes_context
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_repairs_final_validation_without_losing_units
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_bounds_final_validation_repairs
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_assembles_more_than_seventy_units
tests/test_agent_execution_compatibility.py::test_agent_execution_stream_preserves_structured_completion_provenance
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_commits_closed_updates_from_truncated_continuation
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_commits_one_text_update_per_continuation
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_commits_structured_prefix_from_truncated_continuation
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_commits_large_deferred_prefix
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_recovers_after_length_before_header_close
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_owns_complete_envelope_recovery
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_bounds_incomplete_header_no_progress
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_normalizes_nested_slot_values_without_serializer_warning
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_replays_initial_structured_text_slot
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_append_to_completed_structured_text
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_preserves_observed_empty_list
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_continuation_declares_empty_list
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_stale_empty_list_declaration
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_requires_manifest_fact_before_final
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_many_segments_do_not_grow_call_stack
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_fails_closed_after_repeated_no_progress
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_stale_digest_without_committing
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_fails_when_manifest_replay_changes
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_respects_execution_model_request_budget
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_rejects_unsupported_format_before_dispatch
tests/test_agent_execution_compatibility.py::test_agent_execution_ensure_long_output_does_not_mix_with_agent_task
tests/test_agent_execution_compatibility.py::test_completed_agent_execution_create_execution_returns_clean_fresh_execution
tests/test_agent_execution_compatibility.py::test_agent_quick_prompt_uses_current_agent_chat_history
tests/test_agent_execution_compatibility.py::test_agent_execution_get_data_object_returns_model_object
tests/test_agent_execution_compatibility.py::test_agent_execution_result_get_data_object_returns_model_object
tests/test_agent_execution_compatibility.py::test_agent_execution_key_waiter_facade_uses_execution_prompt
tests/test_agent_execution_compatibility.py::test_agent_execution_key_waiter_result_key_ignores_terminal_execution_result
tests/test_agent_execution_compatibility.py::test_agent_execution_prompt_text_is_available_before_and_after_start
tests/test_agent_execution_compatibility.py::test_agent_get_prompt_text_reports_execution_prompt_boundary
tests/test_agent_execution_compatibility.py::test_agent_execution_specific_stream_yields_event_tuples
tests/test_agent_execution_compatibility.py::test_agent_execution_streaming_print_uses_execution_delta_stream
tests/test_agent_execution_compatibility.py::test_agent_execution_delta_stream_filters_original_provider_delta
tests/test_agent_execution_compatibility.py::test_agent_execution_instant_stream_preserves_full_data_snapshot
tests/test_agent_execution_goal.py::test_goal_default_preserves_long_task_activation
tests/test_agent_execution_goal.py::test_goal_false_is_visible_prompt_without_task_activation
tests/test_agent_execution_goal.py::test_repeated_goal_disables_only_goal_owned_activation
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[True-direct-model_request]
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[True-flat-agent_task]
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[True-taskboard-agent_task]
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[False-direct-model_request]
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[False-flat-agent_task]
tests/test_agent_execution_goal.py::test_goal_preserves_explicit_strategy[False-taskboard-agent_task]
tests/test_agent_execution_goal.py::test_goal_prompt_is_the_authoritative_source
tests/test_agent_execution_goal.py::test_semantic_options_do_not_reenable_goal_after_opt_out
tests/test_agent_execution_goal.py::test_goals_alias_and_execution_options_roundtrip
tests/test_agent_execution_goal.py::test_goal_switch_requires_bool_and_invalid_input_is_atomic[None]
tests/test_agent_execution_goal.py::test_goal_switch_requires_bool_and_invalid_input_is_atomic[false]
tests/test_agent_execution_goal.py::test_goal_switch_requires_bool_and_invalid_input_is_atomic[0]
tests/test_agent_execution_goal.py::test_goal_switch_requires_bool_and_invalid_input_is_atomic[1]
tests/test_agent_execution_lifecycle_control.py::test_cancel_draft_prevents_dispatch_and_mutation
tests/test_agent_execution_lifecycle_control.py::test_cancel_waits_for_cleanup_without_waiting_for_callers_followup
tests/test_agent_execution_lifecycle_control.py::test_cancel_timeout_does_not_claim_settlement_or_cancel_cleanup_again
tests/test_agent_execution_lifecycle_control.py::test_close_drains_and_preserves_result_readers
tests/test_agent_execution_lifecycle_control.py::test_close_draft_prevents_dispatch
tests/test_agent_execution_lifecycle_control.py::test_concurrent_readers_share_once_only_production
tests/test_agent_execution_lifecycle_control.py::test_producer_failure_is_preserved_by_close_and_readers
tests/test_agent_execution_lifecycle_control.py::test_close_explicit_cancellation_settles_run
tests/test_agent_execution_lifecycle_control.py::test_sync_cancel_from_another_thread_joins_the_owner_loop
tests/test_agent_execution_lifecycle_control.py::test_cancel_during_context_preparation_never_enters_producer
tests/test_agent_execution_lifecycle_control.py::test_cancellation_cleanup_failure_is_not_successful_cancellation
tests/test_agent_execution_lifecycle_control.py::test_pause_draft_is_a_triggerflow_wait_and_reader_does_not_resume
tests/test_agent_execution_lifecycle_control.py::test_pause_candidate_waits_for_producer_then_resumes_only_final_policies
tests/test_agent_execution_lifecycle_control.py::test_cancel_paused_execution_cancels_actual_graph_wait
tests/test_agent_execution_lifecycle_control.py::test_paused_execution_cannot_reset_cumulative_deadline_on_resume
tests/test_agent_execution_lifecycle_control.py::test_save_load_draft_rebinds_identity_and_does_not_dispatch
tests/test_agent_execution_lifecycle_control.py::test_save_load_candidate_runs_only_rebound_final_policies
tests/test_agent_execution_lifecycle_control.py::test_snapshot_rejects_missing_policy_changed_draft_and_corrupt_candidate
tests/test_agent_execution_lifecycle_control.py::test_interrupt_is_context_information_and_has_a_distinct_consumption_receipt
tests/test_agent_execution_lifecycle_control.py::test_interrupt_after_candidate_is_ignored_without_mutating_it
tests/test_agent_execution_lifecycle_control.py::test_snapshot_preserves_pending_interrupt_information_without_model_dispatch
tests/test_agent_execution_lifecycle_control.py::test_loaded_pause_close_cancel_settles_retained_flow
tests/test_agent_execution_lifecycle_control.py::test_second_pause_retains_new_continuation
tests/test_agent_execution_lifecycle_control.py::test_paused_cancel_timeout_keeps_owned_cleanup_and_reader_failure
tests/test_agent_execution_lifecycle_control.py::test_stream_reader_exposes_pause_without_hanging_or_closing_owner
tests/test_agent_execution_lifecycle_control.py::test_rework_same_identity_preserves_captured_readers_and_budget
tests/test_agent_execution_lifecycle_control.py::test_failed_rework_keeps_prior_candidate_and_consumes_attempt
tests/test_agent_execution_lifecycle_control.py::test_rework_limit_cannot_be_raised_and_custom_producer_is_not_implicitly_safe
tests/test_agent_execution_lifecycle_control.py::test_snapshot_restores_revisions_readers_and_replay_budget
tests/test_agent_execution_lifecycle_control.py::test_snapshot_rejects_live_resource_and_cancel_releases_only_owned_scope
tests/test_agent_execution_plugins.py::test_registered_plugin_is_the_returned_run_owner
tests/test_agent_execution_plugins.py::test_configured_plugin_and_explicit_name_precedence
tests/test_agent_execution_plugins.py::test_released_orchestrator_activation_is_a_creation_compatibility_only
tests/test_agent_execution_plugins.py::test_invalid_plugin_name_fails_before_production[]
tests/test_agent_execution_plugins.py::test_invalid_plugin_name_fails_before_production[ ]
tests/test_agent_execution_plugins.py::test_invalid_plugin_name_fails_before_production[unregistered]
tests/test_agent_execution_plugins.py::test_agent_named_plugin_does_not_replace_fluent_method
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[False-request-model_request]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[False-long_task-agent_task]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[False-plan-plan]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[False-long_content-long_content]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[True-request-model_request]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[True-long_task-agent_task]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[True-plan-plan]
tests/test_agent_execution_plugins.py::test_named_execution_is_not_replaced_by_goal_convenience[True-long_content-long_content]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[request-flat]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[request-taskboard]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[long_task-direct]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[plan-direct]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[plan-flat]
tests/test_agent_execution_plugins.py::test_named_execution_rejects_incompatible_strategy_before_dispatch[long_content-taskboard]
tests/test_agent_execution_plugins.py::test_named_execution_cannot_fallback_through_route_policy[request]
tests/test_agent_execution_plugins.py::test_named_execution_cannot_fallback_through_route_policy[long_task]
tests/test_agent_execution_plugins.py::test_named_execution_cannot_fallback_through_route_policy[plan]
tests/test_agent_execution_plugins.py::test_named_execution_cannot_fallback_through_route_policy[long_content]
tests/test_agent_execution_producers.py::test_default_request_preserves_one_run_and_no_extra_model_pass
tests/test_agent_execution_producers.py::test_standard_interaction_handler_is_idle_without_an_exchange
tests/test_agent_execution_producers.py::test_standard_interaction_handler_rejects_non_callable
tests/test_agent_execution_producers.py::test_named_producer_reuses_default_without_new_execution_identity
tests/test_agent_execution_producers.py::test_producer_can_own_result_without_dispatching_root_request
tests/test_agent_execution_producers.py::test_producer_uses_existing_output_contract
tests/test_agent_execution_producers.py::test_producer_result_flows_through_artifact_then_review
tests/test_agent_execution_producers.py::test_public_async_run_override_is_not_hidden_by_instance_aliases
tests/test_agent_execution_producers.py::test_failed_producer_is_not_silently_dispatched_again
tests/test_agent_execution_result_data_view.py::test_direct_result_get_data_and_get_full_data_share_business_view
tests/test_agent_execution_result_data_view.py::test_direct_terminal_retention_keeps_small_result_inline
tests/test_agent_execution_result_data_view.py::test_direct_large_result_is_not_copied_into_workspace
tests/test_agent_execution_result_data_view.py::test_direct_terminal_cleanup_keeps_only_verified_file_ref
tests/test_agent_execution_result_data_view.py::test_agent_execution_error_projection_is_shared_and_utf8_bounded[limit]
tests/test_agent_execution_result_data_view.py::test_agent_execution_error_projection_is_shared_and_utf8_bounded[general]
tests/test_agent_execution_result_data_view.py::test_task_strategy_get_data_projects_structured_final_result
tests/test_agent_execution_result_data_view.py::test_taskboard_get_data_projects_structured_final_result_without_losing_full_envelope
tests/test_agent_execution_result_data_view.py::test_task_strategy_get_data_keeps_full_envelope_when_final_result_missing
tests/test_agent_execution_review.py::test_semantic_goal_reaches_producer_and_review_once[None]
tests/test_agent_execution_review.py::test_semantic_goal_reaches_producer_and_review_once[Source excerpt]
tests/test_agent_execution_review.py::test_advisory_review_records_failure_without_changing_result
tests/test_agent_execution_review.py::test_blocking_review_prevents_terminal_success
tests/test_agent_execution_review.py::test_review_handlers_run_in_fluent_order_and_accept_async_handlers
tests/test_agent_execution_review.py::test_review_without_handler_uses_one_structured_model_request
tests/test_agent_execution_review.py::test_review_runs_after_successful_agent_task_route
tests/test_agent_execution_review.py::test_review_rejects_non_callable_handler
tests/test_agent_execution_review.py::test_default_review_reads_complete_transformed_artifact_and_isolates_prompt
tests/test_agent_execution_review.py::test_identical_candidate_refers_to_artifact_without_duplicate_body
tests/test_agent_execution_review.py::test_unreadable_artifact_is_not_assessable_and_never_claims_model_review
tests/test_agent_execution_review.py::test_handler_replaces_model_review_and_receives_frozen_rules
tests/test_agent_execution_review.py::test_review_rejects_unsupported_behavior_and_empty_rules[options0]
tests/test_agent_execution_review.py::test_review_rejects_unsupported_behavior_and_empty_rules[options1]
tests/test_agent_execution_review.py::test_review_rejects_unsupported_behavior_and_empty_rules[options2]
tests/test_agent_execution_review.py::test_model_review_rejects_missing_rule_coverage_or_issue_support_without_retry[checks0-True]
tests/test_agent_execution_review.py::test_model_review_rejects_missing_rule_coverage_or_issue_support_without_retry[checks1-False]
tests/test_agent_execution_review.py::test_changed_artifact_is_not_accepted_from_earlier_readback_metadata
tests/test_agent_execution_rework.py::test_long_content_rework_reuses_prefix_and_invalidates_dependants
tests/test_agent_execution_rework.py::test_plan_rework_keeps_accepted_clarification
tests/test_agent_execution_rework.py::test_action_dispatch_replay_protection_includes_nested_and_uncertain_effects[False-False]
tests/test_agent_execution_rework.py::test_action_dispatch_replay_protection_includes_nested_and_uncertain_effects[True-False]
tests/test_agent_execution_rework.py::test_action_dispatch_replay_protection_includes_nested_and_uncertain_effects[False-True]
tests/test_agent_execution_rework.py::test_unified_flat_rework_creates_new_work_with_cumulative_iterations[False]
tests/test_agent_execution_rework.py::test_unified_flat_rework_creates_new_work_with_cumulative_iterations[True]
tests/test_agent_execution_rework.py::test_taskboard_rework_validates_reused_files_and_dependency_closure[False]
tests/test_agent_execution_rework.py::test_taskboard_rework_validates_reused_files_and_dependency_closure[True]
tests/test_agent_execution_rework.py::test_unified_taskboard_rework_reenters_producer_instead_of_terminal_resume[1-collect]
tests/test_agent_execution_rework.py::test_unified_taskboard_rework_reenters_producer_instead_of_terminal_resume[10-collect]
tests/test_agent_execution_rework.py::test_unified_taskboard_rework_reenters_producer_instead_of_terminal_resume[10-candidate]
tests/test_agent_execution_rework.py::test_compatibility_task_budget_covers_rework_scope_before_dispatch
tests/test_agent_execution_rework.py::test_request_rework_preserves_original_information_and_instructions
tests/test_agent_execution_snapshot_typed.py::test_snapshot_reconstructs_original_schema_once[RootModel[str]-plain root-False]
tests/test_agent_execution_snapshot_typed.py::test_snapshot_reconstructs_original_schema_once[RootModel[str]-plain root-True]
tests/test_agent_execution_snapshot_typed.py::test_snapshot_reconstructs_original_schema_once[TypedReport-payload1-False]
tests/test_agent_execution_snapshot_typed.py::test_snapshot_reconstructs_original_schema_once[TypedReport-payload1-True]
tests/test_agent_execution_snapshot_typed.py::test_field_snapshot_retains_current_and_historical_typed_views[ChapterReport]
tests/test_agent_execution_snapshot_typed.py::test_field_snapshot_retains_current_and_historical_typed_views[schema1]
tests/test_agent_skills_reconnection.py::test_skill_selection_receives_complete_task_without_replacing_its_output
tests/test_agent_skills_reconnection.py::test_skill_selection_preserves_input_when_no_goal_is_declared
tests/test_agent_skills_reconnection.py::test_model_decision_skill_selection_uses_host_keys_and_exact_revision
tests/test_agent_skills_reconnection.py::test_skill_selection_uses_execution_scope_and_unchanged_preparation_is_idempotent
tests/test_agent_skills_reconnection.py::test_later_context_phases_do_not_reselect_unbound_skill_candidates[selected_keys0]
tests/test_agent_skills_reconnection.py::test_later_context_phases_do_not_reselect_unbound_skill_candidates[selected_keys1]
tests/test_agent_skills_reconnection.py::test_required_skills_remain_readable_in_later_task_phases
tests/test_agent_skills_reconnection.py::test_fresh_user_execution_reselects_agent_default_skills
tests/test_agent_skills_reconnection.py::test_execution_without_skill_declarations_does_not_read_global_library
tests/test_agent_skills_reconnection.py::test_execution_local_skill_reconfiguration_refreshes_scope_before_start
tests/test_agent_skills_reconnection.py::test_invalid_model_skill_key_fails_closed_without_binding
tests/test_agent_skills_reconnection.py::test_required_skill_pack_resolves_to_exact_library_revisions
tests/test_agent_skills_reconnection.py::test_resolve_skills_plan_is_binding_and_route_preview
tests/test_agent_skills_reconnection.py::test_required_skill_availability_joins_revision_selector_to_canonical_id
tests/test_agent_skills_reconnection.py::test_run_skills_task_adapts_an_ordinary_agent_execution
tests/test_agent_skills_reconnection.py::test_agent_skills_extension_has_no_second_execution_owner
tests/test_agent_skills_reconnection.py::test_agent_task_planner_snapshot_contains_actions_not_skill_context
tests/test_agent_skills_reconnection.py::test_agent_task_skill_lifecycle_event_names_do_not_claim_activation
tests/test_agent_task_block_carrier_runner.py::test_framework_real_sample_runner_uses_public_task_workspace_keyword
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_summary_records_graph_facts_without_runner_verdict
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_qwen_model_override
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_summary_records_runtime_observability_without_verdict
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_allows_framework_no_progress_as_liveness
tests/test_agent_task_block_carrier_runner.py::test_framework_route_metrics_count_model_request_events_from_stream_summary
tests/test_agent_task_block_carrier_runner.py::test_model_usage_summary_keeps_unknown_tokens_and_estimated_lengths
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_defaults_do_not_apply_iteration_caps
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_rejects_strategy_caps
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_model_pool_uses_requested_provider_for_bare_models
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_defaults_bare_models_to_deepseek
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_records_model_pool_resource_exhaustion_fact
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_marks_early_model_liveness_timeout_retryable
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_retries_model_liveness_timeout_after_material_progress
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_runner_omits_provider_request_payload_from_attempt_preview
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_omits_provider_request_payload_from_stream_preview
tests/test_agent_task_block_carrier_runner.py::test_hidden_source_audit_records_fact_without_overriding_judge
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_exposes_structured_action_data_without_artifact_refs_to_judge
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_reads_terminal_evidence_projection_from_close_snapshot
tests/test_agent_task_block_carrier_runner.py::test_framework_action_event_count_includes_nested_agent_task_actions
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_stock_audit_joins_same_run_dynamic_quote_across_projection_chain
tests/test_agent_task_block_carrier_runner.py::test_block_carrier_stock_audit_rejects_partial_observer_object_even_when_ticker_exists
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_prioritizes_action_readbacks_before_ref_limit
tests/test_agent_task_block_carrier_runner.py::test_real_sample_runner_keeps_nested_action_readback_excerpts_for_judge
tests/test_agent_task_block_carrier_runner.py::test_lmcc_framework_criteria_preserve_source_ref_contract
tests/test_agent_task_experiment_examples.py::test_shared_example_summary_uses_terminal_envelope_for_task_status
tests/test_audio_model_request.py::test_audio_public_exports
tests/test_audio_model_request.py::test_complete_calls_preserve_audio_and_distinct_models
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[empty_text]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[missing_model]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[empty_audio]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[bad_speed]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[bad_format]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[override]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[multipart_override]
tests/test_audio_model_request.py::test_invalid_inputs_do_not_dispatch[missing_file]
tests/test_audio_model_request.py::test_stt_failure_is_not_success_or_retry[response0]
tests/test_audio_model_request.py::test_stt_failure_is_not_success_or_retry[response1]
tests/test_audio_model_request.py::test_stt_failure_is_not_success_or_retry[response2]
tests/test_audio_model_request.py::test_stt_failure_is_not_success_or_retry[response3]
tests/test_audio_model_request.py::test_stt_failure_is_not_success_or_retry[response4]
tests/test_audio_model_request.py::test_bad_speech_delivery_is_rejected[200--audio/wav]
tests/test_audio_model_request.py::test_bad_speech_delivery_is_rejected[200-{"error":"failed"}-application/json]
tests/test_audio_model_request.py::test_bad_speech_delivery_is_rejected[503-unavailable-text/plain]
tests/test_audio_model_request.py::test_bad_speech_delivery_is_rejected[302-redirect-text/plain]
tests/test_audio_model_request.py::test_timeout_closes_client_without_implicit_retry
tests/test_audio_model_request.py::test_speech_stream_is_ordered_and_closed[False]
tests/test_audio_model_request.py::test_speech_stream_is_ordered_and_closed[True]
tests/test_audio_model_request.py::test_transcription_stream_requires_done[data: {"type":"transcript.text.done","text":"\u4f60\u597d"}\n\n-False]
tests/test_audio_model_request.py::test_transcription_stream_requires_done[-True]
tests/test_audio_model_request.py::test_transcription_stream_requires_done[data: {"type":"error","error":"failed"}\n\n-True]
tests/test_audio_model_request.py::test_transcription_stream_requires_done[data: {"type":"transcript.text.done","text":null}\n\n-True]
tests/test_audio_model_request.py::test_cancel_closes_transport
tests/test_audio_model_request.py::test_realtime_is_not_emulated_by_buffering
tests/test_audio_model_request.py::test_default_driver_does_not_claim_all_compatible_streaming
tests/test_audio_model_request.py::test_sync_entry_in_async_caller_and_explicit_agent_mount
tests/test_audio_model_request.py::test_execution_static_dynamic_dependency_and_binding_stability
tests/test_audio_model_request.py::test_factory_rejects_missing_dependency_before_plugin_constructor
tests/test_audio_model_request.py::test_concurrent_calls_keep_inputs_and_cleanup_separate
tests/test_audio_model_request.py::test_input_stream_can_be_owned_by_replacement_driver
tests/test_audio_stream_composition.py::test_tts_output_modes_share_segments_and_continuous_samples
tests/test_audio_stream_composition.py::test_segmentation_partition_invariance[]
tests/test_audio_stream_composition.py::test_segmentation_partition_invariance[ ]
tests/test_audio_stream_composition.py::test_segmentation_partition_invariance[\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9\u65e0\u6807\u70b9]
tests/test_audio_stream_composition.py::test_segmentation_partition_invariance[a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002a\r\n\r\nb\u3002c!\u201dd,e\u3002]
tests/test_audio_stream_composition.py::test_segmentation_partition_invariance[3.14 is decimal. Next sentence!\u5c3e\u90e8]
tests/test_audio_stream_composition.py::test_stt_continuous_windows_offsets_and_auto_break
tests/test_audio_stream_composition.py::test_stt_no_punctuation_limit_and_partial_frame
tests/test_audio_stream_composition.py::test_empty_and_early_close_no_extra_requests
tests/test_audio_stream_composition.py::test_cancellation_reaches_inflight_driver
tests/test_audio_stream_composition.py::test_agent_mount_and_bound_stream
tests/test_audio_stream_composition.py::test_wav_chunks_and_format_guard
tests/test_audio_stream_composition.py::test_bad_options_before_source_consumption[options0]
tests/test_audio_stream_composition.py::test_bad_options_before_source_consumption[options1]
tests/test_audio_stream_composition.py::test_bad_options_before_source_consumption[options2]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[aaaaaaaa\nb\u3002c,tail-9]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[aaaaaaaaa\u3002b,tail-10]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[aaaaaaaaa,tail-10]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[aaaaaaaaaaaa,tail-13]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[aaaaaaaaaaaaaaa-14]
tests/test_audio_stream_composition.py::test_greedy_priority_and_grace[a\u3002bbbbbbbbbbbbbb-2]
tests/test_audio_stream_composition.py::test_randomized_chunking_equivalence
tests/test_audio_stream_composition.py::test_source_error_after_output_preserves_prefix_and_no_retry
tests/test_audio_stream_composition.py::test_backpressure_and_concurrent_consumer
tests/test_audio_stream_composition.py::test_stream_option_snapshot_and_two_streams
tests/test_audio_stream_composition.py::test_preflight_and_oversized_input_fail_explicitly
tests/test_audio_stream_composition.py::test_custom_segmenter_and_invalid_output
tests/test_audio_stream_composition.py::test_context_close_cancels_active_read_and_stt_delivers_before_eof
tests/test_audio_stream_composition.py::test_completed_segment_executions_are_released
tests/test_auto_continue.py::test_auto_continue_defaults_off_and_aliases_share_one_draft_flag
tests/test_auto_continue.py::test_legacy_spelling_delegates_to_canonical_method
tests/test_auto_continue.py::test_normal_completion_and_all_readers_share_one_request[auto_continue]
tests/test_auto_continue.py::test_normal_completion_and_all_readers_share_one_request[ensure_long_output]
tests/test_auto_continue.py::test_both_spellings_use_existing_lossless_continuation[auto_continue]
tests/test_auto_continue.py::test_both_spellings_use_existing_lossless_continuation[ensure_long_output]
tests/test_auto_continue.py::test_spelling_does_not_change_snapshot_fingerprint
tests/test_auto_continue.py::test_auto_continue_has_an_explicit_protocol_and_typed_fluent_signature
tests/test_auto_continue.py::test_safe_pause_snapshot_loads_with_other_spelling[auto_continue]
tests/test_auto_continue.py::test_safe_pause_snapshot_loads_with_other_spelling[ensure_long_output]
tests/test_auto_continue_evidence.py::test_complete_json_needs_no_extra_request[terminal0]
tests/test_auto_continue_evidence.py::test_complete_json_needs_no_extra_request[terminal1]
tests/test_auto_continue_evidence.py::test_complete_json_needs_no_extra_request[terminal2]
tests/test_auto_continue_evidence.py::test_plain_tail_confirmation_does_not_invent_content[terminal0]
tests/test_auto_continue_evidence.py::test_plain_tail_confirmation_does_not_invent_content[terminal1]
tests/test_auto_continue_evidence.py::test_plain_tail_confirmation_does_not_invent_content[terminal2]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema0-{"head":"fixed","body":"alpha--p0:body-expected0-terminal0]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema0-{"head":"fixed","body":"alpha--p0:body-expected0-terminal1]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema1-{"items":["fixed","alpha--p0:items[1]-expected1-terminal0]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema1-{"items":["fixed","alpha--p0:items[1]-expected1-terminal1]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema2-{"items":[],"body":"alpha--p0:body-expected2-terminal0]
tests/test_auto_continue_evidence.py::test_open_string_prefix_is_never_discarded[schema2-{"items":[],"body":"alpha--p0:body-expected2-terminal1]
tests/test_auto_continue_evidence.py::test_unknown_terminal_never_turns_malformed_json_into_truncation[{"body":"ok","body":"bad"}]
tests/test_auto_continue_evidence.py::test_unknown_terminal_never_turns_malformed_json_into_truncation[{"body":"ok"} garbage]
tests/test_auto_continue_evidence.py::test_unknown_terminal_never_turns_malformed_json_into_truncation[{"body":invalid]
tests/test_auto_continue_evidence.py::test_complete_private_boundary_can_finish_a_length_terminated_response
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[None-Accepted text.-terminal0]
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[None-Accepted text.-terminal1]
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[None-Accepted text.-terminal2]
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[schema1-{"body":"Accepted"}-terminal0]
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[schema1-{"body":"Accepted"}-terminal1]
tests/test_auto_continue_evidence.py::test_undetermined_stops_legacy_delivery_without_retry[schema1-{"body":"Accepted"}-terminal2]
tests/test_auto_continue_evidence.py::test_legacy_packet_has_one_three_state_completion_field
tests/test_auto_continue_evidence.py::test_explicit_filter_is_not_overridden_by_structural_closure
tests/test_blocks.py::TestFlowBlockProtocol::test_all_blocks_implement_protocol
tests/test_blocks.py::TestFlowBlockProtocol::test_block_names
tests/test_blocks.py::TestReasonBlock::test_direct_execute_basic
tests/test_blocks.py::TestReasonBlock::test_direct_execute_emits_stream_events
tests/test_blocks.py::TestReasonBlock::test_direct_execute_no_stream_bridge
tests/test_blocks.py::TestReasonBlock::test_direct_execute_passes_model_key
tests/test_blocks.py::TestReasonBlock::test_direct_execute_passes_output_schema
tests/test_blocks.py::TestReasonBlock::test_build_operators_creates_chunk_operator
tests/test_blocks.py::TestReasonBlock::test_build_operators_registers_handler
tests/test_blocks.py::TestReadBlock::test_direct_execute
tests/test_blocks.py::TestReadBlock::test_direct_execute_emits_event
tests/test_blocks.py::TestReadBlock::test_direct_execute_respects_max_bytes_override
tests/test_blocks.py::TestReadBlock::test_build_operators
tests/test_blocks.py::TestIntentBlock::test_direct_execute_uses_default_schema
tests/test_blocks.py::TestIntentBlock::test_direct_execute_emits_intent_event
tests/test_blocks.py::TestIntentBlock::test_direct_execute_custom_schema
tests/test_blocks.py::TestIntentBlock::test_build_operators
tests/test_blocks.py::TestFinalizeBlock::test_direct_execute_emits_finalize_event
tests/test_blocks.py::TestFinalizeBlock::test_direct_execute_empty_outputs
tests/test_blocks.py::TestFinalizeBlock::test_direct_execute_with_semantic_outputs
tests/test_blocks.py::TestFinalizeBlock::test_build_operators
tests/test_blocks.py::TestBlockOnTriggerFlow::test_reason_to_finalize_flow
tests/test_blocks.py::TestActBlock::test_implements_protocol
tests/test_blocks.py::TestActBlock::test_direct_execute_tool_allowed
tests/test_blocks.py::TestActBlock::test_direct_execute_tool_denied
tests/test_blocks.py::TestActBlock::test_direct_execute_default_deny_disabled
tests/test_blocks.py::TestActBlock::test_direct_execute_emits_events
tests/test_blocks.py::TestActBlock::test_script_requires_execution_resource
tests/test_blocks.py::TestActBlock::test_build_operators
tests/test_blocks.py::TestObserveBlock::test_implements_protocol
tests/test_blocks.py::TestObserveBlock::test_small_artifact_inlined
tests/test_blocks.py::TestObserveBlock::test_large_artifact_summarized
tests/test_blocks.py::TestObserveBlock::test_no_result
tests/test_blocks.py::TestObserveBlock::test_emits_event
tests/test_blocks.py::TestObserveBlock::test_build_operators
tests/test_blocks.py::TestObserveBlock::test_persists_to_execution_state
tests/test_bounded_process.py::test_windows_startup_diagnostic_preserves_oserror
tests/test_bounded_process.py::test_windows_startup_diagnostic_rejects_symlink
tests/test_bounded_process.py::test_bounded_output_drains_both_channels
tests/test_bounded_process.py::test_empty_argv_argument_is_literal
tests/test_bounded_process.py::test_exited_parent_with_open_descendant_pipe_is_settled[False]
tests/test_bounded_process.py::test_exited_parent_with_open_descendant_pipe_is_settled[True]
tests/test_bounded_process.py::test_cancel_during_spawn_keeps_process_handle
tests/test_bounded_process.py::test_repeated_cancel_waits_for_single_cleanup
tests/test_bounded_process.py::test_cleanup_failure_is_not_success
tests/test_bounded_process.py::test_missing_executable_has_no_cleanup_callback
tests/test_builtin_agent_executions.py::test_default_plugins_register_bundled_agent_executions
tests/test_builtin_agent_executions.py::test_plan_execution_runs_readiness_then_terminal_plan
tests/test_builtin_agent_executions.py::test_application_can_override_bundled_execution_without_builtin_identity
tests/test_builtin_agent_executions.py::test_plan_execution_preserves_structured_output_and_request_validator
tests/test_builtin_agent_executions.py::test_plan_execution_uses_execution_exchange_for_clarification
tests/test_builtin_agent_executions.py::test_plan_execution_uses_standard_agent_interaction_handler
tests/test_builtin_agent_executions.py::test_plan_execution_fails_closed_for_durable_clarification
tests/test_builtin_agent_executions.py::test_plan_execution_rejects_transport_continuation_mix
tests/test_builtin_agent_executions.py::test_long_task_terminal_policies_share_structured_business_value
tests/test_builtin_agent_executions.py::test_retained_goal_contract_and_original_request_reach_review_without_regeneration
tests/test_builtin_agent_executions.py::test_missing_long_task_contract_is_prepared_once_and_preserves_declarations[None-None]
tests/test_builtin_agent_executions.py::test_missing_long_task_contract_is_prepared_once_and_preserves_declarations[Explicit goal-None]
tests/test_builtin_agent_executions.py::test_missing_long_task_contract_is_prepared_once_and_preserves_declarations[None-declared_criteria2]
tests/test_builtin_agent_executions.py::test_complete_or_restored_contract_needs_no_preparation_request
tests/test_builtin_agent_executions.py::test_missing_goal_information_blocks_without_task_or_final_policy
tests/test_builtin_agent_executions.py::test_goal_preparation_is_counted_against_outer_budget
tests/test_builtin_agent_executions.py::test_expired_goal_preparation_dispatches_nothing
tests/test_builtin_agent_executions.py::test_goal_preparation_stops_and_joins_before_terminal[0-deadline]
tests/test_builtin_agent_executions.py::test_goal_preparation_stops_and_joins_before_terminal[0-cancel]
tests/test_builtin_agent_executions.py::test_goal_preparation_stops_and_joins_before_terminal[0.2-deadline]
tests/test_builtin_agent_executions.py::test_goal_preparation_stops_and_joins_before_terminal[0.2-cancel]
tests/test_builtin_agent_executions.py::test_preparation_and_task_share_absolute_execution_deadline
tests/test_builtin_agent_executions.py::test_task_plan_deadline_cancels_and_joins_pending_work
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[None-None-None]
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[10-None-10]
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[None-2-2]
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[10-2-2]
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[2-10-2]
tests/test_builtin_agent_executions.py::test_task_deadline_respects_both_owners_without_mutating_limits[2--1--1]
tests/test_builtin_agent_executions.py::test_review_receives_inferred_contract_and_host_provenance
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response0]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response1]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response2]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response3]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response4]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response5]
tests/test_builtin_agent_executions.py::test_goal_preparation_rejects_invalid_contributions[response6]
tests/test_builtin_agent_executions.py::test_builtin_execution_model_stages_share_agent_execution_budget
tests/test_builtin_agent_executions.py::test_long_content_execution_plans_writes_and_host_assembles
tests/test_builtin_agent_executions.py::test_long_content_execution_composes_with_artifact_and_review
tests/test_builtin_agent_executions.py::test_final_validator_checks_assembled_document_once_without_replay
tests/test_builtin_agent_executions.py::test_wrapper_validator_only_sees_transformed_default_result
tests/test_builtin_agent_executions.py::test_agent_task_final_validation_does_not_replay_task
tests/test_builtin_agent_executions.py::test_long_content_execution_rejects_over_limit_plan_before_writing
tests/test_builtin_agent_executions.py::test_long_content_execution_rejects_structured_output_before_model_call
tests/test_builtin_agent_executions.py::test_long_content_execution_uses_request_local_continuation_only
tests/test_changed_python_quality.py::test_changed_python_files_selects_only_live_python_changes
tests/test_changed_python_quality.py::test_changed_python_quality_propagates_linter_failure
tests/test_cmd_async_lifecycle.py::test_cmd_wait_does_not_block_event_loop
tests/test_cmd_async_lifecycle.py::test_cmd_preserves_nonzero_text_newlines_and_empty_argument
tests/test_cmd_async_lifecycle.py::test_cmd_drains_both_streams_and_preserves_full_artifacts
tests/test_cmd_async_lifecycle.py::test_cmd_timeout_keeps_partial_output
tests/test_cmd_async_lifecycle.py::test_cmd_cancellation_settles_owned_process_even_when_repeated[False-False]
tests/test_cmd_async_lifecycle.py::test_cmd_cancellation_settles_owned_process_even_when_repeated[False-True]
tests/test_cmd_async_lifecycle.py::test_cmd_cancellation_settles_owned_process_even_when_repeated[True-False]
tests/test_cmd_async_lifecycle.py::test_cmd_cancellation_settles_owned_process_even_when_repeated[True-True]
tests/test_cmd_async_lifecycle.py::test_cmd_timeout_closes_descendant_held_pipes[False]
tests/test_cmd_async_lifecycle.py::test_cmd_timeout_closes_descendant_held_pipes[True]
tests/test_cmd_async_lifecycle.py::test_cmd_rejected_command_never_spawns
tests/test_cmd_async_lifecycle.py::test_cmd_spawn_failure_propagates
tests/test_cmd_async_lifecycle.py::test_cmd_passes_explicit_environment
tests/test_code_execution_action.py::test_action_materializes_bundle_before_provider_receives_execution_plan
tests/test_code_execution_action.py::test_action_uses_host_registration_dependency_policy_for_adapter_plan
tests/test_code_execution_action.py::test_action_fails_when_a_declared_expected_output_is_missing
tests/test_code_execution_contracts.py::test_provider_capability_and_result_contracts_are_provider_neutral
tests/test_code_execution_contracts.py::test_docker_container_command_enforces_declared_isolation_axes
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args0-syscalls_restricted]
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args1-process_contained]
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args2-privilege_escalation_blocked]
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args3-host_filesystem_restricted]
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args4-privilege_escalation_blocked]
tests/test_code_execution_contracts.py::test_docker_probe_detects_split_form_isolation_weakening[default_args5-host_filesystem_restricted]
tests/test_code_execution_contracts.py::test_workspace_uri_resolves_only_through_provider_supplied_logical_roots
tests/test_code_execution_contracts.py::test_code_execution_bundle_is_immutable_and_has_stable_digest
tests/test_code_execution_contracts.py::test_code_execution_file_rejects_unsafe_paths[../escape.py]
tests/test_code_execution_contracts.py::test_code_execution_file_rejects_unsafe_paths[/absolute.py]
tests/test_code_execution_contracts.py::test_code_execution_file_rejects_unsafe_paths[.agently/private.py]
tests/test_code_execution_contracts.py::test_code_execution_file_rejects_unsafe_paths[source/../../escape]
tests/test_code_execution_contracts.py::test_bundle_rejects_duplicate_case_colliding_files
tests/test_code_execution_contracts.py::test_code_execution_step_rejects_shell_string_and_unbounded_arguments
tests/test_code_execution_contracts.py::test_code_execution_request_bounds_expected_output_declarations
tests/test_code_execution_contracts.py::test_code_execution_bundle_rejects_outputs_outside_output_root
tests/test_code_execution_host_async_bindings.py::test_binding_contract_rejects_implicit_json_conversion_and_unsupported_schema
tests/test_code_execution_host_async_bindings.py::test_bridge_serializes_concurrent_calls_and_records_only_bounded_facts
tests/test_code_execution_host_async_bindings.py::test_bridge_overlaps_parallel_bindings_and_honors_exclusive_barriers
tests/test_code_execution_host_async_bindings.py::test_bridge_bounds_parallel_pressure_and_releases_failed_exclusive_barrier
tests/test_code_execution_host_async_bindings.py::test_bridge_rejects_unknown_invalid_duplicate_and_post_settlement_frames
tests/test_code_execution_host_async_bindings.py::test_bridge_cancellation_propagates_and_drains_started_handler
tests/test_code_execution_host_async_bindings.py::test_bridge_cancellation_marks_active_parallel_and_queued_exclusive_calls
tests/test_code_execution_host_async_bindings.py::test_bridge_close_drains_within_budget_or_cancels[True]
tests/test_code_execution_host_async_bindings.py::test_bridge_close_drains_within_budget_or_cancels[False]
tests/test_code_execution_host_async_bindings.py::test_bridge_close_cleans_up_idle_connections
tests/test_code_execution_host_async_bindings.py::test_injected_python_client_reports_separate_value_and_ordered_logs
tests/test_code_execution_host_async_bindings.py::test_framed_stdio_transport_terminates_unframed_output_flood[1-unframed stdout]
tests/test_code_execution_host_async_bindings.py::test_framed_stdio_transport_terminates_unframed_output_flood[2-stderr]
tests/test_code_execution_host_async_bindings.py::test_framed_stdio_client_returns_value_without_host_storage_channel
tests/test_code_execution_host_async_bindings.py::test_framed_stdio_client_multiplexes_parallel_binding_responses
tests/test_code_execution_host_async_bindings.py::test_framed_stdio_frame_limit_becomes_a_terminal_transport_error
tests/test_code_execution_host_async_bindings.py::test_docker_probe_reports_concrete_host_async_binding_capability
tests/test_code_execution_host_async_bindings.py::test_real_docker_binding_path_when_local_runtime_is_available
tests/test_code_execution_owner_convergence.py::test_python_and_node_helpers_reuse_the_workspace_code_execution_owner
tests/test_code_execution_owner_convergence.py::test_raw_language_execution_owners_are_removed
tests/test_code_execution_owner_convergence.py::test_language_helpers_do_not_reach_through_action_private_owners
tests/test_code_runtime_adapters.py::test_runtime_adapters_create_trusted_immutable_plans[adapter0-py-main.py-python-3.11-python]
tests/test_code_runtime_adapters.py::test_runtime_adapters_create_trusted_immutable_plans[adapter1-javascript-main.js-node-18-node]
tests/test_code_runtime_adapters.py::test_runtime_adapters_create_trusted_immutable_plans[adapter2-golang-main.go-go-1.25-../build/app]
tests/test_code_runtime_adapters.py::test_runtime_adapters_create_trusted_immutable_plans[adapter3-c++-main.cpp-c++-None-../build/app]
tests/test_code_runtime_adapters.py::test_runtime_request_rejects_commands_traversal_and_unbounded_args
tests/test_code_runtime_adapters.py::test_dependency_install_steps_are_host_policy_owned[adapter0-requirements.txt-install_prefix0]
tests/test_code_runtime_adapters.py::test_dependency_install_steps_are_host_policy_owned[adapter1-package.json-install_prefix1]
tests/test_code_runtime_adapters.py::test_dependency_install_steps_are_host_policy_owned[adapter2-go.mod-install_prefix2]
tests/test_code_runtime_adapters.py::test_request_copies_skill_bytes_without_a_source_path
tests/test_code_runtime_adapters.py::test_node_dependency_install_and_go_caches_target_private_build_root
tests/test_compatibility_registry.py::test_current_release_manifest_matches_registry_release_file
tests/test_compatibility_registry.py::test_current_candidate_includes_accepted_development_contracts
tests/test_compatibility_registry.py::test_4_1_4_8_skills_catalog_is_v3_without_rewriting_archives
tests/test_compatibility_registry.py::test_4_1_4_8_release_manifest_pins_stage_native_runtime_contract
tests/test_compatibility_registry.py::test_companion_views_still_derive_from_released_manifest
tests/test_compatibility_registry.py::test_in_development_manifest_retains_released_owner_boundaries
tests/test_compatibility_registry.py::test_in_development_skill_contract_reconnects_to_agent_execution
tests/test_compatibility_registry.py::test_in_development_blocks_and_devtools_keep_owner_boundaries
tests/test_compatibility_registry.py::test_in_development_triggerflow_snapshot_projection_contract
tests/test_compatibility_registry.py::test_in_development_code_execution_and_evidence_replan_contracts
tests/test_compatibility_registry.py::test_in_development_programmatic_action_calling_contract
tests/test_compatibility_registry.py::test_public_typing_contract_remains_explicit
tests/test_compatibility_registry.py::test_agent_execution_plugins_and_terminal_policies_share_one_owner
tests/test_compatibility_registry.py::test_stt_preprocessing_development_does_not_rewrite_released_audio_contract
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[complete-index]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[truncated-index]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[ref_only-index]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[empty-index]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[failed-index]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-instruction]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-information]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-example]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-state]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-artifact]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-capability]
tests/test_context_contracts.py::test_context_block_supports_every_role_and_completeness[lossy-index]
tests/test_context_contracts.py::test_context_contracts_deep_freeze_public_values
tests/test_context_contracts.py::test_context_identity_layers_remain_distinct
tests/test_context_contracts.py::test_package_disclosure_is_not_request_consumption
tests/test_context_contracts.py::test_context_package_exposes_coverage_without_cursor_capability
tests/test_context_contracts.py::test_context_source_descriptor_values_replace_candidate_windows
tests/test_context_contracts.py::test_context_source_descriptor_page_rejects_invalid_values[overrides0-descriptors]
tests/test_context_contracts.py::test_context_source_descriptor_page_rejects_invalid_values[overrides1-next_cursor]
tests/test_context_contracts.py::test_context_source_descriptor_page_rejects_invalid_values[overrides2-next_cursor]
tests/test_context_contracts.py::test_budget_consumer_intent_and_snapshot_are_explicit_values
tests/test_context_contracts.py::test_context_contracts_reject_invalid_required_values[<lambda>-max_chars]
tests/test_context_contracts.py::test_context_contracts_reject_invalid_required_values[<lambda>-max_blocks]
tests/test_context_contracts.py::test_context_contracts_reject_invalid_required_values[<lambda>-consumer_id]
tests/test_context_contracts.py::test_context_contracts_reject_invalid_required_values[<lambda>-query]
tests/test_context_contracts.py::test_context_contracts_reject_invalid_required_values[<lambda>-package_id]
tests/test_context_index.py::test_two_task_contexts_reuse_one_source_revision_partition
tests/test_context_index.py::test_reader_continuation_advances_index_not_source_cursor
tests/test_context_index.py::test_reused_partition_cannot_leak_an_unbound_entry
tests/test_context_index.py::test_required_descriptor_is_anchored_ahead_of_optional_pages
tests/test_context_index.py::test_unknown_source_kind_fails_before_index_or_source_read
tests/test_context_index.py::test_structural_filters_are_applied_by_context_index_not_source
tests/test_context_index.py::test_file_name_pattern_matches_basename_inside_an_exact_path_scope
tests/test_context_index.py::test_context_index_rejects_caller_selected_retrieval_mechanism
tests/test_context_index.py::test_structural_strategy_does_not_claim_observed_embedding_tokens
tests/test_context_index.py::test_warm_hybrid_reuses_partition_embeddings_and_counts_query_separately
tests/test_context_index.py::test_hybrid_index_bounds_semantic_candidate_disclosure_to_reader_capacity
tests/test_context_index.py::test_hybrid_index_skips_query_embedding_when_filters_leave_one_candidate
tests/test_context_index.py::test_hybrid_index_prioritizes_complete_literal_locator_over_term_frequency
tests/test_context_index.py::test_structural_index_preserves_wider_semantic_candidate_window
tests/test_context_index.py::test_optional_vector_failure_degrades_and_required_vector_fails_closed
tests/test_context_index.py::test_trustworthy_delta_reembeds_only_changed_descriptors
tests/test_context_index.py::test_change_feed_failure_records_explicit_full_rebuild_fallback
tests/test_context_model_selection.py::test_model_request_selector_uses_prompt_lanes_and_host_keys_only
tests/test_context_model_selection.py::test_model_request_selector_does_not_locally_validate_semantics_or_join_identity
tests/test_context_model_selection.py::test_model_request_selector_rejects_invalid_output_shape[None]
tests/test_context_model_selection.py::test_model_request_selector_rejects_invalid_output_shape[result1]
tests/test_context_model_selection.py::test_model_request_selector_rejects_invalid_output_shape[result2]
tests/test_context_model_selection.py::test_model_request_selector_rejects_invalid_output_shape[result3]
tests/test_context_model_selection.py::test_model_request_selector_rejects_invalid_output_shape[result4]
tests/test_context_model_selection.py::test_model_request_selector_propagates_request_failure
tests/test_context_model_selection.py::test_selector_projects_read_guidance_without_identity_or_other_metadata
tests/test_context_reader.py::test_one_source_index_failure_does_not_hide_healthy_source_content
tests/test_context_reader.py::test_read_intent_can_bound_candidates_and_exact_read_chars
tests/test_context_reader.py::test_single_optional_candidate_does_not_spend_semantic_selector
tests/test_context_reader.py::test_scoped_source_can_disclose_different_ranges_of_the_same_ref
tests/test_context_reader.py::test_scoped_source_uses_single_content_locator_instead_of_semantic_query
tests/test_context_reader.py::test_ref_only_read_returns_descriptor_identity_without_exact_read
tests/test_context_reader.py::test_context_reader_cannot_be_constructed_outside_task_context
tests/test_context_reader.py::test_task_context_restores_its_consumer_bound_reader
tests/test_context_reader.py::test_context_reader_state_cannot_be_restored_outside_task_context
tests/test_context_reader.py::test_task_context_reader_restore_rejects_foreign_context
tests/test_context_reader.py::test_context_reader_hides_image_body_and_untrusted_summary_without_vlm_capability
tests/test_context_reader.py::test_context_reader_delivers_image_attachment_only_to_capable_consumer
tests/test_context_reader.py::test_context_reader_rejects_invalid_image_attachment_payloads[invalid_content0]
tests/test_context_reader.py::test_context_reader_rejects_invalid_image_attachment_payloads[invalid_content1]
tests/test_context_reader.py::test_context_reader_rejects_invalid_image_attachment_payloads[invalid_content2]
tests/test_context_reader.py::test_context_reader_rejects_invalid_image_attachment_payloads[invalid_content3]
tests/test_context_reader.py::test_generic_attachment_capability_does_not_imply_image_understanding
tests/test_context_reader.py::test_context_reader_keeps_unknown_binary_as_filename_only[artifacts/archive.zip-binary-application/zip]
tests/test_context_reader.py::test_context_reader_keeps_unknown_binary_as_filename_only[artifacts/custom.pkg-archive-application/x-custom]
tests/test_context_reader.py::test_context_reader_keeps_unknown_binary_as_filename_only[artifacts/cache.bin-unknown-application/octet-stream]
tests/test_context_reader.py::test_context_reader_classifies_non_text_files_without_source_kind_hint[assets/unlabeled.png-]
tests/test_context_reader.py::test_context_reader_classifies_non_text_files_without_source_kind_hint[artifacts/unlabeled.zip-]
tests/test_context_reader.py::test_context_reader_classifies_non_text_files_without_source_kind_hint[artifacts/payload-application/octet-stream]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.cjs]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.cts]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.go]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.mjs]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.mts]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/types.pyi]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.c]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.cc]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[src/main.cpp]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[include/main.h]
tests/test_context_reader.py::test_context_reader_classifies_mainstream_source_code_as_text[include/main.hpp]
tests/test_context_reader.py::test_context_reader_fails_closed_on_text_claim_for_non_text_file[reports/disguised.pdf-application/pdf]
tests/test_context_reader.py::test_context_reader_fails_closed_on_text_claim_for_non_text_file[assets/disguised.png-image/png]
tests/test_context_reader.py::test_context_reader_fails_closed_on_text_claim_for_non_text_file[artifacts/disguised.zip-application/zip]
tests/test_context_reader.py::test_context_reader_keeps_unparsed_document_bytes_ref_only
tests/test_context_reader.py::test_context_reader_keeps_unverified_document_text_ref_only
tests/test_context_reader.py::test_context_reader_rejects_document_exact_read_that_drops_parser_proof
tests/test_context_reader.py::test_context_reader_hides_unverified_direct_document_guess
tests/test_context_reader.py::test_context_reader_keeps_direct_image_bytes_ref_only_without_vlm
tests/test_context_reader.py::test_context_reader_rejects_direct_raw_image_bytes_even_for_vlm
tests/test_context_reader.py::test_context_reader_accepts_source_parsed_document_text[report.pdf-pdf-application/pdf]
tests/test_context_reader.py::test_context_reader_accepts_source_parsed_document_text[forecast.xlsx-office-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]
tests/test_context_reader.py::test_required_and_explicit_blocks_bypass_semantic_dropping
tests/test_context_reader.py::test_selection_guidance_uses_only_current_read_instructions[complete]
tests/test_context_reader.py::test_selection_guidance_uses_only_current_read_instructions[lossy]
tests/test_context_reader.py::test_selection_guidance_uses_only_current_read_instructions[truncated]
tests/test_context_reader.py::test_selection_guidance_cannot_be_supplied_as_fake_read_metadata
tests/test_context_reader.py::test_read_guidance_does_not_add_request_when_optional_budget_is_exhausted
tests/test_context_reader.py::test_complete_resource_root_covers_child_regardless_of_selection_order[False-False]
tests/test_context_reader.py::test_complete_resource_root_covers_child_regardless_of_selection_order[False-True]
tests/test_context_reader.py::test_complete_resource_root_covers_child_regardless_of_selection_order[True-False]
tests/test_context_reader.py::test_complete_resource_root_covers_child_regardless_of_selection_order[True-True]
tests/test_context_reader.py::test_optional_blocks_follow_selector_priority_with_actual_remaining_budget
tests/test_context_reader.py::test_invalid_selector_keys_fail_closed_without_losing_required_blocks[unknown]
tests/test_context_reader.py::test_invalid_selector_keys_fail_closed_without_losing_required_blocks[duplicate]
tests/test_context_reader.py::test_optional_prose_relevance_never_falls_back_to_keyword_matching
tests/test_context_reader.py::test_explicit_optional_none_skips_semantic_selector
tests/test_context_reader.py::test_readers_over_one_task_context_have_independent_disclosure_histories
tests/test_context_reader.py::test_cold_resources_are_read_only_when_explicitly_selected
tests/test_context_reader.py::test_required_incomplete_block_is_reported_as_incompatible_not_delivered
tests/test_context_reader.py::test_explicit_lossy_required_overflow_returns_auditable_digest
tests/test_context_reader.py::test_reader_rejects_stale_source_revision
tests/test_context_reader.py::test_reader_rebases_once_when_source_revision_changes_during_listing
tests/test_context_reader.py::test_reader_does_not_rebase_structural_task_context_mutation_during_listing
tests/test_context_reader.py::test_reader_explicit_refresh_rebases_source_revision_and_preserves_history
tests/test_cores/test_action_flow_exchange.py::test_action_loop_hot_wait_approval_executes_action_in_place
tests/test_cores/test_action_flow_exchange.py::test_action_loop_uses_standard_agent_interaction_handler
tests/test_cores/test_action_flow_exchange.py::test_action_loop_durable_mode_returns_paused_records_instead_of_raising
tests/test_cores/test_action_flow_exchange.py::test_action_loop_durable_abandon_releases_paused_artifact_scope[abandon]
tests/test_cores/test_action_flow_exchange.py::test_action_loop_durable_abandon_releases_paused_artifact_scope[direct_close]
tests/test_cores/test_action_flow_exchange.py::test_action_loop_without_provider_denies_instead_of_hanging_or_raising
tests/test_cores/test_action_flow_exchange.py::test_action_loop_projects_exchange_items_onto_owning_agent_execution
tests/test_cores/test_action_flow_exchange.py::test_agent_execution_publishes_exchange_stream_items
tests/test_cores/test_action_shell_workspace_boundary.py::test_read_only_task_workspace_rejects_unenforceable_trusted_local_shell
tests/test_cores/test_action_shell_workspace_boundary.py::test_read_only_task_workspace_shell_declares_ro_project_and_rw_execution_mounts
tests/test_cores/test_action_shell_workspace_boundary.py::test_explicit_read_write_task_workspace_allows_trusted_local_shell
tests/test_cores/test_action_shell_workspace_boundary.py::test_docker_shell_uses_declared_mount_modes
tests/test_cores/test_action_shell_workspace_boundary.py::test_task_workspace_shell_executes_in_its_declared_container_mount
tests/test_cores/test_action_shell_workspace_boundary.py::test_task_workspace_shell_resolves_relative_workdir_from_authorized_root
tests/test_cores/test_action_workspace_files.py::test_default_task_workspace_actions_create_new_product_in_fallback_without_approval
tests/test_cores/test_action_workspace_files.py::test_external_task_workspace_edit_waits_for_or_obeys_policy_approval[decision0-approval_required]
tests/test_cores/test_action_workspace_files.py::test_external_task_workspace_edit_waits_for_or_obeys_policy_approval[decision1-blocked]
tests/test_cores/test_action_workspace_files.py::test_approved_external_task_workspace_edit_uses_external_root_without_fallback
tests/test_cores/test_attempt_runner.py::test_attempt_runner_streams_successful_attempt
tests/test_cores/test_attempt_runner.py::test_attempt_runner_retries_before_output_started
tests/test_cores/test_attempt_runner.py::test_attempt_runner_does_not_retry_after_max_attempts
tests/test_cores/test_attempt_runner.py::test_attempt_runner_does_not_retry_after_output_started_by_default
tests/test_cores/test_attempt_runner.py::test_attempt_runner_can_retry_after_output_started_when_explicitly_allowed
tests/test_cores/test_attempt_runner.py::test_attempt_runner_ingests_typed_decision_observations
tests/test_cores/test_attempt_runner.py::test_attempt_runner_propagates_cancellation_without_error_handler
tests/test_cores/test_attempt_runner.py::test_attempt_runner_propagates_generator_exit_without_error_handler
tests/test_cores/test_attempt_runner.py::test_attempt_runner_preserves_timeout_when_error_handler_raises
tests/test_cores/test_attempt_runner.py::test_attempt_runner_can_yield_error_without_raising
tests/test_cores/test_attempt_runner.py::test_attempt_runner_status_keeps_provider_detail_without_request_body
tests/test_cores/test_attempt_runner.py::test_attempt_runner_preserves_original_error_on_raise_decision
tests/test_cores/test_blocks_plugin.py::test_default_blocks_plugin_is_registered
tests/test_cores/test_blocks_plugin.py::test_blocks_compile_maps_plan_blocks_to_execution_block_graph
tests/test_cores/test_blocks_plugin.py::test_blocks_compile_rejects_denied_capability_before_runtime
tests/test_cores/test_blocks_plugin.py::test_empty_capability_resolution_does_not_activate_allowlist_gate
tests/test_cores/test_blocks_plugin.py::test_blocks_registries_validate_contract_metadata
tests/test_cores/test_blocks_plugin.py::test_blocks_compile_rejects_missing_edges_and_unresolved_capabilities
tests/test_cores/test_blocks_plugin.py::test_blocks_runtime_executes_on_triggerflow_with_handler_and_evidence
tests/test_cores/test_blocks_plugin.py::test_blocks_replan_signal_cancels_only_affected_downstream_blocks
tests/test_cores/test_blocks_plugin.py::test_blocks_context_read_uses_bound_context_reader
tests/test_cores/test_blocks_plugin.py::test_blocks_context_read_ledger_keeps_ref_only_snippet_state
tests/test_cores/test_blocks_plugin.py::test_blocks_context_read_requires_context_reader
tests/test_cores/test_blocks_plugin.py::test_blocks_context_read_rejects_side_effect_operations
tests/test_cores/test_blocks_plugin.py::test_blocks_approval_wait_uses_policy_approval_gate
tests/test_cores/test_blocks_plugin.py::test_blocks_approval_wait_global_access_control_auto_allow
tests/test_cores/test_blocks_plugin.py::test_blocks_approval_wait_uses_triggerflow_pause_and_resume
tests/test_cores/test_blocks_plugin.py::test_blocks_external_wait_uses_triggerflow_pause_and_resume
tests/test_cores/test_blocks_plugin.py::test_blocks_dag_segment_reuses_task_dag_validation_and_runtime_signals
tests/test_cores/test_blocks_plugin.py::test_task_dag_executor_can_compile_validated_dag_through_blocks
tests/test_cores/test_blocks_plugin.py::test_task_dag_executor_blocks_path_runs_local_dag_with_join_and_semantic_outputs
tests/test_cores/test_blocks_plugin.py::test_task_dag_executor_blocks_path_still_rejects_invalid_dag
tests/test_cores/test_blocks_plugin.py::test_blocks_external_wait_forwards_exchange_metadata_to_envelope
tests/test_cores/test_browse.py::test_browse_extract_prefers_main_content_and_ignores_sidebar
tests/test_cores/test_browse.py::test_browse_extract_filters_nav_and_footer_noise
tests/test_cores/test_browse.py::test_browse_extract_falls_back_to_blacklist_strategy_when_whitelist_is_too_thin
tests/test_cores/test_browse.py::test_browse_extract_falls_back_to_raw_body_when_text_is_still_too_short
tests/test_cores/test_builtin_actions_v2.py::test_builtins_actions_is_preferred_import_path_and_tools_is_facade
tests/test_cores/test_builtin_actions_v2.py::test_runtime_preflight_registers_structured_code_runtime_action
tests/test_cores/test_builtin_actions_v2.py::test_runtime_preflight_can_hide_unavailable_candidates
tests/test_cores/test_builtin_actions_v2.py::test_mcp_and_acp_optional_dependencies_wait_for_explicit_use
tests/test_cores/test_builtin_actions_v2.py::test_cmd_without_task_workspace_boundary_fails_closed_no_cwd_fallback
tests/test_cores/test_builtin_actions_v2.py::test_cmd_with_task_workspace_boundary_runs_in_injected_root
tests/test_cores/test_builtin_actions_v2.py::test_cmd_resolves_relative_workdir_from_injected_root
tests/test_cores/test_builtin_actions_v2.py::test_cmd_collapses_task_workspace_root_prefixed_relative_workdir
tests/test_cores/test_builtin_actions_v2.py::test_v2_default_plugins_are_registered
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_acp_registers_handshake_verified_actions
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_acp_skips_missing_or_failed_agents
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_acp_error_on_missing_agents
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_acp_registers_local_cli_adapter
tests/test_cores/test_builtin_actions_v2.py::test_acp_package_reuses_execution_session_scope
tests/test_cores/test_builtin_actions_v2.py::test_acp_run_task_rejects_unknown_agent_and_outside_root
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_actions_accepts_search_package
tests/test_cores/test_builtin_actions_v2.py::test_search_batch_registration_rolls_back_and_restores_host_action_on_failure
tests/test_cores/test_builtin_actions_v2.py::test_agent_language_policy_updates_builtin_search_default_region
tests/test_cores/test_builtin_actions_v2.py::test_agent_language_policy_does_not_override_explicit_builtin_search_region
tests/test_cores/test_builtin_actions_v2.py::test_agent_use_actions_accepts_browse_package
tests/test_cores/test_builtin_actions_v2.py::test_agent_language_policy_updates_builtin_browse_accept_language
tests/test_cores/test_builtin_actions_v2.py::test_browse_default_fallback_prefers_reader_then_local_backends
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_url_uses_raw_prepend_format
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_url_encodes_only_unsafe_target_characters
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_url_uses_configured_endpoint
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_uses_post_for_fragment_urls
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_tries_alternate_endpoint_on_transport_error
tests/test_cores/test_builtin_actions_v2.py::test_browse_falls_back_from_jina_block_page_to_local_backend
tests/test_cores/test_builtin_actions_v2.py::test_browse_exception_detail_includes_cause
tests/test_cores/test_builtin_actions_v2.py::test_browse_blocked_page_reason_detects_weibo_visitor_shell
tests/test_cores/test_builtin_actions_v2.py::test_browse_text_extraction_tolerates_missing_node_attrs
tests/test_cores/test_builtin_actions_v2.py::test_browse_curl_backend_extracts_html_content
tests/test_cores/test_builtin_actions_v2.py::test_browse_jina_reader_backend_extracts_markdown_content_and_links
tests/test_cores/test_builtin_actions_v2.py::test_browse_falls_back_from_curl_to_jina_reader_with_diagnostics
tests/test_cores/test_builtin_actions_v2.py::test_browse_curl_backend_materializes_remote_file_to_workspace
tests/test_cores/test_builtin_actions_v2.py::test_browse_action_failure_is_structured_error_not_success_text
tests/test_cores/test_builtin_actions_v2.py::test_browse_raw_body_fallback_strips_data_uri_hot_content
tests/test_cores/test_builtin_actions_v2.py::test_browse_action_retries_transient_backend_error
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_default_planning_uses_configured_model_key
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_action_or_response_contract_rejects_invalid_cross_fields[decision0]
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_action_or_response_contract_rejects_invalid_cross_fields[decision1]
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_action_or_response_contract_rejects_invalid_cross_fields[decision2]
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_action_or_response_contract_rejects_invalid_cross_fields[decision3]
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_action_or_response_contract_accepts_discriminated_branches
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_default_planning_discloses_single_action_id_round_policy
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_structured_planning_uses_compact_action_projection
tests/test_cores/test_builtin_actions_v2.py::test_browse_recovers_http_to_https_and_returns_link_diagnostics
tests/test_cores/test_builtin_actions_v2.py::test_browse_rejects_waf_shell_and_continues_protocol_candidates
tests/test_cores/test_builtin_actions_v2.py::test_browse_materializes_remote_file_to_workspace
tests/test_cores/test_builtin_actions_v2.py::test_browse_action_executor_uses_settings_task_workspace_for_remote_file
tests/test_cores/test_builtin_actions_v2.py::test_browse_remote_file_without_task_workspace_fails_closed
tests/test_cores/test_builtin_actions_v2.py::test_action_runtime_native_tool_planning_uses_configured_model_key
tests/test_cores/test_builtin_actions_v2.py::test_agent_enable_sqlite_registers_managed_sqlite_action
tests/test_cores/test_builtin_actions_v2.py::test_instruction_heavy_direct_action_releases_historical_artifact_refs
tests/test_cores/test_builtin_actions_v2.py::test_action_loop_exposes_live_recall_then_returns_historical_refs
tests/test_cores/test_builtin_actions_v2.py::test_action_loop_preserves_blocked_executor_reason_for_model_repair
tests/test_cores/test_builtin_actions_v2.py::test_action_loop_keeps_large_outputs_cold_then_releases_standalone_scope
tests/test_cores/test_builtin_actions_v2.py::test_action_loop_explicit_recall_returns_bounded_hot_page_without_recursive_ref
tests/test_cores/test_builtin_actions_v2.py::test_search_package_does_not_load_backend_during_registration
tests/test_cores/test_builtin_actions_v2.py::test_search_package_falls_back_when_ddgs_backend_has_no_results
tests/test_cores/test_builtin_actions_v2.py::test_search_package_reports_partial_success_when_fallback_recovers
tests/test_cores/test_builtin_actions_v2.py::test_search_package_retries_transient_backend_error
tests/test_cores/test_builtin_actions_v2.py::test_search_package_continues_after_empty_backend
tests/test_cores/test_builtin_actions_v2.py::test_search_package_treats_no_results_as_empty_success
tests/test_cores/test_builtin_actions_v2.py::test_search_package_treats_mixed_backend_failure_and_empty_as_partial_success
tests/test_cores/test_builtin_actions_v2.py::test_search_action_executor_awaits_async_fallback_methods
tests/test_cores/test_builtin_actions_v2.py::test_search_package_disables_lazy_import_install_prompt
tests/test_cores/test_builtin_actions_v2.py::test_browse_bs4_disables_lazy_import_install_prompt
tests/test_cores/test_builtin_exchange_providers.py::test_console_provider_renders_card_and_maps_yes_to_approval
tests/test_cores/test_builtin_exchange_providers.py::test_console_provider_maps_other_input_to_denial
tests/test_cores/test_builtin_exchange_providers.py::test_host_callback_provider_publishes_and_resumes_on_host_approval
tests/test_cores/test_builtin_exchange_providers.py::test_host_callback_provider_deny_produces_denied_decision
tests/test_cores/test_core_package_layout.py::test_core_root_exports_match_current_owner_layers
tests/test_cores/test_core_package_layout.py::test_execution_exchange_types_are_publicly_importable
tests/test_cores/test_core_package_layout.py::test_core_topic_packages_expose_canonical_import_paths
tests/test_cores/test_core_package_layout.py::test_task_workspace_package_uses_class_owned_canonical_name_only
tests/test_cores/test_core_package_layout.py::test_core_layout_keeps_only_classified_root_packages
tests/test_cores/test_core_package_layout.py::test_task_workspace_active_code_has_no_superseded_layout_symbols
tests/test_cores/test_core_package_layout.py::test_removed_flat_core_submodules_do_not_resolve
tests/test_cores/test_core_package_layout.py::test_runtime_package_has_no_provider_specific_boundary_leakage
tests/test_cores/test_debug_console_behavior_contract.py::test_action_planning_model_stream_is_diagnostic_not_duplicate_business_output[simple-False]
tests/test_cores/test_debug_console_behavior_contract.py::test_action_planning_model_stream_is_diagnostic_not_duplicate_business_output[detail-True]
tests/test_cores/test_debug_console_behavior_contract.py::test_debug_console_base_profile_behavior_lock[simple]
tests/test_cores/test_debug_console_behavior_contract.py::test_debug_console_base_profile_behavior_lock[detail]
tests/test_cores/test_event_messenger.py::test_async_runtime_emitter
tests/test_cores/test_event_messenger.py::test_sync_runtime_emitter
tests/test_cores/test_event_messenger.py::test_observation_event_names_are_preferred_aliases
tests/test_cores/test_event_messenger.py::test_event_center_filtering
tests/test_cores/test_event_messenger.py::test_event_center_summary_delivery_policy_batches_high_frequency_events
tests/test_cores/test_event_messenger.py::test_event_center_summary_policy_flushes_before_non_high_frequency_event
tests/test_cores/test_event_messenger.py::test_event_center_flush_releases_buffered_summary_events
tests/test_cores/test_event_messenger.py::test_event_center_default_delivery_policy_remains_raw
tests/test_cores/test_event_messenger.py::test_event_center_background_hook_does_not_block_emit_path_and_flush_recovers
tests/test_cores/test_event_messenger.py::test_event_center_emit_nowait_tracks_dispatch_until_flush
tests/test_cores/test_event_messenger.py::test_event_center_idle_flush_recovers_background_delivery
tests/test_cores/test_event_messenger.py::test_event_center_idle_flush_cancels_stuck_background_delivery
tests/test_cores/test_event_messenger.py::test_event_center_idle_flush_releases_summary_buffer
tests/test_cores/test_event_messenger.py::test_event_center_emit_uses_hook_snapshot_when_hook_unregisters_during_flush
tests/test_cores/test_event_messenger.py::test_event_center_default_hook_dispatch_awaits_completion
tests/test_cores/test_event_messenger.py::test_event_center_infers_source_for_emitter_and_direct_emit
tests/test_cores/test_event_messenger.py::test_event_center_matches_triggerflow_aliases_for_legacy_subscriptions
tests/test_cores/test_event_messenger.py::test_event_center_keeps_action_and_tool_loop_filters_exact
tests/test_cores/test_event_messenger.py::test_event_center_normalizes_cancelled_error
tests/test_cores/test_event_messenger.py::test_runtime_log_profiles_keep_default_off_quiet
tests/test_cores/test_event_messenger.py::test_runtime_log_profiles_simple_mode_uses_summary_whitelists
tests/test_cores/test_event_messenger.py::test_runtime_log_profiles_detail_mode_selects_diagnostics_without_dumping_transport_mirrors
tests/test_cores/test_event_messenger.py::test_execution_resource_console_simple_uses_readable_compact_image_progress
tests/test_cores/test_event_messenger.py::test_execution_resource_console_detail_leads_with_explanation_then_diagnostics
tests/test_cores/test_event_messenger.py::test_action_logs_prefer_action_setting_and_fall_back_to_tool_setting
tests/test_cores/test_event_messenger.py::test_tool_console_stage_uses_event_type_before_success_payload
tests/test_cores/test_event_messenger.py::test_action_console_stage_uses_action_loop_event_types
tests/test_cores/test_event_messenger.py::test_tool_console_name_uses_action_payload_and_record
tests/test_cores/test_event_messenger.py::test_tool_console_rendering_does_not_mark_loop_start_as_failed
tests/test_cores/test_event_messenger.py::test_action_console_rendering_shows_action_name_and_type
tests/test_cores/test_event_messenger.py::test_action_console_simple_shows_purpose_arguments_and_result_preview
tests/test_cores/test_event_messenger.py::test_action_console_rendering_shows_loop_without_unknown_action
tests/test_cores/test_event_messenger.py::test_model_console_simple_renders_request_and_result
tests/test_cores/test_event_messenger.py::test_prompt_console_uses_readable_prompt_text_in_simple_and_detail
tests/test_cores/test_event_messenger.py::test_model_console_simple_keeps_final_delta_before_done_and_suppresses_delayed_projection
tests/test_cores/test_event_messenger.py::test_model_console_detail_keeps_structured_result_priority
tests/test_cores/test_event_messenger.py::test_model_console_simple_renders_validation_reason_and_retry_transition
tests/test_cores/test_event_messenger.py::test_model_console_simple_renders_validation_error_without_traceback
tests/test_cores/test_event_messenger.py::test_model_console_detail_validation_adds_only_new_facts
tests/test_cores/test_event_messenger.py::test_model_console_detail_validation_renders_only_non_default_decision[True-False-[Decision]: no retry (stop=true)]
tests/test_cores/test_event_messenger.py::test_model_console_detail_validation_renders_only_non_default_decision[False-True-[Decision]: no retry (no_retry=true)]
tests/test_cores/test_event_messenger.py::test_model_console_detail_validation_renders_only_non_default_decision[True-True-[Decision]: no retry (stop=true, no_retry=true)]
tests/test_cores/test_event_messenger.py::test_model_console_detail_validation_bounds_context_and_traceback
tests/test_cores/test_event_messenger.py::test_model_console_validation_fallback_tolerates_malformed_optional_payload
tests/test_cores/test_event_messenger.py::test_agent_execution_console_simple_renders_process_summary
tests/test_cores/test_event_messenger.py::test_model_console_detail_keeps_stream_open_across_agent_execution_projection
tests/test_cores/test_event_messenger.py::test_model_console_detail_defers_request_and_process_diagnostics_until_stream_finishes
tests/test_cores/test_event_messenger.py::test_model_console_deferred_diagnostics_are_bounded
tests/test_cores/test_event_messenger.py::test_model_console_failure_before_first_delta_releases_deferred_diagnostics
tests/test_cores/test_event_messenger.py::test_model_console_concurrent_completed_background_uses_fifo_final_result
tests/test_cores/test_event_messenger.py::test_model_console_concurrent_running_background_loads_buffer_then_streams
tests/test_cores/test_event_messenger.py::test_model_console_background_buffer_overflow_uses_complete_terminal_result
tests/test_cores/test_event_messenger.py::test_model_console_simple_result_without_rendered_stream_is_not_preview_truncated
tests/test_cores/test_event_messenger.py::test_model_console_background_failure_is_immediate_without_releasing_foreground
tests/test_cores/test_event_messenger.py::test_agent_execution_console_simple_streams_task_delta_in_one_block
tests/test_cores/test_event_messenger.py::test_agent_execution_console_detail_keeps_projection_when_model_logs_are_off
tests/test_cores/test_event_messenger.py::test_runtime_console_sink_renders_generic_runtime_events
tests/test_cores/test_event_messenger.py::test_runtime_console_sink_uses_run_context_log_settings
tests/test_cores/test_event_messenger.py::test_runtime_console_sink_raw_delivery_preserves_detail_stream
tests/test_cores/test_event_messenger.py::test_response_parser_observations_keep_result_log_settings
tests/test_cores/test_execution_exchange_manager.py::test_policy_gate_passes_exchange_metadata_into_interrupt_envelope
tests/test_cores/test_execution_exchange_manager.py::test_policy_gate_routes_metadata_from_interaction_posture
tests/test_cores/test_execution_exchange_manager.py::test_hot_wait_resolves_through_provider_await_response
tests/test_cores/test_execution_exchange_manager.py::test_agent_interaction_handler_drives_generic_exchange_without_global_registration
tests/test_cores/test_execution_exchange_manager.py::test_respond_from_another_thread_resumes_live_wait
tests/test_cores/test_execution_exchange_manager.py::test_project_pending_exchanges_view_shape
tests/test_cores/test_execution_exchange_manager.py::test_routing_reads_agent_scoped_settings_not_only_global
tests/test_cores/test_execution_exchange_manager.py::test_second_gate_does_not_consume_first_gate_resume_and_gets_fresh_budget
tests/test_cores/test_execution_plan_contracts.py::test_task_frame_minimal_defaults
tests/test_cores/test_execution_plan_contracts.py::test_task_frame_normalizes_and_round_trips
tests/test_cores/test_execution_plan_contracts.py::test_task_frame_requires_id_and_objective
tests/test_cores/test_execution_plan_contracts.py::test_plan_block_instance_normalizes_contracts
tests/test_cores/test_execution_plan_contracts.py::test_plan_block_instance_requires_id_and_plan_block_id
tests/test_cores/test_execution_plan_contracts.py::test_execution_plan_edge_accepts_common_aliases
tests/test_cores/test_execution_plan_contracts.py::test_execution_plan_edge_requires_endpoints
tests/test_cores/test_execution_plan_contracts.py::test_execution_plan_contains_plan_blocks_not_runtime_blocks
tests/test_cores/test_execution_plan_contracts.py::test_execution_plan_rejects_non_sequence_plan_blocks
tests/test_cores/test_execution_plan_contracts.py::test_execution_plan_requires_plan_id
tests/test_cores/test_execution_plan_contracts.py::test_capability_resolution_round_trip
tests/test_cores/test_execution_plan_contracts.py::test_plan_block_round_trip_keeps_capability_source_projection
tests/test_cores/test_execution_plan_contracts.py::test_execution_block_round_trip_separates_runtime_binding
tests/test_cores/test_execution_plan_contracts.py::test_execution_block_rejects_unknown_composition
tests/test_cores/test_execution_plan_contracts.py::test_execution_block_edge_accepts_aliases
tests/test_cores/test_execution_plan_contracts.py::test_block_signal_requires_standard_signal
tests/test_cores/test_execution_plan_contracts.py::test_execution_block_graph_round_trip
tests/test_cores/test_execution_plan_contracts.py::test_block_compile_request_round_trip
tests/test_cores/test_execution_plan_contracts.py::test_evidence_envelope_separates_runtime_plan_action_and_skill_evidence
tests/test_cores/test_execution_plan_contracts.py::test_evidence_envelope_derives_legacy_buckets_from_canonical_items
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[blocked]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[clarify]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[continue]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[repair]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[replan_goal]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_accepts_every_known_status[replan_segment]
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_names_affected_plan_and_execution_blocks
tests/test_cores/test_execution_plan_contracts.py::test_replan_signal_rejects_unknown_status
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[TaskFrame-payload0-execution_plan/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[ExecutionPlan-payload1-execution_plan/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[CapabilityResolution-payload2-execution_plan/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[EvidenceEnvelope-payload3-execution_plan/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[ReplanSignal-payload4-execution_plan/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[PlanBlock-payload5-blocks/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[ExecutionBlock-payload6-blocks/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[ExecutionBlockGraph-payload7-blocks/v1]
tests/test_cores/test_execution_plan_contracts.py::test_schema_version_defaults_and_survives_round_trip[BlockCompileRequest-payload8-blocks/v1]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[TaskFrame-payload0]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[PlanBlockInstance-payload1]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ExecutionPlanEdge-payload2]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ExecutionPlan-payload3]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[CapabilityResolution-payload4]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[EvidenceEnvelope-payload5]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ReplanSignal-payload6]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[PlanBlock-payload7]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ExecutionBlock-payload8]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ExecutionBlockEdge-payload9]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[BlockSignal-payload10]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ResultAdapter-payload11]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[EvidenceMapper-payload12]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[ExecutionBlockGraph-payload13]
tests/test_cores/test_execution_plan_contracts.py::test_from_value_rejects_non_mapping[BlockCompileRequest-payload14]
tests/test_cores/test_execution_plan_contracts.py::test_kind_and_signal_constants_are_complete
tests/test_cores/test_execution_resource.py::test_execution_resource_declare_is_lazy
tests/test_cores/test_execution_resource.py::test_execution_resource_ensure_reuses_and_releases_handle
tests/test_cores/test_execution_resource.py::test_execution_resource_release_failure_is_structured_and_quarantined
tests/test_cores/test_execution_resource.py::test_execution_resource_rechecks_health_before_reuse
tests/test_cores/test_execution_resource.py::test_execution_resource_default_policy_denies_and_does_not_start
tests/test_cores/test_execution_resource.py::test_action_python_sandbox_uses_execution_resource
tests/test_cores/test_execution_resource.py::test_default_python_docker_sandbox_fails_closed_when_docker_unavailable
tests/test_cores/test_execution_resource.py::test_docker_runtime_strict_profile_reports_missing_image_without_pull
tests/test_cores/test_execution_resource.py::test_docker_runtime_developer_profile_pulls_missing_image
tests/test_cores/test_execution_resource.py::test_docker_cpp_runtime_executes_adapter_bundle_without_provider_script
tests/test_cores/test_execution_resource.py::test_docker_go_runtime_executes_adapter_bundle_with_workspace_env
tests/test_cores/test_execution_resource.py::test_action_bash_sandbox_uses_execution_resource
tests/test_cores/test_execution_resource.py::test_bash_execution_resource_materializes_task_workspace_boundary
tests/test_cores/test_execution_resource.py::test_action_environment_default_policy_denies_as_blocked_action_result
tests/test_cores/test_execution_resource.py::test_custom_action_executor_signature_still_works
tests/test_cores/test_execution_resource.py::test_execution_resource_release_scope_cleans_handles
tests/test_cores/test_execution_resource.py::test_execution_resource_missing_provider_raises_stable_error
tests/test_cores/test_execution_resource.py::test_execution_resource_approval_denied_returns_blocked_action_result
tests/test_cores/test_execution_resource.py::test_execution_resource_provider_failure_does_not_poison_registry
tests/test_cores/test_execution_resource.py::test_execution_resource_emits_probe_progress_and_actionable_failure
tests/test_cores/test_execution_resource.py::test_execution_resource_forwards_provider_preparation_progress
tests/test_cores/test_execution_resource.py::test_mcp_executor_transport_routing
tests/test_cores/test_execution_resource.py::test_mcp_execution_resource_provider_owns_client_lifecycle
tests/test_cores/test_execution_resource.py::test_action_use_mcp_shares_one_managed_session_across_registered_tools
tests/test_cores/test_execution_resource.py::test_mcp_executor_resource_blocks_use_action_artifact_contract
tests/test_cores/test_execution_resource.py::test_mcp_executor_preserves_structured_explicit_artifact_refs
tests/test_cores/test_execution_resource.py::test_mcp_transport_normalization_supports_url_headers_and_configs
tests/test_cores/test_execution_resource.py::test_docker_execution_resource_requires_daemon_preflight
tests/test_cores/test_execution_resource.py::test_docker_python_runtime_profile_uses_isolated_defaults
tests/test_cores/test_execution_resource.py::test_docker_runtime_profile_reports_timeout
tests/test_cores/test_execution_resource.py::test_docker_shell_runtime_profile_keeps_command_allowlist
tests/test_cores/test_execution_resource.py::test_docker_shell_runtime_normalizes_one_command_string_in_list
tests/test_cores/test_execution_resource.py::test_action_use_mcp_url_headers_passes_normalized_transport_to_fastmcp
tests/test_cores/test_execution_resource.py::test_action_use_mcp_rolls_back_batch_and_restores_host_action_on_failure
tests/test_cores/test_execution_resource.py::test_action_use_mcp_rolls_back_when_client_exit_fails
tests/test_cores/test_fastmcp_compat.py::test_mcp_tool_fields_preserve_both_sdk_shapes
tests/test_cores/test_fastmcp_compat.py::test_mcp_tool_tags_do_not_mutate_metadata
tests/test_cores/test_fastmcp_compat.py::test_mcp_script_paths_are_explicit_without_changing_urls
tests/test_cores/test_fastmcp_compat.py::test_real_mcp_registration_call_and_managed_lifecycle
tests/test_cores/test_fastmcp_compat.py::test_real_mcp_result_content_keeps_wire_aliases
tests/test_cores/test_fastmcp_compat.py::test_mcp_empty_error_result_preserves_failure
tests/test_cores/test_model_request_observation.py::test_model_request_events_include_prompt_and_child_run_lineage
tests/test_cores/test_model_request_observation.py::test_get_result_is_primary_model_request_facade
tests/test_cores/test_model_request_observation.py::test_get_response_returns_result_compatible_facade
tests/test_cores/test_model_request_observation.py::test_legacy_model_requester_without_handlers_still_streams
tests/test_cores/test_model_request_observation.py::test_handler_driven_model_requester_streams_through_core_attempt_runner
tests/test_cores/test_model_request_observation.py::test_handler_driven_after_output_retry_emits_status_and_replays_cleanly
tests/test_cores/test_model_request_observation.py::test_agent_execution_projects_model_status_and_lineage_for_plain_delta_replay
tests/test_cores/test_model_request_observation.py::test_delta_retry_marker_escapes_provider_reason
tests/test_cores/test_model_request_observation.py::test_handler_driven_provider_error_becomes_core_runtime_event
tests/test_cores/test_model_request_observation.py::test_yielded_provider_error_emits_one_terminal_status_and_one_requester_error[True]
tests/test_cores/test_model_request_observation.py::test_yielded_provider_error_emits_one_terminal_status_and_one_requester_error[False]
tests/test_cores/test_model_request_observation.py::test_model_request_retry_creates_multiple_attempt_runs
tests/test_cores/test_model_request_observation.py::test_reasoning_content_and_usage_flow_through_model_request_observation
tests/test_cores/test_model_request_observation.py::test_model_request_telemetry_dedupes_same_kind_for_same_attempt
tests/test_cores/test_model_request_observation.py::test_model_request_telemetry_summarizes_usage_and_estimated_lengths
tests/test_cores/test_model_request_observation.py::test_terminal_model_status_includes_estimated_lengths_without_provider_usage
tests/test_cores/test_model_request_observation.py::test_auto_format_parse_failure_degrades_to_json_and_preserves_all_shape
tests/test_cores/test_model_request_observation.py::test_get_data_all_checks_ensure_keys_against_parsed_result
tests/test_cores/test_model_request_observation.py::test_model_request_ensure_keys_prefers_complete_json_after_think_block
tests/test_cores/test_model_request_observation.py::test_agent_execution_wraps_request_and_model_request_runs
tests/test_cores/test_model_request_observation.py::test_tool_runtime_uses_action_runs_under_request_scope
tests/test_cores/test_model_request_observation.py::test_action_flow_reports_approval_required_without_failed_event
tests/test_cores/test_model_request_observation.py::test_trigger_flow_runtime_context_auto_inherits_parent_run_for_agent_and_request
tests/test_cores/test_model_request_observation.py::test_nested_subflow_helper_calls_auto_inherit_runtime_context
tests/test_cores/test_model_request_observation.py::test_trigger_flow_failure_cancels_sibling_model_request_and_emits_cancelled_status
tests/test_cores/test_model_request_observation.py::test_trigger_flow_for_each_failure_waits_for_sibling_cleanup
tests/test_cores/test_model_request_validate.py::test_request_validate_chain_and_runtime_handler_order
tests/test_cores/test_model_request_validate.py::test_agent_validate_failure_retries_and_emits_runtime_events
tests/test_cores/test_model_request_validate.py::test_validate_retry_exposes_accepted_attempt_through_reopened_instant_stream
tests/test_cores/test_model_request_validate.py::test_complete_instant_field_retains_validation_retry_limit
tests/test_cores/test_model_request_validate.py::test_validate_retry_exposes_accepted_attempt_through_reopened_sync_instant_stream
tests/test_cores/test_model_request_validate.py::test_agent_execution_instant_stream_includes_accepted_validation_retry_attempt
tests/test_cores/test_model_request_validate.py::test_validate_failure_reason_is_added_to_retry_prompt_without_payload
tests/test_cores/test_model_request_validate.py::test_validate_no_retry_can_return_last_result_when_raise_disabled
tests/test_cores/test_model_request_validate.py::test_validate_stop_raises_without_retry
tests/test_cores/test_model_request_validate.py::test_validate_raise_value_stops_with_explicit_exception
tests/test_cores/test_model_request_validate.py::test_validate_handler_exception_retries_and_emits_validation_error
tests/test_cores/test_model_request_validate.py::test_validate_returns_latest_result_when_retries_exhausted_and_raise_disabled
tests/test_cores/test_model_request_validate.py::test_validate_receives_canonical_scalar_and_list_snapshots[responses0-expected_validate_result0-7]
tests/test_cores/test_model_request_validate.py::test_validate_receives_canonical_scalar_and_list_snapshots[responses1-expected_validate_result1-expected_return1]
tests/test_cores/test_model_request_validate.py::test_validate_runs_once_per_response_and_context_exposes_result_object
tests/test_cores/test_model_request_validate.py::test_pydantic_output_returns_declared_model_instance
tests/test_cores/test_model_request_validate.py::test_pydantic_constraint_failure_retries_with_feedback_and_caches_accepted_result
tests/test_cores/test_model_request_validate.py::test_pydantic_constraint_failure_is_not_returned_after_retries_are_exhausted
tests/test_cores/test_model_request_validate.py::test_pydantic_constraint_failure_cannot_be_accepted_by_disabling_ensure_errors
tests/test_cores/test_model_request_validate.py::test_optional_pydantic_constraint_failure_retries_for_typed_object_read
tests/test_cores/test_model_request_validate.py::test_agent_execution_pydantic_output_preserves_nested_models
tests/test_cores/test_model_request_validate.py::test_ensure_keys_runs_before_validate_handlers
tests/test_cores/test_model_request_validate.py::test_tuple_not_null_retries_blank_string_in_wildcard_path
tests/test_cores/test_model_request_validate.py::test_tuple_ensure_presence_accepts_empty_values
tests/test_cores/test_model_request_validate.py::test_runtime_ensure_keys_presence_accepts_empty_values
tests/test_cores/test_model_request_validate.py::test_tuple_not_null_retries_empty_list_value
tests/test_cores/test_model_request_validate.py::test_tuple_ensure_accepts_false_and_zero_values
tests/test_cores/test_model_request_validate.py::test_concurrent_final_reader_retains_validation_retry
tests/test_cores/test_plugin_manager.py::test_plugin_manager
tests/test_cores/test_policy_approval.py::test_access_control_policy_precedence_keeps_closer_host_override
tests/test_cores/test_policy_approval.py::test_policy_approval_default_input_timeout_fail_denies_non_interactive
tests/test_cores/test_policy_approval.py::test_policy_approval_auto_approve_handler
tests/test_cores/test_policy_approval.py::test_policy_approval_global_access_control_auto_allow_overrides_fail_closed
tests/test_cores/test_policy_approval.py::test_policy_approval_triggerflow_gate_pending_and_resume
tests/test_cores/test_policy_approval.py::test_policy_approval_gate_loads_from_record_store_provider_snapshot
tests/test_cores/test_request.py::test_image_builds_local_and_remote_attachment
tests/test_cores/test_request.py::test_request_image_sets_rich_content_attachment
tests/test_cores/test_request.py::test_agent_image_supports_always_prompt
tests/test_cores/test_request.py::test_image_rejects_missing_sources
tests/test_cores/test_request.py::test_image_rejects_non_image_file
tests/test_cores/test_session.py::test_one_message_session
tests/test_cores/test_session.py::test_multi_messages_session
tests/test_cores/test_session.py::test_session_json_export_and_load
tests/test_cores/test_session.py::test_session_yaml_export_and_load_by_path
tests/test_cores/test_session.py::test_session_set_then_add_chat_history_does_not_duplicate_turns
tests/test_cores/test_session.py::test_session_resize_strategy_uses_canonical_api
tests/test_cores/test_session.py::test_agent_session_memory_binds_agent_record_store
tests/test_cores/test_session.py::test_standalone_session_memory_requires_record_store
tests/test_cores/test_session.py::test_session_memory_stores_record_store_records_with_fixed_fields
tests/test_cores/test_session.py::test_session_memory_recall_uses_task_context_without_prompt_slots
tests/test_cores/test_session.py::test_session_memory_recall_fails_closed_when_semantic_selection_fails
tests/test_cores/test_session.py::test_session_memory_context_source_is_fixed_to_global_and_active_session
tests/test_cores/test_session_memory_workspace_effects.py::test_session_without_memory_does_not_materialize_record_store
tests/test_cores/test_session_memory_workspace_effects.py::test_record_only_memory_metadata_does_not_materialize_record_store_backend
tests/test_cores/test_session_memory_workspace_effects.py::test_record_only_memory_creates_no_vector_provider_or_vector_carrier
tests/test_cores/test_session_memory_workspace_effects.py::test_vector_enabled_memory_uses_explicit_record_store_vector_write
tests/test_cores/test_task_dag_executor.py::test_task_dag_validation_rejects_duplicate_ids
tests/test_cores/test_task_dag_executor.py::test_task_dag_validation_rejects_missing_dependency
tests/test_cores/test_task_dag_executor.py::test_task_dag_validation_rejects_cycles
tests/test_cores/test_task_dag_executor.py::test_task_dag_planner_exposes_output_contract_and_constraints
tests/test_cores/test_task_dag_executor.py::test_task_dag_planner_contract_returns_mutation_safe_copies
tests/test_cores/test_task_dag_executor.py::test_task_dag_loads_and_exports_yaml_json_config
tests/test_cores/test_task_dag_executor.py::test_task_dag_planner_validate_output_returns_retry_payload
tests/test_cores/test_task_dag_executor.py::test_task_dag_planner_prepares_agently_request_in_stages
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_runs_roots_concurrently_and_joins_dependencies
tests/test_cores/test_task_dag_executor.py::test_task_dag_node_retry_recovers_from_transient_failure
tests/test_cores/test_task_dag_executor.py::test_task_dag_node_retry_exhausted_then_skip
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_preserves_artifact_refs
tests/test_cores/test_task_dag_executor.py::test_task_dag_runtime_events_project_recovery_facts
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_approval_task_resumes_to_downstream_tasks
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_global_access_control_auto_allow_skips_approval_interrupt
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_checkpoint_loads_approval_dag_and_continues_downstream
tests/test_cores/test_task_dag_executor.py::test_dynamic_task_compiled_dag_loads_approval_dag_and_continues_downstream
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_repeated_compilation_is_idempotent
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_resolver_factory_can_bind_by_task
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_resolves_runtime_placeholders
tests/test_cores/test_task_dag_executor.py::test_task_dag_executor_fails_closed_for_missing_runtime_placeholder
tests/test_cores/test_task_dag_executor.py::test_dynamic_task_default_structured_contract_overrides_planner_flat_markdown
tests/test_cores/test_task_dag_executor.py::test_agent_create_dynamic_task_consumes_prompt_snapshot_for_target_and_output_contract
tests/test_cores/test_task_dag_executor.py::test_agent_create_dynamic_task_explicit_arguments_override_prompt_output_contract
tests/test_cores/test_task_dag_executor.py::test_task_dag_validator_prunes_unknown_optional_handler
tests/test_cores/test_task_dag_executor.py::test_task_dag_validator_rejects_unknown_required_handler
tests/test_cores/test_tool.py::test_tool
tests/test_cores/test_tool.py::test_action_alias_and_dispatcher_execute_result
tests/test_cores/test_tool.py::test_action_dispatcher_requires_approval
tests/test_cores/test_tool.py::test_model_policy_override_cannot_grant_approval
tests/test_cores/test_tool.py::test_sanitize_policy_override_strips_host_only_keys_for_model_sources
tests/test_cores/test_tool.py::test_model_sourced_action_input_strips_undeclared_kwargs
tests/test_cores/test_tool.py::test_model_sourced_action_input_strips_spec_host_only_kwargs
tests/test_cores/test_tool.py::test_action_contract_derives_required_input_keys_and_rejects_missing_input
tests/test_cores/test_tool.py::test_model_sourced_bash_action_input_strips_allow_unsafe
tests/test_cores/test_tool.py::test_action_dispatcher_parameter_error_has_structured_diagnostic
tests/test_cores/test_tool.py::test_action_dispatcher_timeout_has_structured_diagnostic
tests/test_cores/test_tool.py::test_large_action_output_uses_digest_and_artifact_ref
tests/test_cores/test_tool.py::test_action_results_keep_action_call_id_for_mapping_scalar_and_failure_results
tests/test_cores/test_tool.py::test_max_output_bytes_preserves_full_output_in_artifact
tests/test_cores/test_tool.py::test_explicit_action_artifacts_are_preserved_without_large_output
tests/test_cores/test_tool.py::test_action_execution_record_dedupes_same_action_call_id
tests/test_cores/test_tool.py::test_action_dispatcher_fail_closed_handler_returns_approval_required
tests/test_cores/test_tool.py::test_action_dispatcher_global_access_control_auto_allow_approves
tests/test_cores/test_tool.py::test_action_sandbox_executors
tests/test_cores/test_tool.py::test_custom_action_executor_plugin_registration
tests/test_cores/test_tool.py::test_custom_action_executor_plugin_registration_with_child_plugin_manager
tests/test_cores/test_tool.py::test_custom_action_flow_plugin_registration
tests/test_cores/test_tool.py::test_use_mcp
tests/test_cores/test_tool.py::test_tool_plan_execute_loop_with_trigger_flow
tests/test_cores/test_tool.py::test_action_loop_stops_after_repeated_failed_action_rounds
tests/test_cores/test_tool.py::test_action_generate_native_tool_calls_matches_structured
tests/test_cores/test_tool.py::test_native_tool_calls_empty_result_surfaces_planning_diagnostic
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_running_sub_flow_is_visible_before_child_completion
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_cancel_active_sub_flow_fences_side_effect_write_back_and_continuation
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_emit_to_active_sub_flow_uses_child_signal_net
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_cancel_claim_cancels_inflight_sub_flow_signal_without_late_dispatch
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_cancel_waiting_sub_flow_cancels_projected_interrupt_without_resuming_child
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_concurrent_active_sub_flows_are_controlled_by_frame_id
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_completion_first_makes_late_cancel_a_noop
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_child_failure_records_failed_frame_and_skips_parent_continuation
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_late_managed_child_failure_during_close_propagates_to_parent
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_skip_exceptions_preserves_opt_in_suppression_for_late_managed_failure
tests/test_cores/test_trigger_flow_active_subflow_control.py::test_active_sub_flow_snapshot_is_not_restart_resumable
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_config_round_trip_with_inspected_chunk_handler
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_config_and_mermaid_include_contract_metadata
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_batch_round_trip_and_mermaid
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_for_each_round_trip
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_match_round_trip
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_pause_round_trip_after_import
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_allows_lambda_chunk_but_export_rejects_it
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_allows_lambda_condition_but_export_rejects_it
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_stream_and_result_events_include_origin_chunk
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_shows_external_signal_and_declared_emit
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_simplified_shows_if_condition_internal_nodes
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_simplified_shows_nested_for_each_subflows
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_round_trip_and_runtime
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_capture_and_write_back_round_trip
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_resource_capture_preserves_identity_without_deepcopy
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_template_resources_preserve_identity_without_deepcopy
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_non_resource_capture_remains_isolated
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_write_back_can_read_close_snapshot_state
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_uses_isolated_child_flow_state
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_bridges_child_runtime_stream
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_inherits_parent_run_lineage
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_emits_definition_runtime_event
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_chunk_runtime_events_include_input_output_and_origin_data
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_persists_runtime_events_and_snapshots_to_record_store
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_rejects_invalid_capture_and_write_back_specs
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_projects_child_pause_and_resumes_from_root_after_load
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_sub_flow_resume_requires_reinjected_resources_after_load
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_mermaid_shows_sub_flow_box_and_nested_flow
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_repeated_internal_helper_names_do_not_conflict
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_import_fails_without_registered_handler
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_load_flow_config_respects_replace_flag
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_load_json_flow_respects_replace_flag
tests/test_cores/test_trigger_flow_config_and_mermaid.py::test_trigger_flow_load_yaml_flow_respects_replace_flag
tests/test_cores/test_trigger_flow_contract.py::test_trigger_flow_contract_validates_input_stream_and_result
tests/test_cores/test_trigger_flow_contract.py::test_trigger_flow_contract_rejects_invalid_initial_input
tests/test_cores/test_trigger_flow_contract.py::test_trigger_flow_contract_rejects_invalid_stream_item
tests/test_cores/test_trigger_flow_contract.py::test_trigger_flow_close_snapshot_keeps_state_without_result_writer
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_state_reads_closed_snapshot_from_execution_close
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_state_reads_live_then_frozen_snapshot
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_final_result_preserves_compat_precedence
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_final_result_reads_explicit_internal_result
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_state_is_not_validated_by_removed_result_writer
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_sub_flow_write_back_uses_compat_then_snapshot
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_intervention_readers_filter_without_consuming
tests/test_cores/test_trigger_flow_execution_result.py::test_execution_result_meta_and_restore_reflect_execution_state
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_sync_start_returns_close_snapshot
tests/test_cores/test_trigger_flow_execution_state.py::test_sync_chunk_can_wrap_async_provider_with_stage_and_reenter_execution_state
tests/test_cores/test_trigger_flow_execution_state.py::test_async_chunk_can_call_sync_stage_wrappers_and_sync_state_facade
tests/test_cores/test_trigger_flow_execution_state.py::test_sync_chunk_worker_can_reenter_async_owner_loop_state_listener
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_start_waits_for_auto_close_snapshot_without_end
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_sync_set_state_replaces_collection_value
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_set_flow_data_replaces_collection_value
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_async_set_state_replaces_mapping_and_dot_path_values
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_save_and_load_then_continue
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_signal_net_dynamic_binding_fanout_and_join
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_signal_net_nested_emit_respects_concurrency_cap
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_defers_handler_awaitable_creation_until_concurrency_permit
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_signal_net_rejects_anonymous_durable_handler
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_signal_net_snapshot_requires_dynamic_handler_before_load
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_signal_net_load_marks_nonterminal_attempts_interrupted
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_snapshot_records_definition_fingerprint_and_rejects_mismatch
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_snapshot_rejects_invalid_kind_and_schema_version
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_load_reports_lease_expiry_and_owner_conflict
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_continue_with_fails_fast_after_lease_expiry_and_handoff
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_load_from_json_string
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_snapshot_restores_scoped_when_join_progress_after_load
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_load_keeps_ready_result
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_snapshot_preserves_self_resume_count_after_load
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_continue_with_resume_request_id_is_idempotent_after_load
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_dispatch_failed_resume_request_retries_after_load
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_resume_request_replays_crash_window_from_ledger[accepted-triggerflow.resume.accepted_not_dispatched]
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_resume_request_replays_crash_window_from_ledger[dispatched-triggerflow.resume.dispatched_not_completed]
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_save_to_json_file_and_load_from_file
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_save_to_yaml_file_and_load_from_file
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_save_and_load_preserves_run_context
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_close_returns_state_snapshot
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_runtime_data_input_aliases_follow_value
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_seal_rejects_new_events_until_unsealed
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_close_drains_registered_nowait_emit
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_close_drains_chained_nowait_emits
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_auto_closes_after_idle_timeout
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_execution_close_stops_runtime_stream
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_start_propagates_parent_run_context
tests/test_cores/test_trigger_flow_execution_state.py::test_trigger_flow_runtime_stream_propagates_parent_run_context
tests/test_cores/test_trigger_flow_execution_state.py::test_hidden_runtime_stream_settles_and_closes_its_stage_tasks
tests/test_cores/test_trigger_flow_interrupt_concurrency.py::test_concurrent_continue_with_on_different_interrupts_keeps_both_ledgers
tests/test_cores/test_trigger_flow_interrupt_concurrency.py::test_concurrent_continue_with_on_same_interrupt_dispatches_once
tests/test_cores/test_trigger_flow_interrupt_concurrency.py::test_duplicate_resume_request_id_on_same_interrupt_is_idempotent_under_race
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_module_level_flow_import_cache_service_shape
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_replayed_named_chain_is_module_safe
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_same_callable_can_be_named_as_distinct_stages
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_anonymous_append_only_but_named_lambda_is_idempotent
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_same_name_with_different_callable_fails_fast
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_existing_execution_is_not_polluted_by_later_definition_replay
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_replayed_when_edge_does_not_dedupe_runtime_emit_nowait
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_replayed_when_and_join_is_module_safe_and_execution_local
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_load_flow_config_replay_is_idempotent_and_conflicts_fail_fast
tests/test_cores/test_trigger_flow_module_safe_definition.py::test_trigger_flow_dynamic_todo_dag_executor_uses_task_id_identities
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_dynamic_pause_persists_waiting_snapshot_without_backfill
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_dynamic_pause_snapshot_failure_rolls_back_before_publish
tests/test_cores/test_trigger_flow_pause_resume.py::test_pause_snapshot_rollback_does_not_delete_newer_same_id_interrupt
tests/test_cores/test_trigger_flow_pause_resume.py::test_pause_snapshot_rollback_keeps_waiting_status_for_other_interrupt
tests/test_cores/test_trigger_flow_pause_resume.py::test_same_id_pause_does_not_publish_older_attempt_after_newer_attempt
tests/test_cores/test_trigger_flow_pause_resume.py::test_same_id_cancelled_pause_attempts_leave_no_ghost_interrupt_or_fence
tests/test_cores/test_trigger_flow_pause_resume.py::test_same_id_failed_pause_attempts_leave_no_ghost_interrupt_or_fence
tests/test_cores/test_trigger_flow_pause_resume.py::test_same_id_failed_pause_restores_previous_exposed_interrupt
tests/test_cores/test_trigger_flow_pause_resume.py::test_continue_waits_until_pause_snapshot_and_exposure_complete
tests/test_cores/test_trigger_flow_pause_resume.py::test_close_cancellation_during_pause_snapshot_does_not_publish_stale_wait
tests/test_cores/test_trigger_flow_pause_resume.py::test_close_cancellation_during_persisted_event_does_not_publish_stale_wait
tests/test_cores/test_trigger_flow_pause_resume.py::test_self_resume_can_repause_same_id_after_exposure_barrier
tests/test_cores/test_trigger_flow_pause_resume.py::test_self_repause_dispatch_failure_preserves_newer_wait_generation
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_pause_continue_with_saved_interrupt
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_pause_resume_to_next_continues_downstream_after_load
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_pause_resume_to_self_exposes_resume_context
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_hidden_start_rejects_pause_without_resume_handle
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_hidden_runtime_stream_rejects_pause_without_resume_handle
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_close_rejects_pending_interrupt_by_default_and_can_cancel
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_close_cancel_persists_external_wait_cancel_state
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_public_interrupt_event_type_matches_runtime_stream_shape
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_when_and_state_is_isolated_per_execution
tests/test_cores/test_trigger_flow_pause_resume.py::test_trigger_flow_batch_state_is_isolated_per_execution
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_terminal_result_is_carried_once_and_closed_event_is_compact
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_for_each_empty_sequence_completes_for_builder_and_loaded_config
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_match_without_hit_restores_layer_for_builder_and_loaded_config
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_falsy_state_and_flow_data_values_can_be_deleted
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_loaded_blueprint_and_config_preserve_contract_metadata
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_async_close_concurrent_callers_close_once
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_closed_execution_is_removed_from_flow_registry
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_batch_parallel_invocations_use_isolated_runtime_scopes_for_builder_and_loaded_config
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_runtime_data_emit_inherits_current_layer_scope_for_when_join
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_chunk_emitted_event_list_join_uses_signal_scope_for_builder_and_loaded_config
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_async_close_clears_transient_aggregation_state
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_pause_resume_to_self_has_default_replay_guard
tests/test_cores/test_trigger_flow_runtime_integrity.py::test_set_concurrency_limits_nested_dispatch_without_deadlocking_chain
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_intervention_disabled_mode_rejects_without_state_change
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_explicit_none_intervention_mode_disables_planned_inference
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_planned_intervention_point_passes_through_without_pending_item
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_planned_intervention_point_inserts_matching_pending_once
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_intervention_point_named_definition_is_idempotent
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_intervention_point_same_name_different_target_fails_fast
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_auto_intervention_inserts_targeted_before_matching_chunk
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_auto_intervention_inserts_untargeted_at_next_chunk_boundary
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_auto_mode_rejects_planned_intervention_points
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_pending_interventions_expire_on_close_and_result_surface_reads_them
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_intervention_save_load_preserves_ledger_and_consumers
tests/test_cores/test_trigger_flow_runtime_intervention.py::test_trigger_flow_intervention_runtime_stream_event_shape_is_fail_open
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_runtime_data_alias_is_exported
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_runtime_data_namespaces_and_flow_resources
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_auto_close_waits_for_in_flight_start
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_default_record_store_stays_persistence_free_after_finite_lifecycle
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_pending_interrupt_rejects_close_before_recovery_cleanup
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_resumed_execution_discards_recovery_state_at_terminal_close
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_recovery_cleanup_failure_preserves_recovery_data
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_cleanup_cancellation_finalizes_close_then_propagates
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_cleanup_base_exception_finalizes_close_then_propagates
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_closed_event_failure_can_retry_terminal_close
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_close_retry_reuses_large_terminal_carrier
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_terminal_promotion_freezes_state_before_first_await
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_completed_event_cancellation_reuses_terminal_event_id
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_closed_event_retry_reuses_terminal_event_body
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_closed_event_cancellation_finishes_terminal_bookkeeping
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_default_executions_share_physical_record_store_and_isolate_scopes
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_default_execution_search_is_execution_isolated
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_default_record_store_uses_parent_session_scope
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_can_disable_default_record_store
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_record_store_argument_uses_shared_resource_without_durability
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_event_center_receives_event_when_persistence_fails
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_resources_override_flow_defaults
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_runtime_data_set_resource_is_execution_scoped
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_save_records_resource_keys_only
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_load_requires_reinjecting_runtime_resources
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_async_load_restores_resource_with_importable_resolver
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_load_missing_resolver_fails_closed
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_load_unhealthy_resource_fail_closed_and_fail_open
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_pause_for_validates_external_wait_template
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_pause_for_persists_connected_and_disconnected_wait_modes[connected]
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_pause_for_persists_connected_and_disconnected_wait_modes[disconnected]
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_exchange_provider_publishes_external_wait_request
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_exchange_provider_failure_marks_exposure_failed
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_condition_handler_can_use_runtime_resources
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_config_round_trip_with_runtime_resources
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_resource_injects_managed_resource
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_save_records_managed_execution_resource_keys
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_async_load_restores_managed_execution_resource
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_async_save_uses_snapshot_store
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_explicit_durable_provider_binds_recovery_without_audit
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_explicit_snapshot_and_runtime_event_store_ports_are_independent
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_explicit_ports_override_durable_fallback_regardless_of_order
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_execution_binds_inherited_explicit_durability_ports
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_ignores_noncallable_durable_provider_ports
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_recovery_lifecycle_activates_lazy_record_store_ports[planned]
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_recovery_lifecycle_activates_lazy_record_store_ports[auto]
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_declared_intervention_point_activates_recovery_durability
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_planned_lifecycle_records_explicit_provider_activation
tests/test_cores/test_trigger_flow_runtime_resources.py::test_async_recovery_activation_persists_boundary_without_enabling_audit
tests/test_cores/test_trigger_flow_runtime_resources.py::test_async_recovery_activation_requires_provider_for_snapshot
tests/test_cores/test_trigger_flow_runtime_resources.py::test_async_recovery_activation_uses_independent_snapshot_store
tests/test_cores/test_trigger_flow_runtime_resources.py::test_public_async_save_activates_default_record_store_without_backfill
tests/test_cores/test_trigger_flow_runtime_resources.py::test_public_sync_save_binds_recovery_without_materializing_or_enabling_audit
tests/test_cores/test_trigger_flow_runtime_resources.py::test_public_sync_load_binds_recovery_without_enabling_audit
tests/test_cores/test_trigger_flow_runtime_resources.py::test_async_load_activates_record_store_and_keeps_duplicate_resume_idempotent
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_record_store_snapshot_restores_pause_continue_provider_path
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_compaction_metadata_loads_and_diagnoses_mismatches
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_save_snapshot_runs_compaction_policy_reducer
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_record_store_snapshot_restores_when_join_provider_path
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_distributed_snapshot_rejects_local_record_store_provider
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_distributed_snapshot_fails_closed_for_missing_provider_methods
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_distributed_snapshot_requires_retention_method
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_distributed_snapshot_accepts_capable_provider
tests/test_cores/test_trigger_flow_runtime_resources.py::test_trigger_flow_runtime_event_store_keeps_legacy_append_signature
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_default_snapshot_preserves_full_terminal_history
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_digest_projection_bounds_terminal_history
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_projection_keeps_pending_interrupt_payload_complete
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_projected_resume_digest_preserves_idempotency_after_load
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_projected_terminal_history_loads_with_later_pending_interrupt
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_snapshot_projection_defers_while_execution_is_active
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_snapshot_rejects_corrupt_value_digest_projection
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_snapshot_projection_policy_validates_configuration
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_v2_loader_accepts_legacy_v1_full_snapshot
tests/test_cores/test_trigger_flow_snapshot_projection.py::test_trigger_flow_v2_loader_requires_valid_projection_metadata
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_execution_exposes_canonical_recovery_run_id
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_execution_prunes_its_bound_recovery_history_without_run_id
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_execution_snapshot_retention_overrides_provider_default
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_execution_can_disable_provider_automatic_retention
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_snapshot_retention_override_survives_save_and_load
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_rejects_active_snapshot_prune_before_provider_mutation
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_retention_override_fails_before_unsupported_provider_write
tests/test_cores/test_trigger_flow_snapshot_retention.py::test_trigger_flow_automatic_wait_snapshots_keep_latest_three_and_restore
tests/test_cores/test_trigger_flow_workspace_effects.py::test_triggerflow_default_record_store_is_lazy_and_pure
tests/test_cores/test_trigger_flow_workspace_effects.py::test_finite_triggerflow_task_workspace_read_creates_zero_private_state
tests/test_cores/test_trigger_flow_workspace_effects.py::test_finite_triggerflow_leaves_task_workspace_retention_to_its_owner
tests/test_cores/test_trigger_flow_workspace_effects.py::test_triggerflow_record_store_audit_is_persisted_only_when_explicitly_bound
tests/test_cores/test_trigger_flow_workspace_effects.py::test_triggerflow_pause_uses_record_store_snapshot_without_enabling_audit
tests/test_devtools_lazy_observation.py::test_agently_observe_uses_lazy_import_and_binds_bridge
tests/test_docker_workspace_code_execution.py::test_docker_provider_exposes_code_execution_capabilities
tests/test_docker_workspace_code_execution.py::test_docker_executes_materialized_workspace_bundle
tests/test_docker_workspace_code_execution.py::test_docker_async_container_execution_does_not_block_event_loop
tests/test_docker_workspace_code_execution.py::test_docker_image_pull_streams_bounded_progress
tests/test_docker_workspace_code_execution.py::test_docker_failed_container_cleanup_remains_visible_and_retryable
tests/test_example_deepseek_defaults.py::test_examples_do_not_recommend_deepseek_chat
tests/test_example_deepseek_defaults.py::test_updated_deepseek_examples_use_flash_without_thinking
tests/test_execution_resource_provider_selection.py::test_manager_skips_unavailable_and_ineligible_providers
tests/test_execution_resource_provider_selection.py::test_code_execution_requirement_rejects_legacy_isolation_labels
tests/test_execution_resource_provider_selection.py::test_provider_is_reprobed_before_ensure_and_priority_falls_through
tests/test_execution_resource_provider_selection.py::test_explicit_provider_and_release_use_the_selected_provider
tests/test_execution_resource_provider_selection.py::test_all_ineligible_providers_fail_closed_with_probe_facts
tests/test_execution_resource_provider_selection.py::test_provider_selection_enforces_minimum_and_exact_toolchain_versions
tests/test_execution_resource_provider_selection.py::test_duplicate_provider_id_is_rejected
tests/test_execution_resource_provider_selection.py::test_candidate_descriptor_merges_only_selected_provider_config
tests/test_execution_resource_provider_selection.py::test_preferred_capabilities_choose_isolated_provider_before_unsafe_priority
tests/test_execution_resource_provider_selection.py::test_preferred_capabilities_record_explicit_fallback_when_unavailable
tests/test_extensions/test_action_extension.py::test_action_extension
tests/test_extensions/test_action_extension.py::test_action_response_is_delivered_directly_without_third_model_request
tests/test_extensions/test_action_extension.py::test_action_response_direct_delivery_uses_original_structured_output_contract
tests/test_extensions/test_action_extension.py::test_action_response_legacy_handler_falls_back_to_final_model_request
tests/test_extensions/test_action_extension.py::test_action_response_legacy_action_flow_falls_back_without_new_handler_kwargs
tests/test_extensions/test_action_extension.py::test_action_response_direct_delivery_keeps_broadcast_suffix_lifecycle
tests/test_extensions/test_action_extension.py::test_action_response_direct_delivery_finalizes_session_once
tests/test_extensions/test_action_extension.py::test_action_response_validation_retry_resets_provisional_stream
tests/test_extensions/test_action_extension.py::test_action_response_never_scrapes_schema_external_trailing_prose
tests/test_extensions/test_action_extension.py::test_action_extension_set_tool_loop_config
tests/test_extensions/test_action_extension.py::test_action_extension_default_loop_has_no_round_cap
tests/test_extensions/test_action_extension.py::test_action_flow_max_rounds_returns_diagnostic_without_executing
tests/test_extensions/test_action_extension.py::test_action_flow_max_rounds_stops_before_extra_planning_round
tests/test_extensions/test_action_extension.py::test_action_extension_use_sandbox_registers_agent_scoped_bash_action
tests/test_extensions/test_action_extension.py::test_action_extension_enable_python_registers_run_python_action
tests/test_extensions/test_action_extension.py::test_action_extension_enable_python_defaults_to_docker_profile
tests/test_extensions/test_action_extension.py::test_action_extension_use_action_sandbox_defaults_to_docker_profile
tests/test_extensions/test_action_extension.py::test_action_extension_enable_python_dependency_request_requires_resource_approval
tests/test_extensions/test_action_extension.py::test_action_extension_enable_python_trusted_local_uses_canonical_resource
tests/test_extensions/test_action_extension.py::test_action_extension_default_introspection_includes_agent_scoped_actions
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_registers_run_bash_action
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_defaults_to_docker_profile
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_defaults_to_safe_profile
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_redacts_env_in_action_info
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_supports_multi_token_command_prefixes
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_uses_root_as_default_workdir
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_accepts_one_command_string_in_list
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_persists_large_output_artifacts
tests/test_extensions/test_action_extension.py::test_action_extension_enable_shell_reports_timeout
tests/test_extensions/test_action_extension.py::test_action_extension_enable_helper_desc_modes
tests/test_extensions/test_action_extension.py::test_action_extension_enable_nodejs_defaults_to_docker_profile
tests/test_extensions/test_action_extension.py::test_action_extension_enable_code_runtime_go_uses_developer_docker_profile
tests/test_extensions/test_action_extension.py::test_action_extension_enable_code_runtime_registers_provider_neutral_requirement
tests/test_extensions/test_action_extension.py::test_action_extension_enable_code_runtime_accepts_read_only_provider_sequence
tests/test_extensions/test_action_extension.py::test_action_extension_code_runtime_requires_explicit_isolation_downgrade_for_unsafe_fallback
tests/test_extensions/test_action_extension.py::test_action_extension_code_runtime_reads_ordered_provider_settings_and_appends_unsafe_fallback
tests/test_extensions/test_action_extension.py::test_action_extension_enable_code_runtime_required_language_adapters
tests/test_extensions/test_action_extension.py::test_action_extension_enable_nodejs_trusted_local_uses_canonical_resource
tests/test_extensions/test_action_extension.py::test_action_extension_enable_task_workspace_file_actions_registers_file_actions
tests/test_extensions/test_action_extension.py::test_action_extension_task_workspace_file_actions_export_flag_and_idempotent_user_action
tests/test_extensions/test_action_extension.py::test_action_extension_enable_coding_agent_actions_registers_guarded_file_tools
tests/test_extensions/test_action_extension.py::test_action_extension_enable_task_workspace_file_actions_inherits_foundation_workspace
tests/test_extensions/test_action_extension.py::test_action_extension_enable_task_workspace_file_actions_uses_isolated_default_root
tests/test_extensions/test_action_extension.py::test_action_extension_removes_ambiguous_task_workspace_aliases
tests/test_extensions/test_action_extension.py::test_action_extension_shell_and_nodejs_inherit_foundation_workspace
tests/test_extensions/test_action_extension.py::test_action_extension_request_prefix_injects_action_results
tests/test_extensions/test_action_extension.py::test_action_response_direct_delivery_defers_to_ensure_long_output
tests/test_extensions/test_action_extension.py::test_action_extension_broadcast_prefix_keeps_action_and_tool_logs
tests/test_extensions/test_action_extension.py::test_action_extension_plan_handler_waits_for_final_response_data
tests/test_extensions/test_action_extension.py::test_action_extension_generate_tool_command_only
tests/test_extensions/test_action_extension.py::test_action_extension_get_action_result_runs_action_loop_without_reply
tests/test_extensions/test_action_extension.py::test_action_extension_get_action_result_can_skip_reply_storage
tests/test_extensions/test_action_extension.py::test_action_extension_get_action_result_stores_empty_reply_sentinel
tests/test_extensions/test_action_extension.py::test_action_extension_request_prefix_reuses_stored_action_result
tests/test_extensions/test_action_extension.py::test_action_extension_get_action_result_timeout_bounds_planning_handler
tests/test_extensions/test_action_extension.py::test_action_extension_summarize_records_latest_validation_wins
tests/test_extensions/test_action_extension.py::test_action_extension_generate_tool_command_uses_canonical_api
tests/test_extensions/test_chat_session_extension.py::test_chat_session_extension_is_removed_from_the_4_2_runtime
tests/test_extensions/test_configure_prompt_extension.py::test_prompt_to_json_yaml_prompt_returns_string
tests/test_extensions/test_configure_prompt_extension.py::test_get_json_yaml_prompt_save_to_file
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_accepts_long_raw_yaml_string
tests/test_extensions/test_configure_prompt_extension.py::test_load_json_prompt_accepts_long_raw_json_string
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_accepts_file_path
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_accepts_explicit_mappings_keyword
tests/test_extensions/test_configure_prompt_extension.py::test_removed_agent_turn_prompt_methods_are_not_available
tests/test_extensions/test_configure_prompt_extension.py::test_agent_execution_set_execution_prompt_updates_local_prompt
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_accepts_execution_scope_and_set_execution_prompt_alias
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_accepts_execution_scope
tests/test_extensions/test_configure_prompt_extension.py::test_agent_prompt_serializes_execution_scope_for_pending_prompt
tests/test_extensions/test_configure_prompt_extension.py::test_agent_execution_prompt_serializes_execution_scope
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_rejects_positional_mappings
tests/test_extensions/test_configure_prompt_extension.py::test_load_yaml_prompt_output_accepts_format_metadata
tests/test_extensions/test_configure_prompt_extension.py::test_load_json_prompt_output_accepts_output_format_metadata
tests/test_extensions/test_configure_prompt_extension.py::test_agent_level_output_format_metadata_is_inherited_by_request
tests/test_extensions/test_configure_prompt_extension.py::test_output_format_metadata_supports_mappings
tests/test_extensions/test_configure_prompt_extension.py::test_load_prompt_rejects_removed_request_and_turn_scopes
tests/test_extensions/test_session_extension.py::test_agent_chat_history_set_replaces_and_add_preserves_duplicates_without_session
tests/test_extensions/test_session_extension.py::test_agent_reset_chat_history_clears_local_history_without_session
tests/test_extensions/test_session_extension.py::test_agent_set_action_results_replaces_existing_results
tests/test_extensions/test_session_extension.py::test_session_extension_activate_and_override_chat_history
tests/test_extensions/test_session_extension.py::test_session_extension_clean_context_window
tests/test_extensions/test_session_extension.py::test_session_extension_clean_context_window_without_activated_session_clears_chat_history
tests/test_extensions/test_session_extension.py::test_session_extension_deactivate_cleans_chat_history
tests/test_extensions/test_session_extension.py::test_session_extension_emits_runtime_events
tests/test_extensions/test_session_extension.py::test_session_extension_request_prefix_syncs_context_window
tests/test_extensions/test_session_extension.py::test_session_extension_does_not_duplicate_memory_recall_inside_agent_execution
tests/test_extensions/test_session_extension.py::test_session_extension_finally_default_recording
tests/test_extensions/test_session_extension.py::test_session_extension_finally_recording_with_keys
tests/test_extensions/test_session_extension.py::test_session_extension_finally_runs_after_result_ready
tests/test_extensions/test_session_extension.py::test_session_extension_register_analysis_and_resize_handler
tests/test_extensions/test_session_extension.py::test_session_extension_register_resize_handler_rejects_empty_strategy
tests/test_external_code_execution_provider_contract.py::test_external_provider_needs_no_core_changes_for_grant_bundle_execution[container_runtime]
tests/test_external_code_execution_provider_contract.py::test_external_provider_needs_no_core_changes_for_grant_bundle_execution[host_policy]
tests/test_external_code_execution_provider_contract.py::test_docker_runtime_variant_reuses_provider_lifecycle_through_resource_factory
tests/test_field_long_content.py::test_field_body_then_summary_uses_actual_prose
tests/test_field_long_content.py::test_pydantic_metadata_preserves_original_constraints_and_return_type
tests/test_field_long_content.py::test_nested_arrays_bind_actual_indices_and_completed_siblings
tests/test_field_long_content.py::test_bad_marker_rejected_before_dispatch[declaration0]
tests/test_field_long_content.py::test_bad_marker_rejected_before_dispatch[declaration1]
tests/test_field_long_content.py::test_plain_string_remains_one_request
tests/test_field_long_content.py::test_field_original_constraint_is_not_silently_relaxed
tests/test_field_long_content.py::test_empty_array_does_not_generate_phantom_field
tests/test_flat_markdown_output_format.py::TestOutputFormat::test_flat_markdown_is_valid_output_format
tests/test_flat_markdown_output_format.py::TestOutputFormat::test_dict_prompt_model_defaults_to_json_without_settings
tests/test_flat_markdown_output_format.py::TestOutputFormat::test_non_dict_output_with_flat_markdown_warns_and_falls_back
tests/test_flat_markdown_output_format.py::TestOutputFormat::test_json_format_still_works
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_parses_sections_correctly
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_returns_none_for_empty_dict_schema
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_returns_none_for_non_dict_schema
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_ignores_unknown_section_headers
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_missing_section_returns_empty_dict_entry
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_accepts_model_copied_header_annotations
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_unwraps_same_field_json_wrapper
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_rejects_placeholder_scaffold
tests/test_flat_markdown_output_format.py::TestParseFlatMarkdownOutput::test_rejects_complex_raw_text
tests/test_flat_markdown_output_format.py::TestFlatMarkdownStreamingParser::test_streaming_emits_correct_events
tests/test_flat_markdown_output_format.py::TestFlatMarkdownStreamingParser::test_streaming_multiple_chunks
tests/test_flat_markdown_output_format.py::TestFlatMarkdownStreamingParser::test_empty_schema_produces_no_events
tests/test_flat_markdown_output_format.py::TestFlatMarkdownStreamingParser::test_streaming_flush_final_data_replays_done_only_response
tests/test_flat_markdown_output_format.py::TestFlatMarkdownStreamingParser::test_streaming_header_annotation_keeps_clean_field_path
tests/test_flat_markdown_output_format.py::TestModelRequestOutputFormat::test_format_is_stored_in_prompt
tests/test_flat_markdown_output_format.py::TestModelRequestOutputFormat::test_default_format_reads_settings_default_json
tests/test_flat_markdown_output_format.py::TestModelRequestOutputFormat::test_default_format_can_be_set_to_auto_per_agent
tests/test_flat_markdown_output_format.py::TestModelRequestOutputFormat::test_flat_markdown_prompt_keeps_header_line_plain
tests/test_goal_preparation_prompt_contract.py::test_preparation_receives_complete_original_contract[json-False]
tests/test_goal_preparation_prompt_contract.py::test_preparation_receives_complete_original_contract[json-True]
tests/test_goal_preparation_prompt_contract.py::test_preparation_receives_complete_original_contract[yaml_literal-False]
tests/test_goal_preparation_prompt_contract.py::test_preparation_receives_complete_original_contract[yaml_literal-True]
tests/test_goal_preparation_prompt_contract.py::test_preparation_omits_empty_contract_and_keeps_caller_and_host_context[False]
tests/test_goal_preparation_prompt_contract.py::test_preparation_omits_empty_contract_and_keeps_caller_and_host_context[True]
tests/test_goal_preparation_prompt_contract.py::test_preparation_schema_matches_existing_structural_boundary
tests/test_goal_preparation_prompt_contract.py::test_goal_projection_retains_late_task_context_lanes
tests/test_gvisor_execution_provider.py::test_gvisor_requires_runsc_in_docker_runtime_registry
tests/test_gvisor_execution_provider.py::test_gvisor_rejects_malformed_runtime_registry
tests/test_gvisor_execution_provider.py::test_gvisor_rejects_conflicting_default_runtime_args
tests/test_gvisor_execution_provider.py::test_gvisor_resource_emits_one_fixed_runtime_argv
tests/test_gvisor_execution_provider.py::test_gvisor_direct_docker_run_emits_one_fixed_runtime_argv
tests/test_gvisor_execution_provider.py::test_gvisor_ensure_records_active_runtime_only_after_execution_probe
tests/test_gvisor_execution_provider.py::test_gvisor_ensure_rejects_registered_but_non_executable_runtime
tests/test_gvisor_execution_provider.py::test_gvisor_ensure_closes_unowned_resource_after_runtime_verification_failure
tests/test_gvisor_execution_provider.py::test_gvisor_ensure_closes_unowned_resource_when_runtime_verification_is_cancelled
tests/test_gvisor_execution_provider.py::test_generic_selection_uses_only_the_gvisor_provider
tests/test_gvisor_execution_provider.py::test_default_docker_resource_has_no_runtime_argument
tests/test_gvisor_execution_provider.py::test_gvisor_health_rejects_an_unregistered_runtime
tests/test_gvisor_execution_provider.py::test_gvisor_health_rejects_registered_but_non_executable_runtime
tests/test_gvisor_execution_provider.py::test_gvisor_probe_rejects_conflicting_runtime_arguments
tests/test_gvisor_execution_provider.py::test_gvisor_cancelled_runtime_probe_leaves_no_active_container
tests/test_gvisor_execution_provider_integration.py::test_gvisor_provider_executes_with_registered_runsc
tests/test_hybrid_output_format.py::TestScalarClassification::test_str_tuple_is_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_int_tuple_is_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_bool_tuple_is_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_float_tuple_is_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_list_is_not_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_dict_is_not_scalar
tests/test_hybrid_output_format.py::TestScalarClassification::test_non_type_tuple_is_not_scalar
tests/test_hybrid_output_format.py::TestClassifyFieldSpec::test_str_is_scalar
tests/test_hybrid_output_format.py::TestClassifyFieldSpec::test_int_is_scalar
tests/test_hybrid_output_format.py::TestClassifyFieldSpec::test_list_is_complex
tests/test_hybrid_output_format.py::TestClassifyFieldSpec::test_dict_is_complex
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_all_str_xml_field
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_mixed_scalar_types_hybrid
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_string_scalar_plus_complex_hybrid
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_eda_schema_hybrid
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_dense_eda_schema_with_string_fields_hybrid
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_judge_schema_hybrid_without_field_name_semantics
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_auto_hybrid_requires_string_field_and_typed_field
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_all_complex_json
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_nested_dict_json
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_empty_dict_json
tests/test_hybrid_output_format.py::TestResolveAutoFormat::test_non_dict_json
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_auto_with_string_and_complex_fields_sets_hybrid_and_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_auto_with_generic_mixed_sets_hybrid_and_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_auto_with_string_fields_sets_xml_field_and_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_auto_with_string_and_typed_scalar_sets_hybrid_and_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_auto_with_all_complex_sets_json_and_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_explicit_format_no_auto_flag
tests/test_hybrid_output_format.py::TestPromptModelAuto::test_hybrid_with_non_dict_warns_and_falls_back
tests/test_hybrid_output_format.py::TestExtractJsonBlock::test_json_code_block
tests/test_hybrid_output_format.py::TestExtractJsonBlock::test_plain_code_block
tests/test_hybrid_output_format.py::TestExtractJsonBlock::test_ignores_non_json_code_block_before_text
tests/test_hybrid_output_format.py::TestExtractJsonBlock::test_no_block_returns_none
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_mixed_scalar_and_complex
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_scalar_only
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_missing_json_block_fails_parse
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_malformed_json_fails_parse
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_empty_schema_returns_none
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_no_sections_returns_none
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_accepts_model_copied_header_annotations
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_text_field_preserves_inner_code_fences_and_markdown_headings
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_unwraps_scalar_same_field_json_wrapper
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_rejects_complex_placeholder_scaffold
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_strips_leading_legacy_scaffold_comment_from_text_field
tests/test_hybrid_output_format.py::TestParseHybridOutput::test_hybrid_prompt_does_not_emit_html_comment_scaffold
tests/test_hybrid_output_format.py::TestHybridStreamingParser::test_streaming_header_annotation_keeps_clean_field_path
tests/test_integrations/test_fastapi.py::test_fastapi_helper_post_uses_triggerflow_contract_for_runtime_and_openapi
tests/test_integrations/test_fastapi.py::test_fastapi_helper_sse_keeps_triggerflow_contract_runtime_validation
tests/test_json_prefix_evidence.py::test_complete_and_partial_framing
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[True-\u957f\u6b63\u6587\n\u5f15\u53f7"\u53cd\u659c\u6760\\\U0001f600]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[True-value1]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[True-value2]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[True-value3]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[True-value4]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[False-\u957f\u6b63\u6587\n\u5f15\u53f7"\u53cd\u659c\u6760\\\U0001f600]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[False-value1]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[False-value2]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[False-value3]
tests/test_json_prefix_evidence.py::test_every_synthetic_cut_preserves_closed_values[False-value4]
tests/test_json_prefix_evidence.py::test_partial_array_element_is_not_a_closed_item
tests/test_json_prefix_evidence.py::test_closed_string_does_not_close_parent_or_reopen_field
tests/test_json_prefix_evidence.py::test_surrogate_pending_is_not_silently_dropped
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"x","a":"y]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"x"} garbage]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"\\q]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"bad\n]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[[1,]]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":1,}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a" 1}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":NaN}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":Infinity}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":01}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":truex]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"\\uDE00]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"\\uD83Dx]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":"\\uZZ]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":[}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":false false}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[prose {"a":1}]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":-e]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":-.]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":.]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":e]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":1.e]
tests/test_json_prefix_evidence.py::test_invalid_is_not_mislabeled_as_incomplete[{"a":-.e]
tests/test_judgment_output.py::test_pure_jev_batch_no_llm
tests/test_judgment_output.py::test_mixed_jev_before_llm_host_merge
tests/test_judgment_output.py::test_dynamic_current_item_binding
tests/test_judgment_output.py::test_empty_list_no_jev
tests/test_judgment_output.py::test_jev_dependency_chain
tests/test_judgment_output.py::test_fallback_retains_constraints
tests/test_judgment_output.py::test_shared_retry_does_not_repeat_success
tests/test_judgment_output.py::test_bad_dependencies_fail_before_network[schema0]
tests/test_judgment_output.py::test_bad_dependencies_fail_before_network[schema1]
tests/test_judgment_output.py::test_bad_dependencies_fail_before_network[schema2]
tests/test_judgment_output.py::test_bad_dependencies_fail_before_network[schema3]
tests/test_judgment_output.py::test_adapter_projects_choice_and_score
tests/test_judgment_output.py::test_root_scalar_and_standalone_request
tests/test_judgment_output.py::test_root_list_binding
tests/test_judgment_output.py::test_nested_lists_binding
tests/test_judgment_output.py::test_external_list_reference_collects_values
tests/test_judgment_output.py::test_disabled_jev_ignores_bad_credentials_and_combines_llm
tests/test_judgment_output.py::test_explicit_enabled_missing_key_preflight
tests/test_judgment_output.py::test_failures_share_budget_across_stages
tests/test_judgment_output.py::test_llm_output_validation_retries_after_observed_field
tests/test_judgment_output.py::test_probability_constraints_reject_invalid_values[None]
tests/test_judgment_output.py::test_probability_constraints_reject_invalid_values[True]
tests/test_judgment_output.py::test_probability_constraints_reject_invalid_values[-0.1]
tests/test_judgment_output.py::test_probability_constraints_reject_invalid_values[1.1]
tests/test_judgment_output.py::test_probability_constraints_reject_invalid_values[nan]
tests/test_judgment_output.py::test_bounded_batches
tests/test_judgment_output.py::test_namespace_child_mapping_and_exact_kv_precedence
tests/test_judgment_output.py::test_cancel_settles_provider_and_stops_downstream
tests/test_judgment_output.py::test_extra_llm_fields_cannot_overwrite_native
tests/test_judgment_output.py::test_fixed_cross_list_index_is_unambiguous
tests/test_judgment_output.py::test_invalid_observed_dependency_is_repaired_before_jev
tests/test_judgment_output.py::test_mixed_missing_llm_config_fails_before_jev
tests/test_judgment_output.py::test_multiple_sources_bind_per_item_and_preserve_names
tests/test_judgment_output.py::test_multiple_sources_wait_for_all_producers
tests/test_judgment_output.py::test_dynamic_remaining_fields_use_judgment_evidence
tests/test_judgment_output.py::test_invalid_source_arrays[paths0]
tests/test_judgment_output.py::test_invalid_source_arrays[paths1]
tests/test_judgment_output.py::test_invalid_source_arrays[paths2]
tests/test_judgment_output.py::test_invalid_source_arrays[paths3]
tests/test_judgment_output.py::test_singleton_array_keeps_object_shape
tests/test_judgment_output.py::test_after_output_shares_llm_request_but_is_not_sent_to_jev
tests/test_judgment_output.py::test_after_judgment_waits_without_injecting_answer
tests/test_judgment_output.py::test_after_output_dependency_errors[schema0]
tests/test_judgment_output.py::test_after_output_dependency_errors[schema1]
tests/test_judgment_output.py::test_after_output_dependency_errors[schema2]
tests/test_judgment_output.py::test_provider_independent_template_uses_llm_alongside_jev
tests/test_judgment_output.py::test_after_output_fallback_keeps_dependencies
tests/test_judgment_output.py::test_custom_template_can_return_structured_value
tests/test_landlock_execution_provider_integration.py::test_landlock_allows_granted_output_and_denies_ungranted_read
tests/test_landlock_isolation.py::test_landlock_preserves_proc_self_exe_virtual_path
tests/test_landlock_isolation.py::test_landlock_preserves_virtualenv_and_resolved_toolchain_roots
tests/test_landlock_isolation.py::test_landlock_resource_accepts_no_arbitrary_path_or_abi_configuration
tests/test_landlock_isolation.py::test_landlock_regular_file_rule_excludes_directory_only_access_bits
tests/test_landlock_isolation.py::test_landlock_parent_launches_bounded_helper_instead_of_preexec
tests/test_landlock_isolation.py::test_landlock_probe_reports_filesystem_only_capabilities
tests/test_landlock_isolation.py::test_landlock_rejects_arbitrary_provider_configuration
tests/test_landlock_isolation.py::test_landlock_health_rechecks_real_mechanism
tests/test_landlock_isolation.py::test_generic_selection_uses_only_the_landlock_provider
tests/test_long_content_declaration.py::test_public_type_is_string_annotation_and_has_consistent_exports
tests/test_long_content_declaration.py::test_typed_and_legacy_nested_forms_render_identically_without_mutation
tests/test_long_content_declaration.py::test_public_production_supports_root_and_nested_declarations[False-Annotated]
tests/test_long_content_declaration.py::test_public_production_supports_root_and_nested_declarations[False-long_content]
tests/test_long_content_declaration.py::test_public_production_supports_root_and_nested_declarations[True-Annotated]
tests/test_long_content_declaration.py::test_public_production_supports_root_and_nested_declarations[True-long_content]
tests/test_long_content_declaration.py::test_pydantic_annotation_preserves_constraints_and_model_class
tests/test_long_content_declaration.py::test_annotated_constraints_are_not_discarded
tests/test_long_content_declaration.py::test_description_and_field_name_do_not_select_long_content
tests/test_long_content_declaration.py::test_prompt_config_serializes_the_canonical_string_tag
tests/test_long_content_declaration.py::test_nested_prompt_config_round_trip_preserves_long_content
tests/test_long_content_declaration.py::test_bare_type_selects_root_long_content
tests/test_long_content_declaration.py::test_pydantic_array_item_annotation_keeps_production_marker
tests/test_long_content_prompt_contract.py::test_scope_summary_isolation_complete_directory_and_no_staging_selection
tests/test_long_content_prompt_contract.py::test_cumulative_budget_stops_before_missing_summary_dispatch
tests/test_long_content_prompt_contract.py::test_readback_tampering_blocks_before_summary
tests/test_long_content_prompt_contract.py::test_formatting_is_idempotent_and_never_rewrites_paragraphs[# Chapter\n\nBody.\n\n## Detail\n\nText.\n]
tests/test_long_content_prompt_contract.py::test_formatting_is_idempotent_and_never_rewrites_paragraphs[Chapter\n=======\n\nBody.\n\nDetail\n------\n\nText.\n]
tests/test_long_content_prompt_contract.py::test_formatting_is_idempotent_and_never_rewrites_paragraphs[# Chapter\n\n# Chapter\n\nBody.\n]
tests/test_long_content_prompt_contract.py::test_formatting_is_idempotent_and_never_rewrites_paragraphs[# A\n\n###### Deep\n\nText.\n]
tests/test_long_content_prompt_contract.py::test_formatting_is_idempotent_and_never_rewrites_paragraphs[```markdown\n# Code title\n```\n\n> # Quoted\n\nBody.\n]
tests/test_long_output_complete_carrier.py::test_complete_provider_does_not_authorize_partial_json[{"body":"first"}\n{"body":"lost"}]
tests/test_long_output_complete_carrier.py::test_complete_provider_does_not_authorize_partial_json[{"body":"first"}\n</think>]
tests/test_long_output_complete_carrier.py::test_complete_provider_does_not_authorize_partial_json[{"body":"unfinished]
tests/test_long_output_complete_carrier.py::test_complete_provider_does_not_authorize_partial_json[{"body":"first","body":"overwritten"}]
tests/test_long_output_complete_carrier.py::test_valid_complete_json_still_uses_one_request[{"body":"done"}]
tests/test_long_output_complete_carrier.py::test_valid_complete_json_still_uses_one_request[```json\n{"body":"done"}\n```]
tests/test_long_output_complete_carrier.py::test_numeric_root_needs_explicit_end_evidence[1]
tests/test_long_output_complete_carrier.py::test_numeric_root_needs_explicit_end_evidence[-2]
tests/test_long_output_complete_carrier.py::test_numeric_root_needs_explicit_end_evidence[1.25]
tests/test_long_output_complete_carrier.py::test_numeric_root_needs_explicit_end_evidence[1e3]
tests/test_long_output_complete_carrier.py::test_validation_replacement_cannot_discard_its_tail
tests/test_long_output_complete_carrier.py::test_internal_stage_replacement_uses_its_own_delivery_evidence[replacement_terminal0]
tests/test_long_output_complete_carrier.py::test_internal_stage_replacement_uses_its_own_delivery_evidence[replacement_terminal1]
tests/test_long_output_complete_carrier.py::test_internal_chapter_stage_cannot_discard_its_tail
tests/test_long_output_complete_carrier.py::test_replacement_length_cannot_borrow_initial_stop
tests/test_long_output_contract_projection.py::test_pydantic_contract_projection_retains_nested_constraints[False]
tests/test_long_output_contract_projection.py::test_pydantic_contract_projection_retains_nested_constraints[True]
tests/test_long_output_contract_projection.py::test_tuple_declaration_without_pydantic_metadata_is_unchanged
tests/test_long_output_contract_projection.py::test_continuation_projects_the_same_rule_its_slot_validator_enforces
tests/test_long_output_empty_completion.py::test_complete_empty_acknowledgement_needs_no_filler
tests/test_long_output_empty_completion.py::test_empty_acknowledgement_reuses_one_typed_result_across_readers
tests/test_long_output_empty_completion.py::test_malformed_empty_acknowledgement_cannot_authorize_completion[tail]
tests/test_long_output_empty_completion.py::test_malformed_empty_acknowledgement_cannot_authorize_completion[duplicate]
tests/test_long_output_empty_completion.py::test_malformed_empty_acknowledgement_cannot_authorize_completion[open]
tests/test_long_output_empty_completion.py::test_stale_empty_acknowledgement_fails_without_retry
tests/test_long_output_empty_completion.py::test_empty_acknowledgement_does_not_bypass_original_validator
tests/test_long_output_empty_completion.py::test_incomplete_empty_packets_still_stop_after_three_no_progress_requests
tests/test_long_output_empty_completion.py::test_empty_acknowledgement_cannot_supply_missing_required_field
tests/test_long_task_loop.py::test_default_long_task_has_one_decision_and_no_shape_or_finalizer
tests/test_long_task_loop.py::test_tool_feedback_checklist_revision_and_structured_result
tests/test_long_task_loop.py::test_invalid_decision_never_dispatches_actions[completed-write]
tests/test_long_task_loop.py::test_invalid_decision_never_dispatches_actions[continue-unoffered]
tests/test_long_task_loop.py::test_required_file_failure_returns_to_same_decision
tests/test_long_task_loop.py::test_rework_retains_context_and_cumulative_rounds
tests/test_long_task_loop.py::test_round_limit_survives_rework
tests/test_long_task_loop.py::test_pause_after_action_json_restore_never_repeats_effect
tests/test_long_task_loop.py::test_required_action_needs_actual_success
tests/test_long_task_loop.py::test_tool_error_and_guidance_reach_next_decision
tests/test_long_task_loop.py::test_required_delivered_file_retains_reference
tests/test_long_task_loop.py::test_typed_result_uses_original_output_model
tests/test_long_task_loop.py::test_cancellation_settles_running_action
tests/test_long_task_loop.py::test_creation_limit_blocks_without_model_dispatch
tests/test_long_task_loop.py::test_stream_progress_and_explicit_validation_use_final_business_value
tests/test_long_task_loop.py::test_42_rejects_legacy_strategies_before_dispatch[flat]
tests/test_long_task_loop.py::test_42_rejects_legacy_strategies_before_dispatch[taskboard]
tests/test_long_task_loop.py::test_42_rejects_legacy_strategies_before_dispatch[task]
tests/test_long_task_loop.py::test_42_rejects_legacy_strategies_before_dispatch[task_loop]
tests/test_long_task_loop.py::test_42_does_not_export_legacy_task_owner
tests/test_long_task_loop.py::test_selected_action_file_survives_cleanup_and_restore[False-completed]
tests/test_long_task_loop.py::test_selected_action_file_survives_cleanup_and_restore[False-blocked]
tests/test_long_task_loop.py::test_selected_action_file_survives_cleanup_and_restore[True-completed]
tests/test_long_task_loop.py::test_selected_action_file_survives_cleanup_and_restore[True-blocked]
tests/test_long_task_loop.py::test_file_selection_rejects_stale_files_and_ignores_unknown_paths[changed]
tests/test_long_task_loop.py::test_file_selection_rejects_stale_files_and_ignores_unknown_paths[deleted]
tests/test_long_task_loop.py::test_file_selection_rejects_stale_files_and_ignores_unknown_paths[unknown]
tests/test_long_task_loop.py::test_file_selection_survives_rework_without_replaying_action
tests/test_long_task_loop.py::test_observation_preserves_small_complete_source_body
tests/test_long_task_loop.py::test_required_binary_delivery_needs_identity_not_text_parser
tests/test_long_task_loop.py::test_native_file_actions_use_execution_identity_and_preserve_code_product
tests/test_long_task_loop.py::test_native_write_uses_current_execution_private_area
tests/test_main_package.py::test_package_exposes_standard_release_version
tests/test_main_package.py::test_public_core_instance_creation_styles
tests/test_main_package.py::test_settings
tests/test_main_package.py::test_agent_set_settings_preserves_fluent_agent_contract
tests/test_main_package.py::test_agently_set_api_key_and_alias_mapping
tests/test_main_package.py::test_agent_activate_model_sets_default_model_key_for_requests
tests/test_main_package.py::test_model_request_rejects_unknown_key_before_provider_dispatch
tests/test_main_package.py::test_action_executor_plugins_registered
tests/test_main_package.py::test_action_runtime_and_flow_plugins_registered
tests/test_main_package.py::test_dynamic_task_plugin_registered
tests/test_main_package.py::test_streaming_data_uses_is_complete_completion_field
tests/test_main_package.py::test_response_parser_records_complete_streaming_snapshot_fields
tests/test_main_package.py::test_skills_executor_is_a_thin_application_facade_not_a_plugin
tests/test_main_package.py::test_skills_facade_and_agents_share_the_canonical_skill_library
tests/test_main_package.py::test_agent_can_create_dynamic_task
tests/test_main_package.py::test_agent_use_dynamic_task_fails_fast_with_migration_guidance
tests/test_main_package.py::test_agent_execution_use_dynamic_task_fails_fast_with_migration_guidance
tests/test_main_package.py::test_agent_execution_stream_preserves_delta_event_structure
tests/test_main_package.py::test_agent_execution_stream_default_delta_path_remains_uncoalesced
tests/test_main_package.py::test_agent_execution_progress_is_visible_with_raw_stream_delivery
tests/test_main_package.py::test_agent_execution_structured_model_bridge_refreshes_progress_clock
tests/test_main_package.py::test_openai_compatible_first_event_timeout_is_typed_stall
tests/test_main_package.py::test_openai_compatible_first_event_timeout_ignores_empty_sse_heartbeats
tests/test_main_package.py::test_openai_compatible_first_event_timeout_does_not_wait_for_slow_cancellation_cleanup
tests/test_main_package.py::test_openai_compatible_first_event_timeout_yields_first_meaningful_sse_frame
tests/test_main_package.py::test_openai_compatible_stream_idle_timeout_is_typed_stall
tests/test_main_package.py::test_openai_compatible_stream_idle_timeout_ignores_empty_sse_heartbeats
tests/test_main_package.py::test_action_runtime_planning_handler_timeout_is_typed_stage_stall
tests/test_main_package.py::test_action_runtime_structured_planning_timeout_is_typed_stage_stall
tests/test_main_package.py::test_action_runtime_action_completion_refreshes_execution_progress
tests/test_main_package.py::test_action_flow_close_timeout_is_typed_stage_stall
tests/test_main_package.py::test_prompt_draft_use_dynamic_task_fails_fast_with_execution_guidance
tests/test_main_package.py::test_model_response_result_materialization_idle_timeout
tests/test_main_package.py::test_model_response_materialization_refreshes_progress_clock_without_notify
tests/test_main_package.py::test_hybrid_route_planner_treats_optional_skills_as_model_request_context
tests/test_main_package.py::test_hybrid_route_planner_respects_allowed_routes_policy
tests/test_main_package.py::test_hybrid_route_planner_keeps_required_skills_on_model_request_route
tests/test_main_package.py::test_dynamic_task_runs_submitted_plan
tests/test_main_package.py::test_dynamic_task_model_output_schema_uses_agently_request_pipeline
tests/test_main_package.py::test_dynamic_task_model_task_can_select_output_format
tests/test_main_package.py::test_dynamic_task_model_task_accepts_new_structured_output_formats[xml_field]
tests/test_main_package.py::test_dynamic_task_model_task_accepts_new_structured_output_formats[yaml_literal]
tests/test_main_package.py::test_dynamic_task_can_be_created_without_explicit_model_source
tests/test_main_package.py::test_dynamic_task_exposes_actions_only_when_explicit
tests/test_main_package.py::test_agent_execution_dynamic_task_route_is_removed_from_public_execution
tests/test_main_package.py::test_action_plugin_protocols_exported_for_third_party_plugins
tests/test_main_package.py::test_agently_load_settings_file
tests/test_main_package.py::test_agently_load_settings_file_applies_model_requester_alias
tests/test_main_package.py::test_agently_load_settings_refresh_httpx_log_level
tests/test_main_package.py::test_agently_set_debug_mapping_profiles
tests/test_main_package.py::test_agently_load_settings_applies_debug_mapping
tests/test_main_package.py::test_request_quick_prompt_supports_key_value_and_kwargs
tests/test_main_package.py::test_request_quick_prompt_preserves_explicit_mappings
tests/test_main_package.py::test_devtools_compatibility_manifest_declares_runtime_protocol
tests/test_main_package.py::test_skills_compatibility_manifest_declares_authoring_protocols
tests/test_main_package.py::test_agent_quick_prompt_supports_key_value_and_kwargs
tests/test_main_package.py::test_agent_execution_info_preserves_fluent_execution_chain
tests/test_model_capabilities.py::test_profile_isolation_and_reference
tests/test_model_capabilities.py::test_single_model_structured_image[llm]
tests/test_model_capabilities.py::test_single_model_structured_image[vlm]
tests/test_model_capabilities.py::test_pipeline_evidence_and_final_schema
tests/test_model_capabilities.py::test_explicit_direct_reuses_result[to_text]
tests/test_model_capabilities.py::test_explicit_direct_reuses_result[vlm_only]
tests/test_model_capabilities.py::test_append_local_questions_and_default_description
tests/test_model_capabilities.py::test_mode_llm_and_conflict
tests/test_model_capabilities.py::test_invalid_profile_and_disabled_vision_before_dispatch
tests/test_model_capabilities.py::test_role_profile_applies_to_ordinary_model_request
tests/test_model_capabilities.py::test_audio_input_task_and_say_cached
tests/test_model_capabilities.py::test_input_mapping_remains_business_data
tests/test_model_capabilities.py::test_missing_speech_dependency_does_not_start_model
tests/test_model_capabilities.py::test_direct_audio_profiles_are_independent
tests/test_model_capabilities.py::test_say_all_filters_raw_reasoning_and_final_delta
tests/test_model_capabilities.py::test_ocr_direct_and_pipeline
tests/test_model_capabilities.py::test_ocr_rejects_unsupported_direct_reasoning
tests/test_model_capabilities.py::test_mistral_ocr_adapter_contract
tests/test_model_capabilities.py::test_embedding_shape_and_order[rows0-None]
tests/test_model_capabilities.py::test_embedding_shape_and_order[rows1-indexes]
tests/test_model_capabilities.py::test_embedding_shape_and_order[rows2-exactly one]
tests/test_model_capabilities.py::test_embedding_shape_and_order[rows3-dimensions]
tests/test_model_capabilities.py::test_embedding_shape_and_order[rows4-finite]
tests/test_model_capabilities.py::test_media_retry_does_not_repeat_successful_stt
tests/test_model_capabilities.py::test_invalid_later_media_does_not_consume_stt
tests/test_model_capabilities.py::test_mixed_ocr_preserves_image_identity_and_question
tests/test_model_capabilities.py::test_stream_say_final_and_no_implicit_replay
tests/test_model_capabilities.py::test_concurrent_say_reuses_one_audio_request
tests/test_model_capabilities.py::test_speech_failure_keeps_text_and_is_not_replayed
tests/test_model_capabilities.py::test_cancel_vision_settles_child_and_skips_final
tests/test_model_capabilities.py::test_pending_audio_cannot_claim_snapshot_support
tests/test_model_capabilities.py::test_explicit_request_key_wins_llm_default
tests/test_model_capabilities.py::test_rework_reuses_media_but_speaks_new_revision
tests/test_model_capabilities.py::test_media_evidence_reaches_system_one_and_final_model
tests/test_model_capabilities.py::test_vlm_can_answer_text_without_empty_visual_stage
tests/test_model_capabilities.py::test_visual_stage_shares_execution_model_budget[1]
tests/test_model_capabilities.py::test_visual_stage_shares_execution_model_budget[2]
tests/test_model_capabilities.py::test_media_preflight_does_not_advance_credential_selection
tests/test_model_capabilities.py::test_partial_speech_close_cancels_owned_execution
tests/test_model_capabilities.py::test_direct_ocr_can_disable_shared_retries
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_redacts_streaming_and_completed_events
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_redacts_validation_and_retry_events
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_redacts_parse_failed_events
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_validates_and_normalizes_paths
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_redacts_reasoning_observations
tests/test_model_output_observation_policy.py::test_sensitive_output_policy_redacts_published_reasoning_events
tests/test_multilanguage_code_execution_actual.py::test_locally_installed_mainstream_toolchain_executes_workspace_bundle[python]
tests/test_multilanguage_code_execution_actual.py::test_locally_installed_mainstream_toolchain_executes_workspace_bundle[nodejs]
tests/test_multilanguage_code_execution_actual.py::test_locally_installed_mainstream_toolchain_executes_workspace_bundle[go]
tests/test_multilanguage_code_execution_actual.py::test_locally_installed_mainstream_toolchain_executes_workspace_bundle[cpp]
tests/test_multilanguage_code_execution_actual.py::test_action_runtime_runs_workspace_bound_provider_chain_with_explicit_unsafe_fallback
tests/test_plan_prompt_contract.py::test_readiness_receives_original_output_contract_without_changing_result[False]
tests/test_plan_prompt_contract.py::test_readiness_receives_original_output_contract_without_changing_result[True]
tests/test_plan_prompt_contract.py::test_plain_plan_does_not_add_empty_output_contract
tests/test_plan_prompt_contract.py::test_plan_projection_keeps_caller_context_and_host_readiness
tests/test_plan_prompt_contract.py::test_readiness_only_declares_consumed_decision_and_exchange_fields
tests/test_plan_prompt_contract.py::test_readiness_accepts_only_three_fields_and_keeps_question_invariants[False]
tests/test_plan_prompt_contract.py::test_readiness_accepts_only_three_fields_and_keeps_question_invariants[True]
tests/test_playwright_e2e_examples.py::test_playwright_target_projection_is_structural_and_fail_closed
tests/test_playwright_e2e_examples.py::test_playwright_execution_handler_preserves_model_choice_and_projects_ref
tests/test_playwright_e2e_examples.py::test_playwright_execution_handler_projects_snapshot_to_full_page
tests/test_playwright_e2e_examples.py::test_playwright_execution_handler_rejects_ambiguous_ref_without_dispatch
tests/test_plugin_protocol_contracts.py::test_context_source_protocol_is_descriptor_and_exact_read_only
tests/test_plugin_protocol_contracts.py::test_session_memory_protocol_exposes_context_source_instead_of_retrieval_policy
tests/test_plugin_protocol_contracts.py::test_builtin_execution_resource_providers_match_protocol
tests/test_plugin_protocol_contracts.py::test_builtin_action_executors_match_protocol
tests/test_plugin_protocol_contracts.py::test_builtin_action_runtime_and_flow_match_protocols
tests/test_plugin_protocol_contracts.py::test_builtin_agent_orchestrator_matches_protocol
tests/test_plugin_protocol_contracts.py::test_builtin_agent_execution_matches_protocol_without_core_builtin_dependency
tests/test_plugin_protocol_contracts.py::test_model_requester_runtime_handler_contract_imports_and_ownership
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_request_retry_uses_public_attempt_boundary
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_http_error_message_excludes_request_body[False]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_http_error_message_excludes_request_body[True]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_uses_messages_path_and_default_model
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_thinking_options
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_replays_thinking_signature_and_tool_result
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[-https://gateway.example]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[-https://gateway.example/v1]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[-https://gateway.example/anthropic]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[-https://gateway.example/proxy//v2]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[/-https://gateway.example]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[/-https://gateway.example/v1]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[/-https://gateway.example/anthropic]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[/-https://gateway.example/proxy//v2]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[///-https://gateway.example]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[///-https://gateway.example/v1]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[///-https://gateway.example/anthropic]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_normalizes_base_url[///-https://gateway.example/proxy//v2]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[https://override.example/custom/messages/?api-version=test-base_config0]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[https://override.example/custom/messages/?api-version=test-base_config1]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[https://override.example/custom/messages/?api-version=test-base_config2]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[https://override.example/custom/messages/?api-version=test-base_config3]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[https://override.example/custom/messages/?api-version=test-base_config4]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[-base_config0]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[-base_config1]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[-base_config2]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[-base_config3]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_preserves_full_url[-base_config4]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_handles_missing_or_empty_base_url[config0-https://api.anthropic.com/v1/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_handles_missing_or_empty_base_url[config1-None/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_handles_missing_or_empty_base_url[config2-/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_handles_missing_or_empty_base_url[config3-/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_handles_missing_or_empty_base_url[config4-/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_outgoing_request_uses_normalized_url[config0-https://gateway.example/v1/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_outgoing_request_uses_normalized_url[config1-https://gateway.example/anthropic/messages]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_outgoing_request_uses_normalized_url[config2-https://override.example/messages/]
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_client_options_disable_environment_proxy_by_default
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_client_options_can_enable_environment_proxy_explicitly
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_inherits_model_requester_protocol_instead_of_responses_plugin
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_maps_system_and_rich_content
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_generate_request_maps_data_url_image_to_base64_source
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_prompt_tools_are_converted_and_explicit_tools_override_by_name
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_auth_headers_are_preserved_in_outgoing_request
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_stream_idle_timeout_returns_timeout_error_event
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_streaming_stops_transport_after_message_stop
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_non_stream_response_idle_timeout_returns_stall_error
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_non_stream_response_idle_timeout_allows_api_key_failover
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_broadcast_response_maps_text_stream_and_meta
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_broadcast_response_maps_non_stream_thinking_blocks
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_broadcast_response_preserves_core_status_record
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_broadcast_response_resets_attempt_text_after_retry_status
tests/test_plugins/test_model_requester/test_anthropic_compatible.py::test_broadcast_response_maps_tool_use_to_tool_calls
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_retry_disabled_owns_physical_sse_attempts[False]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_retry_disabled_owns_physical_sse_attempts[request_retry1]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_compatible_sse_transports_do_not_hide_physical_reconnects[agently.builtins.plugins.ModelRequester.OpenAICompatible.modules.transport-OpenAICompatibleTransportMixin]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_compatible_sse_transports_do_not_hide_physical_reconnects[agently.builtins.plugins.ModelRequester.AnthropicCompatible.modules.transport-AnthropicCompatibleTransportMixin]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_compatible_sse_transports_do_not_hide_physical_reconnects[agently.builtins.plugins.ModelRequester.OpenAIResponsesCompatible.modules.transport-OpenAIResponsesCompatibleTransportMixin]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_retry_after_output_owns_physical_sse_attempts[False-1-False]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_retry_after_output_owns_physical_sse_attempts[True-2-True]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_http_error_message_excludes_request_body[False]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_http_error_message_excludes_request_body[True]
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_non_stream_request_retries_next_api_key_on_failover
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_model_retries_transient_provider_error_before_output_started
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_model_retries_transient_provider_error_after_output_started_by_default
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_model_can_disable_retry_after_output_started
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_model_retries_transient_provider_error_after_output_when_enabled
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_maps_non_stream_chat_message_content
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_maps_non_stream_chat_reasoning_content
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_preserves_streamed_reasoning_in_original_done
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_preserves_core_status_record
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_resets_attempt_text_after_retry_status
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_broadcast_response_handles_usage_only_final_chunk_without_choices
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_plugin_root_options_are_treated_as_request_options
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_request_options_override_legacy_plugin_root_options
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_nested_thinking_request_option_is_preserved
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_client_options_disable_environment_proxy_by_default
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_client_options_can_enable_environment_proxy_explicitly
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_auth_headers_are_preserved_in_outgoing_request
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_auth_headers_are_kept_when_api_key_sets_authorization
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_done_is_not_emitted_twice
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_done_stops_before_physical_tail_disconnect
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_disconnect_before_done_remains_failure
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_does_not_consume_events_after_done
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_structured_validation_retry_materializes_after_done_tail_disconnect
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_uses_first_token_timeout_mode_by_default
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_streaming_http_timeout_mode_preserves_http_read_timeout
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_first_token_timeout_returns_timeout_error_event
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_stream_idle_timeout_returns_timeout_error_event
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_non_stream_response_idle_timeout_returns_stall_error
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_non_stream_response_idle_timeout_allows_api_key_failover
tests/test_plugins/test_model_requester/test_openai_compatible.py::test_non_stream_response_without_idle_timeout_is_unbounded
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_request_retry_uses_public_attempt_boundary
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_http_error_message_excludes_request_body[False]
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_http_error_message_excludes_request_body[True]
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_friendly_settings_path_aliases_are_declared
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_generate_request_uses_responses_path_and_latest_default_model
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_client_options_disable_environment_proxy_by_default
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_client_options_can_enable_environment_proxy_explicitly
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_inherits_model_requester_protocol_instead_of_openai_plugin
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_generate_request_maps_rich_content_and_preserves_instructions
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_generate_request_preserves_responses_reasoning_options
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_prompt_tools_are_converted_and_explicit_tools_override_by_name
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_auth_headers_are_preserved_in_outgoing_request
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_maps_text_stream_and_meta
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_maps_reasoning_summary_and_preserves_core_status
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_does_not_expose_reasoning_summary_configuration_as_content
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_maps_incomplete_terminal_to_length
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_incomplete_filtering_is_not_eligible_for_long_output_continuation
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_preserves_core_status_record
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_resets_attempt_text_after_retry_status
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_broadcast_response_synthesizes_tool_call_done_without_completed_event
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_function_call_argument_deltas_can_be_consumed_by_action_normalizer
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_streaming_uses_first_token_timeout_mode_by_default
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_streaming_http_timeout_mode_preserves_http_read_timeout
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_first_token_timeout_returns_timeout_error_event
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_streaming_stops_transport_after_terminal_response[response.completed]
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_streaming_stops_transport_after_terminal_response[response.incomplete]
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_stream_idle_timeout_returns_timeout_error_event
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_non_stream_response_idle_timeout_returns_stall_error
tests/test_plugins/test_model_requester/test_openai_responses_compatible.py::test_non_stream_response_idle_timeout_allows_api_key_failover
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[None-json]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[None-flat_markdown]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[None-hybrid]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[None-xml_field]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[None-yaml_literal]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[True-json]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[True-flat_markdown]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[True-hybrid]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[True-xml_field]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[True-yaml_literal]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[not_null-json]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[not_null-flat_markdown]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[not_null-hybrid]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[not_null-xml_field]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_plain_tuple_descriptions_survive_every_format[not_null-yaml_literal]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_to_prompt_object
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_to_text
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_prompt_slot_reference_placeholders_point_to_titles
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_prompt_slot_references_do_not_break_explicit_mappings
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_to_text_complex
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_to_text_with_root_list_output
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_empty_prompt
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_message_prompt
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_output_model
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_output_model_nested_list_serializes_validated_items_without_warning
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_output_json_schema_projection_preserves_nested_list_contract
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_projected_pydantic_fragment_model_preserves_nested_constraints
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_model_preserves_declared_type_and_exposes_structural_prompt
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_constraints_are_rendered_for_every_structured_format[json]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_constraints_are_rendered_for_every_structured_format[flat_markdown]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_constraints_are_rendered_for_every_structured_format[hybrid]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_constraints_are_rendered_for_every_structured_format[xml_field]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_constraints_are_rendered_for_every_structured_format[yaml_literal]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_pydantic_output_contract_renders_alias_nullability_literal_and_numeric_rules
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_tuple_ensure_policies_are_rendered_for_every_structured_format[json]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_tuple_ensure_policies_are_rendered_for_every_structured_format[flat_markdown]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_tuple_ensure_policies_are_rendered_for_every_structured_format[hybrid]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_tuple_ensure_policies_are_rendered_for_every_structured_format[xml_field]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_tuple_ensure_policies_are_rendered_for_every_structured_format[yaml_literal]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_serializable_output_prompt_preserves_not_null_ensure_marker
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_output_model_supports_enum
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_hybrid_prompt_marks_sanitized_scalar_fields_as_text
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_text_history_preserves_open_attachment_payload[hello-hello]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_text_history_preserves_open_attachment_payload[12-12]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_text_history_preserves_open_attachment_payload[None-None]
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_rich_prompt
tests/test_plugins/test_prompt_generator/test_agently_prompt_generator.py::test_strict_role_orders
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_unwraps_language_tagged_fence
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_unwraps_bare_fence
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_unwraps_tilde_fence
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_unwraps_with_surrounding_whitespace
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_leaves_plain_prose_untouched
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_leaves_prose_with_embedded_block_untouched
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_does_not_merge_two_adjacent_blocks
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_leaves_unterminated_fence_untouched
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_info_string_with_spaces_is_not_a_fence
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_non_string_passthrough
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestStripEnclosingCodeFence::test_preserves_inner_blank_lines
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestFlatMarkdownUnwrap::test_fenced_html_field_is_unwrapped
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestFlatMarkdownUnwrap::test_unfenced_html_field_is_unchanged
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestHybridUnwrap::test_fenced_scalar_artifact_is_unwrapped
tests/test_plugins/test_response_parser/test_code_fence_stripping.py::TestHybridUnwrap::test_json_encoded_scalar_string_is_decoded
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_normal_model_output_extraction_and_completion
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_edge_cases_multiple_json_and_text
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_no_json_in_text
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_json_with_nested_and_comments
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_locate_output_json_with_root_list_schema
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_locate_output_json_prefers_best_schema_match_over_think_draft
tests/test_plugins/test_response_parser/test_parse_response_with_comments.py::test_locate_output_json_uses_fast_path_for_long_direct_root
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_response_parser_only_repairs_after_parse_failure
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_response_parser_repairs_structural_quotes_and_preserves_value_quotes
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_response_parser_error_event_fails_text_materialization
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_response_parser_string_error_event_fails_text_materialization
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_async_generator_streams_valid_json_before_done
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_async_generator_defers_large_json_delta_by_default
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_async_generator_defers_large_json_delta_when_setting_is_none
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_large_complete_json_keeps_authoritative_trailing_false
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_async_generator_waits_until_done_before_repair
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_async_generator_does_not_emit_done_when_final_parse_fails
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_multiple_consumers_share_single_final_parse
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_primitive_delta_is_string
tests/test_plugins/test_response_parser/test_repair_on_failure.py::test_instant_sync_generator_replays_final_result
tests/test_programmatic_action_contracts.py::test_action_planning_protocol_and_reserved_constants_are_typed
tests/test_programmatic_action_contracts.py::test_action_package_does_not_export_programmatic_mechanism_helpers
tests/test_programmatic_action_contracts.py::test_programmatic_catalog_is_lexical_and_byte_deterministic
tests/test_programmatic_action_contracts.py::test_programmatic_catalog_binds_explicit_action_concurrency_mode
tests/test_programmatic_action_contracts.py::test_programmatic_sdk_keeps_one_reconstructable_exact_contract_projection
tests/test_programmatic_action_contracts.py::test_programmatic_sdk_v3_reduces_representative_fixed_overhead
tests/test_programmatic_action_contracts.py::test_catalog_mapping_can_use_schema_like_action_ids_without_becoming_one_spec
tests/test_programmatic_action_contracts.py::test_programmatic_catalog_revision_binds_contract_renderer_and_host_seed
tests/test_programmatic_action_contracts.py::test_python_sdk_uses_attributes_only_for_safe_identifiers_and_compiles
tests/test_programmatic_action_contracts.py::test_exotic_action_names_are_quoted_but_invalid_binding_keys_fail_closed
tests/test_programmatic_action_contracts.py::test_sdk_preserves_required_optional_inputs_and_explicit_returns
tests/test_programmatic_action_contracts.py::test_sdk_renders_open_object_return_contracts_as_dictionaries[dict-Output = dict[str, JSONValue]]
tests/test_programmatic_action_contracts.py::test_sdk_renders_open_object_return_contracts_as_dictionaries[dict-Output = dict[str, int]]
tests/test_programmatic_action_contracts.py::test_explicit_json_schema_constraints_are_retained_exactly
tests/test_programmatic_action_contracts.py::test_annotated_action_constraints_are_not_erased
tests/test_programmatic_action_contracts.py::test_unsupported_json_schema_assertions_fail_before_planning
tests/test_programmatic_action_contracts.py::test_schema_validation_error_is_exported_for_public_validators
tests/test_programmatic_action_contracts.py::test_ordinary_missing_returns_is_ineligible_but_artifact_reader_has_fixed_contract
tests/test_programmatic_action_contracts.py::test_none_returns_is_not_an_explicit_null_contract
tests/test_programmatic_action_contracts.py::test_programmatic_v1_eligibility_fails_closed[overrides0-not_model_visible]
tests/test_programmatic_action_contracts.py::test_programmatic_v1_eligibility_fails_closed[overrides1-side_effect_not_read]
tests/test_programmatic_action_contracts.py::test_programmatic_v1_eligibility_fails_closed[overrides2-not_replay_safe]
tests/test_programmatic_action_contracts.py::test_programmatic_v1_eligibility_fails_closed[overrides3-approval_required]
tests/test_programmatic_action_contracts.py::test_programmatic_v1_eligibility_fails_closed[overrides4-approval_required]
tests/test_programmatic_action_contracts.py::test_transport_and_host_only_inputs_are_never_projected
tests/test_programmatic_action_contracts.py::test_required_host_only_input_makes_action_ineligible
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_is_canonical_and_size_bounded
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_coercion_and_non_finite_numbers[value0]
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_coercion_and_non_finite_numbers[value1]
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_coercion_and_non_finite_numbers[bytes]
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_coercion_and_non_finite_numbers[nan]
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_coercion_and_non_finite_numbers[inf]
tests/test_programmatic_action_contracts.py::test_lossless_json_validation_rejects_cycles
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_preserves_exact_program
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision0]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision1]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision2]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision3]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision4]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision5]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_rejects_invalid_cross_fields[decision6]
tests/test_programmatic_action_contracts.py::test_programmatic_decision_normalization_enforces_utf8_byte_limits
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_wraps_top_level_await_and_return
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[]
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[   \n]
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[# a comment is not an executable function body]
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[if True:\nreturn 1]
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[return (]
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_rejects_empty_or_invalid_bodies[value = lambda: 1]
tests/test_programmatic_action_contracts.py::test_r4_nested_async_wrapper_return_does_not_satisfy_program_return_contract
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_allows_nested_async_handler_with_outer_return
tests/test_programmatic_action_contracts.py::test_programmatic_python_source_allows_lambda_with_direct_scope_return
tests/test_programmatic_action_contracts.py::test_description_is_bounded_without_splitting_utf8
tests/test_programmatic_action_docker_e2e.py::test_programmatic_action_full_docker_binding_path
tests/test_programmatic_action_docker_e2e.py::test_programmatic_action_direct_generated_call_uses_docker_binding
tests/test_programmatic_action_docker_e2e.py::test_programmatic_action_docker_overlaps_parallel_safe_actions
tests/test_programmatic_action_integration_review.py::test_reserved_registry_id_cannot_be_replaced_via_public_register
tests/test_programmatic_action_integration_review.py::test_action_reregistration_removes_stale_tag_scope_membership
tests/test_programmatic_action_integration_review.py::test_active_programmatic_catalog_is_not_silently_evicted
tests/test_programmatic_action_integration_review.py::test_catalog_rejects_same_contract_action_executor_replacement
tests/test_programmatic_action_integration_review.py::test_live_program_binding_rejects_mid_run_action_replacement
tests/test_programmatic_action_integration_review.py::test_programmatic_dispatch_preserves_declared_wildcard_kwargs
tests/test_programmatic_action_integration_review.py::test_program_timeout_setting_reaches_code_execution_resource
tests/test_programmatic_action_integration_review.py::test_programmatic_activation_checks_reserved_collision_before_empty_catalog
tests/test_programmatic_action_integration_review.py::test_direct_program_decisions_have_distinct_host_freshness_bindings
tests/test_programmatic_action_integration_review.py::test_known_global_approval_policy_is_excluded_before_model_planning
tests/test_programmatic_action_integration_review.py::test_program_source_is_not_copied_into_runtime_observation
tests/test_programmatic_action_integration_review.py::test_programmatic_planning_observation_is_bounded_and_program_free
tests/test_programmatic_action_integration_review.py::test_programmatic_settled_observation_is_runtime_visible_but_not_model_hot
tests/test_programmatic_action_integration_review.py::test_program_source_is_not_copied_into_next_model_record
tests/test_programmatic_action_integration_review.py::test_program_source_is_not_copied_into_actionflow_state_record
tests/test_programmatic_action_integration_review.py::test_programmatic_provider_traceback_stays_out_of_hot_records
tests/test_programmatic_action_integration_review.py::test_nested_subcall_started_and_terminal_events_share_one_run
tests/test_programmatic_action_integration_review.py::test_action_runtime_binds_the_outer_action_run_during_dispatch
tests/test_programmatic_action_integration_review.py::test_denied_outer_approval_releases_program_catalog_lease
tests/test_programmatic_action_integration_review.py::test_nested_action_evidence_record_is_bounded
tests/test_programmatic_action_runtime.py::test_action_registry_reserved_transport_cannot_be_replaced_or_removed
tests/test_programmatic_action_runtime.py::test_action_loop_accepts_typed_programmatic_planning_protocol
tests/test_programmatic_action_runtime.py::test_action_loop_rejects_unknown_planning_protocol
tests/test_programmatic_action_runtime.py::test_programmatic_transport_resolves_current_provider_and_timeout_per_call
tests/test_programmatic_action_runtime.py::test_provider_terminal_status_is_normalized_to_action_status
tests/test_programmatic_action_runtime.py::test_programmatic_catalog_capacity_never_evicts_an_unsettled_revision
tests/test_programmatic_action_runtime.py::test_generated_program_call_can_release_its_catalog_when_discarded
tests/test_programmatic_action_runtime.py::test_programmatic_subcalls_are_treated_as_model_sourced
tests/test_programmatic_action_runtime.py::test_programmatic_wildcard_action_preserves_schema_allowed_dynamic_keys
tests/test_programmatic_action_runtime.py::test_programmatic_transport_carrier_never_retains_raw_program_source
tests/test_programmatic_action_runtime.py::test_programmatic_carrier_preserves_small_nested_value_with_large_cold_artifact
tests/test_programmatic_action_runtime.py::test_programmatic_carrier_redacts_sensitive_outer_value_fields
tests/test_programmatic_action_runtime.py::test_programmatic_carrier_oversized_outer_value_uses_digest_fact
tests/test_programmatic_action_runtime.py::test_default_programmatic_planner_builds_one_reserved_action_call
tests/test_programmatic_action_runtime.py::test_programmatic_activation_rejects_transport_collision_before_empty_catalog_return
tests/test_programmatic_action_runtime.py::test_programmatic_executor_reenters_action_dispatcher_and_returns_outer_only
tests/test_programmatic_action_runtime.py::test_provider_exception_preserves_completed_subcall_evidence
tests/test_programmatic_action_runtime.py::test_programmatic_reserved_action_runs_through_triggerflow_action_flow
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[success-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[success-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[success_extra-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[success_extra-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel_extra-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel_extra-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel_host_release-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[cancel_host_release-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[exception-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[exception-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[mixed-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[mixed-DAGActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[mixed_extra-TriggerFlowActionFlow]
tests/test_programmatic_action_runtime.py::test_default_program_loop_settles_only_its_unconsumed_lease[mixed_extra-DAGActionFlow]
tests/test_project_framework_docs.py::test_project_framework_docs_publish_topology_first_template_contract[docs/en/start/project-framework.md]
tests/test_project_framework_docs.py::test_project_framework_docs_publish_topology_first_template_contract[docs/cn/start/project-framework.md]
tests/test_project_framework_docs.py::test_coding_agent_docs_publish_seven_skill_catalog[docs/en/development/coding-agents.md]
tests/test_project_framework_docs.py::test_coding_agent_docs_publish_seven_skill_catalog[docs/cn/development/coding-agents.md]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[gvisor]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[runsc]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[gvisor/runsc]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[seatbelt]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[landlock]
tests/test_provider_neutral_sandbox_selection.py::test_compatibility_sandbox_rejects_optional_provider_ids[bubblewrap]
tests/test_provider_neutral_sandbox_selection.py::test_python_compatibility_helper_rejects_optional_provider_ids[gvisor]
tests/test_provider_neutral_sandbox_selection.py::test_python_compatibility_helper_rejects_optional_provider_ids[seatbelt]
tests/test_provider_neutral_sandbox_selection.py::test_python_compatibility_helper_rejects_optional_provider_ids[landlock]
tests/test_provider_neutral_sandbox_selection.py::test_generic_provider_candidate_descriptor_passes_through_unchanged[custom-isolator]
tests/test_provider_neutral_sandbox_selection.py::test_generic_provider_candidate_descriptor_passes_through_unchanged[gvisor]
tests/test_provider_neutral_sandbox_selection.py::test_generic_provider_candidate_descriptor_passes_through_unchanged[seatbelt]
tests/test_provider_neutral_sandbox_selection.py::test_generic_provider_candidate_descriptor_passes_through_unchanged[landlock]
tests/test_public_typing_allowlist.py::test_public_typing_allowlist_is_enforced_for_declared_public_surfaces
tests/test_record_store_context_scope.py::test_unrelated_writes_keep_reader_current_but_visible_write_invalidates
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[collection-other]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[kind-other]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[path-relative]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[sha256-updated-ref-digest]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[size-999]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[summary-new summary]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[scope-value6]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[source-value7]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[created_at-2030-01-01T00:00:00+00:00]
tests/test_record_store_context_scope.py::test_every_visible_ref_field_affects_revision[meta-value9]
tests/test_record_store_context_scope.py::test_scope_move_shared_change_and_snapshot_deletion
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[None]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[A]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected2]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected3]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected4]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected5]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected6]
tests/test_record_store_context_scope.py::test_normalized_filters_keep_original_matching[expected7]
tests/test_record_store_context_scope.py::test_empty_scope_partitions_are_distinct_stable_and_lazy
tests/test_record_store_context_scope.py::test_unrelated_initial_materialization_and_empty_records_do_not_change_scope
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[0-100-\u4e2d\u6587\U0001f60a\u6b63\u6587]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[0-100-content1]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[0-100-a\xffb]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[0-100-]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[1-2-\u4e2d\u6587\U0001f60a\u6b63\u6587]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[1-2-content1]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[1-2-a\xffb]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[1-2-]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[100-0-\u4e2d\u6587\U0001f60a\u6b63\u6587]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[100-0-content1]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[100-0-a\xffb]
tests/test_record_store_context_scope.py::test_text_projection_and_bounded_digest_are_preserved[100-0-]
tests/test_record_store_context_scope.py::test_page_and_exact_visible_only_but_public_read_unchanged
tests/test_record_store_context_scope.py::test_instance_adapters_keep_generic_behavior[facade-search]
tests/test_record_store_context_scope.py::test_instance_adapters_keep_generic_behavior[facade-read_bounded]
tests/test_record_store_context_scope.py::test_instance_adapters_keep_generic_behavior[backend-search]
tests/test_record_store_context_scope.py::test_instance_adapters_keep_generic_behavior[backend-read_bounded]
tests/test_record_store_context_scope.py::test_subclasses_explicit_revision_and_custom_scope_keep_fallback
tests/test_record_store_context_scope.py::test_full_provider_is_not_materialized_for_revision
tests/test_record_store_context_scope.py::test_complete_third_party_backend_keeps_original_fallback
tests/test_record_store_context_scope.py::test_shared_view_changes_and_compound_scope_match
tests/test_record_store_context_scope.py::test_existing_read_only_database_and_content_format_revision
tests/test_record_store_context_scope.py::test_negative_exact_bounds_keep_value_error[-1-1]
tests/test_record_store_context_scope.py::test_negative_exact_bounds_keep_value_error[0--1]
tests/test_record_store_context_scope.py::test_set_filter_keeps_original_unhashable_error
tests/test_record_store_context_scope.py::test_corrupt_database_and_real_lock_errors_propagate
tests/test_record_store_context_scope.py::test_real_permission_error_is_not_an_empty_revision
tests/test_record_store_context_scope.py::test_read_transaction_keeps_metadata_and_body_version_together[False-page]
tests/test_record_store_context_scope.py::test_read_transaction_keeps_metadata_and_body_version_together[False-exact]
tests/test_record_store_context_scope.py::test_read_transaction_keeps_metadata_and_body_version_together[True-page]
tests/test_record_store_context_scope.py::test_read_transaction_keeps_metadata_and_body_version_together[True-exact]
tests/test_record_store_ports.py::test_record_store_is_record_only_and_supports_snapshot_port
tests/test_record_store_ports.py::test_local_record_store_keeps_latest_three_snapshots_by_default
tests/test_record_store_ports.py::test_record_store_snapshot_retention_configuration_overrides_local_default
tests/test_record_store_ports.py::test_record_store_snapshot_retention_can_disable_automatic_prune
tests/test_record_store_ports.py::test_record_store_prune_snapshots_keeps_latest_recovery_point_and_reports_reclaim
tests/test_record_store_ports.py::test_record_store_generic_checkpoint_history_is_not_automatically_pruned
tests/test_record_store_ports.py::test_record_store_keeps_legacy_snapshot_provider_compatible_without_retention_request
tests/test_record_store_ports.py::test_record_store_rejects_explicit_retention_before_calling_unsupported_provider
tests/test_record_store_ports.py::test_snapshot_prune_preserves_business_records_and_runtime_events
tests/test_record_store_ports.py::test_record_store_rejects_invalid_snapshot_retention_policy[policy0-ValueError]
tests/test_record_store_ports.py::test_record_store_rejects_invalid_snapshot_retention_policy[policy1-TypeError]
tests/test_record_store_ports.py::test_record_store_rejects_invalid_snapshot_retention_policy[policy2-TypeError]
tests/test_record_store_ports.py::test_record_store_rejects_invalid_snapshot_retention_policy[policy3-ValueError]
tests/test_record_store_ports.py::test_record_store_retrieval_contract_has_no_task_file_lane
tests/test_record_store_ports.py::test_record_store_registry_forwards_snapshot_retention_configuration
tests/test_record_store_ports.py::test_record_store_scope_isolation
tests/test_record_store_ports.py::test_record_store_context_source_enumerates_bound_scope_without_retrieval_method
tests/test_record_store_ports.py::test_record_store_context_source_enumerates_descriptors_without_intent
tests/test_release_pinned_usage_examples.py::test_release_pinned_usage_manifest_paths_exist
tests/test_release_pinned_usage_examples.py::test_release_pinned_usage_readme_records_confirmation_policy
tests/test_release_pinned_usage_examples.py::test_release_pinned_skill_usage_tracks_current_owner_boundaries
tests/test_release_pinned_usage_examples.py::test_release_pinned_agent_execution_chain_and_debug_profiles_are_locked
tests/test_release_pinned_usage_examples.py::test_release_pinned_action_response_delivery_is_locked
tests/test_release_pinned_usage_examples.py::test_release_pinned_retry_stream_reconciliation_is_locked
tests/test_release_pinned_usage_examples.py::test_release_pinned_skill_scope_is_locked
tests/test_release_pinned_usage_examples.py::test_release_pinned_skill_scope_runs
tests/test_release_pinned_usage_examples.py::test_release_pinned_retry_stream_runs
tests/test_release_workflow_docs.py::test_release_workflow_validates_both_mcp_lines_before_publication
tests/test_release_workflow_docs.py::test_release_workflow_never_publishes_from_pull_requests_or_other_branches
tests/test_release_workflow_docs.py::test_publish_workflow_installs_optional_typing_dependencies_before_pyright
tests/test_release_workflow_docs.py::test_4_1_4_8_change_guide_covers_late_additions_and_has_valid_links
tests/test_release_workflow_docs.py::test_4_1_4_8_docs_explain_scope_compatibility_and_deferred_work
tests/test_release_workflow_docs.py::test_publish_workflow_has_an_explicit_failed_release_retry_path
tests/test_release_workflow_docs.py::test_release_workflows_require_foundation_example_effect_gate
tests/test_release_workflow_docs.py::test_4_1_4_5_release_notes_are_linked_from_public_indexes
tests/test_root_output_projection.py::test_root_schema_preserves_original_json_kind[RootModel[str]]
tests/test_root_output_projection.py::test_root_schema_preserves_original_json_kind[RootModel[list[str]]]
tests/test_root_output_projection.py::test_root_schema_preserves_original_json_kind[RootModel[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=8)])]]]
tests/test_root_output_projection.py::test_root_prompt_and_original_validation_agree
tests/test_root_output_projection.py::test_ordinary_root_string_request[valid]
tests/test_root_output_projection.py::test_ordinary_root_string_request[text with [brackets] and {braces}]
tests/test_root_output_projection.py::test_ordinary_root_string_request[]
tests/test_root_output_projection.py::test_ordinary_root_string_request[\u5f15\u53f7"\u548c\\\u8f6c\u4e49]
tests/test_root_output_projection.py::test_invalid_root_string_never_returns_success["unterminated]
tests/test_root_output_projection.py::test_invalid_root_string_never_returns_success["valid" trailing]
tests/test_root_output_projection.py::test_invalid_root_string_never_returns_success[not JSON]
tests/test_root_output_projection.py::test_invalid_root_string_never_returns_success[42]
tests/test_root_output_projection.py::test_ordinary_root_values[RootModel[list[str]]-value0]
tests/test_root_output_projection.py::test_ordinary_root_values[RootModel[int]-12]
tests/test_root_output_projection.py::test_ordinary_root_values[RootModel[bool]-False]
tests/test_root_output_projection.py::test_ordinary_root_values[RootModel[float]-1.5]
tests/test_seatbelt_bugs.py::test_seatbelt_profile_allows_writes_only_for_granted_read_write_roots
tests/test_seatbelt_bugs.py::test_seatbelt_resource_accepts_no_arbitrary_policy_paths
tests/test_seatbelt_bugs.py::test_seatbelt_probe_reports_broad_host_reads_truthfully
tests/test_seatbelt_bugs.py::test_seatbelt_health_rechecks_mechanism_availability
tests/test_seatbelt_bugs.py::test_seatbelt_rejects_arbitrary_policy_configuration
tests/test_seatbelt_bugs.py::test_generic_selection_uses_only_the_seatbelt_provider
tests/test_seatbelt_execution_provider_integration.py::test_seatbelt_enforces_granted_write_and_denies_ungranted_write
tests/test_shell_executor.py::test_bash_interprets_script_without_using_cmd
tests/test_shell_executor.py::test_cmd_delegates_exact_argv_to_new_executor
tests/test_shell_executor.py::test_argv_does_not_require_bash
tests/test_shell_executor.py::test_bash_calls_keep_environment_and_cwd_private
tests/test_shell_executor.py::test_bash_timeout_keeps_partial_output
tests/test_shell_executor.py::test_bash_keeps_native_pipeline_exit_semantics
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[-BashExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[-PowerShellExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[ \n-BashExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[ \n-PowerShellExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[a\x00b-BashExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[a\x00b-PowerShellExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-BashExecutor]
tests/test_shell_executor.py::test_invalid_source_rejected_before_spawn[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-PowerShellExecutor]
tests/test_shell_executor.py::test_missing_interpreter_never_falls_back[BashExecutor]
tests/test_shell_executor.py::test_missing_interpreter_never_falls_back[PowerShellExecutor]
tests/test_shell_executor.py::test_powershell_transports_exact_source_not_bash_syntax
tests/test_shell_executor.py::test_explicit_encoding_does_not_change_legacy_argv_default
tests/test_shell_executor.py::test_powershell_transport_quotes_are_literal_and_env_unmodified
tests/test_shell_executor.py::test_powershell_limits_final_wire_size_including_escaping
tests/test_shell_executor.py::test_invalid_output_encoding_rejected_before_spawn
tests/test_shell_executor.py::test_powershell_encoded_size_limit_checked_before_spawn
tests/test_shell_profiles.py::test_general_shell_is_real_source_and_bounded
tests/test_shell_profiles.py::test_all_and_none_do_not_request_risk_model[all]
tests/test_shell_profiles.py::test_all_and_none_do_not_request_risk_model[none]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[write-effects0-unknown0-True]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[write-effects1-unknown1-False]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[write-effects2-unknown2-False]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[delete-effects3-unknown3-True]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[delete-effects4-unknown4-False]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[delete-effects5-unknown5-False]
tests/test_shell_profiles.py::test_selective_policy_consumes_handler_once[write-effects6-unknown6-False]
tests/test_shell_profiles.py::test_invalid_risk_never_silently_approves[None]
tests/test_shell_profiles.py::test_invalid_risk_never_silently_approves[failure1]
tests/test_shell_profiles.py::test_invalid_risk_never_silently_approves[failure2]
tests/test_shell_profiles.py::test_invalid_risk_never_silently_approves[failure3]
tests/test_shell_profiles.py::test_deny_precedes_all_grants_and_model
tests/test_shell_profiles.py::test_mutation_after_policy_check_rejected
tests/test_shell_profiles.py::test_revoke_while_risk_is_pending[policy]
tests/test_shell_profiles.py::test_revoke_while_risk_is_pending[registration]
tests/test_shell_profiles.py::test_resource_required_no_executor_native_fallback
tests/test_shell_profiles.py::test_no_secret_env_inherited_or_visible
tests/test_shell_profiles.py::test_missing_docker_never_runs_host
tests/test_shell_profiles.py::test_resource_close_and_workdir_containment
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy0]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy1]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy2]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy3]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy4]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy5]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy6]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy7]
tests/test_shell_profiles.py::test_host_shell_does_not_bypass_hard_policy[policy8]
tests/test_shell_profiles.py::test_provider_limits_only_tighten
tests/test_shell_profiles.py::test_provider_rejects_mount_outside_policy
tests/test_shell_profiles.py::test_whole_skill_directory_needs_no_script_action
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs0]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs1]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs2]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs3]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs4]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs5]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs6]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs7]
tests/test_shell_profiles.py::test_invalid_config_does_not_register[kwargs8]
tests/test_shell_profiles.py::test_general_shell_timeout_is_not_success
tests/test_shell_profiles.py::test_shared_agent_concurrent_workdirs_are_private
tests/test_shell_profiles.py::test_cancel_after_write_does_not_replay
tests/test_skill_context_source.py::test_skill_context_source_exposes_typed_progressive_candidates
tests/test_skill_context_source.py::test_skill_context_source_enumerates_descriptors_without_task_intent
tests/test_skill_context_source.py::test_skill_without_resources_does_not_offer_an_empty_optional_index
tests/test_skill_context_source.py::test_skill_core_is_always_delivered_and_reference_body_is_progressive
tests/test_skill_context_source.py::test_oversized_markdown_reference_discloses_selected_section_within_budget
tests/test_skill_context_source.py::test_oversized_skill_can_build_explicit_lossy_outline_with_section_refs
tests/test_skill_context_source.py::test_skill_domain_identity_survives_task_context_source_binding
tests/test_skill_context_source.py::test_skill_resources_remain_cold_until_selected
tests/test_skill_context_source.py::test_skill_script_read_returns_descriptor_not_executable_object
tests/test_skill_context_source.py::test_skill_context_source_enumerates_descriptors_once_across_pages
tests/test_skill_context_source.py::test_untrusted_skill_cannot_create_active_instruction_binding
tests/test_skill_context_source.py::test_skill_binding_pins_exact_revision_across_library_updates
tests/test_skill_context_source.py::test_skill_catalog_remains_exact_readable_without_becoming_a_candidate
tests/test_skill_library.py::test_skill_library_installs_lossless_real_world_package
tests/test_skill_library.py::test_identical_content_deduplicates_and_changed_content_creates_revision
tests/test_skill_library.py::test_mutable_source_cannot_change_installed_revision
tests/test_skill_library.py::test_exact_resource_read_enforces_boundary_and_byte_limit
tests/test_skill_library.py::test_skill_library_never_executes_or_owns_task_behavior
tests/test_skill_library.py::test_install_rejects_symlink_and_malformed_package_boundaries
tests/test_skill_library.py::test_install_defaults_to_untrusted_explicit_scope
tests/test_skill_library_remote_source.py::test_skill_library_installs_exact_remote_snapshot_with_provenance
tests/test_skill_library_remote_source.py::test_remote_update_creates_new_content_revision_without_mutating_old
tests/test_skill_library_remote_source.py::test_skill_library_fails_closed_for_unknown_remote_source_provider
tests/test_skill_library_remote_source.py::test_skill_library_configure_rebinds_library_owned_source_cache
tests/test_skill_script_action_binder.py::test_binder_registers_exact_revision_script_as_ordinary_code_action
tests/test_skill_script_action_binder.py::test_binder_rejects_untrusted_or_unauthorized_script
tests/test_skill_script_action_binder.py::test_agent_exposes_released_script_binding_after_exact_skill_binding
tests/test_skill_script_action_binder.py::test_bound_skill_script_executes_through_workspace_and_docker
tests/test_skill_script_code_execution_bridge.py::test_skill_script_bytes_land_in_workspace_before_provider_execution
tests/test_skill_script_exec.py::test_exec_registers_one_action_for_all_bound_python_scripts
tests/test_skill_script_exec.py::test_exec_rejects_unprepared_untrusted_or_unauthorized_scope
tests/test_skill_script_exec.py::test_exec_rejects_conflicting_stable_action_id_without_replacement
tests/test_skill_script_exec.py::test_exec_preserves_prepared_scope_and_does_not_repeat_skill_selection
tests/test_skill_script_exec.py::test_later_execution_reuses_stable_action_without_scope_or_permission_leak
tests/test_skill_script_exec.py::test_reconfiguring_prepared_scope_revokes_dependent_action
tests/test_skill_script_exec.py::test_started_or_foreign_execution_rejection_has_no_registry_side_effect
tests/test_skill_script_exec.py::test_stable_action_resolves_concurrent_execution_authorizations
tests/test_skill_script_exec.py::test_agent_enables_exec_and_resolves_script_at_call_time
tests/test_skill_script_exec.py::test_exec_rejects_language_mismatch_and_digest_mismatch
tests/test_skill_script_exec.py::test_skill_script_executes_through_workspace_and_docker
tests/test_skill_script_exec.py::test_exec_fails_closed_when_script_path_is_ambiguous
tests/test_skill_source_contracts.py::test_skill_source_request_and_snapshot_keep_requested_and_resolved_identity
tests/test_skill_source_contracts.py::test_skill_source_request_rejects_unsafe_subpath[../escape]
tests/test_skill_source_contracts.py::test_skill_source_request_rejects_unsafe_subpath[/absolute]
tests/test_skill_source_contracts.py::test_skill_source_request_rejects_unsafe_subpath[skills/../../escape]
tests/test_skill_source_contracts.py::test_skill_source_request_rejects_unsafe_subpath[.agently/private]
tests/test_skill_source_contracts.py::test_git_skill_source_snapshot_requires_exact_commit
tests/test_skill_source_contracts.py::test_skill_source_provider_is_a_runtime_checkable_protocol
tests/test_skill_source_providers.py::test_local_provider_materializes_an_immutable_snapshot
tests/test_skill_source_providers.py::test_git_provider_resolves_branch_to_exact_commit_and_freezes_content
tests/test_skill_source_providers.py::test_git_provider_reports_missing_subpath_without_leaking_cache_state
tests/test_skill_source_providers.py::test_source_provider_rejects_symlink_escape
tests/test_skill_source_providers.py::test_local_provider_rejects_symlink_selected_root_escape
tests/test_skill_source_providers.py::test_git_provider_rejects_symlink_selected_root_escape
tests/test_skills_compatibility_facade.py::test_released_install_inspect_list_and_read_delegate_to_skill_library
tests/test_skills_compatibility_facade.py::test_pack_management_is_a_thin_skill_library_projection
tests/test_skills_compatibility_facade.py::test_configure_rebinds_the_canonical_skill_library_in_place
tests/test_skills_compatibility_facade.py::test_context_pack_accepts_an_installed_skill_pack_selector
tests/test_skills_compatibility_facade.py::test_context_pack_is_projection_of_generic_context_package
tests/test_skills_compatibility_facade.py::test_context_pack_returns_inert_script_resources_without_discovering_actions
tests/test_skills_compatibility_facade.py::test_task_dag_resolver_calls_same_context_reader_projection
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[sync-False]
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[sync-True]
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[async-False]
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[async-True]
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[task_dag-False]
tests/test_skills_compatibility_facade.py::test_released_empty_candidates_survive_each_public_projection[task_dag-True]
tests/test_skills_compatibility_facade.py::test_empty_candidates_are_not_shared_between_skills_or_requests[False]
tests/test_skills_compatibility_facade.py::test_empty_candidates_are_not_shared_between_skills_or_requests[True]
tests/test_skills_compatibility_facade.py::test_compatibility_projection_still_requires_explicit_skill_selection[None-False]
tests/test_skills_compatibility_facade.py::test_compatibility_projection_still_requires_explicit_skill_selection[None-True]
tests/test_skills_compatibility_facade.py::test_compatibility_projection_still_requires_explicit_skill_selection[skill_ids1-False]
tests/test_skills_compatibility_facade.py::test_compatibility_projection_still_requires_explicit_skill_selection[skill_ids1-True]
tests/test_skills_compatibility_facade.py::test_empty_compatibility_field_does_not_admit_an_unknown_skill[False]
tests/test_skills_compatibility_facade.py::test_empty_compatibility_field_does_not_admit_an_unknown_skill[True]
tests/test_skills_compatibility_facade.py::test_facade_source_has_no_old_internal_owner_or_execution_strategy_imports
tests/test_skills_compatibility_facade.py::test_compatibility_facade_resolves_remote_pack_through_skill_library
tests/test_skills_compatibility_facade.py::test_compatibility_facade_defaults_remote_pack_to_untrusted
tests/test_skills_executor_real_anthropic_skills.py::test_real_quoted_description_with_special_chars_round_trips
tests/test_skills_executor_real_anthropic_skills.py::test_real_frontmatter_without_keywords_or_version_uses_safe_defaults
tests/test_skills_executor_real_anthropic_skills.py::test_resource_index_covers_standard_dirs_only_but_copies_full_tree
tests/test_skills_executor_real_anthropic_skills.py::test_real_shape_decision_card_is_descriptive_only_and_checksum_matches
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[algorithmic-art]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[brand-guidelines]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[canvas-design]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[claude-api]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[doc-coauthoring]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[docx]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[frontend-design]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[internal-comms]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[mcp-builder]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[pdf]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[pptx]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[skill-creator]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[slack-gif-creator]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[theme-factory]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[web-artifacts-builder]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[webapp-testing]
tests/test_skills_executor_real_anthropic_skills.py::test_each_real_anthropic_skill_normalizes[xlsx]
tests/test_skills_executor_real_anthropic_skills.py::test_real_anthropic_skills_install_as_a_pack
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[success-records]
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[success-vectors]
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[error-records]
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[error-vectors]
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[cancel-records]
tests/test_sqlite_connection_lifetime.py::test_transaction_settles_then_closes[cancel-vectors]
tests/test_sqlite_connection_lifetime.py::test_setup_error_closes_before_yield[records]
tests/test_sqlite_connection_lifetime.py::test_setup_error_closes_before_yield[vectors]
tests/test_sqlite_connection_lifetime.py::test_commit_error_rolls_back_and_closes[records]
tests/test_sqlite_connection_lifetime.py::test_commit_error_rolls_back_and_closes[vectors]
tests/test_sqlite_connection_lifetime.py::test_record_roundtrip_and_read_only_keep_policy
tests/test_sqlite_connection_lifetime.py::test_vector_roundtrip_and_read_only_keep_policy
tests/test_sqlite_connection_lifetime.py::test_missing_read_only_store_does_not_create_sqlite
tests/test_sqlite_connection_lifetime.py::test_cancel_waiting_for_record_lock_opens_no_connection
tests/test_sqlite_connection_lifetime.py::test_real_connections_emit_no_resource_warning[records]
tests/test_sqlite_connection_lifetime.py::test_real_connections_emit_no_resource_warning[vectors]
tests/test_stage_support_contract.py::test_triggerflow_uses_real_stage_without_scope_adapter
tests/test_stage_support_contract.py::test_private_stage_runtime_stream_transport_exists
tests/test_stage_support_contract.py::test_project_declares_supported_stage_dependency
tests/test_stage_support_contract.py::test_triggerflow_sync_emit_nowait_returns_loop_neutral_stage_handle
tests/test_stage_support_contract.py::test_triggerflow_creates_internal_managed_tasks_through_stage
tests/test_stage_support_contract.py::test_triggerflow_adopts_only_preexisting_external_task
tests/test_stage_support_contract.py::test_event_center_retains_native_task_support_after_stage_rejection
tests/test_stage_support_contract.py::test_triggerflow_execution_uses_private_stage_stream_transport
tests/test_stage_support_contract.py::test_event_center_remains_reusable_across_sequential_loops
tests/test_stage_support_contract.py::test_triggerflow_stage_stream_replays_exact_items_to_concurrent_readers
tests/test_stage_support_contract.py::test_triggerflow_stage_stream_keeps_public_state_stage_free
tests/test_stage_support_contract.py::test_triggerflow_retains_top_level_failure_until_close
tests/test_stage_support_contract.py::test_triggerflow_close_timeout_is_one_settlement_deadline
tests/test_static_typing_contracts.py::test_agent_execution_and_model_response_streaming_type_contracts
tests/test_static_typing_contracts.py::test_programmatic_action_observation_types_are_explicitly_exported
tests/test_static_typing_contracts.py::test_bundled_plugins_retain_regular_typed_package_boundary
tests/test_static_typing_contracts.py::test_public_handler_type_aliases
tests/test_static_typing_contracts.py::test_handler_context_members_are_concretely_typed
tests/test_static_typing_contracts.py::test_agent_execution_choice_aliases_keep_builtin_editor_candidates
tests/test_static_typing_contracts.py::test_agent_task_execution_hint_is_a_closed_host_choice
tests/test_static_typing_contracts.py::test_unknown_finite_choices_are_rejected_by_pyright
tests/test_static_typing_contracts.py::test_changed_runtime_protocols_are_publicly_typed
tests/test_static_typing_contracts.py::test_agent_execution_stream_protocol_contract
tests/test_static_typing_contracts.py::test_common_types_are_available_from_package_root
tests/test_static_typing_contracts.py::test_response_named_aliases_stay_in_typed_data_namespace_only
tests/test_static_typing_contracts.py::test_advanced_agent_execution_types_do_not_expand_the_package_root
tests/test_static_typing_contracts.py::test_task_board_public_update_methods_accept_dict_payloads
tests/test_structured_continuation_state.py::test_shapes[None-pre-values0-prefix]
tests/test_structured_continuation_state.py::test_shapes[str-"pre-values1-prefix]
tests/test_structured_continuation_state.py::test_shapes[RootModel[str]-"pre-values2-prefix]
tests/test_structured_continuation_state.py::test_shapes[schema3-{"a.b":{"x[0]":"pre-values3-expected3]
tests/test_structured_continuation_state.py::test_shapes[schema4-{"items":["first","se-values4-expected4]
tests/test_structured_continuation_state.py::test_shapes[schema5-{"items":[{"title":"first","body":"pre-values5-expected5]
tests/test_structured_continuation_state.py::test_shapes[schema6-{-values6-expected6]
tests/test_structured_continuation_state.py::test_new_array_items_after_partial_item
tests/test_structured_continuation_state.py::test_every_escape_cut["]
tests/test_structured_continuation_state.py::test_every_escape_cut[\\]
tests/test_structured_continuation_state.py::test_every_escape_cut[/]
tests/test_structured_continuation_state.py::test_every_escape_cut[\n]
tests/test_structured_continuation_state.py::test_every_escape_cut[\t]
tests/test_structured_continuation_state.py::test_every_escape_cut[\x08]
tests/test_structured_continuation_state.py::test_every_escape_cut[\u4e2d]
tests/test_structured_continuation_state.py::test_every_escape_cut[\U0001f600]
tests/test_structured_continuation_state.py::test_every_escape_cut[A]
tests/test_structured_continuation_state.py::test_bad_escape_never_changes_state
tests/test_structured_continuation_state.py::test_multiple_long_fields
tests/test_structured_continuation_state.py::test_array_index_never_skips_partial
tests/test_structured_continuation_state.py::test_replayed_response_rejected
tests/test_structured_continuation_state.py::test_completion_without_added_text
tests/test_structured_continuation_state.py::test_incomplete_field_blocks_global_complete
tests/test_structured_continuation_state.py::test_stale_snapshot_rejected
tests/test_structured_continuation_state.py::test_missing_array_initialization_precedes_item_updates
tests/test_structured_output_formats.py::test_xml_field_parser_is_not_strict_xml
tests/test_structured_output_formats.py::test_xml_field_text_can_contain_field_boundary_literal
tests/test_structured_output_formats.py::test_hybrid_requires_json_for_bool_number_and_records
tests/test_structured_output_formats.py::test_yaml_literal_uses_target_boundary
tests/test_structured_output_formats.py::test_prompt_model_accepts_new_explicit_formats_and_rejects_non_dict
tests/test_structured_output_formats.py::test_prompt_generator_renders_xml_field_and_yaml_literal
tests/test_structured_output_formats.py::test_leading_think_is_reasoning_event_not_parser_content
tests/test_structured_output_formats.py::test_leading_think_with_split_closing_tag_is_reasoning_event
tests/test_structured_output_formats.py::test_payload_think_is_preserved_when_not_leading_reasoning
tests/test_structured_output_formats.py::test_retried_attempt_replaces_reasoning_result_fields
tests/test_structured_output_formats.py::test_structured_final_materialization_paths_and_result_object
tests/test_structured_output_formats.py::test_parse_failed_observation_has_explicit_metadata
tests/test_structured_output_formats.py::test_structured_text_parser_falls_back_to_json_dict
tests/test_structured_output_formats.py::test_explicit_structured_format_error_falls_back_to_json_dict
tests/test_structured_output_formats.py::test_prompt_config_aliases_accept_new_formats
tests/test_structured_output_formats.py::test_sync_instant_generator_supports_hybrid
tests/test_structured_output_formats.py::test_async_instant_generator_supports_xml_field_and_yaml_literal
tests/test_structured_string_delivery.py::test_native_graph_and_verified_replay[RootModel[str]-"pre-p0:$-fix-prefix]
tests/test_structured_string_delivery.py::test_native_graph_and_verified_replay[schema1-{"a.b":{"x[0]":"pre-p0:a.b.x[0]-fix-expected1]
tests/test_structured_string_delivery.py::test_native_graph_and_verified_replay[schema2-{"items":["one","tw-p0:items[1]-o-expected2]
tests/test_structured_string_delivery.py::test_multiblock_and_independent_fields
tests/test_structured_string_delivery.py::test_bad_packet_recovery_is_bounded_and_preserves_prefix
tests/test_structured_string_delivery.py::test_three_invalid_packets_stop
tests/test_structured_string_delivery.py::test_empty_final_confirmation
tests/test_structured_string_delivery.py::test_stopped_partial_envelope_discards_untrusted_increment
tests/test_structured_string_delivery.py::test_early_completion_does_not_finish_open_field
tests/test_structured_string_delivery.py::test_closed_field_is_not_reopened
tests/test_structured_string_delivery.py::test_state_tampering_is_not_accepted_as_replay
tests/test_structured_string_delivery.py::test_corrupt_readback_never_succeeds
tests/test_structured_string_delivery.py::test_original_custom_validation_still_runs
tests/test_structured_string_delivery.py::test_undetermined_stops_without_redundant_request
tests/test_stt_input.py::test_silence_short_reply_original_timeline_and_event_barrier
tests/test_stt_input.py::test_empty_and_all_silent_never_request[]
tests/test_stt_input.py::test_empty_and_all_silent_never_request[\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00]
tests/test_stt_input.py::test_random_transport_partition_invariance_and_short_eof
tests/test_stt_input.py::test_continuous_speech_hard_limit_and_dense_pauses_no_sample_loss
tests/test_stt_input.py::test_protection_never_duplicates_between_close_speech_runs
tests/test_stt_input.py::test_configured_minimum_is_explicit_rejection_not_default_short_filter
tests/test_stt_input.py::test_minimum_not_met_at_buffer_limit_cannot_submit_candidate
tests/test_stt_input.py::test_pause_waits_for_model_and_consumer_and_callback_raw_block
tests/test_stt_input.py::test_failure_no_flush_no_resume_and_detector_closed[driver]
tests/test_stt_input.py::test_failure_no_flush_no_resume_and_detector_closed[detector]
tests/test_stt_input.py::test_failure_no_flush_no_resume_and_detector_closed[source]
tests/test_stt_input.py::test_failure_no_flush_no_resume_and_detector_closed[callback]
tests/test_stt_input.py::test_failure_no_flush_no_resume_and_detector_closed[partial_frame]
tests/test_stt_input.py::test_cancel_active_request_no_tail_and_close_idempotent
tests/test_stt_input.py::test_infinite_immediate_silence_is_cancellable
tests/test_stt_input.py::test_invalid_detector_probability[nan]
tests/test_stt_input.py::test_invalid_detector_probability[inf]
tests/test_stt_input.py::test_invalid_detector_probability[-0.1]
tests/test_stt_input.py::test_invalid_detector_probability[1.1]
tests/test_stt_input.py::test_invalid_detector_probability[True]
tests/test_stt_input.py::test_invalid_detector_probability[speech]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes0]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes1]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes2]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes3]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes4]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes5]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes6]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes7]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes8]
tests/test_stt_input.py::test_invalid_options_preflight_without_source_consumption[changes9]
tests/test_stt_input.py::test_threshold_boundary_and_no_energy_gate
tests/test_stt_input.py::test_file_and_agent_use_same_options_and_strip_before_driver
tests/test_stt_input.py::test_sync_file_reuses_async_preprocessing
tests/test_stt_input.py::test_compressed_and_oversized_files_explicitly_fail
tests/test_stt_input.py::test_auto_break_preserves_raw_callback_and_text_contract
tests/test_stt_input.py::test_concurrent_calls_and_agent_rebinding_capture
tests/test_stt_input.py::test_detector_frame_buffer_and_transport_bounds
tests/test_stt_input.py::test_empty_valid_wav_and_multiple_final_blocks
tests/test_stt_input.py::test_native_driver_cannot_silently_ignore_input_processing
tests/test_stt_input.py::test_unfiltered_failure_is_also_terminal
tests/test_system_one.py::test_configured_system_one_routes_only_template_stages
tests/test_system_one.py::test_explicit_off_combines_ordinary_output_and_does_not_mutate_agent
tests/test_system_one.py::test_unconfigured_is_off_even_with_jev_credentials
tests/test_system_one.py::test_explicit_on_without_model_fails_before_dispatch
tests/test_system_one.py::test_dynamic_before_and_after_stay_on_ordinary_model
tests/test_system_one.py::test_same_provider_settings_and_prompt_options_are_isolated
tests/test_system_one.py::test_model_key_uses_existing_profiles_without_ordinary_settings
tests/test_system_one.py::test_invalid_profiles_fail_preflight[config0]
tests/test_system_one.py::test_invalid_profiles_fail_preflight[config1]
tests/test_system_one.py::test_invalid_profiles_fail_preflight[config2]
tests/test_system_one.py::test_invalid_profiles_fail_preflight[config3]
tests/test_system_one.py::test_invalid_profiles_fail_preflight[config4]
tests/test_system_one.py::test_disabled_invalid_config_is_unused
tests/test_system_one.py::test_no_templates_does_not_add_system_one_call
tests/test_system_one.py::test_typed_settings_namespace_and_local_override
tests/test_system_one.py::test_started_execution_rejects_switch_and_preserves_result
tests/test_system_one.py::test_ordinary_profile_survives_failed_fast_stage
tests/test_system_one.py::test_following_llm_receives_score_scale_and_choice_meanings
tests/test_system_one.py::test_explicit_system_one_batch_size_retains_precedence
tests/test_system_one.py::test_system_one_can_retry_before_any_complete_instant_field
tests/test_system_one.py::test_system_one_complete_instant_field_prevents_stage_replay
tests/test_system_one.py::test_ordinary_predecessor_of_system_one_retains_retry
tests/test_system_one.py::test_ordinary_successor_of_system_one_retains_retry
tests/test_system_one.py::test_disabled_system_one_retains_ordinary_instant_retry
tests/test_task_context.py::test_task_context_manages_revisioned_source_bindings_and_direct_entries
tests/test_task_context.py::test_task_context_remove_updates_revision_only_when_something_is_removed
tests/test_task_context.py::test_task_context_rejects_duplicate_binding_entry_and_unknown_role
tests/test_task_context.py::test_task_context_snapshots_are_detached_and_deeply_immutable
tests/test_task_context.py::test_task_context_detects_context_and_source_revision_staleness
tests/test_task_context.py::test_task_context_detects_source_identity_staleness[source_id]
tests/test_task_context.py::test_task_context_detects_source_identity_staleness[source_kind]
tests/test_task_context.py::test_task_context_tracks_revisions_per_binding_when_sources_share_an_id
tests/test_task_context.py::test_binding_and_snapshot_do_not_trigger_source_or_model_work
tests/test_task_context.py::test_task_context_exposes_dynamic_source_catalog
tests/test_task_context.py::test_task_context_rejects_invalid_identity[<lambda>-task_id]
tests/test_task_context.py::test_task_context_rejects_invalid_identity[<lambda>-context_id]
tests/test_task_context.py::test_task_context_rejects_invalid_identity[<lambda>-source_id]
tests/test_task_workspace_context_source.py::test_task_workspace_edits_caller_directory_with_direct_root
tests/test_task_workspace_context_source.py::test_task_workspace_atomic_content_replace_is_digest_conditional
tests/test_task_workspace_context_source.py::test_terminal_target_write_guard_allows_only_digest_pinned_promotion
tests/test_task_workspace_context_source.py::test_read_only_task_workspace_creates_task_artifact_in_private_fallback
tests/test_task_workspace_context_source.py::test_context_source_exposes_execution_fallback_as_logical_file
tests/test_task_workspace_context_source.py::test_read_only_task_workspace_can_continue_only_its_own_fallback_carrier
tests/test_task_workspace_context_source.py::test_task_workspace_enforces_path_containment
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_enumerates_all_files_and_exact_reads
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_pages_matching_files
tests/test_task_workspace_context_source.py::test_task_workspace_source_revision_observes_external_file_change
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_enumerates_without_query_and_reads_exact
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_indexes_image_name_without_preparing_bytes
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_returns_image_attachment_only_on_exact_representation
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_parses_xlsx_for_context
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.cjs]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.cts]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.go]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.mjs]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.mts]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[types.pyi]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.c]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.cc]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.cpp]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.h]
tests/test_task_workspace_context_source.py::test_task_workspace_context_source_keeps_empty_mainstream_code_as_text[main.hpp]
tests/test_task_workspace_context_source.py::test_task_workspace_has_no_cross_source_context_builder
tests/test_task_workspace_context_source.py::test_skill_asset_copy_on_write_does_not_mutate_installed_revision
tests/test_task_workspace_context_source.py::test_context_reuses_small_text_and_invalidates_same_size_rewrite
tests/test_task_workspace_context_source.py::test_cached_context_preserves_utf8_ranges_and_bom_behavior
tests/test_task_workspace_context_source.py::test_cached_source_checks_replacement_deletion_and_symlink_escape
tests/test_task_workspace_context_source.py::test_source_rejects_file_changed_by_handler_during_read
tests/test_task_workspace_context_source.py::test_source_does_not_cache_custom_text_handler
tests/test_task_workspace_context_source.py::test_source_body_cache_is_bounded_and_pinned_reader_stays_stale
tests/test_task_workspace_execution_access.py::test_workspace_grant_precedes_materialization_and_contains_files
tests/test_task_workspace_execution_access.py::test_read_only_workspace_rejects_read_write_execution_grant
tests/test_task_workspace_execution_access.py::test_bundle_can_be_materialized_only_once_per_grant
tests/test_task_workspace_execution_access.py::test_output_collection_is_declared_and_digest_verified
tests/test_task_workspace_execution_access.py::test_requirement_rejects_private_and_escape_paths
tests/test_task_workspace_file_io.py::test_task_workspace_owns_registered_file_io_handler_lifecycle
tests/test_task_workspace_file_io.py::test_task_workspace_package_does_not_expose_a_second_manager_owner
tests/test_task_workspace_file_io.py::test_agent_execution_inherits_task_workspace_file_io_extensions
tests/test_task_workspace_file_io.py::test_inspection_streams_large_unknown_files_and_checks_utf8_tail
tests/test_trusted_local_code_execution_provider.py::test_trusted_local_probe_is_explicitly_unsafe_and_reports_real_tools
tests/test_trusted_local_code_execution_provider.py::test_trusted_local_requires_host_unsafe_opt_in
tests/test_trusted_local_code_execution_provider.py::test_trusted_local_executes_only_the_materialized_workspace_bundle
tests/test_trusted_local_code_execution_provider.py::test_trusted_local_bounds_generated_output_and_persisted_logs
tests/test_trusted_local_code_execution_provider.py::test_trusted_local_cancellation_terminates_the_process_group
tests/test_unified_execution_example_storage.py::test_unified_example_stores_observation_in_record_store
tests/test_utils/test_data_formatter.py::test_sanitize_frozen_context_content_keeps_nested_values_and_source_immutable
tests/test_utils/test_data_formatter.py::test_sanitize_mapping_preserves_declared_types_when_requested
tests/test_utils/test_data_formatter.py::test_sanitize
tests/test_utils/test_data_formatter.py::test_to_str_dict
tests/test_utils/test_data_formatter.py::test_sanitize_preserves_pydantic_generics
tests/test_utils/test_data_formatter.py::test_from_schema_to_kwargs_format_additional_properties_false
tests/test_utils/test_data_formatter.py::test_from_schema_to_kwargs_format_additional_properties_true
tests/test_utils/test_data_formatter.py::test_from_schema_to_kwargs_format_additional_properties_schema
tests/test_utils/test_data_locator.py::test_dot_path_build_and_locate[keys0-target]
tests/test_utils/test_data_locator.py::test_dot_path_build_and_locate[keys1-200]
tests/test_utils/test_data_locator.py::test_dot_path_build_and_locate[keys2-123]
tests/test_utils/test_data_locator.py::test_slash_path_build_and_locate[keys0-target]
tests/test_utils/test_data_locator.py::test_slash_path_build_and_locate[keys1-200]
tests/test_utils/test_data_locator.py::test_slash_path_build_and_locate[keys2-456]
tests/test_utils/test_data_locator.py::test_empty_keys
tests/test_utils/test_data_locator.py::test_root_list_dot_path_locate
tests/test_utils/test_data_locator.py::test_root_list_slash_path_locate
tests/test_utils/test_data_locator.py::test_extract_ensure_path_policies_preserves_not_null_marker
tests/test_utils/test_function_shifter.py::test_filter_callable_options_is_the_non_runtime_owner
tests/test_utils/test_function_shifter_retirement.py::test_production_paths_do_not_depend_on_function_shifter
tests/test_utils/test_generator_consumer.py::test_async_generator_multi_subscribe
tests/test_utils/test_generator_consumer.py::test_generator_consumer
tests/test_utils/test_generator_consumer.py::test_sync_only
tests/test_utils/test_generator_consumer.py::test_exception_broadcast
tests/test_utils/test_generator_consumer.py::test_close_behavior
tests/test_utils/test_generator_consumer.py::test_get_result
tests/test_utils/test_generator_consumer.py::test_generator_consumer_reuse_after_done
tests/test_utils/test_lazy_import.py::test_import_package
tests/test_utils/test_lazy_import.py::test_import_package_default_disables_install_prompt
tests/test_utils/test_lazy_import.py::test_from_import_default_disables_install_prompt
tests/test_utils/test_lazy_import.py::test_import_package_auto_install_true_prompts_before_failure
tests/test_utils/test_lazy_import.py::test_import_package_version_mismatch_is_structured_error_by_default
tests/test_utils/test_request_scheduler.py::test_backoff_delay_is_clamped_and_monotonic_without_jitter
tests/test_utils/test_request_scheduler.py::test_backoff_delay_jitter_within_bounds
tests/test_utils/test_request_scheduler.py::test_inactive_scheduler_slot_is_noop
tests/test_utils/test_request_scheduler.py::test_concurrency_limit_caps_in_flight_requests
tests/test_utils/test_request_scheduler.py::test_reconfigure_rebuilds_loop_primitives_for_provider
tests/test_utils/test_request_scheduler.py::test_rate_limit_spaces_request_starts
tests/test_utils/test_request_scheduler.py::test_configure_from_settings_reads_provider_override
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_getting
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_setting_in_different_types
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_del
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_namespace
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_not_exists_namespace
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_deep_inheritance
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_special_objects
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_error_handling
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_advanced_namespace
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_complex_merge
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_copy_behavior
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_project_practices
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_load_data
tests/test_utils/test_runtime_data.py::TestRuntimeData::test_dump_data
tests/test_utils/test_runtime_data.py::test_set_with_dot_path
tests/test_utils/test_runtime_data_2.py::TestDictRef::test_dict_ref_basic_operations
tests/test_utils/test_runtime_data_2.py::TestDictRef::test_dict_ref_root_container
tests/test_utils/test_runtime_data_2.py::TestDictRef::test_dict_ref_update
tests/test_utils/test_runtime_data_2.py::TestDictRef::test_dict_ref_move_in
tests/test_utils/test_runtime_data_2.py::TestDictRef::test_dict_ref_errors
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_initialization
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_repr_and_eq
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_getitem_basic
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_get_method
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_setitem_basic
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_set_method
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_delitem
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataBasicOperations::test_delete_method
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataCollectionMethods::test_keys_values_items
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataCollectionMethods::test_contains
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataCollectionMethods::test_pop
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataCollectionMethods::test_clear
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataCollectionMethods::test_update
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_set_replaces_dicts
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_set_replaces_lists_including_with_empty_list
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_set_replaces_sets
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_set_replaces_scalar
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_set_replaces_dot_path_value
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_update_remains_explicit_merge_operation
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_append_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataComplexOperations::test_extend_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataInheritance::test_basic_inheritance
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataInheritance::test_inheritance_override
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataInheritance::test_inheritance_disabled
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataInheritance::test_deep_inheritance_chain
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_serializable_data_conversion
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_dump_json
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_dump_yaml
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_dump_toml
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_load_json_file
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_load_yaml_file
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_load_json_string
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataSerialization::test_load_invalid_data
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_creation
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_get_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_set_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_collection_methods
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_delete_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_clear
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_update
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataNamespace::test_namespace_append_extend
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_dot_path_with_non_dict_intermediate
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_none_values_handling
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_empty_string_keys
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_numeric_keys
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_deep_nesting_performance
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_circular_reference_protection
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_special_character_keys
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataEdgeCases::test_type_consistency_after_operations
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataStandardDictCompatibility::test_dict_constructor_compatibility
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataStandardDictCompatibility::test_dict_methods_compatibility
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataStandardDictCompatibility::test_iteration_compatibility
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataStandardDictCompatibility::test_membership_testing
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataStandardDictCompatibility::test_len_operation
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataProblematicCases::test_copy_behavior_mutation
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataProblematicCases::test_inheritance_with_mutable_objects
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataProblematicCases::test_concurrent_modification_safety
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataProblematicCases::test_memory_usage_with_large_inheritance_chains
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataProblematicCases::test_serialization_of_unserializable_objects
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataPerformance::test_large_data_handling
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataPerformance::test_deep_nesting_limits
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataPerformance::test_repeated_operations_performance[100]
tests/test_utils/test_runtime_data_2.py::TestRuntimeDataPerformance::test_repeated_operations_performance[500]
tests/test_utils/test_settings.py::test_settings
tests/test_utils/test_settings.py::test_settings_accepts_typed_settings_model
tests/test_utils/test_settings.py::test_typed_settings_reject_unknown_fields
tests/test_utils/test_settings.py::test_settings_load_yaml_file_with_auto_env
tests/test_utils/test_settings.py::test_settings_load_yaml_file_applies_path_mapping_without_auto_env
tests/test_utils/test_settings.py::test_settings_load_yaml_file_applies_kv_mapping
tests/test_utils/test_settings.py::test_settings_load_yaml_file_keep_placeholder_when_env_missing
tests/test_utils/test_settings.py::test_settings_load_yaml_file_raise_on_missing_env
tests/test_utils/test_settings.py::test_model_pool_unmapped_key_keeps_inherited_model
tests/test_utils/test_settings.py::test_model_pool_unknown_key_fails_when_alias_pool_is_configured
tests/test_utils/test_settings.py::test_resolve_model_profile_is_read_only_and_redacts_auth
tests/test_utils/test_settings.py::test_resolve_model_profile_reports_inherited_single_model_settings
tests/test_utils/test_settings.py::test_resolve_model_profile_reports_missing_env_auth
tests/test_utils/test_settings.py::test_resolve_model_profile_reports_missing_env_key_pool_auth
tests/test_utils/test_settings.py::test_model_pool_mapped_key_updates_model
tests/test_utils/test_settings.py::test_model_pool_profile_updates_provider_settings_and_key_pool
tests/test_utils/test_settings.py::test_model_pool_profile_can_switch_provider
tests/test_utils/test_settings.py::test_api_key_pool_selection_handler_can_choose_key
tests/test_utils/test_settings.py::test_api_key_pool_failover_try_next_updates_request_local_key
tests/test_utils/test_settings.py::test_api_key_pool_failover_handler_can_raise_or_choose_specific_key
tests/test_utils/test_storage.py::test_sqlite
tests/test_utils/test_storage.py::test_async_sqlite
tests/test_utils/test_streaming_json_completer.py::test_complete_simple_object
tests/test_utils/test_streaming_json_completer.py::test_incomplete_object_closing_brace
tests/test_utils/test_streaming_json_completer.py::test_only_opening_brace
tests/test_utils/test_streaming_json_completer.py::test_nested_structure_unclosed_array
tests/test_utils/test_streaming_json_completer.py::test_nested_structure_closed_array
tests/test_utils/test_streaming_json_completer.py::test_unclosed_string_value
tests/test_utils/test_streaming_json_completer.py::test_unclosed_string_with_escape
tests/test_utils/test_streaming_json_completer.py::test_escaped_quote_in_string
tests/test_utils/test_streaming_json_completer.py::test_escaped_newline_in_string
tests/test_utils/test_streaming_json_completer.py::test_single_line_comment_eof
tests/test_utils/test_streaming_json_completer.py::test_single_line_comment_no_newline
tests/test_utils/test_streaming_json_completer.py::test_multiline_comment_unclosed
tests/test_utils/test_streaming_json_completer.py::test_string_with_double_slash
tests/test_utils/test_streaming_json_completer.py::test_string_with_multiline_comment_inside
tests/test_utils/test_streaming_json_completer.py::test_unclosed_array
tests/test_utils/test_streaming_json_completer.py::test_multiple_fields_streamed
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterBasic::test_complete_simple_object
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterBasic::test_incomplete_object_closing_brace
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterBasic::test_only_opening_brace
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterBasic::test_empty_object
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterBasic::test_empty_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_nested_structure_unclosed_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_nested_structure_closed_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_deeply_nested_objects
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_deeply_nested_arrays
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_mixed_nested_structures
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterNested::test_multiple_nested_levels
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterDataTypes::test_string_values
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterDataTypes::test_number_values
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterDataTypes::test_boolean_values
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterDataTypes::test_null_values
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterDataTypes::test_mixed_data_types
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_unclosed_string_value
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_unclosed_string_with_escape
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_escaped_quote_in_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_escaped_newline_in_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_escaped_backslash_in_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_escaped_tab_in_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_unicode_in_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_single_quote_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_string_with_double_slash
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_string_with_multiline_comment_inside
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_empty_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStrings::test_string_with_json_content
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_single_line_comment_eof
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_single_line_comment_no_newline
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_multiline_comment_unclosed
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_multiline_comment_closed
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_nested_comments
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_comment_between_fields
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_comment_in_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterComments::test_multiple_single_line_comments
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterArrays::test_unclosed_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterArrays::test_array_with_objects
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterArrays::test_array_with_mixed_types
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterArrays::test_nested_arrays
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterArrays::test_array_with_trailing_comma
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStreaming::test_multiple_fields_streamed
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStreaming::test_single_character_streaming
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStreaming::test_irregular_fragment_sizes
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStreaming::test_streaming_with_comments
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterStreaming::test_streaming_nested_structure
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_empty_input
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_whitespace_only
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_only_comments
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_malformed_json_recovery
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_large_nesting_level
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_very_long_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterEdgeCases::test_multiple_root_objects
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterReset::test_reset_functionality
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterReset::test_reset_with_empty_string
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterReset::test_reset_after_append
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterSpecialCharacters::test_special_characters_in_strings
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterSpecialCharacters::test_unicode_escape_sequences
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterSpecialCharacters::test_control_characters
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterSpecialCharacters::test_emoji_in_strings
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterPerformance::test_large_array
tests/test_utils/test_streaming_json_completer_comprehensive.py::TestStreamingJSONCompleterPerformance::test_many_fields
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_basic
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_edge_cases
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_root_list_schema
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_distinguishes_observed_and_synthetic_completion
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_marks_trusted_flush_as_final_reconciliation
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_skips_large_incomplete_parse
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_treats_none_threshold_as_default
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_emits_large_deferred_status_once
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_flushes_observed_prefix_after_large_defer
tests/test_utils/test_streaming_json_parser.py::test_streaming_json_parser_parses_large_complete_payload_after_threshold
tests/test_utils/test_warning_once.py::test_deprecation_warning_helpers_use_class_closure_exports
tests/test_utils/test_warning_once.py::test_warn_deprecated_once_preserves_deprecation_warning_category
tests/test_utils/test_warning_once.py::test_reset_deprecation_warning_registry_allows_deprecation_warning_again
tests/test_utils/test_warning_once.py::test_deprecation_warning_setting_defaults_to_enabled
tests/test_utils/test_warning_once.py::test_deprecation_warning_setting_can_disable_and_reenable_warnings
tests/test_utils/test_warning_once.py::test_deprecation_warning_setting_accepts_off_string
tests/test_utils/test_warning_once.py::test_log_deprecated_once_respects_deprecation_warning_setting
tests/test_utils/test_warning_once.py::test_deprecated_warnings_use_once_helper
tests/test_windows_shell_transport.py::test_xml_exact_authorized_mounts[False-offline]
tests/test_windows_shell_transport.py::test_xml_exact_authorized_mounts[False-online]
tests/test_windows_shell_transport.py::test_xml_exact_authorized_mounts[True-offline]
tests/test_windows_shell_transport.py::test_xml_exact_authorized_mounts[True-online]
tests/test_windows_shell_transport.py::test_missing_sandbox_does_not_find_host_shell
tests/test_windows_shell_transport.py::test_untrusted_readback[symlink]
tests/test_windows_shell_transport.py::test_untrusted_readback[directory]
tests/test_windows_shell_transport.py::test_untrusted_readback[oversized]
tests/test_windows_shell_transport.py::test_untrusted_readback[missing]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[success]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[nonzero]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[missing]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[malformed]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[start_error]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[exec_error]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[timeout]
tests/test_windows_shell_transport.py::test_call_cleanup_and_delivery[cancel]
tests/test_windows_shell_transport.py::test_repeated_cancel_waits_for_one_stop
tests/test_windows_shell_transport.py::test_failed_stop_retains_only_owned_directory
tests/test_windows_shell_transport.py::test_regular_windows_reparse_file_is_not_read
tests/test_workspace_examples.py::test_context_and_storage_examples_are_valid_python
tests/test_workspace_examples.py::test_current_examples_do_not_recommend_removed_owner_apis
tests/test_workspace_examples.py::test_examples_cover_each_new_owner_boundary
tests/test_workspace_ownership_decomposition.py::test_legacy_combined_workspace_aggregate_is_removed
tests/test_workspace_ownership_decomposition.py::test_agent_exposes_task_workspace_as_the_only_file_boundary
tests/test_workspace_ownership_decomposition.py::test_default_task_workspace_is_an_isolated_hidden_task_directory
tests/test_workspace_ownership_decomposition.py::test_agent_binds_task_workspace_and_record_store_independently
tests/test_workspace_ownership_decomposition.py::test_context_builder_protocol_is_removed
tests/test_workspace_ownership_decomposition.py::test_record_store_implementation_does_not_retain_workspace_ownership_names
tests/test_workspace_public_docs.py::test_context_file_and_record_docs_define_non_overlapping_owners
tests/test_workspace_public_docs.py::test_context_docs_keep_index_internal_and_use_descriptor_source_ports
tests/test_workspace_public_docs.py::test_context_docs_define_strict_document_and_image_admission
tests/test_workspace_public_docs.py::test_session_memory_docs_route_task_recall_through_task_context_source
tests/test_workspace_public_docs.py::test_task_workspace_docs_stage_then_promote_terminal_artifacts
tests/test_workspace_public_docs.py::test_session_memory_docs_bind_record_store_without_task_workspace_dependency
tests/test_workspace_public_docs.py::test_skills_docs_define_direct_reconnection_and_thin_facade
tests/test_workspace_public_docs.py::test_blocks_docs_expose_context_read_and_reject_removed_owners
tests/test_workspace_public_docs.py::test_current_owner_guidance_does_not_recommend_removed_apis
tests/test_workspace_public_docs.py::test_release_notes_and_compatibility_name_breaking_owner_split
tests/test_workspace_public_docs.py::test_public_docs_define_reference_identity_boundaries
tests/test_workspace_public_docs.py::test_public_docs_define_fail_closed_terminal_contracts

==================================== ERRORS ====================================
_________ ERROR collecting tests/test_agent_execution_step_contract.py _________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_execution_step_contract.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_execution_step_contract.py:19: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
_________ ERROR collecting tests/test_agent_execution_task_context.py __________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_execution_task_context.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_execution_task_context.py:12: in <module>
    from agently.core import AgentTask, SkillLibrary, TaskContext, TaskWorkspace
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
__________ ERROR collecting tests/test_agent_task_context_readers.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_context_readers.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_context_readers.py:9: in <module>
    from agently.core import AgentTask, SkillLibrary
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
___________ ERROR collecting tests/test_agent_task_delta_progress.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_delta_progress.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_delta_progress.py:14: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
___________ ERROR collecting tests/test_agent_task_lifecycle_flow.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_lifecycle_flow.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_lifecycle_flow.py:8: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
__________ ERROR collecting tests/test_agent_task_lifecycle_state.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_lifecycle_state.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_lifecycle_state.py:6: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
________________ ERROR collecting tests/test_agent_task_loop.py ________________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_loop.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_loop.py:28: in <module>
    from agently.builtins.plugins.AgentExecution.long_task.BlockCarrier import (
E   ModuleNotFoundError: No module named 'agently.builtins.plugins.AgentExecution.long_task.BlockCarrier'
_________ ERROR collecting tests/test_agent_task_terminal_carriers.py __________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_agent_task_terminal_carriers.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_agent_task_terminal_carriers.py:8: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
_____________ ERROR collecting tests/test_bounded_action_scope.py ______________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_bounded_action_scope.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_bounded_action_scope.py:10: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
______ ERROR collecting tests/test_context_selection_prompt_transport.py _______
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_context_selection_prompt_transport.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_context_selection_prompt_transport.py:13: in <module>
    from agently.core import AgentTask, PluginManager, SkillLibrary
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
_____ ERROR collecting tests/test_cores/test_action_artifact_retention.py ______
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_cores/test_action_artifact_retention.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_cores/test_action_artifact_retention.py:14: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
____ ERROR collecting tests/test_cores/test_agent_task_workspace_effects.py ____
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_cores/test_agent_task_workspace_effects.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_cores/test_agent_task_workspace_effects.py:13: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
________ ERROR collecting tests/test_cores/test_task_board_contracts.py ________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_cores/test_task_board_contracts.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_cores/test_task_board_contracts.py:24: in <module>
    from agently.core.application.AgentTask.Task import AgentTask
E   ModuleNotFoundError: No module named 'agently.core.application.AgentTask.Task'
________ ERROR collecting tests/test_flat_action_argument_readiness.py _________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_flat_action_argument_readiness.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_flat_action_argument_readiness.py:10: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
_________ ERROR collecting tests/test_flat_observation_continuation.py _________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_flat_observation_continuation.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_flat_observation_continuation.py:15: in <module>
    from agently.builtins.plugins.AgentExecution.long_task.TerminalConvergence import TerminalIssue
E   ModuleNotFoundError: No module named 'agently.builtins.plugins.AgentExecution.long_task.TerminalConvergence'
___________ ERROR collecting tests/test_flat_scoped_action_inputs.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_flat_scoped_action_inputs.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_flat_scoped_action_inputs.py:14: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
_________ ERROR collecting tests/test_task_evidence_context_source.py __________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_task_evidence_context_source.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_task_evidence_context_source.py:5: in <module>
    from agently.builtins.plugins.AgentExecution.long_task.TaskEvidenceContextSource import (
E   ModuleNotFoundError: No module named 'agently.builtins.plugins.AgentExecution.long_task.TaskEvidenceContextSource'
____________ ERROR collecting tests/test_task_repair_projection.py _____________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_task_repair_projection.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_task_repair_projection.py:12: in <module>
    from agently.builtins.plugins.AgentExecution.long_task import Rework
E   ImportError: cannot import name 'Rework' from 'agently.builtins.plugins.AgentExecution.long_task' (unknown location)
__________ ERROR collecting tests/test_task_required_action_scope.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_task_required_action_scope.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_task_required_action_scope.py:11: in <module>
    from agently.core.application.AgentTask import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core.application.AgentTask' (unknown location)
___________ ERROR collecting tests/test_taskboard_delivery_seams.py ____________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_taskboard_delivery_seams.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_taskboard_delivery_seams.py:7: in <module>
    from agently.core import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
_________ ERROR collecting tests/test_taskboard_final_continuation.py __________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_taskboard_final_continuation.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_taskboard_final_continuation.py:7: in <module>
    from agently.core import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
__________ ERROR collecting tests/test_taskboard_planning_context.py ___________
ImportError while importing test module '/Users/moxin/dev/public/Agently/tests/test_taskboard_planning_context.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/miniconda3/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_taskboard_planning_context.py:10: in <module>
    from agently.core import AgentTask
E   ImportError: cannot import name 'AgentTask' from 'agently.core' (/Users/moxin/dev/public/Agently/agently/core/__init__.py)
=========================== short test summary info ============================
ERROR tests/test_agent_execution_step_contract.py
ERROR tests/test_agent_execution_task_context.py
ERROR tests/test_agent_task_context_readers.py
ERROR tests/test_agent_task_delta_progress.py
ERROR tests/test_agent_task_lifecycle_flow.py
ERROR tests/test_agent_task_lifecycle_state.py
ERROR tests/test_agent_task_loop.py
ERROR tests/test_agent_task_terminal_carriers.py
ERROR tests/test_bounded_action_scope.py
ERROR tests/test_context_selection_prompt_transport.py
ERROR tests/test_cores/test_action_artifact_retention.py
ERROR tests/test_cores/test_agent_task_workspace_effects.py
ERROR tests/test_cores/test_task_board_contracts.py
ERROR tests/test_flat_action_argument_readiness.py
ERROR tests/test_flat_observation_continuation.py
ERROR tests/test_flat_scoped_action_inputs.py
ERROR tests/test_task_evidence_context_source.py
ERROR tests/test_task_repair_projection.py
ERROR tests/test_task_required_action_scope.py
ERROR tests/test_taskboard_delivery_seams.py
ERROR tests/test_taskboard_final_continuation.py
ERROR tests/test_taskboard_planning_context.py
!!!!!!!!!!!!!!!!!!! Interrupted: 22 errors during collection !!!!!!!!!!!!!!!!!!!
3055 tests collected, 22 errors in 1.24s
