nmarshall commited on
Commit
83bf7b2
·
1 Parent(s): eae7f32

gameplay: port movement scratch and callback plans

Browse files
crates/urt-gameplay/src/bin/urt-client-move-context.rs ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ use urt_gameplay::client_move_context::*;
2
+ fn list(v: &[u32]) -> String {
3
+ format!(
4
+ "[{}]",
5
+ v.iter()
6
+ .map(|v| v.to_string())
7
+ .collect::<Vec<_>>()
8
+ .join(",")
9
+ )
10
+ }
11
+ fn hex(v: &[u8]) -> String {
12
+ v.iter().map(|v| format!("{v:02x}")).collect()
13
+ }
14
+ fn events(v: &[SetupEffect]) -> String {
15
+ v.iter()
16
+ .map(|e| match e {
17
+ SetupEffect::Zero { offset, count } => {
18
+ format!(r#"{{"op":"zero","offset":{offset},"count":{count}}}"#)
19
+ }
20
+ SetupEffect::Callback { target, slot } => {
21
+ format!(r#"{{"op":"callback","target":{target},"slot":{slot}}}"#)
22
+ }
23
+ })
24
+ .collect::<Vec<_>>()
25
+ .join(",")
26
+ }
27
+ fn main() {
28
+ let mut args = std::env::args().skip(1);
29
+ let kind = args.next().unwrap();
30
+ let w: Vec<u32> = args.map(|v| v.parse().unwrap()).collect();
31
+ match kind.as_str() {
32
+ "scratch" => {
33
+ assert_eq!(w.len(), 2);
34
+ let mut s = [w[1] as u8; 268];
35
+ let e = initialize_move_scratch(&mut s, w[0], 2).unwrap();
36
+ let guard = hex(&[w[1] as u8; 4]);
37
+ println!(
38
+ r#"{{"events":[{}],"words":{},"guards":["{}","{}"]}}"#,
39
+ events(&e),
40
+ list(
41
+ &s.chunks_exact(4)
42
+ .map(|b| u32::from_le_bytes(b.try_into().unwrap()))
43
+ .collect::<Vec<_>>()
44
+ ),
45
+ guard,
46
+ guard
47
+ );
48
+ }
49
+ _ => panic!("unknown contract"),
50
+ }
51
+ }
crates/urt-gameplay/src/client_move_context.rs ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //! Source-backed movement context construction; callbacks are explicit plans.
2
+ #[derive(Clone, Copy, Debug, PartialEq, Eq)]
3
+ pub enum SetupEffect {
4
+ Zero { offset: u32, count: u32 },
5
+ Callback { target: u32, slot: i32 },
6
+ }
7
+ /// Original154544..154579. Scratch is exactly268 bytes; caller guards are owned
8
+ /// outside this typed slice. Callback bodies must execute before later setup.
9
+ pub fn initialize_move_scratch(
10
+ scratch: &mut [u8; 268],
11
+ mode: u32,
12
+ slot: i32,
13
+ ) -> Result<Vec<SetupEffect>, crate::native_policy::Error> {
14
+ if !(0..64).contains(&slot) {
15
+ return Err(crate::native_policy::Error::InvalidIndex);
16
+ }
17
+ scratch.fill(0);
18
+ let mut effects = vec![SetupEffect::Zero {
19
+ offset: 56,
20
+ count: 268,
21
+ }];
22
+ let targets: &[u32] = match mode {
23
+ 10 => &[152792, 152673],
24
+ 8 => &[153419],
25
+ _ => &[],
26
+ };
27
+ effects.extend(
28
+ targets
29
+ .iter()
30
+ .map(|&target| SetupEffect::Callback { target, slot }),
31
+ );
32
+ Ok(effects)
33
+ }
34
+ #[cfg(test)]
35
+ mod scratch_tests {
36
+ use super::*;
37
+ #[test]
38
+ fn guards_and_callback_order() {
39
+ let mut guarded = [0xa5; 276];
40
+ let effects =
41
+ initialize_move_scratch((&mut guarded[4..272]).try_into().unwrap(), 10, 63).unwrap();
42
+ assert!(guarded[4..272].iter().all(|v| *v == 0));
43
+ assert_eq!(&guarded[..4], &[0xa5; 4]);
44
+ assert_eq!(&guarded[272..], &[0xa5; 4]);
45
+ assert_eq!(
46
+ effects,
47
+ vec![
48
+ SetupEffect::Zero {
49
+ offset: 56,
50
+ count: 268
51
+ },
52
+ SetupEffect::Callback {
53
+ target: 152792,
54
+ slot: 63
55
+ },
56
+ SetupEffect::Callback {
57
+ target: 152673,
58
+ slot: 63
59
+ }
60
+ ]
61
+ );
62
+ }
63
+ #[test]
64
+ fn invalid_slot_does_not_zero_scratch() {
65
+ let mut s = [255; 268];
66
+ assert!(initialize_move_scratch(&mut s, 8, 64).is_err());
67
+ assert_eq!(s, [255; 268]);
68
+ }
69
+ }
crates/urt-gameplay/src/lib.rs CHANGED
@@ -191,3 +191,5 @@ pub mod filter_commands;
191
  pub mod client_timer;
192
 
193
  pub mod client_processing;
 
 
 
191
  pub mod client_timer;
192
 
193
  pub mod client_processing;
194
+
195
+ pub mod client_move_context;
docs/FINDINGS.md CHANGED
@@ -1901,3 +1901,5 @@ RE-982: Forty-eight source154089 executions compose preparation, routing, rewrit
1901
  RE-983: Rust matches48 original pre-movement executions, composing shared timing/spectator state, command masking, actual inactivity policy and finite movement setup. Ordinary early exits commit preceding writes; unsupported typed domains stage all state and effects atomically. Unit tests verify blocked-activity timeout, pre-round delta forwarding, timestamp persistence on routing and rollback after a late float error. Captured callbacks and later physics remain open. [Evidence](research/RUST_CLIENT_PRE_MOVEMENT.md).
1902
 
1903
  RE-984: Twelve original-QVM probes recover a 268-byte zero fill at frame+56, preserving four-byte guards on both sides. Mode10 requests152792 then152673; mode8 requests153419; other modes request neither. Zeroing precedes callbacks. Native memset is modeled with coherent byte writes; callback bodies and their state feedback remain unresolved. [Evidence](research/QVM_CLIENT_MOVE_SCRATCH.md).
 
 
 
1901
  RE-983: Rust matches48 original pre-movement executions, composing shared timing/spectator state, command masking, actual inactivity policy and finite movement setup. Ordinary early exits commit preceding writes; unsupported typed domains stage all state and effects atomically. Unit tests verify blocked-activity timeout, pre-round delta forwarding, timestamp persistence on routing and rollback after a late float error. Captured callbacks and later physics remain open. [Evidence](research/RUST_CLIENT_PRE_MOVEMENT.md).
1902
 
1903
  RE-984: Twelve original-QVM probes recover a 268-byte zero fill at frame+56, preserving four-byte guards on both sides. Mode10 requests152792 then152673; mode8 requests153419; other modes request neither. Zeroing precedes callbacks. Native memset is modeled with coherent byte writes; callback bodies and their state feedback remain unresolved. [Evidence](research/QVM_CLIENT_MOVE_SCRATCH.md).
1904
+
1905
+ RE-985: Rust owns an exact268-byte scratch slice and returns ordered zero/mode-callback plans. Twelve source/Rust fixtures compare every scratch word, guards and callback order. Invalid client slots reject before mutation; slice ownership prevents overwriting neighboring frame words. Callback execution and feedback are deliberately left to a future native adapter. [Evidence](research/RUST_CLIENT_MOVE_SCRATCH.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1957,3 +1957,5 @@ RE-964–973 completed timer deadline/phase/recovery contracts, whole-body compo
1957
  RE-974–983 completed routing, command rewrite, inactivity, movement-parameter setup and composed prefix through154544. RE-984 tracks later callbacks/physics and native/runtime integration. [Batch and next work](research/QVM_CLIENT_PROCESSING_BATCH.md).
1958
 
1959
  - [x] RE-984 Recover movement scratch initialization and mode dispatch ([evidence](research/QVM_CLIENT_MOVE_SCRATCH.md)).
 
 
 
1957
  RE-974–983 completed routing, command rewrite, inactivity, movement-parameter setup and composed prefix through154544. RE-984 tracks later callbacks/physics and native/runtime integration. [Batch and next work](research/QVM_CLIENT_PROCESSING_BATCH.md).
1958
 
1959
  - [x] RE-984 Recover movement scratch initialization and mode dispatch ([evidence](research/QVM_CLIENT_MOVE_SCRATCH.md)).
1960
+
1961
+ - [x] RE-985 Port movement scratch initialization and callback plans ([evidence](research/RUST_CLIENT_MOVE_SCRATCH.md)).
docs/RESEARCH_LEDGER.md CHANGED
@@ -2611,3 +2611,7 @@ Batch RE-974–983 boundary: the single `cargo xtask test-full --since 74af72a2`
2611
  ## 2026-10-29 — RE-984 Recover movement scratch initialization and mode dispatch
2612
 
2613
  Twelve original-QVM probes recover a 268-byte zero fill at frame+56, preserving four-byte guards on both sides. Mode10 requests152792 then152673; mode8 requests153419; other modes request neither. Zeroing precedes callbacks. Native memset is modeled with coherent byte writes; callback bodies and their state feedback remain unresolved. Focused `cargo xtask test-group qvm-client-move-scratch` passes with deterministic report regeneration and selected regressions. Full suite deferred to task ten. Original assets unchanged; Python uses the flake-declared Nix runtime.
 
 
 
 
 
2611
  ## 2026-10-29 — RE-984 Recover movement scratch initialization and mode dispatch
2612
 
2613
  Twelve original-QVM probes recover a 268-byte zero fill at frame+56, preserving four-byte guards on both sides. Mode10 requests152792 then152673; mode8 requests153419; other modes request neither. Zeroing precedes callbacks. Native memset is modeled with coherent byte writes; callback bodies and their state feedback remain unresolved. Focused `cargo xtask test-group qvm-client-move-scratch` passes with deterministic report regeneration and selected regressions. Full suite deferred to task ten. Original assets unchanged; Python uses the flake-declared Nix runtime.
2614
+
2615
+ ## 2026-10-29 — RE-985 Port movement scratch initialization and callback plans
2616
+
2617
+ Rust owns an exact268-byte scratch slice and returns ordered zero/mode-callback plans. Twelve source/Rust fixtures compare every scratch word, guards and callback order. Invalid client slots reject before mutation; slice ownership prevents overwriting neighboring frame words. Callback execution and feedback are deliberately left to a future native adapter. Focused `cargo xtask test-group rust-client-move-scratch` passes with deterministic report regeneration and selected regressions. Full suite deferred to task ten. Original assets unchanged; Python uses the flake-declared Nix runtime.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1994,3 +1994,5 @@ RE-974–983 recover routing, command rewriting, inactivity and composed setup t
1994
  - [ ] RE-984 Recover movement scratch/callbacks and remaining caller paths, native feedback/ownership and full Rust/Bevy/Solari acceptance ([next work](research/QVM_CLIENT_PROCESSING_BATCH.md)).
1995
 
1996
  - [x] RE-984 Recover movement scratch initialization and mode dispatch ([evidence](research/QVM_CLIENT_MOVE_SCRATCH.md)).
 
 
 
1994
  - [ ] RE-984 Recover movement scratch/callbacks and remaining caller paths, native feedback/ownership and full Rust/Bevy/Solari acceptance ([next work](research/QVM_CLIENT_PROCESSING_BATCH.md)).
1995
 
1996
  - [x] RE-984 Recover movement scratch initialization and mode dispatch ([evidence](research/QVM_CLIENT_MOVE_SCRATCH.md)).
1997
+
1998
+ - [x] RE-985 Port movement scratch initialization and callback plans ([evidence](research/RUST_CLIENT_MOVE_SCRATCH.md)).
docs/research/README.md CHANGED
@@ -1529,3 +1529,5 @@ The extension collector adds five focused tests for native tail calls, command-r
1529
  - [RE-974–983 client processing batch and RE-984 next work](QVM_CLIENT_PROCESSING_BATCH.md).
1530
 
1531
  - [RE-984: Recover movement scratch initialization and mode dispatch](QVM_CLIENT_MOVE_SCRATCH.md).
 
 
 
1529
  - [RE-974–983 client processing batch and RE-984 next work](QVM_CLIENT_PROCESSING_BATCH.md).
1530
 
1531
  - [RE-984: Recover movement scratch initialization and mode dispatch](QVM_CLIENT_MOVE_SCRATCH.md).
1532
+
1533
+ - [RE-985: Port movement scratch initialization and callback plans](RUST_CLIENT_MOVE_SCRATCH.md).
docs/research/RUST_CLIENT_MOVE_SCRATCH.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Port movement scratch initialization and callback plans
2
+
3
+ RE-985. Focused validation: `cargo xtask test-group rust-client-move-scratch`. [Machine report](rust-client-move-scratch.json).
4
+
5
+ Rust owns an exact268-byte scratch slice and returns ordered zero/mode-callback plans. Twelve source/Rust fixtures compare every scratch word, guards and callback order. Invalid client slots reject before mutation; slice ownership prevents overwriting neighboring frame words. Callback execution and feedback are deliberately left to a future native adapter.
docs/research/rust-client-move-scratch.json ADDED
@@ -0,0 +1,2089 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "Finite source/Rust contract parity; native time/file/network replies remain supplied or captured.",
3
+ "probes": [
4
+ {
5
+ "rust": {
6
+ "events": [
7
+ {
8
+ "count": 268,
9
+ "offset": 56,
10
+ "op": "zero"
11
+ }
12
+ ],
13
+ "guards": [
14
+ "00000000",
15
+ "00000000"
16
+ ],
17
+ "words": [
18
+ 0,
19
+ 0,
20
+ 0,
21
+ 0,
22
+ 0,
23
+ 0,
24
+ 0,
25
+ 0,
26
+ 0,
27
+ 0,
28
+ 0,
29
+ 0,
30
+ 0,
31
+ 0,
32
+ 0,
33
+ 0,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 0,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 0,
51
+ 0,
52
+ 0,
53
+ 0,
54
+ 0,
55
+ 0,
56
+ 0,
57
+ 0,
58
+ 0,
59
+ 0,
60
+ 0,
61
+ 0,
62
+ 0,
63
+ 0,
64
+ 0,
65
+ 0,
66
+ 0,
67
+ 0,
68
+ 0,
69
+ 0,
70
+ 0,
71
+ 0,
72
+ 0,
73
+ 0,
74
+ 0,
75
+ 0,
76
+ 0,
77
+ 0,
78
+ 0,
79
+ 0,
80
+ 0,
81
+ 0,
82
+ 0,
83
+ 0,
84
+ 0
85
+ ]
86
+ },
87
+ "source": {
88
+ "events": [
89
+ {
90
+ "count": 268,
91
+ "offset": 56,
92
+ "op": "zero"
93
+ }
94
+ ],
95
+ "guards": [
96
+ "00000000",
97
+ "00000000"
98
+ ],
99
+ "words": [
100
+ 0,
101
+ 0,
102
+ 0,
103
+ 0,
104
+ 0,
105
+ 0,
106
+ 0,
107
+ 0,
108
+ 0,
109
+ 0,
110
+ 0,
111
+ 0,
112
+ 0,
113
+ 0,
114
+ 0,
115
+ 0,
116
+ 0,
117
+ 0,
118
+ 0,
119
+ 0,
120
+ 0,
121
+ 0,
122
+ 0,
123
+ 0,
124
+ 0,
125
+ 0,
126
+ 0,
127
+ 0,
128
+ 0,
129
+ 0,
130
+ 0,
131
+ 0,
132
+ 0,
133
+ 0,
134
+ 0,
135
+ 0,
136
+ 0,
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 0,
142
+ 0,
143
+ 0,
144
+ 0,
145
+ 0,
146
+ 0,
147
+ 0,
148
+ 0,
149
+ 0,
150
+ 0,
151
+ 0,
152
+ 0,
153
+ 0,
154
+ 0,
155
+ 0,
156
+ 0,
157
+ 0,
158
+ 0,
159
+ 0,
160
+ 0,
161
+ 0,
162
+ 0,
163
+ 0,
164
+ 0,
165
+ 0,
166
+ 0
167
+ ]
168
+ }
169
+ },
170
+ {
171
+ "rust": {
172
+ "events": [
173
+ {
174
+ "count": 268,
175
+ "offset": 56,
176
+ "op": "zero"
177
+ }
178
+ ],
179
+ "guards": [
180
+ "a5a5a5a5",
181
+ "a5a5a5a5"
182
+ ],
183
+ "words": [
184
+ 0,
185
+ 0,
186
+ 0,
187
+ 0,
188
+ 0,
189
+ 0,
190
+ 0,
191
+ 0,
192
+ 0,
193
+ 0,
194
+ 0,
195
+ 0,
196
+ 0,
197
+ 0,
198
+ 0,
199
+ 0,
200
+ 0,
201
+ 0,
202
+ 0,
203
+ 0,
204
+ 0,
205
+ 0,
206
+ 0,
207
+ 0,
208
+ 0,
209
+ 0,
210
+ 0,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0,
215
+ 0,
216
+ 0,
217
+ 0,
218
+ 0,
219
+ 0,
220
+ 0,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 0,
225
+ 0,
226
+ 0,
227
+ 0,
228
+ 0,
229
+ 0,
230
+ 0,
231
+ 0,
232
+ 0,
233
+ 0,
234
+ 0,
235
+ 0,
236
+ 0,
237
+ 0,
238
+ 0,
239
+ 0,
240
+ 0,
241
+ 0,
242
+ 0,
243
+ 0,
244
+ 0,
245
+ 0,
246
+ 0,
247
+ 0,
248
+ 0,
249
+ 0,
250
+ 0
251
+ ]
252
+ },
253
+ "source": {
254
+ "events": [
255
+ {
256
+ "count": 268,
257
+ "offset": 56,
258
+ "op": "zero"
259
+ }
260
+ ],
261
+ "guards": [
262
+ "a5a5a5a5",
263
+ "a5a5a5a5"
264
+ ],
265
+ "words": [
266
+ 0,
267
+ 0,
268
+ 0,
269
+ 0,
270
+ 0,
271
+ 0,
272
+ 0,
273
+ 0,
274
+ 0,
275
+ 0,
276
+ 0,
277
+ 0,
278
+ 0,
279
+ 0,
280
+ 0,
281
+ 0,
282
+ 0,
283
+ 0,
284
+ 0,
285
+ 0,
286
+ 0,
287
+ 0,
288
+ 0,
289
+ 0,
290
+ 0,
291
+ 0,
292
+ 0,
293
+ 0,
294
+ 0,
295
+ 0,
296
+ 0,
297
+ 0,
298
+ 0,
299
+ 0,
300
+ 0,
301
+ 0,
302
+ 0,
303
+ 0,
304
+ 0,
305
+ 0,
306
+ 0,
307
+ 0,
308
+ 0,
309
+ 0,
310
+ 0,
311
+ 0,
312
+ 0,
313
+ 0,
314
+ 0,
315
+ 0,
316
+ 0,
317
+ 0,
318
+ 0,
319
+ 0,
320
+ 0,
321
+ 0,
322
+ 0,
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 0,
327
+ 0,
328
+ 0,
329
+ 0,
330
+ 0,
331
+ 0,
332
+ 0
333
+ ]
334
+ }
335
+ },
336
+ {
337
+ "rust": {
338
+ "events": [
339
+ {
340
+ "count": 268,
341
+ "offset": 56,
342
+ "op": "zero"
343
+ }
344
+ ],
345
+ "guards": [
346
+ "ffffffff",
347
+ "ffffffff"
348
+ ],
349
+ "words": [
350
+ 0,
351
+ 0,
352
+ 0,
353
+ 0,
354
+ 0,
355
+ 0,
356
+ 0,
357
+ 0,
358
+ 0,
359
+ 0,
360
+ 0,
361
+ 0,
362
+ 0,
363
+ 0,
364
+ 0,
365
+ 0,
366
+ 0,
367
+ 0,
368
+ 0,
369
+ 0,
370
+ 0,
371
+ 0,
372
+ 0,
373
+ 0,
374
+ 0,
375
+ 0,
376
+ 0,
377
+ 0,
378
+ 0,
379
+ 0,
380
+ 0,
381
+ 0,
382
+ 0,
383
+ 0,
384
+ 0,
385
+ 0,
386
+ 0,
387
+ 0,
388
+ 0,
389
+ 0,
390
+ 0,
391
+ 0,
392
+ 0,
393
+ 0,
394
+ 0,
395
+ 0,
396
+ 0,
397
+ 0,
398
+ 0,
399
+ 0,
400
+ 0,
401
+ 0,
402
+ 0,
403
+ 0,
404
+ 0,
405
+ 0,
406
+ 0,
407
+ 0,
408
+ 0,
409
+ 0,
410
+ 0,
411
+ 0,
412
+ 0,
413
+ 0,
414
+ 0,
415
+ 0,
416
+ 0
417
+ ]
418
+ },
419
+ "source": {
420
+ "events": [
421
+ {
422
+ "count": 268,
423
+ "offset": 56,
424
+ "op": "zero"
425
+ }
426
+ ],
427
+ "guards": [
428
+ "ffffffff",
429
+ "ffffffff"
430
+ ],
431
+ "words": [
432
+ 0,
433
+ 0,
434
+ 0,
435
+ 0,
436
+ 0,
437
+ 0,
438
+ 0,
439
+ 0,
440
+ 0,
441
+ 0,
442
+ 0,
443
+ 0,
444
+ 0,
445
+ 0,
446
+ 0,
447
+ 0,
448
+ 0,
449
+ 0,
450
+ 0,
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 0,
470
+ 0,
471
+ 0,
472
+ 0,
473
+ 0,
474
+ 0,
475
+ 0,
476
+ 0,
477
+ 0,
478
+ 0,
479
+ 0,
480
+ 0,
481
+ 0,
482
+ 0,
483
+ 0,
484
+ 0,
485
+ 0,
486
+ 0,
487
+ 0,
488
+ 0,
489
+ 0,
490
+ 0,
491
+ 0,
492
+ 0,
493
+ 0,
494
+ 0,
495
+ 0,
496
+ 0,
497
+ 0,
498
+ 0
499
+ ]
500
+ }
501
+ },
502
+ {
503
+ "rust": {
504
+ "events": [
505
+ {
506
+ "count": 268,
507
+ "offset": 56,
508
+ "op": "zero"
509
+ },
510
+ {
511
+ "op": "callback",
512
+ "slot": 2,
513
+ "target": 153419
514
+ }
515
+ ],
516
+ "guards": [
517
+ "00000000",
518
+ "00000000"
519
+ ],
520
+ "words": [
521
+ 0,
522
+ 0,
523
+ 0,
524
+ 0,
525
+ 0,
526
+ 0,
527
+ 0,
528
+ 0,
529
+ 0,
530
+ 0,
531
+ 0,
532
+ 0,
533
+ 0,
534
+ 0,
535
+ 0,
536
+ 0,
537
+ 0,
538
+ 0,
539
+ 0,
540
+ 0,
541
+ 0,
542
+ 0,
543
+ 0,
544
+ 0,
545
+ 0,
546
+ 0,
547
+ 0,
548
+ 0,
549
+ 0,
550
+ 0,
551
+ 0,
552
+ 0,
553
+ 0,
554
+ 0,
555
+ 0,
556
+ 0,
557
+ 0,
558
+ 0,
559
+ 0,
560
+ 0,
561
+ 0,
562
+ 0,
563
+ 0,
564
+ 0,
565
+ 0,
566
+ 0,
567
+ 0,
568
+ 0,
569
+ 0,
570
+ 0,
571
+ 0,
572
+ 0,
573
+ 0,
574
+ 0,
575
+ 0,
576
+ 0,
577
+ 0,
578
+ 0,
579
+ 0,
580
+ 0,
581
+ 0,
582
+ 0,
583
+ 0,
584
+ 0,
585
+ 0,
586
+ 0,
587
+ 0
588
+ ]
589
+ },
590
+ "source": {
591
+ "events": [
592
+ {
593
+ "count": 268,
594
+ "offset": 56,
595
+ "op": "zero"
596
+ },
597
+ {
598
+ "op": "callback",
599
+ "slot": 2,
600
+ "target": 153419
601
+ }
602
+ ],
603
+ "guards": [
604
+ "00000000",
605
+ "00000000"
606
+ ],
607
+ "words": [
608
+ 0,
609
+ 0,
610
+ 0,
611
+ 0,
612
+ 0,
613
+ 0,
614
+ 0,
615
+ 0,
616
+ 0,
617
+ 0,
618
+ 0,
619
+ 0,
620
+ 0,
621
+ 0,
622
+ 0,
623
+ 0,
624
+ 0,
625
+ 0,
626
+ 0,
627
+ 0,
628
+ 0,
629
+ 0,
630
+ 0,
631
+ 0,
632
+ 0,
633
+ 0,
634
+ 0,
635
+ 0,
636
+ 0,
637
+ 0,
638
+ 0,
639
+ 0,
640
+ 0,
641
+ 0,
642
+ 0,
643
+ 0,
644
+ 0,
645
+ 0,
646
+ 0,
647
+ 0,
648
+ 0,
649
+ 0,
650
+ 0,
651
+ 0,
652
+ 0,
653
+ 0,
654
+ 0,
655
+ 0,
656
+ 0,
657
+ 0,
658
+ 0,
659
+ 0,
660
+ 0,
661
+ 0,
662
+ 0,
663
+ 0,
664
+ 0,
665
+ 0,
666
+ 0,
667
+ 0,
668
+ 0,
669
+ 0,
670
+ 0,
671
+ 0,
672
+ 0,
673
+ 0,
674
+ 0
675
+ ]
676
+ }
677
+ },
678
+ {
679
+ "rust": {
680
+ "events": [
681
+ {
682
+ "count": 268,
683
+ "offset": 56,
684
+ "op": "zero"
685
+ },
686
+ {
687
+ "op": "callback",
688
+ "slot": 2,
689
+ "target": 153419
690
+ }
691
+ ],
692
+ "guards": [
693
+ "a5a5a5a5",
694
+ "a5a5a5a5"
695
+ ],
696
+ "words": [
697
+ 0,
698
+ 0,
699
+ 0,
700
+ 0,
701
+ 0,
702
+ 0,
703
+ 0,
704
+ 0,
705
+ 0,
706
+ 0,
707
+ 0,
708
+ 0,
709
+ 0,
710
+ 0,
711
+ 0,
712
+ 0,
713
+ 0,
714
+ 0,
715
+ 0,
716
+ 0,
717
+ 0,
718
+ 0,
719
+ 0,
720
+ 0,
721
+ 0,
722
+ 0,
723
+ 0,
724
+ 0,
725
+ 0,
726
+ 0,
727
+ 0,
728
+ 0,
729
+ 0,
730
+ 0,
731
+ 0,
732
+ 0,
733
+ 0,
734
+ 0,
735
+ 0,
736
+ 0,
737
+ 0,
738
+ 0,
739
+ 0,
740
+ 0,
741
+ 0,
742
+ 0,
743
+ 0,
744
+ 0,
745
+ 0,
746
+ 0,
747
+ 0,
748
+ 0,
749
+ 0,
750
+ 0,
751
+ 0,
752
+ 0,
753
+ 0,
754
+ 0,
755
+ 0,
756
+ 0,
757
+ 0,
758
+ 0,
759
+ 0,
760
+ 0,
761
+ 0,
762
+ 0,
763
+ 0
764
+ ]
765
+ },
766
+ "source": {
767
+ "events": [
768
+ {
769
+ "count": 268,
770
+ "offset": 56,
771
+ "op": "zero"
772
+ },
773
+ {
774
+ "op": "callback",
775
+ "slot": 2,
776
+ "target": 153419
777
+ }
778
+ ],
779
+ "guards": [
780
+ "a5a5a5a5",
781
+ "a5a5a5a5"
782
+ ],
783
+ "words": [
784
+ 0,
785
+ 0,
786
+ 0,
787
+ 0,
788
+ 0,
789
+ 0,
790
+ 0,
791
+ 0,
792
+ 0,
793
+ 0,
794
+ 0,
795
+ 0,
796
+ 0,
797
+ 0,
798
+ 0,
799
+ 0,
800
+ 0,
801
+ 0,
802
+ 0,
803
+ 0,
804
+ 0,
805
+ 0,
806
+ 0,
807
+ 0,
808
+ 0,
809
+ 0,
810
+ 0,
811
+ 0,
812
+ 0,
813
+ 0,
814
+ 0,
815
+ 0,
816
+ 0,
817
+ 0,
818
+ 0,
819
+ 0,
820
+ 0,
821
+ 0,
822
+ 0,
823
+ 0,
824
+ 0,
825
+ 0,
826
+ 0,
827
+ 0,
828
+ 0,
829
+ 0,
830
+ 0,
831
+ 0,
832
+ 0,
833
+ 0,
834
+ 0,
835
+ 0,
836
+ 0,
837
+ 0,
838
+ 0,
839
+ 0,
840
+ 0,
841
+ 0,
842
+ 0,
843
+ 0,
844
+ 0,
845
+ 0,
846
+ 0,
847
+ 0,
848
+ 0,
849
+ 0,
850
+ 0
851
+ ]
852
+ }
853
+ },
854
+ {
855
+ "rust": {
856
+ "events": [
857
+ {
858
+ "count": 268,
859
+ "offset": 56,
860
+ "op": "zero"
861
+ },
862
+ {
863
+ "op": "callback",
864
+ "slot": 2,
865
+ "target": 153419
866
+ }
867
+ ],
868
+ "guards": [
869
+ "ffffffff",
870
+ "ffffffff"
871
+ ],
872
+ "words": [
873
+ 0,
874
+ 0,
875
+ 0,
876
+ 0,
877
+ 0,
878
+ 0,
879
+ 0,
880
+ 0,
881
+ 0,
882
+ 0,
883
+ 0,
884
+ 0,
885
+ 0,
886
+ 0,
887
+ 0,
888
+ 0,
889
+ 0,
890
+ 0,
891
+ 0,
892
+ 0,
893
+ 0,
894
+ 0,
895
+ 0,
896
+ 0,
897
+ 0,
898
+ 0,
899
+ 0,
900
+ 0,
901
+ 0,
902
+ 0,
903
+ 0,
904
+ 0,
905
+ 0,
906
+ 0,
907
+ 0,
908
+ 0,
909
+ 0,
910
+ 0,
911
+ 0,
912
+ 0,
913
+ 0,
914
+ 0,
915
+ 0,
916
+ 0,
917
+ 0,
918
+ 0,
919
+ 0,
920
+ 0,
921
+ 0,
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 0,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0,
931
+ 0,
932
+ 0,
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 0,
937
+ 0,
938
+ 0,
939
+ 0
940
+ ]
941
+ },
942
+ "source": {
943
+ "events": [
944
+ {
945
+ "count": 268,
946
+ "offset": 56,
947
+ "op": "zero"
948
+ },
949
+ {
950
+ "op": "callback",
951
+ "slot": 2,
952
+ "target": 153419
953
+ }
954
+ ],
955
+ "guards": [
956
+ "ffffffff",
957
+ "ffffffff"
958
+ ],
959
+ "words": [
960
+ 0,
961
+ 0,
962
+ 0,
963
+ 0,
964
+ 0,
965
+ 0,
966
+ 0,
967
+ 0,
968
+ 0,
969
+ 0,
970
+ 0,
971
+ 0,
972
+ 0,
973
+ 0,
974
+ 0,
975
+ 0,
976
+ 0,
977
+ 0,
978
+ 0,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 0,
983
+ 0,
984
+ 0,
985
+ 0,
986
+ 0,
987
+ 0,
988
+ 0,
989
+ 0,
990
+ 0,
991
+ 0,
992
+ 0,
993
+ 0,
994
+ 0,
995
+ 0,
996
+ 0,
997
+ 0,
998
+ 0,
999
+ 0,
1000
+ 0,
1001
+ 0,
1002
+ 0,
1003
+ 0,
1004
+ 0,
1005
+ 0,
1006
+ 0,
1007
+ 0,
1008
+ 0,
1009
+ 0,
1010
+ 0,
1011
+ 0,
1012
+ 0,
1013
+ 0,
1014
+ 0,
1015
+ 0,
1016
+ 0,
1017
+ 0,
1018
+ 0,
1019
+ 0,
1020
+ 0,
1021
+ 0,
1022
+ 0,
1023
+ 0,
1024
+ 0,
1025
+ 0,
1026
+ 0
1027
+ ]
1028
+ }
1029
+ },
1030
+ {
1031
+ "rust": {
1032
+ "events": [
1033
+ {
1034
+ "count": 268,
1035
+ "offset": 56,
1036
+ "op": "zero"
1037
+ },
1038
+ {
1039
+ "op": "callback",
1040
+ "slot": 2,
1041
+ "target": 152792
1042
+ },
1043
+ {
1044
+ "op": "callback",
1045
+ "slot": 2,
1046
+ "target": 152673
1047
+ }
1048
+ ],
1049
+ "guards": [
1050
+ "00000000",
1051
+ "00000000"
1052
+ ],
1053
+ "words": [
1054
+ 0,
1055
+ 0,
1056
+ 0,
1057
+ 0,
1058
+ 0,
1059
+ 0,
1060
+ 0,
1061
+ 0,
1062
+ 0,
1063
+ 0,
1064
+ 0,
1065
+ 0,
1066
+ 0,
1067
+ 0,
1068
+ 0,
1069
+ 0,
1070
+ 0,
1071
+ 0,
1072
+ 0,
1073
+ 0,
1074
+ 0,
1075
+ 0,
1076
+ 0,
1077
+ 0,
1078
+ 0,
1079
+ 0,
1080
+ 0,
1081
+ 0,
1082
+ 0,
1083
+ 0,
1084
+ 0,
1085
+ 0,
1086
+ 0,
1087
+ 0,
1088
+ 0,
1089
+ 0,
1090
+ 0,
1091
+ 0,
1092
+ 0,
1093
+ 0,
1094
+ 0,
1095
+ 0,
1096
+ 0,
1097
+ 0,
1098
+ 0,
1099
+ 0,
1100
+ 0,
1101
+ 0,
1102
+ 0,
1103
+ 0,
1104
+ 0,
1105
+ 0,
1106
+ 0,
1107
+ 0,
1108
+ 0,
1109
+ 0,
1110
+ 0,
1111
+ 0,
1112
+ 0,
1113
+ 0,
1114
+ 0,
1115
+ 0,
1116
+ 0,
1117
+ 0,
1118
+ 0,
1119
+ 0,
1120
+ 0
1121
+ ]
1122
+ },
1123
+ "source": {
1124
+ "events": [
1125
+ {
1126
+ "count": 268,
1127
+ "offset": 56,
1128
+ "op": "zero"
1129
+ },
1130
+ {
1131
+ "op": "callback",
1132
+ "slot": 2,
1133
+ "target": 152792
1134
+ },
1135
+ {
1136
+ "op": "callback",
1137
+ "slot": 2,
1138
+ "target": 152673
1139
+ }
1140
+ ],
1141
+ "guards": [
1142
+ "00000000",
1143
+ "00000000"
1144
+ ],
1145
+ "words": [
1146
+ 0,
1147
+ 0,
1148
+ 0,
1149
+ 0,
1150
+ 0,
1151
+ 0,
1152
+ 0,
1153
+ 0,
1154
+ 0,
1155
+ 0,
1156
+ 0,
1157
+ 0,
1158
+ 0,
1159
+ 0,
1160
+ 0,
1161
+ 0,
1162
+ 0,
1163
+ 0,
1164
+ 0,
1165
+ 0,
1166
+ 0,
1167
+ 0,
1168
+ 0,
1169
+ 0,
1170
+ 0,
1171
+ 0,
1172
+ 0,
1173
+ 0,
1174
+ 0,
1175
+ 0,
1176
+ 0,
1177
+ 0,
1178
+ 0,
1179
+ 0,
1180
+ 0,
1181
+ 0,
1182
+ 0,
1183
+ 0,
1184
+ 0,
1185
+ 0,
1186
+ 0,
1187
+ 0,
1188
+ 0,
1189
+ 0,
1190
+ 0,
1191
+ 0,
1192
+ 0,
1193
+ 0,
1194
+ 0,
1195
+ 0,
1196
+ 0,
1197
+ 0,
1198
+ 0,
1199
+ 0,
1200
+ 0,
1201
+ 0,
1202
+ 0,
1203
+ 0,
1204
+ 0,
1205
+ 0,
1206
+ 0,
1207
+ 0,
1208
+ 0,
1209
+ 0,
1210
+ 0,
1211
+ 0,
1212
+ 0
1213
+ ]
1214
+ }
1215
+ },
1216
+ {
1217
+ "rust": {
1218
+ "events": [
1219
+ {
1220
+ "count": 268,
1221
+ "offset": 56,
1222
+ "op": "zero"
1223
+ },
1224
+ {
1225
+ "op": "callback",
1226
+ "slot": 2,
1227
+ "target": 152792
1228
+ },
1229
+ {
1230
+ "op": "callback",
1231
+ "slot": 2,
1232
+ "target": 152673
1233
+ }
1234
+ ],
1235
+ "guards": [
1236
+ "a5a5a5a5",
1237
+ "a5a5a5a5"
1238
+ ],
1239
+ "words": [
1240
+ 0,
1241
+ 0,
1242
+ 0,
1243
+ 0,
1244
+ 0,
1245
+ 0,
1246
+ 0,
1247
+ 0,
1248
+ 0,
1249
+ 0,
1250
+ 0,
1251
+ 0,
1252
+ 0,
1253
+ 0,
1254
+ 0,
1255
+ 0,
1256
+ 0,
1257
+ 0,
1258
+ 0,
1259
+ 0,
1260
+ 0,
1261
+ 0,
1262
+ 0,
1263
+ 0,
1264
+ 0,
1265
+ 0,
1266
+ 0,
1267
+ 0,
1268
+ 0,
1269
+ 0,
1270
+ 0,
1271
+ 0,
1272
+ 0,
1273
+ 0,
1274
+ 0,
1275
+ 0,
1276
+ 0,
1277
+ 0,
1278
+ 0,
1279
+ 0,
1280
+ 0,
1281
+ 0,
1282
+ 0,
1283
+ 0,
1284
+ 0,
1285
+ 0,
1286
+ 0,
1287
+ 0,
1288
+ 0,
1289
+ 0,
1290
+ 0,
1291
+ 0,
1292
+ 0,
1293
+ 0,
1294
+ 0,
1295
+ 0,
1296
+ 0,
1297
+ 0,
1298
+ 0,
1299
+ 0,
1300
+ 0,
1301
+ 0,
1302
+ 0,
1303
+ 0,
1304
+ 0,
1305
+ 0,
1306
+ 0
1307
+ ]
1308
+ },
1309
+ "source": {
1310
+ "events": [
1311
+ {
1312
+ "count": 268,
1313
+ "offset": 56,
1314
+ "op": "zero"
1315
+ },
1316
+ {
1317
+ "op": "callback",
1318
+ "slot": 2,
1319
+ "target": 152792
1320
+ },
1321
+ {
1322
+ "op": "callback",
1323
+ "slot": 2,
1324
+ "target": 152673
1325
+ }
1326
+ ],
1327
+ "guards": [
1328
+ "a5a5a5a5",
1329
+ "a5a5a5a5"
1330
+ ],
1331
+ "words": [
1332
+ 0,
1333
+ 0,
1334
+ 0,
1335
+ 0,
1336
+ 0,
1337
+ 0,
1338
+ 0,
1339
+ 0,
1340
+ 0,
1341
+ 0,
1342
+ 0,
1343
+ 0,
1344
+ 0,
1345
+ 0,
1346
+ 0,
1347
+ 0,
1348
+ 0,
1349
+ 0,
1350
+ 0,
1351
+ 0,
1352
+ 0,
1353
+ 0,
1354
+ 0,
1355
+ 0,
1356
+ 0,
1357
+ 0,
1358
+ 0,
1359
+ 0,
1360
+ 0,
1361
+ 0,
1362
+ 0,
1363
+ 0,
1364
+ 0,
1365
+ 0,
1366
+ 0,
1367
+ 0,
1368
+ 0,
1369
+ 0,
1370
+ 0,
1371
+ 0,
1372
+ 0,
1373
+ 0,
1374
+ 0,
1375
+ 0,
1376
+ 0,
1377
+ 0,
1378
+ 0,
1379
+ 0,
1380
+ 0,
1381
+ 0,
1382
+ 0,
1383
+ 0,
1384
+ 0,
1385
+ 0,
1386
+ 0,
1387
+ 0,
1388
+ 0,
1389
+ 0,
1390
+ 0,
1391
+ 0,
1392
+ 0,
1393
+ 0,
1394
+ 0,
1395
+ 0,
1396
+ 0,
1397
+ 0,
1398
+ 0
1399
+ ]
1400
+ }
1401
+ },
1402
+ {
1403
+ "rust": {
1404
+ "events": [
1405
+ {
1406
+ "count": 268,
1407
+ "offset": 56,
1408
+ "op": "zero"
1409
+ },
1410
+ {
1411
+ "op": "callback",
1412
+ "slot": 2,
1413
+ "target": 152792
1414
+ },
1415
+ {
1416
+ "op": "callback",
1417
+ "slot": 2,
1418
+ "target": 152673
1419
+ }
1420
+ ],
1421
+ "guards": [
1422
+ "ffffffff",
1423
+ "ffffffff"
1424
+ ],
1425
+ "words": [
1426
+ 0,
1427
+ 0,
1428
+ 0,
1429
+ 0,
1430
+ 0,
1431
+ 0,
1432
+ 0,
1433
+ 0,
1434
+ 0,
1435
+ 0,
1436
+ 0,
1437
+ 0,
1438
+ 0,
1439
+ 0,
1440
+ 0,
1441
+ 0,
1442
+ 0,
1443
+ 0,
1444
+ 0,
1445
+ 0,
1446
+ 0,
1447
+ 0,
1448
+ 0,
1449
+ 0,
1450
+ 0,
1451
+ 0,
1452
+ 0,
1453
+ 0,
1454
+ 0,
1455
+ 0,
1456
+ 0,
1457
+ 0,
1458
+ 0,
1459
+ 0,
1460
+ 0,
1461
+ 0,
1462
+ 0,
1463
+ 0,
1464
+ 0,
1465
+ 0,
1466
+ 0,
1467
+ 0,
1468
+ 0,
1469
+ 0,
1470
+ 0,
1471
+ 0,
1472
+ 0,
1473
+ 0,
1474
+ 0,
1475
+ 0,
1476
+ 0,
1477
+ 0,
1478
+ 0,
1479
+ 0,
1480
+ 0,
1481
+ 0,
1482
+ 0,
1483
+ 0,
1484
+ 0,
1485
+ 0,
1486
+ 0,
1487
+ 0,
1488
+ 0,
1489
+ 0,
1490
+ 0,
1491
+ 0,
1492
+ 0
1493
+ ]
1494
+ },
1495
+ "source": {
1496
+ "events": [
1497
+ {
1498
+ "count": 268,
1499
+ "offset": 56,
1500
+ "op": "zero"
1501
+ },
1502
+ {
1503
+ "op": "callback",
1504
+ "slot": 2,
1505
+ "target": 152792
1506
+ },
1507
+ {
1508
+ "op": "callback",
1509
+ "slot": 2,
1510
+ "target": 152673
1511
+ }
1512
+ ],
1513
+ "guards": [
1514
+ "ffffffff",
1515
+ "ffffffff"
1516
+ ],
1517
+ "words": [
1518
+ 0,
1519
+ 0,
1520
+ 0,
1521
+ 0,
1522
+ 0,
1523
+ 0,
1524
+ 0,
1525
+ 0,
1526
+ 0,
1527
+ 0,
1528
+ 0,
1529
+ 0,
1530
+ 0,
1531
+ 0,
1532
+ 0,
1533
+ 0,
1534
+ 0,
1535
+ 0,
1536
+ 0,
1537
+ 0,
1538
+ 0,
1539
+ 0,
1540
+ 0,
1541
+ 0,
1542
+ 0,
1543
+ 0,
1544
+ 0,
1545
+ 0,
1546
+ 0,
1547
+ 0,
1548
+ 0,
1549
+ 0,
1550
+ 0,
1551
+ 0,
1552
+ 0,
1553
+ 0,
1554
+ 0,
1555
+ 0,
1556
+ 0,
1557
+ 0,
1558
+ 0,
1559
+ 0,
1560
+ 0,
1561
+ 0,
1562
+ 0,
1563
+ 0,
1564
+ 0,
1565
+ 0,
1566
+ 0,
1567
+ 0,
1568
+ 0,
1569
+ 0,
1570
+ 0,
1571
+ 0,
1572
+ 0,
1573
+ 0,
1574
+ 0,
1575
+ 0,
1576
+ 0,
1577
+ 0,
1578
+ 0,
1579
+ 0,
1580
+ 0,
1581
+ 0,
1582
+ 0,
1583
+ 0,
1584
+ 0
1585
+ ]
1586
+ }
1587
+ },
1588
+ {
1589
+ "rust": {
1590
+ "events": [
1591
+ {
1592
+ "count": 268,
1593
+ "offset": 56,
1594
+ "op": "zero"
1595
+ }
1596
+ ],
1597
+ "guards": [
1598
+ "00000000",
1599
+ "00000000"
1600
+ ],
1601
+ "words": [
1602
+ 0,
1603
+ 0,
1604
+ 0,
1605
+ 0,
1606
+ 0,
1607
+ 0,
1608
+ 0,
1609
+ 0,
1610
+ 0,
1611
+ 0,
1612
+ 0,
1613
+ 0,
1614
+ 0,
1615
+ 0,
1616
+ 0,
1617
+ 0,
1618
+ 0,
1619
+ 0,
1620
+ 0,
1621
+ 0,
1622
+ 0,
1623
+ 0,
1624
+ 0,
1625
+ 0,
1626
+ 0,
1627
+ 0,
1628
+ 0,
1629
+ 0,
1630
+ 0,
1631
+ 0,
1632
+ 0,
1633
+ 0,
1634
+ 0,
1635
+ 0,
1636
+ 0,
1637
+ 0,
1638
+ 0,
1639
+ 0,
1640
+ 0,
1641
+ 0,
1642
+ 0,
1643
+ 0,
1644
+ 0,
1645
+ 0,
1646
+ 0,
1647
+ 0,
1648
+ 0,
1649
+ 0,
1650
+ 0,
1651
+ 0,
1652
+ 0,
1653
+ 0,
1654
+ 0,
1655
+ 0,
1656
+ 0,
1657
+ 0,
1658
+ 0,
1659
+ 0,
1660
+ 0,
1661
+ 0,
1662
+ 0,
1663
+ 0,
1664
+ 0,
1665
+ 0,
1666
+ 0,
1667
+ 0,
1668
+ 0
1669
+ ]
1670
+ },
1671
+ "source": {
1672
+ "events": [
1673
+ {
1674
+ "count": 268,
1675
+ "offset": 56,
1676
+ "op": "zero"
1677
+ }
1678
+ ],
1679
+ "guards": [
1680
+ "00000000",
1681
+ "00000000"
1682
+ ],
1683
+ "words": [
1684
+ 0,
1685
+ 0,
1686
+ 0,
1687
+ 0,
1688
+ 0,
1689
+ 0,
1690
+ 0,
1691
+ 0,
1692
+ 0,
1693
+ 0,
1694
+ 0,
1695
+ 0,
1696
+ 0,
1697
+ 0,
1698
+ 0,
1699
+ 0,
1700
+ 0,
1701
+ 0,
1702
+ 0,
1703
+ 0,
1704
+ 0,
1705
+ 0,
1706
+ 0,
1707
+ 0,
1708
+ 0,
1709
+ 0,
1710
+ 0,
1711
+ 0,
1712
+ 0,
1713
+ 0,
1714
+ 0,
1715
+ 0,
1716
+ 0,
1717
+ 0,
1718
+ 0,
1719
+ 0,
1720
+ 0,
1721
+ 0,
1722
+ 0,
1723
+ 0,
1724
+ 0,
1725
+ 0,
1726
+ 0,
1727
+ 0,
1728
+ 0,
1729
+ 0,
1730
+ 0,
1731
+ 0,
1732
+ 0,
1733
+ 0,
1734
+ 0,
1735
+ 0,
1736
+ 0,
1737
+ 0,
1738
+ 0,
1739
+ 0,
1740
+ 0,
1741
+ 0,
1742
+ 0,
1743
+ 0,
1744
+ 0,
1745
+ 0,
1746
+ 0,
1747
+ 0,
1748
+ 0,
1749
+ 0,
1750
+ 0
1751
+ ]
1752
+ }
1753
+ },
1754
+ {
1755
+ "rust": {
1756
+ "events": [
1757
+ {
1758
+ "count": 268,
1759
+ "offset": 56,
1760
+ "op": "zero"
1761
+ }
1762
+ ],
1763
+ "guards": [
1764
+ "a5a5a5a5",
1765
+ "a5a5a5a5"
1766
+ ],
1767
+ "words": [
1768
+ 0,
1769
+ 0,
1770
+ 0,
1771
+ 0,
1772
+ 0,
1773
+ 0,
1774
+ 0,
1775
+ 0,
1776
+ 0,
1777
+ 0,
1778
+ 0,
1779
+ 0,
1780
+ 0,
1781
+ 0,
1782
+ 0,
1783
+ 0,
1784
+ 0,
1785
+ 0,
1786
+ 0,
1787
+ 0,
1788
+ 0,
1789
+ 0,
1790
+ 0,
1791
+ 0,
1792
+ 0,
1793
+ 0,
1794
+ 0,
1795
+ 0,
1796
+ 0,
1797
+ 0,
1798
+ 0,
1799
+ 0,
1800
+ 0,
1801
+ 0,
1802
+ 0,
1803
+ 0,
1804
+ 0,
1805
+ 0,
1806
+ 0,
1807
+ 0,
1808
+ 0,
1809
+ 0,
1810
+ 0,
1811
+ 0,
1812
+ 0,
1813
+ 0,
1814
+ 0,
1815
+ 0,
1816
+ 0,
1817
+ 0,
1818
+ 0,
1819
+ 0,
1820
+ 0,
1821
+ 0,
1822
+ 0,
1823
+ 0,
1824
+ 0,
1825
+ 0,
1826
+ 0,
1827
+ 0,
1828
+ 0,
1829
+ 0,
1830
+ 0,
1831
+ 0,
1832
+ 0,
1833
+ 0,
1834
+ 0
1835
+ ]
1836
+ },
1837
+ "source": {
1838
+ "events": [
1839
+ {
1840
+ "count": 268,
1841
+ "offset": 56,
1842
+ "op": "zero"
1843
+ }
1844
+ ],
1845
+ "guards": [
1846
+ "a5a5a5a5",
1847
+ "a5a5a5a5"
1848
+ ],
1849
+ "words": [
1850
+ 0,
1851
+ 0,
1852
+ 0,
1853
+ 0,
1854
+ 0,
1855
+ 0,
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0,
1876
+ 0,
1877
+ 0,
1878
+ 0,
1879
+ 0,
1880
+ 0,
1881
+ 0,
1882
+ 0,
1883
+ 0,
1884
+ 0,
1885
+ 0,
1886
+ 0,
1887
+ 0,
1888
+ 0,
1889
+ 0,
1890
+ 0,
1891
+ 0,
1892
+ 0,
1893
+ 0,
1894
+ 0,
1895
+ 0,
1896
+ 0,
1897
+ 0,
1898
+ 0,
1899
+ 0,
1900
+ 0,
1901
+ 0,
1902
+ 0,
1903
+ 0,
1904
+ 0,
1905
+ 0,
1906
+ 0,
1907
+ 0,
1908
+ 0,
1909
+ 0,
1910
+ 0,
1911
+ 0,
1912
+ 0,
1913
+ 0,
1914
+ 0,
1915
+ 0,
1916
+ 0
1917
+ ]
1918
+ }
1919
+ },
1920
+ {
1921
+ "rust": {
1922
+ "events": [
1923
+ {
1924
+ "count": 268,
1925
+ "offset": 56,
1926
+ "op": "zero"
1927
+ }
1928
+ ],
1929
+ "guards": [
1930
+ "ffffffff",
1931
+ "ffffffff"
1932
+ ],
1933
+ "words": [
1934
+ 0,
1935
+ 0,
1936
+ 0,
1937
+ 0,
1938
+ 0,
1939
+ 0,
1940
+ 0,
1941
+ 0,
1942
+ 0,
1943
+ 0,
1944
+ 0,
1945
+ 0,
1946
+ 0,
1947
+ 0,
1948
+ 0,
1949
+ 0,
1950
+ 0,
1951
+ 0,
1952
+ 0,
1953
+ 0,
1954
+ 0,
1955
+ 0,
1956
+ 0,
1957
+ 0,
1958
+ 0,
1959
+ 0,
1960
+ 0,
1961
+ 0,
1962
+ 0,
1963
+ 0,
1964
+ 0,
1965
+ 0,
1966
+ 0,
1967
+ 0,
1968
+ 0,
1969
+ 0,
1970
+ 0,
1971
+ 0,
1972
+ 0,
1973
+ 0,
1974
+ 0,
1975
+ 0,
1976
+ 0,
1977
+ 0,
1978
+ 0,
1979
+ 0,
1980
+ 0,
1981
+ 0,
1982
+ 0,
1983
+ 0,
1984
+ 0,
1985
+ 0,
1986
+ 0,
1987
+ 0,
1988
+ 0,
1989
+ 0,
1990
+ 0,
1991
+ 0,
1992
+ 0,
1993
+ 0,
1994
+ 0,
1995
+ 0,
1996
+ 0,
1997
+ 0,
1998
+ 0,
1999
+ 0,
2000
+ 0
2001
+ ]
2002
+ },
2003
+ "source": {
2004
+ "events": [
2005
+ {
2006
+ "count": 268,
2007
+ "offset": 56,
2008
+ "op": "zero"
2009
+ }
2010
+ ],
2011
+ "guards": [
2012
+ "ffffffff",
2013
+ "ffffffff"
2014
+ ],
2015
+ "words": [
2016
+ 0,
2017
+ 0,
2018
+ 0,
2019
+ 0,
2020
+ 0,
2021
+ 0,
2022
+ 0,
2023
+ 0,
2024
+ 0,
2025
+ 0,
2026
+ 0,
2027
+ 0,
2028
+ 0,
2029
+ 0,
2030
+ 0,
2031
+ 0,
2032
+ 0,
2033
+ 0,
2034
+ 0,
2035
+ 0,
2036
+ 0,
2037
+ 0,
2038
+ 0,
2039
+ 0,
2040
+ 0,
2041
+ 0,
2042
+ 0,
2043
+ 0,
2044
+ 0,
2045
+ 0,
2046
+ 0,
2047
+ 0,
2048
+ 0,
2049
+ 0,
2050
+ 0,
2051
+ 0,
2052
+ 0,
2053
+ 0,
2054
+ 0,
2055
+ 0,
2056
+ 0,
2057
+ 0,
2058
+ 0,
2059
+ 0,
2060
+ 0,
2061
+ 0,
2062
+ 0,
2063
+ 0,
2064
+ 0,
2065
+ 0,
2066
+ 0,
2067
+ 0,
2068
+ 0,
2069
+ 0,
2070
+ 0,
2071
+ 0,
2072
+ 0,
2073
+ 0,
2074
+ 0,
2075
+ 0,
2076
+ 0,
2077
+ 0,
2078
+ 0,
2079
+ 0,
2080
+ 0,
2081
+ 0,
2082
+ 0
2083
+ ]
2084
+ }
2085
+ }
2086
+ ],
2087
+ "source_report": "docs/research/qvm-client-move-scratch.json",
2088
+ "source_report_sha256": "0ae67a58c595c6688ea59ef3fb3d82af354d970a6925f43dcc0119c1c68c5053"
2089
+ }
docs/research/rust-health-impulse.json CHANGED
@@ -2985,7 +2985,7 @@
2985
  "exit_code": 2
2986
  }
2987
  ],
