{"abstract":"Subscription handshake replaces a valid zero handle with a sentinel; the returned lifecycle plan violates the stated transition contract.","category":"Listener lifecycle","checks":8,"contract":"Plan synchronous subscription handshaking. The subscription handle must be installed before source callbacks may request cancellation. If cancellation happens before the source returns teardown, retain a pending-dispose marker and dispose the returned teardown immediately. A thrown subscribe call is distinct from callback failure. A returned empty handle is valid and must not be treated as absence; handle presence has a separate bit. A source throw uses the error channel unless synchronous completion preceded it; after completion it is reported unhandled. First throw is the modeled failure. Error routing follows exception origin, independent of whether a callback ran synchronously inside source initialization. Count cancellation requests received before the first teardown return; if no return has arrived, all cancellations remain deferred. Pending handshakes are first-occurrence unique startup tokens excluding tokens that have finished; a reentrant reuse cannot create a second handle. The source may return a finite list of disposer groups; normalize exactly one grouping level in group order and preserve order within each group. Inputs are finite state snapshots, including transitional and stale states; output fields are the exact independent actions/metadata defined by the corrected expression table. Numeric fixture capacities and counts vary with N.\nField definitions, each independently computed from the input snapshot: install = not s['installed'] and s['starting']; pending_dispose = sum(op=='cancel' for op in s['handshake_events'][:s['handshake_events'].index('return')]) if 'return' in s['handshake_events'] else s['handshake_events'].count('cancel'); dispose_returned = s['cancel'] and s['subscribe_returned'] and s['has_teardown'] and not s['disposed']; presence = s['has_handle']; source_error = ('unhandled' if 'complete' in s['start_trace'][:s['start_trace'].index('throw')] else 'error-channel') if 'throw' in s['start_trace'] else None; callback_error = {'source':'subscription-error','callback':'callback-error'}[s['raised_by']] if s['raised_by'] is not None else None; ready = s['installed'] and s['subscribe_returned'] and s['source_error'] is None and not s['cancel']; retain_teardown = [item for group in s['teardown_groups'] for item in group]; reentrant_start = [x for x in dict.fromkeys(s['start_tokens']) if x not in s['finished_tokens']]; handle_value = s['handle'] if s['has_handle'] else None","evaluation_group":"s3-listener-subscribe-handshake","failed_approach":"The partial repair uses s['handle']; a retained regression distinguishes it from the full transition.","family":"s3-listener-subscribe-handshake-handle_value","id":"FA-42736","implementations":{"attempt":{"sha256":"c7b5eb48978b33b10d695304945aa4e396faeef840929ad25d300de105918024","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return {\n        'install': not s['installed'] and s['starting'],\n        'pending_dispose': sum(op=='cancel' for op in s['handshake_events'][:s['handshake_events'].index('return')]) if 'return' in s['handshake_events'] else s['handshake_events'].count('cancel'),\n        'dispose_returned': s['cancel'] and s['subscribe_returned'] and s['has_teardown'] and not s['disposed'],\n        'presence': s['has_handle'],\n        'source_error': ('unhandled' if 'complete' in s['start_trace'][:s['start_trace'].index('throw')] else 'error-channel') if 'throw' in s['start_trace'] else None,\n        'callback_error': {'source':'subscription-error','callback':'callback-error'}[s['raised_by']] if s['raised_by'] is not None else None,\n        'ready': s['installed'] and s['subscribe_returned'] and s['source_error'] is None and not s['cancel'],\n        'retain_teardown': [item for group in s['teardown_groups'] for item in group],\n        'reentrant_start': [x for x in dict.fromkeys(s['start_tokens']) if x not in s['finished_tokens']],\n        'handle_value': s['handle'],\n    }\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 2: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['a'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': []}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 3: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 4: [({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': True, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 5: [({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})]}\nfor i,(state,expected) in enumerate(fixtures[N]):\n    check(\"transition \"+str(i), solve(state), 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":"ab82b63ef0fa87ee2b575d21beb0b8d2defee2b67367527573388fb81b03cfe0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return {\n        'install': not s['installed'] and s['starting'],\n        'pending_dispose': sum(op=='cancel' for op in s['handshake_events'][:s['handshake_events'].index('return')]) if 'return' in s['handshake_events'] else s['handshake_events'].count('cancel'),\n        'dispose_returned': s['cancel'] and s['subscribe_returned'] and s['has_teardown'] and not s['disposed'],\n        'presence': s['has_handle'],\n        'source_error': ('unhandled' if 'complete' in s['start_trace'][:s['start_trace'].index('throw')] else 'error-channel') if 'throw' in s['start_trace'] else None,\n        'callback_error': {'source':'subscription-error','callback':'callback-error'}[s['raised_by']] if s['raised_by'] is not None else None,\n        'ready': s['installed'] and s['subscribe_returned'] and s['source_error'] is None and not s['cancel'],\n        'retain_teardown': [item for group in s['teardown_groups'] for item in group],\n        'reentrant_start': [x for x in dict.fromkeys(s['start_tokens']) if x not in s['finished_tokens']],\n        'handle_value': s['handle'] or None,\n    }\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 2: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['a'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': []}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 3: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 4: [({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': True, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 5: [({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})]}\nfor i,(state,expected) in enumerate(fixtures[N]):\n    check(\"transition \"+str(i), solve(state), 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":"3a0f70c8c838d515da064aa753c35948a8418686186127e9af4e2635a800c0d9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return {\n        'install': not s['installed'] and s['starting'],\n        'pending_dispose': sum(op=='cancel' for op in s['handshake_events'][:s['handshake_events'].index('return')]) if 'return' in s['handshake_events'] else s['handshake_events'].count('cancel'),\n        'dispose_returned': s['cancel'] and s['subscribe_returned'] and s['has_teardown'] and not s['disposed'],\n        'presence': s['has_handle'],\n        'source_error': ('unhandled' if 'complete' in s['start_trace'][:s['start_trace'].index('throw')] else 'error-channel') if 'throw' in s['start_trace'] else None,\n        'callback_error': {'source':'subscription-error','callback':'callback-error'}[s['raised_by']] if s['raised_by'] is not None else None,\n        'ready': s['installed'] and s['subscribe_returned'] and s['source_error'] is None and not s['cancel'],\n        'retain_teardown': [item for group in s['teardown_groups'] for item in group],\n        'reentrant_start': [x for x in dict.fromkeys(s['start_tokens']) if x not in s['finished_tokens']],\n        'handle_value': s['handle'] if s['has_handle'] else None,\n    }\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 2: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['a'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': True, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': []}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 3: [({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': True, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 4: [({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': None, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 2, 'dispose_returned': True, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': True, 'pending_dispose': 2, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': [], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': True, 'source_error': None, 'callback_error': None, 'handle': 'h', 'has_handle': False, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': True, 'cancel': True, 'has_teardown': False, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': [], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': [[]]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': None, 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': 0}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})], 5: [({'installed': False, 'subscribe_returned': True, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': None, 'inside_start': True, 'handshake_events': ['next', 'cancel', 'cancel', 'return'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 2, 'dispose_returned': False, 'presence': False, 'source_error': 'unhandled', 'callback_error': None, 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a', 'b'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['next', 'complete', 'throw'], 'raised_by': 'source', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': [], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': True, 'presence': False, 'source_error': 'unhandled', 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': True, 'has_teardown': True, 'disposed': False, 'source_error': None, 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['next', 'throw'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['a'], 'teardown_groups': [[]]}, {'install': True, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': [], 'reentrant_start': ['b'], 'handle_value': 'h'}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': 'source', 'inside_start': True, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': 'subscription-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': True, 'subscribe_returned': False, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': None, 'handle': 0, 'has_handle': True, 'starting': False, 'start_trace': ['next', 'throw'], 'raised_by': None, 'inside_start': False, 'handshake_events': ['cancel', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': ['a'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 1, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': None, 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': [], 'handle_value': 0}), ({'installed': True, 'subscribe_returned': True, 'cancel': False, 'has_teardown': True, 'disposed': False, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 0, 'has_handle': False, 'starting': False, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': False, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a'], 'finished_tokens': [], 'teardown_groups': [['a'], ['b', 'c']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['a', 'b', 'c'], 'reentrant_start': ['a'], 'handle_value': None}), ({'installed': False, 'subscribe_returned': False, 'cancel': False, 'has_teardown': False, 'disposed': False, 'source_error': None, 'callback_error': None, 'handle': None, 'has_handle': False, 'starting': False, 'start_trace': [], 'raised_by': None, 'inside_start': False, 'handshake_events': [], 'start_tokens': [], 'finished_tokens': [], 'teardown_groups': []}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': False, 'source_error': None, 'callback_error': None, 'ready': False, 'retain_teardown': [], 'reentrant_start': [], 'handle_value': None}), ({'installed': True, 'subscribe_returned': True, 'cancel': True, 'has_teardown': True, 'disposed': True, 'source_error': 'subscribe-error', 'callback_error': 'callback-error', 'handle': 'h', 'has_handle': True, 'starting': True, 'start_trace': ['throw', 'complete'], 'raised_by': 'callback', 'inside_start': True, 'handshake_events': ['next', 'return', 'cancel'], 'start_tokens': ['a', 'b', 'a'], 'finished_tokens': ['missing'], 'teardown_groups': [[], ['d']]}, {'install': False, 'pending_dispose': 0, 'dispose_returned': False, 'presence': True, 'source_error': 'error-channel', 'callback_error': 'callback-error', 'ready': False, 'retain_teardown': ['d'], 'reentrant_start': ['a', 'b'], 'handle_value': 'h'})]}\nfor i,(state,expected) in enumerate(fixtures[N]):\n    check(\"transition \"+str(i), solve(state), 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":"A deterministic, bounded, single-threaded transition planner. Returned plans model state changes; they do not implement a production event framework. 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-listener-subscribe-handshake-handle_value","generated_at":"2026-09-29T14:43:54.675483+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Observer implementations need to preserve this state while subscriptions enter, execute, and leave their lifecycle.","repair":"Compute the handle_value decision from the complete contract: s['handle'] if s['has_handle'] else None.","root_cause":"The handle_value decision in the subscribe-handshake listener model is computed as s['handle'] or None, losing a required lifecycle condition.","sha256":"6f2b222847f19a2799479539f4a7a9160bf3c41f969c82a30de962bd188c60a4","title":"Subscription handshake replaces a valid zero handle with a sentinel · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.468,"exit_code":1,"observations":[{"actual":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":"h","install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"check":"transition 0","expected":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":null,"install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"passed":false},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 1","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"check":"transition 2","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"passed":false},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 3","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 4","expected":{"callback_error":null,"dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 5","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"check":"transition 6","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"passed":true},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"check":"transition 7","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"transition 0\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": false}, {\"check\": \"transition 1\", \"actual\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": 0}, \"expected\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": 0}, \"passed\": true}, {\"check\": \"transition 2\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": 0}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": false}, {\"check\": \"transition 3\", \"actual\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}, {\"check\": \"transition 4\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": 0}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": 0}, \"passed\": true}, {\"check\": \"transition 5\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 6\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 7\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.387,"exit_code":1,"observations":[{"actual":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":"h","install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"check":"transition 0","expected":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":null,"install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"passed":false},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 1","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":false},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"check":"transition 2","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 3","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 4","expected":{"callback_error":null,"dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":false},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 5","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"check":"transition 6","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"passed":true},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"check":"transition 7","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"transition 0\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": false}, {\"check\": \"transition 1\", \"actual\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": 0}, \"passed\": false}, {\"check\": \"transition 2\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 3\", \"actual\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}, {\"check\": \"transition 4\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": 0}, \"passed\": false}, {\"check\": \"transition 5\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 6\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 7\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.784,"exit_code":0,"observations":[{"actual":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":null,"install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"check":"transition 0","expected":{"callback_error":"subscription-error","dispose_returned":true,"handle_value":null,"install":false,"pending_dispose":1,"presence":false,"ready":false,"reentrant_start":["a"],"retain_teardown":["a","b","c"],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 1","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":2,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"check":"transition 2","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":["a","b","c"],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"check":"transition 3","expected":{"callback_error":"subscription-error","dispose_returned":false,"handle_value":"h","install":true,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":[],"source_error":"unhandled"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 4","expected":{"callback_error":null,"dispose_returned":false,"handle_value":0,"install":false,"pending_dispose":1,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"check":"transition 5","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a"],"retain_teardown":[],"source_error":"error-channel"},"passed":true},{"actual":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"check":"transition 6","expected":{"callback_error":null,"dispose_returned":false,"handle_value":null,"install":false,"pending_dispose":0,"presence":false,"ready":false,"reentrant_start":[],"retain_teardown":[],"source_error":null},"passed":true},{"actual":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"check":"transition 7","expected":{"callback_error":"callback-error","dispose_returned":false,"handle_value":"h","install":false,"pending_dispose":0,"presence":true,"ready":false,"reentrant_start":["a","b"],"retain_teardown":["d"],"source_error":"error-channel"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"transition 0\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": true, \"presence\": false, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 1\", \"actual\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": 0}, \"expected\": {\"install\": false, \"pending_dispose\": 2, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": 0}, \"passed\": true}, {\"check\": \"transition 2\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"a\", \"b\", \"c\"], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 3\", \"actual\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": true, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"unhandled\", \"callback_error\": \"subscription-error\", \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}, {\"check\": \"transition 4\", \"actual\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": 0}, \"expected\": {\"install\": false, \"pending_dispose\": 1, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": 0}, \"passed\": true}, {\"check\": \"transition 5\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [\"a\"], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 6\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": false, \"source_error\": null, \"callback_error\": null, \"ready\": false, \"retain_teardown\": [], \"reentrant_start\": [], \"handle_value\": null}, \"passed\": true}, {\"check\": \"transition 7\", \"actual\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"expected\": {\"install\": false, \"pending_dispose\": 0, \"dispose_returned\": false, \"presence\": true, \"source_error\": \"error-channel\", \"callback_error\": \"callback-error\", \"ready\": false, \"retain_teardown\": [\"d\"], \"reentrant_start\": [\"a\", \"b\"], \"handle_value\": \"h\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}