{"abstract":"While reserved, event duplicate_confirm produces reserved/allocate_second instead of reserved/repeat_receipt.","category":"Protocols","checks":14,"contract":"For the stipulated Two-party resource reservation controller, initialize the explicitly shown resource registers from seed (1..5), then consume classified events sequentially. After each event return a deep snapshot of phase, resource registers, and cumulative emitted control frames. The explicit ten phase/event rules and their resource effects define admission and response semantics. Unlisted events preserve phase and emit rejection. Payload is the consecutive integers seed through 2*seed+1. Empty event input returns no observations.","evaluation_group":"s3-protocols-reservation","failed_approach":"The partial repair chooses tentative/hold_resource, which still violates this phase-specific event contract.","family":"s3-protocols-reservation-reserved-duplicate_confirm","id":"FA-19536","implementations":{"attempt":{"sha256":"a81c6102f79d18ec7f5c809a52152330e32b6534e7f3eb1535e8748f9170ce39","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'available': seed+2, 'held': int(phase=='tentative'), 'committed': int(phase in ('reserved','in_use')), 'uses': int(phase=='in_use'), 'receipts': []}\n    frames = []\n    observed = []\n    table = {('free', 'request'): ('tentative', 'hold_resource'), ('tentative', 'confirm'): ('reserved', 'commit_hold'), ('tentative', 'decline'): ('free', 'release_hold'), ('tentative', 'hold_expired'): ('free', 'notify_expired'), ('reserved', 'use'): ('in_use', 'start_use'), ('in_use', 'finish'): ('free', 'release_and_receipt'), ('reserved', 'cancel'): ('free', 'release_and_cancel_ack'), ('free', 'confirm'): ('free', 'reject_expired'), ('in_use', 'cancel'): ('in_use', 'reject_busy'), ('reserved', 'duplicate_confirm'): ('tentative', 'hold_resource')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'hold_resource':\n            r['available']-=1; r['held']+=1\n        elif action == 'commit_hold':\n            r['held']-=1; r['committed']+=1\n        elif action == 'release_hold':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'notify_expired':\n            r['available']+=r['held']; r['held']=0; frames.append(['EXPIRED',seed])\n        elif action == 'start_use':\n            r['uses']+=1\n        elif action == 'release_and_receipt':\n            r['available']+=1; r['committed']=0; r['receipts'].append('finished')\n        elif action == 'release_and_cancel_ack':\n            r['available']+=1; r['committed']=0; r['receipts'].append('cancelled')\n        elif action == 'reject_expired':\n            frames.append(['EXPIRED_CONFIRM',seed])\n        elif action == 'reject_busy':\n            frames.append(['BUSY',seed])\n        elif action == 'repeat_receipt':\n            frames.append(['RESERVED',seed])\n        elif action == 'confirm':\n            frames.append(['RESERVED',seed])\n        elif action == 'release':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate_second':\n            r['available']-=1; r['committed']+=1\n        elif action == 'silent_release':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'release_only':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate':\n            r['available']-=1; r['committed']+=1\n        elif action == 'ack_cancel':\n            frames.append(['CANCELLED',seed])\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 1]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 1]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 1]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 2, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 2]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 2]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 2]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 3]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 3]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 3]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 4]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 4]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 4]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 5]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 5]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 5]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled', 'cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"3941103a3d752545a2585e33b64017d473a866deff0bed1a2a3106453cc0c7af","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'available': seed+2, 'held': int(phase=='tentative'), 'committed': int(phase in ('reserved','in_use')), 'uses': int(phase=='in_use'), 'receipts': []}\n    frames = []\n    observed = []\n    table = {('free', 'request'): ('tentative', 'hold_resource'), ('tentative', 'confirm'): ('reserved', 'commit_hold'), ('tentative', 'decline'): ('free', 'release_hold'), ('tentative', 'hold_expired'): ('free', 'notify_expired'), ('reserved', 'use'): ('in_use', 'start_use'), ('in_use', 'finish'): ('free', 'release_and_receipt'), ('reserved', 'cancel'): ('free', 'release_and_cancel_ack'), ('free', 'confirm'): ('free', 'reject_expired'), ('in_use', 'cancel'): ('in_use', 'reject_busy'), ('reserved', 'duplicate_confirm'): ('reserved', 'allocate_second')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'hold_resource':\n            r['available']-=1; r['held']+=1\n        elif action == 'commit_hold':\n            r['held']-=1; r['committed']+=1\n        elif action == 'release_hold':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'notify_expired':\n            r['available']+=r['held']; r['held']=0; frames.append(['EXPIRED',seed])\n        elif action == 'start_use':\n            r['uses']+=1\n        elif action == 'release_and_receipt':\n            r['available']+=1; r['committed']=0; r['receipts'].append('finished')\n        elif action == 'release_and_cancel_ack':\n            r['available']+=1; r['committed']=0; r['receipts'].append('cancelled')\n        elif action == 'reject_expired':\n            frames.append(['EXPIRED_CONFIRM',seed])\n        elif action == 'reject_busy':\n            frames.append(['BUSY',seed])\n        elif action == 'repeat_receipt':\n            frames.append(['RESERVED',seed])\n        elif action == 'confirm':\n            frames.append(['RESERVED',seed])\n        elif action == 'release':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate_second':\n            r['available']-=1; r['committed']+=1\n        elif action == 'silent_release':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'release_only':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate':\n            r['available']-=1; r['committed']+=1\n        elif action == 'ack_cancel':\n            frames.append(['CANCELLED',seed])\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 1]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 1]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 1]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 2, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 2]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 2]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 2]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 3]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 3]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 3]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 4]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 4]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 4]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 5]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 5]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 5]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled', 'cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"8511068bca7d7b1d29fd829fe38a2c179ae66c45d424379839b24129dff2d6a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'available': seed+2, 'held': int(phase=='tentative'), 'committed': int(phase in ('reserved','in_use')), 'uses': int(phase=='in_use'), 'receipts': []}\n    frames = []\n    observed = []\n    table = {('free', 'request'): ('tentative', 'hold_resource'), ('tentative', 'confirm'): ('reserved', 'commit_hold'), ('tentative', 'decline'): ('free', 'release_hold'), ('tentative', 'hold_expired'): ('free', 'notify_expired'), ('reserved', 'use'): ('in_use', 'start_use'), ('in_use', 'finish'): ('free', 'release_and_receipt'), ('reserved', 'cancel'): ('free', 'release_and_cancel_ack'), ('free', 'confirm'): ('free', 'reject_expired'), ('in_use', 'cancel'): ('in_use', 'reject_busy'), ('reserved', 'duplicate_confirm'): ('reserved', 'repeat_receipt')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'hold_resource':\n            r['available']-=1; r['held']+=1\n        elif action == 'commit_hold':\n            r['held']-=1; r['committed']+=1\n        elif action == 'release_hold':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'notify_expired':\n            r['available']+=r['held']; r['held']=0; frames.append(['EXPIRED',seed])\n        elif action == 'start_use':\n            r['uses']+=1\n        elif action == 'release_and_receipt':\n            r['available']+=1; r['committed']=0; r['receipts'].append('finished')\n        elif action == 'release_and_cancel_ack':\n            r['available']+=1; r['committed']=0; r['receipts'].append('cancelled')\n        elif action == 'reject_expired':\n            frames.append(['EXPIRED_CONFIRM',seed])\n        elif action == 'reject_busy':\n            frames.append(['BUSY',seed])\n        elif action == 'repeat_receipt':\n            frames.append(['RESERVED',seed])\n        elif action == 'confirm':\n            frames.append(['RESERVED',seed])\n        elif action == 'release':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate_second':\n            r['available']-=1; r['committed']+=1\n        elif action == 'silent_release':\n            r['available']+=r['held']; r['held']=0\n        elif action == 'release_only':\n            r['available']+=1; r['committed']=0\n        elif action == 'allocate':\n            r['available']-=1; r['committed']+=1\n        elif action == 'ack_cancel':\n            frames.append(['CANCELLED',seed])\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 1]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 1]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 1]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 2, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 2, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request'], [{'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 1]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 3, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 2]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 2]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 2]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 3, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 3, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 2]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 4, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 3]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 3]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 3]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm'], [{'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 4, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 4, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request'], [{'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 3]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 5, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 4]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 4]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 4]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request'], [{'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 5, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 5, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm'], [{'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 4]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 6, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('free/request', 'free', ['request'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/confirm', 'tentative', ['confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/decline', 'tentative', ['decline'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}]), ('tentative/hold_expired', 'tentative', ['hold_expired'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED', 5]]}]), ('reserved/use', 'reserved', ['use'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': []}]), ('in_use/finish', 'in_use', ['finish'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 1, 'receipts': ['finished']}, 'frames': []}]), ('reserved/cancel', 'reserved', ['cancel'], [{'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}]), ('free/confirm', 'free', ['confirm'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('in_use/cancel', 'in_use', ['cancel'], [{'phase': 'in_use', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 1, 'receipts': []}, 'frames': [['BUSY', 5]]}]), ('reserved/duplicate_confirm', 'reserved', ['duplicate_confirm'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': [['RESERVED', 5]]}]), ('ordered trace 0', 'free', ['request', 'decline', 'request', 'confirm', 'cancel', 'confirm', 'request', 'decline'], [{'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'reserved', 'registers': {'available': 6, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 6, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('ordered trace 3', 'tentative', ['confirm', 'cancel', 'confirm', 'request', 'decline', 'request', 'confirm', 'cancel'], [{'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': []}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': []}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'tentative', 'registers': {'available': 7, 'held': 1, 'committed': 0, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'reserved', 'registers': {'available': 7, 'held': 0, 'committed': 1, 'uses': 0, 'receipts': ['cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}, {'phase': 'free', 'registers': {'available': 8, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': ['cancelled', 'cancelled']}, 'frames': [['EXPIRED_CONFIRM', 5]]}]), ('empty input', 'free', [], []), ('unknown event', 'free', ['unsupported'], [{'phase': 'free', 'registers': {'available': 7, 'held': 0, 'committed': 0, 'uses': 0, 'receipts': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Bounded offline control-plane abstraction with prescribed initial registers and classified events. Not a named protocol implementation or conformance test; excludes wire parsing, transport retries, physical execution, authentication, crash persistence, and timing. Related event faults share the full corrected controller and evaluation group. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-protocols-reservation-reserved-duplicate_confirm","generated_at":"2026-09-29T14:40:09.145537+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Incorrect event admission now changes concrete queued data, resource ownership, or emitted protocol frames and subsequent trace behavior.","repair":"In phase reserved, classify duplicate_confirm as transition to reserved and emit repeat_receipt.","root_cause":"In reserved, the duplicate confirm handler runs allocate second and enters reserved; it must instead run repeat receipt and enter reserved.","sha256":"86cc4ac3ae00beb70892baa407e8fd83d9cf3c91f718f2c5df75ac9f1cc53fc3","title":"Two-party resource reservation controller: reserved / duplicate confirm · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.477,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"check":"free/request","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"tentative/confirm","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/decline","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/hold_expired","expected":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"reserved/use","expected":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"check":"in_use/finish","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"check":"reserved/cancel","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"free/confirm","expected":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"in_use/cancel","expected":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":1,"held":1,"receipts":[],"uses":0}}],"check":"reserved/duplicate_confirm","expected":[{"frames":[["RESERVED",1]],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":false},{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"free/request\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/confirm\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/decline\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/hold_expired\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"passed\": true}, {\"check\": \"reserved/use\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"in_use/finish\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"reserved/cancel\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"free/confirm\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"in_use/cancel\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"passed\": true}, {\"check\": \"reserved/duplicate_confirm\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"RESERVED\", 1]]}], \"passed\": false}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.424,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"check":"free/request","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"tentative/confirm","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/decline","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/hold_expired","expected":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"reserved/use","expected":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"check":"in_use/finish","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"check":"reserved/cancel","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"free/confirm","expected":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"in_use/cancel","expected":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":2,"committed":2,"held":0,"receipts":[],"uses":0}}],"check":"reserved/duplicate_confirm","expected":[{"frames":[["RESERVED",1]],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":false},{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"free/request\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/confirm\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/decline\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/hold_expired\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"passed\": true}, {\"check\": \"reserved/use\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"in_use/finish\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"reserved/cancel\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"free/confirm\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"in_use/cancel\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"passed\": true}, {\"check\": \"reserved/duplicate_confirm\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 2, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"RESERVED\", 1]]}], \"passed\": false}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":48.773,"exit_code":0,"observations":[{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"check":"free/request","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"tentative/confirm","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/decline","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"tentative/hold_expired","expected":[{"frames":[["EXPIRED",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"reserved/use","expected":[{"frames":[],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"check":"in_use/finish","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["finished"],"uses":1}}],"passed":true},{"actual":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"check":"reserved/cancel","expected":[{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"free/confirm","expected":[{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"check":"in_use/cancel","expected":[{"frames":[["BUSY",1]],"phase":"in_use","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":1}}],"passed":true},{"actual":[{"frames":[["RESERVED",1]],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"reserved/duplicate_confirm","expected":[{"frames":[["RESERVED",1]],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"tentative","registers":{"available":2,"committed":0,"held":1,"receipts":[],"uses":0}},{"frames":[],"phase":"reserved","registers":{"available":2,"committed":1,"held":0,"receipts":[],"uses":0}}],"passed":true},{"actual":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"reserved","registers":{"available":3,"committed":1,"held":0,"receipts":[],"uses":0}},{"frames":[],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"free","registers":{"available":4,"committed":0,"held":0,"receipts":["cancelled"],"uses":0}},{"frames":[["EXPIRED_CONFIRM",1]],"phase":"tentative","registers":{"available":3,"committed":0,"held":1,"receipts":["cancelled"],"uses":0}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"free","registers":{"available":3,"committed":0,"held":0,"receipts":[],"uses":0}}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"free/request\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/confirm\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/decline\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"tentative/hold_expired\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED\", 1]]}], \"passed\": true}, {\"check\": \"reserved/use\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"in_use/finish\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 1, \"receipts\": [\"finished\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"reserved/cancel\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}], \"passed\": true}, {\"check\": \"free/confirm\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"in_use/cancel\", \"actual\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"expected\": [{\"phase\": \"in_use\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 1, \"receipts\": []}, \"frames\": [[\"BUSY\", 1]]}], \"passed\": true}, {\"check\": \"reserved/duplicate_confirm\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"RESERVED\", 1]]}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"RESERVED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"tentative\", \"registers\": {\"available\": 2, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"reserved\", \"registers\": {\"available\": 2, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"expected\": [{\"phase\": \"reserved\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 1, \"uses\": 0, \"receipts\": []}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": []}, {\"phase\": \"free\", \"registers\": {\"available\": 4, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}, {\"phase\": \"tentative\", \"registers\": {\"available\": 3, \"held\": 1, \"committed\": 0, \"uses\": 0, \"receipts\": [\"cancelled\"]}, \"frames\": [[\"EXPIRED_CONFIRM\", 1]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"free\", \"registers\": {\"available\": 3, \"held\": 0, \"committed\": 0, \"uses\": 0, \"receipts\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}