2988
- "rust_unit_tests": 240,
2989
  "source_report": "docs/research/qvm-health-impulse.json",
2990
  "source_report_sha256": "625fd8064004ea6dbdf398d51d0af844d9c635ff04c0a0790886dddb6ab81e71"
2991
  }
 
2985
  "exit_code": 2
2986
  }
2987
  ],
2988
+ "rust_unit_tests": 242,
2989
  "source_report": "docs/research/qvm-health-impulse.json",
2990
  "source_report_sha256": "625fd8064004ea6dbdf398d51d0af844d9c635ff04c0a0790886dddb6ab81e71"
2991
  }
scripts/analyze_rust_client_move_scratch.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Compare recovered Rust policy with original QVM fixtures."""
2
+ import hashlib,json,os,subprocess
3
+ from pathlib import Path
4
+ from analyze_qvm import write_json
5
+ from rust_lifecycle_support import result
6
+
7
+ def main():
8
+ subprocess.run(['cargo','build','--offline','--package','urt-gameplay','--bin','urt-client-move-context'],check=True,capture_output=True)
9
+ binary=Path(os.environ.get('CARGO_TARGET_DIR','target'))/'debug'/'urt-client-move-context'
10
+ path=Path('docs/research/qvm-client-move-scratch.json');data=path.read_bytes();probes=[]
11
+ for p in json.loads(data)['probes']:
12
+ probes.append(dict(source={k:p[k] for k in ['events', 'words', 'guards']},rust=result(binary,'scratch',encode(p['input']))))
13
+ write_json(Path('docs/research/rust-client-move-scratch.json'),dict(source_report=str(path),source_report_sha256=hashlib.sha256(data).hexdigest(),probes=probes,limits='Finite source/Rust contract parity; native time/file/network replies remain supplied or captured.'))
14
+
15
+ def encode(a):return [a['mode'],a['dirty']]
16
+ if __name__=='__main__':main()
scripts/test_rust_client_move_scratch.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import hashlib,json,unittest
2
+ from pathlib import Path
3
+ class PortTests(unittest.TestCase):
4
+ def test_original_parity(self):
5
+ r=json.loads(Path('docs/research/rust-client-move-scratch.json').read_text());self.assertGreaterEqual(len(r['probes']),12)
6
+ for p in r['probes']:self.assertEqual(p['source'],p['rust'])
7
+ def test_identity(self):
8
+ r=json.loads(Path('docs/research/rust-client-move-scratch.json').read_text());self.assertEqual(hashlib.sha256(Path(r['source_report']).read_bytes()).hexdigest(),r['source_report_sha256'])
9
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -3674,3 +3674,29 @@ report scripts/analyze_qvm_client_move_scratch.py docs/research/qvm-client-move-
3674
  edge docs/research/qvm-client-move-scratch.json scripts/test_qvm_client_move_scratch.py
3675
  group qvm-client-move-scratch scripts/analyze_qvm_client_move_scratch.py
3676
  edge scripts/analyze_qvm_client_move_scratch.py scripts/analyze_qvm_resumer_audit.py
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3674
  edge docs/research/qvm-client-move-scratch.json scripts/test_qvm_client_move_scratch.py
3675
  group qvm-client-move-scratch scripts/analyze_qvm_client_move_scratch.py
3676
  edge scripts/analyze_qvm_client_move_scratch.py scripts/analyze_qvm_resumer_audit.py
3677
+ report scripts/analyze_rust_client_move_scratch.py docs/research/rust-client-move-scratch.json
3678
+ edge docs/research/rust-client-move-scratch.json scripts/test_rust_client_move_scratch.py
3679
+ group rust-client-move-scratch scripts/analyze_rust_client_move_scratch.py
3680
+ edge scripts/analyze_rust_client_move_scratch.py scripts/analyze_qvm_resumer_audit.py
3681
+ edge Cargo.toml scripts/analyze_rust_client_move_scratch.py
3682
+ edge Cargo.lock scripts/analyze_rust_client_move_scratch.py
3683
+ edge crates/urt-gameplay/Cargo.toml scripts/analyze_rust_client_move_scratch.py
3684
+ edge crates/urt-gameplay/src/lib.rs scripts/analyze_rust_client_move_scratch.py
3685
+ edge crates/urt-gameplay/src/filter_loading.rs scripts/analyze_rust_client_move_scratch.py
3686
+ edge crates/urt-gameplay/src/filter_lifecycle.rs scripts/analyze_rust_client_move_scratch.py
3687
+ edge crates/urt-gameplay/src/native_policy.rs scripts/analyze_rust_client_move_scratch.py
3688
+ edge crates/urt-gameplay/src/bin/urt-filter-loading.rs scripts/analyze_rust_client_move_scratch.py
3689
+ edge crates/urt-gameplay/src/qvm_format.rs scripts/analyze_rust_client_move_scratch.py
3690
+ edge docs/research/qvm-client-move-scratch.json scripts/analyze_rust_client_move_scratch.py
3691
+ group rust-client-move-scratch scripts/analyze_rust_health_impulse.py
3692
+ group gameplay scripts/analyze_rust_client_move_scratch.py
3693
+ edge crates/urt-gameplay/src/filter_commands.rs scripts/analyze_rust_client_move_scratch.py
3694
+ edge crates/urt-gameplay/src/bin/urt-filter-commands.rs scripts/analyze_rust_client_move_scratch.py
3695
+ edge crates/urt-gameplay/src/client_timer.rs scripts/analyze_rust_client_move_scratch.py
3696
+ edge crates/urt-gameplay/src/bin/urt-client-timer.rs scripts/analyze_rust_client_move_scratch.py
3697
+ edge crates/urt-gameplay/src/client_processing.rs scripts/analyze_rust_client_move_scratch.py
3698
+ edge crates/urt-gameplay/src/bin/urt-client-processing.rs scripts/analyze_rust_client_move_scratch.py
3699
+ edge crates/urt-gameplay/src/client_move_context.rs scripts/analyze_rust_client_move_scratch.py
3700
+ edge crates/urt-gameplay/src/bin/urt-client-move-context.rs scripts/analyze_rust_client_move_scratch.py
3701
+ edge crates/urt-gameplay/src/client_move_context.rs scripts/analyze_rust_health_impulse.py
3702
+ edge crates/urt-gameplay/src/bin/urt-client-move-context.rs scripts/analyze_rust_health_impulse.py
xtask/src/lib.rs CHANGED
@@ -1132,6 +1132,7 @@ mod integration_tests {
1132
  ("filter_loading", "filter_time"),
1133
  ("filter_commands", "filter_add_command"),
1134
  ("client_timer", "client_timer_terminal"),
 
1135
  ("client_processing", "client_routing"),
1136
  ("client_timer", "client_routing"),
1137
  ("filter_commands", "client_routing"),
@@ -1345,6 +1346,7 @@ mod integration_tests {
1345
  ("qvm-filter-time", "filter_time"),
1346
  ("qvm-filter-add-command", "filter_add_command"),
1347
  ("qvm-client-timer-terminal", "client_timer_terminal"),
 
1348
  ("qvm-client-routing", "client_routing"),
1349
  ("qvm-client-command-rewrite", "client_command_rewrite"),
1350
  ("qvm-client-inactivity", "client_inactivity"),
 
1132
  ("filter_loading", "filter_time"),
1133
  ("filter_commands", "filter_add_command"),
1134
  ("client_timer", "client_timer_terminal"),
1135
+ ("client_move_context", "client_move_scratch"),
1136
  ("client_processing", "client_routing"),
1137
  ("client_timer", "client_routing"),
1138
  ("filter_commands", "client_routing"),
 
1346
  ("qvm-filter-time", "filter_time"),
1347
  ("qvm-filter-add-command", "filter_add_command"),
1348
  ("qvm-client-timer-terminal", "client_timer_terminal"),
1349
+ ("qvm-client-move-scratch", "client_move_scratch"),
1350
  ("qvm-client-routing", "client_routing"),
1351
  ("qvm-client-command-rewrite", "client_command_rewrite"),
1352
  ("qvm-client-inactivity", "client_inactivity"),