nmarshall commited on
Commit
ef920e6
·
1 Parent(s): dcf170a

qvm: audit notification reentry

Browse files
docs/ASSET_PIPELINE_TODO.md CHANGED
@@ -1003,3 +1003,6 @@ Research progress: RE-782 [report](research/QVM_REENTRY_WITNESS.md); original as
1003
 
1004
 
1005
  Research progress: RE-783 [report](research/QVM_EXECUTE_REENTRY.md); original assets unchanged.
 
 
 
 
1003
 
1004
 
1005
  Research progress: RE-783 [report](research/QVM_EXECUTE_REENTRY.md); original assets unchanged.
1006
+
1007
+
1008
+ Research progress: RE-784 [report](research/QVM_NOTIFICATION_REENTRY.md); original assets unchanged.
docs/FINDINGS.md CHANGED
@@ -1349,3 +1349,6 @@ RE-725–734 batch: [health, contact and Rust impulse findings](research/QVM_HEA
1349
 
1350
 
1351
  **RE-783 — Corrected movement resumption with persistent byte and command state:** The movement resumer also loses non-command STORE1 writes across calls in legacy mode; corrected opt-in preserves bytes and applies handler-returned commands before the next segment. [Evidence](research/QVM_EXECUTE_REENTRY.md).
 
 
 
 
1349
 
1350
 
1351
  **RE-783 — Corrected movement resumption with persistent byte and command state:** The movement resumer also loses non-command STORE1 writes across calls in legacy mode; corrected opt-in preserves bytes and applies handler-returned commands before the next segment. [Evidence](research/QVM_EXECUTE_REENTRY.md).
1352
+
1353
+
1354
+ **RE-784 — Audited notification reentry and 64-slot recipient dispatch:** 6369 and6439 now use corrected reentry; scaled recipient order/gates and full legacy/corrected tuples agree for captured callback fixtures through64 slots. [Evidence](research/QVM_NOTIFICATION_REENTRY.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1350,3 +1350,6 @@ Research progress: RE-782 [report](research/QVM_REENTRY_WITNESS.md); full native
1350
 
1351
 
1352
  Research progress: RE-783 [report](research/QVM_EXECUTE_REENTRY.md); full native/platform/game scope remains open.
 
 
 
 
1350
 
1351
 
1352
  Research progress: RE-783 [report](research/QVM_EXECUTE_REENTRY.md); full native/platform/game scope remains open.
1353
+
1354
+
1355
+ Research progress: RE-784 [report](research/QVM_NOTIFICATION_REENTRY.md); full native/platform/game scope remains open.
docs/RESEARCH_LEDGER.md CHANGED
@@ -1577,3 +1577,8 @@ Legacy resumption demonstrably exits a three-step countdown early; corrected tra
1577
  ## 2026-10-21 — RE-783 Corrected movement resumption with persistent byte and command state
1578
 
1579
  The movement resumer also loses non-command STORE1 writes across calls in legacy mode; corrected opt-in preserves bytes and applies handler-returned commands before the next segment. Focused `cargo xtask test-group execute-reentry` passes (7 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 49425 bytes. Full-suite validation is deferred to the tenth batch commit. Shared movement execute gains corrected opt-in behavior; this stage validates synthetic semantics rather than claiming all legacy movement reports are audited.
 
 
 
 
 
 
1577
  ## 2026-10-21 — RE-783 Corrected movement resumption with persistent byte and command state
1578
 
1579
  The movement resumer also loses non-command STORE1 writes across calls in legacy mode; corrected opt-in preserves bytes and applies handler-returned commands before the next segment. Focused `cargo xtask test-group execute-reentry` passes (7 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 49425 bytes. Full-suite validation is deferred to the tenth batch commit. Shared movement execute gains corrected opt-in behavior; this stage validates synthetic semantics rather than claiming all legacy movement reports are audited.
1580
+
1581
+
1582
+ ## 2026-10-21 — RE-784 Audited notification reentry and 64-slot recipient dispatch
1583
+
1584
+ 6369 and6439 now use corrected reentry; scaled recipient order/gates and full legacy/corrected tuples agree for captured callback fixtures through64 slots. Focused `cargo xtask test-group notification-reentry` passes (71 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 46918 bytes. Full-suite validation is deferred to the tenth batch commit. Notification source resumption migrated; shared evaluator unchanged in this task. Callback internals remain captured.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1399,3 +1399,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1399
 
1400
 
1401
  - [x] RE-783 Corrected movement resumption with persistent byte and command state ([report](research/QVM_EXECUTE_REENTRY.md)).
 
 
 
 
1399
 
1400
 
1401
  - [x] RE-783 Corrected movement resumption with persistent byte and command state ([report](research/QVM_EXECUTE_REENTRY.md)).
1402
+
1403
+
1404
+ - [x] RE-784 Audited notification reentry and 64-slot recipient dispatch ([report](research/QVM_NOTIFICATION_REENTRY.md)).
docs/research/QVM_NOTIFICATION_REENTRY.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Audited notification reentry and 64-slot recipient dispatch
2
+
3
+ RE-784. Reproduce with `python3 scripts/analyze_qvm_notification_reentry.py`; validate with `cargo xtask test-group notification-reentry`. See the [machine report](qvm-notification-reentry.json).
4
+
5
+ Twenty-four source fixtures vary single/pair paths, activity and counts-1,0,1,4,16,64 with five connection states. Tests independently enumerate state2 recipients and exact call arguments. Differential comparison checks the complete returned memory, trace and effect tuple, not only call counts. Captured recipients have no modeled memory effects, so equivalence here does not audit real callback internals. Existing notification and resolved lifecycle report consumers are regenerated by the focused group.
6
+
7
+ No original executable/full VM/native world collision or rendering runs. Supplied callback/native responses and fixture domains remain explicit; complete macOS/Linux Rust/Bevy/Solari gameplay remains open.
docs/research/README.md CHANGED
@@ -939,3 +939,6 @@ The extension collector adds five focused tests for native tail calls, command-r
939
 
940
 
941
  [RE-783: Corrected movement resumption with persistent byte and command state](QVM_EXECUTE_REENTRY.md).
 
 
 
 
939
 
940
 
941
  [RE-783: Corrected movement resumption with persistent byte and command state](QVM_EXECUTE_REENTRY.md).
942
+
943
+
944
+ [RE-784: Audited notification reentry and 64-slot recipient dispatch](QVM_NOTIFICATION_REENTRY.md).
docs/research/qvm-notification-reentry.json ADDED
@@ -0,0 +1,2095 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "6369/6439 corrected reentry;24 scaled fixtures through64 slots. Equality compares full returned memory/effects/traces with legacy on this corpus. Captured179736/180087 do not mutate memory; real callback interactions and native notifications remain open.",
3
+ "probes": [
4
+ {
5
+ "active": 0,
6
+ "count": -1,
7
+ "execution": {
8
+ "byte_writes": [],
9
+ "calls": [],
10
+ "children": [],
11
+ "return": null,
12
+ "stop": 6437,
13
+ "trace": null,
14
+ "trace_length": 17,
15
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
16
+ },
17
+ "external_writes": [],
18
+ "legacy_equal": true,
19
+ "pair": false,
20
+ "requests": [],
21
+ "states": []
22
+ },
23
+ {
24
+ "active": 1,
25
+ "count": -1,
26
+ "execution": {
27
+ "byte_writes": [],
28
+ "calls": [],
29
+ "children": [],
30
+ "return": null,
31
+ "stop": 6437,
32
+ "trace": null,
33
+ "trace_length": 32,
34
+ "trace_sha256": "8b26e2399a9454ea087b68fc8071690482ca2c86dfe69b7047c657bd8bad4893"
35
+ },
36
+ "external_writes": [],
37
+ "legacy_equal": true,
38
+ "pair": false,
39
+ "requests": [],
40
+ "states": []
41
+ },
42
+ {
43
+ "active": 0,
44
+ "count": 0,
45
+ "execution": {
46
+ "byte_writes": [],
47
+ "calls": [],
48
+ "children": [],
49
+ "return": null,
50
+ "stop": 6437,
51
+ "trace": null,
52
+ "trace_length": 17,
53
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
54
+ },
55
+ "external_writes": [],
56
+ "legacy_equal": true,
57
+ "pair": false,
58
+ "requests": [],
59
+ "states": []
60
+ },
61
+ {
62
+ "active": 1,
63
+ "count": 0,
64
+ "execution": {
65
+ "byte_writes": [],
66
+ "calls": [],
67
+ "children": [],
68
+ "return": null,
69
+ "stop": 6437,
70
+ "trace": null,
71
+ "trace_length": 32,
72
+ "trace_sha256": "8b26e2399a9454ea087b68fc8071690482ca2c86dfe69b7047c657bd8bad4893"
73
+ },
74
+ "external_writes": [],
75
+ "legacy_equal": true,
76
+ "pair": false,
77
+ "requests": [],
78
+ "states": []
79
+ },
80
+ {
81
+ "active": 0,
82
+ "count": 1,
83
+ "execution": {
84
+ "byte_writes": [],
85
+ "calls": [],
86
+ "children": [],
87
+ "return": null,
88
+ "stop": 6437,
89
+ "trace": null,
90
+ "trace_length": 17,
91
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
92
+ },
93
+ "external_writes": [],
94
+ "legacy_equal": true,
95
+ "pair": false,
96
+ "requests": [],
97
+ "states": [
98
+ 0
99
+ ]
100
+ },
101
+ {
102
+ "active": 1,
103
+ "count": 1,
104
+ "execution": {
105
+ "byte_writes": [],
106
+ "calls": [],
107
+ "children": [],
108
+ "return": null,
109
+ "stop": 6437,
110
+ "trace": null,
111
+ "trace_length": 55,
112
+ "trace_sha256": "39dbeee8c0517bb6f0c3e85933e54abd98420b5790bac128b54097233463759d"
113
+ },
114
+ "external_writes": [],
115
+ "legacy_equal": true,
116
+ "pair": false,
117
+ "requests": [],
118
+ "states": [
119
+ 0
120
+ ]
121
+ },
122
+ {
123
+ "active": 0,
124
+ "count": 4,
125
+ "execution": {
126
+ "byte_writes": [],
127
+ "calls": [],
128
+ "children": [],
129
+ "return": null,
130
+ "stop": 6437,
131
+ "trace": null,
132
+ "trace_length": 17,
133
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
134
+ },
135
+ "external_writes": [],
136
+ "legacy_equal": true,
137
+ "pair": false,
138
+ "requests": [],
139
+ "states": [
140
+ 0,
141
+ 1,
142
+ 2,
143
+ 3
144
+ ]
145
+ },
146
+ {
147
+ "active": 1,
148
+ "count": 4,
149
+ "execution": {
150
+ "byte_writes": [],
151
+ "calls": [
152
+ {
153
+ "args": {
154
+ "8": 2065760256,
155
+ "12": 34093128
156
+ },
157
+ "instruction": 6424,
158
+ "target": 179736
159
+ }
160
+ ],
161
+ "children": [
162
+ {
163
+ "call": {
164
+ "args": {
165
+ "8": 2065760256,
166
+ "12": 34093128
167
+ },
168
+ "instruction": 6424,
169
+ "target": 179736
170
+ },
171
+ "effect": {
172
+ "arguments": {
173
+ "8": 2065760256,
174
+ "12": 34093128
175
+ },
176
+ "native_effect_not_executed": true,
177
+ "target": 179736
178
+ }
179
+ }
180
+ ],
181
+ "return": null,
182
+ "stop": 6437,
183
+ "trace": null,
184
+ "trace_length": 137,
185
+ "trace_sha256": "094d24970a825e7852af05c3fe50df7fa4d56e2ccbf6810a4676c57348b9bac2"
186
+ },
187
+ "external_writes": [],
188
+ "legacy_equal": true,
189
+ "pair": false,
190
+ "requests": [
191
+ {
192
+ "arguments": {
193
+ "8": 2065760256,
194
+ "12": 34093128
195
+ },
196
+ "native_effect_not_executed": true,
197
+ "target": 179736
198
+ }
199
+ ],
200
+ "states": [
201
+ 0,
202
+ 1,
203
+ 2,
204
+ 3
205
+ ]
206
+ },
207
+ {
208
+ "active": 0,
209
+ "count": 16,
210
+ "execution": {
211
+ "byte_writes": [],
212
+ "calls": [],
213
+ "children": [],
214
+ "return": null,
215
+ "stop": 6437,
216
+ "trace": null,
217
+ "trace_length": 17,
218
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
219
+ },
220
+ "external_writes": [],
221
+ "legacy_equal": true,
222
+ "pair": false,
223
+ "requests": [],
224
+ "states": [
225
+ 0,
226
+ 1,
227
+ 2,
228
+ 3,
229
+ 4,
230
+ 0,
231
+ 1,
232
+ 2,
233
+ 3,
234
+ 4,
235
+ 0,
236
+ 1,
237
+ 2,
238
+ 3,
239
+ 4,
240
+ 0
241
+ ]
242
+ },
243
+ {
244
+ "active": 1,
245
+ "count": 16,
246
+ "execution": {
247
+ "byte_writes": [],
248
+ "calls": [
249
+ {
250
+ "args": {
251
+ "8": 2065760256,
252
+ "12": 34093128
253
+ },
254
+ "instruction": 6424,
255
+ "target": 179736
256
+ },
257
+ {
258
+ "args": {
259
+ "8": 2065760256,
260
+ "12": 34097528
261
+ },
262
+ "instruction": 6424,
263
+ "target": 179736
264
+ },
265
+ {
266
+ "args": {
267
+ "8": 2065760256,
268
+ "12": 34101928
269
+ },
270
+ "instruction": 6424,
271
+ "target": 179736
272
+ }
273
+ ],
274
+ "children": [
275
+ {
276
+ "call": {
277
+ "args": {
278
+ "8": 2065760256,
279
+ "12": 34093128
280
+ },
281
+ "instruction": 6424,
282
+ "target": 179736
283
+ },
284
+ "effect": {
285
+ "arguments": {
286
+ "8": 2065760256,
287
+ "12": 34093128
288
+ },
289
+ "native_effect_not_executed": true,
290
+ "target": 179736
291
+ }
292
+ },
293
+ {
294
+ "call": {
295
+ "args": {
296
+ "8": 2065760256,
297
+ "12": 34097528
298
+ },
299
+ "instruction": 6424,
300
+ "target": 179736
301
+ },
302
+ "effect": {
303
+ "arguments": {
304
+ "8": 2065760256,
305
+ "12": 34097528
306
+ },
307
+ "native_effect_not_executed": true,
308
+ "target": 179736
309
+ }
310
+ },
311
+ {
312
+ "call": {
313
+ "args": {
314
+ "8": 2065760256,
315
+ "12": 34101928
316
+ },
317
+ "instruction": 6424,
318
+ "target": 179736
319
+ },
320
+ "effect": {
321
+ "arguments": {
322
+ "8": 2065760256,
323
+ "12": 34101928
324
+ },
325
+ "native_effect_not_executed": true,
326
+ "target": 179736
327
+ }
328
+ }
329
+ ],
330
+ "return": null,
331
+ "stop": 6437,
332
+ "trace": null,
333
+ "trace_length": 439,
334
+ "trace_sha256": "7070c4fdf11f58c76a286e80bfe54606d75fb4c63087c6f6afaf0d47b5486f08"
335
+ },
336
+ "external_writes": [],
337
+ "legacy_equal": true,
338
+ "pair": false,
339
+ "requests": [
340
+ {
341
+ "arguments": {
342
+ "8": 2065760256,
343
+ "12": 34093128
344
+ },
345
+ "native_effect_not_executed": true,
346
+ "target": 179736
347
+ },
348
+ {
349
+ "arguments": {
350
+ "8": 2065760256,
351
+ "12": 34097528
352
+ },
353
+ "native_effect_not_executed": true,
354
+ "target": 179736
355
+ },
356
+ {
357
+ "arguments": {
358
+ "8": 2065760256,
359
+ "12": 34101928
360
+ },
361
+ "native_effect_not_executed": true,
362
+ "target": 179736
363
+ }
364
+ ],
365
+ "states": [
366
+ 0,
367
+ 1,
368
+ 2,
369
+ 3,
370
+ 4,
371
+ 0,
372
+ 1,
373
+ 2,
374
+ 3,
375
+ 4,
376
+ 0,
377
+ 1,
378
+ 2,
379
+ 3,
380
+ 4,
381
+ 0
382
+ ]
383
+ },
384
+ {
385
+ "active": 0,
386
+ "count": 64,
387
+ "execution": {
388
+ "byte_writes": [],
389
+ "calls": [],
390
+ "children": [],
391
+ "return": null,
392
+ "stop": 6437,
393
+ "trace": null,
394
+ "trace_length": 17,
395
+ "trace_sha256": "a2efcfef5671f45da0dc0b3a7de76b79deccd0cf7a0fc95046348c684e2d7624"
396
+ },
397
+ "external_writes": [],
398
+ "legacy_equal": true,
399
+ "pair": false,
400
+ "requests": [],
401
+ "states": [
402
+ 0,
403
+ 1,
404
+ 2,
405
+ 3,
406
+ 4,
407
+ 0,
408
+ 1,
409
+ 2,
410
+ 3,
411
+ 4,
412
+ 0,
413
+ 1,
414
+ 2,
415
+ 3,
416
+ 4,
417
+ 0,
418
+ 1,
419
+ 2,
420
+ 3,
421
+ 4,
422
+ 0,
423
+ 1,
424
+ 2,
425
+ 3,
426
+ 4,
427
+ 0,
428
+ 1,
429
+ 2,
430
+ 3,
431
+ 4,
432
+ 0,
433
+ 1,
434
+ 2,
435
+ 3,
436
+ 4,
437
+ 0,
438
+ 1,
439
+ 2,
440
+ 3,
441
+ 4,
442
+ 0,
443
+ 1,
444
+ 2,
445
+ 3,
446
+ 4,
447
+ 0,
448
+ 1,
449
+ 2,
450
+ 3,
451
+ 4,
452
+ 0,
453
+ 1,
454
+ 2,
455
+ 3,
456
+ 4,
457
+ 0,
458
+ 1,
459
+ 2,
460
+ 3,
461
+ 4,
462
+ 0,
463
+ 1,
464
+ 2,
465
+ 3
466
+ ]
467
+ },
468
+ {
469
+ "active": 1,
470
+ "count": 64,
471
+ "execution": {
472
+ "byte_writes": [],
473
+ "calls": [
474
+ {
475
+ "args": {
476
+ "8": 2065760256,
477
+ "12": 34093128
478
+ },
479
+ "instruction": 6424,
480
+ "target": 179736
481
+ },
482
+ {
483
+ "args": {
484
+ "8": 2065760256,
485
+ "12": 34097528
486
+ },
487
+ "instruction": 6424,
488
+ "target": 179736
489
+ },
490
+ {
491
+ "args": {
492
+ "8": 2065760256,
493
+ "12": 34101928
494
+ },
495
+ "instruction": 6424,
496
+ "target": 179736
497
+ },
498
+ {
499
+ "args": {
500
+ "8": 2065760256,
501
+ "12": 34106328
502
+ },
503
+ "instruction": 6424,
504
+ "target": 179736
505
+ },
506
+ {
507
+ "args": {
508
+ "8": 2065760256,
509
+ "12": 34110728
510
+ },
511
+ "instruction": 6424,
512
+ "target": 179736
513
+ },
514
+ {
515
+ "args": {
516
+ "8": 2065760256,
517
+ "12": 34115128
518
+ },
519
+ "instruction": 6424,
520
+ "target": 179736
521
+ },
522
+ {
523
+ "args": {
524
+ "8": 2065760256,
525
+ "12": 34119528
526
+ },
527
+ "instruction": 6424,
528
+ "target": 179736
529
+ },
530
+ {
531
+ "args": {
532
+ "8": 2065760256,
533
+ "12": 34123928
534
+ },
535
+ "instruction": 6424,
536
+ "target": 179736
537
+ },
538
+ {
539
+ "args": {
540
+ "8": 2065760256,
541
+ "12": 34128328
542
+ },
543
+ "instruction": 6424,
544
+ "target": 179736
545
+ },
546
+ {
547
+ "args": {
548
+ "8": 2065760256,
549
+ "12": 34132728
550
+ },
551
+ "instruction": 6424,
552
+ "target": 179736
553
+ },
554
+ {
555
+ "args": {
556
+ "8": 2065760256,
557
+ "12": 34137128
558
+ },
559
+ "instruction": 6424,
560
+ "target": 179736
561
+ },
562
+ {
563
+ "args": {
564
+ "8": 2065760256,
565
+ "12": 34141528
566
+ },
567
+ "instruction": 6424,
568
+ "target": 179736
569
+ },
570
+ {
571
+ "args": {
572
+ "8": 2065760256,
573
+ "12": 34145928
574
+ },
575
+ "instruction": 6424,
576
+ "target": 179736
577
+ }
578
+ ],
579
+ "children": [
580
+ {
581
+ "call": {
582
+ "args": {
583
+ "8": 2065760256,
584
+ "12": 34093128
585
+ },
586
+ "instruction": 6424,
587
+ "target": 179736
588
+ },
589
+ "effect": {
590
+ "arguments": {
591
+ "8": 2065760256,
592
+ "12": 34093128
593
+ },
594
+ "native_effect_not_executed": true,
595
+ "target": 179736
596
+ }
597
+ },
598
+ {
599
+ "call": {
600
+ "args": {
601
+ "8": 2065760256,
602
+ "12": 34097528
603
+ },
604
+ "instruction": 6424,
605
+ "target": 179736
606
+ },
607
+ "effect": {
608
+ "arguments": {
609
+ "8": 2065760256,
610
+ "12": 34097528
611
+ },
612
+ "native_effect_not_executed": true,
613
+ "target": 179736
614
+ }
615
+ },
616
+ {
617
+ "call": {
618
+ "args": {
619
+ "8": 2065760256,
620
+ "12": 34101928
621
+ },
622
+ "instruction": 6424,
623
+ "target": 179736
624
+ },
625
+ "effect": {
626
+ "arguments": {
627
+ "8": 2065760256,
628
+ "12": 34101928
629
+ },
630
+ "native_effect_not_executed": true,
631
+ "target": 179736
632
+ }
633
+ },
634
+ {
635
+ "call": {
636
+ "args": {
637
+ "8": 2065760256,
638
+ "12": 34106328
639
+ },
640
+ "instruction": 6424,
641
+ "target": 179736
642
+ },
643
+ "effect": {
644
+ "arguments": {
645
+ "8": 2065760256,
646
+ "12": 34106328
647
+ },
648
+ "native_effect_not_executed": true,
649
+ "target": 179736
650
+ }
651
+ },
652
+ {
653
+ "call": {
654
+ "args": {
655
+ "8": 2065760256,
656
+ "12": 34110728
657
+ },
658
+ "instruction": 6424,
659
+ "target": 179736
660
+ },
661
+ "effect": {
662
+ "arguments": {
663
+ "8": 2065760256,
664
+ "12": 34110728
665
+ },
666
+ "native_effect_not_executed": true,
667
+ "target": 179736
668
+ }
669
+ },
670
+ {
671
+ "call": {
672
+ "args": {
673
+ "8": 2065760256,
674
+ "12": 34115128
675
+ },
676
+ "instruction": 6424,
677
+ "target": 179736
678
+ },
679
+ "effect": {
680
+ "arguments": {
681
+ "8": 2065760256,
682
+ "12": 34115128
683
+ },
684
+ "native_effect_not_executed": true,
685
+ "target": 179736
686
+ }
687
+ },
688
+ {
689
+ "call": {
690
+ "args": {
691
+ "8": 2065760256,
692
+ "12": 34119528
693
+ },
694
+ "instruction": 6424,
695
+ "target": 179736
696
+ },
697
+ "effect": {
698
+ "arguments": {
699
+ "8": 2065760256,
700
+ "12": 34119528
701
+ },
702
+ "native_effect_not_executed": true,
703
+ "target": 179736
704
+ }
705
+ },
706
+ {
707
+ "call": {
708
+ "args": {
709
+ "8": 2065760256,
710
+ "12": 34123928
711
+ },
712
+ "instruction": 6424,
713
+ "target": 179736
714
+ },
715
+ "effect": {
716
+ "arguments": {
717
+ "8": 2065760256,
718
+ "12": 34123928
719
+ },
720
+ "native_effect_not_executed": true,
721
+ "target": 179736
722
+ }
723
+ },
724
+ {
725
+ "call": {
726
+ "args": {
727
+ "8": 2065760256,
728
+ "12": 34128328
729
+ },
730
+ "instruction": 6424,
731
+ "target": 179736
732
+ },
733
+ "effect": {
734
+ "arguments": {
735
+ "8": 2065760256,
736
+ "12": 34128328
737
+ },
738
+ "native_effect_not_executed": true,
739
+ "target": 179736
740
+ }
741
+ },
742
+ {
743
+ "call": {
744
+ "args": {
745
+ "8": 2065760256,
746
+ "12": 34132728
747
+ },
748
+ "instruction": 6424,
749
+ "target": 179736
750
+ },
751
+ "effect": {
752
+ "arguments": {
753
+ "8": 2065760256,
754
+ "12": 34132728
755
+ },
756
+ "native_effect_not_executed": true,
757
+ "target": 179736
758
+ }
759
+ },
760
+ {
761
+ "call": {
762
+ "args": {
763
+ "8": 2065760256,
764
+ "12": 34137128
765
+ },
766
+ "instruction": 6424,
767
+ "target": 179736
768
+ },
769
+ "effect": {
770
+ "arguments": {
771
+ "8": 2065760256,
772
+ "12": 34137128
773
+ },
774
+ "native_effect_not_executed": true,
775
+ "target": 179736
776
+ }
777
+ },
778
+ {
779
+ "call": {
780
+ "args": {
781
+ "8": 2065760256,
782
+ "12": 34141528
783
+ },
784
+ "instruction": 6424,
785
+ "target": 179736
786
+ },
787
+ "effect": {
788
+ "arguments": {
789
+ "8": 2065760256,
790
+ "12": 34141528
791
+ },
792
+ "native_effect_not_executed": true,
793
+ "target": 179736
794
+ }
795
+ },
796
+ {
797
+ "call": {
798
+ "args": {
799
+ "8": 2065760256,
800
+ "12": 34145928
801
+ },
802
+ "instruction": 6424,
803
+ "target": 179736
804
+ },
805
+ "effect": {
806
+ "arguments": {
807
+ "8": 2065760256,
808
+ "12": 34145928
809
+ },
810
+ "native_effect_not_executed": true,
811
+ "target": 179736
812
+ }
813
+ }
814
+ ],
815
+ "return": null,
816
+ "stop": 6437,
817
+ "trace": null,
818
+ "trace_length": 1673,
819
+ "trace_sha256": "5a99325db19308fc018c5e7d8b4d64c05efd856a9bac0fcc16091ac8bfb2379b"
820
+ },
821
+ "external_writes": [],
822
+ "legacy_equal": true,
823
+ "pair": false,
824
+ "requests": [
825
+ {
826
+ "arguments": {
827
+ "8": 2065760256,
828
+ "12": 34093128
829
+ },
830
+ "native_effect_not_executed": true,
831
+ "target": 179736
832
+ },
833
+ {
834
+ "arguments": {
835
+ "8": 2065760256,
836
+ "12": 34097528
837
+ },
838
+ "native_effect_not_executed": true,
839
+ "target": 179736
840
+ },
841
+ {
842
+ "arguments": {
843
+ "8": 2065760256,
844
+ "12": 34101928
845
+ },
846
+ "native_effect_not_executed": true,
847
+ "target": 179736
848
+ },
849
+ {
850
+ "arguments": {
851
+ "8": 2065760256,
852
+ "12": 34106328
853
+ },
854
+ "native_effect_not_executed": true,
855
+ "target": 179736
856
+ },
857
+ {
858
+ "arguments": {
859
+ "8": 2065760256,
860
+ "12": 34110728
861
+ },
862
+ "native_effect_not_executed": true,
863
+ "target": 179736
864
+ },
865
+ {
866
+ "arguments": {
867
+ "8": 2065760256,
868
+ "12": 34115128
869
+ },
870
+ "native_effect_not_executed": true,
871
+ "target": 179736
872
+ },
873
+ {
874
+ "arguments": {
875
+ "8": 2065760256,
876
+ "12": 34119528
877
+ },
878
+ "native_effect_not_executed": true,
879
+ "target": 179736
880
+ },
881
+ {
882
+ "arguments": {
883
+ "8": 2065760256,
884
+ "12": 34123928
885
+ },
886
+ "native_effect_not_executed": true,
887
+ "target": 179736
888
+ },
889
+ {
890
+ "arguments": {
891
+ "8": 2065760256,
892
+ "12": 34128328
893
+ },
894
+ "native_effect_not_executed": true,
895
+ "target": 179736
896
+ },
897
+ {
898
+ "arguments": {
899
+ "8": 2065760256,
900
+ "12": 34132728
901
+ },
902
+ "native_effect_not_executed": true,
903
+ "target": 179736
904
+ },
905
+ {
906
+ "arguments": {
907
+ "8": 2065760256,
908
+ "12": 34137128
909
+ },
910
+ "native_effect_not_executed": true,
911
+ "target": 179736
912
+ },
913
+ {
914
+ "arguments": {
915
+ "8": 2065760256,
916
+ "12": 34141528
917
+ },
918
+ "native_effect_not_executed": true,
919
+ "target": 179736
920
+ },
921
+ {
922
+ "arguments": {
923
+ "8": 2065760256,
924
+ "12": 34145928
925
+ },
926
+ "native_effect_not_executed": true,
927
+ "target": 179736
928
+ }
929
+ ],
930
+ "states": [
931
+ 0,
932
+ 1,
933
+ 2,
934
+ 3,
935
+ 4,
936
+ 0,
937
+ 1,
938
+ 2,
939
+ 3,
940
+ 4,
941
+ 0,
942
+ 1,
943
+ 2,
944
+ 3,
945
+ 4,
946
+ 0,
947
+ 1,
948
+ 2,
949
+ 3,
950
+ 4,
951
+ 0,
952
+ 1,
953
+ 2,
954
+ 3,
955
+ 4,
956
+ 0,
957
+ 1,
958
+ 2,
959
+ 3,
960
+ 4,
961
+ 0,
962
+ 1,
963
+ 2,
964
+ 3,
965
+ 4,
966
+ 0,
967
+ 1,
968
+ 2,
969
+ 3,
970
+ 4,
971
+ 0,
972
+ 1,
973
+ 2,
974
+ 3,
975
+ 4,
976
+ 0,
977
+ 1,
978
+ 2,
979
+ 3,
980
+ 4,
981
+ 0,
982
+ 1,
983
+ 2,
984
+ 3,
985
+ 4,
986
+ 0,
987
+ 1,
988
+ 2,
989
+ 3,
990
+ 4,
991
+ 0,
992
+ 1,
993
+ 2,
994
+ 3
995
+ ]
996
+ },
997
+ {
998
+ "active": 0,
999
+ "count": -1,
1000
+ "execution": {
1001
+ "byte_writes": [],
1002
+ "calls": [],
1003
+ "children": [],
1004
+ "return": null,
1005
+ "stop": 6532,
1006
+ "trace": null,
1007
+ "trace_length": 21,
1008
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1009
+ },
1010
+ "external_writes": [],
1011
+ "legacy_equal": true,
1012
+ "pair": true,
1013
+ "requests": [],
1014
+ "states": []
1015
+ },
1016
+ {
1017
+ "active": 1,
1018
+ "count": -1,
1019
+ "execution": {
1020
+ "byte_writes": [],
1021
+ "calls": [],
1022
+ "children": [],
1023
+ "return": null,
1024
+ "stop": 6532,
1025
+ "trace": null,
1026
+ "trace_length": 54,
1027
+ "trace_sha256": "3f0db83f288bf0944c48182f4895664fa5677a12fdafff4fdef1067a0cc6a2d0"
1028
+ },
1029
+ "external_writes": [],
1030
+ "legacy_equal": true,
1031
+ "pair": true,
1032
+ "requests": [],
1033
+ "states": []
1034
+ },
1035
+ {
1036
+ "active": 0,
1037
+ "count": 0,
1038
+ "execution": {
1039
+ "byte_writes": [],
1040
+ "calls": [],
1041
+ "children": [],
1042
+ "return": null,
1043
+ "stop": 6532,
1044
+ "trace": null,
1045
+ "trace_length": 21,
1046
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1047
+ },
1048
+ "external_writes": [],
1049
+ "legacy_equal": true,
1050
+ "pair": true,
1051
+ "requests": [],
1052
+ "states": []
1053
+ },
1054
+ {
1055
+ "active": 1,
1056
+ "count": 0,
1057
+ "execution": {
1058
+ "byte_writes": [],
1059
+ "calls": [],
1060
+ "children": [],
1061
+ "return": null,
1062
+ "stop": 6532,
1063
+ "trace": null,
1064
+ "trace_length": 54,
1065
+ "trace_sha256": "3f0db83f288bf0944c48182f4895664fa5677a12fdafff4fdef1067a0cc6a2d0"
1066
+ },
1067
+ "external_writes": [],
1068
+ "legacy_equal": true,
1069
+ "pair": true,
1070
+ "requests": [],
1071
+ "states": []
1072
+ },
1073
+ {
1074
+ "active": 0,
1075
+ "count": 1,
1076
+ "execution": {
1077
+ "byte_writes": [],
1078
+ "calls": [],
1079
+ "children": [],
1080
+ "return": null,
1081
+ "stop": 6532,
1082
+ "trace": null,
1083
+ "trace_length": 21,
1084
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1085
+ },
1086
+ "external_writes": [],
1087
+ "legacy_equal": true,
1088
+ "pair": true,
1089
+ "requests": [],
1090
+ "states": [
1091
+ 0
1092
+ ]
1093
+ },
1094
+ {
1095
+ "active": 1,
1096
+ "count": 1,
1097
+ "execution": {
1098
+ "byte_writes": [],
1099
+ "calls": [],
1100
+ "children": [],
1101
+ "return": null,
1102
+ "stop": 6532,
1103
+ "trace": null,
1104
+ "trace_length": 77,
1105
+ "trace_sha256": "9be7778b5a2024df781f65be2e044c98706e058954782ceb36bd40a1defb4e4f"
1106
+ },
1107
+ "external_writes": [],
1108
+ "legacy_equal": true,
1109
+ "pair": true,
1110
+ "requests": [],
1111
+ "states": [
1112
+ 0
1113
+ ]
1114
+ },
1115
+ {
1116
+ "active": 0,
1117
+ "count": 4,
1118
+ "execution": {
1119
+ "byte_writes": [],
1120
+ "calls": [],
1121
+ "children": [],
1122
+ "return": null,
1123
+ "stop": 6532,
1124
+ "trace": null,
1125
+ "trace_length": 21,
1126
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1127
+ },
1128
+ "external_writes": [],
1129
+ "legacy_equal": true,
1130
+ "pair": true,
1131
+ "requests": [],
1132
+ "states": [
1133
+ 0,
1134
+ 1,
1135
+ 2,
1136
+ 3
1137
+ ]
1138
+ },
1139
+ {
1140
+ "active": 1,
1141
+ "count": 4,
1142
+ "execution": {
1143
+ "byte_writes": [],
1144
+ "calls": [
1145
+ {
1146
+ "args": {
1147
+ "8": 2065760256,
1148
+ "12": 2065825792,
1149
+ "16": 34093128
1150
+ },
1151
+ "instruction": 6519,
1152
+ "target": 180087
1153
+ }
1154
+ ],
1155
+ "children": [
1156
+ {
1157
+ "call": {
1158
+ "args": {
1159
+ "8": 2065760256,
1160
+ "12": 2065825792,
1161
+ "16": 34093128
1162
+ },
1163
+ "instruction": 6519,
1164
+ "target": 180087
1165
+ },
1166
+ "effect": {
1167
+ "arguments": {
1168
+ "8": 2065760256,
1169
+ "12": 2065825792,
1170
+ "16": 34093128
1171
+ },
1172
+ "native_effect_not_executed": true,
1173
+ "target": 180087
1174
+ }
1175
+ }
1176
+ ],
1177
+ "return": null,
1178
+ "stop": 6532,
1179
+ "trace": null,
1180
+ "trace_length": 162,
1181
+ "trace_sha256": "c1dbf9a020799d19724cd5bb4b9a09fb6000113de62448f2c235c91b0cc73d26"
1182
+ },
1183
+ "external_writes": [],
1184
+ "legacy_equal": true,
1185
+ "pair": true,
1186
+ "requests": [
1187
+ {
1188
+ "arguments": {
1189
+ "8": 2065760256,
1190
+ "12": 2065825792,
1191
+ "16": 34093128
1192
+ },
1193
+ "native_effect_not_executed": true,
1194
+ "target": 180087
1195
+ }
1196
+ ],
1197
+ "states": [
1198
+ 0,
1199
+ 1,
1200
+ 2,
1201
+ 3
1202
+ ]
1203
+ },
1204
+ {
1205
+ "active": 0,
1206
+ "count": 16,
1207
+ "execution": {
1208
+ "byte_writes": [],
1209
+ "calls": [],
1210
+ "children": [],
1211
+ "return": null,
1212
+ "stop": 6532,
1213
+ "trace": null,
1214
+ "trace_length": 21,
1215
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1216
+ },
1217
+ "external_writes": [],
1218
+ "legacy_equal": true,
1219
+ "pair": true,
1220
+ "requests": [],
1221
+ "states": [
1222
+ 0,
1223
+ 1,
1224
+ 2,
1225
+ 3,
1226
+ 4,
1227
+ 0,
1228
+ 1,
1229
+ 2,
1230
+ 3,
1231
+ 4,
1232
+ 0,
1233
+ 1,
1234
+ 2,
1235
+ 3,
1236
+ 4,
1237
+ 0
1238
+ ]
1239
+ },
1240
+ {
1241
+ "active": 1,
1242
+ "count": 16,
1243
+ "execution": {
1244
+ "byte_writes": [],
1245
+ "calls": [
1246
+ {
1247
+ "args": {
1248
+ "8": 2065760256,
1249
+ "12": 2065825792,
1250
+ "16": 34093128
1251
+ },
1252
+ "instruction": 6519,
1253
+ "target": 180087
1254
+ },
1255
+ {
1256
+ "args": {
1257
+ "8": 2065760256,
1258
+ "12": 2065825792,
1259
+ "16": 34097528
1260
+ },
1261
+ "instruction": 6519,
1262
+ "target": 180087
1263
+ },
1264
+ {
1265
+ "args": {
1266
+ "8": 2065760256,
1267
+ "12": 2065825792,
1268
+ "16": 34101928
1269
+ },
1270
+ "instruction": 6519,
1271
+ "target": 180087
1272
+ }
1273
+ ],
1274
+ "children": [
1275
+ {
1276
+ "call": {
1277
+ "args": {
1278
+ "8": 2065760256,
1279
+ "12": 2065825792,
1280
+ "16": 34093128
1281
+ },
1282
+ "instruction": 6519,
1283
+ "target": 180087
1284
+ },
1285
+ "effect": {
1286
+ "arguments": {
1287
+ "8": 2065760256,
1288
+ "12": 2065825792,
1289
+ "16": 34093128
1290
+ },
1291
+ "native_effect_not_executed": true,
1292
+ "target": 180087
1293
+ }
1294
+ },
1295
+ {
1296
+ "call": {
1297
+ "args": {
1298
+ "8": 2065760256,
1299
+ "12": 2065825792,
1300
+ "16": 34097528
1301
+ },
1302
+ "instruction": 6519,
1303
+ "target": 180087
1304
+ },
1305
+ "effect": {
1306
+ "arguments": {
1307
+ "8": 2065760256,
1308
+ "12": 2065825792,
1309
+ "16": 34097528
1310
+ },
1311
+ "native_effect_not_executed": true,
1312
+ "target": 180087
1313
+ }
1314
+ },
1315
+ {
1316
+ "call": {
1317
+ "args": {
1318
+ "8": 2065760256,
1319
+ "12": 2065825792,
1320
+ "16": 34101928
1321
+ },
1322
+ "instruction": 6519,
1323
+ "target": 180087
1324
+ },
1325
+ "effect": {
1326
+ "arguments": {
1327
+ "8": 2065760256,
1328
+ "12": 2065825792,
1329
+ "16": 34101928
1330
+ },
1331
+ "native_effect_not_executed": true,
1332
+ "target": 180087
1333
+ }
1334
+ }
1335
+ ],
1336
+ "return": null,
1337
+ "stop": 6532,
1338
+ "trace": null,
1339
+ "trace_length": 470,
1340
+ "trace_sha256": "ca8030b4c95b7b6625bbb16fe05f7e66e441ce5e52888bbd7c5d6a53c3150b4d"
1341
+ },
1342
+ "external_writes": [],
1343
+ "legacy_equal": true,
1344
+ "pair": true,
1345
+ "requests": [
1346
+ {
1347
+ "arguments": {
1348
+ "8": 2065760256,
1349
+ "12": 2065825792,
1350
+ "16": 34093128
1351
+ },
1352
+ "native_effect_not_executed": true,
1353
+ "target": 180087
1354
+ },
1355
+ {
1356
+ "arguments": {
1357
+ "8": 2065760256,
1358
+ "12": 2065825792,
1359
+ "16": 34097528
1360
+ },
1361
+ "native_effect_not_executed": true,
1362
+ "target": 180087
1363
+ },
1364
+ {
1365
+ "arguments": {
1366
+ "8": 2065760256,
1367
+ "12": 2065825792,
1368
+ "16": 34101928
1369
+ },
1370
+ "native_effect_not_executed": true,
1371
+ "target": 180087
1372
+ }
1373
+ ],
1374
+ "states": [
1375
+ 0,
1376
+ 1,
1377
+ 2,
1378
+ 3,
1379
+ 4,
1380
+ 0,
1381
+ 1,
1382
+ 2,
1383
+ 3,
1384
+ 4,
1385
+ 0,
1386
+ 1,
1387
+ 2,
1388
+ 3,
1389
+ 4,
1390
+ 0
1391
+ ]
1392
+ },
1393
+ {
1394
+ "active": 0,
1395
+ "count": 64,
1396
+ "execution": {
1397
+ "byte_writes": [],
1398
+ "calls": [],
1399
+ "children": [],
1400
+ "return": null,
1401
+ "stop": 6532,
1402
+ "trace": null,
1403
+ "trace_length": 21,
1404
+ "trace_sha256": "6a8472bd1dc8c2ee64106659bd8de03371219cddd25cae0fcbf3177f8c6c8b01"
1405
+ },
1406
+ "external_writes": [],
1407
+ "legacy_equal": true,
1408
+ "pair": true,
1409
+ "requests": [],
1410
+ "states": [
1411
+ 0,
1412
+ 1,
1413
+ 2,
1414
+ 3,
1415
+ 4,
1416
+ 0,
1417
+ 1,
1418
+ 2,
1419
+ 3,
1420
+ 4,
1421
+ 0,
1422
+ 1,
1423
+ 2,
1424
+ 3,
1425
+ 4,
1426
+ 0,
1427
+ 1,
1428
+ 2,
1429
+ 3,
1430
+ 4,
1431
+ 0,
1432
+ 1,
1433
+ 2,
1434
+ 3,
1435
+ 4,
1436
+ 0,
1437
+ 1,
1438
+ 2,
1439
+ 3,
1440
+ 4,
1441
+ 0,
1442
+ 1,
1443
+ 2,
1444
+ 3,
1445
+ 4,
1446
+ 0,
1447
+ 1,
1448
+ 2,
1449
+ 3,
1450
+ 4,
1451
+ 0,
1452
+ 1,
1453
+ 2,
1454
+ 3,
1455
+ 4,
1456
+ 0,
1457
+ 1,
1458
+ 2,
1459
+ 3,
1460
+ 4,
1461
+ 0,
1462
+ 1,
1463
+ 2,
1464
+ 3,
1465
+ 4,
1466
+ 0,
1467
+ 1,
1468
+ 2,
1469
+ 3,
1470
+ 4,
1471
+ 0,
1472
+ 1,
1473
+ 2,
1474
+ 3
1475
+ ]
1476
+ },
1477
+ {
1478
+ "active": 1,
1479
+ "count": 64,
1480
+ "execution": {
1481
+ "byte_writes": [],
1482
+ "calls": [
1483
+ {
1484
+ "args": {
1485
+ "8": 2065760256,
1486
+ "12": 2065825792,
1487
+ "16": 34093128
1488
+ },
1489
+ "instruction": 6519,
1490
+ "target": 180087
1491
+ },
1492
+ {
1493
+ "args": {
1494
+ "8": 2065760256,
1495
+ "12": 2065825792,
1496
+ "16": 34097528
1497
+ },
1498
+ "instruction": 6519,
1499
+ "target": 180087
1500
+ },
1501
+ {
1502
+ "args": {
1503
+ "8": 2065760256,
1504
+ "12": 2065825792,
1505
+ "16": 34101928
1506
+ },
1507
+ "instruction": 6519,
1508
+ "target": 180087
1509
+ },
1510
+ {
1511
+ "args": {
1512
+ "8": 2065760256,
1513
+ "12": 2065825792,
1514
+ "16": 34106328
1515
+ },
1516
+ "instruction": 6519,
1517
+ "target": 180087
1518
+ },
1519
+ {
1520
+ "args": {
1521
+ "8": 2065760256,
1522
+ "12": 2065825792,
1523
+ "16": 34110728
1524
+ },
1525
+ "instruction": 6519,
1526
+ "target": 180087
1527
+ },
1528
+ {
1529
+ "args": {
1530
+ "8": 2065760256,
1531
+ "12": 2065825792,
1532
+ "16": 34115128
1533
+ },
1534
+ "instruction": 6519,
1535
+ "target": 180087
1536
+ },
1537
+ {
1538
+ "args": {
1539
+ "8": 2065760256,
1540
+ "12": 2065825792,
1541
+ "16": 34119528
1542
+ },
1543
+ "instruction": 6519,
1544
+ "target": 180087
1545
+ },
1546
+ {
1547
+ "args": {
1548
+ "8": 2065760256,
1549
+ "12": 2065825792,
1550
+ "16": 34123928
1551
+ },
1552
+ "instruction": 6519,
1553
+ "target": 180087
1554
+ },
1555
+ {
1556
+ "args": {
1557
+ "8": 2065760256,
1558
+ "12": 2065825792,
1559
+ "16": 34128328
1560
+ },
1561
+ "instruction": 6519,
1562
+ "target": 180087
1563
+ },
1564
+ {
1565
+ "args": {
1566
+ "8": 2065760256,
1567
+ "12": 2065825792,
1568
+ "16": 34132728
1569
+ },
1570
+ "instruction": 6519,
1571
+ "target": 180087
1572
+ },
1573
+ {
1574
+ "args": {
1575
+ "8": 2065760256,
1576
+ "12": 2065825792,
1577
+ "16": 34137128
1578
+ },
1579
+ "instruction": 6519,
1580
+ "target": 180087
1581
+ },
1582
+ {
1583
+ "args": {
1584
+ "8": 2065760256,
1585
+ "12": 2065825792,
1586
+ "16": 34141528
1587
+ },
1588
+ "instruction": 6519,
1589
+ "target": 180087
1590
+ },
1591
+ {
1592
+ "args": {
1593
+ "8": 2065760256,
1594
+ "12": 2065825792,
1595
+ "16": 34145928
1596
+ },
1597
+ "instruction": 6519,
1598
+ "target": 180087
1599
+ }
1600
+ ],
1601
+ "children": [
1602
+ {
1603
+ "call": {
1604
+ "args": {
1605
+ "8": 2065760256,
1606
+ "12": 2065825792,
1607
+ "16": 34093128
1608
+ },
1609
+ "instruction": 6519,
1610
+ "target": 180087
1611
+ },
1612
+ "effect": {
1613
+ "arguments": {
1614
+ "8": 2065760256,
1615
+ "12": 2065825792,
1616
+ "16": 34093128
1617
+ },
1618
+ "native_effect_not_executed": true,
1619
+ "target": 180087
1620
+ }
1621
+ },
1622
+ {
1623
+ "call": {
1624
+ "args": {
1625
+ "8": 2065760256,
1626
+ "12": 2065825792,
1627
+ "16": 34097528
1628
+ },
1629
+ "instruction": 6519,
1630
+ "target": 180087
1631
+ },
1632
+ "effect": {
1633
+ "arguments": {
1634
+ "8": 2065760256,
1635
+ "12": 2065825792,
1636
+ "16": 34097528
1637
+ },
1638
+ "native_effect_not_executed": true,
1639
+ "target": 180087
1640
+ }
1641
+ },
1642
+ {
1643
+ "call": {
1644
+ "args": {
1645
+ "8": 2065760256,
1646
+ "12": 2065825792,
1647
+ "16": 34101928
1648
+ },
1649
+ "instruction": 6519,
1650
+ "target": 180087
1651
+ },
1652
+ "effect": {
1653
+ "arguments": {
1654
+ "8": 2065760256,
1655
+ "12": 2065825792,
1656
+ "16": 34101928
1657
+ },
1658
+ "native_effect_not_executed": true,
1659
+ "target": 180087
1660
+ }
1661
+ },
1662
+ {
1663
+ "call": {
1664
+ "args": {
1665
+ "8": 2065760256,
1666
+ "12": 2065825792,
1667
+ "16": 34106328
1668
+ },
1669
+ "instruction": 6519,
1670
+ "target": 180087
1671
+ },
1672
+ "effect": {
1673
+ "arguments": {
1674
+ "8": 2065760256,
1675
+ "12": 2065825792,
1676
+ "16": 34106328
1677
+ },
1678
+ "native_effect_not_executed": true,
1679
+ "target": 180087
1680
+ }
1681
+ },
1682
+ {
1683
+ "call": {
1684
+ "args": {
1685
+ "8": 2065760256,
1686
+ "12": 2065825792,
1687
+ "16": 34110728
1688
+ },
1689
+ "instruction": 6519,
1690
+ "target": 180087
1691
+ },
1692
+ "effect": {
1693
+ "arguments": {
1694
+ "8": 2065760256,
1695
+ "12": 2065825792,
1696
+ "16": 34110728
1697
+ },
1698
+ "native_effect_not_executed": true,
1699
+ "target": 180087
1700
+ }
1701
+ },
1702
+ {
1703
+ "call": {
1704
+ "args": {
1705
+ "8": 2065760256,
1706
+ "12": 2065825792,
1707
+ "16": 34115128
1708
+ },
1709
+ "instruction": 6519,
1710
+ "target": 180087
1711
+ },
1712
+ "effect": {
1713
+ "arguments": {
1714
+ "8": 2065760256,
1715
+ "12": 2065825792,
1716
+ "16": 34115128
1717
+ },
1718
+ "native_effect_not_executed": true,
1719
+ "target": 180087
1720
+ }
1721
+ },
1722
+ {
1723
+ "call": {
1724
+ "args": {
1725
+ "8": 2065760256,
1726
+ "12": 2065825792,
1727
+ "16": 34119528
1728
+ },
1729
+ "instruction": 6519,
1730
+ "target": 180087
1731
+ },
1732
+ "effect": {
1733
+ "arguments": {
1734
+ "8": 2065760256,
1735
+ "12": 2065825792,
1736
+ "16": 34119528
1737
+ },
1738
+ "native_effect_not_executed": true,
1739
+ "target": 180087
1740
+ }
1741
+ },
1742
+ {
1743
+ "call": {
1744
+ "args": {
1745
+ "8": 2065760256,
1746
+ "12": 2065825792,
1747
+ "16": 34123928
1748
+ },
1749
+ "instruction": 6519,
1750
+ "target": 180087
1751
+ },
1752
+ "effect": {
1753
+ "arguments": {
1754
+ "8": 2065760256,
1755
+ "12": 2065825792,
1756
+ "16": 34123928
1757
+ },
1758
+ "native_effect_not_executed": true,
1759
+ "target": 180087
1760
+ }
1761
+ },
1762
+ {
1763
+ "call": {
1764
+ "args": {
1765
+ "8": 2065760256,
1766
+ "12": 2065825792,
1767
+ "16": 34128328
1768
+ },
1769
+ "instruction": 6519,
1770
+ "target": 180087
1771
+ },
1772
+ "effect": {
1773
+ "arguments": {
1774
+ "8": 2065760256,
1775
+ "12": 2065825792,
1776
+ "16": 34128328
1777
+ },
1778
+ "native_effect_not_executed": true,
1779
+ "target": 180087
1780
+ }
1781
+ },
1782
+ {
1783
+ "call": {
1784
+ "args": {
1785
+ "8": 2065760256,
1786
+ "12": 2065825792,
1787
+ "16": 34132728
1788
+ },
1789
+ "instruction": 6519,
1790
+ "target": 180087
1791
+ },
1792
+ "effect": {
1793
+ "arguments": {
1794
+ "8": 2065760256,
1795
+ "12": 2065825792,
1796
+ "16": 34132728
1797
+ },
1798
+ "native_effect_not_executed": true,
1799
+ "target": 180087
1800
+ }
1801
+ },
1802
+ {
1803
+ "call": {
1804
+ "args": {
1805
+ "8": 2065760256,
1806
+ "12": 2065825792,
1807
+ "16": 34137128
1808
+ },
1809
+ "instruction": 6519,
1810
+ "target": 180087
1811
+ },
1812
+ "effect": {
1813
+ "arguments": {
1814
+ "8": 2065760256,
1815
+ "12": 2065825792,
1816
+ "16": 34137128
1817
+ },
1818
+ "native_effect_not_executed": true,
1819
+ "target": 180087
1820
+ }
1821
+ },
1822
+ {
1823
+ "call": {
1824
+ "args": {
1825
+ "8": 2065760256,
1826
+ "12": 2065825792,
1827
+ "16": 34141528
1828
+ },
1829
+ "instruction": 6519,
1830
+ "target": 180087
1831
+ },
1832
+ "effect": {
1833
+ "arguments": {
1834
+ "8": 2065760256,
1835
+ "12": 2065825792,
1836
+ "16": 34141528
1837
+ },
1838
+ "native_effect_not_executed": true,
1839
+ "target": 180087
1840
+ }
1841
+ },
1842
+ {
1843
+ "call": {
1844
+ "args": {
1845
+ "8": 2065760256,
1846
+ "12": 2065825792,
1847
+ "16": 34145928
1848
+ },
1849
+ "instruction": 6519,
1850
+ "target": 180087
1851
+ },
1852
+ "effect": {
1853
+ "arguments": {
1854
+ "8": 2065760256,
1855
+ "12": 2065825792,
1856
+ "16": 34145928
1857
+ },
1858
+ "native_effect_not_executed": true,
1859
+ "target": 180087
1860
+ }
1861
+ }
1862
+ ],
1863
+ "return": null,
1864
+ "stop": 6532,
1865
+ "trace": null,
1866
+ "trace_length": 1734,
1867
+ "trace_sha256": "be263b9fc324701709e791e498f692c6e56037919bb7a85552b2900cb9702828"
1868
+ },
1869
+ "external_writes": [],
1870
+ "legacy_equal": true,
1871
+ "pair": true,
1872
+ "requests": [
1873
+ {
1874
+ "arguments": {
1875
+ "8": 2065760256,
1876
+ "12": 2065825792,
1877
+ "16": 34093128
1878
+ },
1879
+ "native_effect_not_executed": true,
1880
+ "target": 180087
1881
+ },
1882
+ {
1883
+ "arguments": {
1884
+ "8": 2065760256,
1885
+ "12": 2065825792,
1886
+ "16": 34097528
1887
+ },
1888
+ "native_effect_not_executed": true,
1889
+ "target": 180087
1890
+ },
1891
+ {
1892
+ "arguments": {
1893
+ "8": 2065760256,
1894
+ "12": 2065825792,
1895
+ "16": 34101928
1896
+ },
1897
+ "native_effect_not_executed": true,
1898
+ "target": 180087
1899
+ },
1900
+ {
1901
+ "arguments": {
1902
+ "8": 2065760256,
1903
+ "12": 2065825792,
1904
+ "16": 34106328
1905
+ },
1906
+ "native_effect_not_executed": true,
1907
+ "target": 180087
1908
+ },
1909
+ {
1910
+ "arguments": {
1911
+ "8": 2065760256,
1912
+ "12": 2065825792,
1913
+ "16": 34110728
1914
+ },
1915
+ "native_effect_not_executed": true,
1916
+ "target": 180087
1917
+ },
1918
+ {
1919
+ "arguments": {
1920
+ "8": 2065760256,
1921
+ "12": 2065825792,
1922
+ "16": 34115128
1923
+ },
1924
+ "native_effect_not_executed": true,
1925
+ "target": 180087
1926
+ },
1927
+ {
1928
+ "arguments": {
1929
+ "8": 2065760256,
1930
+ "12": 2065825792,
1931
+ "16": 34119528
1932
+ },
1933
+ "native_effect_not_executed": true,
1934
+ "target": 180087
1935
+ },
1936
+ {
1937
+ "arguments": {
1938
+ "8": 2065760256,
1939
+ "12": 2065825792,
1940
+ "16": 34123928
1941
+ },
1942
+ "native_effect_not_executed": true,
1943
+ "target": 180087
1944
+ },
1945
+ {
1946
+ "arguments": {
1947
+ "8": 2065760256,
1948
+ "12": 2065825792,
1949
+ "16": 34128328
1950
+ },
1951
+ "native_effect_not_executed": true,
1952
+ "target": 180087
1953
+ },
1954
+ {
1955
+ "arguments": {
1956
+ "8": 2065760256,
1957
+ "12": 2065825792,
1958
+ "16": 34132728
1959
+ },
1960
+ "native_effect_not_executed": true,
1961
+ "target": 180087
1962
+ },
1963
+ {
1964
+ "arguments": {
1965
+ "8": 2065760256,
1966
+ "12": 2065825792,
1967
+ "16": 34137128
1968
+ },
1969
+ "native_effect_not_executed": true,
1970
+ "target": 180087
1971
+ },
1972
+ {
1973
+ "arguments": {
1974
+ "8": 2065760256,
1975
+ "12": 2065825792,
1976
+ "16": 34141528
1977
+ },
1978
+ "native_effect_not_executed": true,
1979
+ "target": 180087
1980
+ },
1981
+ {
1982
+ "arguments": {
1983
+ "8": 2065760256,
1984
+ "12": 2065825792,
1985
+ "16": 34145928
1986
+ },
1987
+ "native_effect_not_executed": true,
1988
+ "target": 180087
1989
+ }
1990
+ ],
1991
+ "states": [
1992
+ 0,
1993
+ 1,
1994
+ 2,
1995
+ 3,
1996
+ 4,
1997
+ 0,
1998
+ 1,
1999
+ 2,
2000
+ 3,
2001
+ 4,
2002
+ 0,
2003
+ 1,
2004
+ 2,
2005
+ 3,
2006
+ 4,
2007
+ 0,
2008
+ 1,
2009
+ 2,
2010
+ 3,
2011
+ 4,
2012
+ 0,
2013
+ 1,
2014
+ 2,
2015
+ 3,
2016
+ 4,
2017
+ 0,
2018
+ 1,
2019
+ 2,
2020
+ 3,
2021
+ 4,
2022
+ 0,
2023
+ 1,
2024
+ 2,
2025
+ 3,
2026
+ 4,
2027
+ 0,
2028
+ 1,
2029
+ 2,
2030
+ 3,
2031
+ 4,
2032
+ 0,
2033
+ 1,
2034
+ 2,
2035
+ 3,
2036
+ 4,
2037
+ 0,
2038
+ 1,
2039
+ 2,
2040
+ 3,
2041
+ 4,
2042
+ 0,
2043
+ 1,
2044
+ 2,
2045
+ 3,
2046
+ 4,
2047
+ 0,
2048
+ 1,
2049
+ 2,
2050
+ 3,
2051
+ 4,
2052
+ 0,
2053
+ 1,
2054
+ 2,
2055
+ 3
2056
+ ]
2057
+ }
2058
+ ],
2059
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
2060
+ "source": {
2061
+ "archive": "zUrT43_qvm.pk3",
2062
+ "archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
2063
+ "member": {
2064
+ "bytes": 983300,
2065
+ "comment_hex": "",
2066
+ "compressed_bytes": 246560,
2067
+ "compression": 8,
2068
+ "crc32": "98ea1768",
2069
+ "create_system": 0,
2070
+ "create_version": 63,
2071
+ "date_time": [
2072
+ 2018,
2073
+ 6,
2074
+ 18,
2075
+ 22,
2076
+ 11,
2077
+ 50
2078
+ ],
2079
+ "directory": false,
2080
+ "entry_index": 2,
2081
+ "external_attr": 32,
2082
+ "extra_hex": "0a0020000000000001001800d1e24e974007d40116dcbf962f1fd20116dcbf962f1fd201",
2083
+ "extract_version": 20,
2084
+ "flags": 0,
2085
+ "header_offset": 221309,
2086
+ "internal_attr": 0,
2087
+ "occurrence": 0,
2088
+ "output": "assets/extracted/zUrT43_qvm.pk3/members/000002/vm/qagame.qvm",
2089
+ "path": "vm/qagame.qvm",
2090
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
2091
+ "type": "member",
2092
+ "volume": 0
2093
+ }
2094
+ }
2095
+ }
docs/research/qvm-resumer-audit.json CHANGED
@@ -8395,7 +8395,7 @@
8395
  "line": 16,
8396
  "literal_range": null,
8397
  "path": "scripts/qvm_notification_support.py",
8398
- "repeated_calls_opt_in": false
8399
  },
8400
  {
8401
  "backward_conditional_branches": [],
@@ -8920,7 +8920,7 @@
8920
  "summary": {
8921
  "call_expressions": 179,
8922
  "files": 140,
8923
- "legacy_expressions": 171,
8924
  "nonliteral_ranges": 20
8925
  }
8926
  }
 
8395
  "line": 16,
8396
  "literal_range": null,
8397
  "path": "scripts/qvm_notification_support.py",
8398
+ "repeated_calls_opt_in": true
8399
  },
8400
  {
8401
  "backward_conditional_branches": [],
 
8920
  "summary": {
8921
  "call_expressions": 179,
8922
  "files": 140,
8923
+ "legacy_expressions": 170,
8924
  "nonliteral_ranges": 20
8925
  }
8926
  }
scripts/analyze_qvm_notification_reentry.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Reentry migration with 64-slot recipient order and gate witnesses."""
3
+ from pathlib import Path
4
+ import qvm_notification_support as notification
5
+ from qvm_research_support import source
6
+ from qvm_resumer_diff_support import compare
7
+ from analyze_qvm import write_json
8
+
9
+ def main():
10
+ q,raw,h,ins=source();rows=[]
11
+ for pair in [False,True]:
12
+ for n in [-1,0,1,4,16,64]:
13
+ for active in [0,1]:
14
+ states=[(j%5) for j in range(max(0,n))]
15
+ def invoke():
16
+ m=notification.seed(raw,h,count=n,active=active)
17
+ for j,s in enumerate(states):m[notification.CPOOL+6336*j+468]=s
18
+ args={8:notification.TARGET}
19
+ if pair:args[12]=notification.ATTACKER
20
+ return notification.notify(ins,m,args,pair)
21
+ old,new,equal=compare(notification,invoke);rows.append({'pair':pair,'count':n,'active':active,'states':states,'legacy_equal':equal,'requests':new[2]['requests'],'external_writes':new[2]['external_writes'],'execution':new[2]['execution']})
22
+ write_json(Path('docs/research/qvm-notification-reentry.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'6369/6439 corrected reentry;24 scaled fixtures through64 slots. Equality compares full returned memory/effects/traces with legacy on this corpus. Captured179736/180087 do not mutate memory; real callback interactions and native notifications remain open.'})
23
+ if __name__=='__main__':main()
scripts/qvm_notification_support.py CHANGED
@@ -13,6 +13,6 @@ def seed(raw,h,**a):
13
  def notify(ins,m,args,pair=False):
14
  frame=32 if pair else 24;start,end=(6440,6532) if pair else (6370,6437)
15
  for o,v in args.items():m[N+frame+o]=v
16
- initial=dict(m);requests=[];m,e=resume(ins,start,end,m,N,handlers={179736:captured(179736,requests),180087:captured(180087,requests)})
17
  writes=[{'address':a,'before':initial.get(a),'after':v} for a,v in sorted(m.items()) if initial.get(a)!=v and not N<=a<N+80]
18
  return m,0,{'arguments':args,'requests':requests,'external_writes':writes,'execution':e}
 
13
  def notify(ins,m,args,pair=False):
14
  frame=32 if pair else 24;start,end=(6440,6532) if pair else (6370,6437)
15
  for o,v in args.items():m[N+frame+o]=v
16
+ initial=dict(m);requests=[];m,e=resume(ins,start,end,m,N,handlers={179736:captured(179736,requests),180087:captured(180087,requests)},repeated_calls=True)
17
  writes=[{'address':a,'before':initial.get(a),'after':v} for a,v in sorted(m.items()) if initial.get(a)!=v and not N<=a<N+80]
18
  return m,0,{'arguments':args,'requests':requests,'external_writes':writes,'execution':e}
scripts/qvm_resumer_diff_support.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ """Sequential differential audit of a module's imported bounded resumer."""
2
+ from unittest.mock import patch
3
+
4
+ def compare(module,invoke):
5
+ original=module.resume
6
+ def legacy(*args,**kwargs):kwargs['repeated_calls']=False;return original(*args,**kwargs)
7
+ with patch.object(module,'resume',legacy):old=invoke()
8
+ new=invoke()
9
+ return old,new,old==new
scripts/test_qvm_notification_reentry.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from qvm_notification_support import POOL,TARGET,ATTACKER
4
+ class NotificationReentryTests(unittest.TestCase):
5
+ def test_recipient_order_and_exact_abi_from_independent_states(self):
6
+ ps=json.loads(Path('docs/research/qvm-notification-reentry.json').read_text())['probes'];self.assertEqual(len(ps),24)
7
+ for p in ps:
8
+ ids=[i for i,s in enumerate(p['states']) if s==2] if p['active'] else []
9
+ expected=[{'target':180087 if p['pair'] else 179736,'arguments':{**{'8':TARGET},**({'12':ATTACKER,'16':POOL+880*i} if p['pair'] else {'12':POOL+880*i})},'native_effect_not_executed':True} for i in ids]
10
+ self.assertEqual(p['requests'],expected);self.assertEqual(p['external_writes'],[]);self.assertTrue(p['legacy_equal']);self.assertEqual(len(p['execution']['calls']),len(ids))
11
+ def test_sixty_four_slot_witness_is_nonempty(self):
12
+ ps=json.loads(Path('docs/research/qvm-notification-reentry.json').read_text())['probes'];self.assertEqual({len(p['requests']) for p in ps if p['active'] and p['count']==64},{13})
13
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -1729,3 +1729,9 @@ report scripts/analyze_qvm_execute_reentry.py docs/research/qvm-execute-reentry.
1729
  edge docs/research/qvm-execute-reentry.json scripts/test_qvm_execute_reentry.py
1730
  edge scripts/analyze_qvm_execute_reentry.py scripts/analyze_qvm_resumer_audit.py
1731
  group execute-reentry scripts/analyze_qvm_execute_reentry.py
 
 
 
 
 
 
 
1729
  edge docs/research/qvm-execute-reentry.json scripts/test_qvm_execute_reentry.py
1730
  edge scripts/analyze_qvm_execute_reentry.py scripts/analyze_qvm_resumer_audit.py
1731
  group execute-reentry scripts/analyze_qvm_execute_reentry.py
1732
+
1733
+ group notification-reentry scripts/qvm_notification_support.py
1734
+ report scripts/analyze_qvm_notification_reentry.py docs/research/qvm-notification-reentry.json
1735
+ edge docs/research/qvm-notification-reentry.json scripts/test_qvm_notification_reentry.py
1736
+ edge scripts/analyze_qvm_notification_reentry.py scripts/analyze_qvm_resumer_audit.py
1737
+ group notification-reentry scripts/analyze_qvm_notification_reentry.py