nmarshall commited on
Commit
6d07d15
·
1 Parent(s): 9a625b4

gameplay: port assistance cleanup policy

Browse files
crates/urt-gameplay/src/bin/urt-move-callbacks.rs CHANGED
@@ -69,6 +69,7 @@ fn main() {
69
  println!("{{{}}}", fields(s, &e));
70
  }
71
  "self" => println!("{}", self_recovery(&w)),
 
72
  _ => panic!("unknown policy"),
73
  }
74
  }
@@ -106,3 +107,54 @@ fn self_recovery(w: &[u32]) -> String {
106
  assert_eq!(&w[14..], &[1, 0]);
107
  format!("{{{},\"last\":{}}}", fields(s.meter, &e), s.last)
108
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  println!("{{{}}}", fields(s, &e));
70
  }
71
  "self" => println!("{}", self_recovery(&w)),
72
+ "cleanup" => println!("{}", cleanup(&w)),
73
  _ => panic!("unknown policy"),
74
  }
75
  }
 
107
  assert_eq!(&w[14..], &[1, 0]);
108
  format!("{{{},\"last\":{}}}", fields(s.meter, &e), s.last)
109
  }
110
+
111
+ fn cleanup(w: &[u32]) -> String {
112
+ assert_eq!(w.len(), 13);
113
+ let mut c = vec![
114
+ AssistClient {
115
+ connection: 2,
116
+ health: 1,
117
+ flags: w[12],
118
+ ..AssistClient::default()
119
+ };
120
+ (w[11] as usize).max(3)
121
+ ];
122
+ c[0].flags |= 8192;
123
+ c[0].active = w[10];
124
+ c[0].target = Some(1);
125
+ c[1].health = w[7];
126
+ c[1].connection = w[8];
127
+ c[1].follow = w[9];
128
+ c[2] = AssistClient {
129
+ connection: w[3],
130
+ health: w[4],
131
+ follow: w[5],
132
+ flags: w[12] | w[6] | 8192,
133
+ active: 1,
134
+ target: Some(1),
135
+ };
136
+ let proceed = cleanup_assistance(
137
+ &mut c,
138
+ AssistCleanupInput {
139
+ entity: w[0] != 0,
140
+ client: w[1] != 0,
141
+ mode: w[2],
142
+ self_index: 2,
143
+ count: w[11] as usize,
144
+ },
145
+ )
146
+ .unwrap();
147
+ let rows = c
148
+ .iter()
149
+ .map(|v| {
150
+ format!(
151
+ "[{},{},{}]",
152
+ v.flags,
153
+ v.active,
154
+ v.target.map(|v| v.to_string()).unwrap_or("null".into())
155
+ )
156
+ })
157
+ .collect::<Vec<_>>()
158
+ .join(",");
159
+ format!(r#"{{"clients":[{}],"proceed":{}}}"#, rows, proceed)
160
+ }
crates/urt-gameplay/src/move_callbacks.rs CHANGED
@@ -286,3 +286,118 @@ mod recovery_tests {
286
  assert_eq!(s, old);
287
  }
288
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  assert_eq!(s, old);
287
  }
288
  }
289
+
290
+ #[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
291
+ pub struct AssistClient {
292
+ pub connection: u32,
293
+ pub health: u32,
294
+ pub follow: u32,
295
+ pub flags: u32,
296
+ pub active: u32,
297
+ pub target: Option<usize>,
298
+ }
299
+ #[derive(Clone, Copy, Debug, PartialEq, Eq)]
300
+ pub struct AssistCleanupInput {
301
+ pub entity: bool,
302
+ pub client: bool,
303
+ pub mode: u32,
304
+ pub self_index: usize,
305
+ pub count: usize,
306
+ }
307
+ fn clear_assist(client: &mut AssistClient) {
308
+ client.flags &= !8192;
309
+ client.active = 0;
310
+ client.target = None;
311
+ }
312
+ /// Original152792 admission and first entity-pool scan. Typed table identity is
313
+ /// supplied; no distance search occurs. Invalid active targets roll back all rows.
314
+ pub fn cleanup_assistance(
315
+ clients: &mut [AssistClient],
316
+ input: AssistCleanupInput,
317
+ ) -> Result<bool, Error> {
318
+ if !input.entity || !input.client || input.mode != 10 {
319
+ return Ok(false);
320
+ }
321
+ let own = *clients.get(input.self_index).ok_or(Error::InvalidIndex)?;
322
+ if own.connection != 2 || own.health as i32 <= 0 || own.follow != 0 {
323
+ return Ok(false);
324
+ }
325
+ if own.flags & 16384 != 0 {
326
+ clear_assist(&mut clients[input.self_index]);
327
+ return Ok(false);
328
+ }
329
+ if input.count > 64 || input.count > clients.len() {
330
+ return Err(Error::InvalidCount);
331
+ }
332
+ let mut next = clients.to_vec();
333
+ for j in 0..input.count {
334
+ if next[j].active == 0 {
335
+ continue;
336
+ }
337
+ let target = *next
338
+ .get(next[j].target.ok_or(Error::InvalidIndex)?)
339
+ .ok_or(Error::InvalidIndex)?;
340
+ if target.connection != 2 || target.health as i32 <= 0 || target.follow != 0 {
341
+ clear_assist(&mut next[j]);
342
+ }
343
+ }
344
+ clients.copy_from_slice(&next);
345
+ Ok(true)
346
+ }
347
+ #[cfg(test)]
348
+ mod cleanup_tests {
349
+ use super::*;
350
+ fn agent() -> AssistClient {
351
+ AssistClient {
352
+ connection: 2,
353
+ health: 1,
354
+ follow: 0,
355
+ flags: 0x80002000,
356
+ active: 1,
357
+ target: Some(1),
358
+ }
359
+ }
360
+ fn input() -> AssistCleanupInput {
361
+ AssistCleanupInput {
362
+ entity: true,
363
+ client: true,
364
+ mode: 10,
365
+ self_index: 2,
366
+ count: 3,
367
+ }
368
+ }
369
+ #[test]
370
+ fn dead_target_clears_all_helpers_and_keeps_unrelated_bits() {
371
+ let mut c = [agent(); 3];
372
+ c[1].health = 0;
373
+ assert_eq!(cleanup_assistance(&mut c, input()), Ok(true));
374
+ for a in c {
375
+ assert_eq!((a.flags, a.active, a.target), (0x80000000, 0, None));
376
+ }
377
+ }
378
+ #[test]
379
+ fn protected_self_skips_scan_and_bad_targets_roll_back() {
380
+ let mut c = [agent(); 3];
381
+ c[2].flags |= 16384;
382
+ c[0].target = None;
383
+ let old = c;
384
+ assert_eq!(
385
+ cleanup_assistance(
386
+ &mut c,
387
+ AssistCleanupInput {
388
+ count: usize::MAX,
389
+ ..input()
390
+ }
391
+ ),
392
+ Ok(false)
393
+ );
394
+ assert_eq!(c[0], old[0]);
395
+ assert_eq!(c[2].flags, 0x80004000);
396
+ let mut c = [agent(); 3];
397
+ c[1].health = 0;
398
+ c[2].target = Some(99);
399
+ let old = c;
400
+ assert!(cleanup_assistance(&mut c, input()).is_err());
401
+ assert_eq!(c, old);
402
+ }
403
+ }
docs/FINDINGS.md CHANGED
@@ -1931,3 +1931,5 @@ RE-996: Thirty-six original-QVM cases execute152673 with actual meter child15238
1931
  RE-997: Rust ports actual self-recovery gates, wrapped signed elapsed time, staged f32 progress and the meter child across36 source cases. Admission exits preserve state without reading unused float configuration. Active invalid duration, nonfinite progress or unsupported conversion reject without advancing clock or committing meter/event changes. Unit tests cover wrapped elapsed time, inactive NaN preservation and late-error rollback. [Evidence](research/RUST_MOVE_SELF_RECOVERY.md).
1932
 
1933
  RE-998: Twenty-eight original-QVM fixtures recover152792 admission and its first entity-pool scan through152994. Protected self mask16384 clears own assistance mask8192, active6316 and target6320, then returns. Otherwise active helpers lose those fields when their target disconnects, dies or follows; healthy targets retain assistance. Loop order, zero/64 counts, absent entity/client, high-bit preservation and all self admission exits are covered. The subsequent distance/assistance search remains outside this boundary. [Evidence](research/QVM_MOVE_ASSIST_CLEANUP.md).
 
 
 
1931
  RE-997: Rust ports actual self-recovery gates, wrapped signed elapsed time, staged f32 progress and the meter child across36 source cases. Admission exits preserve state without reading unused float configuration. Active invalid duration, nonfinite progress or unsupported conversion reject without advancing clock or committing meter/event changes. Unit tests cover wrapped elapsed time, inactive NaN preservation and late-error rollback. [Evidence](research/RUST_MOVE_SELF_RECOVERY.md).
