=== STEP_040B RESULT ===
prev040a2=/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-162105_step040a2_agent_mode_filemap/report.txt
prev040a2_rc=0
prev040a2_pass_rc=0
prev040a2_agent_oneshot_rc=0
prev040a2_agent_inactive_ok_rc=0
prev040a2_next_rc=0
vm100_selector_active_entry_count=4
vm100_selector_cs4_present_rc=0
vm100_selector_cs5_present_rc=1
vm100_wg_paid_peer_count=4
vm100_cs4_peer_visible_rc=0
vm101_status_slot_count=5
vpn1_status=healthy
vpn1_selector_class=cs4
vpn2_status=healthy
vpn2_selector_class=cs5
tool_path=/usr/local/sbin/wg-access-agent-selector-contract-dry-run.py
vm121_backup_dir=/root/router-ops-backups/STEP_040B_SELECTOR_CONTRACT_DRY_RUN_20260708-162321
rollback_vm121=/root/rollback-step040b-selector-contract-dry-run.sh
tool_backup_rc=0
tool_install_rc=0
rollback_create_rc=0
tool_exists_rc=0
cs4_contract=existing_idempotent
cs4_dryrun_rc=0
cs4_contract_valid=YES
cs4_exact_line=
cs4_exact_present=YES
cs4_idempotent_noop=YES
cs4_would_append=NO
cs4_selector_entry_count_before=4
cs4_selector_entry_count_after_simulated=4
cs4_payload_slot_code=vpn1
cs4_payload_selector_class=cs4
cs4_payload_fwmark=0x201
cs4_payload_table_id=201
cs4_payload_interface_name=vpn1
cs4_slot_status=healthy
cs5_contract=future_append_dry_run
cs5_dryrun_rc=0
cs5_contract_valid=YES
cs5_exact_line=
cs5_exact_present=NO
cs5_idempotent_noop=NO
cs5_would_append=YES
cs5_selector_entry_count_before=4
cs5_selector_entry_count_after_simulated=5
cs5_payload_slot_code=vpn2
cs5_payload_selector_class=cs5
cs5_payload_fwmark=0x202
cs5_payload_table_id=202
cs5_payload_interface_name=vpn2
cs5_slot_status=healthy
private_material_published=NO
new_peer_created=NO
db_changed=NO
selector_changed=NO
mapper_changed=NO
policy_changed=NO
network_reload_done=NO
firewall_reload_done=NO
wg_reload_done=NO
backend_restart_done=NO
manager_invoked=NO
decision=FAIL_DRY_RUN_AGENT_SELECTOR_CONTRACT