{"abstract":"While transferring, event grant_ack produces owned/resume_local instead of released/forget_local_owner.","category":"Protocols","checks":14,"contract":"For the stipulated Exclusive owner handoff 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-ownership_handoff","failed_approach":"The partial repair chooses released/keep_local_owner, which still violates this phase-specific event contract.","family":"s3-protocols-ownership_handoff-transferring-grant_ack","id":"FA-19756","implementations":{"attempt":{"sha256":"6dfa3ea3ded92b20b862b70403acc2fb8d956ae86e0a3a089d014cadda1dc4d8","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 = {'local_owner': phase!='released', 'remote_owners': int(phase=='released'), 'fenced': phase in ('fenced','transferring','released'), 'offers': int(phase in ('offering','fenced','transferring')), 'writes': [], 'queued': []}\n    frames = []\n    observed = []\n    table = {('owned', 'handoff_request'): ('offering', 'send_offer'), ('offering', 'peer_ready'): ('fenced', 'fence_local'), ('fenced', 'fence_confirmed'): ('transferring', 'send_grant'), ('transferring', 'grant_ack'): ('released', 'keep_local_owner'), ('offering', 'peer_refuses'): ('owned', 'withdraw_offer'), ('offering', 'local_write'): ('offering', 'write_local'), ('fenced', 'local_write'): ('fenced', 'reject_fenced'), ('released', 'local_write'): ('released', 'reject_not_owner'), ('transferring', 'duplicate_ready'): ('transferring', 'repeat_grant'), ('owned', 'unsolicited_ack'): ('owned', 'reject_unoffered')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'send_offer':\n            r['offers']+=1; frames.append(['OFFER_OWNER',seed])\n        elif action == 'fence_local':\n            r['fenced']=True\n        elif action == 'send_grant':\n            r['remote_owners']+=1; frames.append(['GRANT_OWNER',seed])\n        elif action == 'forget_local_owner':\n            r['local_owner']=False\n        elif action == 'withdraw_offer':\n            r['offers']=0\n        elif action == 'write_local':\n            r['writes'].append(['local',payload])\n        elif action == 'reject_fenced':\n            frames.append(['FENCED',payload])\n        elif action == 'reject_not_owner':\n            frames.append(['NOT_OWNER',payload])\n        elif action == 'repeat_grant':\n            frames.append(['GRANT_OWNER',seed])\n        elif action == 'reject_unoffered':\n            frames.append(['NO_OFFER',seed])\n        elif action == 'drop_owner':\n            r['local_owner']=False\n        elif action == 'grant_both':\n            r['remote_owners']+=1; r['local_owner']=True\n        elif action == 'continue_local':\n            r['writes'].append(['local',payload])\n        elif action == 'grant_remote':\n            r['remote_owners']+=1\n        elif action == 'drop_record':\n            r['local_owner']=False\n        elif action == 'unfence_local':\n            r['fenced']=False\n        elif action == 'resume_local':\n            r['local_owner']=True; r['fenced']=False\n        elif action == 'write_remote':\n            r['writes'].append(['remote',payload])\n        elif action == 'reject':\n            frames.append(['REJECT',seed])\n        elif action == 'queue_write':\n            r['queued'].extend(payload)\n        elif action == 'grant_second_owner':\n            r['remote_owners']+=2\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: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [1, 2, 3]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [1, 2, 3]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [1, 2, 3]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 1]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]], ['NOT_OWNER', [1, 2, 3]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 1]]}])], 2: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [2, 3, 4, 5]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [2, 3, 4, 5]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [2, 3, 4, 5]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 2]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2], ['GRANT_OWNER', 2]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 2]]}])], 3: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [3, 4, 5, 6, 7]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [3, 4, 5, 6, 7]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 3]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3], ['GRANT_OWNER', 3]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 3]]}])], 4: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [4, 5, 6, 7, 8, 9]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [4, 5, 6, 7, 8, 9]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 4]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 4]]}])], 5: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [5, 6, 7, 8, 9, 10, 11]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [5, 6, 7, 8, 9, 10, 11]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 5]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack', 'local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 5]]}])]}\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":"31821893a901b6b09292adf7035285af57e7f7a448cdeba2f30c60b31fce098d","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 = {'local_owner': phase!='released', 'remote_owners': int(phase=='released'), 'fenced': phase in ('fenced','transferring','released'), 'offers': int(phase in ('offering','fenced','transferring')), 'writes': [], 'queued': []}\n    frames = []\n    observed = []\n    table = {('owned', 'handoff_request'): ('offering', 'send_offer'), ('offering', 'peer_ready'): ('fenced', 'fence_local'), ('fenced', 'fence_confirmed'): ('transferring', 'send_grant'), ('transferring', 'grant_ack'): ('owned', 'resume_local'), ('offering', 'peer_refuses'): ('owned', 'withdraw_offer'), ('offering', 'local_write'): ('offering', 'write_local'), ('fenced', 'local_write'): ('fenced', 'reject_fenced'), ('released', 'local_write'): ('released', 'reject_not_owner'), ('transferring', 'duplicate_ready'): ('transferring', 'repeat_grant'), ('owned', 'unsolicited_ack'): ('owned', 'reject_unoffered')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'send_offer':\n            r['offers']+=1; frames.append(['OFFER_OWNER',seed])\n        elif action == 'fence_local':\n            r['fenced']=True\n        elif action == 'send_grant':\n            r['remote_owners']+=1; frames.append(['GRANT_OWNER',seed])\n        elif action == 'forget_local_owner':\n            r['local_owner']=False\n        elif action == 'withdraw_offer':\n            r['offers']=0\n        elif action == 'write_local':\n            r['writes'].append(['local',payload])\n        elif action == 'reject_fenced':\n            frames.append(['FENCED',payload])\n        elif action == 'reject_not_owner':\n            frames.append(['NOT_OWNER',payload])\n        elif action == 'repeat_grant':\n            frames.append(['GRANT_OWNER',seed])\n        elif action == 'reject_unoffered':\n            frames.append(['NO_OFFER',seed])\n        elif action == 'drop_owner':\n            r['local_owner']=False\n        elif action == 'grant_both':\n            r['remote_owners']+=1; r['local_owner']=True\n        elif action == 'continue_local':\n            r['writes'].append(['local',payload])\n        elif action == 'grant_remote':\n            r['remote_owners']+=1\n        elif action == 'drop_record':\n            r['local_owner']=False\n        elif action == 'unfence_local':\n            r['fenced']=False\n        elif action == 'resume_local':\n            r['local_owner']=True; r['fenced']=False\n        elif action == 'write_remote':\n            r['writes'].append(['remote',payload])\n        elif action == 'reject':\n            frames.append(['REJECT',seed])\n        elif action == 'queue_write':\n            r['queued'].extend(payload)\n        elif action == 'grant_second_owner':\n            r['remote_owners']+=2\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: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [1, 2, 3]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [1, 2, 3]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [1, 2, 3]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 1]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]], ['NOT_OWNER', [1, 2, 3]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 1]]}])], 2: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [2, 3, 4, 5]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [2, 3, 4, 5]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [2, 3, 4, 5]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 2]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2], ['GRANT_OWNER', 2]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 2]]}])], 3: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [3, 4, 5, 6, 7]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [3, 4, 5, 6, 7]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 3]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3], ['GRANT_OWNER', 3]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 3]]}])], 4: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [4, 5, 6, 7, 8, 9]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [4, 5, 6, 7, 8, 9]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 4]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 4]]}])], 5: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [5, 6, 7, 8, 9, 10, 11]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [5, 6, 7, 8, 9, 10, 11]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 5]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack', 'local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 5]]}])]}\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":"93dcd4dbb796d19220f69d747ce6283790502d45916be48aa39739d97be6929b","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 = {'local_owner': phase!='released', 'remote_owners': int(phase=='released'), 'fenced': phase in ('fenced','transferring','released'), 'offers': int(phase in ('offering','fenced','transferring')), 'writes': [], 'queued': []}\n    frames = []\n    observed = []\n    table = {('owned', 'handoff_request'): ('offering', 'send_offer'), ('offering', 'peer_ready'): ('fenced', 'fence_local'), ('fenced', 'fence_confirmed'): ('transferring', 'send_grant'), ('transferring', 'grant_ack'): ('released', 'forget_local_owner'), ('offering', 'peer_refuses'): ('owned', 'withdraw_offer'), ('offering', 'local_write'): ('offering', 'write_local'), ('fenced', 'local_write'): ('fenced', 'reject_fenced'), ('released', 'local_write'): ('released', 'reject_not_owner'), ('transferring', 'duplicate_ready'): ('transferring', 'repeat_grant'), ('owned', 'unsolicited_ack'): ('owned', 'reject_unoffered')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'send_offer':\n            r['offers']+=1; frames.append(['OFFER_OWNER',seed])\n        elif action == 'fence_local':\n            r['fenced']=True\n        elif action == 'send_grant':\n            r['remote_owners']+=1; frames.append(['GRANT_OWNER',seed])\n        elif action == 'forget_local_owner':\n            r['local_owner']=False\n        elif action == 'withdraw_offer':\n            r['offers']=0\n        elif action == 'write_local':\n            r['writes'].append(['local',payload])\n        elif action == 'reject_fenced':\n            frames.append(['FENCED',payload])\n        elif action == 'reject_not_owner':\n            frames.append(['NOT_OWNER',payload])\n        elif action == 'repeat_grant':\n            frames.append(['GRANT_OWNER',seed])\n        elif action == 'reject_unoffered':\n            frames.append(['NO_OFFER',seed])\n        elif action == 'drop_owner':\n            r['local_owner']=False\n        elif action == 'grant_both':\n            r['remote_owners']+=1; r['local_owner']=True\n        elif action == 'continue_local':\n            r['writes'].append(['local',payload])\n        elif action == 'grant_remote':\n            r['remote_owners']+=1\n        elif action == 'drop_record':\n            r['local_owner']=False\n        elif action == 'unfence_local':\n            r['fenced']=False\n        elif action == 'resume_local':\n            r['local_owner']=True; r['fenced']=False\n        elif action == 'write_remote':\n            r['writes'].append(['remote',payload])\n        elif action == 'reject':\n            frames.append(['REJECT',seed])\n        elif action == 'queue_write':\n            r['queued'].extend(payload)\n        elif action == 'grant_second_owner':\n            r['remote_owners']+=2\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: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [1, 2, 3]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [1, 2, 3]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [1, 2, 3]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 1]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 1], ['OFFER_OWNER', 1]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 1], ['NOT_OWNER', [1, 2, 3]], ['NOT_OWNER', [1, 2, 3]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 1]]}])], 2: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [2, 3, 4, 5]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [2, 3, 4, 5]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [2, 3, 4, 5]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 2]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 2], ['OFFER_OWNER', 2], ['GRANT_OWNER', 2]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 2], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]], ['NOT_OWNER', [2, 3, 4, 5]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 2]]}])], 3: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [3, 4, 5, 6, 7]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [3, 4, 5, 6, 7]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 3]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 3], ['OFFER_OWNER', 3], ['GRANT_OWNER', 3], ['GRANT_OWNER', 3]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 3], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]], ['NOT_OWNER', [3, 4, 5, 6, 7]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 3]]}])], 4: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [4, 5, 6, 7, 8, 9]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [4, 5, 6, 7, 8, 9]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 4]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 4], ['OFFER_OWNER', 4], ['GRANT_OWNER', 4], ['GRANT_OWNER', 4]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 4], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]], ['NOT_OWNER', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 4]]}])], 5: [('owned/handoff_request', 'owned', ['handoff_request'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}]), ('offering/peer_ready', 'offering', ['peer_ready'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('fenced/fence_confirmed', 'fenced', ['fence_confirmed'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('transferring/grant_ack', 'transferring', ['grant_ack'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/peer_refuses', 'offering', ['peer_refuses'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': []}]), ('offering/local_write', 'offering', ['local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [['local', [5, 6, 7, 8, 9, 10, 11]]], 'queued': []}, 'frames': []}]), ('fenced/local_write', 'fenced', ['local_write'], [{'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['FENCED', [5, 6, 7, 8, 9, 10, 11]]]}]), ('released/local_write', 'released', ['local_write'], [{'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('transferring/duplicate_ready', 'transferring', ['duplicate_ready'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}]), ('owned/unsolicited_ack', 'owned', ['unsolicited_ack'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['NO_OFFER', 5]]}]), ('ordered trace 0', 'owned', ['handoff_request', 'peer_refuses', 'handoff_request', 'peer_ready', 'fence_confirmed', 'duplicate_ready', 'grant_ack', 'local_write'], [{'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5]]}, {'phase': 'offering', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'fenced', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 1, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['OFFER_OWNER', 5], ['OFFER_OWNER', 5], ['GRANT_OWNER', 5], ['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('ordered trace 3', 'transferring', ['duplicate_ready', 'grant_ack', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write', 'local_write'], [{'phase': 'transferring', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'released', 'registers': {'local_owner': False, 'remote_owners': 0, 'fenced': True, 'offers': 1, 'writes': [], 'queued': []}, 'frames': [['GRANT_OWNER', 5], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]], ['NOT_OWNER', [5, 6, 7, 8, 9, 10, 11]]]}]), ('empty input', 'owned', [], []), ('unknown event', 'owned', ['unsupported'], [{'phase': 'owned', 'registers': {'local_owner': True, 'remote_owners': 0, 'fenced': False, 'offers': 0, 'writes': [], 'queued': []}, 'frames': [['REJECT', 5]]}])]}\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-ownership_handoff-transferring-grant_ack","generated_at":"2026-09-29T14:40:11.720622+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 transferring, classify grant_ack as transition to released and emit forget_local_owner.","root_cause":"In transferring, the grant ack handler runs resume local and enters owned; it must instead run forget local owner and enter released.","sha256":"ae57ce97e707342041b6b6535b5562a6ae32e6cec66503f35043371a37063a4a","title":"Exclusive owner handoff controller: transferring / grant ack · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.152,"exit_code":1,"observations":[{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/handoff_request","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_ready","expected":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"check":"fenced/fence_confirmed","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"released","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/grant_ack","expected":[{"frames":[],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":false},{"actual":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_refuses","expected":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"check":"offering/local_write","expected":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"passed":true},{"actual":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"fenced/local_write","expected":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"check":"released/local_write","expected":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/duplicate_ready","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/unsolicited_ack","expected":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 0","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"released","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 3","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"unknown event","expected":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"owned/handoff_request\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"offering/peer_ready\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/fence_confirmed\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"transferring/grant_ack\", \"actual\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": false}, {\"check\": \"offering/peer_refuses\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"offering/local_write\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/local_write\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"released/local_write\", \"actual\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"transferring/duplicate_ready\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"owned/unsolicited_ack\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]], [\"NOT_OWNER\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]], [\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.129,"exit_code":1,"observations":[{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/handoff_request","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_ready","expected":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"check":"fenced/fence_confirmed","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/grant_ack","expected":[{"frames":[],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":false},{"actual":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_refuses","expected":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"check":"offering/local_write","expected":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"passed":true},{"actual":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"fenced/local_write","expected":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"check":"released/local_write","expected":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/duplicate_ready","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/unsolicited_ack","expected":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 0","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["REJECT",1],["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 3","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"unknown event","expected":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"owned/handoff_request\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"offering/peer_ready\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/fence_confirmed\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"transferring/grant_ack\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": false}, {\"check\": \"offering/peer_refuses\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"offering/local_write\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/local_write\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"released/local_write\", \"actual\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"transferring/duplicate_ready\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"owned/unsolicited_ack\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"REJECT\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"REJECT\", 1], [\"REJECT\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]], [\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":47.059,"exit_code":0,"observations":[{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/handoff_request","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_ready","expected":[{"frames":[],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"check":"fenced/fence_confirmed","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/grant_ack","expected":[{"frames":[],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"offering/peer_refuses","expected":[{"frames":[],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"check":"offering/local_write","expected":[{"frames":[],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[["local",[1,2,3]]]}}],"passed":true},{"actual":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"fenced/local_write","expected":[{"frames":[["FENCED",[1,2,3]]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"check":"released/local_write","expected":[{"frames":[["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":0,"queued":[],"remote_owners":1,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"transferring/duplicate_ready","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"owned/unsolicited_ack","expected":[{"frames":[["NO_OFFER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 0","expected":[{"frames":[["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"offering","registers":{"fenced":false,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["OFFER_OWNER",1],["OFFER_OWNER",1]],"phase":"fenced","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"check":"ordered trace 3","expected":[{"frames":[["GRANT_OWNER",1]],"phase":"transferring","registers":{"fenced":true,"local_owner":true,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}},{"frames":[["GRANT_OWNER",1],["NOT_OWNER",[1,2,3]],["NOT_OWNER",[1,2,3]]],"phase":"released","registers":{"fenced":true,"local_owner":false,"offers":1,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"check":"unknown event","expected":[{"frames":[["REJECT",1]],"phase":"owned","registers":{"fenced":false,"local_owner":true,"offers":0,"queued":[],"remote_owners":0,"writes":[]}}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"owned/handoff_request\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"offering/peer_ready\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/fence_confirmed\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 1, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"transferring/grant_ack\", \"actual\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"offering/peer_refuses\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"offering/local_write\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [[\"local\", [1, 2, 3]]], \"queued\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"fenced/local_write\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"FENCED\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"released/local_write\", \"actual\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 1, \"fenced\": true, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"transferring/duplicate_ready\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"owned/unsolicited_ack\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"NO_OFFER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"expected\": [{\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1]]}, {\"phase\": \"offering\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}, {\"phase\": \"fenced\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"OFFER_OWNER\", 1], [\"OFFER_OWNER\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]], [\"NOT_OWNER\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"transferring\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]]]}, {\"phase\": \"released\", \"registers\": {\"local_owner\": false, \"remote_owners\": 0, \"fenced\": true, \"offers\": 1, \"writes\": [], \"queued\": []}, \"frames\": [[\"GRANT_OWNER\", 1], [\"NOT_OWNER\", [1, 2, 3]], [\"NOT_OWNER\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"expected\": [{\"phase\": \"owned\", \"registers\": {\"local_owner\": true, \"remote_owners\": 0, \"fenced\": false, \"offers\": 0, \"writes\": [], \"queued\": []}, \"frames\": [[\"REJECT\", 1]]}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}