1932
 
1933
  RE-998: Twenty-eight original-QVM fixtures recover152792 admission and its first entity-pool scan through152994. Protected self mask16384 clears own assistance mask8192, active6316 and target6320, then returns. Otherwise active helpers lose those fields when their target disconnects, dies or follows; healthy targets retain assistance. Loop order, zero/64 counts, absent entity/client, high-bit preservation and all self admission exits are covered. The subsequent distance/assistance search remains outside this boundary. [Evidence](research/QVM_MOVE_ASSIST_CLEANUP.md).
1934
+
1935
+ RE-999: Rust ports152792 admission and first scan across28 original cases, including full64-slot and zero-count pools. Typed indices replace supplied entity/client pointers; inactive targets are not dereferenced. Protected self returns before scanning, preserving other helpers. Dead/disconnected/following targets clear only assistance mask8192, active state and target. Invalid active indices/counts reject atomically; unit tests cover high-bit preservation, early bypass and rollback after a prior planned cleanup. [Evidence](research/RUST_MOVE_ASSIST_CLEANUP.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1988,3 +1988,5 @@ RE-974–983 completed routing, command rewrite, inactivity, movement-parameter
1988
  - [x] RE-997 Port timed self-recovery with atomic state updates ([evidence](research/RUST_MOVE_SELF_RECOVERY.md)).
1989
 
1990
  - [x] RE-998 Recover mode10 assistance admission and cleanup scan ([evidence](research/QVM_MOVE_ASSIST_CLEANUP.md)).
 
 
 
1988
  - [x] RE-997 Port timed self-recovery with atomic state updates ([evidence](research/RUST_MOVE_SELF_RECOVERY.md)).
1989
 
1990
  - [x] RE-998 Recover mode10 assistance admission and cleanup scan ([evidence](research/QVM_MOVE_ASSIST_CLEANUP.md)).
1991
+
1992
+ - [x] RE-999 Port assistance cleanup and typed target ownership ([evidence](research/RUST_MOVE_ASSIST_CLEANUP.md)).
docs/RESEARCH_LEDGER.md CHANGED
@@ -2667,3 +2667,7 @@ Rust ports actual self-recovery gates, wrapped signed elapsed time, staged f32 p
2667
  ## 2026-10-29 — RE-998 Recover mode10 assistance admission and cleanup scan
2668
 
2669
  Twenty-eight original-QVM fixtures recover152792 admission and its first entity-pool scan through152994. Protected self mask16384 clears own assistance mask8192, active6316 and target6320, then returns. Otherwise active helpers lose those fields when their target disconnects, dies or follows; healthy targets retain assistance. Loop order, zero/64 counts, absent entity/client, high-bit preservation and all self admission exits are covered. The subsequent distance/assistance search remains outside this boundary. Focused `cargo xtask test-group qvm-move-assist-cleanup` passes with deterministic report regeneration and selected regressions. Full suite deferred to task ten. Original assets unchanged; Python uses the flake-declared Nix runtime.
 
 
 
 
 
2667
  ## 2026-10-29 — RE-998 Recover mode10 assistance admission and cleanup scan
2668
 
2669
  Twenty-eight original-QVM fixtures recover152792 admission and its first entity-pool scan through152994. Protected self mask16384 clears own assistance mask8192, active6316 and target6320, then returns. Otherwise active helpers lose those fields when their target disconnects, dies or follows; healthy targets retain assistance. Loop order, zero/64 counts, absent entity/client, high-bit preservation and all self admission exits are covered. The subsequent distance/assistance search remains outside this boundary. Focused `cargo xtask test-group qvm-move-assist-cleanup` passes with deterministic report regeneration and selected regressions. Full suite deferred to task ten. Original assets unchanged; Python uses the flake-declared Nix runtime.
2670
+
2671
+ ## 2026-10-29 — RE-999 Port assistance cleanup and typed target ownership
2672
+
2673
+ Rust ports152792 admission and first scan across28 original cases, including full64-slot and zero-count pools. Typed indices replace supplied entity/client pointers; inactive targets are not dereferenced. Protected self returns before scanning, preserving other helpers. Dead/disconnected/following targets clear only assistance mask8192, active state and target. Invalid active indices/counts reject atomically; unit tests cover high-bit preservation, early bypass and rollback after a prior planned cleanup. Focused `cargo xtask test-group rust-move-assist-cleanup` 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
@@ -2025,3 +2025,5 @@ RE-974–983 recover routing, command rewriting, inactivity and composed setup t
2025
  - [x] RE-997 Port timed self-recovery with atomic state updates ([evidence](research/RUST_MOVE_SELF_RECOVERY.md)).
2026
 
2027
  - [x] RE-998 Recover mode10 assistance admission and cleanup scan ([evidence](research/QVM_MOVE_ASSIST_CLEANUP.md)).
 
 
 
2025
  - [x] RE-997 Port timed self-recovery with atomic state updates ([evidence](research/RUST_MOVE_SELF_RECOVERY.md)).
2026
 
2027
  - [x] RE-998 Recover mode10 assistance admission and cleanup scan ([evidence](research/QVM_MOVE_ASSIST_CLEANUP.md)).
2028
+
2029
+ - [x] RE-999 Port assistance cleanup and typed target ownership ([evidence](research/RUST_MOVE_ASSIST_CLEANUP.md)).
docs/research/README.md CHANGED
@@ -1559,3 +1559,5 @@ The extension collector adds five focused tests for native tail calls, command-r
1559
  - [RE-997: Port timed self-recovery with atomic state updates](RUST_MOVE_SELF_RECOVERY.md).
1560
 
1561
  - [RE-998: Recover mode10 assistance admission and cleanup scan](QVM_MOVE_ASSIST_CLEANUP.md).
 
 
 
1559
  - [RE-997: Port timed self-recovery with atomic state updates](RUST_MOVE_SELF_RECOVERY.md).
1560
 
1561
  - [RE-998: Recover mode10 assistance admission and cleanup scan](QVM_MOVE_ASSIST_CLEANUP.md).
1562
+
1563
+ - [RE-999: Port assistance cleanup and typed target ownership](RUST_MOVE_ASSIST_CLEANUP.md).
docs/research/RUST_MOVE_ASSIST_CLEANUP.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Port assistance cleanup and typed target ownership
2
+
3
+ RE-999. Focused validation: `cargo xtask test-group rust-move-assist-cleanup`. [Machine report](rust-move-assist-cleanup.json).
4
+
5
+ Rust ports152792 admission and first scan across28 original cases, including full64-slot and zero-count pools. Typed indices replace supplied entity/client pointers; inactive targets are not dereferenced. Protected self returns before scanning, preserving other helpers. Dead/disconnected/following targets clear only assistance mask8192, active state and target. Invalid active indices/counts reject atomically; unit tests cover high-bit preservation, early bypass and rollback after a prior planned cleanup.
docs/research/rust-health-impulse.json CHANGED
@@ -2985,7 +2985,7 @@
2985
  "exit_code": 2
2986
  }
2987
  ],
2988
- "rust_unit_tests": 253,
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": 255,
2989
  "source_report": "docs/research/qvm-health-impulse.json",
2990
  "source_report_sha256": "625fd8064004ea6dbdf398d51d0af844d9c635ff04c0a0790886dddb6ab81e71"
2991
  }
