{
  "ok": true,
  "mode": "JS8",
  "tool": "webftr-js8-fec-candidate-export",
  "tool_version": "step32-anchored-candidate-fast-export-guard",
  "input_wav": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
  "rx_only": true,
  "safety": {
    "tx": false,
    "ptt": false,
    "tune": false,
    "send": false,
    "js8call_runtime_control": false
  },
  "implementation_stage": "step32_profile_anchor_candidate_export_no_message_unpack",
  "selected_profile": {},
  "profile_selection_source": "profile_scan_json_prefer_js8",
  "profile_scan_json": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_profile_scan_output.json",
  "prefer_js8_realistic_profile": true,
  "nsps_used": 6192,
  "nsps_is_js8_realistic": true,
  "wav": {
    "path": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
    "channels": 1,
    "sample_rate": 12000,
    "sample_width_bytes": 2,
    "frames": 720000,
    "duration_seconds": 60.0,
    "rms_dbfs": -9.13,
    "peak_dbfs": -0.72,
    "clipped": false
  },
  "sync_candidate": {
    "start_sample": 0,
    "start_seconds": 0.0,
    "base_freq_hz": 1025.0,
    "tone_spacing_hz": 1.937984,
    "nsps": 6192,
    "candidate_score": 7.04,
    "costas_hits": 1,
    "avg_margin_db": -1.68
  },
  "frame_candidate": {
    "input_symbol_count": 96,
    "excluded_costas_symbol_count": 0,
    "detected_costas_blocks": [],
    "data_symbol_count_available": 96,
    "data_symbol_count_used": 58,
    "expected_data_symbols_candidate": 58,
    "costas_policy": "js8_leading_only"
  },
  "fec_input_summary": {
    "soft_bit_count": 174,
    "missing_soft_bits": 0,
    "complete_ldpc_input_candidate": true,
    "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely, MSB-first candidate"
  },
  "anchor_context": null,
  "variant_count": 5,
  "selected_variant": {
    "name": "raw_msb_symbol_order",
    "rank_score": 127.389188,
    "complete_174bit_candidate": true,
    "hard_bits_sha256_16": "aa237514554a5da8",
    "hard_weight_174": 42,
    "llr_stats": {
      "count": 174,
      "avg_abs": 2.347297,
      "min_abs": 0.029594,
      "max_abs": 4.31172,
      "positive": 133,
      "negative": 41,
      "zero": 0
    }
  },
  "variants": [
    {
      "name": "raw_msb_symbol_order",
      "description": "Current Step7/8 FEC bridge: Costas-stripped symbols, MSB-first tone bits.",
      "bit_count": 174,
      "llr_count": 174,
      "complete_174bit_candidate": true,
      "hard_bits_174": "101101101000000000000101001000000000000000000000000010010010000011011010010001001000001101010000010001010000000001010000000000000000001010000010001000010101001000010100010101",
      "hard_bits_sha256_16": "aa237514554a5da8",
      "hard_weight_174": 42,
      "llr_full_174": [
        -1.396628,
        1.410553,
        -2.41321,
        -0.360653,
        1.362318,
        -3.052981,
        -0.029594,
        0.699307,
        -0.217716,
        1.30745,
        -0.061966,
        1.164758,
        3.555709,
        2.938852,
        3.676605,
        2.884682,
        2.169718,
        1.312319,
        2.283163,
        2.880758,
        2.448313,
        -0.383479,
        0.04658,
        -0.368908,
        3.097415,
        3.195326,
        -2.619625,
        3.944404,
        2.428853,
        1.446456,
        4.173817,
        4.159912,
        4.127261,
        4.160047,
        4.153065,
        3.986903,
        4.176704,
        4.162562,
        4.136461,
        4.026736,
        3.95259,
        3.894067,
        4.012831,
        3.816259,
        2.145986,
        1.320374,
        0.652631,
        0.838993,
        0.96535,
        1.902541,
        1.691451,
        3.479368,
        -1.703122,
        1.877442,
        3.440581,
        -3.839483,
        3.713552,
        2.169,
        -2.181074,
        2.160328,
        2.914693,
        2.990564,
        2.994918,
        2.238077,
        -1.58826,
        -1.11363,
        1.381106,
        0.643602,
        -1.648215,
        3.364301,
        -1.870267,
        2.626728,
        2.293834,
        -1.862337,
        1.965975,
        2.136822,
        1.554042,
        0.100571,
        3.213602,
        2.416474,
        -0.186626,
        3.458546,
        2.392061,
        2.783177,
        2.316949,
        2.706516,
        -2.207322,
        -0.574722,
        0.592245,
        -1.25453,
        2.428594,
        -1.278227,
        2.793268,
        3.045272,
        3.275052,
        2.650291,
        3.485834,
        -3.180713,
        3.409464,
        2.527218,
        1.355412,
        -1.267725,
        3.00931,
        -1.456676,
        3.880352,
        3.725581,
        3.779058,
        1.052726,
        4.111317,
        2.97036,
        1.679701,
        2.0033,
        2.039419,
        -2.230305,
        2.732389,
        -2.818549,
        2.288786,
        4.168607,
        4.170407,
        4.143849,
        4.165879,
        4.170141,
        4.151294,
        4.169206,
        4.144955,
        4.092016,
        4.16402,
        4.131948,
        4.129186,
        4.154576,
        4.102966,
        3.591843,
        1.184399,
        1.450243,
        -1.080448,
        2.754003,
        -0.198239,
        0.246935,
        4.31172,
        0.830568,
        2.49241,
        0.580772,
        -0.496341,
        0.288153,
        2.838707,
        2.861479,
        -0.690814,
        2.311878,
        0.629658,
        0.203427,
        1.973168,
        -1.975915,
        1.968594,
        -0.45403,
        1.876816,
        -0.525517,
        3.52717,
        2.919398,
        -1.370062,
        3.788859,
        3.429702,
        2.657553,
        1.866078,
        -1.685404,
        1.70544,
        -0.394664,
        0.513912,
        0.447295,
        3.452478,
        -1.809619,
        1.607118,
        -1.684481,
        2.049321,
        -1.601644
      ],
      "llr_stats": {
        "count": 174,
        "avg_abs": 2.347297,
        "min_abs": 0.029594,
        "max_abs": 4.31172,
        "positive": 133,
        "negative": 41,
        "zero": 0
      },
      "rank_score": 127.389188
    },
    {
      "name": "lsb_within_each_tone",
      "description": "Same symbols, but each 3-bit tone value reversed for bit-order comparison.",
      "bit_count": 174,
      "llr_count": 174,
      "complete_174bit_candidate": true,
      "hard_bits_174": "101101101000000000000101100000000000000000000000000010010010000110110010010100100000100101010000010100010000000100010000000000000000100010000010100000010101100000010001010101",
      "hard_bits_sha256_16": "c9eebc015cbfc7d5",
      "hard_weight_174": 42,
      "llr_full_174": [
        -1.396628,
        1.410553,
        -2.41321,
        -0.360653,
        1.362318,
        -3.052981,
        -0.029594,
        0.699307,
        -0.217716,
        1.30745,
        -0.061966,
        1.164758,
        3.555709,
        2.938852,
        3.676605,
        2.884682,
        2.169718,
        1.312319,
        2.283163,
        2.880758,
        2.448313,
        -0.383479,
        0.04658,
        -0.368908,
        3.097415,
        3.195326,
        -2.619625,
        3.944404,
        2.428853,
        1.446456,
        4.173817,
        4.159912,
        4.127261,
        4.160047,
        4.153065,
        3.986903,
        4.176704,
        4.162562,
        4.136461,
        4.026736,
        3.95259,
        3.894067,
        4.012831,
        3.816259,
        2.145986,
        1.320374,
        0.652631,
        0.838993,
        0.96535,
        1.902541,
        1.691451,
        3.479368,
        -1.703122,
        1.877442,
        3.440581,
        -3.839483,
        3.713552,
        2.169,
        -2.181074,
        2.160328,
        2.914693,
        2.990564,
        2.994918,
        2.238077,
        -1.58826,
        -1.11363,
        1.381106,
        0.643602,
        -1.648215,
        3.364301,
        -1.870267,
        2.626728,
        2.293834,
        -1.862337,
        1.965975,
        2.136822,
        1.554042,
        0.100571,
        3.213602,
        2.416474,
        -0.186626,
        3.458546,
        2.392061,
        2.783177,
        2.316949,
        2.706516,
        -2.207322,
        -0.574722,
        0.592245,
        -1.25453,
        2.428594,
        -1.278227,
        2.793268,
        3.045272,
        3.275052,
        2.650291,
        3.485834,
        -3.180713,
        3.409464,
        2.527218,
        1.355412,
        -1.267725,
        3.00931,
        -1.456676,
        3.880352,
        3.725581,
        3.779058,
        1.052726,
        4.111317,
        2.97036,
        1.679701,
        2.0033,
        2.039419,
        -2.230305,
        2.732389,
        -2.818549,
        2.288786,
        4.168607,
        4.170407,
        4.143849,
        4.165879,
        4.170141,
        4.151294,
        4.169206,
        4.144955,
        4.092016,
        4.16402,
        4.131948,
        4.129186,
        4.154576,
        4.102966,
        3.591843,
        1.184399,
        1.450243,
        -1.080448,
        2.754003,
        -0.198239,
        0.246935,
        4.31172,
        0.830568,
        2.49241,
        0.580772,
        -0.496341,
        0.288153,
        2.838707,
        2.861479,
        -0.690814,
        2.311878,
        0.629658,
        0.203427,
        1.973168,
        -1.975915,
        1.968594,
        -0.45403,
        1.876816,
        -0.525517,
        3.52717,
        2.919398,
        -1.370062,
        3.788859,
        3.429702,
        2.657553,
        1.866078,
        -1.685404,
        1.70544,
        -0.394664,
        0.513912,
        0.447295,
        3.452478,
        -1.809619,
        1.607118,
        -1.684481,
        2.049321,
        -1.601644
      ],
      "llr_stats": {
        "count": 174,
        "avg_abs": 2.347297,
        "min_abs": 0.029594,
        "max_abs": 4.31172,
        "positive": 133,
        "negative": 41,
        "zero": 0
      },
      "rank_score": 119.389188
    },
    {
      "name": "reverse_symbol_order",
      "description": "Same 3-bit symbols in reverse order; diagnostic only.",
      "bit_count": 174,
      "llr_count": 174,
      "complete_174bit_candidate": true,
      "hard_bits_174": "101010100010000001101010000001010000010001000000000000000010001000000010001010000010101001000001001010010011011000010010010000000000000000000000000001101000000000000101101101",
      "hard_bits_sha256_16": "e0aaca7eeb47fb42",
      "hard_weight_174": 42,
      "llr_full_174": [
        -1.601644,
        2.049321,
        -1.684481,
        1.607118,
        -1.809619,
        3.452478,
        0.447295,
        0.513912,
        -0.394664,
        1.70544,
        -1.685404,
        1.866078,
        2.657553,
        3.429702,
        3.788859,
        -1.370062,
        2.919398,
        3.52717,
        -0.525517,
        1.876816,
        -0.45403,
        1.968594,
        -1.975915,
        1.973168,
        0.203427,
        0.629658,
        2.311878,
        -0.690814,
        2.861479,
        2.838707,
        0.288153,
        -0.496341,
        0.580772,
        2.49241,
        0.830568,
        4.31172,
        0.246935,
        -0.198239,
        2.754003,
        -1.080448,
        1.450243,
        1.184399,
        3.591843,
        4.102966,
        4.154576,
        4.129186,
        4.131948,
        4.16402,
        4.092016,
        4.144955,
        4.169206,
        4.151294,
        4.170141,
        4.165879,
        4.143849,
        4.170407,
        4.168607,
        2.288786,
        -2.818549,
        2.732389,
        -2.230305,
        2.039419,
        2.0033,
        1.679701,
        2.97036,
        4.111317,
        1.052726,
        3.779058,
        3.725581,
        3.880352,
        -1.456676,
        3.00931,
        -1.267725,
        1.355412,
        2.527218,
        3.409464,
        -3.180713,
        3.485834,
        2.650291,
        3.275052,
        3.045272,
        2.793268,
        -1.278227,
        2.428594,
        -1.25453,
        0.592245,
        -0.574722,
        -2.207322,
        2.706516,
        2.316949,
        2.783177,
        2.392061,
        3.458546,
        -0.186626,
        2.416474,
        3.213602,
        0.100571,
        1.554042,
        2.136822,
        1.965975,
        -1.862337,
        2.293834,
        2.626728,
        -1.870267,
        3.364301,
        -1.648215,
        0.643602,
        1.381106,
        -1.11363,
        -1.58826,
        2.238077,
        2.994918,
        2.990564,
        2.914693,
        2.160328,
        -2.181074,
        2.169,
        3.713552,
        -3.839483,
        3.440581,
        1.877442,
        -1.703122,
        3.479368,
        1.691451,
        1.902541,
        0.96535,
        0.838993,
        0.652631,
        1.320374,
        2.145986,
        3.816259,
        4.012831,
        3.894067,
        3.95259,
        4.026736,
        4.136461,
        4.162562,
        4.176704,
        3.986903,
        4.153065,
        4.160047,
        4.127261,
        4.159912,
        4.173817,
        1.446456,
        2.428853,
        3.944404,
        -2.619625,
        3.195326,
        3.097415,
        -0.368908,
        0.04658,
        -0.383479,
        2.448313,
        2.880758,
        2.283163,
        1.312319,
        2.169718,
        2.884682,
        3.676605,
        2.938852,
        3.555709,
        1.164758,
        -0.061966,
        1.30745,
        -0.217716,
        0.699307,
        -0.029594,
        -3.052981,
        1.362318,
        -0.360653,
        -2.41321,
        1.410553,
        -1.396628
      ],
      "llr_stats": {
        "count": 174,
        "avg_abs": 2.347297,
        "min_abs": 0.029594,
        "max_abs": 4.31172,
        "positive": 133,
        "negative": 41,
        "zero": 0
      },
      "rank_score": 113.389188
    },
    {
      "name": "reverse_full_bitstream",
      "description": "Full hard-bit stream reversed; diagnostic only.",
      "bit_count": 174,
      "llr_count": 174,
      "complete_174bit_candidate": true,
      "hard_bits_174": "101010001010000100101010000100010000010100000000000000000010100000000010100010000010101100000100100010010110110000010010010000000000000000000000000100101000000000000101101101",
      "hard_bits_sha256_16": "586874e4d556ff00",
      "hard_weight_174": 42,
      "llr_full_174": [
        -1.601644,
        2.049321,
        -1.684481,
        1.607118,
        -1.809619,
        3.452478,
        0.447295,
        0.513912,
        -0.394664,
        1.70544,
        -1.685404,
        1.866078,
        2.657553,
        3.429702,
        3.788859,
        -1.370062,
        2.919398,
        3.52717,
        -0.525517,
        1.876816,
        -0.45403,
        1.968594,
        -1.975915,
        1.973168,
        0.203427,
        0.629658,
        2.311878,
        -0.690814,
        2.861479,
        2.838707,
        0.288153,
        -0.496341,
        0.580772,
        2.49241,
        0.830568,
        4.31172,
        0.246935,
        -0.198239,
        2.754003,
        -1.080448,
        1.450243,
        1.184399,
        3.591843,
        4.102966,
        4.154576,
        4.129186,
        4.131948,
        4.16402,
        4.092016,
        4.144955,
        4.169206,
        4.151294,
        4.170141,
        4.165879,
        4.143849,
        4.170407,
        4.168607,
        2.288786,
        -2.818549,
        2.732389,
        -2.230305,
        2.039419,
        2.0033,
        1.679701,
        2.97036,
        4.111317,
        1.052726,
        3.779058,
        3.725581,
        3.880352,
        -1.456676,
        3.00931,
        -1.267725,
        1.355412,
        2.527218,
        3.409464,
        -3.180713,
        3.485834,
        2.650291,
        3.275052,
        3.045272,
        2.793268,
        -1.278227,
        2.428594,
        -1.25453,
        0.592245,
        -0.574722,
        -2.207322,
        2.706516,
        2.316949,
        2.783177,
        2.392061,
        3.458546,
        -0.186626,
        2.416474,
        3.213602,
        0.100571,
        1.554042,
        2.136822,
        1.965975,
        -1.862337,
        2.293834,
        2.626728,
        -1.870267,
        3.364301,
        -1.648215,
        0.643602,
        1.381106,
        -1.11363,
        -1.58826,
        2.238077,
        2.994918,
        2.990564,
        2.914693,
        2.160328,
        -2.181074,
        2.169,
        3.713552,
        -3.839483,
        3.440581,
        1.877442,
        -1.703122,
        3.479368,
        1.691451,
        1.902541,
        0.96535,
        0.838993,
        0.652631,
        1.320374,
        2.145986,
        3.816259,
        4.012831,
        3.894067,
        3.95259,
        4.026736,
        4.136461,
        4.162562,
        4.176704,
        3.986903,
        4.153065,
        4.160047,
        4.127261,
        4.159912,
        4.173817,
        1.446456,
        2.428853,
        3.944404,
        -2.619625,
        3.195326,
        3.097415,
        -0.368908,
        0.04658,
        -0.383479,
        2.448313,
        2.880758,
        2.283163,
        1.312319,
        2.169718,
        2.884682,
        3.676605,
        2.938852,
        3.555709,
        1.164758,
        -0.061966,
        1.30745,
        -0.217716,
        0.699307,
        -0.029594,
        -3.052981,
        1.362318,
        -0.360653,
        -2.41321,
        1.410553,
        -1.396628
      ],
      "llr_stats": {
        "count": 174,
        "avg_abs": 2.347297,
        "min_abs": 0.029594,
        "max_abs": 4.31172,
        "positive": 133,
        "negative": 41,
        "zero": 0
      },
      "rank_score": 112.389188
    },
    {
      "name": "lab_mask_xor_preview",
      "description": "Deterministic lab-only XOR mask preview; not the real JS8 whitening polynomial.",
      "bit_count": 174,
      "llr_count": 174,
      "complete_174bit_candidate": true,
      "hard_bits_174": "001101011011010100111100110011010000101010111110100111010100111011100101110000111111101000110100110001000001001101000111010110110000010011101000010100101000100000000001001010",
      "hard_bits_sha256_16": "8760e03bd72092c3",
      "hard_weight_174": 81,
      "llr_full_174": [
        -1.396628,
        1.410553,
        -2.41321,
        -0.360653,
        1.362318,
        -3.052981,
        -0.029594,
        0.699307,
        -0.217716,
        1.30745,
        -0.061966,
        1.164758,
        3.555709,
        2.938852,
        3.676605,
        2.884682,
        2.169718,
        1.312319,
        2.283163,
        2.880758,
        2.448313,
        -0.383479,
        0.04658,
        -0.368908,
        3.097415,
        3.195326,
        -2.619625,
        3.944404,
        2.428853,
        1.446456,
        4.173817,
        4.159912,
        4.127261,
        4.160047,
        4.153065,
        3.986903,
        4.176704,
        4.162562,
        4.136461,
        4.026736,
        3.95259,
        3.894067,
        4.012831,
        3.816259,
        2.145986,
        1.320374,
        0.652631,
        0.838993,
        0.96535,
        1.902541,
        1.691451,
        3.479368,
        -1.703122,
        1.877442,
        3.440581,
        -3.839483,
        3.713552,
        2.169,
        -2.181074,
        2.160328,
        2.914693,
        2.990564,
        2.994918,
        2.238077,
        -1.58826,
        -1.11363,
        1.381106,
        0.643602,
        -1.648215,
        3.364301,
        -1.870267,
        2.626728,
        2.293834,
        -1.862337,
        1.965975,
        2.136822,
        1.554042,
        0.100571,
        3.213602,
        2.416474,
        -0.186626,
        3.458546,
        2.392061,
        2.783177,
        2.316949,
        2.706516,
        -2.207322,
        -0.574722,
        0.592245,
        -1.25453,
        2.428594,
        -1.278227,
        2.793268,
        3.045272,
        3.275052,
        2.650291,
        3.485834,
        -3.180713,
        3.409464,
        2.527218,
        1.355412,
        -1.267725,
        3.00931,
        -1.456676,
        3.880352,
        3.725581,
        3.779058,
        1.052726,
        4.111317,
        2.97036,
        1.679701,
        2.0033,
        2.039419,
        -2.230305,
        2.732389,
        -2.818549,
        2.288786,
        4.168607,
        4.170407,
        4.143849,
        4.165879,
        4.170141,
        4.151294,
        4.169206,
        4.144955,
        4.092016,
        4.16402,
        4.131948,
        4.129186,
        4.154576,
        4.102966,
        3.591843,
        1.184399,
        1.450243,
        -1.080448,
        2.754003,
        -0.198239,
        0.246935,
        4.31172,
        0.830568,
        2.49241,
        0.580772,
        -0.496341,
        0.288153,
        2.838707,
        2.861479,
        -0.690814,
        2.311878,
        0.629658,
        0.203427,
        1.973168,
        -1.975915,
        1.968594,
        -0.45403,
        1.876816,
        -0.525517,
        3.52717,
        2.919398,
        -1.370062,
        3.788859,
        3.429702,
        2.657553,
        1.866078,
        -1.685404,
        1.70544,
        -0.394664,
        0.513912,
        0.447295,
        3.452478,
        -1.809619,
        1.607118,
        -1.684481,
        2.049321,
        -1.601644
      ],
      "llr_stats": {
        "count": 174,
        "avg_abs": 2.347297,
        "min_abs": 0.029594,
        "max_abs": 4.31172,
        "positive": 133,
        "negative": 41,
        "zero": 0
      },
      "rank_score": 101.389188
    }
  ],
  "outputs": {
    "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
    "selected_bits_file": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.bits"
  },
  "decodes": [],
  "warnings": [
    "No JS8 text decode is expected in Step 32. Final real LDPC/FEC and Varicode/message unpack are not implemented yet.",
    "Costas7 scoring is a lab candidate extractor; real decoder validation requires actual JS8 WAV samples.",
    "No JS8 text decode is expected in Step 32. Final real LDPC/FEC and Varicode/message unpack are still not implemented.",
    "hard_bits_msb_candidate is a lab preview only; real JS8 requires deinterleaving, whitening and LDPC/FEC.",
    "Step 32 JS8 Costas guard uses leading-only Costas exclusion by default to preserve 58 data symbols / 174 soft bits on JS8Lab windows; full FT8 middle/trailing exclusion remains diagnostic-only.",
    "Step 32 prepares LDPC/FEC input candidates and an LDPC probe harness only; it does not yet run final real JS8 LDPC decode or unpack text.",
    "Step 32 does not decode JS8 text yet. It probes bit-order/interleaver/whitening candidates for future real LDPC/FEC integration.",
    "lab_mask_xor_preview is only a repeatable diagnostic mask, not a confirmed JS8 whitening implementation.",
    "Step 32 locks candidate export to JS8-realistic timing and reuses the selected profile sync anchor for FEC symbol extraction where available.",
    "It still does not perform real LDPC/FEC decode or message unpack.",
    "Next step can tune real JS8/FT8 LDPC matrix/deinterleaver/message unpack against this anchored candidate contract."
  ],
  "next_action": "Run collect-logs and upload the JS8Lab bundle. If selected_variant.complete_174bit_candidate is true, proceed to LDPC/deinterleaver/message-unpack tuning."
}
