nmarshall commited on
Commit
c6b4a1e
·
1 Parent(s): 8c0a4c8

qvm: recover partitioned rank sort

Browse files
docs/ASSET_PIPELINE_TODO.md CHANGED
@@ -1018,3 +1018,9 @@ Research progress: RE-787 [report](research/QVM_MOVEMENT_REENTRY.md); original a
1018
 
1019
 
1020
  Research progress: RE-788 [report](research/QVM_RANK_PARTITION_HELPERS.md); original assets unchanged.
 
 
 
 
 
 
 
1018
 
1019
 
1020
  Research progress: RE-788 [report](research/QVM_RANK_PARTITION_HELPERS.md); original assets unchanged.
1021
+
1022
+
1023
+ Research progress: RE-789 [report](research/QVM_RANK_LARGE_SORT.md); original assets unchanged.
1024
+
1025
+
1026
+ RE-780–789 uses original verified QVM bytes without changing assets. Shared byte-memory interfaces and remaining native/runtime conversions remain open. [Batch evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
docs/FINDINGS.md CHANGED
@@ -1364,3 +1364,9 @@ RE-725–734 batch: [health, contact and Rust impulse findings](research/QVM_HEA
1364
 
1365
 
1366
  **RE-788 — Actual aligned sort swaps and dynamic median-of-three helper:** Recovered34829 aligned swaps and34964 median-of-three with five reviewed return destinations; tests cover overlap, guards, permutations and ties. [Evidence](research/QVM_RANK_PARTITION_HELPERS.md).
 
 
 
 
 
 
 
1364
 
1365
 
1366
  **RE-788 — Actual aligned sort swaps and dynamic median-of-three helper:** Recovered34829 aligned swaps and34964 median-of-three with five reviewed return destinations; tests cover overlap, guards, permutations and ties. [Evidence](research/QVM_RANK_PARTITION_HELPERS.md).
1367
+
1368
+
1369
+ **RE-789 — Actual aligned ranking partitions recursion and 64-client sorting:** 35095 partitioned sorting is now source-executed through64 eligible clients with actual swaps, median/ninther selection, recursion and insertion fallback. [Evidence](research/QVM_RANK_LARGE_SORT.md).
1370
+
1371
+
1372
+ RE-780–789 exposes and bounds legacy resumer timing/byte-state flaws, migrates selected consumers with independent checks, and recovers original partitioned sorting. Unmigrated reports remain unaudited. [Batch evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1365,3 +1365,12 @@ Research progress: RE-787 [report](research/QVM_MOVEMENT_REENTRY.md); full nativ
1365
 
1366
 
1367
  Research progress: RE-788 [report](research/QVM_RANK_PARTITION_HELPERS.md); full native/platform/game scope remains open.
 
 
 
 
 
 
 
 
 
 
1365
 
1366
 
1367
  Research progress: RE-788 [report](research/QVM_RANK_PARTITION_HELPERS.md); full native/platform/game scope remains open.
1368
+
1369
+
1370
+ Research progress: RE-789 [report](research/QVM_RANK_LARGE_SORT.md); full native/platform/game scope remains open.
1371
+
1372
+
1373
+ RE-780–789 adds source-tracer audit witnesses, selected migrations and actual aligned sorting through64 clients. Full native/runtime/macOS/Linux/Bevy/Solari completion remains open; RE-790 tracks the next work. [Batch evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
1374
+
1375
+
1376
+ RE-780–789 batch validation: 1,537 Python and 92 Rust tests pass;216 affected report producers reproduce byte-identically. Selected tracer consumers and aligned source sorting now have stronger evidence. Remaining legacy consumers, complete runtime ownership, native parity and Linux/macOS Bevy/Solari acceptance remain open. [Evidence](research/QVM_RESUMER_PARTITION_BATCH.md).
docs/RESEARCH_LEDGER.md CHANGED
@@ -1602,3 +1602,15 @@ The movement resumer also loses non-command STORE1 writes across calls in legacy
1602
  ## 2026-10-21 — RE-788 Actual aligned sort swaps and dynamic median-of-three helper
1603
 
1604
  Recovered34829 aligned swaps and34964 median-of-three with five reviewed return destinations; tests cover overlap, guards, permutations and ties. Focused `cargo xtask test-group rank-partition-helpers` passes (18 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 405895 bytes. Full-suite validation is deferred to the tenth batch commit. New bounded source helper compositions use corrected tracing and explicit dynamic return offsets; no supplied sort/median result is used.
 
 
 
 
 
 
 
 
 
 
 
 
 
1602
  ## 2026-10-21 — RE-788 Actual aligned sort swaps and dynamic median-of-three helper
1603
 
1604
  Recovered34829 aligned swaps and34964 median-of-three with five reviewed return destinations; tests cover overlap, guards, permutations and ties. Focused `cargo xtask test-group rank-partition-helpers` passes (18 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 405895 bytes. Full-suite validation is deferred to the tenth batch commit. New bounded source helper compositions use corrected tracing and explicit dynamic return offsets; no supplied sort/median result is used.
1605
+
1606
+
1607
+ ## 2026-10-21 — RE-789 Actual aligned ranking partitions recursion and 64-client sorting
1608
+
1609
+ 35095 partitioned sorting is now source-executed through64 eligible clients with actual swaps, median/ninther selection, recursion and insertion fallback. Focused `cargo xtask test-group rank-large-sort` passes (6 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 563568 bytes. Full-suite validation is deferred to the tenth batch commit. New source sort runs real recovered children without injecting a sort result. Batch-wide full validation follows this tenth task commit.
1610
+
1611
+ RE-789 final focused recheck:7 Python tests pass after adding explicit unresolved-mode classification and batch documentation. All current non-test scanner inputs have registered dependency edges; full suite remains deferred until commit ten.
1612
+
1613
+
1614
+ ## 2026-10-21 — RE-780–789 full batch validation
1615
+
1616
+ After exactly ten task commits from `78ab0c4b`, the single `cargo xtask test-full --since 78ab0c4b` run passed 1,537 Python tests (517+350+337+333) and 92 Rust tests (10 assets,54 gameplay,28 xtask). All216 affected report producers regenerated twice byte-identically; storage policy,348 documentation files and whitespace checks passed. Regeneration left a clean working tree. The tenth commit is amended only with final validation notes after documentation-only xtask checks. [Batch evidence and remaining RE-790 work](research/QVM_RESUMER_PARTITION_BATCH.md).
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1414,3 +1414,9 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1414
 
1415
 
1416
  - [x] RE-788 Actual aligned sort swaps and dynamic median-of-three helper ([report](research/QVM_RANK_PARTITION_HELPERS.md)).
 
 
 
 
 
 
 
1414
 
1415
 
1416
  - [x] RE-788 Actual aligned sort swaps and dynamic median-of-three helper ([report](research/QVM_RANK_PARTITION_HELPERS.md)).
1417
+
1418
+
1419
+ - [x] RE-789 Actual aligned ranking partitions recursion and 64-client sorting ([report](research/QVM_RANK_LARGE_SORT.md)).
1420
+
1421
+
1422
+ - [ ] RE-790 Continue remaining legacy tracing audits, shared child byte-memory semantics, large-sort caller/publication and Rust whole-sort integration, native serialization and macOS/Linux Bevy/Solari runtime acceptance. See [batch findings and next tasks](research/QVM_RESUMER_PARTITION_BATCH.md#next-work--re-790).
docs/TESTING.md CHANGED
@@ -106,3 +106,10 @@ Focused groups now include `stat-totals`, `stat-ratios`, `team-counters`, `recen
106
  ## Ranking, leaderboard and wire-model groups
107
 
108
  Focused groups include `rank-comparator`, `rank-small-sort`, `ranking-complete`, `leaderboard-layout`, `leaderboard-selector`, `leaderboard-categories` and `recipient-wire`. `gameplay` now covers13 Rust parity reports, including raw ranking, leaderboard selection and modeled wire bytes. Module edges and registry integration tests refresh their adapters and package test-count metadata. New source compositions use corrected repeated-call tracing; legacy consumers require the [audit](research/QVM_RANKING_WIRE_RUST_BATCH.md#tracer-finding-and-required-audit). Keep focused checks before each task and one full-suite run after ten commits.
 
 
 
 
 
 
 
 
106
  ## Ranking, leaderboard and wire-model groups
107
 
108
  Focused groups include `rank-comparator`, `rank-small-sort`, `ranking-complete`, `leaderboard-layout`, `leaderboard-selector`, `leaderboard-categories` and `recipient-wire`. `gameplay` now covers13 Rust parity reports, including raw ranking, leaderboard selection and modeled wire bytes. Module edges and registry integration tests refresh their adapters and package test-count metadata. New source compositions use corrected repeated-call tracing; legacy consumers require the [audit](research/QVM_RANKING_WIRE_RUST_BATCH.md#tracer-finding-and-required-audit). Keep focused checks before each task and one full-suite run after ten commits.
109
+
110
+
111
+ ## Bounded tracer audit groups
112
+
113
+ Use `cargo xtask test-group resumer-audit`, `return-placement`, `reentry-witness` or `execute-reentry` for inventory and synthetic trace contracts. Source migrations use `notification-reentry`, `award-reentry`, `counter-reentry` and `movement-reentry`; sorting uses `rank-partition-helpers` and `rank-large-sort`. Each name is a separate argument after `test-group`. Groups follow downstream dependency closure, so shared constants/helpers can select additional source and Rust parity reports. The static inventory scanner has explicit edges from current non-test Python scripts; register newly added scan inputs. Unknown changes retain full-suite fallback.
114
+
115
+ For ten-task batches, run focused validation before each commit, then `cargo xtask test-full --since <batch-base>` once after commit ten. Review all regenerated report diffs and record the outcome in the batch document before pushing. See [RE-780–789](research/QVM_RESUMER_PARTITION_BATCH.md).
docs/research/QVM_RANK_LARGE_SORT.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Actual aligned ranking partitions recursion and 64-client sorting
2
+
3
+ RE-789. Reproduce with `python3 scripts/analyze_qvm_rank_large_sort.py`; validate with `cargo xtask test-group rank-large-sort`. See the [machine report](qvm-rank-large-sort.json).
4
+
5
+ Ninety-six deterministic source probes cover modes0/3/9/11, sizes7/8/16/40/41/64, ascending/descending/shuffled inputs and complete comparator ties. Tests independently check comparator-equivalent sorted order, permutation preservation, guard words and per-frame callback pointers. Recursive frames are isolated; all four parent dynamic return destinations are explicit. Compact call-site/count/hash trees record which partition/median/recursive branches execute; helper reports retain detailed source traces. Stable equal-key ordering, arbitrary callback domains, byte/unaligned elements, complete5864 publication composition and Rust whole-sort/native parity remain open.
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/QVM_RESUMER_PARTITION_BATCH.md ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Bounded resumer audit and aligned partitioned sorting
2
+
3
+ RE-780–789; batch baseline `78ab0c4b`. Original assets remain unchanged. Ten tasks each receive a separate commit after focused `cargo xtask` validation.
4
+
5
+ | Task | Result | Evidence |
6
+ | --- | --- | --- |
7
+ | RE-780 | Static consumers, literal/computed ranges, dynamic return and loop review markers | [Inventory](QVM_RESUMER_AUDIT.md) |
8
+ | RE-781 | Fail-closed destination inference and coherent callback result bytes | [Return placement](QVM_RETURN_PLACEMENT.md) |
9
+ | RE-782 | Legacy repeated-call counterexample, corrected timing and stack guards | [Reentry witnesses](QVM_REENTRY_WITNESS.md) |
10
+ | RE-783 | Movement resumer opt-in with persistent bytes and handler-returned commands | [Movement witnesses](QVM_EXECUTE_REENTRY.md) |
11
+ | RE-784 | Corrected notification dispatch through64 client slots | [Notifications](QVM_NOTIFICATION_REENTRY.md) |
12
+ | RE-785 | Dense award scans, timestamp boundaries and index64 alias | [Awards](QVM_AWARD_REENTRY.md) |
13
+ | RE-786 | Counter, team-pair and dense/sparse clear migrations | [Counters](QVM_COUNTER_REENTRY.md) |
14
+ | RE-787 | Selected dynamic water queries and gait/event source consumers migrated | [Movement source audit](QVM_MOVEMENT_REENTRY.md) |
15
+ | RE-788 | Actual aligned swap and median helpers with explicit dynamic returns | [Partition helpers](QVM_RANK_PARTITION_HELPERS.md) |
16
+ | RE-789 | Actual aligned partition/tail-loop/recursive sort through64 clients | [Large sort](QVM_RANK_LARGE_SORT.md) |
17
+
18
+ ## Findings and limits
19
+
20
+ The legacy resumers can apply a repeated child return after its consumer has already branched using placeholder zero. A three-step synthetic countdown proves the mismatch. The movement resumer additionally rebuilds non-command byte memory from its initial inputs, discarding a STORE1 across a call. Corrected opt-in paths preserve the relevant state, reject nonempty call boundaries, and require explicit reviewed destinations for dynamic stored returns. Callback result patching updates all four little-endian bytes.
21
+
22
+ The audit inventory distinguishes omitted/default-false, literal modes and unresolved mode expressions; computed ranges remain unresolved rather than silently treated as complete coverage. The final inventory records 182 call expressions across 142 files: 159 use default/literal legacy mode, 20 have computed ranges, and three mode expressions are unresolved. These categories can overlap. Its explicit registry edges cover current non-test scripts. New/unmapped files still require conservative fallback and review of scan dependencies.
23
+
24
+ Migrated notification, award, counter/clear and selected water/gait fixtures agree with their independent expected behavior and legacy observations over the stated domains. This agreement does not prove correctness of the remaining legacy consumers. Comparator migration also corrects stop-PC metadata after actual LEAVE instructions; return values, trace hashes and all other standalone/nested ranking fields remain unchanged.
25
+
26
+ The96 larger-sort fixtures execute original35095 instructions and actual34829/34964/5441/33715 children, including ninther sampling, partitioning, insertion fallback, recursion and tail iteration. No ordering result is injected. Eligible numeric clients and aligned four-byte records bound this evidence. Equal comparator keys are checked for equivalent order and permutation preservation, without assuming sort stability. The Rust rank primitive still accepts caller-owned ordering; this batch does not add a Rust whole-sort implementation.
27
+
28
+ ## Validation
29
+
30
+ Focused xtask groups precede each task commit. Reports selected by dependency closure regenerate twice byte-identically; affected Python tests, storage policy, documentation links and whitespace guards run. Scoped Rust parity producers run only when selected. The single full run after commit ten, `cargo xtask test-full --since 78ab0c4b`, passed **1,537 Python tests and 92 Rust tests** (10 assets, 54 gameplay, 28 xtask). All 216 affected producers regenerated twice byte-identically. Storage policy, documentation links across 348 files and whitespace checks passed. The working tree was clean after regeneration: no unreviewed report refreshes remained. The final documentation-only update is checked separately without repeating the full suite.
31
+
32
+ ## Next work — RE-790
33
+
34
+ - Continue the legacy resumer audit per consumer, prioritizing loops with result-dependent branches or child memory effects. Review every computed range and dynamic return destination. Keep unrelated reports marked as unaudited.
35
+ - Synchronize arbitrary child memory/byte effects through an explicit supported interface; current returned command bytes and patched result bytes do not implement a complete shared VM memory model.
36
+ - Add original caller5864 fixtures using the large sort, inactive/connecting/spectator populations and publication children7805/6328. Do not pass the raw prefilter comparator to Rust Ord without resolving its asymmetric cases.
37
+ - Recover byte/unaligned and other element-size sort branches; validate native sort ABI, callbacks and error domains before broader parity claims.
38
+ - Implement a Rust whole-sort/composition contract with independent fixtures and explicit tie behavior, then connect ranking/stat/recipient effects to runtime entity ownership.
39
+ - Continue native serialization, remaining leaderboard categories, whole health/contact callers, collision/world state and gameplay. macOS/Linux execution and interactive Rust/Bevy/Solari acceptance remain open.
docs/research/README.md CHANGED
@@ -954,3 +954,9 @@ The extension collector adds five focused tests for native tail calls, command-r
954
 
955
 
956
  [RE-788: Actual aligned sort swaps and dynamic median-of-three helper](QVM_RANK_PARTITION_HELPERS.md).
 
 
 
 
 
 
 
954
 
955
 
956
  [RE-788: Actual aligned sort swaps and dynamic median-of-three helper](QVM_RANK_PARTITION_HELPERS.md).
957
+
958
+
959
+ [RE-789: Actual aligned ranking partitions recursion and 64-client sorting](QVM_RANK_LARGE_SORT.md).
960
+
961
+
962
+ [RE-780–789 batch: resumer audit and aligned partitioned sorting](QVM_RESUMER_PARTITION_BATCH.md).
docs/research/qvm-rank-large-sort.json ADDED
The diff for this file is too large to render. See raw diff
 
docs/research/qvm-resumer-audit.json CHANGED
@@ -110,7 +110,8 @@
110
  21728
111
  ],
112
  "path": "scripts/analyze_md3_bindings.py",
113
- "repeated_calls_opt_in": false
 
114
  },
115
  {
116
  "backward_conditional_branches": [
@@ -125,7 +126,8 @@
125
  36487
126
  ],
127
  "path": "scripts/analyze_md3_original_hierarchy.py",
128
- "repeated_calls_opt_in": false
 
129
  },
130
  {
131
  "backward_conditional_branches": [
@@ -162,7 +164,8 @@
162
  21918
163
  ],
164
  "path": "scripts/analyze_md3_original_hierarchy.py",
165
- "repeated_calls_opt_in": false
 
166
  },
167
  {
168
  "backward_conditional_branches": [],
@@ -175,7 +178,8 @@
175
  291639
176
  ],
177
  "path": "scripts/analyze_qvm_aim_endpoint.py",
178
- "repeated_calls_opt_in": false
 
179
  },
180
  {
181
  "backward_conditional_branches": [],
@@ -231,7 +235,8 @@
231
  291476
232
  ],
233
  "path": "scripts/analyze_qvm_aim_extra_offsets.py",
234
- "repeated_calls_opt_in": false
 
235
  },
236
  {
237
  "backward_conditional_branches": [],
@@ -273,7 +278,8 @@
273
  291079
274
  ],
275
  "path": "scripts/analyze_qvm_aim_trig.py",
276
- "repeated_calls_opt_in": false
 
277
  },
278
  {
279
  "backward_conditional_branches": [],
@@ -329,7 +335,8 @@
329
  291315
330
  ],
331
  "path": "scripts/analyze_qvm_aim_trig.py",
332
- "repeated_calls_opt_in": false
 
333
  },
334
  {
335
  "backward_conditional_branches": [],
@@ -364,7 +371,8 @@
364
  277777
365
  ],
366
  "path": "scripts/analyze_qvm_allocated_event.py",
367
- "repeated_calls_opt_in": false
 
368
  },
369
  {
370
  "backward_conditional_branches": [],
@@ -385,7 +393,8 @@
385
  65728
386
  ],
387
  "path": "scripts/analyze_qvm_base_fire_gate.py",
388
- "repeated_calls_opt_in": false
 
389
  },
390
  {
391
  "backward_conditional_branches": [
@@ -471,7 +480,8 @@
471
  289233
472
  ],
473
  "path": "scripts/analyze_qvm_base_fire_gate.py",
474
- "repeated_calls_opt_in": false
 
475
  },
476
  {
477
  "backward_conditional_branches": [],
@@ -548,7 +558,8 @@
548
  289233
549
  ],
550
  "path": "scripts/analyze_qvm_base_fire_gate.py",
551
- "repeated_calls_opt_in": false
 
552
  },
553
  {
554
  "backward_conditional_branches": [],
@@ -660,7 +671,8 @@
660
  29545
661
  ],
662
  "path": "scripts/analyze_qvm_basic_trajectory.py",
663
- "repeated_calls_opt_in": false
 
664
  },
665
  {
666
  "backward_conditional_branches": [
@@ -675,7 +687,8 @@
675
  23090
676
  ],
677
  "path": "scripts/analyze_qvm_child_origin.py",
678
- "repeated_calls_opt_in": false
 
679
  },
680
  {
681
  "backward_conditional_branches": [
@@ -690,7 +703,8 @@
690
  23090
691
  ],
692
  "path": "scripts/analyze_qvm_child_transform.py",
693
- "repeated_calls_opt_in": false
 
694
  },
695
  {
696
  "backward_conditional_branches": [
@@ -743,7 +757,8 @@
743
  25339
744
  ],
745
  "path": "scripts/analyze_qvm_complete_leaf.py",
746
- "repeated_calls_opt_in": false
 
747
  },
748
  {
749
  "backward_conditional_branches": [
@@ -759,7 +774,8 @@
759
  26036
760
  ],
761
  "path": "scripts/analyze_qvm_complete_model_hit.py",
762
- "repeated_calls_opt_in": false
 
763
  },
764
  {
765
  "backward_conditional_branches": [],
@@ -955,7 +971,8 @@
955
  146621
956
  ],
957
  "path": "scripts/analyze_qvm_complete_model_hit.py",
958
- "repeated_calls_opt_in": false
 
959
  },
960
  {
961
  "backward_conditional_branches": [],
@@ -1074,7 +1091,8 @@
1074
  33389
1075
  ],
1076
  "path": "scripts/analyze_qvm_complete_pose.py",
1077
- "repeated_calls_opt_in": false
 
1078
  },
1079
  {
1080
  "backward_conditional_branches": [
@@ -1132,7 +1150,8 @@
1132
  144080
1133
  ],
1134
  "path": "scripts/analyze_qvm_complete_rewind.py",
1135
- "repeated_calls_opt_in": false
 
1136
  },
1137
  {
1138
  "backward_conditional_branches": [
@@ -1155,7 +1174,8 @@
1155
  144163
1156
  ],
1157
  "path": "scripts/analyze_qvm_complete_rewind_selectors.py",
1158
- "repeated_calls_opt_in": false
 
1159
  },
1160
  {
1161
  "backward_conditional_branches": [],
@@ -1218,7 +1238,8 @@
1218
  293628
1219
  ],
1220
  "path": "scripts/analyze_qvm_contact_dispatch.py",
1221
- "repeated_calls_opt_in": false
 
1222
  },
1223
  {
1224
  "backward_conditional_branches": [],
@@ -1365,7 +1386,8 @@
1365
  293730
1366
  ],
1367
  "path": "scripts/analyze_qvm_contact_gates.py",
1368
- "repeated_calls_opt_in": false
 
1369
  },
1370
  {
1371
  "backward_conditional_branches": [],
@@ -1470,7 +1492,8 @@
1470
  277693
1471
  ],
1472
  "path": "scripts/analyze_qvm_entity_free.py",
1473
- "repeated_calls_opt_in": false
 
1474
  },
1475
  {
1476
  "backward_conditional_branches": [],
@@ -1483,7 +1506,8 @@
1483
  277163
1484
  ],
1485
  "path": "scripts/analyze_qvm_entity_init.py",
1486
- "repeated_calls_opt_in": false
 
1487
  },
1488
  {
1489
  "backward_conditional_branches": [
@@ -1498,7 +1522,8 @@
1498
  276503
1499
  ],
1500
  "path": "scripts/analyze_qvm_entity_query.py",
1501
- "repeated_calls_opt_in": false
 
1502
  },
1503
  {
1504
  "backward_conditional_branches": [
@@ -1522,7 +1547,8 @@
1522
  277262
1523
  ],
1524
  "path": "scripts/analyze_qvm_entity_reuse.py",
1525
- "repeated_calls_opt_in": false
 
1526
  },
1527
  {
1528
  "backward_conditional_branches": [
@@ -1652,7 +1678,8 @@
1652
  296197
1653
  ],
1654
  "path": "scripts/analyze_qvm_event57_world_return.py",
1655
- "repeated_calls_opt_in": false
 
1656
  },
1657
  {
1658
  "backward_conditional_branches": [],
@@ -1687,7 +1714,8 @@
1687
  285969
1688
  ],
1689
  "path": "scripts/analyze_qvm_event57_world_return.py",
1690
- "repeated_calls_opt_in": false
 
1691
  },
1692
  {
1693
  "backward_conditional_branches": [],
@@ -1697,7 +1725,8 @@
1697
  "line": 12,
1698
  "literal_range": null,
1699
  "path": "scripts/analyze_qvm_execute_reentry.py",
1700
- "repeated_calls_opt_in": false
 
1701
  },
1702
  {
1703
  "backward_conditional_branches": [],
@@ -1709,7 +1738,8 @@
1709
  "line": 18,
1710
  "literal_range": null,
1711
  "path": "scripts/analyze_qvm_execute_reentry.py",
1712
- "repeated_calls_opt_in": true
 
1713
  },
1714
  {
1715
  "backward_conditional_branches": [],
@@ -1719,7 +1749,8 @@
1719
  "line": 24,
1720
  "literal_range": null,
1721
  "path": "scripts/analyze_qvm_execute_reentry.py",
1722
- "repeated_calls_opt_in": true
 
1723
  },
1724
  {
1725
  "backward_conditional_branches": [],
@@ -1754,7 +1785,8 @@
1754
  54979
1755
  ],
1756
  "path": "scripts/analyze_qvm_fire_sequences.py",
1757
- "repeated_calls_opt_in": false
 
1758
  },
1759
  {
1760
  "backward_conditional_branches": [],
@@ -1767,7 +1799,8 @@
1767
  54558
1768
  ],
1769
  "path": "scripts/analyze_qvm_fire_sequences.py",
1770
- "repeated_calls_opt_in": false
 
1771
  },
1772
  {
1773
  "backward_conditional_branches": [],
@@ -1780,7 +1813,8 @@
1780
  53184
1781
  ],
1782
  "path": "scripts/analyze_qvm_fire_sequences.py",
1783
- "repeated_calls_opt_in": false
 
1784
  },
1785
  {
1786
  "backward_conditional_branches": [
@@ -1824,7 +1858,8 @@
1824
  42836
1825
  ],
1826
  "path": "scripts/analyze_qvm_freeflight.py",
1827
- "repeated_calls_opt_in": false
 
1828
  },
1829
  {
1830
  "backward_conditional_branches": [],
@@ -1845,7 +1880,8 @@
1845
  278122
1846
  ],
1847
  "path": "scripts/analyze_qvm_grenade_event_prefix.py",
1848
- "repeated_calls_opt_in": false
 
1849
  },
1850
  {
1851
  "backward_conditional_branches": [],
@@ -1887,7 +1923,8 @@
1887
  223253
1888
  ],
1889
  "path": "scripts/analyze_qvm_grenade_event_prefix.py",
1890
- "repeated_calls_opt_in": false
 
1891
  },
1892
  {
1893
  "backward_conditional_branches": [],
@@ -1929,7 +1966,8 @@
1929
  286471
1930
  ],
1931
  "path": "scripts/analyze_qvm_grenade_setup.py",
1932
- "repeated_calls_opt_in": false
 
1933
  },
1934
  {
1935
  "backward_conditional_branches": [],
@@ -1942,7 +1980,8 @@
1942
  213209
1943
  ],
1944
  "path": "scripts/analyze_qvm_health_impulse.py",
1945
- "repeated_calls_opt_in": false
 
1946
  },
1947
  {
1948
  "backward_conditional_branches": [],
@@ -1955,7 +1994,8 @@
1955
  63793
1956
  ],
1957
  "path": "scripts/analyze_qvm_history_angle_lerp.py",
1958
- "repeated_calls_opt_in": false
 
1959
  },
1960
  {
1961
  "backward_conditional_branches": [],
@@ -1983,7 +2023,8 @@
1983
  143029
1984
  ],
1985
  "path": "scripts/analyze_qvm_history_append.py",
1986
- "repeated_calls_opt_in": false
 
1987
  },
1988
  {
1989
  "backward_conditional_branches": [
@@ -1998,7 +2039,8 @@
1998
  142771
1999
  ],
2000
  "path": "scripts/analyze_qvm_history_reset.py",
2001
- "repeated_calls_opt_in": false
 
2002
  },
2003
  {
2004
  "backward_conditional_branches": [],
@@ -2011,7 +2053,8 @@
2011
  143098
2012
  ],
2013
  "path": "scripts/analyze_qvm_history_vector_lerp.py",
2014
- "repeated_calls_opt_in": false
 
2015
  },
2016
  {
2017
  "backward_conditional_branches": [],
@@ -2046,7 +2089,8 @@
2046
  25137
2047
  ],
2048
  "path": "scripts/analyze_qvm_hit_geometry.py",
2049
- "repeated_calls_opt_in": false
 
2050
  },
2051
  {
2052
  "backward_conditional_branches": [
@@ -2062,7 +2106,8 @@
2062
  26036
2063
  ],
2064
  "path": "scripts/analyze_qvm_hit_publication.py",
2065
- "repeated_calls_opt_in": false
 
2066
  },
2067
  {
2068
  "backward_conditional_branches": [],
@@ -2075,7 +2120,8 @@
2075
  146621
2076
  ],
2077
  "path": "scripts/analyze_qvm_hit_publication.py",
2078
- "repeated_calls_opt_in": false
 
2079
  },
2080
  {
2081
  "backward_conditional_branches": [
@@ -2090,7 +2136,8 @@
2090
  32153
2091
  ],
2092
  "path": "scripts/analyze_qvm_interaction_request.py",
2093
- "repeated_calls_opt_in": false
 
2094
  },
2095
  {
2096
  "backward_conditional_branches": [],
@@ -2111,7 +2158,8 @@
2111
  32187
2112
  ],
2113
  "path": "scripts/analyze_qvm_interaction_request.py",
2114
- "repeated_calls_opt_in": false
 
2115
  },
2116
  {
2117
  "backward_conditional_branches": [],
@@ -2167,7 +2215,8 @@
2167
  50248
2168
  ],
2169
  "path": "scripts/analyze_qvm_interaction_request.py",
2170
- "repeated_calls_opt_in": false
 
2171
  },
2172
  {
2173
  "backward_conditional_branches": [
@@ -2239,7 +2288,8 @@
2239
  283817
2240
  ],
2241
  "path": "scripts/analyze_qvm_leaderboard_categories.py",
2242
- "repeated_calls_opt_in": true
 
2243
  },
2244
  {
2245
  "backward_conditional_branches": [
@@ -2254,7 +2304,8 @@
2254
  23888
2255
  ],
2256
  "path": "scripts/analyze_qvm_leaf_basis.py",
2257
- "repeated_calls_opt_in": false
 
2258
  },
2259
  {
2260
  "backward_conditional_branches": [],
@@ -2267,7 +2318,8 @@
2267
  25281
2268
  ],
2269
  "path": "scripts/analyze_qvm_leaf_hit_publish.py",
2270
- "repeated_calls_opt_in": false
 
2271
  },
2272
  {
2273
  "backward_conditional_branches": [],
@@ -2280,7 +2332,8 @@
2280
  24515
2281
  ],
2282
  "path": "scripts/analyze_qvm_leaf_vertices.py",
2283
- "repeated_calls_opt_in": false
 
2284
  },
2285
  {
2286
  "backward_conditional_branches": [],
@@ -2469,7 +2522,8 @@
2469
  48714
2470
  ],
2471
  "path": "scripts/analyze_qvm_locomotion.py",
2472
- "repeated_calls_opt_in": true
 
2473
  },
2474
  {
2475
  "backward_conditional_branches": [],
@@ -2742,7 +2796,8 @@
2742
  48714
2743
  ],
2744
  "path": "scripts/analyze_qvm_locomotion_prefix.py",
2745
- "repeated_calls_opt_in": true
 
2746
  },
2747
  {
2748
  "backward_conditional_branches": [],
@@ -2770,7 +2825,8 @@
2770
  54452
2771
  ],
2772
  "path": "scripts/analyze_qvm_main_consumers.py",
2773
- "repeated_calls_opt_in": false
 
2774
  },
2775
  {
2776
  "backward_conditional_branches": [],
@@ -2805,7 +2861,8 @@
2805
  54464
2806
  ],
2807
  "path": "scripts/analyze_qvm_main_consumers.py",
2808
- "repeated_calls_opt_in": false
 
2809
  },
2810
  {
2811
  "backward_conditional_branches": [
@@ -2849,7 +2906,8 @@
2849
  25833
2850
  ],
2851
  "path": "scripts/analyze_qvm_model_child_samples.py",
2852
- "repeated_calls_opt_in": false
 
2853
  },
2854
  {
2855
  "backward_conditional_branches": [
@@ -2864,7 +2922,8 @@
2864
  23090
2865
  ],
2866
  "path": "scripts/analyze_qvm_model_hierarchy.py",
2867
- "repeated_calls_opt_in": false
 
2868
  },
2869
  {
2870
  "backward_conditional_branches": [
@@ -2908,7 +2967,8 @@
2908
  25833
2909
  ],
2910
  "path": "scripts/analyze_qvm_model_hierarchy.py",
2911
- "repeated_calls_opt_in": false
 
2912
  },
2913
  {
2914
  "backward_conditional_branches": [],
@@ -2929,7 +2989,8 @@
2929
  144898
2930
  ],
2931
  "path": "scripts/analyze_qvm_model_ray_prefix.py",
2932
- "repeated_calls_opt_in": false
 
2933
  },
2934
  {
2935
  "backward_conditional_branches": [],
@@ -3097,7 +3158,8 @@
3097
  146551
3098
  ],
3099
  "path": "scripts/analyze_qvm_model_transforms.py",
3100
- "repeated_calls_opt_in": false
 
3101
  },
3102
  {
3103
  "backward_conditional_branches": [],
@@ -3107,7 +3169,8 @@
3107
  "line": 14,
3108
  "literal_range": null,
3109
  "path": "scripts/analyze_qvm_no_target_stats.py",
3110
- "repeated_calls_opt_in": false
 
3111
  },
3112
  {
3113
  "backward_conditional_branches": [],
@@ -3142,7 +3205,8 @@
3142
  280296
3143
  ],
3144
  "path": "scripts/analyze_qvm_no_target_stats.py",
3145
- "repeated_calls_opt_in": false
 
3146
  },
3147
  {
3148
  "backward_conditional_branches": [],
@@ -3152,7 +3216,8 @@
3152
  "line": 15,
3153
  "literal_range": null,
3154
  "path": "scripts/analyze_qvm_packed_controls.py",
3155
- "repeated_calls_opt_in": false
 
3156
  },
3157
  {
3158
  "backward_conditional_branches": [],
@@ -3187,7 +3252,8 @@
3187
  295805
3188
  ],
3189
  "path": "scripts/analyze_qvm_pellet_endpoint.py",
3190
- "repeated_calls_opt_in": false
 
3191
  },
3192
  {
3193
  "backward_conditional_branches": [],
@@ -3200,7 +3266,8 @@
3200
  295612
3201
  ],
3202
  "path": "scripts/analyze_qvm_pellet_endpoint.py",
3203
- "repeated_calls_opt_in": false
 
3204
  },
3205
  {
3206
  "backward_conditional_branches": [],
@@ -3235,7 +3302,8 @@
3235
  295549
3236
  ],
3237
  "path": "scripts/analyze_qvm_pellet_rotation.py",
3238
- "repeated_calls_opt_in": false
 
3239
  },
3240
  {
3241
  "backward_conditional_branches": [],
@@ -3256,7 +3324,8 @@
3256
  295573
3257
  ],
3258
  "path": "scripts/analyze_qvm_pellet_rotation.py",
3259
- "repeated_calls_opt_in": false
 
3260
  },
3261
  {
3262
  "backward_conditional_branches": [
@@ -3293,7 +3362,8 @@
3293
  144764
3294
  ],
3295
  "path": "scripts/analyze_qvm_player_bb_construct.py",
3296
- "repeated_calls_opt_in": false
 
3297
  },
3298
  {
3299
  "backward_conditional_branches": [],
@@ -3321,7 +3391,8 @@
3321
  32428
3322
  ],
3323
  "path": "scripts/analyze_qvm_pose_controllers.py",
3324
- "repeated_calls_opt_in": false
 
3325
  },
3326
  {
3327
  "backward_conditional_branches": [],
@@ -3384,7 +3455,8 @@
3384
  33168
3385
  ],
3386
  "path": "scripts/analyze_qvm_pose_lean.py",
3387
- "repeated_calls_opt_in": false
 
3388
  },
3389
  {
3390
  "backward_conditional_branches": [],
@@ -3440,7 +3512,8 @@
3440
  32797
3441
  ],
3442
  "path": "scripts/analyze_qvm_pose_motion_yaw.py",
3443
- "repeated_calls_opt_in": false
 
3444
  },
3445
  {
3446
  "backward_conditional_branches": [],
@@ -3453,7 +3526,8 @@
3453
  32378
3454
  ],
3455
  "path": "scripts/analyze_qvm_pose_prefix.py",
3456
- "repeated_calls_opt_in": false
 
3457
  },
3458
  {
3459
  "backward_conditional_branches": [],
@@ -3466,7 +3540,8 @@
3466
  33389
3467
  ],
3468
  "path": "scripts/analyze_qvm_pose_publication.py",
3469
- "repeated_calls_opt_in": false
 
3470
  },
3471
  {
3472
  "backward_conditional_branches": [],
@@ -3494,7 +3569,8 @@
3494
  144985
3495
  ],
3496
  "path": "scripts/analyze_qvm_posed_model.py",
3497
- "repeated_calls_opt_in": false
 
3498
  },
3499
  {
3500
  "backward_conditional_branches": [],
@@ -3662,7 +3738,8 @@
3662
  146551
3663
  ],
3664
  "path": "scripts/analyze_qvm_posed_model.py",
3665
- "repeated_calls_opt_in": false
 
3666
  },
3667
  {
3668
  "backward_conditional_branches": [
@@ -3709,7 +3786,8 @@
3709
  6326
3710
  ],
3711
  "path": "scripts/analyze_qvm_ranking_complete.py",
3712
- "repeated_calls_opt_in": true
 
3713
  },
3714
  {
3715
  "backward_conditional_branches": [
@@ -3725,7 +3803,8 @@
3725
  6086
3726
  ],
3727
  "path": "scripts/analyze_qvm_ranking_setup.py",
3728
- "repeated_calls_opt_in": false
 
3729
  },
3730
  {
3731
  "backward_conditional_branches": [],
@@ -3774,7 +3853,8 @@
3774
  25281
3775
  ],
3776
  "path": "scripts/analyze_qvm_ray_triangle.py",
3777
- "repeated_calls_opt_in": false
 
3778
  },
3779
  {
3780
  "backward_conditional_branches": [],
@@ -3809,7 +3889,8 @@
3809
  69375
3810
  ],
3811
  "path": "scripts/analyze_qvm_recipient_wire.py",
3812
- "repeated_calls_opt_in": true
 
3813
  },
3814
  {
3815
  "backward_conditional_branches": [],
@@ -3822,7 +3903,8 @@
3822
  69384
3823
  ],
3824
  "path": "scripts/analyze_qvm_recipient_wire.py",
3825
- "repeated_calls_opt_in": false
 
3826
  },
3827
  {
3828
  "backward_conditional_branches": [],
@@ -3834,7 +3916,8 @@
3834
  "line": 13,
3835
  "literal_range": null,
3836
  "path": "scripts/analyze_qvm_reentry_witness.py",
3837
- "repeated_calls_opt_in": false
 
3838
  },
3839
  {
3840
  "backward_conditional_branches": [],
@@ -3844,7 +3927,8 @@
3844
  "line": 19,
3845
  "literal_range": null,
3846
  "path": "scripts/analyze_qvm_reentry_witness.py",
3847
- "repeated_calls_opt_in": false
 
3848
  },
3849
  {
3850
  "backward_conditional_branches": [],
@@ -4096,7 +4180,8 @@
4096
  53046
4097
  ],
4098
  "path": "scripts/analyze_qvm_reload_complete.py",
4099
- "repeated_calls_opt_in": false
 
4100
  },
4101
  {
4102
  "backward_conditional_branches": [],
@@ -4131,7 +4216,8 @@
4131
  49916
4132
  ],
4133
  "path": "scripts/analyze_qvm_reload_request.py",
4134
- "repeated_calls_opt_in": false
 
4135
  },
4136
  {
4137
  "backward_conditional_branches": [],
@@ -4141,7 +4227,8 @@
4141
  "line": 14,
4142
  "literal_range": null,
4143
  "path": "scripts/analyze_qvm_return_placement.py",
4144
- "repeated_calls_opt_in": true
 
4145
  },
4146
  {
4147
  "backward_conditional_branches": [],
@@ -4197,7 +4284,8 @@
4197
  144080
4198
  ],
4199
  "path": "scripts/analyze_qvm_rewind_history_apply.py",
4200
- "repeated_calls_opt_in": false
 
4201
  },
4202
  {
4203
  "backward_conditional_branches": [
@@ -4212,7 +4300,8 @@
4212
  143582
4213
  ],
4214
  "path": "scripts/analyze_qvm_rewind_history_select.py",
4215
- "repeated_calls_opt_in": false
 
4216
  },
4217
  {
4218
  "backward_conditional_branches": [],
@@ -4233,7 +4322,8 @@
4233
  144411
4234
  ],
4235
  "path": "scripts/analyze_qvm_rewind_restore.py",
4236
- "repeated_calls_opt_in": false
 
4237
  },
4238
  {
4239
  "backward_conditional_branches": [
@@ -4256,7 +4346,8 @@
4256
  144163
4257
  ],
4258
  "path": "scripts/analyze_qvm_rewind_selectors.py",
4259
- "repeated_calls_opt_in": false
 
4260
  },
4261
  {
4262
  "backward_conditional_branches": [
@@ -4279,7 +4370,8 @@
4279
  144491
4280
  ],
4281
  "path": "scripts/analyze_qvm_rewind_selectors.py",
4282
- "repeated_calls_opt_in": false
 
4283
  },
4284
  {
4285
  "backward_conditional_branches": [
@@ -4337,7 +4429,8 @@
4337
  144080
4338
  ],
4339
  "path": "scripts/analyze_qvm_rewind_snapshot.py",
4340
- "repeated_calls_opt_in": false
 
4341
  },
4342
  {
4343
  "backward_conditional_branches": [
@@ -4440,7 +4533,8 @@
4440
  292543
4441
  ],
4442
  "path": "scripts/analyze_qvm_rewound_trace.py",
4443
- "repeated_calls_opt_in": false
 
4444
  },
4445
  {
4446
  "backward_conditional_branches": [],
@@ -4450,7 +4544,8 @@
4450
  "line": 18,
4451
  "literal_range": null,
4452
  "path": "scripts/analyze_qvm_rotate_point.py",
4453
- "repeated_calls_opt_in": false
 
4454
  },
4455
  {
4456
  "backward_conditional_branches": [
@@ -4529,7 +4624,8 @@
4529
  151952
4530
  ],
4531
  "path": "scripts/analyze_qvm_server_event_route.py",
4532
- "repeated_calls_opt_in": false
 
4533
  },
4534
  {
4535
  "backward_conditional_branches": [],
@@ -4655,7 +4751,8 @@
4655
  289592
4656
  ],
4657
  "path": "scripts/analyze_qvm_server_fire_basis.py",
4658
- "repeated_calls_opt_in": false
 
4659
  },
4660
  {
4661
  "backward_conditional_branches": [],
@@ -4665,7 +4762,8 @@
4665
  "line": 39,
4666
  "literal_range": null,
4667
  "path": "scripts/analyze_qvm_server_fire_chain.py",
4668
- "repeated_calls_opt_in": false
 
4669
  },
4670
  {
4671
  "backward_conditional_branches": [],
@@ -4742,7 +4840,8 @@
4742
  289592
4743
  ],
4744
  "path": "scripts/analyze_qvm_server_fire_dispatch.py",
4745
- "repeated_calls_opt_in": false
 
4746
  },
4747
  {
4748
  "backward_conditional_branches": [],
@@ -4755,7 +4854,8 @@
4755
  151655
4756
  ],
4757
  "path": "scripts/analyze_qvm_server_fire_event.py",
4758
- "repeated_calls_opt_in": false
 
4759
  },
4760
  {
4761
  "backward_conditional_branches": [],
@@ -4765,7 +4865,8 @@
4765
  "line": 16,
4766
  "literal_range": null,
4767
  "path": "scripts/analyze_qvm_server_muzzle.py",
4768
- "repeated_calls_opt_in": false
 
4769
  },
4770
  {
4771
  "backward_conditional_branches": [],
@@ -4786,7 +4887,8 @@
4786
  289499
4787
  ],
4788
  "path": "scripts/analyze_qvm_server_muzzle.py",
4789
- "repeated_calls_opt_in": false
 
4790
  },
4791
  {
4792
  "backward_conditional_branches": [],
@@ -4799,7 +4901,8 @@
4799
  36777
4800
  ],
4801
  "path": "scripts/analyze_qvm_server_shot_setup.py",
4802
- "repeated_calls_opt_in": false
 
4803
  },
4804
  {
4805
  "backward_conditional_branches": [],
@@ -4827,7 +4930,8 @@
4827
  285966
4828
  ],
4829
  "path": "scripts/analyze_qvm_server_shot_setup.py",
4830
- "repeated_calls_opt_in": false
 
4831
  },
4832
  {
4833
  "backward_conditional_branches": [],
@@ -4848,7 +4952,8 @@
4848
  294041
4849
  ],
4850
  "path": "scripts/analyze_qvm_shared_shot_aim.py",
4851
- "repeated_calls_opt_in": false
 
4852
  },
4853
  {
4854
  "backward_conditional_branches": [],
@@ -4918,7 +5023,8 @@
4918
  294014
4919
  ],
4920
  "path": "scripts/analyze_qvm_shared_shot_basis.py",
4921
- "repeated_calls_opt_in": false
 
4922
  },
4923
  {
4924
  "backward_conditional_branches": [],
@@ -4946,7 +5052,8 @@
4946
  295311
4947
  ],
4948
  "path": "scripts/analyze_qvm_shot_frame.py",
4949
- "repeated_calls_opt_in": false
 
4950
  },
4951
  {
4952
  "backward_conditional_branches": [],
@@ -4967,7 +5074,8 @@
4967
  295495
4968
  ],
4969
  "path": "scripts/analyze_qvm_shot_frame.py",
4970
- "repeated_calls_opt_in": false
 
4971
  },
4972
  {
4973
  "backward_conditional_branches": [
@@ -5004,7 +5112,8 @@
5004
  291898
5005
  ],
5006
  "path": "scripts/analyze_qvm_shot_trace_request.py",
5007
- "repeated_calls_opt_in": false
 
5008
  },
5009
  {
5010
  "backward_conditional_branches": [],
@@ -5025,7 +5134,8 @@
5025
  291920
5026
  ],
5027
  "path": "scripts/analyze_qvm_shot_trace_request.py",
5028
- "repeated_calls_opt_in": false
 
5029
  },
5030
  {
5031
  "backward_conditional_branches": [],
@@ -5053,7 +5163,8 @@
5053
  50744
5054
  ],
5055
  "path": "scripts/analyze_qvm_special_query.py",
5056
- "repeated_calls_opt_in": false
 
5057
  },
5058
  {
5059
  "backward_conditional_branches": [],
@@ -5066,7 +5177,8 @@
5066
  290807
5067
  ],
5068
  "path": "scripts/analyze_qvm_spread_parameters.py",
5069
- "repeated_calls_opt_in": false
 
5070
  },
5071
  {
5072
  "backward_conditional_branches": [],
@@ -5108,7 +5220,8 @@
5108
  291081
5109
  ],
5110
  "path": "scripts/analyze_qvm_spread_sampling.py",
5111
- "repeated_calls_opt_in": false
 
5112
  },
5113
  {
5114
  "backward_conditional_branches": [],
@@ -5129,7 +5242,8 @@
5129
  290969
5130
  ],
5131
  "path": "scripts/analyze_qvm_spread_speed.py",
5132
- "repeated_calls_opt_in": false
 
5133
  },
5134
  {
5135
  "backward_conditional_branches": [
@@ -5166,7 +5280,8 @@
5166
  249740
5167
  ],
5168
  "path": "scripts/analyze_qvm_string_release.py",
5169
- "repeated_calls_opt_in": false
 
5170
  },
5171
  {
5172
  "backward_conditional_branches": [],
@@ -5179,7 +5294,8 @@
5179
  21491
5180
  ],
5181
  "path": "scripts/analyze_qvm_surface_category.py",
5182
- "repeated_calls_opt_in": false
 
5183
  },
5184
  {
5185
  "backward_conditional_branches": [
@@ -5194,7 +5310,8 @@
5194
  36487
5195
  ],
5196
  "path": "scripts/analyze_qvm_surface_category.py",
5197
- "repeated_calls_opt_in": false
 
5198
  },
5199
  {
5200
  "backward_conditional_branches": [],
@@ -5222,7 +5339,8 @@
5222
  21579
5223
  ],
5224
  "path": "scripts/analyze_qvm_surface_category.py",
5225
- "repeated_calls_opt_in": false
 
5226
  },
5227
  {
5228
  "backward_conditional_branches": [
@@ -5287,7 +5405,8 @@
5287
  42484
5288
  ],
5289
  "path": "scripts/analyze_qvm_swim_mode.py",
5290
- "repeated_calls_opt_in": false
 
5291
  },
5292
  {
5293
  "backward_conditional_branches": [],
@@ -5300,7 +5419,8 @@
5300
  33713
5301
  ],
5302
  "path": "scripts/analyze_qvm_swing_controller.py",
5303
- "repeated_calls_opt_in": false
 
5304
  },
5305
  {
5306
  "backward_conditional_branches": [],
@@ -5313,7 +5433,8 @@
5313
  278199
5314
  ],
5315
  "path": "scripts/analyze_qvm_temp_event.py",
5316
- "repeated_calls_opt_in": false
 
5317
  },
5318
  {
5319
  "backward_conditional_branches": [],
@@ -5348,7 +5469,8 @@
5348
  277777
5349
  ],
5350
  "path": "scripts/analyze_qvm_temp_event.py",
5351
- "repeated_calls_opt_in": false
 
5352
  },
5353
  {
5354
  "backward_conditional_branches": [],
@@ -5432,7 +5554,8 @@
5432
  49325
5433
  ],
5434
  "path": "scripts/analyze_qvm_torso_selector.py",
5435
- "repeated_calls_opt_in": false
 
5436
  },
5437
  {
5438
  "backward_conditional_branches": [
@@ -5447,7 +5570,8 @@
5447
  292504
5448
  ],
5449
  "path": "scripts/analyze_qvm_trace_bounds_restore.py",
5450
- "repeated_calls_opt_in": false
 
5451
  },
5452
  {
5453
  "backward_conditional_branches": [
@@ -5498,7 +5622,8 @@
5498
  292299
5499
  ],
5500
  "path": "scripts/analyze_qvm_trace_classify.py",
5501
- "repeated_calls_opt_in": false
 
5502
  },
5503
  {
5504
  "backward_conditional_branches": [],
@@ -5526,7 +5651,8 @@
5526
  292543
5527
  ],
5528
  "path": "scripts/analyze_qvm_trace_finalize.py",
5529
- "repeated_calls_opt_in": false
 
5530
  },
5531
  {
5532
  "backward_conditional_branches": [
@@ -5549,7 +5675,8 @@
5549
  292326
5550
  ],
5551
  "path": "scripts/analyze_qvm_trace_relink.py",
5552
- "repeated_calls_opt_in": false
 
5553
  },
5554
  {
5555
  "backward_conditional_branches": [
@@ -5652,7 +5779,8 @@
5652
  292543
5653
  ],
5654
  "path": "scripts/analyze_qvm_trace_response_chain.py",
5655
- "repeated_calls_opt_in": false
 
5656
  },
5657
  {
5658
  "backward_conditional_branches": [
@@ -5710,7 +5838,8 @@
5710
  292299
5711
  ],
5712
  "path": "scripts/analyze_qvm_trace_retry.py",
5713
- "repeated_calls_opt_in": false
 
5714
  },
5715
  {
5716
  "backward_conditional_branches": [
@@ -5840,7 +5969,8 @@
5840
  296197
5841
  ],
5842
  "path": "scripts/analyze_qvm_twenty_pellets.py",
5843
- "repeated_calls_opt_in": false
 
5844
  },
5845
  {
5846
  "backward_conditional_branches": [
@@ -5970,7 +6100,8 @@
5970
  296197
5971
  ],
5972
  "path": "scripts/analyze_qvm_twenty_pellets.py",
5973
- "repeated_calls_opt_in": false
 
5974
  },
5975
  {
5976
  "backward_conditional_branches": [],
@@ -6005,7 +6136,8 @@
6005
  63120
6006
  ],
6007
  "path": "scripts/analyze_qvm_vector_angles.py",
6008
- "repeated_calls_opt_in": false
 
6009
  },
6010
  {
6011
  "backward_conditional_branches": [],
@@ -6018,7 +6150,8 @@
6018
  33738
6019
  ],
6020
  "path": "scripts/analyze_qvm_victim_stats.py",
6021
- "repeated_calls_opt_in": false
 
6022
  },
6023
  {
6024
  "backward_conditional_branches": [],
@@ -6053,7 +6186,8 @@
6053
  280296
6054
  ],
6055
  "path": "scripts/analyze_qvm_victim_stats.py",
6056
- "repeated_calls_opt_in": false
 
6057
  },
6058
  {
6059
  "backward_conditional_branches": [],
@@ -6102,7 +6236,8 @@
6102
  45143
6103
  ],
6104
  "path": "scripts/analyze_qvm_walk_policy.py",
6105
- "repeated_calls_opt_in": false
 
6106
  },
6107
  {
6108
  "backward_conditional_branches": [
@@ -6160,7 +6295,8 @@
6160
  44110
6161
  ],
6162
  "path": "scripts/analyze_qvm_walk_wish.py",
6163
- "repeated_calls_opt_in": false
 
6164
  },
6165
  {
6166
  "backward_conditional_branches": [],
@@ -6181,7 +6317,8 @@
6181
  45199
6182
  ],
6183
  "path": "scripts/analyze_qvm_walking_mode.py",
6184
- "repeated_calls_opt_in": false
 
6185
  },
6186
  {
6187
  "backward_conditional_branches": [],
@@ -6223,7 +6360,8 @@
6223
  43157
6224
  ],
6225
  "path": "scripts/analyze_qvm_wall_action.py",
6226
- "repeated_calls_opt_in": false
 
6227
  },
6228
  {
6229
  "backward_conditional_branches": [],
@@ -6258,7 +6396,8 @@
6258
  41766
6259
  ],
6260
  "path": "scripts/analyze_qvm_water_entry.py",
6261
- "repeated_calls_opt_in": true
 
6262
  },
6263
  {
6264
  "backward_conditional_branches": [],
@@ -6307,7 +6446,8 @@
6307
  48796
6308
  ],
6309
  "path": "scripts/analyze_qvm_water_events.py",
6310
- "repeated_calls_opt_in": false
 
6311
  },
6312
  {
6313
  "backward_conditional_branches": [
@@ -6386,7 +6526,8 @@
6386
  42484
6387
  ],
6388
  "path": "scripts/analyze_qvm_water_route.py",
6389
- "repeated_calls_opt_in": false
 
6390
  },
6391
  {
6392
  "backward_conditional_branches": [],
@@ -6428,7 +6569,8 @@
6428
  49115
6429
  ],
6430
  "path": "scripts/analyze_qvm_weapon_complete.py",
6431
- "repeated_calls_opt_in": false
 
6432
  },
6433
  {
6434
  "backward_conditional_branches": [],
@@ -6715,7 +6857,8 @@
6715
  53046
6716
  ],
6717
  "path": "scripts/analyze_qvm_weapon_complete_body.py",
6718
- "repeated_calls_opt_in": false
 
6719
  },
6720
  {
6721
  "backward_conditional_branches": [],
@@ -6771,7 +6914,8 @@
6771
  54464
6772
  ],
6773
  "path": "scripts/analyze_qvm_weapon_complete_body.py",
6774
- "repeated_calls_opt_in": false
 
6775
  },
6776
  {
6777
  "backward_conditional_branches": [],
@@ -7030,7 +7174,8 @@
7030
  53046
7031
  ],
7032
  "path": "scripts/analyze_qvm_weapon_guards.py",
7033
- "repeated_calls_opt_in": false
 
7034
  },
7035
  {
7036
  "backward_conditional_branches": [
@@ -7045,7 +7190,8 @@
7045
  31727
7046
  ],
7047
  "path": "scripts/analyze_qvm_weapon_lookup.py",
7048
- "repeated_calls_opt_in": false
 
7049
  },
7050
  {
7051
  "backward_conditional_branches": [],
@@ -7290,7 +7436,8 @@
7290
  53046
7291
  ],
7292
  "path": "scripts/analyze_qvm_weapon_phases.py",
7293
- "repeated_calls_opt_in": false
 
7294
  },
7295
  {
7296
  "backward_conditional_branches": [],
@@ -7303,7 +7450,8 @@
7303
  49650
7304
  ],
7305
  "path": "scripts/analyze_qvm_weapon_prefix.py",
7306
- "repeated_calls_opt_in": false
 
7307
  },
7308
  {
7309
  "backward_conditional_branches": [],
@@ -7590,7 +7738,8 @@
7590
  53046
7591
  ],
7592
  "path": "scripts/analyze_qvm_weapon_prefix.py",
7593
- "repeated_calls_opt_in": false
 
7594
  },
7595
  {
7596
  "backward_conditional_branches": [],
@@ -7849,7 +7998,8 @@
7849
  53046
7850
  ],
7851
  "path": "scripts/analyze_qvm_weapon_ready.py",
7852
- "repeated_calls_opt_in": false
 
7853
  },
7854
  {
7855
  "backward_conditional_branches": [],
@@ -7877,7 +8027,8 @@
7877
  54452
7878
  ],
7879
  "path": "scripts/analyze_qvm_weapon_return_chains.py",
7880
- "repeated_calls_opt_in": false
 
7881
  },
7882
  {
7883
  "backward_conditional_branches": [],
@@ -7912,7 +8063,8 @@
7912
  49026
7913
  ],
7914
  "path": "scripts/analyze_qvm_weapon_select.py",
7915
- "repeated_calls_opt_in": false
 
7916
  },
7917
  {
7918
  "backward_conditional_branches": [],
@@ -8178,7 +8330,8 @@
8178
  53046
8179
  ],
8180
  "path": "scripts/analyze_qvm_weapon_selection_caller.py",
8181
- "repeated_calls_opt_in": false
 
8182
  },
8183
  {
8184
  "backward_conditional_branches": [
@@ -8193,7 +8346,8 @@
8193
  36121
8194
  ],
8195
  "path": "scripts/analyze_qvm_word_strlen.py",
8196
- "repeated_calls_opt_in": false
 
8197
  },
8198
  {
8199
  "backward_conditional_branches": [],
@@ -8228,7 +8382,8 @@
8228
  290491
8229
  ],
8230
  "path": "scripts/qvm_contact_support.py",
8231
- "repeated_calls_opt_in": false
 
8232
  },
8233
  {
8234
  "backward_conditional_branches": [],
@@ -8249,7 +8404,8 @@
8249
  285225
8250
  ],
8251
  "path": "scripts/qvm_contact_support.py",
8252
- "repeated_calls_opt_in": false
 
8253
  },
8254
  {
8255
  "backward_conditional_branches": [],
@@ -8259,7 +8415,8 @@
8259
  "line": 80,
8260
  "literal_range": null,
8261
  "path": "scripts/qvm_contact_support.py",
8262
- "repeated_calls_opt_in": false
 
8263
  },
8264
  {
8265
  "backward_conditional_branches": [],
@@ -8269,7 +8426,8 @@
8269
  "line": 28,
8270
  "literal_range": null,
8271
  "path": "scripts/qvm_damage_support.py",
8272
- "repeated_calls_opt_in": false
 
8273
  },
8274
  {
8275
  "backward_conditional_branches": [],
@@ -8279,7 +8437,8 @@
8279
  "line": 27,
8280
  "literal_range": null,
8281
  "path": "scripts/qvm_firing_support.py",
8282
- "repeated_calls_opt_in": false
 
8283
  },
8284
  {
8285
  "backward_conditional_branches": [],
@@ -8292,7 +8451,8 @@
8292
  211237
8293
  ],
8294
  "path": "scripts/qvm_health_effects_support.py",
8295
- "repeated_calls_opt_in": false
 
8296
  },
8297
  {
8298
  "backward_conditional_branches": [],
@@ -8302,7 +8462,8 @@
8302
  "line": 50,
8303
  "literal_range": null,
8304
  "path": "scripts/qvm_health_effects_support.py",
8305
- "repeated_calls_opt_in": false
 
8306
  },
8307
  {
8308
  "backward_conditional_branches": [],
@@ -8312,7 +8473,8 @@
8312
  "line": 24,
8313
  "literal_range": null,
8314
  "path": "scripts/qvm_health_support.py",
8315
- "repeated_calls_opt_in": false
 
8316
  },
8317
  {
8318
  "backward_conditional_branches": [
@@ -8336,7 +8498,8 @@
8336
  285141
8337
  ],
8338
  "path": "scripts/qvm_leaderboard_selector_support.py",
8339
- "repeated_calls_opt_in": true
 
8340
  },
8341
  {
8342
  "backward_conditional_branches": [],
@@ -8349,7 +8512,8 @@
8349
  278691
8350
  ],
8351
  "path": "scripts/qvm_leaderboard_support.py",
8352
- "repeated_calls_opt_in": false
 
8353
  },
8354
  {
8355
  "backward_conditional_branches": [],
@@ -8362,7 +8526,8 @@
8362
  284608
8363
  ],
8364
  "path": "scripts/qvm_leaderboard_support.py",
8365
- "repeated_calls_opt_in": false
 
8366
  },
8367
  {
8368
  "backward_conditional_branches": [],
@@ -8372,7 +8537,8 @@
8372
  "line": 39,
8373
  "literal_range": null,
8374
  "path": "scripts/qvm_lifecycle_support.py",
8375
- "repeated_calls_opt_in": false
 
8376
  },
8377
  {
8378
  "backward_conditional_branches": [],
@@ -8385,7 +8551,8 @@
8385
  278833
8386
  ],
8387
  "path": "scripts/qvm_method_stats_support.py",
8388
- "repeated_calls_opt_in": false
 
8389
  },
8390
  {
8391
  "backward_conditional_branches": [],
@@ -8395,7 +8562,8 @@
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": [],
@@ -8416,7 +8584,154 @@
8416
  5863
8417
  ],
8418
  "path": "scripts/qvm_rank_compare_support.py",
8419
- "repeated_calls_opt_in": true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8420
  },
8421
  {
8422
  "backward_conditional_branches": [
@@ -8432,7 +8747,8 @@
8432
  34962
8433
  ],
8434
  "path": "scripts/qvm_rank_partition_support.py",
8435
- "repeated_calls_opt_in": true
 
8436
  },
8437
  {
8438
  "backward_conditional_branches": [],
@@ -8487,7 +8803,8 @@
8487
  35093
8488
  ],
8489
  "path": "scripts/qvm_rank_partition_support.py",
8490
- "repeated_calls_opt_in": true
 
8491
  },
8492
  {
8493
  "backward_conditional_branches": [
@@ -8629,7 +8946,8 @@
8629
  36036
8630
  ],
8631
  "path": "scripts/qvm_rank_sort_support.py",
8632
- "repeated_calls_opt_in": true
 
8633
  },
8634
  {
8635
  "backward_conditional_branches": [
@@ -8666,7 +8984,8 @@
8666
  285484
8667
  ],
8668
  "path": "scripts/qvm_recent_award_support.py",
8669
- "repeated_calls_opt_in": true
 
8670
  },
8671
  {
8672
  "backward_conditional_branches": [],
@@ -8676,7 +8995,8 @@
8676
  "line": 36,
8677
  "literal_range": null,
8678
  "path": "scripts/qvm_recipient_payload_support.py",
8679
- "repeated_calls_opt_in": false
 
8680
  },
8681
  {
8682
  "backward_conditional_branches": [
@@ -8699,7 +9019,8 @@
8699
  285578
8700
  ],
8701
  "path": "scripts/qvm_record_clear_support.py",
8702
- "repeated_calls_opt_in": true
 
8703
  },
8704
  {
8705
  "backward_conditional_branches": [],
@@ -8720,7 +9041,8 @@
8720
  205328
8721
  ],
8722
  "path": "scripts/qvm_score_support.py",
8723
- "repeated_calls_opt_in": false
 
8724
  },
8725
  {
8726
  "backward_conditional_branches": [
@@ -8735,7 +9057,8 @@
8735
  283554
8736
  ],
8737
  "path": "scripts/qvm_stat_ratio_support.py",
8738
- "repeated_calls_opt_in": false
 
8739
  },
8740
  {
8741
  "backward_conditional_branches": [],
@@ -8805,7 +9128,8 @@
8805
  279718
8806
  ],
8807
  "path": "scripts/qvm_stat_ratio_support.py",
8808
- "repeated_calls_opt_in": false
 
8809
  },
8810
  {
8811
  "backward_conditional_branches": [],
@@ -8815,7 +9139,8 @@
8815
  "line": 18,
8816
  "literal_range": null,
8817
  "path": "scripts/qvm_stat_totals_support.py",
8818
- "repeated_calls_opt_in": false
 
8819
  },
8820
  {
8821
  "backward_conditional_branches": [],
@@ -8927,7 +9252,8 @@
8927
  279584
8928
  ],
8929
  "path": "scripts/qvm_stat_update_support.py",
8930
- "repeated_calls_opt_in": true
 
8931
  },
8932
  {
8933
  "backward_conditional_branches": [],
@@ -8948,7 +9274,8 @@
8948
  279818
8949
  ],
8950
  "path": "scripts/qvm_team_counter_support.py",
8951
- "repeated_calls_opt_in": true
 
8952
  }
8953
  ],
8954
  "limits": "Static direct-import calls only, including local aliases. Computed ranges, indirect/module calls and reachability need manual/dynamic review. Backward branches and dynamic stores are review markers, not proven failures; fixture compatibility is not semantic proof.",
@@ -8989,9 +9316,10 @@
8989
  }
8990
  },
8991
  "summary": {
8992
- "call_expressions": 181,
8993
- "files": 141,
8994
- "legacy_expressions": 162,
8995
- "nonliteral_ranges": 20
 
8996
  }
8997
  }
 
110
  21728
111
  ],
112
  "path": "scripts/analyze_md3_bindings.py",
113
+ "repeated_calls_opt_in": false,
114
+ "repeated_calls_setting": "default_false"
115
  },
116
  {
117
  "backward_conditional_branches": [
 
126
  36487
127
  ],
128
  "path": "scripts/analyze_md3_original_hierarchy.py",
129
+ "repeated_calls_opt_in": false,
130
+ "repeated_calls_setting": "default_false"
131
  },
132
  {
133
  "backward_conditional_branches": [
 
164
  21918
165
  ],
166
  "path": "scripts/analyze_md3_original_hierarchy.py",
167
+ "repeated_calls_opt_in": false,
168
+ "repeated_calls_setting": "default_false"
169
  },
170
  {
171
  "backward_conditional_branches": [],
 
178
  291639
179
  ],
180
  "path": "scripts/analyze_qvm_aim_endpoint.py",
181
+ "repeated_calls_opt_in": false,
182
+ "repeated_calls_setting": "default_false"
183
  },
184
  {
185
  "backward_conditional_branches": [],
 
235
  291476
236
  ],
237
  "path": "scripts/analyze_qvm_aim_extra_offsets.py",
238
+ "repeated_calls_opt_in": false,
239
+ "repeated_calls_setting": "default_false"
240
  },
241
  {
242
  "backward_conditional_branches": [],
 
278
  291079
279
  ],
280
  "path": "scripts/analyze_qvm_aim_trig.py",
281
+ "repeated_calls_opt_in": false,
282
+ "repeated_calls_setting": "default_false"
283
  },
284
  {
285
  "backward_conditional_branches": [],
 
335
  291315
336
  ],
337
  "path": "scripts/analyze_qvm_aim_trig.py",
338
+ "repeated_calls_opt_in": false,
339
+ "repeated_calls_setting": "default_false"
340
  },
341
  {
342
  "backward_conditional_branches": [],
 
371
  277777
372
  ],
373
  "path": "scripts/analyze_qvm_allocated_event.py",
374
+ "repeated_calls_opt_in": false,
375
+ "repeated_calls_setting": "default_false"
376
  },
377
  {
378
  "backward_conditional_branches": [],
 
393
  65728
394
  ],
395
  "path": "scripts/analyze_qvm_base_fire_gate.py",
396
+ "repeated_calls_opt_in": false,
397
+ "repeated_calls_setting": "default_false"
398
  },
399
  {
400
  "backward_conditional_branches": [
 
480
  289233
481
  ],
482
  "path": "scripts/analyze_qvm_base_fire_gate.py",
483
+ "repeated_calls_opt_in": false,
484
+ "repeated_calls_setting": "default_false"
485
  },
486
  {
487
  "backward_conditional_branches": [],
 
558
  289233
559
  ],
560
  "path": "scripts/analyze_qvm_base_fire_gate.py",
561
+ "repeated_calls_opt_in": false,
562
+ "repeated_calls_setting": "default_false"
563
  },
564
  {
565
  "backward_conditional_branches": [],
 
671
  29545
672
  ],
673
  "path": "scripts/analyze_qvm_basic_trajectory.py",
674
+ "repeated_calls_opt_in": false,
675
+ "repeated_calls_setting": "default_false"
676
  },
677
  {
678
  "backward_conditional_branches": [
 
687
  23090
688
  ],
689
  "path": "scripts/analyze_qvm_child_origin.py",
690
+ "repeated_calls_opt_in": false,
691
+ "repeated_calls_setting": "default_false"
692
  },
693
  {
694
  "backward_conditional_branches": [
 
703
  23090
704
  ],
705
  "path": "scripts/analyze_qvm_child_transform.py",
706
+ "repeated_calls_opt_in": false,
707
+ "repeated_calls_setting": "default_false"
708
  },
709
  {
710
  "backward_conditional_branches": [
 
757
  25339
758
  ],
759
  "path": "scripts/analyze_qvm_complete_leaf.py",
760
+ "repeated_calls_opt_in": false,
761
+ "repeated_calls_setting": "default_false"
762
  },
763
  {
764
  "backward_conditional_branches": [
 
774
  26036
775
  ],
776
  "path": "scripts/analyze_qvm_complete_model_hit.py",
777
+ "repeated_calls_opt_in": false,
778
+ "repeated_calls_setting": "default_false"
779
  },
780
  {
781
  "backward_conditional_branches": [],
 
971
  146621
972
  ],
973
  "path": "scripts/analyze_qvm_complete_model_hit.py",
974
+ "repeated_calls_opt_in": false,
975
+ "repeated_calls_setting": "default_false"
976
  },
977
  {
978
  "backward_conditional_branches": [],
 
1091
  33389
1092
  ],
1093
  "path": "scripts/analyze_qvm_complete_pose.py",
1094
+ "repeated_calls_opt_in": false,
1095
+ "repeated_calls_setting": "default_false"
1096
  },
1097
  {
1098
  "backward_conditional_branches": [
 
1150
  144080
1151
  ],
1152
  "path": "scripts/analyze_qvm_complete_rewind.py",
1153
+ "repeated_calls_opt_in": false,
1154
+ "repeated_calls_setting": "default_false"
1155
  },
1156
  {
1157
  "backward_conditional_branches": [
 
1174
  144163
1175
  ],
1176
  "path": "scripts/analyze_qvm_complete_rewind_selectors.py",
1177
+ "repeated_calls_opt_in": false,
1178
+ "repeated_calls_setting": "default_false"
1179
  },
1180
  {
1181
  "backward_conditional_branches": [],
 
1238
  293628
1239
  ],
1240
  "path": "scripts/analyze_qvm_contact_dispatch.py",
1241
+ "repeated_calls_opt_in": false,
1242
+ "repeated_calls_setting": "default_false"
1243
  },
1244
  {
1245
  "backward_conditional_branches": [],
 
1386
  293730
1387
  ],
1388
  "path": "scripts/analyze_qvm_contact_gates.py",
1389
+ "repeated_calls_opt_in": false,
1390
+ "repeated_calls_setting": "default_false"
1391
  },
1392
  {
1393
  "backward_conditional_branches": [],
 
1492
  277693
1493
  ],
1494
  "path": "scripts/analyze_qvm_entity_free.py",
1495
+ "repeated_calls_opt_in": false,
1496
+ "repeated_calls_setting": "default_false"
1497
  },
1498
  {
1499
  "backward_conditional_branches": [],
 
1506
  277163
1507
  ],
1508
  "path": "scripts/analyze_qvm_entity_init.py",
1509
+ "repeated_calls_opt_in": false,
1510
+ "repeated_calls_setting": "default_false"
1511
  },
1512
  {
1513
  "backward_conditional_branches": [
 
1522
  276503
1523
  ],
1524
  "path": "scripts/analyze_qvm_entity_query.py",
1525
+ "repeated_calls_opt_in": false,
1526
+ "repeated_calls_setting": "default_false"
1527
  },
1528
  {
1529
  "backward_conditional_branches": [
 
1547
  277262
1548
  ],
1549
  "path": "scripts/analyze_qvm_entity_reuse.py",
1550
+ "repeated_calls_opt_in": false,
1551
+ "repeated_calls_setting": "default_false"
1552
  },
1553
  {
1554
  "backward_conditional_branches": [
 
1678
  296197
1679
  ],
1680
  "path": "scripts/analyze_qvm_event57_world_return.py",
1681
+ "repeated_calls_opt_in": false,
1682
+ "repeated_calls_setting": "default_false"
1683
  },
1684
  {
1685
  "backward_conditional_branches": [],
 
1714
  285969
1715
  ],
1716
  "path": "scripts/analyze_qvm_event57_world_return.py",
1717
+ "repeated_calls_opt_in": false,
1718
+ "repeated_calls_setting": "default_false"
1719
  },
1720
  {
1721
  "backward_conditional_branches": [],
 
1725
  "line": 12,
1726
  "literal_range": null,
1727
  "path": "scripts/analyze_qvm_execute_reentry.py",
1728
+ "repeated_calls_opt_in": false,
1729
+ "repeated_calls_setting": "expression_unresolved"
1730
  },
1731
  {
1732
  "backward_conditional_branches": [],
 
1738
  "line": 18,
1739
  "literal_range": null,
1740
  "path": "scripts/analyze_qvm_execute_reentry.py",
1741
+ "repeated_calls_opt_in": true,
1742
+ "repeated_calls_setting": "literal_true"
1743
  },
1744
  {
1745
  "backward_conditional_branches": [],
 
1749
  "line": 24,
1750
  "literal_range": null,
1751
  "path": "scripts/analyze_qvm_execute_reentry.py",
1752
+ "repeated_calls_opt_in": true,
1753
+ "repeated_calls_setting": "literal_true"
1754
  },
1755
  {
1756
  "backward_conditional_branches": [],
 
1785
  54979
1786
  ],
1787
  "path": "scripts/analyze_qvm_fire_sequences.py",
1788
+ "repeated_calls_opt_in": false,
1789
+ "repeated_calls_setting": "default_false"
1790
  },
1791
  {
1792
  "backward_conditional_branches": [],
 
1799
  54558
1800
  ],
1801
  "path": "scripts/analyze_qvm_fire_sequences.py",
1802
+ "repeated_calls_opt_in": false,
1803
+ "repeated_calls_setting": "default_false"
1804
  },
1805
  {
1806
  "backward_conditional_branches": [],
 
1813
  53184
1814
  ],
1815
  "path": "scripts/analyze_qvm_fire_sequences.py",
1816
+ "repeated_calls_opt_in": false,
1817
+ "repeated_calls_setting": "default_false"
1818
  },
1819
  {
1820
  "backward_conditional_branches": [
 
1858
  42836
1859
  ],
1860
  "path": "scripts/analyze_qvm_freeflight.py",
1861
+ "repeated_calls_opt_in": false,
1862
+ "repeated_calls_setting": "default_false"
1863
  },
1864
  {
1865
  "backward_conditional_branches": [],
 
1880
  278122
1881
  ],
1882
  "path": "scripts/analyze_qvm_grenade_event_prefix.py",
1883
+ "repeated_calls_opt_in": false,
1884
+ "repeated_calls_setting": "default_false"
1885
  },
1886
  {
1887
  "backward_conditional_branches": [],
 
1923
  223253
1924
  ],
1925
  "path": "scripts/analyze_qvm_grenade_event_prefix.py",
1926
+ "repeated_calls_opt_in": false,
1927
+ "repeated_calls_setting": "default_false"
1928
  },
1929
  {
1930
  "backward_conditional_branches": [],
 
1966
  286471
1967
  ],
1968
  "path": "scripts/analyze_qvm_grenade_setup.py",
1969
+ "repeated_calls_opt_in": false,
1970
+ "repeated_calls_setting": "default_false"
1971
  },
1972
  {
1973
  "backward_conditional_branches": [],
 
1980
  213209
1981
  ],
1982
  "path": "scripts/analyze_qvm_health_impulse.py",
1983
+ "repeated_calls_opt_in": false,
1984
+ "repeated_calls_setting": "default_false"
1985
  },
1986
  {
1987
  "backward_conditional_branches": [],
 
1994
  63793
1995
  ],
1996
  "path": "scripts/analyze_qvm_history_angle_lerp.py",
1997
+ "repeated_calls_opt_in": false,
1998
+ "repeated_calls_setting": "default_false"
1999
  },
2000
  {
2001
  "backward_conditional_branches": [],
 
2023
  143029
2024
  ],
2025
  "path": "scripts/analyze_qvm_history_append.py",
2026
+ "repeated_calls_opt_in": false,
2027
+ "repeated_calls_setting": "default_false"
2028
  },
2029
  {
2030
  "backward_conditional_branches": [
 
2039
  142771
2040
  ],
2041
  "path": "scripts/analyze_qvm_history_reset.py",
2042
+ "repeated_calls_opt_in": false,
2043
+ "repeated_calls_setting": "default_false"
2044
  },
2045
  {
2046
  "backward_conditional_branches": [],
 
2053
  143098
2054
  ],
2055
  "path": "scripts/analyze_qvm_history_vector_lerp.py",
2056
+ "repeated_calls_opt_in": false,
2057
+ "repeated_calls_setting": "default_false"
2058
  },
2059
  {
2060
  "backward_conditional_branches": [],
 
2089
  25137
2090
  ],
2091
  "path": "scripts/analyze_qvm_hit_geometry.py",
2092
+ "repeated_calls_opt_in": false,
2093
+ "repeated_calls_setting": "default_false"
2094
  },
2095
  {
2096
  "backward_conditional_branches": [
 
2106
  26036
2107
  ],
2108
  "path": "scripts/analyze_qvm_hit_publication.py",
2109
+ "repeated_calls_opt_in": false,
2110
+ "repeated_calls_setting": "default_false"
2111
  },
2112
  {
2113
  "backward_conditional_branches": [],
 
2120
  146621
2121
  ],
2122
  "path": "scripts/analyze_qvm_hit_publication.py",
2123
+ "repeated_calls_opt_in": false,
2124
+ "repeated_calls_setting": "default_false"
2125
  },
2126
  {
2127
  "backward_conditional_branches": [
 
2136
  32153
2137
  ],
2138
  "path": "scripts/analyze_qvm_interaction_request.py",
2139
+ "repeated_calls_opt_in": false,
2140
+ "repeated_calls_setting": "default_false"
2141
  },
2142
  {
2143
  "backward_conditional_branches": [],
 
2158
  32187
2159
  ],
2160
  "path": "scripts/analyze_qvm_interaction_request.py",
2161
+ "repeated_calls_opt_in": false,
2162
+ "repeated_calls_setting": "default_false"
2163
  },
2164
  {
2165
  "backward_conditional_branches": [],
 
2215
  50248
2216
  ],
2217
  "path": "scripts/analyze_qvm_interaction_request.py",
2218
+ "repeated_calls_opt_in": false,
2219
+ "repeated_calls_setting": "default_false"
2220
  },
2221
  {
2222
  "backward_conditional_branches": [
 
2288
  283817
2289
  ],
2290
  "path": "scripts/analyze_qvm_leaderboard_categories.py",
2291
+ "repeated_calls_opt_in": true,
2292
+ "repeated_calls_setting": "literal_true"
2293
  },
2294
  {
2295
  "backward_conditional_branches": [
 
2304
  23888
2305
  ],
2306
  "path": "scripts/analyze_qvm_leaf_basis.py",
2307
+ "repeated_calls_opt_in": false,
2308
+ "repeated_calls_setting": "default_false"
2309
  },
2310
  {
2311
  "backward_conditional_branches": [],
 
2318
  25281
2319
  ],
2320
  "path": "scripts/analyze_qvm_leaf_hit_publish.py",
2321
+ "repeated_calls_opt_in": false,
2322
+ "repeated_calls_setting": "default_false"
2323
  },
2324
  {
2325
  "backward_conditional_branches": [],
 
2332
  24515
2333
  ],
2334
  "path": "scripts/analyze_qvm_leaf_vertices.py",
2335
+ "repeated_calls_opt_in": false,
2336
+ "repeated_calls_setting": "default_false"
2337
  },
2338
  {
2339
  "backward_conditional_branches": [],
 
2522
  48714
2523
  ],
2524
  "path": "scripts/analyze_qvm_locomotion.py",
2525
+ "repeated_calls_opt_in": true,
2526
+ "repeated_calls_setting": "literal_true"
2527
  },
2528
  {
2529
  "backward_conditional_branches": [],
 
2796
  48714
2797
  ],
2798
  "path": "scripts/analyze_qvm_locomotion_prefix.py",
2799
+ "repeated_calls_opt_in": true,
2800
+ "repeated_calls_setting": "literal_true"
2801
  },
2802
  {
2803
  "backward_conditional_branches": [],
 
2825
  54452
2826
  ],
2827
  "path": "scripts/analyze_qvm_main_consumers.py",
2828
+ "repeated_calls_opt_in": false,
2829
+ "repeated_calls_setting": "default_false"
2830
  },
2831
  {
2832
  "backward_conditional_branches": [],
 
2861
  54464
2862
  ],
2863
  "path": "scripts/analyze_qvm_main_consumers.py",
2864
+ "repeated_calls_opt_in": false,
2865
+ "repeated_calls_setting": "default_false"
2866
  },
2867
  {
2868
  "backward_conditional_branches": [
 
2906
  25833
2907
  ],
2908
  "path": "scripts/analyze_qvm_model_child_samples.py",
2909
+ "repeated_calls_opt_in": false,
2910
+ "repeated_calls_setting": "default_false"
2911
  },
2912
  {
2913
  "backward_conditional_branches": [
 
2922
  23090
2923
  ],
2924
  "path": "scripts/analyze_qvm_model_hierarchy.py",
2925
+ "repeated_calls_opt_in": false,
2926
+ "repeated_calls_setting": "default_false"
2927
  },
2928
  {
2929
  "backward_conditional_branches": [
 
2967
  25833
2968
  ],
2969
  "path": "scripts/analyze_qvm_model_hierarchy.py",
2970
+ "repeated_calls_opt_in": false,
2971
+ "repeated_calls_setting": "default_false"
2972
  },
2973
  {
2974
  "backward_conditional_branches": [],
 
2989
  144898
2990
  ],
2991
  "path": "scripts/analyze_qvm_model_ray_prefix.py",
2992
+ "repeated_calls_opt_in": false,
2993
+ "repeated_calls_setting": "default_false"
2994
  },
2995
  {
2996
  "backward_conditional_branches": [],
 
3158
  146551
3159
  ],
3160
  "path": "scripts/analyze_qvm_model_transforms.py",
3161
+ "repeated_calls_opt_in": false,
3162
+ "repeated_calls_setting": "default_false"
3163
  },
3164
  {
3165
  "backward_conditional_branches": [],
 
3169
  "line": 14,
3170
  "literal_range": null,
3171
  "path": "scripts/analyze_qvm_no_target_stats.py",
3172
+ "repeated_calls_opt_in": false,
3173
+ "repeated_calls_setting": "default_false"
3174
  },
3175
  {
3176
  "backward_conditional_branches": [],
 
3205
  280296
3206
  ],
3207
  "path": "scripts/analyze_qvm_no_target_stats.py",
3208
+ "repeated_calls_opt_in": false,
3209
+ "repeated_calls_setting": "default_false"
3210
  },
3211
  {
3212
  "backward_conditional_branches": [],
 
3216
  "line": 15,
3217
  "literal_range": null,
3218
  "path": "scripts/analyze_qvm_packed_controls.py",
3219
+ "repeated_calls_opt_in": false,
3220
+ "repeated_calls_setting": "default_false"
3221
  },
3222
  {
3223
  "backward_conditional_branches": [],
 
3252
  295805
3253
  ],
3254
  "path": "scripts/analyze_qvm_pellet_endpoint.py",
3255
+ "repeated_calls_opt_in": false,
3256
+ "repeated_calls_setting": "default_false"
3257
  },
3258
  {
3259
  "backward_conditional_branches": [],
 
3266
  295612
3267
  ],
3268
  "path": "scripts/analyze_qvm_pellet_endpoint.py",
3269
+ "repeated_calls_opt_in": false,
3270
+ "repeated_calls_setting": "default_false"
3271
  },
3272
  {
3273
  "backward_conditional_branches": [],
 
3302
  295549
3303
  ],
3304
  "path": "scripts/analyze_qvm_pellet_rotation.py",
3305
+ "repeated_calls_opt_in": false,
3306
+ "repeated_calls_setting": "default_false"
3307
  },
3308
  {
3309
  "backward_conditional_branches": [],
 
3324
  295573
3325
  ],
3326
  "path": "scripts/analyze_qvm_pellet_rotation.py",
3327
+ "repeated_calls_opt_in": false,
3328
+ "repeated_calls_setting": "default_false"
3329
  },
3330
  {
3331
  "backward_conditional_branches": [
 
3362
  144764
3363
  ],
3364
  "path": "scripts/analyze_qvm_player_bb_construct.py",
3365
+ "repeated_calls_opt_in": false,
3366
+ "repeated_calls_setting": "default_false"
3367
  },
3368
  {
3369
  "backward_conditional_branches": [],
 
3391
  32428
3392
  ],
3393
  "path": "scripts/analyze_qvm_pose_controllers.py",
3394
+ "repeated_calls_opt_in": false,
3395
+ "repeated_calls_setting": "default_false"
3396
  },
3397
  {
3398
  "backward_conditional_branches": [],
 
3455
  33168
3456
  ],
3457
  "path": "scripts/analyze_qvm_pose_lean.py",
3458
+ "repeated_calls_opt_in": false,
3459
+ "repeated_calls_setting": "default_false"
3460
  },
3461
  {
3462
  "backward_conditional_branches": [],
 
3512
  32797
3513
  ],
3514
  "path": "scripts/analyze_qvm_pose_motion_yaw.py",
3515
+ "repeated_calls_opt_in": false,
3516
+ "repeated_calls_setting": "default_false"
3517
  },
3518
  {
3519
  "backward_conditional_branches": [],
 
3526
  32378
3527
  ],
3528
  "path": "scripts/analyze_qvm_pose_prefix.py",
3529
+ "repeated_calls_opt_in": false,
3530
+ "repeated_calls_setting": "default_false"
3531
  },
3532
  {
3533
  "backward_conditional_branches": [],
 
3540
  33389
3541
  ],
3542
  "path": "scripts/analyze_qvm_pose_publication.py",
3543
+ "repeated_calls_opt_in": false,
3544
+ "repeated_calls_setting": "default_false"
3545
  },
3546
  {
3547
  "backward_conditional_branches": [],
 
3569
  144985
3570
  ],
3571
  "path": "scripts/analyze_qvm_posed_model.py",
3572
+ "repeated_calls_opt_in": false,
3573
+ "repeated_calls_setting": "default_false"
3574
  },
3575
  {
3576
  "backward_conditional_branches": [],
 
3738
  146551
3739
  ],
3740
  "path": "scripts/analyze_qvm_posed_model.py",
3741
+ "repeated_calls_opt_in": false,
3742
+ "repeated_calls_setting": "default_false"
3743
  },
3744
  {
3745
  "backward_conditional_branches": [
 
3786
  6326
3787
  ],
3788
  "path": "scripts/analyze_qvm_ranking_complete.py",
3789
+ "repeated_calls_opt_in": true,
3790
+ "repeated_calls_setting": "literal_true"
3791
  },
3792
  {
3793
  "backward_conditional_branches": [
 
3803
  6086
3804
  ],
3805
  "path": "scripts/analyze_qvm_ranking_setup.py",
3806
+ "repeated_calls_opt_in": false,
3807
+ "repeated_calls_setting": "default_false"
3808
  },
3809
  {
3810
  "backward_conditional_branches": [],
 
3853
  25281
3854
  ],
3855
  "path": "scripts/analyze_qvm_ray_triangle.py",
3856
+ "repeated_calls_opt_in": false,
3857
+ "repeated_calls_setting": "default_false"
3858
  },
3859
  {
3860
  "backward_conditional_branches": [],
 
3889
  69375
3890
  ],
3891
  "path": "scripts/analyze_qvm_recipient_wire.py",
3892
+ "repeated_calls_opt_in": true,
3893
+ "repeated_calls_setting": "literal_true"
3894
  },
3895
  {
3896
  "backward_conditional_branches": [],
 
3903
  69384
3904
  ],
3905
  "path": "scripts/analyze_qvm_recipient_wire.py",
3906
+ "repeated_calls_opt_in": false,
3907
+ "repeated_calls_setting": "default_false"
3908
  },
3909
  {
3910
  "backward_conditional_branches": [],
 
3916
  "line": 13,
3917
  "literal_range": null,
3918
  "path": "scripts/analyze_qvm_reentry_witness.py",
3919
+ "repeated_calls_opt_in": false,
3920
+ "repeated_calls_setting": "expression_unresolved"
3921
  },
3922
  {
3923
  "backward_conditional_branches": [],
 
3927
  "line": 19,
3928
  "literal_range": null,
3929
  "path": "scripts/analyze_qvm_reentry_witness.py",
3930
+ "repeated_calls_opt_in": false,
3931
+ "repeated_calls_setting": "expression_unresolved"
3932
  },
3933
  {
3934
  "backward_conditional_branches": [],
 
4180
  53046
4181
  ],
4182
  "path": "scripts/analyze_qvm_reload_complete.py",
4183
+ "repeated_calls_opt_in": false,
4184
+ "repeated_calls_setting": "default_false"
4185
  },
4186
  {
4187
  "backward_conditional_branches": [],
 
4216
  49916
4217
  ],
4218
  "path": "scripts/analyze_qvm_reload_request.py",
4219
+ "repeated_calls_opt_in": false,
4220
+ "repeated_calls_setting": "default_false"
4221
  },
4222
  {
4223
  "backward_conditional_branches": [],
 
4227
  "line": 14,
4228
  "literal_range": null,
4229
  "path": "scripts/analyze_qvm_return_placement.py",
4230
+ "repeated_calls_opt_in": true,
4231
+ "repeated_calls_setting": "literal_true"
4232
  },
4233
  {
4234
  "backward_conditional_branches": [],
 
4284
  144080
4285
  ],
4286
  "path": "scripts/analyze_qvm_rewind_history_apply.py",
4287
+ "repeated_calls_opt_in": false,
4288
+ "repeated_calls_setting": "default_false"
4289
  },
4290
  {
4291
  "backward_conditional_branches": [
 
4300
  143582
4301
  ],
4302
  "path": "scripts/analyze_qvm_rewind_history_select.py",
4303
+ "repeated_calls_opt_in": false,
4304
+ "repeated_calls_setting": "default_false"
4305
  },
4306
  {
4307
  "backward_conditional_branches": [],
 
4322
  144411
4323
  ],
4324
  "path": "scripts/analyze_qvm_rewind_restore.py",
4325
+ "repeated_calls_opt_in": false,
4326
+ "repeated_calls_setting": "default_false"
4327
  },
4328
  {
4329
  "backward_conditional_branches": [
 
4346
  144163
4347
  ],
4348
  "path": "scripts/analyze_qvm_rewind_selectors.py",
4349
+ "repeated_calls_opt_in": false,
4350
+ "repeated_calls_setting": "default_false"
4351
  },
4352
  {
4353
  "backward_conditional_branches": [
 
4370
  144491
4371
  ],
4372
  "path": "scripts/analyze_qvm_rewind_selectors.py",
4373
+ "repeated_calls_opt_in": false,
4374
+ "repeated_calls_setting": "default_false"
4375
  },
4376
  {
4377
  "backward_conditional_branches": [
 
4429
  144080
4430
  ],
4431
  "path": "scripts/analyze_qvm_rewind_snapshot.py",
4432
+ "repeated_calls_opt_in": false,
4433
+ "repeated_calls_setting": "default_false"
4434
  },
4435
  {
4436
  "backward_conditional_branches": [
 
4533
  292543
4534
  ],
4535
  "path": "scripts/analyze_qvm_rewound_trace.py",
4536
+ "repeated_calls_opt_in": false,
4537
+ "repeated_calls_setting": "default_false"
4538
  },
4539
  {
4540
  "backward_conditional_branches": [],
 
4544
  "line": 18,
4545
  "literal_range": null,
4546
  "path": "scripts/analyze_qvm_rotate_point.py",
4547
+ "repeated_calls_opt_in": false,
4548
+ "repeated_calls_setting": "default_false"
4549
  },
4550
  {
4551
  "backward_conditional_branches": [
 
4624
  151952
4625
  ],
4626
  "path": "scripts/analyze_qvm_server_event_route.py",
4627
+ "repeated_calls_opt_in": false,
4628
+ "repeated_calls_setting": "default_false"
4629
  },
4630
  {
4631
  "backward_conditional_branches": [],
 
4751
  289592
4752
  ],
4753
  "path": "scripts/analyze_qvm_server_fire_basis.py",
4754
+ "repeated_calls_opt_in": false,
4755
+ "repeated_calls_setting": "default_false"
4756
  },
4757
  {
4758
  "backward_conditional_branches": [],
 
4762
  "line": 39,
4763
  "literal_range": null,
4764
  "path": "scripts/analyze_qvm_server_fire_chain.py",
4765
+ "repeated_calls_opt_in": false,
4766
+ "repeated_calls_setting": "default_false"
4767
  },
4768
  {
4769
  "backward_conditional_branches": [],
 
4840
  289592
4841
  ],
4842
  "path": "scripts/analyze_qvm_server_fire_dispatch.py",
4843
+ "repeated_calls_opt_in": false,
4844
+ "repeated_calls_setting": "default_false"
4845
  },
4846
  {
4847
  "backward_conditional_branches": [],
 
4854
  151655
4855
  ],
4856
  "path": "scripts/analyze_qvm_server_fire_event.py",
4857
+ "repeated_calls_opt_in": false,
4858
+ "repeated_calls_setting": "default_false"
4859
  },
4860
  {
4861
  "backward_conditional_branches": [],
 
4865
  "line": 16,
4866
  "literal_range": null,
4867
  "path": "scripts/analyze_qvm_server_muzzle.py",
4868
+ "repeated_calls_opt_in": false,
4869
+ "repeated_calls_setting": "default_false"
4870
  },
4871
  {
4872
  "backward_conditional_branches": [],
 
4887
  289499
4888
  ],
4889
  "path": "scripts/analyze_qvm_server_muzzle.py",
4890
+ "repeated_calls_opt_in": false,
4891
+ "repeated_calls_setting": "default_false"
4892
  },
4893
  {
4894
  "backward_conditional_branches": [],
 
4901
  36777
4902
  ],
4903
  "path": "scripts/analyze_qvm_server_shot_setup.py",
4904
+ "repeated_calls_opt_in": false,
4905
+ "repeated_calls_setting": "default_false"
4906
  },
4907
  {
4908
  "backward_conditional_branches": [],
 
4930
  285966
4931
  ],
4932
  "path": "scripts/analyze_qvm_server_shot_setup.py",
4933
+ "repeated_calls_opt_in": false,
4934
+ "repeated_calls_setting": "default_false"
4935
  },
4936
  {
4937
  "backward_conditional_branches": [],
 
4952
  294041
4953
  ],
4954
  "path": "scripts/analyze_qvm_shared_shot_aim.py",
4955
+ "repeated_calls_opt_in": false,
4956
+ "repeated_calls_setting": "default_false"
4957
  },
4958
  {
4959
  "backward_conditional_branches": [],
 
5023
  294014
5024
  ],
5025
  "path": "scripts/analyze_qvm_shared_shot_basis.py",
5026
+ "repeated_calls_opt_in": false,
5027
+ "repeated_calls_setting": "default_false"
5028
  },
5029
  {
5030
  "backward_conditional_branches": [],
 
5052
  295311
5053
  ],
5054
  "path": "scripts/analyze_qvm_shot_frame.py",
5055
+ "repeated_calls_opt_in": false,
5056
+ "repeated_calls_setting": "default_false"
5057
  },
5058
  {
5059
  "backward_conditional_branches": [],
 
5074
  295495
5075
  ],
5076
  "path": "scripts/analyze_qvm_shot_frame.py",
5077
+ "repeated_calls_opt_in": false,
5078
+ "repeated_calls_setting": "default_false"
5079
  },
5080
  {
5081
  "backward_conditional_branches": [
 
5112
  291898
5113
  ],
5114
  "path": "scripts/analyze_qvm_shot_trace_request.py",
5115
+ "repeated_calls_opt_in": false,
5116
+ "repeated_calls_setting": "default_false"
5117
  },
5118
  {
5119
  "backward_conditional_branches": [],
 
5134
  291920
5135
  ],
5136
  "path": "scripts/analyze_qvm_shot_trace_request.py",
5137
+ "repeated_calls_opt_in": false,
5138
+ "repeated_calls_setting": "default_false"
5139
  },
5140
  {
5141
  "backward_conditional_branches": [],
 
5163
  50744
5164
  ],
5165
  "path": "scripts/analyze_qvm_special_query.py",
5166
+ "repeated_calls_opt_in": false,
5167
+ "repeated_calls_setting": "default_false"
5168
  },
5169
  {
5170
  "backward_conditional_branches": [],
 
5177
  290807
5178
  ],
5179
  "path": "scripts/analyze_qvm_spread_parameters.py",
5180
+ "repeated_calls_opt_in": false,
5181
+ "repeated_calls_setting": "default_false"
5182
  },
5183
  {
5184
  "backward_conditional_branches": [],
 
5220
  291081
5221
  ],
5222
  "path": "scripts/analyze_qvm_spread_sampling.py",
5223
+ "repeated_calls_opt_in": false,
5224
+ "repeated_calls_setting": "default_false"
5225
  },
5226
  {
5227
  "backward_conditional_branches": [],
 
5242
  290969
5243
  ],
5244
  "path": "scripts/analyze_qvm_spread_speed.py",
5245
+ "repeated_calls_opt_in": false,
5246
+ "repeated_calls_setting": "default_false"
5247
  },
5248
  {
5249
  "backward_conditional_branches": [
 
5280
  249740
5281
  ],
5282
  "path": "scripts/analyze_qvm_string_release.py",
5283
+ "repeated_calls_opt_in": false,
5284
+ "repeated_calls_setting": "default_false"
5285
  },
5286
  {
5287
  "backward_conditional_branches": [],
 
5294
  21491
5295
  ],
5296
  "path": "scripts/analyze_qvm_surface_category.py",
5297
+ "repeated_calls_opt_in": false,
5298
+ "repeated_calls_setting": "default_false"
5299
  },
5300
  {
5301
  "backward_conditional_branches": [
 
5310
  36487
5311
  ],
5312
  "path": "scripts/analyze_qvm_surface_category.py",
5313
+ "repeated_calls_opt_in": false,
5314
+ "repeated_calls_setting": "default_false"
5315
  },
5316
  {
5317
  "backward_conditional_branches": [],
 
5339
  21579
5340
  ],
5341
  "path": "scripts/analyze_qvm_surface_category.py",
5342
+ "repeated_calls_opt_in": false,
5343
+ "repeated_calls_setting": "default_false"
5344
  },
5345
  {
5346
  "backward_conditional_branches": [
 
5405
  42484
5406
  ],
5407
  "path": "scripts/analyze_qvm_swim_mode.py",
5408
+ "repeated_calls_opt_in": false,
5409
+ "repeated_calls_setting": "default_false"
5410
  },
5411
  {
5412
  "backward_conditional_branches": [],
 
5419
  33713
5420
  ],
5421
  "path": "scripts/analyze_qvm_swing_controller.py",
5422
+ "repeated_calls_opt_in": false,
5423
+ "repeated_calls_setting": "default_false"
5424
  },
5425
  {
5426
  "backward_conditional_branches": [],
 
5433
  278199
5434
  ],
5435
  "path": "scripts/analyze_qvm_temp_event.py",
5436
+ "repeated_calls_opt_in": false,
5437
+ "repeated_calls_setting": "default_false"
5438
  },
5439
  {
5440
  "backward_conditional_branches": [],
 
5469
  277777
5470
  ],
5471
  "path": "scripts/analyze_qvm_temp_event.py",
5472
+ "repeated_calls_opt_in": false,
5473
+ "repeated_calls_setting": "default_false"
5474
  },
5475
  {
5476
  "backward_conditional_branches": [],
 
5554
  49325
5555
  ],
5556
  "path": "scripts/analyze_qvm_torso_selector.py",
5557
+ "repeated_calls_opt_in": false,
5558
+ "repeated_calls_setting": "default_false"
5559
  },
5560
  {
5561
  "backward_conditional_branches": [
 
5570
  292504
5571
  ],
5572
  "path": "scripts/analyze_qvm_trace_bounds_restore.py",
5573
+ "repeated_calls_opt_in": false,
5574
+ "repeated_calls_setting": "default_false"
5575
  },
5576
  {
5577
  "backward_conditional_branches": [
 
5622
  292299
5623
  ],
5624
  "path": "scripts/analyze_qvm_trace_classify.py",
5625
+ "repeated_calls_opt_in": false,
5626
+ "repeated_calls_setting": "default_false"
5627
  },
5628
  {
5629
  "backward_conditional_branches": [],
 
5651
  292543
5652
  ],
5653
  "path": "scripts/analyze_qvm_trace_finalize.py",
5654
+ "repeated_calls_opt_in": false,
5655
+ "repeated_calls_setting": "default_false"
5656
  },
5657
  {
5658
  "backward_conditional_branches": [
 
5675
  292326
5676
  ],
5677
  "path": "scripts/analyze_qvm_trace_relink.py",
5678
+ "repeated_calls_opt_in": false,
5679
+ "repeated_calls_setting": "default_false"
5680
  },
5681
  {
5682
  "backward_conditional_branches": [
 
5779
  292543
5780
  ],
5781
  "path": "scripts/analyze_qvm_trace_response_chain.py",
5782
+ "repeated_calls_opt_in": false,
5783
+ "repeated_calls_setting": "default_false"
5784
  },
5785
  {
5786
  "backward_conditional_branches": [
 
5838
  292299
5839
  ],
5840
  "path": "scripts/analyze_qvm_trace_retry.py",
5841
+ "repeated_calls_opt_in": false,
5842
+ "repeated_calls_setting": "default_false"
5843
  },
5844
  {
5845
  "backward_conditional_branches": [
 
5969
  296197
5970
  ],
5971
  "path": "scripts/analyze_qvm_twenty_pellets.py",
5972
+ "repeated_calls_opt_in": false,
5973
+ "repeated_calls_setting": "default_false"
5974
  },
5975
  {
5976
  "backward_conditional_branches": [
 
6100
  296197
6101
  ],
6102
  "path": "scripts/analyze_qvm_twenty_pellets.py",
6103
+ "repeated_calls_opt_in": false,
6104
+ "repeated_calls_setting": "default_false"
6105
  },
6106
  {
6107
  "backward_conditional_branches": [],
 
6136
  63120
6137
  ],
6138
  "path": "scripts/analyze_qvm_vector_angles.py",
6139
+ "repeated_calls_opt_in": false,
6140
+ "repeated_calls_setting": "default_false"
6141
  },
6142
  {
6143
  "backward_conditional_branches": [],
 
6150
  33738
6151
  ],
6152
  "path": "scripts/analyze_qvm_victim_stats.py",
6153
+ "repeated_calls_opt_in": false,
6154
+ "repeated_calls_setting": "default_false"
6155
  },
6156
  {
6157
  "backward_conditional_branches": [],
 
6186
  280296
6187
  ],
6188
  "path": "scripts/analyze_qvm_victim_stats.py",
6189
+ "repeated_calls_opt_in": false,
6190
+ "repeated_calls_setting": "default_false"
6191
  },
6192
  {
6193
  "backward_conditional_branches": [],
 
6236
  45143
6237
  ],
6238
  "path": "scripts/analyze_qvm_walk_policy.py",
6239
+ "repeated_calls_opt_in": false,
6240
+ "repeated_calls_setting": "default_false"
6241
  },
6242
  {
6243
  "backward_conditional_branches": [
 
6295
  44110
6296
  ],
6297
  "path": "scripts/analyze_qvm_walk_wish.py",
6298
+ "repeated_calls_opt_in": false,
6299
+ "repeated_calls_setting": "default_false"
6300
  },
6301
  {
6302
  "backward_conditional_branches": [],
 
6317
  45199
6318
  ],
6319
  "path": "scripts/analyze_qvm_walking_mode.py",
6320
+ "repeated_calls_opt_in": false,
6321
+ "repeated_calls_setting": "default_false"
6322
  },
6323
  {
6324
  "backward_conditional_branches": [],
 
6360
  43157
6361
  ],
6362
  "path": "scripts/analyze_qvm_wall_action.py",
6363
+ "repeated_calls_opt_in": false,
6364
+ "repeated_calls_setting": "default_false"
6365
  },
6366
  {
6367
  "backward_conditional_branches": [],
 
6396
  41766
6397
  ],
6398
  "path": "scripts/analyze_qvm_water_entry.py",
6399
+ "repeated_calls_opt_in": true,
6400
+ "repeated_calls_setting": "literal_true"
6401
  },
6402
  {
6403
  "backward_conditional_branches": [],
 
6446
  48796
6447
  ],
6448
  "path": "scripts/analyze_qvm_water_events.py",
6449
+ "repeated_calls_opt_in": false,
6450
+ "repeated_calls_setting": "default_false"
6451
  },
6452
  {
6453
  "backward_conditional_branches": [
 
6526
  42484
6527
  ],
6528
  "path": "scripts/analyze_qvm_water_route.py",
6529
+ "repeated_calls_opt_in": false,
6530
+ "repeated_calls_setting": "default_false"
6531
  },
6532
  {
6533
  "backward_conditional_branches": [],
 
6569
  49115
6570
  ],
6571
  "path": "scripts/analyze_qvm_weapon_complete.py",
6572
+ "repeated_calls_opt_in": false,
6573
+ "repeated_calls_setting": "default_false"
6574
  },
6575
  {
6576
  "backward_conditional_branches": [],
 
6857
  53046
6858
  ],
6859
  "path": "scripts/analyze_qvm_weapon_complete_body.py",
6860
+ "repeated_calls_opt_in": false,
6861
+ "repeated_calls_setting": "default_false"
6862
  },
6863
  {
6864
  "backward_conditional_branches": [],
 
6914
  54464
6915
  ],
6916
  "path": "scripts/analyze_qvm_weapon_complete_body.py",
6917
+ "repeated_calls_opt_in": false,
6918
+ "repeated_calls_setting": "default_false"
6919
  },
6920
  {
6921
  "backward_conditional_branches": [],
 
7174
  53046
7175
  ],
7176
  "path": "scripts/analyze_qvm_weapon_guards.py",
7177
+ "repeated_calls_opt_in": false,
7178
+ "repeated_calls_setting": "default_false"
7179
  },
7180
  {
7181
  "backward_conditional_branches": [
 
7190
  31727
7191
  ],
7192
  "path": "scripts/analyze_qvm_weapon_lookup.py",
7193
+ "repeated_calls_opt_in": false,
7194
+ "repeated_calls_setting": "default_false"
7195
  },
7196
  {
7197
  "backward_conditional_branches": [],
 
7436
  53046
7437
  ],
7438
  "path": "scripts/analyze_qvm_weapon_phases.py",
7439
+ "repeated_calls_opt_in": false,
7440
+ "repeated_calls_setting": "default_false"
7441
  },
7442
  {
7443
  "backward_conditional_branches": [],
 
7450
  49650
7451
  ],
7452
  "path": "scripts/analyze_qvm_weapon_prefix.py",
7453
+ "repeated_calls_opt_in": false,
7454
+ "repeated_calls_setting": "default_false"
7455
  },
7456
  {
7457
  "backward_conditional_branches": [],
 
7738
  53046
7739
  ],
7740
  "path": "scripts/analyze_qvm_weapon_prefix.py",
7741
+ "repeated_calls_opt_in": false,
7742
+ "repeated_calls_setting": "default_false"
7743
  },
7744
  {
7745
  "backward_conditional_branches": [],
 
7998
  53046
7999
  ],
8000
  "path": "scripts/analyze_qvm_weapon_ready.py",
8001
+ "repeated_calls_opt_in": false,
8002
+ "repeated_calls_setting": "default_false"
8003
  },
8004
  {
8005
  "backward_conditional_branches": [],
 
8027
  54452
8028
  ],
8029
  "path": "scripts/analyze_qvm_weapon_return_chains.py",
8030
+ "repeated_calls_opt_in": false,
8031
+ "repeated_calls_setting": "default_false"
8032
  },
8033
  {
8034
  "backward_conditional_branches": [],
 
8063
  49026
8064
  ],
8065
  "path": "scripts/analyze_qvm_weapon_select.py",
8066
+ "repeated_calls_opt_in": false,
8067
+ "repeated_calls_setting": "default_false"
8068
  },
8069
  {
8070
  "backward_conditional_branches": [],
 
8330
  53046
8331
  ],
8332
  "path": "scripts/analyze_qvm_weapon_selection_caller.py",
8333
+ "repeated_calls_opt_in": false,
8334
+ "repeated_calls_setting": "default_false"
8335
  },
8336
  {
8337
  "backward_conditional_branches": [
 
8346
  36121
8347
  ],
8348
  "path": "scripts/analyze_qvm_word_strlen.py",
8349
+ "repeated_calls_opt_in": false,
8350
+ "repeated_calls_setting": "default_false"
8351
  },
8352
  {
8353
  "backward_conditional_branches": [],
 
8382
  290491
8383
  ],
8384
  "path": "scripts/qvm_contact_support.py",
8385
+ "repeated_calls_opt_in": false,
8386
+ "repeated_calls_setting": "default_false"
8387
  },
8388
  {
8389
  "backward_conditional_branches": [],
 
8404
  285225
8405
  ],
8406
  "path": "scripts/qvm_contact_support.py",
8407
+ "repeated_calls_opt_in": false,
8408
+ "repeated_calls_setting": "default_false"
8409
  },
8410
  {
8411
  "backward_conditional_branches": [],
 
8415
  "line": 80,
8416
  "literal_range": null,
8417
  "path": "scripts/qvm_contact_support.py",
8418
+ "repeated_calls_opt_in": false,
8419
+ "repeated_calls_setting": "default_false"
8420
  },
8421
  {
8422
  "backward_conditional_branches": [],
 
8426
  "line": 28,
8427
  "literal_range": null,
8428
  "path": "scripts/qvm_damage_support.py",
8429
+ "repeated_calls_opt_in": false,
8430
+ "repeated_calls_setting": "default_false"
8431
  },
8432
  {
8433
  "backward_conditional_branches": [],
 
8437
  "line": 27,
8438
  "literal_range": null,
8439
  "path": "scripts/qvm_firing_support.py",
8440
+ "repeated_calls_opt_in": false,
8441
+ "repeated_calls_setting": "default_false"
8442
  },
8443
  {
8444
  "backward_conditional_branches": [],
 
8451
  211237
8452
  ],
8453
  "path": "scripts/qvm_health_effects_support.py",
8454
+ "repeated_calls_opt_in": false,
8455
+ "repeated_calls_setting": "default_false"
8456
  },
8457
  {
8458
  "backward_conditional_branches": [],
 
8462
  "line": 50,
8463
  "literal_range": null,
8464
  "path": "scripts/qvm_health_effects_support.py",
8465
+ "repeated_calls_opt_in": false,
8466
+ "repeated_calls_setting": "default_false"
8467
  },
8468
  {
8469
  "backward_conditional_branches": [],
 
8473
  "line": 24,
8474
  "literal_range": null,
8475
  "path": "scripts/qvm_health_support.py",
8476
+ "repeated_calls_opt_in": false,
8477
+ "repeated_calls_setting": "default_false"
8478
  },
8479
  {
8480
  "backward_conditional_branches": [
 
8498
  285141
8499
  ],
8500
  "path": "scripts/qvm_leaderboard_selector_support.py",
8501
+ "repeated_calls_opt_in": true,
8502
+ "repeated_calls_setting": "literal_true"
8503
  },
8504
  {
8505
  "backward_conditional_branches": [],
 
8512
  278691
8513
  ],
8514
  "path": "scripts/qvm_leaderboard_support.py",
8515
+ "repeated_calls_opt_in": false,
8516
+ "repeated_calls_setting": "default_false"
8517
  },
8518
  {
8519
  "backward_conditional_branches": [],
 
8526
  284608
8527
  ],
8528
  "path": "scripts/qvm_leaderboard_support.py",
8529
+ "repeated_calls_opt_in": false,
8530
+ "repeated_calls_setting": "default_false"
8531
  },
8532
  {
8533
  "backward_conditional_branches": [],
 
8537
  "line": 39,
8538
  "literal_range": null,
8539
  "path": "scripts/qvm_lifecycle_support.py",
8540
+ "repeated_calls_opt_in": false,
8541
+ "repeated_calls_setting": "default_false"
8542
  },
8543
  {
8544
  "backward_conditional_branches": [],
 
8551
  278833
8552
  ],
8553
  "path": "scripts/qvm_method_stats_support.py",
8554
+ "repeated_calls_opt_in": false,
8555
+ "repeated_calls_setting": "default_false"
8556
  },
8557
  {
8558
  "backward_conditional_branches": [],
 
8562
  "line": 16,
8563
  "literal_range": null,
8564
  "path": "scripts/qvm_notification_support.py",
8565
+ "repeated_calls_opt_in": true,
8566
+ "repeated_calls_setting": "literal_true"
8567
  },
8568
  {
8569
  "backward_conditional_branches": [],
 
8584
  5863
8585
  ],
8586
  "path": "scripts/qvm_rank_compare_support.py",
8587
+ "repeated_calls_opt_in": true,
8588
+ "repeated_calls_setting": "literal_true"
8589
+ },
8590
+ {
8591
+ "backward_conditional_branches": [
8592
+ 35234,
8593
+ 35252,
8594
+ 35569,
8595
+ 35653,
8596
+ 35815,
8597
+ 35833
8598
+ ],
8599
+ "calls": [
8600
+ {
8601
+ "dynamic_store_requires_review": false,
8602
+ "implicit_local_offset": null,
8603
+ "instruction": 35203,
8604
+ "stores_result": false,
8605
+ "target": 34829
8606
+ },
8607
+ {
8608
+ "dynamic_store_requires_review": true,
8609
+ "implicit_local_offset": 136,
8610
+ "instruction": 35229,
8611
+ "stores_result": true,
8612
+ "target": "dynamic"
8613
+ },
8614
+ {
8615
+ "dynamic_store_requires_review": false,
8616
+ "implicit_local_offset": 84,
8617
+ "instruction": 35326,
8618
+ "stores_result": true,
8619
+ "target": 34964
8620
+ },
8621
+ {
8622
+ "dynamic_store_requires_review": false,
8623
+ "implicit_local_offset": 96,
8624
+ "instruction": 35356,
8625
+ "stores_result": true,
8626
+ "target": 34964
8627
+ },
8628
+ {
8629
+ "dynamic_store_requires_review": false,
8630
+ "implicit_local_offset": 108,
8631
+ "instruction": 35388,
8632
+ "stores_result": true,
8633
+ "target": 34964
8634
+ },
8635
+ {
8636
+ "dynamic_store_requires_review": false,
8637
+ "implicit_local_offset": 76,
8638
+ "instruction": 35408,
8639
+ "stores_result": true,
8640
+ "target": 34964
8641
+ },
8642
+ {
8643
+ "dynamic_store_requires_review": false,
8644
+ "implicit_local_offset": null,
8645
+ "instruction": 35449,
8646
+ "stores_result": false,
8647
+ "target": 34829
8648
+ },
8649
+ {
8650
+ "dynamic_store_requires_review": false,
8651
+ "implicit_local_offset": null,
8652
+ "instruction": 35530,
8653
+ "stores_result": false,
8654
+ "target": 34829
8655
+ },
8656
+ {
8657
+ "dynamic_store_requires_review": true,
8658
+ "implicit_local_offset": 136,
8659
+ "instruction": 35560,
8660
+ "stores_result": true,
8661
+ "target": "dynamic"
8662
+ },
8663
+ {
8664
+ "dynamic_store_requires_review": false,
8665
+ "implicit_local_offset": null,
8666
+ "instruction": 35614,
8667
+ "stores_result": false,
8668
+ "target": 34829
8669
+ },
8670
+ {
8671
+ "dynamic_store_requires_review": true,
8672
+ "implicit_local_offset": 136,
8673
+ "instruction": 35644,
8674
+ "stores_result": true,
8675
+ "target": "dynamic"
8676
+ },
8677
+ {
8678
+ "dynamic_store_requires_review": false,
8679
+ "implicit_local_offset": null,
8680
+ "instruction": 35696,
8681
+ "stores_result": false,
8682
+ "target": 34829
8683
+ },
8684
+ {
8685
+ "dynamic_store_requires_review": false,
8686
+ "implicit_local_offset": null,
8687
+ "instruction": 35784,
8688
+ "stores_result": false,
8689
+ "target": 34829
8690
+ },
8691
+ {
8692
+ "dynamic_store_requires_review": true,
8693
+ "implicit_local_offset": 136,
8694
+ "instruction": 35810,
8695
+ "stores_result": true,
8696
+ "target": "dynamic"
8697
+ },
8698
+ {
8699
+ "dynamic_store_requires_review": false,
8700
+ "implicit_local_offset": null,
8701
+ "instruction": 35901,
8702
+ "stores_result": false,
8703
+ "target": 34829
8704
+ },
8705
+ {
8706
+ "dynamic_store_requires_review": false,
8707
+ "implicit_local_offset": null,
8708
+ "instruction": 35964,
8709
+ "stores_result": false,
8710
+ "target": 34829
8711
+ },
8712
+ {
8713
+ "dynamic_store_requires_review": false,
8714
+ "implicit_local_offset": null,
8715
+ "instruction": 36002,
8716
+ "stores_result": false,
8717
+ "target": 35095
8718
+ }
8719
+ ],
8720
+ "explicit_result_offsets": {
8721
+ "35229": 80,
8722
+ "35560": 88,
8723
+ "35644": 96,
8724
+ "35810": 88
8725
+ },
8726
+ "helper": "qvm_trace_support.resume",
8727
+ "line": 13,
8728
+ "literal_range": [
8729
+ 35096,
8730
+ 36036
8731
+ ],
8732
+ "path": "scripts/qvm_rank_large_sort_support.py",
8733
+ "repeated_calls_opt_in": true,
8734
+ "repeated_calls_setting": "literal_true"
8735
  },
8736
  {
8737
  "backward_conditional_branches": [
 
8747
  34962
8748
  ],
8749
  "path": "scripts/qvm_rank_partition_support.py",
8750
+ "repeated_calls_opt_in": true,
8751
+ "repeated_calls_setting": "literal_true"
8752
  },
8753
  {
8754
  "backward_conditional_branches": [],
 
8803
  35093
8804
  ],
8805
  "path": "scripts/qvm_rank_partition_support.py",
8806
+ "repeated_calls_opt_in": true,
8807
+ "repeated_calls_setting": "literal_true"
8808
  },
8809
  {
8810
  "backward_conditional_branches": [
 
8946
  36036
8947
  ],
8948
  "path": "scripts/qvm_rank_sort_support.py",
8949
+ "repeated_calls_opt_in": true,
8950
+ "repeated_calls_setting": "literal_true"
8951
  },
8952
  {
8953
  "backward_conditional_branches": [
 
8984
  285484
8985
  ],
8986
  "path": "scripts/qvm_recent_award_support.py",
8987
+ "repeated_calls_opt_in": true,
8988
+ "repeated_calls_setting": "literal_true"
8989
  },
8990
  {
8991
  "backward_conditional_branches": [],
 
8995
  "line": 36,
8996
  "literal_range": null,
8997
  "path": "scripts/qvm_recipient_payload_support.py",
8998
+ "repeated_calls_opt_in": false,
8999
+ "repeated_calls_setting": "default_false"
9000
  },
9001
  {
9002
  "backward_conditional_branches": [
 
9019
  285578
9020
  ],
9021
  "path": "scripts/qvm_record_clear_support.py",
9022
+ "repeated_calls_opt_in": true,
9023
+ "repeated_calls_setting": "literal_true"
9024
  },
9025
  {
9026
  "backward_conditional_branches": [],
 
9041
  205328
9042
  ],
9043
  "path": "scripts/qvm_score_support.py",
9044
+ "repeated_calls_opt_in": false,
9045
+ "repeated_calls_setting": "default_false"
9046
  },
9047
  {
9048
  "backward_conditional_branches": [
 
9057
  283554
9058
  ],
9059
  "path": "scripts/qvm_stat_ratio_support.py",
9060
+ "repeated_calls_opt_in": false,
9061
+ "repeated_calls_setting": "default_false"
9062
  },
9063
  {
9064
  "backward_conditional_branches": [],
 
9128
  279718
9129
  ],
9130
  "path": "scripts/qvm_stat_ratio_support.py",
9131
+ "repeated_calls_opt_in": false,
9132
+ "repeated_calls_setting": "default_false"
9133
  },
9134
  {
9135
  "backward_conditional_branches": [],
 
9139
  "line": 18,
9140
  "literal_range": null,
9141
  "path": "scripts/qvm_stat_totals_support.py",
9142
+ "repeated_calls_opt_in": false,
9143
+ "repeated_calls_setting": "default_false"
9144
  },
9145
  {
9146
  "backward_conditional_branches": [],
 
9252
  279584
9253
  ],
9254
  "path": "scripts/qvm_stat_update_support.py",
9255
+ "repeated_calls_opt_in": true,
9256
+ "repeated_calls_setting": "literal_true"
9257
  },
9258
  {
9259
  "backward_conditional_branches": [],
 
9274
  279818
9275
  ],
9276
  "path": "scripts/qvm_team_counter_support.py",
9277
+ "repeated_calls_opt_in": true,
9278
+ "repeated_calls_setting": "literal_true"
9279
  }
9280
  ],
9281
  "limits": "Static direct-import calls only, including local aliases. Computed ranges, indirect/module calls and reachability need manual/dynamic review. Backward branches and dynamic stores are review markers, not proven failures; fixture compatibility is not semantic proof.",
 
9316
  }
9317
  },
9318
  "summary": {
9319
+ "call_expressions": 182,
9320
+ "files": 142,
9321
+ "legacy_expressions": 159,
9322
+ "nonliteral_ranges": 20,
9323
+ "unresolved_mode_expressions": 3
9324
  }
9325
  }
scripts/analyze_qvm_rank_large_sort.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Actual partition/tail-loop/recursive aligned rank sort through64 clients."""
3
+ import collections,random
4
+ from pathlib import Path
5
+ from qvm_research_support import source
6
+ from qvm_rank_compare_support import seed,PTR
7
+ from qvm_rank_large_sort_support import sort
8
+ from analyze_qvm import write_json
9
+
10
+ def summarize(p):
11
+ e=p['execution'];return {'depth':p['depth'],'count':p['arguments'][12],'stop':e['stop'],'trace_length':e['trace_length'],'trace_sha256':e['trace_sha256'],'call_sites':dict(sorted(collections.Counter(str(c['instruction']) for c in e['calls']).items())),'targets':dict(sorted(collections.Counter(str(c['target']) for c in e['calls']).items())),'callback_after':p['callback_after'],'recursive_children':[summarize(c['effect']) for c in e['children'] if c['call']['target']==35095]}
12
+
13
+ def main():
14
+ q,raw,h,ins=source();rows=[]
15
+ for mode in [0,3,9,11]:
16
+ for n in [7,8,16,40,41,64]:
17
+ for pattern in ['ascending','descending','shuffled','ties']:
18
+ clients=[{'248':j,'280':j%3,'3032':j%5,'308':j+1,'696':j} if pattern!='ties' else {'248':0,'280':0,'3032':0,'308':0,'696':0} for j in range(n)];order=list(range(n))
19
+ if pattern=='descending':order.reverse()
20
+ if pattern=='shuffled':random.Random(739+n).shuffle(order)
21
+ m=seed(mode,clients)
22
+ for j,v in enumerate(order):m[PTR+4*j]=v
23
+ m.update({PTR-4:0x13579bdf,PTR+4*n:0x2468ace0});m,_,p=sort(ins,m,{8:PTR,12:n,16:4,20:5441});rows.append({'mode':mode,'pattern':pattern,'clients':clients,'initial':order,'final':p['final'],'guards':[m[PTR-4],m[PTR+4*n]],'execution':summarize(p)})
24
+ write_json(Path('docs/research/qvm-rank-large-sort.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'Actual35095 aligned4-byte n7..64 with actual5441/33715/34829/34964 and isolated recursive frames. Source swaps/median/partitions/insertion fallback and tail iteration execute, not supplied ordering. Eligible numeric clients only; complete ties are permutation/order-equivalence tests, no stable-sort promise. Compact call-site/count/hash summaries omit nested comparator trace trees; helpers separately retain source traces. Arbitrary comparators, unaligned/byte-sized elements, caller publication, Rust whole-sort and native/platform/runtime parity remain open.'})
25
+ if __name__=='__main__':main()
scripts/analyze_qvm_resumer_audit.py CHANGED
@@ -27,7 +27,9 @@ def inventory(text,path,ins):
27
  i=c['index'];prev=ins[i-1];store=i+1<len(ins) and ins[i+1]['opcode']=='STORE4'
28
  sites.append({'instruction':i,'target':prev['operand'] if prev['opcode']=='CONST' else 'dynamic','stores_result':store,'implicit_local_offset':ins[i-2]['operand'] if store and ins[i-2]['opcode']=='LOCAL' else None,'dynamic_store_requires_review':store and prev['opcode']!='CONST'})
29
  opts={k.arg:literal(k.value) for k in n.keywords if k.arg}
30
- rows.append({'path':path,'line':n.lineno,'helper':aliases[n.func.id],'literal_range':[start,stop] if known else None,'repeated_calls_opt_in':opts.get('repeated_calls') is True,'explicit_result_offsets':opts.get('result_offsets'),'calls':sites,'backward_conditional_branches':[i['index'] for i in ins[start:stop] if i['opcode'] in {'EQ','NE','LTI','LEI','GTI','GEI','LTU','LEU','GTU','GEU'} and i['operand']<=i['index']] if known else []})
 
 
31
  return sorted(rows,key=lambda r:r['line'])
32
 
33
  def main():
@@ -35,5 +37,5 @@ def main():
35
  for p in sorted(Path('scripts').glob('*.py')):
36
  if p.name.startswith('test_') or p.name==Path(__file__).name:continue
37
  rows+=inventory(p.read_text(),p.as_posix(),ins)
38
- write_json(Path('docs/research/qvm-resumer-audit.json'),{'source':q['source'],'sha256':q['sha256'],'consumers':rows,'summary':{'call_expressions':len(rows),'files':len({r['path'] for r in rows}),'legacy_expressions':sum(not r['repeated_calls_opt_in'] for r in rows),'nonliteral_ranges':sum(r['literal_range'] is None for r in rows)},'limits':'Static direct-import calls only, including local aliases. Computed ranges, indirect/module calls and reachability need manual/dynamic review. Backward branches and dynamic stores are review markers, not proven failures; fixture compatibility is not semantic proof.'})
39
  if __name__=='__main__':main()
 
27
  i=c['index'];prev=ins[i-1];store=i+1<len(ins) and ins[i+1]['opcode']=='STORE4'
28
  sites.append({'instruction':i,'target':prev['operand'] if prev['opcode']=='CONST' else 'dynamic','stores_result':store,'implicit_local_offset':ins[i-2]['operand'] if store and ins[i-2]['opcode']=='LOCAL' else None,'dynamic_store_requires_review':store and prev['opcode']!='CONST'})
29
  opts={k.arg:literal(k.value) for k in n.keywords if k.arg}
30
+ mode=next((k.value for k in n.keywords if k.arg=='repeated_calls'),None)
31
+ setting='default_false' if mode is None else 'literal_true' if opts.get('repeated_calls') is True else 'literal_false' if opts.get('repeated_calls') is False else 'expression_unresolved'
32
+ rows.append({'path':path,'line':n.lineno,'helper':aliases[n.func.id],'literal_range':[start,stop] if known else None,'repeated_calls_opt_in':opts.get('repeated_calls') is True,'repeated_calls_setting':setting,'explicit_result_offsets':opts.get('result_offsets'),'calls':sites,'backward_conditional_branches':[i['index'] for i in ins[start:stop] if i['opcode'] in {'EQ','NE','LTI','LEI','GTI','GEI','LTU','LEU','GTU','GEU'} and i['operand']<=i['index']] if known else []})
33
  return sorted(rows,key=lambda r:r['line'])
34
 
35
  def main():
 
37
  for p in sorted(Path('scripts').glob('*.py')):
38
  if p.name.startswith('test_') or p.name==Path(__file__).name:continue
39
  rows+=inventory(p.read_text(),p.as_posix(),ins)
40
+ write_json(Path('docs/research/qvm-resumer-audit.json'),{'source':q['source'],'sha256':q['sha256'],'consumers':rows,'summary':{'call_expressions':len(rows),'files':len({r['path'] for r in rows}),'legacy_expressions':sum(r['repeated_calls_setting'] in ['default_false','literal_false'] for r in rows),'unresolved_mode_expressions':sum(r['repeated_calls_setting']=='expression_unresolved' for r in rows),'nonliteral_ranges':sum(r['literal_range'] is None for r in rows)},'limits':'Static direct-import calls only, including local aliases. Computed ranges, indirect/module calls and reachability need manual/dynamic review. Backward branches and dynamic stores are review markers, not proven failures; fixture compatibility is not semantic proof.'})
41
  if __name__=='__main__':main()
scripts/qvm_rank_large_sort_support.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Actual35095 aligned4-byte sort with recovered swap/median/recursive children."""
2
+ from qvm_rank_compare_support import compare
3
+ from qvm_rank_partition_support import swap,median
4
+ from qvm_rank_sort_support import S
5
+ from qvm_trace_support import resume
6
+
7
+ def sort(ins,m,args,depth=0):
8
+ if not 0<=args[12]<=64 or args[16]!=4 or args[8]%4 or args[20]!=5441 or depth>16:raise ValueError('unsupported bounded rank sort domain')
9
+ base=S+512*depth
10
+ for o,v in args.items():m[base+116+o]=v
11
+ before=[m[args[8]+4*j]&0xffffffff for j in range(args[12])]
12
+ def recursive(i,m,a):return sort(i,m,a,depth+1)
13
+ m,e=resume(ins,35096,36036,m,base,handlers={5441:compare,34829:swap,34964:median,35095:recursive},result_offsets={35229:80,35560:88,35644:96,35810:88},repeated_calls=True,limit=16384)
14
+ return m,0,{'arguments':args,'initial':before,'final':[m[args[8]+4*j]&0xffffffff for j in range(args[12])],'depth':depth,'callback_after':m[base+136],'execution':e}
scripts/test_qvm_rank_large_sort.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import functools,json,unittest
2
+ from pathlib import Path
3
+ from test_qvm_rank_comparator import compare
4
+ from qvm_rank_large_sort_support import sort
5
+ class LargeRankSortTests(unittest.TestCase):
6
+ @classmethod
7
+ def setUpClass(cls):cls.ps=json.loads(Path('docs/research/qvm-rank-large-sort.json').read_text())['probes']
8
+ def test_independent_numeric_order_permutation_and_guards(self):
9
+ self.assertEqual(len(self.ps),96)
10
+ for p in self.ps:
11
+ cmp=lambda a,b:compare(p['mode'],p['clients'][a],p['clients'][b]);expected=sorted(p['initial'],key=functools.cmp_to_key(cmp));self.assertEqual(sorted(p['final']),list(range(len(p['clients']))));self.assertTrue(all(cmp(a,b)==0 for a,b in zip(p['final'],expected)),(p['mode'],p['pattern'],len(expected)));self.assertEqual(p['guards'],[0x13579bdf,0x2468ace0])
12
+ def test_all_recursive_frames_preserve_callback_pointer(self):
13
+ def verify(e):
14
+ self.assertEqual(e['callback_after'],5441);self.assertEqual(e['stop'],36036)
15
+ for c in e['recursive_children']:self.assertEqual(c['depth'],e['depth']+1);self.assertLess(c['count'],e['count']);verify(c)
16
+ for p in self.ps:verify(p['execution'])
17
+ def test_ninther_median_recursion_and_partition_sites_are_exercised(self):
18
+ sites=set();targets=set();recursive=False
19
+ for p in self.ps:sites.update(p['execution']['call_sites']);targets.update(p['execution']['targets']);recursive|=bool(p['execution']['recursive_children'])
20
+ self.assertTrue({'35326','35356','35388','35408','35560','35644','35810','36002'}<=sites,sites);self.assertTrue({'5441','34829','34964','35095'}<=targets);self.assertTrue(recursive)
21
+ def test_unverified_domains_reject(self):
22
+ for n,size,ptr in [(65,4,4),(-1,4,4),(4,8,4),(4,4,5)]:
23
+ with self.assertRaisesRegex(ValueError,'unsupported bounded'):sort([],{},{8:ptr,12:n,16:size,20:5441})
24
+ if __name__=='__main__':unittest.main()
scripts/test_qvm_resumer_audit.py CHANGED
@@ -6,6 +6,8 @@ class ResumerAuditTests(unittest.TestCase):
6
  text='from qvm_trace_support import resume as run\nrun(ins, 0, 4, m, b, repeated_calls=True, result_offsets={2:80})\nrun(ins, begin, end, m, b)\n'
7
  ins=[{'index':j,'opcode':op,'operand':v} for j,(op,v) in enumerate([('LOCAL',80),('LOCAL',136),('CALL',None),('STORE4',None)])]
8
  a,b=inventory(text,'fixture',ins);self.assertTrue(a['repeated_calls_opt_in']);self.assertEqual(a['explicit_result_offsets'],{2:80});self.assertTrue(a['calls'][0]['dynamic_store_requires_review']);self.assertIsNone(b['literal_range'])
 
 
9
  def test_snapshot_includes_both_helpers_and_known_sort_callback(self):
10
  r=json.loads(Path('docs/research/qvm-resumer-audit.json').read_text());rows=r['consumers'];self.assertGreater(r['summary']['files'],80);self.assertEqual({v['helper'] for v in rows},{'qvm_trace_support.resume','qvm_research_support.execute'});self.assertEqual(r['summary']['call_expressions'],len(rows))
11
  row=next(x for x in rows if x['path']=='scripts/qvm_rank_sort_support.py');self.assertTrue(row['repeated_calls_opt_in']);self.assertTrue(any(c['instruction']==35229 and c['dynamic_store_requires_review'] for c in row['calls']))
 
6
  text='from qvm_trace_support import resume as run\nrun(ins, 0, 4, m, b, repeated_calls=True, result_offsets={2:80})\nrun(ins, begin, end, m, b)\n'
7
  ins=[{'index':j,'opcode':op,'operand':v} for j,(op,v) in enumerate([('LOCAL',80),('LOCAL',136),('CALL',None),('STORE4',None)])]
8
  a,b=inventory(text,'fixture',ins);self.assertTrue(a['repeated_calls_opt_in']);self.assertEqual(a['explicit_result_offsets'],{2:80});self.assertTrue(a['calls'][0]['dynamic_store_requires_review']);self.assertIsNone(b['literal_range'])
9
+ def test_expression_mode_is_unresolved_rather_than_declared_legacy(self):
10
+ row=inventory('from qvm_trace_support import resume\nresume(i,0,1,m,b,repeated_calls=correct)', 'fixture', [{'index':0,'opcode':'POP','operand':None}])[0];self.assertEqual(row['repeated_calls_setting'],'expression_unresolved');self.assertFalse(row['repeated_calls_opt_in'])
11
  def test_snapshot_includes_both_helpers_and_known_sort_callback(self):
12
  r=json.loads(Path('docs/research/qvm-resumer-audit.json').read_text());rows=r['consumers'];self.assertGreater(r['summary']['files'],80);self.assertEqual({v['helper'] for v in rows},{'qvm_trace_support.resume','qvm_research_support.execute'});self.assertEqual(r['summary']['call_expressions'],len(rows))
13
  row=next(x for x in rows if x['path']=='scripts/qvm_rank_sort_support.py');self.assertTrue(row['repeated_calls_opt_in']);self.assertTrue(any(c['instruction']==35229 and c['dynamic_store_requires_review'] for c in row['calls']))
xtask/checks.tsv CHANGED
@@ -1767,3 +1767,12 @@ report scripts/analyze_qvm_rank_partition_helpers.py docs/research/qvm-rank-part
1767
  edge docs/research/qvm-rank-partition-helpers.json scripts/test_qvm_rank_partition_helpers.py
1768
  edge scripts/analyze_qvm_rank_partition_helpers.py scripts/analyze_qvm_resumer_audit.py
1769
  group rank-partition-helpers scripts/analyze_qvm_rank_partition_helpers.py
 
 
 
 
 
 
 
 
 
 
1767
  edge docs/research/qvm-rank-partition-helpers.json scripts/test_qvm_rank_partition_helpers.py
1768
  edge scripts/analyze_qvm_rank_partition_helpers.py scripts/analyze_qvm_resumer_audit.py
1769
  group rank-partition-helpers scripts/analyze_qvm_rank_partition_helpers.py
1770
+ report scripts/analyze_qvm_rank_large_sort.py docs/research/qvm-rank-large-sort.json
1771
+ edge docs/research/qvm-rank-large-sort.json scripts/test_qvm_rank_large_sort.py
1772
+ edge scripts/analyze_qvm_rank_large_sort.py scripts/analyze_qvm_resumer_audit.py
1773
+ group rank-large-sort scripts/analyze_qvm_rank_large_sort.py
1774
+ edge scripts/analyze_qvm_return_placement.py scripts/analyze_qvm_resumer_audit.py
1775
+ edge scripts/qvm_call_result_support.py scripts/analyze_qvm_resumer_audit.py
1776
+ edge scripts/qvm_rank_large_sort_support.py scripts/analyze_qvm_resumer_audit.py
1777
+ edge scripts/qvm_rank_partition_support.py scripts/analyze_qvm_resumer_audit.py
1778
+ edge scripts/qvm_resumer_diff_support.py scripts/analyze_qvm_resumer_audit.py