docs/research/rust-move-assist-cleanup.json ADDED
@@ -0,0 +1,2403 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "Finite source/Rust contract parity; native time/file/network replies remain supplied or captured.",
3
+ "probes": [
4
+ {
5
+ "rust": {
6
+ "clients": [
7
+ [
8
+ 8192,
9
+ 1,
10
+ 1
11
+ ],
12
+ [
13
+ 0,
14
+ 0,
15
+ null
16
+ ],
17
+ [
18
+ 8192,
19
+ 1,
20
+ 1
21
+ ]
22
+ ],
23
+ "proceed": true
24
+ },
25
+ "source": {
26
+ "clients": [
27
+ [
28
+ 8192,
29
+ 1,
30
+ 1
31
+ ],
32
+ [
33
+ 0,
34
+ 0,
35
+ null
36
+ ],
37
+ [
38
+ 8192,
39
+ 1,
40
+ 1
41
+ ]
42
+ ],
43
+ "proceed": true
44
+ }
45
+ },
46
+ {
47
+ "rust": {
48
+ "clients": [
49
+ [
50
+ 2147491840,
51
+ 1,
52
+ 1
53
+ ],
54
+ [
55
+ 2147483648,
56
+ 0,
57
+ null
58
+ ],
59
+ [
60
+ 2147491840,
61
+ 1,
62
+ 1
63
+ ]
64
+ ],
65
+ "proceed": true
66
+ },
67
+ "source": {
68
+ "clients": [
69
+ [
70
+ 2147491840,
71
+ 1,
72
+ 1
73
+ ],
74
+ [
75
+ 2147483648,
76
+ 0,
77
+ null
78
+ ],
79
+ [
80
+ 2147491840,
81
+ 1,
82
+ 1
83
+ ]
84
+ ],
85
+ "proceed": true
86
+ }
87
+ },
88
+ {
89
+ "rust": {
90
+ "clients": [
91
+ [
92
+ 0,
93
+ 0,
94
+ null
95
+ ],
96
+ [
97
+ 0,
98
+ 0,
99
+ null
100
+ ],
101
+ [
102
+ 0,
103
+ 0,
104
+ null
105
+ ]
106
+ ],
107
+ "proceed": true
108
+ },
109
+ "source": {
110
+ "clients": [
111
+ [
112
+ 0,
113
+ 0,
114
+ null
115
+ ],
116
+ [
117
+ 0,
118
+ 0,
119
+ null
120
+ ],
121
+ [
122
+ 0,
123
+ 0,
124
+ null
125
+ ]
126
+ ],
127
+ "proceed": true
128
+ }
129
+ },
130
+ {
131
+ "rust": {
132
+ "clients": [
133
+ [
134
+ 2147483648,
135
+ 0,
136
+ null
137
+ ],
138
+ [
139
+ 2147483648,
140
+ 0,
141
+ null
142
+ ],
143
+ [
144
+ 2147483648,
145
+ 0,
146
+ null
147
+ ]
148
+ ],
149
+ "proceed": true
150
+ },
151
+ "source": {
152
+ "clients": [
153
+ [
154
+ 2147483648,
155
+ 0,
156
+ null
157
+ ],
158
+ [
159
+ 2147483648,
160
+ 0,
161
+ null
162
+ ],
163
+ [
164
+ 2147483648,
165
+ 0,
166
+ null
167
+ ]
168
+ ],
169
+ "proceed": true
170
+ }
171
+ },
172
+ {
173
+ "rust": {
174
+ "clients": [
175
+ [
176
+ 0,
177
+ 0,
178
+ null
179
+ ],
180
+ [
181
+ 0,
182
+ 0,
183
+ null
184
+ ],
185
+ [
186
+ 0,
187
+ 0,
188
+ null
189
+ ]
190
+ ],
191
+ "proceed": true
192
+ },
193
+ "source": {
194
+ "clients": [
195
+ [
196
+ 0,
197
+ 0,
198
+ null
199
+ ],
200
+ [
201
+ 0,
202
+ 0,
203
+ null
204
+ ],
205
+ [
206
+ 0,
207
+ 0,
208
+ null
209
+ ]
210
+ ],
211
+ "proceed": true
212
+ }
213
+ },
214
+ {
215
+ "rust": {
216
+ "clients": [
217
+ [
218
+ 2147483648,
219
+ 0,
220
+ null
221
+ ],
222
+ [
223
+ 2147483648,
224
+ 0,
225
+ null
226
+ ],
227
+ [
228
+ 2147483648,
229
+ 0,
230
+ null
231
+ ]
232
+ ],
233
+ "proceed": true
234
+ },
235
+ "source": {
236
+ "clients": [
237
+ [
238
+ 2147483648,
239
+ 0,
240
+ null
241
+ ],
242
+ [
243
+ 2147483648,
244
+ 0,
245
+ null
246
+ ],
247
+ [
248
+ 2147483648,
249
+ 0,
250
+ null
251
+ ]
252
+ ],
253
+ "proceed": true
254
+ }
255
+ },
256
+ {
257
+ "rust": {
258
+ "clients": [
259
+ [
260
+ 0,
261
+ 0,
262
+ null
263
+ ],
264
+ [
265
+ 0,
266
+ 0,
267
+ null
268
+ ],
269
+ [
270
+ 0,
271
+ 0,
272
+ null
273
+ ]
274
+ ],
275
+ "proceed": true
276
+ },
277
+ "source": {
278
+ "clients": [
279
+ [
280
+ 0,
281
+ 0,
282
+ null
283
+ ],
284
+ [
285
+ 0,
286
+ 0,
287
+ null
288
+ ],
289
+ [
290
+ 0,
291
+ 0,
292
+ null
293
+ ]
294
+ ],
295
+ "proceed": true
296
+ }
297
+ },
298
+ {
299
+ "rust": {
300
+ "clients": [
301
+ [
302
+ 2147483648,
303
+ 0,
304
+ null
305
+ ],
306
+ [
307
+ 2147483648,
308
+ 0,
309
+ null
310
+ ],
311
+ [
312
+ 2147483648,
313
+ 0,
314
+ null
315
+ ]
316
+ ],
317
+ "proceed": true
318
+ },
319
+ "source": {
320
+ "clients": [
321
+ [
322
+ 2147483648,
323
+ 0,
324
+ null
325
+ ],
326
+ [
327
+ 2147483648,
328
+ 0,
329
+ null
330
+ ],
331
+ [
332
+ 2147483648,
333
+ 0,
334
+ null
335
+ ]
336
+ ],
337
+ "proceed": true
338
+ }
339
+ },
340
+ {
341
+ "rust": {
342
+ "clients": [
343
+ [
344
+ 8192,
345
+ 0,
346
+ 1
347
+ ],
348
+ [
349
+ 0,
350
+ 0,
351
+ null
352
+ ],
353
+ [
354
+ 0,
355
+ 0,
356
+ null
357
+ ]
358
+ ],
359
+ "proceed": true
360
+ },
361
+ "source": {
362
+ "clients": [
363
+ [
364
+ 8192,
365
+ 0,
366
+ 1
367
+ ],
368
+ [
369
+ 0,
370
+ 0,
371
+ null
372
+ ],
373
+ [
374
+ 0,
375
+ 0,
376
+ null
377
+ ]
378
+ ],
379
+ "proceed": true
380
+ }
381
+ },
382
+ {
383
+ "rust": {
384
+ "clients": [
385
+ [
386
+ 2147491840,
387
+ 0,
388
+ 1
389
+ ],
390
+ [
391
+ 2147483648,
392
+ 0,
393
+ null
394
+ ],
395
+ [
396
+ 2147483648,
397
+ 0,
398
+ null
399
+ ]
400
+ ],
401
+ "proceed": true
402
+ },
403
+ "source": {
404
+ "clients": [
405
+ [
406
+ 2147491840,
407
+ 0,
408
+ 1
409
+ ],
410
+ [
411
+ 2147483648,
412
+ 0,
413
+ null
414
+ ],
415
+ [
416
+ 2147483648,
417
+ 0,
418
+ null
419
+ ]
420
+ ],
421
+ "proceed": true
422
+ }
423
+ },
424
+ {
425
+ "rust": {
426
+ "clients": [
427
+ [
428
+ 8192,
429
+ 1,
430
+ 1
431
+ ],
432
+ [
433
+ 0,
434
+ 0,
435
+ null
436
+ ],
437
+ [
438
+ 16384,
439
+ 0,
440
+ null
441
+ ]
442
+ ],
443
+ "proceed": false
444
+ },
445
+ "source": {
446
+ "clients": [
447
+ [
448
+ 8192,
449
+ 1,
450
+ 1
451
+ ],
452
+ [
453
+ 0,
454
+ 0,
455
+ null
456
+ ],
457
+ [
458
+ 16384,
459
+ 0,
460
+ null
461
+ ]
462
+ ],
463
+ "proceed": false
464
+ }
465
+ },
466
+ {
467
+ "rust": {
468
+ "clients": [
469
+ [
470
+ 2147491840,
471
+ 1,
472
+ 1
473
+ ],
474
+ [
475
+ 2147483648,
476
+ 0,
477
+ null
478
+ ],
479
+ [
480
+ 2147500032,
481
+ 0,
482
+ null
483
+ ]
484
+ ],
485
+ "proceed": false
486
+ },
487
+ "source": {
488
+ "clients": [
489
+ [
490
+ 2147491840,
491
+ 1,
492
+ 1
493
+ ],
494
+ [
495
+ 2147483648,
496
+ 0,
497
+ null
498
+ ],
499
+ [
500
+ 2147500032,
501
+ 0,
502
+ null
503
+ ]
504
+ ],
505
+ "proceed": false
506
+ }
507
+ },
508
+ {
509
+ "rust": {
510
+ "clients": [
511
+ [
512
+ 8192,
513
+ 1,
514
+ 1
515
+ ],
516
+ [
517
+ 0,
518
+ 0,
519
+ null
520
+ ],
521
+ [
522
+ 8192,
523
+ 1,
524
+ 1
525
+ ]
526
+ ],
527
+ "proceed": false
528
+ },
529
+ "source": {
530
+ "clients": [
531
+ [
532
+ 8192,
533
+ 1,
534
+ 1
535
+ ],
536
+ [
537
+ 0,
538
+ 0,
539
+ null
540
+ ],
541
+ [
542
+ 8192,
543
+ 1,
544
+ 1
545
+ ]
546
+ ],
547
+ "proceed": false
548
+ }
549
+ },
550
+ {
551
+ "rust": {
552
+ "clients": [
553
+ [
554
+ 2147491840,
555
+ 1,
556
+ 1
557
+ ],
558
+ [
559
+ 2147483648,
560
+ 0,
561
+ null
562
+ ],
563
+ [
564
+ 2147491840,
565
+ 1,
566
+ 1
567
+ ]
568
+ ],
569
+ "proceed": false
570
+ },
571
+ "source": {
572
+ "clients": [
573
+ [
574
+ 2147491840,
575
+ 1,
576
+ 1
577
+ ],
578
+ [
579
+ 2147483648,
580
+ 0,
581
+ null
582
+ ],
583
+ [
584
+ 2147491840,
585
+ 1,
586
+ 1
587
+ ]
588
+ ],
589
+ "proceed": false
590
+ }
591
+ },
592
+ {
593
+ "rust": {
594
+ "clients": [
595
+ [
596
+ 8192,
597
+ 1,
598
+ 1
599
+ ],
600
+ [
601
+ 0,
602
+ 0,
603
+ null
604
+ ],
605
+ [
606
+ 8192,
607
+ 1,
608
+ 1
609
+ ]
610
+ ],
611
+ "proceed": false
612
+ },
613
+ "source": {
614
+ "clients": [
615
+ [
616
+ 8192,
617
+ 1,
618
+ 1
619
+ ],
620
+ [
621
+ 0,
622
+ 0,
623
+ null
624
+ ],
625
+ [
626
+ 8192,
627
+ 1,
628
+ 1
629
+ ]
630
+ ],
631
+ "proceed": false
632
+ }
633
+ },
634
+ {
635
+ "rust": {
636
+ "clients": [
637
+ [
638
+ 2147491840,
639
+ 1,
640
+ 1
641
+ ],
642
+ [
643
+ 2147483648,
644
+ 0,
645
+ null
646
+ ],
647
+ [
648
+ 2147491840,
649
+ 1,
650
+ 1
651
+ ]
652
+ ],
653
+ "proceed": false
654
+ },
655
+ "source": {
656
+ "clients": [
657
+ [
658
+ 2147491840,
659
+ 1,
660
+ 1
661
+ ],
662
+ [
663
+ 2147483648,
664
+ 0,
665
+ null
666
+ ],
667
+ [
668
+ 2147491840,
669
+ 1,
670
+ 1
671
+ ]
672
+ ],
673
+ "proceed": false
674
+ }
675
+ },
676
+ {
677
+ "rust": {
678
+ "clients": [
679
+ [
680
+ 8192,
681
+ 1,
682
+ 1
683
+ ],
684
+ [
685
+ 0,
686
+ 0,
687
+ null
688
+ ],
689
+ [
690
+ 8192,
691
+ 1,
692
+ 1
693
+ ]
694
+ ],
695
+ "proceed": false
696
+ },
697
+ "source": {
698
+ "clients": [
699
+ [
700
+ 8192,
701
+ 1,
702
+ 1
703
+ ],
704
+ [
705
+ 0,
706
+ 0,
707
+ null
708
+ ],
709
+ [
710
+ 8192,
711
+ 1,
712
+ 1
713
+ ]
714
+ ],
715
+ "proceed": false
716
+ }
717
+ },
718
+ {
719
+ "rust": {
720
+ "clients": [
721
+ [
722
+ 2147491840,
723
+ 1,
724
+ 1
725
+ ],
726
+ [
727
+ 2147483648,
728
+ 0,
729
+ null
730
+ ],
731
+ [
732
+ 2147491840,
733
+ 1,
734
+ 1
735
+ ]
736
+ ],
737
+ "proceed": false
738
+ },
739
+ "source": {
740
+ "clients": [
741
+ [
742
+ 2147491840,
743
+ 1,
744
+ 1
745
+ ],
746
+ [
747
+ 2147483648,
748
+ 0,
749
+ null
750
+ ],
751
+ [
752
+ 2147491840,
753
+ 1,
754
+ 1
755
+ ]
756
+ ],
757
+ "proceed": false
758
+ }
759
+ },
760
+ {
761
+ "rust": {
762
+ "clients": [
763
+ [
764
+ 8192,
765
+ 1,
766
+ 1
767
+ ],
768
+ [
769
+ 0,
770
+ 0,
771
+ null
772
+ ],
773
+ [
774
+ 8192,
775
+ 1,
776
+ 1
777
+ ]
778
+ ],
779
+ "proceed": false
780
+ },
781
+ "source": {
782
+ "clients": [
783
+ [
784
+ 8192,
785
+ 1,
786
+ 1
787
+ ],
788
+ [
789
+ 0,
790
+ 0,
791
+ null
792
+ ],
793
+ [
794
+ 8192,
795
+ 1,
796
+ 1
797
+ ]
798
+ ],
799
+ "proceed": false
800
+ }
801
+ },
802
+ {
803
+ "rust": {
804
+ "clients": [
805
+ [
806
+ 2147491840,
807
+ 1,
808
+ 1
809
+ ],
810
+ [
811
+ 2147483648,
812
+ 0,
813
+ null
814
+ ],
815
+ [
816
+ 2147491840,
817
+ 1,
818
+ 1
819
+ ]
820
+ ],
821
+ "proceed": false
822
+ },
823
+ "source": {
824
+ "clients": [
825
+ [
826
+ 2147491840,
827
+ 1,
828
+ 1
829
+ ],
830
+ [
831
+ 2147483648,
832
+ 0,
833
+ null
834
+ ],
835
+ [
836
+ 2147491840,
837
+ 1,
838
+ 1
839
+ ]
840
+ ],
841
+ "proceed": false
842
+ }
843
+ },
844
+ {
845
+ "rust": {
846
+ "clients": [
847
+ [
848
+ 8192,
849
+ 1,
850
+ 1
851
+ ],
852
+ [
853
+ 0,
854
+ 0,
855
+ null
856
+ ],
857
+ [
858
+ 8192,
859
+ 1,
860
+ 1
861
+ ]
862
+ ],
863
+ "proceed": false
864
+ },
865
+ "source": {
866
+ "clients": [
867
+ [
868
+ 8192,
869
+ 1,
870
+ 1
871
+ ],
872
+ [
873
+ 0,
874
+ 0,
875
+ null
876
+ ],
877
+ [
878
+ 8192,
879
+ 1,
880
+ 1
881
+ ]
882
+ ],
883
+ "proceed": false
884
+ }
885
+ },
886
+ {
887
+ "rust": {
888
+ "clients": [
889
+ [
890
+ 2147491840,
891
+ 1,
892
+ 1
893
+ ],
894
+ [
895
+ 2147483648,
896
+ 0,
897
+ null
898
+ ],
899
+ [
900
+ 2147491840,
901
+ 1,
902
+ 1
903
+ ]
904
+ ],
905
+ "proceed": false
906
+ },
907
+ "source": {
908
+ "clients": [
909
+ [
910
+ 2147491840,
911
+ 1,
912
+ 1
913
+ ],
914
+ [
915
+ 2147483648,
916
+ 0,
917
+ null
918
+ ],
919
+ [
920
+ 2147491840,
921
+ 1,
922
+ 1
923
+ ]
924
+ ],
925
+ "proceed": false
926
+ }
927
+ },
928
+ {
929
+ "rust": {
930
+ "clients": [
931
+ [
932
+ 8192,
933
+ 1,
934
+ 1
935
+ ],
936
+ [
937
+ 0,
938
+ 0,
939
+ null
940
+ ],
941
+ [
942
+ 8192,
943
+ 1,
944
+ 1
945
+ ]
946
+ ],
947
+ "proceed": false
948
+ },
949
+ "source": {
950
+ "clients": [
951
+ [
952
+ 8192,
953
+ 1,
954
+ 1
955
+ ],
956
+ [
957
+ 0,
958
+ 0,
959
+ null
960
+ ],
961
+ [
962
+ 8192,
963
+ 1,
964
+ 1
965
+ ]
966
+ ],
967
+ "proceed": false
968
+ }
969
+ },
970
+ {
971
+ "rust": {
972
+ "clients": [
973
+ [
974
+ 2147491840,
975
+ 1,
976
+ 1
977
+ ],
978
+ [
979
+ 2147483648,
980
+ 0,
981
+ null
982
+ ],
983
+ [
984
+ 2147491840,
985
+ 1,
986
+ 1
987
+ ]
988
+ ],
989
+ "proceed": false
990
+ },
991
+ "source": {
992
+ "clients": [
993
+ [
994
+ 2147491840,
995
+ 1,
996
+ 1
997
+ ],
998
+ [
999
+ 2147483648,
1000
+ 0,
1001
+ null
1002
+ ],
1003
+ [
1004
+ 2147491840,
1005
+ 1,
1006
+ 1
1007
+ ]
1008
+ ],
1009
+ "proceed": false
1010
+ }
1011
+ },
1012
+ {
1013
+ "rust": {
1014
+ "clients": [
1015
+ [
1016
+ 8192,
1017
+ 1,
1018
+ 1
1019
+ ],
1020
+ [
1021
+ 0,
1022
+ 0,
1023
+ null
1024
+ ],
1025
+ [
1026
+ 8192,
1027
+ 1,
1028
+ 1
1029
+ ]
1030
+ ],
1031
+ "proceed": true
1032
+ },
1033
+ "source": {
1034
+ "clients": [
1035
+ [
1036
+ 8192,
1037
+ 1,
1038
+ 1
1039
+ ],
1040
+ [
1041
+ 0,
1042
+ 0,
1043
+ null
1044
+ ],
1045
+ [
1046
+ 8192,
1047
+ 1,
1048
+ 1
1049
+ ]
1050
+ ],
1051
+ "proceed": true
1052
+ }
1053
+ },
1054
+ {
1055
+ "rust": {
1056
+ "clients": [
1057
+ [
1058
+ 2147491840,
1059
+ 1,
1060
+ 1
1061
+ ],
1062
+ [
1063
+ 2147483648,
1064
+ 0,
1065
+ null
1066
+ ],
1067
+ [
1068
+ 2147491840,
1069
+ 1,
1070
+ 1
1071
+ ]
1072
+ ],
1073
+ "proceed": true
1074
+ },
1075
+ "source": {
1076
+ "clients": [
1077
+ [
1078
+ 2147491840,
1079
+ 1,
1080
+ 1
1081
+ ],
1082
+ [
1083
+ 2147483648,
1084
+ 0,
1085
+ null
1086
+ ],
1087
+ [
1088
+ 2147491840,
1089
+ 1,
1090
+ 1
1091
+ ]
1092
+ ],
1093
+ "proceed": true
1094
+ }
1095
+ },
1096
+ {
1097
+ "rust": {
1098
+ "clients": [
1099
+ [
1100
+ 0,
1101
+ 0,
1102
+ null
1103
+ ],
1104
+ [
1105
+ 0,
1106
+ 0,
1107
+ null
1108
+ ],
1109
+ [
1110
+ 0,
1111
+ 0,
1112
+ null
1113
+ ],
1114
+ [
1115
+ 0,
1116
+ 0,
1117
+ null
1118
+ ],
1119
+ [
1120
+ 0,
1121
+ 0,
1122
+ null
1123
+ ],
1124
+ [
1125
+ 0,
1126
+ 0,
1127
+ null
1128
+ ],
1129
+ [
1130
+ 0,
1131
+ 0,
1132
+ null
1133
+ ],
1134
+ [
1135
+ 0,
1136
+ 0,
1137
+ null
1138
+ ],
1139
+ [
1140
+ 0,
1141
+ 0,
1142
+ null
1143
+ ],
1144
+ [
1145
+ 0,
1146
+ 0,
1147
+ null
1148
+ ],
1149
+ [
1150
+ 0,
1151
+ 0,
1152
+ null
1153
+ ],
1154
+ [
1155
+ 0,
1156
+ 0,
1157
+ null
1158
+ ],
1159
+ [
1160
+ 0,
1161
+ 0,
1162
+ null
1163
+ ],
1164
+ [
1165
+ 0,
1166
+ 0,
1167
+ null
1168
+ ],
1169
+ [
1170
+ 0,
1171
+ 0,
1172
+ null
1173
+ ],
1174
+ [
1175
+ 0,
1176
+ 0,
1177
+ null
1178
+ ],
1179
+ [
1180
+ 0,
1181
+ 0,
1182
+ null
1183
+ ],
1184
+ [
1185
+ 0,
1186
+ 0,
1187
+ null
1188
+ ],
1189
+ [
1190
+ 0,
1191
+ 0,
1192
+ null
1193
+ ],
1194
+ [
1195
+ 0,
1196
+ 0,
1197
+ null
1198
+ ],
1199
+ [
1200
+ 0,
1201
+ 0,
1202
+ null
1203
+ ],
1204
+ [
1205
+ 0,
1206
+ 0,
1207
+ null
1208
+ ],
1209
+ [
1210
+ 0,
1211
+ 0,
1212
+ null
1213
+ ],
1214
+ [
1215
+ 0,
1216
+ 0,
1217
+ null
1218
+ ],
1219
+ [
1220
+ 0,
1221
+ 0,
1222
+ null
1223
+ ],
1224
+ [
1225
+ 0,
1226
+ 0,
1227
+ null
1228
+ ],
1229
+ [
1230
+ 0,
1231
+ 0,
1232
+ null
1233
+ ],
1234
+ [
1235
+ 0,
1236
+ 0,
1237
+ null
1238
+ ],
1239
+ [
1240
+ 0,
1241
+ 0,
1242
+ null
1243
+ ],
1244
+ [
1245
+ 0,
1246
+ 0,
1247
+ null
1248
+ ],
1249
+ [
1250
+ 0,
1251
+ 0,
1252
+ null
1253
+ ],
1254
+ [
1255
+ 0,
1256
+ 0,
1257
+ null
1258
+ ],
1259
+ [
1260
+ 0,
1261
+ 0,
1262
+ null
1263
+ ],
1264
+ [
1265
+ 0,
1266
+ 0,
1267
+ null
1268
+ ],
1269
+ [
1270
+ 0,
1271
+ 0,
1272
+ null
1273
+ ],
1274
+ [
1275
+ 0,
1276
+ 0,
1277
+ null
1278
+ ],
1279
+ [
1280
+ 0,
1281
+ 0,
1282
+ null
1283
+ ],
1284
+ [
1285
+ 0,
1286
+ 0,
1287
+ null
1288
+ ],
1289
+ [
1290
+ 0,
1291
+ 0,
1292
+ null
1293
+ ],
1294
+ [
1295
+ 0,
1296
+ 0,
1297
+ null
1298
+ ],
1299
+ [
1300
+ 0,
1301
+ 0,
1302
+ null
1303
+ ],
1304
+ [
1305
+ 0,
1306
+ 0,
1307
+ null
1308
+ ],
1309
+ [
1310
+ 0,
1311
+ 0,
1312
+ null
1313
+ ],
1314
+ [
1315
+ 0,
1316
+ 0,
1317
+ null
1318
+ ],
1319
+ [
1320
+ 0,
1321
+ 0,
1322
+ null
1323
+ ],
1324
+ [
1325
+ 0,
1326
+ 0,
1327
+ null
1328
+ ],
1329
+ [
1330
+ 0,
1331
+ 0,
1332
+ null
1333
+ ],
1334
+ [
1335
+ 0,
1336
+ 0,
1337
+ null
1338
+ ],
1339
+ [
1340
+ 0,
1341
+ 0,
1342
+ null
1343
+ ],
1344
+ [
1345
+ 0,
1346
+ 0,
1347
+ null
1348
+ ],
1349
+ [
1350
+ 0,
1351
+ 0,
1352
+ null
1353
+ ],
1354
+ [
1355
+ 0,
1356
+ 0,
1357
+ null
1358
+ ],
1359
+ [
1360
+ 0,
1361
+ 0,
1362
+ null
1363
+ ],
1364
+ [
1365
+ 0,
1366
+ 0,
1367
+ null
1368
+ ],
1369
+ [
1370
+ 0,
1371
+ 0,
1372
+ null
1373
+ ],
1374
+ [
1375
+ 0,
1376
+ 0,
1377
+ null
1378
+ ],
1379
+ [
1380
+ 0,
1381
+ 0,
1382
+ null
1383
+ ],
1384
+ [
1385
+ 0,
1386
+ 0,
1387
+ null
1388
+ ],
1389
+ [
1390
+ 0,
1391
+ 0,
1392
+ null
1393
+ ],
1394
+ [
1395
+ 0,
1396
+ 0,
1397
+ null
1398
+ ],
1399
+ [
1400
+ 0,
1401
+ 0,
1402
+ null
1403
+ ],
1404
+ [
1405
+ 0,
1406
+ 0,
1407
+ null
1408
+ ],
1409
+ [
1410
+ 0,
1411
+ 0,
1412
+ null
1413
+ ],
1414
+ [
1415
+ 0,
1416
+ 0,
1417
+ null
1418
+ ]
1419
+ ],
1420
+ "proceed": true
1421
+ },
1422
+ "source": {
1423
+ "clients": [
1424
+ [
1425
+ 0,
1426
+ 0,
1427
+ null
1428
+ ],
1429
+ [
1430
+ 0,
1431
+ 0,
1432
+ null
1433
+ ],
1434
+ [
1435
+ 0,
1436
+ 0,
1437
+ null
1438
+ ],
1439
+ [
1440
+ 0,
1441
+ 0,
1442
+ null
1443
+ ],
1444
+ [
1445
+ 0,
1446
+ 0,
1447
+ null
1448
+ ],
1449
+ [
1450
+ 0,
1451
+ 0,
1452
+ null
1453
+ ],
1454
+ [
1455
+ 0,
1456
+ 0,
1457
+ null
1458
+ ],
1459
+ [
1460
+ 0,
1461
+ 0,
1462
+ null
1463
+ ],
1464
+ [
1465
+ 0,
1466
+ 0,
1467
+ null
1468
+ ],
1469
+ [
1470
+ 0,
1471
+ 0,
1472
+ null
1473
+ ],
1474
+ [
1475
+ 0,
1476
+ 0,
1477
+ null
1478
+ ],
1479
+ [
1480
+ 0,
1481
+ 0,
1482
+ null
1483
+ ],
1484
+ [
1485
+ 0,
1486
+ 0,
1487
+ null
1488
+ ],
1489
+ [
1490
+ 0,
1491
+ 0,
1492
+ null
1493
+ ],
1494
+ [
1495
+ 0,
1496
+ 0,
1497
+ null
1498
+ ],
1499
+ [
1500
+ 0,
1501
+ 0,
1502
+ null
1503
+ ],
1504
+ [
1505
+ 0,
1506
+ 0,
1507
+ null
1508
+ ],
1509
+ [
1510
+ 0,
1511
+ 0,
1512
+ null
1513
+ ],
1514
+ [
1515
+ 0,
1516
+ 0,
1517
+ null
1518
+ ],
1519
+ [
1520
+ 0,
1521
+ 0,
1522
+ null
1523
+ ],
1524
+ [
1525
+ 0,
1526
+ 0,
1527
+ null
1528
+ ],
1529
+ [
1530
+ 0,
1531
+ 0,
1532
+ null
1533
+ ],
1534
+ [
1535
+ 0,
1536
+ 0,
1537
+ null
1538
+ ],
1539
+ [
1540
+ 0,
1541
+ 0,
1542
+ null
1543
+ ],
1544
+ [
1545
+ 0,
1546
+ 0,
1547
+ null
1548
+ ],
1549
+ [
1550
+ 0,
1551
+ 0,
1552
+ null
1553
+ ],
1554
+ [
1555
+ 0,
1556
+ 0,
1557
+ null
1558
+ ],
1559
+ [
1560
+ 0,
1561
+ 0,
1562
+ null
1563
+ ],
1564
+ [
1565
+ 0,
1566
+ 0,
1567
+ null
1568
+ ],
1569
+ [
1570
+ 0,
1571
+ 0,
1572
+ null
1573
+ ],
1574
+ [
1575
+ 0,
1576
+ 0,
1577
+ null
1578
+ ],
1579
+ [
1580
+ 0,
1581
+ 0,
1582
+ null
1583
+ ],
1584
+ [
1585
+ 0,
1586
+ 0,
1587
+ null
1588
+ ],
1589
+ [
1590
+ 0,
1591
+ 0,
1592
+ null
1593
+ ],
1594
+ [
1595
+ 0,
1596
+ 0,
1597
+ null
1598
+ ],
1599
+ [
1600
+ 0,
1601
+ 0,
1602
+ null
1603
+ ],
1604
+ [
1605
+ 0,
1606
+ 0,
1607
+ null
1608
+ ],
1609
+ [
1610
+ 0,
1611
+ 0,
1612
+ null
1613
+ ],
1614
+ [
1615
+ 0,
1616
+ 0,
1617
+ null
1618
+ ],
1619
+ [
1620
+ 0,
1621
+ 0,
1622
+ null
1623
+ ],
1624
+ [
1625
+ 0,
1626
+ 0,
1627
+ null
1628
+ ],
1629
+ [
1630
+ 0,
1631
+ 0,
1632
+ null
1633
+ ],
1634
+ [
1635
+ 0,
1636
+ 0,
1637
+ null
1638
+ ],
1639
+ [
1640
+ 0,
1641
+ 0,
1642
+ null
1643
+ ],
1644
+ [
1645
+ 0,
1646
+ 0,
1647
+ null
1648
+ ],
1649
+ [
1650
+ 0,
1651
+ 0,
1652
+ null
1653
+ ],
1654
+ [
1655
+ 0,
1656
+ 0,
1657
+ null
1658
+ ],
1659
+ [
1660
+ 0,
1661
+ 0,
1662
+ null
1663
+ ],
1664
+ [
1665
+ 0,
1666
+ 0,
1667
+ null
1668
+ ],
1669
+ [
1670
+ 0,
1671
+ 0,
1672
+ null
1673
+ ],
1674
+ [
1675
+ 0,
1676
+ 0,
1677
+ null
1678
+ ],
1679
+ [
1680
+ 0,
1681
+ 0,
1682
+ null
1683
+ ],
1684
+ [
1685
+ 0,
1686
+ 0,
1687
+ null
1688
+ ],
1689
+ [
1690
+ 0,
1691
+ 0,
1692
+ null
1693
+ ],
1694
+ [
1695
+ 0,
1696
+ 0,
1697
+ null
1698
+ ],
1699
+ [
1700
+ 0,
1701
+ 0,
1702
+ null
1703
+ ],
1704
+ [
1705
+ 0,
1706
+ 0,
1707
+ null
1708
+ ],
1709
+ [
1710
+ 0,
1711
+ 0,
1712
+ null
1713
+ ],
1714
+ [
1715
+ 0,
1716
+ 0,
1717
+ null
1718
+ ],
1719
+ [
1720
+ 0,
1721
+ 0,
1722
+ null
1723
+ ],
1724
+ [
1725
+ 0,
1726
+ 0,
1727
+ null
1728
+ ],
1729
+ [
1730
+ 0,
1731
+ 0,
1732
+ null
1733
+ ],
1734
+ [
1735
+ 0,
1736
+ 0,
1737
+ null
1738
+ ],
1739
+ [
1740
+ 0,
1741
+ 0,
1742
+ null
1743
+ ]
1744
+ ],
1745
+ "proceed": true
1746
+ }
1747
+ },
1748
+ {
1749
+ "rust": {
1750
+ "clients": [
1751
+ [
1752
+ 2147483648,
1753
+ 0,
1754
+ null
1755
+ ],
1756
+ [
1757
+ 2147483648,
1758
+ 0,
1759
+ null
1760
+ ],
1761
+ [
1762
+ 2147483648,
1763
+ 0,
1764
+ null
1765
+ ],
1766
+ [
1767
+ 2147483648,
1768
+ 0,
1769
+ null
1770
+ ],
1771
+ [
1772
+ 2147483648,
1773
+ 0,
1774
+ null
1775
+ ],
1776
+ [
1777
+ 2147483648,
1778
+ 0,
1779
+ null
1780
+ ],
1781
+ [
1782
+ 2147483648,
1783
+ 0,
1784
+ null
1785
+ ],
1786
+ [
1787
+ 2147483648,
1788
+ 0,
1789
+ null
1790
+ ],
1791
+ [
1792
+ 2147483648,
1793
+ 0,
1794
+ null
1795
+ ],
1796
+ [
1797
+ 2147483648,
1798
+ 0,
1799
+ null
1800
+ ],
1801
+ [
1802
+ 2147483648,
1803
+ 0,
1804
+ null
1805
+ ],
1806
+ [
1807
+ 2147483648,
1808
+ 0,
1809
+ null
1810
+ ],
1811
+ [
1812
+ 2147483648,
1813
+ 0,
1814
+ null
1815
+ ],
1816
+ [
1817
+ 2147483648,
1818
+ 0,
1819
+ null
1820
+ ],
1821
+ [
1822
+ 2147483648,
1823
+ 0,
1824
+ null
1825
+ ],
1826
+ [
1827
+ 2147483648,
1828
+ 0,
1829
+ null
1830
+ ],
1831
+ [
1832
+ 2147483648,
1833
+ 0,
1834
+ null
1835
+ ],
1836
+ [
1837
+ 2147483648,
1838
+ 0,
1839
+ null
1840
+ ],
1841
+ [
1842
+ 2147483648,
1843
+ 0,
1844
+ null
1845
+ ],
1846
+ [
1847
+ 2147483648,
1848
+ 0,
1849
+ null
1850
+ ],
1851
+ [
1852
+ 2147483648,
1853
+ 0,
1854
+ null
1855
+ ],
1856
+ [
1857
+ 2147483648,
1858
+ 0,
1859
+ null
1860
+ ],
1861
+ [
1862
+ 2147483648,
1863
+ 0,
1864
+ null
1865
+ ],
1866
+ [
1867
+ 2147483648,
1868
+ 0,
1869
+ null
1870
+ ],
1871
+ [
1872
+ 2147483648,
1873
+ 0,
1874
+ null
1875
+ ],
1876
+ [
1877
+ 2147483648,
1878
+ 0,
1879
+ null
1880
+ ],
1881
+ [
1882
+ 2147483648,
1883
+ 0,
1884
+ null
1885
+ ],
1886
+ [
1887
+ 2147483648,
1888
+ 0,
1889
+ null
1890
+ ],
1891
+ [
1892
+ 2147483648,
1893
+ 0,
1894
+ null
1895
+ ],
1896
+ [
1897
+ 2147483648,
1898
+ 0,
1899
+ null
1900
+ ],
1901
+ [
1902
+ 2147483648,
1903
+ 0,
1904
+ null
1905
+ ],
1906
+ [
1907
+ 2147483648,
1908
+ 0,
1909
+ null
1910
+ ],
1911
+ [
1912
+ 2147483648,
1913
+ 0,
1914
+ null
1915
+ ],
1916
+ [
1917
+ 2147483648,
1918
+ 0,
1919
+ null
1920
+ ],
1921
+ [
1922
+ 2147483648,
1923
+ 0,
1924
+ null
1925
+ ],
1926
+ [
1927
+ 2147483648,
1928
+ 0,
1929
+ null
1930
+ ],
1931
+ [
1932
+ 2147483648,
1933
+ 0,
1934
+ null
1935
+ ],
1936
+ [
1937
+ 2147483648,
1938
+ 0,
1939
+ null
1940
+ ],
1941
+ [
1942
+ 2147483648,
1943
+ 0,
1944
+ null
1945
+ ],
1946
+ [
1947
+ 2147483648,
1948
+ 0,
1949
+ null
1950
+ ],
1951
+ [
1952
+ 2147483648,
1953
+ 0,
1954
+ null
1955
+ ],
1956
+ [
1957
+ 2147483648,
1958
+ 0,
1959
+ null
1960
+ ],
1961
+ [
1962
+ 2147483648,
1963
+ 0,
1964
+ null
1965
+ ],
1966
+ [
1967
+ 2147483648,
1968
+ 0,
1969
+ null
1970
+ ],
1971
+ [
1972
+ 2147483648,
1973
+ 0,
1974
+ null
1975
+ ],
1976
+ [
1977
+ 2147483648,
1978
+ 0,
1979
+ null
1980
+ ],
1981
+ [
1982
+ 2147483648,
1983
+ 0,
1984
+ null
1985
+ ],
1986
+ [
1987
+ 2147483648,
1988
+ 0,
1989
+ null
1990
+ ],
1991
+ [
1992
+ 2147483648,
1993
+ 0,
1994
+ null
1995
+ ],
1996
+ [
1997
+ 2147483648,
1998
+ 0,
1999
+ null
2000
+ ],
2001
+ [
2002
+ 2147483648,
2003
+ 0,
2004
+ null
2005
+ ],
2006
+ [
2007
+ 2147483648,
2008
+ 0,
2009
+ null
2010
+ ],
2011
+ [
2012
+ 2147483648,
2013
+ 0,
2014
+ null
2015
+ ],
2016
+ [
2017
+ 2147483648,
2018
+ 0,
2019
+ null
2020
+ ],
2021
+ [
2022
+ 2147483648,
2023
+ 0,
2024
+ null
2025
+ ],
2026
+ [
2027
+ 2147483648,
2028
+ 0,
2029
+ null
2030
+ ],
2031
+ [
2032
+ 2147483648,
2033
+ 0,
2034
+ null
2035
+ ],
2036
+ [
2037
+ 2147483648,
2038
+ 0,
2039
+ null
2040
+ ],
2041
+ [
2042
+ 2147483648,
2043
+ 0,
2044
+ null
2045
+ ],
2046
+ [
2047
+ 2147483648,
2048
+ 0,
2049
+ null
2050
+ ],
2051
+ [
2052
+ 2147483648,
2053
+ 0,
2054
+ null
2055
+ ],
2056
+ [
2057
+ 2147483648,
2058
+ 0,
2059
+ null
2060
+ ],
2061
+ [
2062
+ 2147483648,
2063
+ 0,
2064
+ null
2065
+ ],
2066
+ [
2067
+ 2147483648,
2068
+ 0,
2069
+ null
2070
+ ]
2071
+ ],
2072
+ "proceed": true
2073
+ },
2074
+ "source": {
2075
+ "clients": [
2076
+ [
2077
+ 2147483648,
2078
+ 0,
2079
+ null
2080
+ ],
2081
+ [
2082
+ 2147483648,
2083
+ 0,
2084
+ null
2085
+ ],
2086
+ [
2087
+ 2147483648,
2088
+ 0,
2089
+ null
2090
+ ],
2091
+ [
2092
+ 2147483648,
2093
+ 0,
2094
+ null
2095
+ ],
2096
+ [
2097
+ 2147483648,
2098
+ 0,
2099
+ null
2100
+ ],
2101
+ [
2102
+ 2147483648,
2103
+ 0,
2104
+ null
2105
+ ],
2106
+ [
2107
+ 2147483648,
2108
+ 0,
2109
+ null
2110
+ ],
2111
+ [
2112
+ 2147483648,
2113
+ 0,
2114
+ null
2115
+ ],
2116
+ [
2117
+ 2147483648,
2118
+ 0,
2119
+ null
2120
+ ],
2121
+ [
2122
+ 2147483648,
2123
+ 0,
2124
+ null
2125
+ ],
2126
+ [
2127
+ 2147483648,
2128
+ 0,
2129
+ null
2130
+ ],
2131
+ [
2132
+ 2147483648,
2133
+ 0,
2134
+ null
2135
+ ],
2136
+ [
2137
+ 2147483648,
2138
+ 0,
2139
+ null
2140
+ ],
2141
+ [
2142
+ 2147483648,
2143
+ 0,
2144
+ null
2145
+ ],
2146
+ [
2147
+ 2147483648,
2148
+ 0,
2149
+ null
2150
+ ],
2151
+ [
2152
+ 2147483648,
2153
+ 0,
2154
+ null
2155
+ ],
2156
+ [
2157
+ 2147483648,
2158
+ 0,
2159
+ null
2160
+ ],
2161
+ [
2162
+ 2147483648,
2163
+ 0,
2164
+ null
2165
+ ],
2166
+ [
2167
+ 2147483648,
2168
+ 0,
2169
+ null
2170
+ ],
2171
+ [
2172
+ 2147483648,
2173
+ 0,
2174
+ null
2175
+ ],
2176
+ [
2177
+ 2147483648,
2178
+ 0,
2179
+ null
2180
+ ],
2181
+ [
2182
+ 2147483648,
2183
+ 0,
2184
+ null
2185
+ ],
2186
+ [
2187
+ 2147483648,
2188
+ 0,
2189
+ null
2190
+ ],
2191
+ [
2192
+ 2147483648,
2193
+ 0,
2194
+ null
2195
+ ],
2196
+ [
2197
+ 2147483648,
2198
+ 0,
2199
+ null
2200
+ ],
2201
+ [
2202
+ 2147483648,
2203
+ 0,
2204
+ null
2205
+ ],
2206
+ [
2207
+ 2147483648,
2208
+ 0,
2209
+ null
2210
+ ],
2211
+ [
2212
+ 2147483648,
2213
+ 0,
2214
+ null
2215
+ ],
2216
+ [
2217
+ 2147483648,
2218
+ 0,
2219
+ null
2220
+ ],
2221
+ [
2222
+ 2147483648,
2223
+ 0,
2224
+ null
2225
+ ],
2226
+ [
2227
+ 2147483648,
2228
+ 0,
2229
+ null
2230
+ ],
2231
+ [
2232
+ 2147483648,
2233
+ 0,
2234
+ null
2235
+ ],
2236
+ [
2237
+ 2147483648,
2238
+ 0,
2239
+ null
2240
+ ],
2241
+ [
2242
+ 2147483648,
2243
+ 0,
2244
+ null
2245
+ ],
2246
+ [
2247
+ 2147483648,
2248
+ 0,
2249
+ null
2250
+ ],
2251
+ [
2252
+ 2147483648,
2253
+ 0,
2254
+ null
2255
+ ],
2256
+ [
2257
+ 2147483648,
2258
+ 0,
2259
+ null
2260
+ ],
2261
+ [
2262
+ 2147483648,
2263
+ 0,
2264
+ null
2265
+ ],
2266
+ [
2267
+ 2147483648,
2268
+ 0,
2269
+ null
2270
+ ],
2271
+ [
2272
+ 2147483648,
2273
+ 0,
2274
+ null
2275
+ ],
2276
+ [
2277
+ 2147483648,
2278
+ 0,
2279
+ null
2280
+ ],
2281
+ [
2282
+ 2147483648,
2283
+ 0,
2284
+ null
2285
+ ],
2286
+ [
2287
+ 2147483648,
2288
+ 0,
2289
+ null
2290
+ ],
2291
+ [
2292
+ 2147483648,
2293
+ 0,
2294
+ null
2295
+ ],
2296
+ [
2297
+ 2147483648,
2298
+ 0,
2299
+ null
2300
+ ],
2301
+ [
2302
+ 2147483648,
2303
+ 0,
2304
+ null
2305
+ ],
2306
+ [
2307
+ 2147483648,
2308
+ 0,
2309
+ null
2310
+ ],
2311
+ [
2312
+ 2147483648,
2313
+ 0,
2314
+ null
2315
+ ],
2316
+ [
2317
+ 2147483648,
2318
+ 0,
2319
+ null
2320
+ ],
2321
+ [
2322
+ 2147483648,
2323
+ 0,
2324
+ null
2325
+ ],
2326
+ [
2327
+ 2147483648,
2328
+ 0,
2329
+ null
2330
+ ],
2331
+ [
2332
+ 2147483648,
2333
+ 0,
2334
+ null
2335
+ ],
2336
+ [
2337
+ 2147483648,
2338
+ 0,
2339
+ null
2340
+ ],
2341
+ [
2342
+ 2147483648,
2343
+ 0,
2344
+ null
2345
+ ],
2346
+ [
2347
+ 2147483648,
2348
+ 0,
2349
+ null
2350
+ ],
2351
+ [
2352
+ 2147483648,
2353
+ 0,
2354
+ null
2355
+ ],
2356
+ [
2357
+ 2147483648,
2358
+ 0,
2359
+ null
2360
+ ],
2361
+ [
2362
+ 2147483648,
2363
+ 0,
2364
+ null
2365
+ ],
2366
+ [
2367
+ 2147483648,
2368
+ 0,
2369
+ null
2370
+ ],
2371
+ [
2372
+ 2147483648,
2373
+ 0,
2374
+ null
2375
+ ],
2376
+ [
2377
+ 2147483648,
2378
+ 0,
2379
+ null
2380
+ ],
2381
+ [
2382
+ 2147483648,
2383
+ 0,
2384
+ null
2385
+ ],
2386
+ [
2387
+ 2147483648,
2388
+ 0,
2389
+ null
2390
+ ],
2391
+ [
2392
+ 2147483648,
2393
+ 0,
2394
+ null
2395
+ ]
2396
+ ],
2397
+ "proceed": true
2398
+ }
2399
+ }
2400
+ ],
2401
+ "source_report": "docs/research/qvm-move-assist-cleanup.json",
2402
+ "source_report_sha256": "e896d23aa67ade8777b5b6a3b45fe35ad46eca4576124969b02576d3034373ef"
2403
+ }
scripts/analyze_rust_move_assist_cleanup.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-move-callbacks'],check=True,capture_output=True)
9
+ binary=Path(os.environ.get('CARGO_TARGET_DIR','target'))/'debug'/'urt-move-callbacks'
10
+ path=Path('docs/research/qvm-move-assist-cleanup.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 ['clients', 'proceed']},rust=result(binary,'cleanup',encode(p['input']))))
13
+ write_json(Path('docs/research/rust-move-assist-cleanup.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['entity'],a['client'],a['mode'],a['connection'],a['health'],a['follow'],a['self_flags'],a['target_health'],a['target_connection'],a['target_follow'],a['active'],a['count'],a['extra']]
16
+ if __name__=='__main__':main()
scripts/test_rust_move_assist_cleanup.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-move-assist-cleanup.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-move-assist-cleanup.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
@@ -3878,3 +3878,29 @@ report scripts/analyze_qvm_move_assist_cleanup.py docs/research/qvm-move-assist-
3878
  edge docs/research/qvm-move-assist-cleanup.json scripts/test_qvm_move_assist_cleanup.py
3879
  group qvm-move-assist-cleanup scripts/analyze_qvm_move_assist_cleanup.py
3880
  edge scripts/analyze_qvm_move_assist_cleanup.py scripts/analyze_qvm_resumer_audit.py
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3878
  edge docs/research/qvm-move-assist-cleanup.json scripts/test_qvm_move_assist_cleanup.py
3879
  group qvm-move-assist-cleanup scripts/analyze_qvm_move_assist_cleanup.py
3880
  edge scripts/analyze_qvm_move_assist_cleanup.py scripts/analyze_qvm_resumer_audit.py
3881
+ report scripts/analyze_rust_move_assist_cleanup.py docs/research/rust-move-assist-cleanup.json
3882
+ edge docs/research/rust-move-assist-cleanup.json scripts/test_rust_move_assist_cleanup.py
3883
+ group rust-move-assist-cleanup scripts/analyze_rust_move_assist_cleanup.py
3884
+ edge scripts/analyze_rust_move_assist_cleanup.py scripts/analyze_qvm_resumer_audit.py
3885
+ edge Cargo.toml scripts/analyze_rust_move_assist_cleanup.py
3886
+ edge Cargo.lock scripts/analyze_rust_move_assist_cleanup.py
3887
+ edge crates/urt-gameplay/Cargo.toml scripts/analyze_rust_move_assist_cleanup.py
3888
+ edge crates/urt-gameplay/src/lib.rs scripts/analyze_rust_move_assist_cleanup.py
3889
+ edge crates/urt-gameplay/src/filter_loading.rs scripts/analyze_rust_move_assist_cleanup.py
3890
+ edge crates/urt-gameplay/src/filter_lifecycle.rs scripts/analyze_rust_move_assist_cleanup.py
3891
+ edge crates/urt-gameplay/src/native_policy.rs scripts/analyze_rust_move_assist_cleanup.py
3892
+ edge crates/urt-gameplay/src/bin/urt-filter-loading.rs scripts/analyze_rust_move_assist_cleanup.py
3893
+ edge crates/urt-gameplay/src/qvm_format.rs scripts/analyze_rust_move_assist_cleanup.py
3894
+ edge docs/research/qvm-move-assist-cleanup.json scripts/analyze_rust_move_assist_cleanup.py
3895
+ group rust-move-assist-cleanup scripts/analyze_rust_health_impulse.py
3896
+ group gameplay scripts/analyze_rust_move_assist_cleanup.py
3897
+ edge crates/urt-gameplay/src/filter_commands.rs scripts/analyze_rust_move_assist_cleanup.py
3898
+ edge crates/urt-gameplay/src/bin/urt-filter-commands.rs scripts/analyze_rust_move_assist_cleanup.py
3899
+ edge crates/urt-gameplay/src/client_timer.rs scripts/analyze_rust_move_assist_cleanup.py
3900
+ edge crates/urt-gameplay/src/bin/urt-client-timer.rs scripts/analyze_rust_move_assist_cleanup.py
3901
+ edge crates/urt-gameplay/src/client_processing.rs scripts/analyze_rust_move_assist_cleanup.py
3902
+ edge crates/urt-gameplay/src/bin/urt-client-processing.rs scripts/analyze_rust_move_assist_cleanup.py
3903
+ edge crates/urt-gameplay/src/client_move_context.rs scripts/analyze_rust_move_assist_cleanup.py
3904
+ edge crates/urt-gameplay/src/bin/urt-client-move-context.rs scripts/analyze_rust_move_assist_cleanup.py
3905
+ edge crates/urt-gameplay/src/move_callbacks.rs scripts/analyze_rust_move_assist_cleanup.py
3906
+ edge crates/urt-gameplay/src/bin/urt-move-callbacks.rs scripts/analyze_rust_move_assist_cleanup.py
xtask/src/lib.rs CHANGED
@@ -1138,6 +1138,7 @@ mod integration_tests {
1138
  ("client_move_context", "client_move_assembly"),
1139
  ("move_callbacks", "move_meter"),
1140
  ("move_callbacks", "move_self_recovery"),
 
1141
  ("client_move_context", "client_move_scratch"),
1142
  ("client_processing", "client_routing"),
1143
  ("client_timer", "client_routing"),
@@ -1358,6 +1359,7 @@ mod integration_tests {
1358
  ("qvm-client-move-assembly", "client_move_assembly"),
1359
  ("qvm-move-meter", "move_meter"),
1360
  ("qvm-move-self-recovery", "move_self_recovery"),
 
1361
  ("qvm-client-move-scratch", "client_move_scratch"),
1362
  ("qvm-client-routing", "client_routing"),
1363
  ("qvm-client-command-rewrite", "client_command_rewrite"),
 
1138
  ("client_move_context", "client_move_assembly"),
1139
  ("move_callbacks", "move_meter"),
1140
  ("move_callbacks", "move_self_recovery"),
1141
+ ("move_callbacks", "move_assist_cleanup"),
1142
  ("client_move_context", "client_move_scratch"),
1143
  ("client_processing", "client_routing"),
1144
  ("client_timer", "client_routing"),
 
1359
  ("qvm-client-move-assembly", "client_move_assembly"),
1360
  ("qvm-move-meter", "move_meter"),
1361
  ("qvm-move-self-recovery", "move_self_recovery"),
1362
+ ("qvm-move-assist-cleanup", "move_assist_cleanup"),
1363
  ("qvm-client-move-scratch", "client_move_scratch"),
1364
  ("qvm-client-routing", "client_routing"),
1365
  ("qvm-client-command-rewrite", "client_command_rewrite"),