From a684d3e642401d0537a7edf609ce2345071effe9 Mon Sep 17 00:00:00 2001 From: serversdwn Date: Tue, 3 Mar 2026 17:54:33 -0500 Subject: [PATCH] fix: parser no v0.2.2, uses proper frame handling, checksum for large frames still unknown. --- parsers/bw_frames.jsonl | 98 ++++++ parsers/raw_bw.bin | Bin 0 -> 4514 bytes parsers/raw_s3.bin | Bin 0 -> 6889 bytes parsers/s3_parser.py | 394 +++++++++++++++++-------- parsers/s3_session_20260302_161811.bin | Bin 15204 -> 0 bytes parsers/s3_session_20260302_161811.log | 22 -- 6 files changed, 362 insertions(+), 152 deletions(-) create mode 100644 parsers/bw_frames.jsonl create mode 100644 parsers/raw_bw.bin create mode 100644 parsers/raw_s3.bin delete mode 100644 parsers/s3_session_20260302_161811.bin delete mode 100644 parsers/s3_session_20260302_161811.log diff --git a/parsers/bw_frames.jsonl b/parsers/bw_frames.jsonl new file mode 100644 index 0000000..5965d8a --- /dev/null +++ b/parsers/bw_frames.jsonl @@ -0,0 +1,98 @@ +{"index": 0, "start_offset": 0, "end_offset": 21, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 1, "start_offset": 21, "end_offset": 42, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 2, "start_offset": 42, "end_offset": 63, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 3, "start_offset": 63, "end_offset": 84, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 4, "start_offset": 84, "end_offset": 105, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 5, "start_offset": 105, "end_offset": 126, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 6, "start_offset": 126, "end_offset": 147, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 7, "start_offset": 147, "end_offset": 168, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 8, "start_offset": 168, "end_offset": 189, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 9, "start_offset": 189, "end_offset": 210, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 10, "start_offset": 210, "end_offset": 231, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 11, "start_offset": 231, "end_offset": 252, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 12, "start_offset": 252, "end_offset": 273, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 13, "start_offset": 273, "end_offset": 294, "payload_len": 17, "payload_hex": "1000150000000000000000000000000025", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 14, "start_offset": 294, "end_offset": 315, "payload_len": 17, "payload_hex": "10001500000a000000000000000000002f", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 15, "start_offset": 315, "end_offset": 427, "payload_len": 108, "payload_hex": "10006800005a00000000000000000000005809000000010107cb00061e00010107cb00140000000000173b00000000000000000000000000000100000000000100000000000000010001000000000000000000000000000000000064000000000000001effdc0000100200c8", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 16, "start_offset": 427, "end_offset": 448, "payload_len": 17, "payload_hex": "1000730000000000000000000000000083", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 17, "start_offset": 448, "end_offset": 1497, "payload_len": 1045, "payload_hex": "1000710010040000000000000000000000082a6400001004100400003c0000be800000000040400000001003000f000000073dbb457a3db956e1000100015374616e64617264205265636f7264696e672053657475702e7365740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050726f6a6563743a0000000000000000000000000000544553542000000000000000000000000000000000000000000000000000000000000000000000000000436c69656e743a000000000000000000000000000000436c6175646520746573743200000000000000000000000000000000000000000000000000000000000055736572204e616d653a00000000000000000000000054657272612d4d656368616e69637320496e632e202d20422e204861727269736f6e000000000000000053656973204c6f633a000000000000000000000000004c6f636174696f6e202331202d20427269616e7320486f75736500000000000000000000000000000000457874656e646564204e6f74657300000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 18, "start_offset": 1497, "end_offset": 2574, "payload_len": 1073, "payload_hex": "1000710010040000001004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015472616e000000010050000f0028001510021003011004001003000040c697fd00003f19999a696e2e00400000002f730000000156657274000000010050000f0028001510021003011004001003000040c697fd00003f19999a696e2e00400000002f73000000014c6f6e67000000010050000f0028001510021003011004001003000040c697fd00003f19999a696e2e00400000002f73000000004d69634c000000100200c80032000a000a1002d501db000500003d38560800003c1374bc707369003cac0831284c29000010025472616e320000010050000f0028001510021003011004001003000040c697fd00003f000000696e2e00400000002f73000000100256657274320000010050000f0028001510021003011004001003000040c697fd00003f000000696e2e00400000002f7300000010024c6f6e67320000010050000f0028001510021003011004001003000040c697fd00003f000000696e2e00400000002f73000000004d69634c1002", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 19, "start_offset": 2574, "end_offset": 2641, "payload_len": 63, "payload_hex": "10007100002c00000800000000000000320000100200c80032000a000a1002d501db000500003d38560800003c23d70a707369003cac0831284c29007cea32", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 20, "start_offset": 2641, "end_offset": 2662, "payload_len": 17, "payload_hex": "1000720000000000000000000000000082", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 21, "start_offset": 2662, "end_offset": 2711, "payload_len": 45, "payload_hex": "10008200001c00000000000000000000001ad5000001080affffffffffffffffffffffffffffffffffff00009e", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 22, "start_offset": 2711, "end_offset": 2732, "payload_len": 17, "payload_hex": "1000830000000000000000000000000093", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 23, "start_offset": 2732, "end_offset": 2957, "payload_len": 221, "payload_hex": "1000690000ca0000000000000000000000c8080000010001000100010001000100010010020001001e0010020001000a000a4576656e742053756d6d617279205265706f7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002580000801018c76af", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 24, "start_offset": 2957, "end_offset": 2978, "payload_len": 17, "payload_hex": "1000740000000000000000000000000084", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 25, "start_offset": 2978, "end_offset": 2999, "payload_len": 17, "payload_hex": "1000720000000000000000000000000082", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 26, "start_offset": 2999, "end_offset": 3020, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 27, "start_offset": 3020, "end_offset": 3041, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 28, "start_offset": 3041, "end_offset": 3062, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 29, "start_offset": 3062, "end_offset": 3083, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 30, "start_offset": 3083, "end_offset": 3104, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 31, "start_offset": 3104, "end_offset": 3125, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 32, "start_offset": 3125, "end_offset": 3146, "payload_len": 17, "payload_hex": "1000150000000000000000000000000025", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 33, "start_offset": 3146, "end_offset": 3167, "payload_len": 17, "payload_hex": "10001500000a000000000000000000002f", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 34, "start_offset": 3167, "end_offset": 3188, "payload_len": 17, "payload_hex": "1000010000000000000000000000000011", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 35, "start_offset": 3188, "end_offset": 3209, "payload_len": 17, "payload_hex": "10000100009800000000000000000000a9", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 36, "start_offset": 3209, "end_offset": 3230, "payload_len": 17, "payload_hex": "1000080000000000000000000000000018", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 37, "start_offset": 3230, "end_offset": 3251, "payload_len": 17, "payload_hex": "1000080000580000000000000000000070", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 38, "start_offset": 3251, "end_offset": 3272, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 39, "start_offset": 3272, "end_offset": 3293, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 40, "start_offset": 3293, "end_offset": 3314, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 41, "start_offset": 3314, "end_offset": 3335, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 42, "start_offset": 3335, "end_offset": 3356, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 43, "start_offset": 3356, "end_offset": 3377, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 44, "start_offset": 3377, "end_offset": 3398, "payload_len": 17, "payload_hex": "1000010000000000000000000000000011", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 45, "start_offset": 3398, "end_offset": 3419, "payload_len": 17, "payload_hex": "10000100009800000000000000000000a9", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 46, "start_offset": 3419, "end_offset": 3440, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 47, "start_offset": 3440, "end_offset": 3461, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 48, "start_offset": 3461, "end_offset": 3482, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 49, "start_offset": 3482, "end_offset": 3503, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 50, "start_offset": 3503, "end_offset": 3524, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 51, "start_offset": 3524, "end_offset": 3545, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 52, "start_offset": 3545, "end_offset": 3566, "payload_len": 17, "payload_hex": "1000150000000000000000000000000025", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 53, "start_offset": 3566, "end_offset": 3587, "payload_len": 17, "payload_hex": "10001500000a000000000000000000002f", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 54, "start_offset": 3587, "end_offset": 3608, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 55, "start_offset": 3608, "end_offset": 3629, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 56, "start_offset": 3629, "end_offset": 3650, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 57, "start_offset": 3650, "end_offset": 3671, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 58, "start_offset": 3671, "end_offset": 3692, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 59, "start_offset": 3692, "end_offset": 3713, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 60, "start_offset": 3713, "end_offset": 3734, "payload_len": 17, "payload_hex": "1000150000000000000000000000000025", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 61, "start_offset": 3734, "end_offset": 3755, "payload_len": 17, "payload_hex": "10001500000a000000000000000000002f", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 62, "start_offset": 3755, "end_offset": 3776, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 63, "start_offset": 3776, "end_offset": 3797, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 64, "start_offset": 3797, "end_offset": 3818, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 65, "start_offset": 3818, "end_offset": 3839, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 66, "start_offset": 3839, "end_offset": 3860, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 67, "start_offset": 3860, "end_offset": 3881, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 68, "start_offset": 3881, "end_offset": 3902, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 69, "start_offset": 3902, "end_offset": 3923, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 70, "start_offset": 3923, "end_offset": 3944, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 71, "start_offset": 3944, "end_offset": 3965, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 72, "start_offset": 3965, "end_offset": 3986, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 73, "start_offset": 3986, "end_offset": 4007, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 74, "start_offset": 4007, "end_offset": 4028, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 75, "start_offset": 4028, "end_offset": 4049, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 76, "start_offset": 4049, "end_offset": 4070, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 77, "start_offset": 4070, "end_offset": 4091, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 78, "start_offset": 4091, "end_offset": 4112, "payload_len": 17, "payload_hex": "10005b000000000000000000000000006b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 79, "start_offset": 4112, "end_offset": 4133, "payload_len": 17, "payload_hex": "10005b000030000000000000000000009b", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 80, "start_offset": 4133, "end_offset": 4154, "payload_len": 17, "payload_hex": "1000010000000000000000000000000011", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 81, "start_offset": 4154, "end_offset": 4175, "payload_len": 17, "payload_hex": "10000100009800000000000000000000a9", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 82, "start_offset": 4175, "end_offset": 4196, "payload_len": 17, "payload_hex": "10002e000000000000000000000000003e", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 83, "start_offset": 4196, "end_offset": 4217, "payload_len": 17, "payload_hex": "10002e00001a0000000000000000000058", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 84, "start_offset": 4217, "end_offset": 4238, "payload_len": 17, "payload_hex": "1000010000000000000000000000000011", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 85, "start_offset": 4238, "end_offset": 4259, "payload_len": 17, "payload_hex": "10000100009800000000000000000000a9", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 86, "start_offset": 4259, "end_offset": 4280, "payload_len": 17, "payload_hex": "10001a000000000000000000006400008e", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 87, "start_offset": 4280, "end_offset": 4302, "payload_len": 18, "payload_hex": "10001a001004000000000000000064000092", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 88, "start_offset": 4302, "end_offset": 4325, "payload_len": 19, "payload_hex": "10001a00100400000010040000000064000096", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 89, "start_offset": 4325, "end_offset": 4346, "payload_len": 17, "payload_hex": "10001a00002a00000800000000640000c0", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 90, "start_offset": 4346, "end_offset": 4367, "payload_len": 17, "payload_hex": "1000090000000000000000000000000019", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 91, "start_offset": 4367, "end_offset": 4388, "payload_len": 17, "payload_hex": "1000090000ca00000000000000000000e3", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 92, "start_offset": 4388, "end_offset": 4409, "payload_len": 17, "payload_hex": "1000080000000000000000000000000018", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 93, "start_offset": 4409, "end_offset": 4430, "payload_len": 17, "payload_hex": "1000080000580000000000000000000070", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 94, "start_offset": 4430, "end_offset": 4451, "payload_len": 17, "payload_hex": "1000010000000000000000000000000011", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 95, "start_offset": 4451, "end_offset": 4472, "payload_len": 17, "payload_hex": "10000100009800000000000000000000a9", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 96, "start_offset": 4472, "end_offset": 4493, "payload_len": 17, "payload_hex": "1000080000000000000000000000000018", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} +{"index": 97, "start_offset": 4493, "end_offset": 4514, "payload_len": 17, "payload_hex": "1000080000580000000000000000000070", "trailer_hex": "", "checksum_valid": null, "checksum_type": null, "checksum_hex": null} diff --git a/parsers/raw_bw.bin b/parsers/raw_bw.bin new file mode 100644 index 0000000000000000000000000000000000000000..de8595875bce2c8a063a1b04ffd3c5e71054f75e GIT binary patch literal 4514 zcmeH~&1(}u6u{qZs)@O{qD32|43t7GHnlm4Hkw)j71B~n3_(xJ?$E9_yK#0?R6LZ{ zqj*s86TAz8XHmqH6g?LYdJ%8_4^rRkWV^G~lnvMhBooNY{Pw+>d2eUuy_r%q4X%P* zt|z8;f~P{+=l`o@e`q7NhJ~33(;*)ha1r222%&ZWJBpJ04EqN~eZ+ry^sFSrMf|S# z=e?j6N|~+Z;N~{~O@(zapBqYGYfZo#p!G>SHHykwA7_&Q?^pPvLIMA@1RTUFnSWcn zoqtpP&L=K=x^3#rB$ue+Fw?RZNSS)gM%JYs%644lnRAUA-kGRkrC6?zC~DK2Ub3jY zT^**E^rlIPM_n)1MzMu2yOfbRy-p)5s8GiAu~}*?>b7OLmh0HT zsAX!oq~sV8bwHqdmSdBl39iO0-FC^0({yQ|7u3a@9<@zsk~s%g8&GNE1gKZ{Jg{pX zNJb8Z$my_abM^-AdEno9K&ddDAIb{MW6&CbeofU93hrbKVo><__!q$Wfv3+bI|~IA z8|O!@Ql*Rst&Vg`j=j*K4$N9c33Yf_h8$)EX-(ZwzQR6${OM{6!|q}4UBk6t@>ObL zq;!Hya&s_r?X)x;F=CFUa(g;f;s$l7s0niG+;7IMw9Qu-$&Ajt7Cx&1x zWl^mPxC(Gw;+YNfMk>AeM*(;t6xJkZfQJHF0G}kjj_c&Q zl$-Us&Te6n({TJPA`Q{)=I{!n6y@IXYhhqC>$)r8Ume;mZQq*=J${ZHO>Pefix55u zJ^xa`VAF{Q$F^WClxzstUEAYZ)ZKN)e@DG_23st={_f3p)LqZVpFRGb&jzma>vQ6R zMVJYBO~CkLO1gNty)V==(!Ceyg9sH#FXBf5hS647L-;{Jeq9gCz!sE3%nt$MA5HO% HiZ$kMOUfSB literal 0 HcmV?d00001 diff --git a/parsers/raw_s3.bin b/parsers/raw_s3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f974efcb8d5bb200a07ec1b399942467eb33a48 GIT binary patch literal 6889 zcmeI0&1(}u6u{r6)vmd8MMdnP3>2Xj8k_deSX)e60xhJaxUuvmOLnNM>2BHG6e|ij zcx&sygY}ytq8I%GMDZv^FM23~3L;npz3V}=zS)^gx=kyjAU0tqWZvdC^WN@zGy7&T zmj~c+GFgCPIak-OL_ksQbJD@Z=Moh}D9FR6<7%c$b43g6V#F|w5zVD!ESGnREi)x6 zjD@x_2-O~wuY7c)TqyNoh!G3K8U|AFL_Bc}X7>`&zR3HF`k|on0eV}|D*<|U8+0LH z;f}CyDL@wly%?bLf?f;I2ZGK8=q*7vzgzf1l_!F2PM+U9?AN*Q2Lq`fjF+YyNJ?Z0 z0J9oES7QY5_1~oUT!(dL!>y)_E zaXYtA6!?@wZ8EA&(ZCaAsBLTQBQ$$PGmWf6hRtk@w3C4t8PaUqa4gfes#3!tX)7C0 z2LzgHSSD$SGd0`LOot3vd58LXzD%8Wsi{+)j9U1#K3(_k)<>ZXBk<26@G+PfczVFB z5SB0kRT2RyV{0rcOE8A3Rx3MNQR*a|$+(I^^2OpWJdrtc&e`~ zwd-$>h86?vC=upQ#Y)Vf3Y9#E-W8Ju;06P|@OBeuX=^uI-bUBEc~4mQ&U67@a`C!E z1@ZVY-hrJwl|FbM37XmMBo@=u4DJMonxC4|>{;BOOk3XIa-%z bytes: - """Convert DLE-stuffing: 0x10 0x10 => 0x10 (literal DLE).""" - out = bytearray() - i = 0 - n = len(payload_escaped) - while i < n: - b = payload_escaped[i] - if b == DLE: - if i + 1 < n and payload_escaped[i + 1] == DLE: - out.append(DLE) - i += 2 - continue - # If we see a single DLE not followed by DLE inside payload, - # keep it as-is (conservative) — could be real data or malformed capture. - out.append(b) - i += 1 - return bytes(out) -# ---- CRC helpers (we don't know which one yet, so we try a few) ---- +# ------------------------ +# Checksum / CRC helpers +# ------------------------ + +def checksum8_sum(data: bytes) -> int: + """SUM8: sum(payload) & 0xFF""" + return sum(data) & 0xFF + def crc16_ibm(data: bytes) -> int: - # CRC-16/IBM (aka ARC) poly=0xA001 (reflected 0x8005), init=0x0000 + # CRC-16/IBM (aka ARC) poly=0xA001, init=0x0000, refin/refout true crc = 0x0000 for b in data: crc ^= b for _ in range(8): - if crc & 1: - crc = (crc >> 1) ^ 0xA001 - else: - crc >>= 1 + crc = (crc >> 1) ^ 0xA001 if (crc & 1) else (crc >> 1) return crc & 0xFFFF + def crc16_ccitt_false(data: bytes) -> int: - # CRC-16/CCITT-FALSE poly=0x1021, init=0xFFFF, no reflection + # CRC-16/CCITT-FALSE poly=0x1021, init=0xFFFF, refin/refout false crc = 0xFFFF for b in data: crc ^= (b << 8) for _ in range(8): - if crc & 0x8000: - crc = ((crc << 1) ^ 0x1021) & 0xFFFF - else: - crc = (crc << 1) & 0xFFFF + crc = ((crc << 1) ^ 0x1021) & 0xFFFF if (crc & 0x8000) else (crc << 1) & 0xFFFF return crc + def crc16_x25(data: bytes) -> int: - # CRC-16/X-25 poly=0x1021, init=0xFFFF, refin/refout true, xorout=0xFFFF + # CRC-16/X-25 poly=0x8408 (reflected), init=0xFFFF, xorout=0xFFFF crc = 0xFFFF for b in data: crc ^= b for _ in range(8): - if crc & 1: - crc = (crc >> 1) ^ 0x8408 - else: - crc >>= 1 + crc = (crc >> 1) ^ 0x8408 if (crc & 1) else (crc >> 1) return (crc ^ 0xFFFF) & 0xFFFF -CRC_FUNCS = { - "CRC-16/IBM": crc16_ibm, - "CRC-16/CCITT-FALSE": crc16_ccitt_false, - "CRC-16/X-25": crc16_x25, + +CRC16_FUNCS: Dict[str, Callable[[bytes], int]] = { + "CRC16_IBM": crc16_ibm, + "CRC16_CCITT_FALSE": crc16_ccitt_false, + "CRC16_X25": crc16_x25, } -def parse_frames(blob: bytes, trailer_len: int) -> List[Frame]: + +def _try_validate_sum8(body: bytes) -> Optional[Tuple[bytes, bytes, str]]: + """ + body = payload + chk8 + Returns (payload, chk_bytes, type) if valid, else None + """ + if len(body) < 1: + return None + payload = body[:-1] + chk = body[-1] + if checksum8_sum(payload) == chk: + return payload, bytes([chk]), "SUM8" + return None + + +def _try_validate_crc16(body: bytes) -> Optional[Tuple[bytes, bytes, str]]: + """ + body = payload + crc16(2 bytes) + Try multiple CRC16 types and both endian interpretations. + Returns (payload, chk_bytes, type) if valid, else None + """ + if len(body) < 2: + return None + payload = body[:-2] + chk_bytes = body[-2:] + + given_le = int.from_bytes(chk_bytes, "little", signed=False) + given_be = int.from_bytes(chk_bytes, "big", signed=False) + + for name, fn in CRC16_FUNCS.items(): + calc = fn(payload) + if calc == given_le: + return payload, chk_bytes, f"{name}_LE" + if calc == given_be: + return payload, chk_bytes, f"{name}_BE" + return None + + +def validate_bw_body_auto(body: bytes) -> Optional[Tuple[bytes, bytes, str]]: + """ + Try to interpret the tail of body as a checksum in several ways. + Return (payload, checksum_bytes, checksum_type) if any match; else None. + """ + # Prefer SUM8 first (it fits small frames and is cheap) + hit = _try_validate_sum8(body) + if hit: + return hit + + # Then CRC16 variants + hit = _try_validate_crc16(body) + if hit: + return hit + + return None + + +# ------------------------ +# S3 MODE (DLE framed) +# ------------------------ + +def parse_s3(blob: bytes, trailer_len: int) -> List[Frame]: frames: List[Frame] = [] - STATE_IDLE = 0 - STATE_IN_FRAME = 1 - STATE_AFTER_DLE = 2 + IDLE = 0 + IN_FRAME = 1 + AFTER_DLE = 2 - state = STATE_IDLE - payload_raw = bytearray() + state = IDLE + body = bytearray() start_offset = 0 idx = 0 i = 0 n = len(blob) - print(">>> CLEAN RAW STATE MACHINE ACTIVE <<<") - while i < n: b = blob[i] - if state == STATE_IDLE: - # look for DLE STX + if state == IDLE: if b == DLE and i + 1 < n and blob[i + 1] == STX: - print("FRAME START at", i) start_offset = i - payload_raw = bytearray() - state = STATE_IN_FRAME + body.clear() + state = IN_FRAME i += 2 continue - elif state == STATE_IN_FRAME: + elif state == IN_FRAME: if b == DLE: - state = STATE_AFTER_DLE + state = AFTER_DLE i += 1 continue - else: - payload_raw.append(b) + body.append(b) - elif state == STATE_AFTER_DLE: + else: # AFTER_DLE if b == DLE: - # escaped literal DLE - payload_raw.append(DLE) - state = STATE_IN_FRAME + body.append(DLE) + state = IN_FRAME i += 1 continue - elif b == ETX: - print("FRAME END at", i) - # end of frame + if b == ETX: end_offset = i + 1 - - # capture trailer trailer_start = i + 1 trailer_end = trailer_start + trailer_len trailer = blob[trailer_start:trailer_end] + # For S3 mode we don't assume checksum type here yet. frames.append(Frame( index=idx, start_offset=start_offset, end_offset=end_offset, - payload_raw=bytes(payload_raw), - payload=bytes(payload_raw), + payload_raw=bytes(body), + payload=bytes(body), trailer=trailer, - crc_match=None + checksum_valid=None, + checksum_type=None, + checksum_hex=None )) idx += 1 - state = STATE_IDLE + state = IDLE i = trailer_end continue - else: - # unexpected sequence: DLE followed by non-DLE/non-ETX - # treat both bytes as data (robust recovery) - payload_raw.append(DLE) - payload_raw.append(b) - state = STATE_IN_FRAME - i += 1 - continue + # Unexpected DLE + byte → treat as literal data + body.append(DLE) + body.append(b) + state = IN_FRAME + i += 1 + continue i += 1 - print("Frames parsed:", len(frames)) return frames -def best_crc_match(payload: bytes, trailer: bytes, little_endian: bool) -> Optional[str]: - """Try to interpret first 2 trailer bytes as CRC16 and see which algorithm matches.""" - if len(trailer) < 2: - return None - given = int.from_bytes(trailer[:2], byteorder="little" if little_endian else "big", signed=False) - matches = [] - for name, fn in CRC_FUNCS.items(): - calc = fn(payload) - if calc == given: - matches.append(name) - if len(matches) == 1: - return matches[0] - if len(matches) > 1: - return " / ".join(matches) - return None + +# ------------------------ +# BW MODE (ACK+STX framed, bare ETX) +# ------------------------ + +def parse_bw(blob: bytes, trailer_len: int, validate_checksum: bool) -> List[Frame]: + frames: List[Frame] = [] + + IDLE = 0 + IN_FRAME = 1 + AFTER_DLE = 2 + + state = IDLE + body = bytearray() + start_offset = 0 + idx = 0 + + i = 0 + n = len(blob) + + while i < n: + b = blob[i] + + if state == IDLE: + # Frame start signature: ACK + STX + if b == ACK and i + 1 < n and blob[i + 1] == STX: + start_offset = i + body.clear() + state = IN_FRAME + i += 2 + continue + i += 1 + continue + + if state == IN_FRAME: + if b == DLE: + state = AFTER_DLE + i += 1 + continue + + if b == ETX: + # Candidate end-of-frame. + # Accept ETX if the next bytes look like a real next-frame start (ACK+STX), + # or we're at EOF. This prevents chopping on in-payload 0x03. + next_is_start = (i + 2 < n and blob[i + 1] == ACK and blob[i + 2] == STX) + at_eof = (i == n - 1) + + if not (next_is_start or at_eof): + # Not a real boundary -> payload byte + body.append(ETX) + i += 1 + continue + + trailer_start = i + 1 + trailer_end = trailer_start + trailer_len + trailer = blob[trailer_start:trailer_end] + + chk_valid = None + chk_type = None + chk_hex = None + payload = bytes(body) + + if validate_checksum: + hit = validate_bw_body_auto(payload) + if hit: + payload, chk_bytes, chk_type = hit + chk_valid = True + chk_hex = chk_bytes.hex() + else: + chk_valid = False + + frames.append(Frame( + index=idx, + start_offset=start_offset, + end_offset=i + 1, + payload_raw=bytes(body), + payload=payload, + trailer=trailer, + checksum_valid=chk_valid, + checksum_type=chk_type, + checksum_hex=chk_hex + )) + idx += 1 + state = IDLE + i = trailer_end + continue + + # Normal byte + body.append(b) + i += 1 + continue + + # AFTER_DLE + if b == DLE: + body.append(DLE) # 10 10 => literal 10 + else: + # Robust recovery: treat as literal DLE + byte + body.append(DLE) + body.append(b) + state = IN_FRAME + i += 1 + + return frames + + +# ------------------------ +# CLI +# ------------------------ def main() -> None: - ap = argparse.ArgumentParser(description="Parse DLE-framed serial capture .bin into frames (and guess CRC).") - ap.add_argument("binfile", type=Path, help="Path to capture .bin file") - ap.add_argument("--trailer-len", type=int, default=2, help="Bytes to capture after DLE ETX (default: 2)") - ap.add_argument("--crc", action="store_true", help="Attempt CRC match using first 2 trailer bytes") - ap.add_argument("--crc-endian", choices=["little", "big"], default="little", help="CRC endian when reading trailer") + ap = argparse.ArgumentParser(description="Parse Instantel S3/BW binary captures.") + ap.add_argument("binfile", type=Path) + ap.add_argument("--mode", choices=["s3", "bw"], default="s3") + ap.add_argument("--trailer-len", type=int, default=0) + ap.add_argument("--no-checksum", action="store_true") + ap.add_argument("--out", type=Path, default=None) - ap.add_argument("--out", type=Path, default=None, help="Write JSONL output to this file") args = ap.parse_args() + print(f"s3_parser v{__version__}") + blob = args.binfile.read_bytes() - frames = parse_frames(blob, trailer_len=args.trailer_len) - little = (args.crc_endian == "little") - if args.crc: - for f in frames: - f.crc_match = best_crc_match(f.payload, f.trailer, little_endian=little) + if args.mode == "s3": + frames = parse_s3(blob, args.trailer_len) + else: + frames = parse_bw(blob, args.trailer_len, validate_checksum=not args.no_checksum) - # Summary - total = len(frames) - crc_hits = sum(1 for f in frames if f.crc_match) if args.crc else 0 - print(f"Frames found: {total}") - if args.crc: - print(f"CRC matches: {crc_hits} ({(crc_hits/total*100.0):.1f}%)" if total else "CRC matches: 0") + print("Frames found:", len(frames)) - # Emit JSONL def to_hex(b: bytes) -> str: return b.hex() @@ -239,7 +371,9 @@ def main() -> None: "payload_len": len(f.payload), "payload_hex": to_hex(f.payload), "trailer_hex": to_hex(f.trailer), - "crc_match": f.crc_match, + "checksum_valid": f.checksum_valid, + "checksum_type": f.checksum_type, + "checksum_hex": f.checksum_hex, } lines.append(json.dumps(obj)) @@ -247,11 +381,11 @@ def main() -> None: args.out.write_text("\n".join(lines) + "\n", encoding="utf-8") print(f"Wrote: {args.out}") else: - # Print first few only (avoid spewing your terminal) for line in lines[:10]: print(line) if len(lines) > 10: print(f"... ({len(lines) - 10} more)") + if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/parsers/s3_session_20260302_161811.bin b/parsers/s3_session_20260302_161811.bin deleted file mode 100644 index 71143c5ef3adf49f1fc5481efb8bc2143a5cd187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15204 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 MARK: SESSION START — BW=COM4 S3=COM5 baud=38400 -[16:18:18.286] [BW->S3] [ACK] 41 -[16:18:18.326] [S3->BW] [ACK] 41 -[16:18:28.413] [S3->BW] 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 E3 00 00 00 00 00 00 2C 00 00 00 00 00 00 1F 03 41 10 02 00 10 10 E3 00 00 2C 00 00 00 00 00 00 00 00 00 00 00 00 10 02 10 02 07 EA 00 10 10 16 0D 00 00 00 00 00 00 01 01 07 CB 00 06 1E 00 01 01 07 CB 00 14 00 00 00 00 10 02 A4 00 0E FF F4 00 0E E8 60 24 03 41 10 02 00 10 10 EA 00 00 00 00 00 00 0A 00 00 00 00 00 00 10 04 03 41 10 02 00 10 10 EA 00 00 0A 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 20 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 EA 00 00 00 00 00 00 0A 00 00 00 00 00 00 10 04 03 41 10 02 00 10 10 EA 00 00 0A 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 20 03 41 10 02 00 10 10 FE 00 00 00 00 00 00 98 00 00 00 00 00 00 A6 03 41 10 02 00 10 10 FE 00 00 98 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 00 01 10 02 A0 00 00 10 02 00 00 00 0F A0 3F 80 00 00 41 00 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3A 53 33 33 38 2E 31 37 00 00 31 30 2E 37 32 00 15 10 02 07 E7 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 92 03 41 10 02 00 10 10 F7 00 00 00 00 00 00 58 00 00 00 00 00 00 5F 03 41 10 02 00 10 10 F7 00 00 58 00 00 00 00 00 00 00 00 00 00 00 58 09 00 00 00 01 01 07 CB 00 06 1E 00 01 01 07 CB 00 14 00 00 00 00 00 17 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 00 00 00 00 1E FF DC 00 00 53 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 FE 00 00 00 00 00 00 98 00 00 00 00 00 00 A6 03 41 10 02 00 10 10 FE 00 00 98 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 00 01 10 02 A0 00 00 10 02 00 00 00 0F A0 3F 80 00 00 41 00 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3A 53 33 33 38 2E 31 37 00 00 31 30 2E 37 32 00 15 10 02 07 E7 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 92 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 EA 00 00 00 00 00 00 0A 00 00 00 00 00 00 10 04 03 41 10 02 00 10 10 EA 00 00 0A 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 20 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 EA 00 00 00 00 00 00 0A 00 00 00 00 00 00 10 04 03 41 10 02 00 10 10 EA 00 00 0A 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 20 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 A4 00 00 00 00 00 00 30 00 00 00 00 00 00 E4 03 41 10 02 00 10 10 A4 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 76 03 41 10 02 00 10 10 FE 00 00 00 00 00 00 98 00 00 00 00 00 00 A6 03 41 10 02 00 10 10 FE 00 00 98 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 00 01 10 02 A4 00 00 10 02 00 00 00 0F A0 3F 80 00 00 41 00 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3A 53 33 33 38 2E 31 37 00 00 31 30 2E 37 32 00 15 10 02 07 E7 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 96 03 41 10 02 00 10 10 D1 00 00 00 00 00 00 1A 00 00 00 00 00 00 FB 03 41 10 02 00 10 10 D1 00 00 1A 00 00 00 00 00 00 00 00 00 00 00 1A D5 00 00 01 08 0A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF EB 03 41 10 02 00 10 10 FE 00 00 00 00 00 00 98 00 00 00 00 00 00 A6 03 41 10 02 00 10 10 FE 00 00 98 00 00 00 00 00 00 00 00 00 00 42 45 31 38 31 38 39 00 79 11 00 01 10 02 A4 00 00 10 02 00 00 00 0F A0 3F 80 00 00 41 00 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00 3A 53 33 33 38 2E 31 37 00 00 31 30 2E 37 32 00 15 10 02 07 E7 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 49 6E 73 74 61 6E 74 65 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 69 6E 69 4D 61 74 65 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 96 03 41 10 02 00 10 10 E5 00 00 00 00 00 08 2A 00 00 00 64 00 00 8B 03 41 10 02 00 10 10 E5 00 10 04 00 00 00 00 00 00 00 00 64 00 00 08 2A 64 00 00 10 04 10 04 00 00 3C 00 00 BE 80 00 00 00 00 40 40 00 00 00 10 03 -[16:18:28.778] [S3->BW] [RAW] 00 0F 00 00 00 07 3D BB 45 7A 3D B9 56 E1 00 01 00 01 53 74 61 6E 64 61 72 64 20 52 65 63 6F 72 64 69 6E 67 20 53 65 74 75 70 2E 73 65 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 72 6F 6A 65 63 74 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 45 53 54 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 6C 69 65 6E 74 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 6C 61 75 64 65 20 74 65 73 74 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 73 65 72 20 4E 61 6D 65 3A 00 00 00 00 00 00 00 00 00 00 00 00 54 65 72 72 61 2D 4D 65 63 68 61 6E 69 63 73 20 49 6E 63 2E 20 2D 20 42 2E 20 48 61 72 72 69 73 6F 6E 00 00 00 00 00 00 00 00 53 65 69 73 20 4C 6F 63 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 4C 6F 63 61 74 69 6F 6E 20 23 31 20 2D 20 42 72 69 61 6E 73 20 48 6F 75 73 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 78 74 65 6E 64 65 64 20 4E 6F 74 65 73 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DF 03 41 -[16:18:28.970] [S3->BW] 10 02 00 10 10 E5 00 10 04 00 00 00 10 04 00 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 54 72 61 6E 00 00 00 01 00 50 00 0F 00 28 00 15 10 02 10 03 -[16:18:28.970] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 19 99 9A 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 01 56 65 72 74 00 00 00 01 00 50 00 0F 00 28 00 15 -[16:18:28.970] [S3->BW] 10 02 10 03 -[16:18:28.985] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 19 99 9A 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 01 4C 6F 6E 67 00 00 00 01 00 50 00 0F 00 28 00 15 -[16:18:28.985] [S3->BW] 10 02 10 03 -[16:18:29.021] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 19 99 9A 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 00 4D 69 63 4C 00 00 00 -[16:18:29.058] [S3->BW] 10 02 00 C8 00 32 00 0A 00 0A 10 02 D5 01 DB 00 05 00 00 3D 38 56 08 00 00 3C 13 74 BC 70 73 69 00 3C AC 08 31 28 4C 29 00 00 10 02 54 72 61 6E 32 00 00 01 00 50 00 0F 00 28 00 15 10 02 10 03 -[16:18:29.058] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 00 00 00 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 -[16:18:29.058] [S3->BW] 10 02 56 65 72 74 32 00 00 01 00 50 00 0F 00 28 00 15 10 02 10 03 -[16:18:29.058] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 00 00 00 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 -[16:18:29.058] [S3->BW] 10 02 4C 6F 6E 67 32 00 00 01 00 50 00 0F 00 28 00 15 10 02 10 03 -[16:18:29.181] [S3->BW] [RAW] 01 10 04 00 10 03 00 00 40 C6 97 FD 00 00 3F 00 00 00 69 6E 2E 00 40 00 00 00 2F 73 00 00 00 00 4D 69 63 4C DA 03 41 -[16:19:08.667] [INFO] shutdown requested -[16:19:08.943] >>> MARK: SESSION END -[16:19:08.943] [INFO] ports closed, session end