{
  "ok": true,
  "tool": "webftr-js8-post-ldpc-info87-runtime-export-probe",
  "tool_version": "step63-source-exact-interleaver-whitening-index-extract",
  "rx_only_guard": {
    "tx": false,
    "ptt": false,
    "tune": false,
    "send": false,
    "js8call_runtime_control": false
  },
  "no_gui_runtime_started": true,
  "input_wav": "/decoders/js8_decoder/runtime/step85_wide_windows/js8_step85_window_02_0120_0168.wav",
  "log_dir": "/decoders/js8_decoder/logs",
  "output_dir": "/decoders/js8_decoder/runtime/step85_post_ldpc_info87_window2",
  "candidate_json": "/decoders/js8_decoder/runtime/step85_post_ldpc_info87_window2/js8_step85_window_02_0120_0168_fec_candidate_step17.json",
  "matrix_error": null,
  "soft_error": null,
  "matrix_ok": true,
  "soft_ok": true,
  "runtime_info87_rows_count": 48,
  "zero_distance_candidate_count": 0,
  "best_distance": 2,
  "best_runtime_info87_row": {
    "source": "soft_decode.post_ldpc_info87_llr_rows",
    "row_name": "soft_export_4",
    "info87_bits": [
      1,
      0,
      0,
      0,
      0,
      1,
      1,
      0,
      0,
      0,
      0,
      1,
      0,
      1,
      0,
      0,
      0,
      0,
      1,
      0,
      0,
      0,
      1,
      0,
      0,
      1,
      1,
      0,
      1,
      0,
      0,
      1,
      0,
      0,
      0,
      1,
      0,
      0,
      1,
      0,
      0,
      1,
      1,
      0,
      1,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      0,
      0,
      1,
      1,
      0,
      1,
      0,
      0,
      1,
      0,
      1,
      0,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      0,
      0,
      1,
      0,
      0,
      0,
      0
    ],
    "info87_bitstring": "100001100001010000100010011010010001001001101110000000010011010010101000000000010010000",
    "info87_llr": [
      -0.108292,
      -0.0,
      3.374406,
      -0.0,
      -0.0,
      -1.157751,
      -3.905997,
      -0.0,
      1.772239,
      0.561701,
      -0.0,
      -0.169182,
      1.927965,
      -3.053047,
      -0.0,
      1.731499,
      -0.0,
      -0.0,
      -2.390617,
      -0.0,
      -0.0,
      -0.0,
      -3.206228,
      -0.0,
      -0.0,
      -0.223255,
      -0.390353,
      -0.0,
      -2.945828,
      -0.0,
      -0.0,
      -3.289909,
      -0.0,
      1.319124,
      -0.0,
      -1.988467,
      -0.0,
      -0.0,
      -3.141261,
      -0.0,
      -0.0,
      -1.016879,
      -3.498287,
      -0.0,
      -0.634639,
      -3.577036,
      -1.872055,
      -0.0,
      1.829154,
      -0.0,
      -0.0,
      4.373506,
      0.741094,
      -0.0,
      -0.0,
      -3.693185,
      -0.0,
      -0.0,
      -1.526605,
      -2.735424,
      -0.0,
      -0.152229,
      -0.0,
      -0.0,
      -3.705281,
      -0.0,
      -1.521969,
      -0.0,
      -1.085254,
      -0.0,
      -0.0,
      4.733609,
      -0.0,
      -0.0,
      1.535585,
      3.960953,
      -0.0,
      2.469197,
      2.365317,
      -2.143171,
      -0.0,
      -0.0,
      -1.918928,
      -0.0,
      -0.0,
      4.120689,
      -0.0
    ],
    "info87_llr_count": 87,
    "least_reliable_info87_indices": [
      1,
      3,
      4,
      7,
      10,
      14,
      16,
      17,
      19,
      20,
      21,
      23,
      24,
      27,
      29,
      30,
      32,
      34
    ],
    "message174_crc12": {
      "ok": true,
      "distance": 2,
      "crc_match": false,
      "received_crc12": 144,
      "computed_crc12": 432,
      "message_preview_12chars": "XXGYQH9k0JIe",
      "message_words_6bit": [
        33,
        33,
        16,
        34,
        26,
        17,
        9,
        46,
        0,
        19,
        18,
        40
      ]
    },
    "source_index_context": {
      "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
      "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
      "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
      "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
    },
    "soft_meta": {}
  },
  "runtime_info87_rows_preview": [
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_4",
      "info87_bits": [
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100001100001010000100010011010010001001001101110000000010011010010101000000000010010000",
      "info87_llr": [
        -0.108292,
        -0.0,
        3.374406,
        -0.0,
        -0.0,
        -1.157751,
        -3.905997,
        -0.0,
        1.772239,
        0.561701,
        -0.0,
        -0.169182,
        1.927965,
        -3.053047,
        -0.0,
        1.731499,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        -0.0,
        -0.0,
        -3.206228,
        -0.0,
        -0.0,
        -0.223255,
        -0.390353,
        -0.0,
        -2.945828,
        -0.0,
        -0.0,
        -3.289909,
        -0.0,
        1.319124,
        -0.0,
        -1.988467,
        -0.0,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -1.016879,
        -3.498287,
        -0.0,
        -0.634639,
        -3.577036,
        -1.872055,
        -0.0,
        1.829154,
        -0.0,
        -0.0,
        4.373506,
        0.741094,
        -0.0,
        -0.0,
        -3.693185,
        -0.0,
        -0.0,
        -1.526605,
        -2.735424,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -3.705281,
        -0.0,
        -1.521969,
        -0.0,
        -1.085254,
        -0.0,
        -0.0,
        4.733609,
        -0.0,
        -0.0,
        1.535585,
        3.960953,
        -0.0,
        2.469197,
        2.365317,
        -2.143171,
        -0.0,
        -0.0,
        -1.918928,
        -0.0,
        -0.0,
        4.120689,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        4,
        7,
        10,
        14,
        16,
        17,
        19,
        20,
        21,
        23,
        24,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 2,
        "crc_match": false,
        "received_crc12": 144,
        "computed_crc12": 432,
        "message_preview_12chars": "XXGYQH9k0JIe",
        "message_words_6bit": [
          33,
          33,
          16,
          34,
          26,
          17,
          9,
          46,
          0,
          19,
          18,
          40
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_5",
      "info87_bits": [
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100001100001010000100010011010010001001001101110000000010011010010101000000000010010000",
      "info87_llr": [
        -0.108292,
        -0.0,
        3.374406,
        -0.0,
        -0.0,
        -1.157751,
        -3.905997,
        -0.0,
        1.772239,
        0.561701,
        -0.0,
        -0.169182,
        1.927965,
        -3.053047,
        -0.0,
        1.731499,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        -0.0,
        -0.0,
        -3.206228,
        -0.0,
        -0.0,
        -0.223255,
        -0.390353,
        -0.0,
        -2.945828,
        -0.0,
        -0.0,
        -3.289909,
        -0.0,
        1.319124,
        -0.0,
        -1.988467,
        -0.0,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -1.016879,
        -3.498287,
        -0.0,
        -0.634639,
        -3.577036,
        -1.872055,
        -0.0,
        1.829154,
        -0.0,
        -0.0,
        4.373506,
        0.741094,
        -0.0,
        -0.0,
        -3.693185,
        -0.0,
        -0.0,
        -1.526605,
        -2.735424,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -3.705281,
        -0.0,
        -1.521969,
        -0.0,
        -1.085254,
        -0.0,
        -0.0,
        4.733609,
        -0.0,
        -0.0,
        1.535585,
        3.960953,
        -0.0,
        2.469197,
        2.365317,
        -2.143171,
        -0.0,
        -0.0,
        -1.918928,
        -0.0,
        -0.0,
        4.120689,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        4,
        7,
        10,
        14,
        16,
        17,
        19,
        20,
        21,
        23,
        24,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 2,
        "crc_match": false,
        "received_crc12": 144,
        "computed_crc12": 432,
        "message_preview_12chars": "XXGYQH9k0JIe",
        "message_words_6bit": [
          33,
          33,
          16,
          34,
          26,
          17,
          9,
          46,
          0,
          19,
          18,
          40
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_4",
      "info87_bits": [
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100001100001010000100010011010010001001001101110000000010011010010101000000000010010000",
      "info87_llr": [
        -0.108292,
        -0.0,
        3.374406,
        -0.0,
        -0.0,
        -1.157751,
        -3.905997,
        -0.0,
        1.772239,
        0.561701,
        -0.0,
        -0.169182,
        1.927965,
        -3.053047,
        -0.0,
        1.731499,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        -0.0,
        -0.0,
        -3.206228,
        -0.0,
        -0.0,
        -0.223255,
        -0.390353,
        -0.0,
        -2.945828,
        -0.0,
        -0.0,
        -3.289909,
        -0.0,
        1.319124,
        -0.0,
        -1.988467,
        -0.0,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -1.016879,
        -3.498287,
        -0.0,
        -0.634639,
        -3.577036,
        -1.872055,
        -0.0,
        1.829154,
        -0.0,
        -0.0,
        4.373506,
        0.741094,
        -0.0,
        -0.0,
        -3.693185,
        -0.0,
        -0.0,
        -1.526605,
        -2.735424,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -3.705281,
        -0.0,
        -1.521969,
        -0.0,
        -1.085254,
        -0.0,
        -0.0,
        4.733609,
        -0.0,
        -0.0,
        1.535585,
        3.960953,
        -0.0,
        2.469197,
        2.365317,
        -2.143171,
        -0.0,
        -0.0,
        -1.918928,
        -0.0,
        -0.0,
        4.120689,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        4,
        7,
        10,
        14,
        16,
        17,
        19,
        20,
        21,
        23,
        24,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 2,
        "crc_match": false,
        "received_crc12": 144,
        "computed_crc12": 432,
        "message_preview_12chars": "XXGYQH9k0JIe",
        "message_words_6bit": [
          33,
          33,
          16,
          34,
          26,
          17,
          9,
          46,
          0,
          19,
          18,
          40
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+no_interleaver+inverted_bits",
      "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_5",
      "info87_bits": [
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100001100001010000100010011010010001001001101110000000010011010010101000000000010010000",
      "info87_llr": [
        -0.108292,
        -0.0,
        3.374406,
        -0.0,
        -0.0,
        -1.157751,
        -3.905997,
        -0.0,
        1.772239,
        0.561701,
        -0.0,
        -0.169182,
        1.927965,
        -3.053047,
        -0.0,
        1.731499,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        -0.0,
        -0.0,
        -3.206228,
        -0.0,
        -0.0,
        -0.223255,
        -0.390353,
        -0.0,
        -2.945828,
        -0.0,
        -0.0,
        -3.289909,
        -0.0,
        1.319124,
        -0.0,
        -1.988467,
        -0.0,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -1.016879,
        -3.498287,
        -0.0,
        -0.634639,
        -3.577036,
        -1.872055,
        -0.0,
        1.829154,
        -0.0,
        -0.0,
        4.373506,
        0.741094,
        -0.0,
        -0.0,
        -3.693185,
        -0.0,
        -0.0,
        -1.526605,
        -2.735424,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -3.705281,
        -0.0,
        -1.521969,
        -0.0,
        -1.085254,
        -0.0,
        -0.0,
        4.733609,
        -0.0,
        -0.0,
        1.535585,
        3.960953,
        -0.0,
        2.469197,
        2.365317,
        -2.143171,
        -0.0,
        -0.0,
        -1.918928,
        -0.0,
        -0.0,
        4.120689,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        4,
        7,
        10,
        14,
        16,
        17,
        19,
        20,
        21,
        23,
        24,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 2,
        "crc_match": false,
        "received_crc12": 144,
        "computed_crc12": 432,
        "message_preview_12chars": "XXGYQH9k0JIe",
        "message_words_6bit": [
          33,
          33,
          16,
          34,
          26,
          17,
          9,
          46,
          0,
          19,
          18,
          40
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+no_interleaver+inverted_bits",
      "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_0",
      "info87_bits": [
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100100001001011001001010100010010000100000001011001010010110000010001000000100011010000",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 2256,
        "computed_crc12": 2328,
        "message_preview_12chars": "a9PAYGWBAM28",
        "message_words_6bit": [
          36,
          9,
          25,
          10,
          34,
          16,
          32,
          11,
          10,
          22,
          2,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_1",
      "info87_bits": [
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100100001001011001001010100010010000100000001011001010010110000010001000000100011010000",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 2256,
        "computed_crc12": 2328,
        "message_preview_12chars": "a9PAYGWBAM28",
        "message_words_6bit": [
          36,
          9,
          25,
          10,
          34,
          16,
          32,
          11,
          10,
          22,
          2,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_0",
      "info87_bits": [
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100100001001011001001010100010010000100000001011001010010110000010001000000100011010000",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 2256,
        "computed_crc12": 2328,
        "message_preview_12chars": "a9PAYGWBAM28",
        "message_words_6bit": [
          36,
          9,
          25,
          10,
          34,
          16,
          32,
          11,
          10,
          22,
          2,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse+inverted_bits",
      "variant": "mapped_lsb_within_each_tone+no_interleaver"
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_1",
      "info87_bits": [
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "100100001001011001001010100010010000100000001011001010010110000010001000000100011010000",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 2256,
        "computed_crc12": 2328,
        "message_preview_12chars": "a9PAYGWBAM28",
        "message_words_6bit": [
          36,
          9,
          25,
          10,
          34,
          16,
          32,
          11,
          10,
          22,
          2,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse+inverted_bits",
      "variant": "mapped_lsb_within_each_tone+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_1",
      "info87_bits": [
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1
      ],
      "info87_bitstring": "011111111111110111111111010111011101011111111111111111010101111101111111011111111111111",
      "info87_llr": [
        2.850545,
        -0.0,
        -1.526605,
        -0.0,
        -0.776213,
        -0.0,
        -0.222525,
        -0.0,
        -1.992279,
        -0.0,
        -1.657798,
        -0.0,
        -2.858267,
        -0.0,
        0.13445,
        -0.0,
        0.085653,
        -0.0,
        -0.169182,
        -0.0,
        -0.33483,
        -0.0,
        -2.022576,
        -0.0,
        1.201558,
        -0.0,
        0.324225,
        -0.0,
        -1.485755,
        -0.0,
        0.206968,
        -0.0,
        -1.250491,
        -0.0,
        2.773032,
        -0.0,
        1.069467,
        -0.0,
        -0.769926,
        -0.0,
        -1.988467,
        -0.0,
        -0.693121,
        -0.0,
        -3.346733,
        -0.0,
        -2.143171,
        -0.0,
        -3.003463,
        -0.0,
        -3.059876,
        -0.0,
        -1.110438,
        -0.0,
        0.619122,
        -0.0,
        1.829154,
        -0.0,
        0.048769,
        -0.0,
        -2.309424,
        -0.0,
        -0.0,
        -0.0,
        3.374406,
        -0.0,
        -1.861241,
        -0.0,
        -0.106356,
        -0.0,
        -1.872055,
        -0.0,
        1.472327,
        -0.0,
        -3.058484,
        -0.0,
        -0.17585,
        -0.0,
        -1.990849,
        -0.0,
        -1.085254,
        -0.0,
        -2.476891,
        -0.0,
        -0.739533,
        -0.0,
        -3.053047
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        5,
        7,
        9,
        11,
        13,
        15,
        17,
        19,
        21,
        23,
        25,
        27,
        29,
        31,
        33,
        35
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 4095,
        "computed_crc12": 1972,
        "message_preview_12chars": "V+t+NTV++Lz+",
        "message_words_6bit": [
          31,
          63,
          55,
          63,
          23,
          29,
          31,
          63,
          63,
          21,
          61,
          63
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_11",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "010000101000101010010010001110000000101100000100101100010000101111000000000010000101000",
      "info87_llr": [
        3.498287,
        -2.850545,
        0.0,
        -0.0,
        0.0,
        0.0,
        -0.561701,
        -0.085653,
        0.0,
        0.0,
        0.0,
        0.0,
        -3.960953,
        2.168738,
        0.0,
        0.0,
        -1.529958,
        0.803428,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.808594,
        0.776213,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.138352,
        0.33483,
        0.0,
        0.0,
        1.110438,
        3.524827,
        0.347086,
        0.018378,
        -0.881543,
        1.188864,
        -0.211677,
        -2.481224,
        1.248327,
        1.042438,
        1.849445,
        0.908162,
        1.308238,
        -2.935799,
        1.796303,
        1.639907,
        -4.373506,
        0.246256,
        -0.007244,
        -0.19028,
        0.0,
        0.0,
        2.390617,
        -1.62318,
        0.0,
        0.0,
        0.0,
        0.0,
        -4.120689,
        1.116338,
        0.0,
        0.0,
        -0.0,
        0.0,
        0.0,
        0.0,
        0.899359,
        1.300899,
        0.0,
        0.0,
        0.0,
        0.0,
        2.163889,
        1.150028,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.0,
        0.0,
        0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        2,
        3,
        4,
        5,
        8,
        9,
        10,
        11,
        14,
        15,
        18,
        19,
        20,
        21,
        24,
        25,
        26,
        27
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 1064,
        "computed_crc12": 20,
        "message_preview_12chars": "GegIE0i4iGl0",
        "message_words_6bit": [
          16,
          40,
          42,
          18,
          14,
          0,
          44,
          4,
          44,
          16,
          47,
          0
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_16",
      "info87_bits": [
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "001000100100001000001000010010000101000000101000000000000000010000100000100000001000000",
      "info87_llr": [
        3.498287,
        0.0,
        -0.013832,
        0.448101,
        0.0,
        0.0,
        -1.395544,
        0.0,
        1.758353,
        -4.373506,
        0.0,
        -0.056936,
        0.0,
        2.735424,
        -0.652059,
        0.0,
        0.0,
        0.152229,
        0.0,
        0.0,
        -1.030034,
        0.0,
        0.819224,
        0.0,
        0.145429,
        -4.733609,
        0.0,
        0.0,
        -1.047381,
        0.0,
        0.0,
        2.146517,
        0.0,
        -3.960953,
        0.0,
        -0.458009,
        1.059235,
        0.0,
        0.0,
        -0.045753,
        0.0,
        0.0,
        -4.120689,
        0.0,
        -2.143226,
        0.0,
        0.390353,
        2.616756,
        0.0,
        0.0,
        2.945828,
        0.0,
        0.081616,
        0.243127,
        0.0,
        2.647999,
        0.0,
        1.44351,
        3.141261,
        0.0,
        0.0,
        0.02114,
        0.0,
        0.0,
        2.784941,
        0.0,
        -0.561701,
        0.0,
        0.524636,
        3.218019,
        0.0,
        0.0,
        -0.568851,
        0.0,
        0.0,
        2.390617,
        0.0,
        2.043845,
        0.0,
        3.905997,
        -1.044299,
        0.0,
        1.157751,
        0.0,
        0.0,
        1.091224,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 64,
        "computed_crc12": 1052,
        "message_preview_12chars": "8a88I50e00GW",
        "message_words_6bit": [
          8,
          36,
          8,
          8,
          18,
          5,
          0,
          40,
          0,
          0,
          16,
          32
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_17",
      "info87_bits": [
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1
      ],
      "info87_bitstring": "111101111101110101011111010101011111111101110111111111110111111101011111011111110111111",
      "info87_llr": [
        -3.498287,
        -0.0,
        -1.021786,
        -0.0,
        0.464018,
        -0.0,
        -0.390353,
        -0.0,
        -1.566944,
        -0.0,
        1.259774,
        -0.0,
        -3.524827,
        -0.0,
        0.023285,
        -0.0,
        0.561701,
        -0.0,
        0.002598,
        -0.0,
        -0.020354,
        -0.0,
        -2.735424,
        -0.0,
        0.501516,
        -0.0,
        1.073259,
        -0.0,
        2.481224,
        -0.0,
        0.683867,
        -0.0,
        -1.391345,
        -0.0,
        -1.220618,
        -0.0,
        -0.008072,
        -0.0,
        -1.300899,
        -0.0,
        1.093835,
        -0.0,
        -2.669637,
        -0.0,
        4.733609,
        -0.0,
        -1.741001,
        -0.0,
        -3.698812,
        -0.0,
        -1.82139,
        -0.0,
        -0.37353,
        -0.0,
        -1.150028,
        -0.0,
        1.009348,
        -0.0,
        -0.044495,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -0.0,
        2.127129,
        -0.0,
        1.620345,
        -0.0,
        -0.152229,
        -0.0,
        -0.093507,
        -0.0,
        2.016827,
        -0.0,
        -3.799079,
        -0.0,
        -0.14813,
        -0.0,
        -2.816924,
        -0.0,
        0.006626,
        -0.0,
        -2.118541,
        -0.0,
        -1.157751,
        -0.0,
        -1.412677
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        5,
        7,
        9,
        11,
        13,
        15,
        17,
        19,
        21,
        23,
        25,
        27,
        29,
        31,
        33,
        35
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 4031,
        "computed_crc12": 1910,
        "message_preview_12chars": "zzrVLVzt+tzV",
        "message_words_6bit": [
          61,
          61,
          53,
          31,
          21,
          31,
          61,
          55,
          63,
          55,
          61,
          31
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_1",
      "info87_bits": [
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1
      ],
      "info87_bitstring": "011111111111110111111111010111011101011111111111111111010101111101111111011111111111111",
      "info87_llr": [
        2.850545,
        -0.0,
        -1.526605,
        -0.0,
        -0.776213,
        -0.0,
        -0.222525,
        -0.0,
        -1.992279,
        -0.0,
        -1.657798,
        -0.0,
        -2.858267,
        -0.0,
        0.13445,
        -0.0,
        0.085653,
        -0.0,
        -0.169182,
        -0.0,
        -0.33483,
        -0.0,
        -2.022576,
        -0.0,
        1.201558,
        -0.0,
        0.324225,
        -0.0,
        -1.485755,
        -0.0,
        0.206968,
        -0.0,
        -1.250491,
        -0.0,
        2.773032,
        -0.0,
        1.069467,
        -0.0,
        -0.769926,
        -0.0,
        -1.988467,
        -0.0,
        -0.693121,
        -0.0,
        -3.346733,
        -0.0,
        -2.143171,
        -0.0,
        -3.003463,
        -0.0,
        -3.059876,
        -0.0,
        -1.110438,
        -0.0,
        0.619122,
        -0.0,
        1.829154,
        -0.0,
        0.048769,
        -0.0,
        -2.309424,
        -0.0,
        -0.0,
        -0.0,
        3.374406,
        -0.0,
        -1.861241,
        -0.0,
        -0.106356,
        -0.0,
        -1.872055,
        -0.0,
        1.472327,
        -0.0,
        -3.058484,
        -0.0,
        -0.17585,
        -0.0,
        -1.990849,
        -0.0,
        -1.085254,
        -0.0,
        -2.476891,
        -0.0,
        -0.739533,
        -0.0,
        -3.053047
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        5,
        7,
        9,
        11,
        13,
        15,
        17,
        19,
        21,
        23,
        25,
        27,
        29,
        31,
        33,
        35
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 4095,
        "computed_crc12": 1972,
        "message_preview_12chars": "V+t+NTV++Lz+",
        "message_words_6bit": [
          31,
          63,
          55,
          63,
          23,
          29,
          31,
          63,
          63,
          21,
          61,
          63
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_11",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "010000101000101010010010001110000000101100000100101100010000101111000000000010000101000",
      "info87_llr": [
        3.498287,
        -2.850545,
        0.0,
        -0.0,
        0.0,
        0.0,
        -0.561701,
        -0.085653,
        0.0,
        0.0,
        0.0,
        0.0,
        -3.960953,
        2.168738,
        0.0,
        0.0,
        -1.529958,
        0.803428,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.808594,
        0.776213,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.138352,
        0.33483,
        0.0,
        0.0,
        1.110438,
        3.524827,
        0.347086,
        0.018378,
        -0.881543,
        1.188864,
        -0.211677,
        -2.481224,
        1.248327,
        1.042438,
        1.849445,
        0.908162,
        1.308238,
        -2.935799,
        1.796303,
        1.639907,
        -4.373506,
        0.246256,
        -0.007244,
        -0.19028,
        0.0,
        0.0,
        2.390617,
        -1.62318,
        0.0,
        0.0,
        0.0,
        0.0,
        -4.120689,
        1.116338,
        0.0,
        0.0,
        -0.0,
        0.0,
        0.0,
        0.0,
        0.899359,
        1.300899,
        0.0,
        0.0,
        0.0,
        0.0,
        2.163889,
        1.150028,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.0,
        0.0,
        0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        2,
        3,
        4,
        5,
        8,
        9,
        10,
        11,
        14,
        15,
        18,
        19,
        20,
        21,
        24,
        25,
        26,
        27
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 1064,
        "computed_crc12": 20,
        "message_preview_12chars": "GegIE0i4iGl0",
        "message_words_6bit": [
          16,
          40,
          42,
          18,
          14,
          0,
          44,
          4,
          44,
          16,
          47,
          0
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_16",
      "info87_bits": [
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "001000100100001000001000010010000101000000101000000000000000010000100000100000001000000",
      "info87_llr": [
        3.498287,
        0.0,
        -0.013832,
        0.448101,
        0.0,
        0.0,
        -1.395544,
        0.0,
        1.758353,
        -4.373506,
        0.0,
        -0.056936,
        0.0,
        2.735424,
        -0.652059,
        0.0,
        0.0,
        0.152229,
        0.0,
        0.0,
        -1.030034,
        0.0,
        0.819224,
        0.0,
        0.145429,
        -4.733609,
        0.0,
        0.0,
        -1.047381,
        0.0,
        0.0,
        2.146517,
        0.0,
        -3.960953,
        0.0,
        -0.458009,
        1.059235,
        0.0,
        0.0,
        -0.045753,
        0.0,
        0.0,
        -4.120689,
        0.0,
        -2.143226,
        0.0,
        0.390353,
        2.616756,
        0.0,
        0.0,
        2.945828,
        0.0,
        0.081616,
        0.243127,
        0.0,
        2.647999,
        0.0,
        1.44351,
        3.141261,
        0.0,
        0.0,
        0.02114,
        0.0,
        0.0,
        2.784941,
        0.0,
        -0.561701,
        0.0,
        0.524636,
        3.218019,
        0.0,
        0.0,
        -0.568851,
        0.0,
        0.0,
        2.390617,
        0.0,
        2.043845,
        0.0,
        3.905997,
        -1.044299,
        0.0,
        1.157751,
        0.0,
        0.0,
        1.091224,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 64,
        "computed_crc12": 1052,
        "message_preview_12chars": "8a88I50e00GW",
        "message_words_6bit": [
          8,
          36,
          8,
          8,
          18,
          5,
          0,
          40,
          0,
          0,
          16,
          32
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_17",
      "info87_bits": [
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1
      ],
      "info87_bitstring": "111101111101110101011111010101011111111101110111111111110111111101011111011111110111111",
      "info87_llr": [
        -3.498287,
        -0.0,
        -1.021786,
        -0.0,
        0.464018,
        -0.0,
        -0.390353,
        -0.0,
        -1.566944,
        -0.0,
        1.259774,
        -0.0,
        -3.524827,
        -0.0,
        0.023285,
        -0.0,
        0.561701,
        -0.0,
        0.002598,
        -0.0,
        -0.020354,
        -0.0,
        -2.735424,
        -0.0,
        0.501516,
        -0.0,
        1.073259,
        -0.0,
        2.481224,
        -0.0,
        0.683867,
        -0.0,
        -1.391345,
        -0.0,
        -1.220618,
        -0.0,
        -0.008072,
        -0.0,
        -1.300899,
        -0.0,
        1.093835,
        -0.0,
        -2.669637,
        -0.0,
        4.733609,
        -0.0,
        -1.741001,
        -0.0,
        -3.698812,
        -0.0,
        -1.82139,
        -0.0,
        -0.37353,
        -0.0,
        -1.150028,
        -0.0,
        1.009348,
        -0.0,
        -0.044495,
        -0.0,
        -3.141261,
        -0.0,
        -0.0,
        -0.0,
        2.127129,
        -0.0,
        1.620345,
        -0.0,
        -0.152229,
        -0.0,
        -0.093507,
        -0.0,
        2.016827,
        -0.0,
        -3.799079,
        -0.0,
        -0.14813,
        -0.0,
        -2.816924,
        -0.0,
        0.006626,
        -0.0,
        -2.118541,
        -0.0,
        -1.157751,
        -0.0,
        -1.412677
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        3,
        5,
        7,
        9,
        11,
        13,
        15,
        17,
        19,
        21,
        23,
        25,
        27,
        29,
        31,
        33,
        35
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 4031,
        "computed_crc12": 1910,
        "message_preview_12chars": "zzrVLVzt+tzV",
        "message_words_6bit": [
          61,
          61,
          53,
          31,
          21,
          31,
          61,
          55,
          63,
          55,
          61,
          31
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_10",
      "info87_bits": [
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1
      ],
      "info87_bitstring": "010111101111101010010010001110111111101011111011101111010111101000111111111010111101111",
      "info87_llr": [
        3.374406,
        -2.783982,
        2.850545,
        -1.23885,
        -1.119645,
        -1.250491,
        -1.085254,
        -0.15512,
        0.085653,
        -1.992279,
        -1.828022,
        -3.003463,
        -1.988467,
        1.472327,
        -2.168738,
        1.201558,
        -0.803428,
        1.529958,
        1.829154,
        -1.423568,
        1.998801,
        1.302908,
        -0.776213,
        0.808594,
        1.731499,
        1.069467,
        -0.106356,
        -0.739719,
        -0.33483,
        0.138352,
        -1.918928,
        -1.110438,
        -0.739533,
        -0.17585,
        -0.166239,
        -2.858267,
        -0.223255,
        0.211677,
        -3.346733,
        2.423703,
        -1.46508,
        -1.485755,
        -1.526605,
        -1.308238,
        -2.309424,
        2.773032,
        -1.861241,
        -1.922243,
        -0.169182,
        0.021206,
        -0.246256,
        -3.059876,
        -2.476891,
        -2.539972,
        2.469197,
        -1.657798,
        1.62318,
        -0.731184,
        -0.693121,
        -3.058484,
        -0.634639,
        0.324225,
        -1.116338,
        0.971153,
        0.048769,
        0.069403,
        -1.872055,
        -0.899359,
        -0.222525,
        -1.499435,
        -0.865074,
        -0.769926,
        -3.053047,
        -2.163889,
        -2.022576,
        0.13445,
        -0.077644,
        0.619122,
        -2.143171,
        -1.990849,
        -3.22599,
        -0.599103,
        0.206968,
        -0.711812,
        -0.0,
        -0.0,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        84,
        85,
        86,
        49,
        64,
        65,
        76,
        8,
        26,
        75,
        29,
        7,
        34,
        48,
        33,
        82,
        37,
        68
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 1519,
        "computed_crc12": 1952,
        "message_preview_12chars": "NlgIE+hxlNe+",
        "message_words_6bit": [
          23,
          47,
          42,
          18,
          14,
          63,
          43,
          59,
          47,
          23,
          40,
          63
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+no_interleaver+inverted_bits",
      "variant": "mapped_raw_msb+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_12",
      "info87_bits": [
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0
      ],
      "info87_bitstring": "111011011111111111110111111011111010111111111111101011111100111001110111011100111111110",
      "info87_llr": [
        -2.392607,
        -0.0,
        -0.0,
        0.947442,
        -0.981758,
        -0.0,
        1.731499,
        -0.0,
        -0.570227,
        -0.0,
        -0.0,
        -0.83549,
        -0.0,
        -0.059436,
        -0.989774,
        -0.0,
        -3.066475,
        -0.0,
        -0.0,
        -0.79914,
        0.892028,
        0.0,
        -0.731184,
        -0.0,
        -0.505468,
        -0.0,
        -0.0,
        -0.104773,
        -0.0,
        -2.37551,
        -0.905535,
        -0.0,
        -0.0,
        1.496118,
        -1.004262,
        0.0,
        -0.0,
        -0.763633,
        -0.0,
        -0.190193,
        -0.0,
        -0.357632,
        -0.040023,
        -0.0,
        -1.499435,
        -0.0,
        -0.0,
        -0.465809,
        -0.0,
        0.249701,
        -0.560106,
        -0.0,
        -0.0,
        0.109656,
        -0.0,
        -1.393061,
        -0.0,
        -0.309529,
        1.025822,
        -0.0,
        -0.223255,
        -0.0,
        -0.0,
        1.021661,
        -0.0,
        -0.55266,
        -1.004262,
        0.0,
        1.145961,
        -0.0,
        -0.0,
        -0.150061,
        -0.0,
        -0.357632,
        -0.0,
        -3.059876,
        0.771977,
        -0.0,
        -0.0,
        -0.465809,
        -0.0,
        -0.0,
        -0.560106,
        -0.0,
        -1.23885,
        -0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        2,
        5,
        7,
        9,
        10,
        12,
        15,
        17,
        18,
        21,
        23,
        25,
        26,
        28,
        31,
        32,
        35
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 2558,
        "computed_crc12": 3348,
        "message_preview_12chars": "xV+txw++hyvt",
        "message_words_6bit": [
          59,
          31,
          63,
          55,
          59,
          58,
          63,
          63,
          43,
          60,
          57,
          55
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_13",
      "info87_bits": [
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "001000000000110000000000111011001011001000000000000000111000000011111000001000000000000",
      "info87_llr": [
        2.392607,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        3.066475,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.965357,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.707306,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -1.145961,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.23885,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.499435,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.223255,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        2.564815,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -2.403098,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -1.731499,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.731184,
        -0.0,
        -0.0,
        0.0,
        0.0,
        0.0,
        0.014992,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        2.046008,
        0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        2,
        3,
        4,
        5,
        7,
        8,
        9,
        10,
        11,
        13,
        14,
        15,
        16,
        17,
        19,
        20,
        21
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 0,
        "computed_crc12": 1690,
        "message_preview_12chars": "80m0xB800u3u",
        "message_words_6bit": [
          8,
          0,
          48,
          0,
          59,
          11,
          8,
          0,
          0,
          56,
          3,
          56
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+no_interleaver",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_14",
      "info87_bits": [
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "110000000000001000000000111011110000110000000000000000111011000011001000110000000000000",
      "info87_llr": [
        -3.374406,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.872055,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.17585,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.246256,
        -0.0,
        -0.0,
        0.0,
        0.0,
        0.0,
        -1.529958,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.206968,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -1.069467,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.693121,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.992279,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.13445,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.526605,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.861241,
        -0.0,
        -0.0,
        0.0,
        0.0,
        0.0,
        -1.472327,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.990849,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        1.918928,
        0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        2,
        3,
        4,
        5,
        7,
        8,
        9,
        10,
        11,
        13,
        14,
        15,
        16,
        17,
        19,
        20,
        21
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 0,
        "computed_crc12": 574,
        "message_preview_12chars": "m080xmm00x38",
        "message_words_6bit": [
          48,
          0,
          8,
          0,
          59,
          48,
          48,
          0,
          0,
          59,
          3,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_msb_input+no_interleaver",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_15",
      "info87_bits": [
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "100000000001000000000000101001000000110000000000000000000100000000000000000000000001000",
      "info87_llr": [
        -0.069403,
        0.33483,
        3.058484,
        0.0,
        0.0,
        3.698812,
        0.0,
        0.0,
        0.0,
        2.945828,
        3.346733,
        -1.529958,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.077644,
        0.0,
        0.166239,
        -0.561701,
        0.0,
        -1.62318,
        2.022576,
        0.0,
        -0.296855,
        0.0,
        0.711812,
        0.0,
        1.485755,
        0.0,
        0.0,
        -4.120689,
        -1.520616,
        0.0,
        1.423568,
        0.0,
        3.524827,
        0.0,
        0.0,
        3.498287,
        0.0,
        0.769926,
        0.0,
        3.028813,
        0.246256,
        1.657798,
        1.150028,
        1.157751,
        0.0,
        0.0,
        0.0,
        3.17644,
        -0.808594,
        2.783982,
        0.0,
        0.0,
        0.899359,
        0.0,
        0.0,
        3.141261,
        2.168738,
        1.990849,
        0.0,
        0.0,
        1.308238,
        3.22599,
        0.106356,
        1.250491,
        0.0,
        0.0,
        0.0,
        2.476891,
        0.0,
        1.828022,
        1.922243,
        0.390353,
        0.0,
        0.0,
        -2.481224,
        0.0,
        0.0,
        0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        3,
        4,
        6,
        7,
        8,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        22,
        25,
        28,
        30
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 8,
        "computed_crc12": 1332,
        "message_preview_12chars": "W100f0m00400",
        "message_words_6bit": [
          32,
          1,
          0,
          0,
          41,
          0,
          48,
          0,
          0,
          4,
          0,
          0
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_2",
      "info87_bits": [
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1
      ],
      "info87_bitstring": "110111011010111111111111101111111010111011011111111110111111101111011011011110111111101",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3581,
        "computed_crc12": 456,
        "message_preview_12chars": "tQ++lwxV-+lR",
        "message_words_6bit": [
          55,
          26,
          63,
          63,
          47,
          58,
          59,
          31,
          62,
          63,
          47,
          27
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "raw_msb+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_3",
      "info87_bits": [
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1
      ],
      "info87_bitstring": "110111011010111111111111101111111010111011011111111110111111101111011011011110111111101",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3581,
        "computed_crc12": 456,
        "message_preview_12chars": "tQ++lwxV-+lR",
        "message_words_6bit": [
          55,
          26,
          63,
          63,
          47,
          58,
          59,
          31,
          62,
          63,
          47,
          27
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_4",
      "info87_bits": [
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1
      ],
      "info87_bitstring": "110111011010111111111111101111111010111011011111111110111111101111011011011110111111101",
      "info87_llr": [
        -3.498287,
        -0.0,
        0.069403,
        -1.110438,
        -0.0,
        -0.0,
        1.529958,
        -0.0,
        -1.990849,
        4.373506,
        -0.0,
        -0.15512,
        -0.0,
        -2.735424,
        -1.485755,
        -0.0,
        -0.0,
        -0.152229,
        -0.0,
        -0.0,
        -1.657798,
        -0.0,
        -1.250491,
        -0.0,
        -0.899359,
        4.733609,
        -0.0,
        -0.0,
        -1.423568,
        -0.0,
        -0.0,
        -2.539972,
        -0.0,
        3.960953,
        -0.0,
        0.619122,
        -1.308238,
        -0.0,
        -0.0,
        0.138352,
        -0.0,
        -0.0,
        4.120689,
        -0.0,
        -2.783982,
        -0.0,
        -0.390353,
        -2.858267,
        -0.0,
        -0.0,
        -2.945828,
        -0.0,
        -0.711812,
        0.021206,
        -0.0,
        -3.003463,
        -0.0,
        -2.163889,
        -3.141261,
        -0.0,
        -0.0,
        1.069467,
        -0.0,
        -0.0,
        -3.058484,
        -0.0,
        0.561701,
        -0.0,
        -0.769926,
        0.211677,
        -0.0,
        -0.0,
        0.808594,
        -0.0,
        -0.0,
        -2.390617,
        -0.0,
        1.472327,
        -0.0,
        -3.905997,
        -1.922243,
        -0.0,
        -1.157751,
        -0.0,
        -0.0,
        0.324225,
        -0.0
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        4,
        5,
        7,
        10,
        12,
        15,
        16,
        18,
        19,
        21,
        23,
        26,
        27,
        29,
        30,
        32,
        34
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3581,
        "computed_crc12": 456,
        "message_preview_12chars": "tQ++lwxV-+lR",
        "message_words_6bit": [
          55,
          26,
          63,
          63,
          47,
          58,
          59,
          31,
          62,
          63,
          47,
          27
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse+inverted_bits",
      "variant": "mapped_lsb_within_each_tone+no_interleaver"
    }
  ],
  "outputs": {
    "post_ldpc_info87_runtime_export_json": "/decoders/js8_decoder/runtime/step85_post_ldpc_info87_window2/step61_post_ldpc_info87_runtime_export.json"
  },
  "warnings": [
    "This is still a diagnostic runtime export, not a final JS8 text decoder.",
    "Step61 patches the runtime LDPC probes to expose post-LDPC info87 rows and source-index context for the next reorder/whitening alignment step."
  ],
  "next_action": "If best_distance is 0, implement source-confirmed message174 text unpack. If best_distance remains >0, build Step62 to test source-derived deinterleaver/whitening index maps against these exact runtime rows."
}
