[
  {
    "index": 1,
    "heading": "2026-04-07 02:50:46 AREA: X",
    "published_at": "2026-04-07 02:50:46",
    "area": "X",
    "message_id": "",
    "text": "ZCZC X_\n  _TC APR 2_\n _6\n_U_UUOF TINOSO CAPE\n6-7 METERS LOG AB_S_HMFM\nF_F_H_M_PCKC_YGMM_D_  P_GABR26.\nNNNN",
    "clean_text": "ZCZC X_\n_TC APR 2_\n_6\n_U_UUOF TINOSO CAPE\n6-7 METERS LOG AB_S_HMFM\nF_F_H_M_PCKC_YGMM_D_ P_GABR26.\nNNNN",
    "display_region_heading": "Unresolved B1 code X",
    "display_region_label": "B1 code X",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code X. Readable text says: 6-7 meters log ab s hmfm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "6-7 meters log ab s hmfm",
      "U uuof tinoso cape"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 2,
    "heading": "2026-04-07 02:31:24 AREA: V",
    "published_at": "2026-04-07 02:31:24",
    "area": "V",
    "message_id": "",
    "text": "ZCZC VA63_86$6646102/71 -4 266_+ 183/26 \nTHAMES__0*_._'!7_+0.___5_8_ ! 1=0/2\n.,3 _27_-09.8N 002-33.5E, FOG SIGSMF_VG_G__DG_\nNNNN",
    "clean_text": "ZCZC VA63_86$6646102/71 -4 266_+ 183/26\nTHAMES__0*_._'!7_+0.___5_8_ ! 1=0/2\n.,3 _27_-09.8N 002-33.5E, FOG SIGSMF_VG_G__DG_\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "3 27 -09.8n 002-33.5e, fog sigsmf vg g dg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 3,
    "heading": "2026-04-07 02:30:57 AREA: V",
    "published_at": "2026-04-07 02:30:57",
    "area": "V",
    "message_id": "",
    "text": "ZCZC VA6+_91638'____*1__0$_$4_02+ 215_\nGMDSS.\n___6-71_\n(__! =_:3 !6+__':_!*2$'36 '853 ____1)9!331-24.5E OFF AIR.\nNNNN",
    "clean_text": "ZCZC VA6+_91638'____*1__0$_$4_02+ 215_\nGMDSS.\n___6-71_\n(__! =_:3 !6+__':_!*2$'36 '853 ____1)9!331-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code V",
    "display_region_label": "B1 code V",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code V. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 5,
    "heading": "2026-04-07 02:25:10 AREA: F",
    "published_at": "2026-04-07 02:25:10",
    "area": "F",
    "message_id": "FM",
    "text": "ZCZC FM\n_FPNCGBCMK__4 269___+_+*_-0=:_\n:9-*_'._3_3_4_.,_0+_/_8589,)\nSOUTHERN ADRIATFCMJPM\n_IE70__ZD_ULL__AN UNTIL 31 DPXM_U_Q__E_LBJ_TO 24.0,285$ 1_'89, 9!._!+'.$+'11_11_(7__/_ __8:__'5, WILL BP_N_ FRONT OF TORRE X_SSZM_FY_EBECIY_G_A) 4_.0_*917__)'\n_/\n 39' 869''N - 18 03' 6_0 39' 02''N -.1!.YJBKEQPHBHU_BE_MQB___BKBXGBGEQOVT_DG_C_AYN_G_PMJR_ZJJGMBX_\nV__VVFX__- 18 01' 12''E.\nTRANSIT, __$+__0.(.____1(4_(4B_Q__\nJ__F_I_LDFFFC_SS___\nZXA_MC_FY_N_U_UMG_H_MYM\n_MONDOS_ZMYWFZONON_ZJHSM_YF_ML_MO_V_Z_KEOKQO_BE___GWY_K___1KBKOKBN_(_=)$=0_'.!*'29,!_1,_.6_.Y_UG_M_MXCOC_,+_97'3.6.\n6 NO_EB_G_QA1_*_,_\n\n,,,,\n\n__4_T_N_F_K\nCF\n\n_C_L_K_ZCZC",
    "clean_text": "ZCZC FM\n_FPNCGBCMK__4 269___+_+*_-0=:_\n:9-*_'._3_3_4_.,_0+_/_8589,)\nSOUTHERN ADRIATFCMJPM\n_IE70__ZD_ULL__AN UNTIL 31 DPXM_U_Q__E_LBJ_TO 24.0,285$ 1_'89, 9!._!+'.$+'11_11_(7__/_ __8:__'5, WILL BP_N_ FRONT OF TORRE X_SSZM_FY_EBECIY_G_A) 4_.0_*917__)'\n_/\n39' 869''N - 18 03' 6_0 39' 02''N -.1!.YJBKEQPHBHU_BE_MQB___BKBXGBGEQOVT_DG_C_AYN_G_PMJR_ZJJGMBX_\nV__VVFX__- 18 01' 12''E.\nTRANSIT, __$+__0.(.____1(4_(4B_Q__\nJ__F_I_LDFFFC_SS___\nZXA_MC_FY_N_U_UMG_H_MYM\n_MONDOS_ZMYWFZONON_ZJHSM_YF_ML_MO_V_Z_KEOKQO_BE___GWY_K___1KBKOKBN_(_=)$=0_'.!*'29,!_1,_.6_.Y_UG_M_MXCOC_,+_97'3.6.\n6 NO_EB_G_QA1_*_,_\n\n,,,,\n\n__4_T_N_F_K\nCF\n\n_C_L_K_ZCZC",
    "display_region_heading": "Unresolved B1 code F",
    "display_region_label": "B1 code F",
    "subject_label": "operational notice",
    "subject_code": "M",
    "decoded_summary": "operational notice for Unresolved B1 code F. Readable text says: Southern adriatfcmjpm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Southern adriatfcmjpm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 6,
    "heading": "2026-04-07 02:24:27 AREA: U",
    "published_at": "2026-04-07 02:24:27",
    "area": "U",
    "message_id": "",
    "text": "ZCZC UA8F_\nU_UMK__04 26\nMONDOLFO YWFZONO_A_QDK_BKKEGEOME Z__OKEO_GLRPG_GW\nW__U_CENTRAL ADRIATIC SEA - PY_J_XLIGHTHOUSE Z._\n*/(3(9YGILOSW_Z_LXKLSA_N__G_D_V!2__0_42 27.9'N - LO\n_XRBMEGQHN_I_U_KGWDEPPQK_KF_\n_\n\n\n\n\nZCZC",
    "clean_text": "ZCZC UA8F_\nU_UMK__04 26\nMONDOLFO YWFZONO_A_QDK_BKKEGEOME Z__OKEO_GLRPG_GW\nW__U_CENTRAL ADRIATIC SEA - PY_J_XLIGHTHOUSE Z._\n*/(3(9YGILOSW_Z_LXKLSA_N__G_D_V!2__0_42 27.9'N - LO\n_XRBMEGQHN_I_U_KGWDEPPQK_KF_\n_\n\nZCZC",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "ADRIATIC"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Italy - Adriatic Sea and central Italian coast. Readable text says: W u central adriatic sea - py j xlighthouse z. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "W u central adriatic sea - py j xlighthouse z"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 7,
    "heading": "2026-04-07 02:22:39 AREA: U",
    "published_at": "2026-04-07 02:22:39",
    "area": "U",
    "message_id": "UA81",
    "text": "ZCZC UA81\n062320 UTC APR 267+_+'++.2+2!+9,9,_+*_'._6!._ _T_E_GBY__KW REPETITION)\nSOUTHERN ADRIATIC SEA - OTRANTO.\nDAYS 01-02-07-08-09-10-13-14-15-16-17-_U UUU_UYON_CUFUZMGWM\nP_MG_YM6+_._FB_GSHMHZM_UPB_, WILL BE CARRIED OUT A\nFIRING\nMILITARY ACTIVITFP_MFC_JPMYPMFM_YZHMZ._*__+660._006!_*9___!6__.6_0_._)+:202.)_._$0._+'_+_!._+!_*_A. - 40 25'31''N - 18 15'30''E, B. - 40 30'20''N -.:!)=+_)*+_  7/ 5__(93/2=_V_KBM_BTU_\n_ RHHFEBCOPLVB_JGM_M FOK1__1_$__8_+4_8)_+0\n)=2__2 _3_*8_*___$$)$))_F. - 4_.__*HJJGBKLXT_LVG HHFX_E_BCBXGBXXQN _.\nSAILING_MG_DZRKEBCUB _ F\nF __\n\nNNNN",
    "clean_text": "ZCZC UA81\n062320 UTC APR 267+_+'++.2+2!+9,9,_+*_'._6!._ _T_E_GBY__KW REPETITION)\nSOUTHERN ADRIATIC SEA - OTRANTO.\nDAYS 01-02-07-08-09-10-13-14-15-16-17-_U UUU_UYON_CUFUZMGWM\nP_MG_YM6+_._FB_GSHMHZM_UPB_, WILL BE CARRIED OUT A\nFIRING\nMILITARY ACTIVITFP_MFC_JPMYPMFM_YZHMZ._*__+660._006!_*9___!6__.6_0_._)+:202.)_._$0._+'_+_!._+!_*_A. - 40 25'31''N - 18 15'30''E, B. - 40 30'20''N -.:!)=+_)*+_ 7/ 5__(93/2=_V_KBM_BTU_\n_ RHHFEBCOPLVB_JGM_M FOK1__1_$__8_+4_8)_+0\n)=2__2 _3_*8_*___$$)$))_F. - 4_.__*HJJGBKLXT_LVG HHFX_E_BCBXGBXXQN _.\nSAILING_MG_DZRKEBCUB _ F\nF __\n\nNNNN",
    "resolved_station_name": "Mondolfo",
    "resolved_country": "Italy",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea and central Italian coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "ADRIATIC",
      "OTRANTO"
    ],
    "display_region_heading": "Italy - Adriatic Sea and central Italian coast",
    "display_region_label": "Mondolfo, Italy",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: Military activitfp mfc jpmypmfm yzhmz. 660. 006! 9 !6 .6 0 . ) :202.) . $0. ' !. ! a. - 40 25'31''n - 18 15'30''e, b. - 40 30'20''n -.:!) ) 7/ 5 (93/2 v kbm btu. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Military activitfp mfc jpmypmfm yzhmz. 660. 006! 9 !6 .6 0 . ) :202.) . $0. ' !. ! a. - 40 25'31''n - 18 15'30''e, b. - 40 30'20''n -.:!) ) 7/ 5 (93/2 v kbm btu",
      "Days 01-02-07-08-09-10-13-14-15-16-17- u uuu uyon cufuzmgwm",
      "Southern adriatic sea - otranto"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 8,
    "heading": "2026-04-07 02:21:53 AREA: U",
    "published_at": "2026-04-07 02:21:53",
    "area": "U",
    "message_id": "UA80",
    "text": "ZCZC UA80\n067\n7MG_H_MYM\n_MONDOLO RADIO\n\nCOASTAL WARNING NR. 200/26 APR 05\nADRC_F_MJ_MHBKB_B_K_AY 05TH APR 2026 FROM 2000 UTC\nDUE TO LIMITED OPERATIONAL CAPABILITY INFORMATION SERVF_PONFJMZS_OVIDED IN VENICE VTS\nALL TRANSITING SHIPS BEWAYPONONONNIII_\nZCZC",
    "clean_text": "ZCZC UA80\n067\n7MG_H_MYM\n_MONDOLO RADIO\n\nCOASTAL WARNING NR. 200/26 APR 05\nADRC_F_MJ_MHBKB_B_K_AY 05TH APR 2026 FROM 2000 UTC\nDUE TO LIMITED OPERATIONAL CAPABILITY INFORMATION SERVF_PONFJMZS_OVIDED IN VENICE VTS\nALL TRANSITING SHIPS BEWAYPONONONNIII_\nZCZC",
    "display_region_heading": "Unresolved B1 code U",
    "display_region_label": "B1 code U",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code U. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Due to limited operational capability information servf ponfjmzs ovided in venice vts",
      "Coastal warning nr. 200/26 apr 05",
      "All transiting ships bewayponononniii"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-07 02:18:31 AREA: T",
    "published_at": "2026-04-07 02:18:31",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_EKU_9, 5_3 )!0.)888(33, 09*!_!+*.\n_.::__04')__\n/_03.586E\nSHIPPING IJMYP_CPJHPWMIII_MHZM_DZYMZ_BD_B__Q_B___=8:8,85_\nNNNN",
    "clean_text": "ZCZ_EKU_9, 5_3 )!0.)888(33, 09*!_!+*.\n_.::__04')__\n/_03.586E\nSHIPPING IJMYP_CPJHPWMIII_MHZM_DZYMZ_BD_B__Q_B___=8:8,85_\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 10,
    "heading": "2026-04-07 02:17:53 AREA: T",
    "published_at": "2026-04-07 02:17:53",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TA:+_,_7:__M_ SEP  \nZJHGJHPWPYW-__9_/25\n/9+*_02KC__0_\nCHFMZMHDPMJPIII_WMFMHDPM\nNITY \nOF\nH _G_HG_APENUHGPONGJWG)5_XXP_UWLWLWA__LMU_Y_IFSU_F_ SMZ_ALTQ\nKTHE VICINITY\nNNNN",
    "clean_text": "ZCZC TA:+_,_7:__M_ SEP\nZJHGJHPWPYW-__9_/25\n/9+*_02KC__0_\nCHFMZMHDPMJPIII_WMFMHDPM\nNITY\nOF\nH _G_HG_APENUHGPONGJWG)5_XXP_UWLWLWA__LMU_Y_IFSU_F_ SMZ_ALTQ\nKTHE VICINITY\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Chfmzmhdpmjpiii wmfmhdpm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Chfmzmhdpmjpiii wmfmhdpm",
      "Kthe vicinity"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 11,
    "heading": "2026-04-07 02:16:04 AREA: T",
    "published_at": "2026-04-07 02:16:04",
    "area": "T",
    "message_id": "",
    "text": "ZCZCVIU\n171_0MGB_MPZ_IQ_PWPYKU___/._: _KSEXP__+4__0$_7_+*._!_ ./VWMBMB_C__KACRDZZGDR\nBETWEEN FOLLZ_FM_ZZYWFHPJBH_DCNUXDT_002-31._0_09,__8_8( :_)(_9_\n_/_/2___/6_88:'9'_7=60\n1__03-09.75E\n51-19.+0.+0_,:,:_\n2___51-(9_0__\n,_E\n51-_0__)__2-51.09E \n\nHC_P _PONGMZM_DZYF_MWMFJ_B)__8_)8__./+6!7-3_12__4,//_E DISTANCE\nM_MTP_\nKB_B1_8633_.+__)2).'__!-_P_NZSF__65\n_9!!__-/-/-(___ 5-81_UTC MAR\nZZJHPWPYWFZM_JF_WPYM_P_EGEX_F_LE, 51-23.0___\n_U_UEHNOKQJ_EO_YPS_KSJZIIII_LI__ZCZC",
    "clean_text": "ZCZCVIU\n171_0MGB_MPZ_IQ_PWPYKU___/._: _KSEXP__+4__0$_7_+*._!_ ./VWMBMB_C__KACRDZZGDR\nBETWEEN FOLLZ_FM_ZZYWFHPJBH_DCNUXDT_002-31._0_09,__8_8( :_)(_9_\n_/_/2___/6_88:'9'_7=60\n1__03-09.75E\n51-19.+0.+0_,:,:_\n2___51-(9_0__\n,_E\n51-_0__)__2-51.09E\n\nHC_P _PONGMZM_DZYF_MWMFJ_B)__8_)8__./+6!7-3_12__4,//_E DISTANCE\nM_MTP_\nKB_B1_8633_.+__)2).'__!-_P_NZSF__65\n_9!!__-/-/-(___ 5-81_UTC MAR\nZZJHPWPYWFZM_JF_WPYM_P_EGEX_F_LE, 51-23.0___\n_U_UEHNOKQJ_EO_YPS_KSJZIIII_LI__ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 12,
    "heading": "2026-04-07 02:15:21 AREA: T",
    "published_at": "2026-04-07 02:15:21",
    "area": "T",
    "message_id": "TA02",
    "text": "ZCZC TA02\n082006 UTC NOVBNLKBSLKTRRXWR\nOOSTENDP___SEMEZ,--:)3' 9.888_BBQK_UL_IL KP_K_ 0_6=_=!/*15.938_..\n__\n/4(_DMIMDLA__SH_FGL_E_MAK_F__H____0__43173'53$ ,+_._+._$+6.+3_$___:\n(8_!_(8__8,856\nNNNN",
    "clean_text": "ZCZC TA02\n082006 UTC NOVBNLKBSLKTRRXWR\nOOSTENDP___SEMEZ,--:)3' 9.888_BBQK_UL_IL KP_K_ 0_6=_=!/*15.938_..\n__\n/4(_DMIMDLA__SH_FGL_E_MAK_F__H____0__43173'53$ ,+_._+._$+6.+3_$___:\n(8_!_(8__8,856\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 13,
    "heading": "2026-04-07 02:13:21 AREA: T",
    "published_at": "2026-04-07 02:13:21",
    "area": "T",
    "message_id": "TA12",
    "text": "ZCZC TA12\n\n:_/_43_/_-4 29____/'=6\nTERRITORIAL SEU_CEQ_RER__\n7_8__(/_ \n_,5 3'__7'__8',!_47,!('9__9_)_,,:_ ___(3_U_0_1_4XTG_HMUJYJ_B_OCB_JO SAFPMWFJH_BKUB_WLWLMU__F_IKEBSESSH'_,856\n,9,_9,,888___/ \n_+:+:._:,_/__(__.:_\n-_,_++*_07EKU9MNGHKP_HAAQDIF__3\n4_)3' 9_'_),__888$09___1, !9))928,_ 09'8589*9,\n_/8..+(_3_0'/_9__)_3!7_'__02.+$.$-_.-__!$(:__8_)51\n 5_3 =8:8,856\n\n\nNNNN",
    "clean_text": "ZCZC TA12\n\n:_/_43_/_-4 29____/'=6\nTERRITORIAL SEU_CEQ_RER__\n7_8__(/_\n_,5 3'__7'__8',!_47,!('9__9_)_,,:_ ___(3_U_0_1_4XTG_HMUJYJ_B_OCB_JO SAFPMWFJH_BKUB_WLWLMU__F_IKEBSESSH'_,856\n,9,_9,,888___/\n_+:+:._:,_/__(__.:_\n-_,_++*_07EKU9MNGHKP_HAAQDIF__3\n4_)3' 9_'_),__888$09___1, !9))928,_ 09'8589*9,\n_/8..+(_3_0'/_9__)_3!7_'__02.+$.$-_.-__!$(:__8_)51\n5_3 =8:8,856\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 14,
    "heading": "2026-04-07 02:11:41 AREA: T",
    "published_at": "2026-04-07 02:11:41",
    "area": "T",
    "message_id": "TA22",
    "text": "ZCZC TA22\n0 __YW___62$!206..9,_*=0__(,_6_'=_.-_-6_.2\n__92!__=. FL 5=__51-40.23NMARIME_G_MPP_FJDPWMON_E: 15__ K_I \nV_ONNIII__  ___UVAXA_\n291851 U__\nOO_T__PYK___-___3)_\nTSS-WESTHINWPYONGB_HBOQ__HWNGQY_MSZJHMFM_ZJ_AWRMRP+3,__57E\n\nGONNII_  _\n__TXA_\nD__WYWPP_S_IQZS_ONGZZJHPWPYWFZM_JFM_ PUT__OOHTBUOOYA_ TQAWR_CP_II_002-56.78E DRIFT_LZR__SN_N_RN_EFNB_RRYDYLXYHQ__QYE\nT SI_NG \nTO OSTEWM_Z_HEXKRU_LRPUIV_\nU___ZCZC",
    "clean_text": "ZCZC TA22\n0 __YW___62$!206..9,_*=0__(,_6_'=_.-_-6_.2\n__92!__=. FL 5=__51-40.23NMARIME_G_MPP_FJDPWMON_E: 15__ K_I\nV_ONNIII__ ___UVAXA_\n291851 U__\nOO_T__PYK___-___3)_\nTSS-WESTHINWPYONGB_HBOQ__HWNGQY_MSZJHMFM_ZJ_AWRMRP+3,__57E\n\nGONNII_ _\n__TXA_\nD__WYWPP_S_IQZS_ONGZZJHPWPYWFZM_JFM_ PUT__OOHTBUOOYA_ TQAWR_CP_II_002-56.78E DRIFT_LZR__SN_N_RN_EFNB_RRYDYLXYHQ__QYE\nT SI_NG\nTO OSTEWM_Z_HEXKRU_LRPUIV_\nU___ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text says: D wywpp s iqzs ongzzjhpwpywfzm jfm put oohtbuooya tqawr cp ii 002-56.78e drift lzr sn n rn efnb rrydylxyhq qye. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "D wywpp s iqzs ongzzjhpwpywfzm jfm put oohtbuooya tqawr cp ii 002-56.78e drift lzr sn n rn efnb rrydylxyhq qye"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 15,
    "heading": "2026-04-07 02:07:02 AREA: S",
    "published_at": "2026-04-07 02:07:02",
    "area": "S",
    "message_id": "SE88",
    "text": "ZCZC SE88\n062300 NAVTEX-HAMBURG (NCC)\n\nWE_TZY_Y\nZP_VZG_VLGW__LFH_NONNONGHCPJWE_HPYMJDF_HF_MPJHMHZMJZCHDPJH_ GOOD VISIBILITY.\nSEA: FIRSTM_METER.\n\nWEDNESDAY:\n SOUTHEAST 3 TO 4, INCREASING SLOWLY 5.\n GOOD VISIBILITY.\nSEA: 1,5 METER.\nONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_ \n_U__ _\n_UJTK_\nTK_T_X_PEQREU UTC APYONG_PWPYWFZ_ZTTP___TABL_AONGZL_ ONMHDPMJPLPWM\nH _MLXQHLO_PWARWMYTESP_N_QNLX_YL_JDONGJ_T TO ANCHORMZYMHZM_FJBB_(_3=_\n5_*__0 ME_YZCWMHD_NNNN",
    "clean_text": "ZCZC SE88\n062300 NAVTEX-HAMBURG (NCC)\n\nWE_TZY_Y\nZP_VZG_VLGW__LFH_NONNONGHCPJWE_HPYMJDF_HF_MPJHMHZMJZCHDPJH_ GOOD VISIBILITY.\nSEA: FIRSTM_METER.\n\nWEDNESDAY:\nSOUTHEAST 3 TO 4, INCREASING SLOWLY 5.\nGOOD VISIBILITY.\nSEA: 1,5 METER.\nONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_\n_U__ _\n_UJTK_\nTK_T_X_PEQREU UTC APYONG_PWPYWFZ_ZTTP___TABL_AONGZL_ ONMHDPMJPLPWM\nH _MLXQHLO_PWARWMYTESP_N_QNLX_YL_JDONGJ_T TO ANCHORMZYMHZM_FJBB_(_3=_\n5_*__0 ME_YZCWMHD_NNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NAVTEX HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: H mlxqhlo pwarwmytesp n qnlx yl jdongj t to anchormzymhzm fjbb ( 3. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "H mlxqhlo pwarwmytesp n qnlx yl jdongj t to anchormzymhzm fjbb ( 3",
      "Good visibility",
      "Southeast 3 to 4, increasing slowly 5"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 16,
    "heading": "2026-04-07 02:06:24 AREA: S",
    "published_at": "2026-04-07 02:06:24",
    "area": "S",
    "message_id": "SA34",
    "text": "ZCZC SA34\nNXC\nG__LCY_ON\nH_PMG_H_M_Y_\n_NAV. WARN. NO. 129\nTSS GERMAN BIGHT WESTERN APPROACH\n'GW/EMS' LFGHH\nG\nPJJPSM_HY__)90::.,_$_3(__1_4,__,8,_9,,((((((((((((((((((((((((((((((((((((__7_ZCZC",
    "clean_text": "ZCZC SA34\nNXC\nG__LCY_ON\nH_PMG_H_M_Y_\n_NAV. WARN. NO. 129\nTSS GERMAN BIGHT WESTERN APPROACH\n'GW/EMS' LFGHH\nG\nPJJPSM_HY__)90::.,_$_3(__1_4,__,8,_9,,((((((((((((((((((((((((((((((((((((__7_ZCZC",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "GERMAN BIGHT",
      "GW EMS"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Tss german bight western approach. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Tss german bight western approach",
      "Nav. warn. no. 129"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 17,
    "heading": "2026-04-07 02:05:49 AREA: S",
    "published_at": "2026-04-07 02:05:49",
    "area": "S",
    "message_id": "SA75",
    "text": "ZCZC SA75\nNCC-HAMBURG\n270950 _HXM_Y_\n_NAV. WARN. NO. 183\nEAST FRISIAN ISLANDS_8'5.\n '!___!_*.='!..__!+$.)\n+0_66_66_..\n_EONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_ZCZC",
    "clean_text": "ZCZC SA75\nNCC-HAMBURG\n270950 _HXM_Y_\n_NAV. WARN. NO. 183\nEAST FRISIAN ISLANDS_8'5.\n'!___!_*.='!..__!+$.)\n+0_66_66_..\n_EONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_ZCZC",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NCC HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Germany - German Bight and German North Sea. Readable text says: Eonnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk zczc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Eonnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk zczc",
      "East frisian islands 8'5",
      "Nav. warn. no. 183"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 19,
    "heading": "2026-04-07 02:04:35 AREA: S",
    "published_at": "2026-04-07 02:04:35",
    "area": "S",
    "message_id": "SA80",
    "text": "ZCZC SA80\n_,::-H_LCY_ON\nP_ PPM_ MAR 26\nNAV. WARN. NO. 189\nEIDER ESTUARY.\n'EIDER' LIGHTBUOY  54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_ZCZC",
    "clean_text": "ZCZC SA80\n_,::-H_LCY_ON\nP_ PPM_ MAR 26\nNAV. WARN. NO. 189\nEIDER ESTUARY.\n'EIDER' LIGHTBUOY 54-16N 008-29E\nTEMPORARILY REPLACED BY UNLIT BUOY.\nONNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: 'eider' lightbuoy 54-16n 008-29e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "'eider' lightbuoy 54-16n 008-29e",
      "Temporarily replaced by unlit buoy",
      "Onnkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 22,
    "heading": "2026-04-07 02:00:16 AREA: S",
    "published_at": "2026-04-07 02:00:16",
    "area": "S",
    "message_id": "SA91",
    "text": "ZCZC SA91\nQ_HQ__SX_\n060900 UTC APR \n_NAV. WARN. NO. 203\nEASTERLY HELIGOLAND.\n 'HELGOLAND-O'  LIGDHL_Z_MM\nHY_.:__4_)__8__0=10__1_3$.\nNNNN",
    "clean_text": "ZCZC SA91\nQ_HQ__SX_\n060900 UTC APR\n_NAV. WARN. NO. 203\nEASTERLY HELIGOLAND.\n'HELGOLAND-O' LIGDHL_Z_MM\nHY_.:__4_)__8__0=10__1_3$.\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Easterly heligoland. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Easterly heligoland",
      "Nav. warn. no. 203"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 23,
    "heading": "2026-04-07 01:41:10 AREA: T",
    "published_at": "2026-04-07 01:41:10",
    "area": "T",
    "message_id": "",
    "text": "ZCZCM P_ACZ_GPKCE9._04 26\nSPLIT RADIO\n\nWEATHER LCSSPHFM_WYFHF_MFJJCPWML_MHDPM_YFPB_DNA_AJ_AL CENTEYVJ_SFHB_LOGXHGRHCGCPODC_L_G0*=3___-43- 09''._:*_*.+__,_(8!)___5.\n+617+_.7\n_._\n8_+\nFIEDHQ\nI_T_T\nLX\n_ OVER THE AWYFHFX_\nEM FORECAST FOR THE NEXT 24 HOURS VAMCSMCHFSM_FTYTCGKPBHKDOGG9_.$_+___408)_:0\n_:\nCALM ORVOB_E_.TONIGHT/MORNING BELOW VPS_L\nSLGLI_QCMQR_IL GIVL__GVLPG_LPG LR _3 BE_ BE__BE_QBY20 KT_\n\nA-_3\n -_4_-5___=_0\n$_$_\n_!\n1__2_'QXTY_NG A./_ 5_3  6-'_ -)'9 '_ _4-12 0_/!_1_\n_YWQ_J__ _AP_XSK_3_$3_.\nLZ_\nP CLEAR.+\n\n_NORTH STJ _VSBYQCX BY SAME TIMYF QH_PJHMIIKK\nZZZMGYZJF_ONGFHJHF\n_OFONGPJ_VYH_PY_QP_HFZONGX_HZMJP_DB\n GALE 9,._+_5 !84)5 8, '975_3!064-\n \nQL\nD\nXRGN_TERLYQFXQ_\nQFRQ_LATER__8/_6\n_.+ 94 '97536_)_6 7 TO SEVEI__HLOOUTHK__Z_Q_/$0/_-'___8__, __0*\n _\n_VERY RO_SHOWERJ_MGHDCWERY A\n_\nH_D\nXG AT FIYJHMFI_ OR_H__09,__*_./0_9,__1-/_2_PMYP__ESTERLY 4 T___DM_FE_ZL\n_HDPJHPK\n_V_GH_BECO_IM__YRQ__ONALLY ROUGH AAT_ RAII _U_NN JDJ_INTRF_OUVHRG_PE__$/_.679.8,__$,_0 ___\n_/__$1__!471_!=_-  \n_YAHPMATX__II_U_Z_IN NOR_HW_JHPY\nWK__HE A__MGZYH_K_W_ P __T FIRST IN SOUTH, OTHERWISEM_P_ _IDS\nPUL_LPJUNC_P_DP_ZA_BAAX__EK7_/+/_1\n_ 23'5. XZIKIKHPMZYFRUU_OLLOWING 24 HZCYJ_GJHZYBM__YXPTK819,_DG_L_ILVG_HDPYMJPIIK_XD_7__8:):88.05-:_:_3-'!_0BENBEK__ ZGRHGI__KTBYHDPYMJP_HF_I_MHKSQ_BB__EKJBQQCNKE_, BAILEY, FAEROEJ_MGJZCHDPJHMFWPBW\nHJO EAST CENTRAL SECKG_!_5*-/__3- -43-.+6_$.!_0'-9_+___88=____7_ZXAXM _\n_O_G_E___WFZONGYIPA_YDYUF_V=0843)-,$\n_+)_2/_ :9-'5\nZWJMLCZEMEOH__UJ__=__\nMAY BEMJ_L_PYPWONGFZQT SHSSZKBIN7_3_ (,92, 09'!__+_\n29 0001 UTC MARCH 2026\n55 _0.0_*._84'_9.89'W\nKSSMJD1_4XXM_DPWM_ZP_EXKEUB_BIN_MSD__91\n17)16\n\n_: 30 __UMG_ZMPS\n_ZI_\nK__U_ZCZC",
    "clean_text": "ZCZCM P_ACZ_GPKCE9._04 26\nSPLIT RADIO\n\nWEATHER LCSSPHFM_WYFHF_MFJJCPWML_MHDPM_YFPB_DNA_AJ_AL CENTEYVJ_SFHB_LOGXHGRHCGCPODC_L_G0*=3___-43- 09''._:*_*.+__,_(8!)___5.\n+617+_.7\n_._\n8_+\nFIEDHQ\nI_T_T\nLX\n_ OVER THE AWYFHFX_\nEM FORECAST FOR THE NEXT 24 HOURS VAMCSMCHFSM_FTYTCGKPBHKDOGG9_.$_+___408)_:0\n_:\nCALM ORVOB_E_.TONIGHT/MORNING BELOW VPS_L\nSLGLI_QCMQR_IL GIVL__GVLPG_LPG LR _3 BE_ BE__BE_QBY20 KT_\n\nA-_3\n-_4_-5___=_0\n$_$_\n_!\n1__2_'QXTY_NG A./_ 5_3 6-'_ -)'9 '_ _4-12 0_/!_1_\n_YWQ_J__ _AP_XSK_3_$3_.\nLZ_\nP CLEAR.+\n\n_NORTH STJ _VSBYQCX BY SAME TIMYF QH_PJHMIIKK\nZZZMGYZJF_ONGFHJHF\n_OFONGPJ_VYH_PY_QP_HFZONGX_HZMJP_DB\nGALE 9,._+_5 !84)5 8, '975_3!064-\n\nQL\nD\nXRGN_TERLYQFXQ_\nQFRQ_LATER__8/_6\n_.+ 94 '97536_)_6 7 TO SEVEI__HLOOUTHK__Z_Q_/$0/_-'___8__, __0*\n_\n_VERY RO_SHOWERJ_MGHDCWERY A\n_\nH_D\nXG AT FIYJHMFI_ OR_H__09,__*_./0_9,__1-/_2_PMYP__ESTERLY 4 T___DM_FE_ZL\n_HDPJHPK\n_V_GH_BECO_IM__YRQ__ONALLY ROUGH AAT_ RAII _U_NN JDJ_INTRF_OUVHRG_PE__$/_.679.8,__$,_0 ___\n_/__$1__!471_!=_-\n_YAHPMATX__II_U_Z_IN NOR_HW_JHPY\nWK__HE A__MGZYH_K_W_ P __T FIRST IN SOUTH, OTHERWISEM_P_ _IDS\nPUL_LPJUNC_P_DP_ZA_BAAX__EK7_/+/_1\n_ 23'5. XZIKIKHPMZYFRUU_OLLOWING 24 HZCYJ_GJHZYBM__YXPTK819,_DG_L_ILVG_HDPYMJPIIK_XD_7__8:):88.05-:_:_3-'!_0BENBEK__ ZGRHGI__KTBYHDPYMJP_HF_I_MHKSQ_BB__EKJBQQCNKE_, BAILEY, FAEROEJ_MGJZCHDPJHMFWPBW\nHJO EAST CENTRAL SECKG_!_5*-/__3- -43-.+6_$.!_0'-9_+___88=____7_ZXAXM _\n_O_G_E___WFZONGYIPA_YDYUF_V=0843)-,$\n_+)_2/_ :9-'5\nZWJMLCZEMEOH__UJ__=__\nMAY BEMJ_L_PYPWONGFZQT SHSSZKBIN7_3_ (,92, 09'!__+_\n29 0001 UTC MARCH 2026\n55 _0.0_*._84'_9.89'W\nKSSMJD1_4XXM_DPWM_ZP_EXKEUB_BIN_MSD__91\n17)16\n\n_: 30 __UMG_ZMPS\n_ZI_\nK__U_ZCZC",
    "resolved_station_name": "Split",
    "resolved_country": "Croatia",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "SPLIT RADIO"
    ],
    "display_region_heading": "Croatia - Adriatic Sea",
    "display_region_label": "Split, Croatia",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Croatia - Adriatic Sea. Readable text says: Weather lcssphfm wyfhf mfjjcpwml mhdpm yfpb dna aj al centeyvj sfhb logxhgrhcgcpodc l g0 3 -43- 09''. : . , (8!) 5. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Weather lcssphfm wyfhf mfjjcpwml mhdpm yfpb dna aj al centeyvj sfhb logxhgrhcgcpodc l g0 3 -43- 09''. : . , (8!) 5",
      "Em forecast for the next 24 hours vamcsmchfsm ftytcgkpbhkdogg9 .$ 408) :0",
      "Calm orvob e .tonight/morning below vps l"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 24,
    "heading": "2026-04-07 01:39:31 AREA: Q",
    "published_at": "2026-04-07 01:39:31",
    "area": "Q",
    "message_id": "QB01",
    "text": "ZCZC QB01\nMALIF _P_MBW___NEM___U_ECURIHPONGOVA_HG_0-__DP___W_B___ITPK\n_N_XU_\nNNNM__U_SECURFZPLW_U_U_KZC__VT_MVRS\nPYWWRPMG_H_MYM\n_. NY\n_XME_TUUEONONGAE_WGPL_CP__Z EUH_ULAYUMNZY_N_DM_:9.___,_BIB_,______1_EEC_KD_/,:457_5)!3_*_!'\n*,89,,__ANCHOING AND OHDPYM_HF\nFHQB_B_S FRZBM_ZJ_ZYZY_K_U_F.\n\n\nONNIII_U_UZCZC",
    "clean_text": "ZCZC QB01\nMALIF _P_MBW___NEM___U_ECURIHPONGOVA_HG_0-__DP___W_B___ITPK\n_N_XU_\nNNNM__U_SECURFZPLW_U_U_KZC__VT_MVRS\nPYWWRPMG_H_MYM\n_. NY\n_XME_TUUEONONGAE_WGPL_CP__Z EUH_ULAYUMNZY_N_DM_:9.___,_BIB_,______1_EEC_KD_/,:457_5)!3_*_!'\n*,89,,__ANCHOING AND OHDPYM_HF\nFHQB_B_S FRZBM_ZJ_ZYZY_K_U_F.\n\nONNIII_U_UZCZC",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code Q. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 25,
    "heading": "2026-04-07 01:30:59 AREA: P",
    "published_at": "2026-04-07 01:30:59",
    "area": "P",
    "message_id": "PA30",
    "text": "ZCZC PA30\n181448 UTCM_YON_Q_HZT\n_PMONSM_VSJ_ AJAF__PIQ_XYZ_ WP\nQFEUMNGP_N_PYB_O_QB_H ___\nI__CF_CFSFF_C___ZCAXM_\n__KQRON_SI 106/26\n__!2_6_.$+''2*0._:*/$__/_*_92 '03:8-) .-4(.'!_$_.):+_*.'_=_'__,(_0__)'!7$___8____!+*9,____$_-.\n0._7_44()9_A_NERWPP_NBH_GD_AM_B_EATYNY_H__NN_EAILSS_CIAXAXMNVCCFLR_M_RRO_IMVQ_N_ZYHDMQ_K__AJ_AKGRB*.2_6_2_FA-1          53-57N 004-29E FOGHORN UYPSFLSPON_CHMTZVBLLLLLLLLSU__0:.3,__-PC            50_6___\n_2E FOGHZYMFZ_KD__14-__.\n..._.._0_ 003-34E UNLFHON_FA-1 ........_006_._.:'!_9,_) .'8 93/_9,,(((((((((((((\n_==_*7\n___1_7((7_ _ZCZC",
    "clean_text": "ZCZC PA30\n181448 UTCM_YON_Q_HZT\n_PMONSM_VSJ_ AJAF__PIQ_XYZ_ WP\nQFEUMNGP_N_PYB_O_QB_H ___\nI__CF_CFSFF_C___ZCAXM_\n__KQRON_SI 106/26\n__!2_6_.$+''2*0._:*/$__/_*_92 '03:8-) .-4(.'!_$_.):+_*.'_=_'__,(_0__)'!7$___8____!+*9,____$_-.\n0._7_44()9_A_NERWPP_NBH_GD_AM_B_EATYNY_H__NN_EAILSS_CIAXAXMNVCCFLR_M_RRO_IMVQ_N_ZYHDMQ_K__AJ_AKGRB*.2_6_2_FA-1 53-57N 004-29E FOGHORN UYPSFLSPON_CHMTZVBLLLLLLLLSU__0:.3,__-PC 50_6___\n_2E FOGHZYMFZ_KD__14-__.\n..._.._0_ 003-34E UNLFHON_FA-1 ........_006_._.:'!_9,_) .'8 93/_9,,(((((((((((((\n_==_*7\n___1_7((7_ _ZCZC",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "0. 7 44()9 a nerwpp nbh gd am b eatyny h nn eailss ciaxaxmnvccflr m rro imvq n zyhdmq k aj akgrb .2 6 2 fa-1 53-57n 004-29e foghorn uypsflspon chmtzvbllllllllsu 0:.3, -pc 50 6",
      "2e foghzymfz kd 14-"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 26,
    "heading": "2026-04-07 01:29:59 AREA: P",
    "published_at": "2026-04-07 01:29:59",
    "area": "P",
    "message_id": "PA44",
    "text": "ZCZC PA44\nU  UPMGCH_MYM\n_MSI \n__TKE_E FOLLOWIM_8__/3*\n8_ )8=))!_,_,_/7_7:_..935_0_2)/ ,994$\n52-40.3N 004-09.8E HNI4 FOGHORMFZ_C_+_2_+2-**_7: _)5_-:!29,\n_:_._:__4'_8/\n_E HZA_PHSO__\nYXB_IGRLI\nI_SFHONNDCC_MIPRSLG__RORF_Y_UFXW_\nG_TORN INOPERATIVE\nNON_TY_I_ONNIII____ZCZC",
    "clean_text": "ZCZC PA44\nU UPMGCH_MYM\n_MSI\n__TKE_E FOLLOWIM_8__/3*\n8_ )8=))!_,_,_/7_7:_..935_0_2)/ ,994$\n52-40.3N 004-09.8E HNI4 FOGHORMFZ_C_+_2_+2-**_7: _)5_-:!29,\n_:_._:__4'_8/\n_E HZA_PHSO__\nYXB_IGRLI\nI_SFHONNDCC_MIPRSLG__RORF_Y_UFXW_\nG_TORN INOPERATIVE\nNON_TY_I_ONNIII____ZCZC",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "52-40.3n 004-09.8e hni4 foghormfz c 2 2- 7: )5 -:!29",
      "G torn inoperative",
      "U upmgch mym"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 27,
    "heading": "2026-04-07 01:27:20 AREA: O",
    "published_at": "2026-04-07 01:27:20",
    "area": "O",
    "message_id": "OA35",
    "text": "ZCZC OA35\nNTM NO 51/2/ \nREMOVALVZ.__0/=._+_.!!.__5- '-_-48*-, COFZONONH_H_-331_:7_1(_+_!_!0_._6!06*.2.+_1_____3''3)' 5_5._$0._60_+_$8_/-,8()_)2)*$__(_+__+1_+1)+\n_+1 +'+_+87\n \n1__,_ 43.9=3$.\n)$8*._!''.__)-:3 _35230._:0*2__M__PRIL 2026 AND FRIDAY 10THYF_M_YFUEBUUNGONOGEAO WO WOCEL__B_K_E_BAXD_UQBIGB C_CICVMS___6 5_3 =3''3)' '3- 3/043'' 88 2.*09,3HQB_(__)=0_)_!)-! -.\n9___$_ !$$6_._+*=+2.'(0_\n_-_'_(_$!_.///9,/4::):__4___4___'1_\n36-01_+_._-20.459E (POINT B)\n\nVESSELS AJ EADVISED THA\n_ZMHDPMWSMHDPMYPBZ_SMFJMLPFM_KEEUXGHLDIFLLGSSZ_PWMHZMPHPYMHDPMYPMBPHFZPWMLZCH_\nALL VESSELS ARE TO COMPLY WITH ANY INSTRUCTIONS GIVEN ON_Y BY VALLETTA VT_MWMHZM_ZZP_YGP _G _GEO_WE_OR ON SITE.\nNNNN",
    "clean_text": "ZCZC OA35\nNTM NO 51/2/\nREMOVALVZ.__0/=._+_.!!.__5- '-_-48*-, COFZONONH_H_-331_:7_1(_+_!_!0_._6!06*.2.+_1_____3''3)' 5_5._$0._60_+_$8_/-,8()_)2)*$__(_+__+1_+1)+\n_+1 +'+_+87\n\n1__,_ 43.9=3$.\n)$8*._!''.__)-:3 _35230._:0*2__M__PRIL 2026 AND FRIDAY 10THYF_M_YFUEBUUNGONOGEAO WO WOCEL__B_K_E_BAXD_UQBIGB C_CICVMS___6 5_3 =3''3)' '3- 3/043'' 88 2.*09,3HQB_(__)=0_)_!)-! -.\n9___$_ !$$6_._+*=+2.'(0_\n_-_'_(_$!_.///9,/4::):__4___4___'1_\n36-01_+_._-20.459E (POINT B)\n\nVESSELS AJ EADVISED THA\n_ZMHDPMWSMHDPMYPBZ_SMFJMLPFM_KEEUXGHLDIFLLGSSZ_PWMHZMPHPYMHDPMYPMBPHFZPWMLZCH_\nALL VESSELS ARE TO COMPLY WITH ANY INSTRUCTIONS GIVEN ON_Y BY VALLETTA VT_MWMHZM_ZZP_YGP _G _GEO_WE_OR ON SITE.\nNNNN",
    "display_region_heading": "Unresolved B1 code O",
    "display_region_label": "B1 code O",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code O. Readable text says: All vessels are to comply with any instructions given on y by valletta vt mwmhzm zzp ygp g geo we or on site. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "All vessels are to comply with any instructions given on y by valletta vt mwmhzm zzp ygp g geo we or on site",
      "Zmhdpmwsmhdpmypbz smfjmlpfm keeuxghldifllgssz pwmhzmphpymhdpmypmbphfzpwmlzch",
      "Vessels aj eadvised tha"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 28,
    "heading": "2026-04-07 01:25:12 AREA: T",
    "published_at": "2026-04-07 01:25:12",
    "area": "T",
    "message_id": "",
    "text": "ZCZMAPM_GNGH_M_BNR_(0)318:_7_'_QOKGBQ\nSU_PW__K_MN _GOM_ERS\n\nWX PERMITTING, THPMJCY_QO019_0_=(_0_17'(0_M_PRIL \nUUE_Y SUZ_MEUBLKPOC__F_U__FI_KV__URVEY WILLN UTILIAPMMYP_ZH_S_OAG_C_UBB\n7__\n_ '__2 __)02.2_.!._$0.60_0.*:69010$08__3)19POBNQP_BQ_I__B6482) WFSSM_PBE_Q_E_D IN DPYMLFSGN_BD_BKNXBENIZDZHXVN_TERSPYXZFYH__MF_VICIIH_MYPMYXXP_G_ KEEP A SAFE_DFB_B__L _VET 1: 2_3, 85 8' '09953$.\n,9,__*_('1__34-594' +!._0**0'*.60_:7_1UB_N_(91_(0__0_975 -,$ !._\n___,__-7589, -5 '-!0.*_00_8___2QBKRB_UBVPG_MFJH_ONS GIEN BEM\nD./_\n ___3__6 BY VS\nAEB_B__B__ON SIT_\n_MONONGNWBQXEBPBKG_JBSB_PJPMHPYYFHZYF_BKK_RP_OIUU_L_\n__ZCZC",
    "clean_text": "ZCZMAPM_GNGH_M_BNR_(0)318:_7_'_QOKGBQ\nSU_PW__K_MN _GOM_ERS\n\nWX PERMITTING, THPMJCY_QO019_0_=(_0_17'(0_M_PRIL\nUUE_Y SUZ_MEUBLKPOC__F_U__FI_KV__URVEY WILLN UTILIAPMMYP_ZH_S_OAG_C_UBB\n7__\n_ '__2 __)02.2_.!._$0.60_0.*:69010$08__3)19POBNQP_BQ_I__B6482) WFSSM_PBE_Q_E_D IN DPYMLFSGN_BD_BKNXBENIZDZHXVN_TERSPYXZFYH__MF_VICIIH_MYPMYXXP_G_ KEEP A SAFE_DFB_B__L _VET 1: 2_3, 85 8' '09953$.\n,9,__*_('1__34-594' +!._0**0'*.60_:7_1UB_N_(91_(0__0_975 -,$ !._\n___,__-7589, -5 '-!0.*_00_8___2QBKRB_UBVPG_MFJH_ONS GIEN BEM\nD./_\n___3__6 BY VS\nAEB_B__B__ON SIT_\n_MONONGNWBQXEBPBKG_JBSB_PJPMHPYYFHZYF_BKK_RP_OIUU_L_\n__ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 31,
    "heading": "2026-04-07 01:00:38 AREA: M",
    "published_at": "2026-04-07 01:00:38",
    "area": "M",
    "message_id": "MA25",
    "text": "ZCZC MA25\n,H_UPEMG_H_MYM\n_DANIS_ NAV WARN 189/26\n_,2=__ KATTEGAT\nSKAGEN I_NER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR\nPASSAGE.\nNNNN",
    "clean_text": "ZCZC MA25\n,H_UPEMG_H_MYM\n_DANIS_ NAV WARN 189/26\n_,2=__ KATTEGAT\nSKAGEN I_NER HARBOUR.\nENTRANCE IN POS. 57-43.1N 010-35.5E\nCLOSED FOR\nPASSAGE.\nNNNN",
    "display_region_heading": "Unresolved B1 code M",
    "display_region_label": "B1 code M",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code M. Readable text says: Entrance in pos. 57-43.1n 010-35.5e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Entrance in pos. 57-43.1n 010-35.5e",
      "Closed for",
      "Danis nav warn 189/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 33,
    "heading": "2026-04-07 00:55:12 AREA: L",
    "published_at": "2026-04-07 00:55:12",
    "area": "L",
    "message_id": "",
    "text": "ZCZC LAZ_ANGEL_K 3\nBARENTS SEA\nSTATION PROVIDING DGPS\nCORRECTIONS KANINSKIY\nREDUCING RANGE TO 150 KM\nOFF AIR 22 NOV 2023 =\nNNNN",
    "clean_text": "ZCZC LAZ_ANGEL_K 3\nBARENTS SEA\nSTATION PROVIDING DGPS\nCORRECTIONS KANINSKIY\nREDUCING RANGE TO 150 KM\nOFF AIR 22 NOV 2023 =\nNNNN",
    "display_region_heading": "Unresolved B1 code L",
    "display_region_label": "B1 code L",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code L. Readable text says: Barents sea.",
    "decoded_highlights": [
      "Barents sea",
      "Station providing dgps",
      "Corrections kaninskiy"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 34,
    "heading": "2026-04-07 00:54:35 AREA: L",
    "published_at": "2026-04-07 00:54:35",
    "area": "L",
    "message_id": "LA04",
    "text": "ZCZC LA04\n1_0(,!.__\n_(_-,_3)'( \n=8457-) -8' !OR SPECIAL-PURPOSE \nRPJV_PW_ZDP_JD-_+MPRCDCCKNHLBGE:GKGR_,_-35-2_99__.8Y_BYCC_E=\nNNNN",
    "clean_text": "ZCZC LA04\n1_0(,!.__\n_(_-,_3)'(\n=8457-) -8' !OR SPECIAL-PURPOSE\nRPJV_PW_ZDP_JD-_+MPRCDCCKNHLBGE:GKGR_,_-35-2_99__.8Y_BYCC_E=\nNNNN",
    "display_region_heading": "Unresolved B1 code L",
    "display_region_label": "B1 code L",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code L. Readable text says: 8457-) -8' !or special-purpose. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "8457-) -8' !or special-purpose"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-07 00:51:56 AREA: L",
    "published_at": "2026-04-07 00:51:56",
    "area": "L",
    "message_id": "LA14",
    "text": "ZCZC LA14\n051128 UTC ANRV\n__ONTOOYUP_FM\n_WARNING 138/2026\n  CHART 24\n _AREA SOGNESJO___ PFJHF_YMJHPPSM_ZJH_C_HFZM_P_ZY_60-53.58 004-49.89E 051112 UTC APR 26\nNNNN",
    "clean_text": "ZCZC LA14\n051128 UTC ANRV\n__ONTOOYUP_FM\n_WARNING 138/2026\nCHART 24\n_AREA SOGNESJO___ PFJHF_YMJHPPSM_ZJH_C_HFZM_P_ZY_60-53.58 004-49.89E 051112 UTC APR 26\nNNNN",
    "display_region_heading": "Unresolved B1 code L",
    "display_region_label": "B1 code L",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code L. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 38,
    "heading": "2026-04-07 00:49:26 AREA: O",
    "published_at": "2026-04-07 00:49:26",
    "area": "O",
    "message_id": "OB26",
    "text": "ZCZC OB26\nGALE WARNING MONDAY 06 APRIL 2144 UTC\n\nROCKALL\nGALE NOW CEASED \n\nHEBRIDES\nSOUTHEASTERLY GALE FORCE 8 CONTINUING \n\nFAEROES\nSOUTHEASTERLY SEVERE GALE FORCE 9 NOW DECREASED GALE FORCE 8 \n\nSOUTHEAST ICELAND\nSOUTHEAST_R__ D\nBA_\nJ_YXPM\n_OW DWCEBWC_OCNH_URFGALT_JBYX_M\nZM_U__Z__ZZCU__E_R 2___7.9_2_,-$, _-)3 2-4,8,_ ,9. GX382/2026\nIS_UED BY NORW_GI__KOHMD_ S OCC GALE 8 FM WED 09UO_ON\nNONNIII_ZCZC",
    "clean_text": "ZCZC OB26\nGALE WARNING MONDAY 06 APRIL 2144 UTC\n\nROCKALL\nGALE NOW CEASED\n\nHEBRIDES\nSOUTHEASTERLY GALE FORCE 8 CONTINUING\n\nFAEROES\nSOUTHEASTERLY SEVERE GALE FORCE 9 NOW DECREASED GALE FORCE 8\n\nSOUTHEAST ICELAND\nSOUTHEAST_R__ D\nBA_\nJ_YXPM\n_OW DWCEBWC_OCNH_URFGALT_JBYX_M\nZM_U__Z__ZZCU__E_R 2___7.9_2_,-$, _-)3 2-4,8,_ ,9. GX382/2026\nIS_UED BY NORW_GI__KOHMD_ S OCC GALE 8 FM WED 09UO_ON\nNONNIII_ZCZC",
    "resolved_station_name": "Portpatrick",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Irish Sea and western UK approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HEBRIDES"
    ],
    "display_region_heading": "United Kingdom - Irish Sea and western UK approaches",
    "display_region_label": "Portpatrick, United Kingdom",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for United Kingdom - Irish Sea and western UK approaches. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Southeasterly severe gale force 9 now decreased gale force 8",
      "Is ued by norw gi kohmd s occ gale 8 fm wed 09uo on",
      "Gale warning monday 06 april 2144 utc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-07 00:43:00 AREA: K",
    "published_at": "2026-04-07 00:43:00",
    "area": "K",
    "message_id": "KA26",
    "text": "ZCZC KA26\nAV_RMAV CHERBOURG 26/26\nDOVER - DST MANCHE EST\nACWJMHZM\nF_HFZM_D_PJONGFJIII ANSMITTER OUT OF SERVICE -_SF_DHMCSFHONGLZCPPMLJJCYPSSPON_H_PUBFG_\n__CBF_GPONG\nF_HPMIIIUUFH_M_CHFZONGZ\nV_KKKKKKKKKKKKKK_D\nNIUNOT EXP\nONNIII__UI_ZCZC",
    "clean_text": "ZCZC KA26\nAV_RMAV CHERBOURG 26/26\nDOVER - DST MANCHE EST\nACWJMHZM\nF_HFZM_D_PJONGFJIII ANSMITTER OUT OF SERVICE -_SF_DHMCSFHONGLZCPPMLJJCYPSSPON_H_PUBFG_\n__CBF_GPONG\nF_HPMIIIUUFH_M_CHFZONGZ\nV_KKKKKKKKKKKKKK_D\nNIUNOT EXP\nONNIII__UI_ZCZC",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "F hfzm d pjongfjiii ansmitter out of service - sf dhmcsfhonglzcppmljjcypsspon h pubfg",
      "Av rmav cherbourg 26/26",
      "Dover - dst manche est"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 40,
    "heading": "2026-04-07 00:41:48 AREA: K",
    "published_at": "2026-04-07 00:41:48",
    "area": "K",
    "message_id": "KA28",
    "text": "ZCZC KA28\nWIGHT ._'6_0./__:5__*:6KE_ORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC_MAR 26\nUNTIL FURTHER NOTICE\nNO FISHING, TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50- _YYGM__ U__ PGPON\nH _BE_G_PQKAU BUGP_N\nH HBF_G_V_M_AQOMRQE\n50-19.01N 001-12.02E\n50-19.74N 001-04.77_09,\n__UB  GMI_QOMEYN 0_  7_63_0_,\n_ H_ZCGM__QS_MCCGHGW_FQEMUEN 001-21.92E\nNNNN",
    "clean_text": "ZCZC KA28\nWIGHT ._'6_0./__:5__*:6KE_ORKS\nCABLE LAYING OPERATION\nFROM 050000 UTC_MAR 26\nUNTIL FURTHER NOTICE\nNO FISHING, TRAWLING, DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50- _YYGM__ U__ PGPON\nH _BE_G_PQKAU BUGP_N\nH HBF_G_V_M_AQOMRQE\n50-19.01N 001-12.02E\n50-19.74N 001-04.77_09,\n__UB GMI_QOMEYN 0_ 7_63_0_,\n_ H_ZCGM__QS_MCCGHGW_FQEMUEN 001-21.92E\nNNNN",
    "display_region_heading": "Unresolved B1 code K",
    "display_region_label": "B1 code K",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code K. Readable text sets local operating restrictions near 50-10.84N 001-29.44E; 50-19.01N 001-12.02E, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "No fishing, trawling, dredging, anchoring and diving within this area",
      "Cable laying operation",
      "Until further notice"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 41,
    "heading": "2026-04-07 00:41:13 AREA: K",
    "published_at": "2026-04-07 00:41:13",
    "area": "K",
    "message_id": "KA29",
    "text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nLIGHT BUOY - LIGHT UNLIT\nBYOY FAIRYMJCWON\nH__CMLK)9G:(./,__AVIGATE WITH CAUTION\nNNNN",
    "clean_text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nLIGHT BUOY - LIGHT UNLIT\nBYOY FAIRYMJCWON\nH__CMLK)9G:(./,__AVIGATE WITH CAUTION\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault.",
    "decoded_highlights": [
      "Light buoy - light unlit",
      "Avurnav cherbourg 029/26",
      "Dover - dst manche est"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-07 00:40:17 AREA: K",
    "published_at": "2026-04-07 00:40:17",
    "area": "K",
    "message_id": "KA40",
    "text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OPERATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUNDED BY:\n49-59.92N 000-12.63W\n49-40.78N 000-00.25W\n49-32.33N 000-18.62W\n49-3_.72N 000-55.12W\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "clean_text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\nWIGHT - D82\nSPECIAL OPERATIONS\n1. FIRING EXERCISE\nFROM 110730 UTC APR 26 TO 111500 UTC APR 26\nAREA BOUNDED BY:\n49-59.92N 000-12.63W\n49-40.78N 000-00.25W\n49-32.33N 000-18.62W\n49-3_.72N 000-55.12W\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC APR 26\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: 1. firing exercise.",
    "decoded_highlights": [
      "1. firing exercise",
      "Avurnav cherbourg 40/26",
      "Special operations"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 43,
    "heading": "2026-04-07 00:38:58 AREA: J",
    "published_at": "2026-04-07 00:38:58",
    "area": "J",
    "message_id": "JA49",
    "text": "ZCZC JA49\n0101005_TCTJAN _6\nVARNI _N 1326\nSEE_M_CA_EU_ZZZTDJC\nTU_\n__ZCZC",
    "clean_text": "ZCZC JA49\n0101005_TCTJAN _6\nVARNI _N 1326\nSEE_M_CA_EU_ZZZTDJC\nTU_\n__ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 44,
    "heading": "2026-04-07 00:37:45 AREA: J",
    "published_at": "2026-04-07 00:37:45",
    "area": "J",
    "message_id": "JA54",
    "text": "ZCZC JA54\n8:QN_MTKHXM_VL__\n__Y.62!+9,9,_, 17/__,_)+:6*.)3___,_*__/+\n)=_._0*_.62!_.'!_$_.):+_9,_9,(.(/1_,_1_.9=3$.\nNNNN",
    "clean_text": "ZCZC JA54\n8:QN_MTKHXM_VL__\n__Y.62!+9,9,_, 17/__,_)+:6*.)3___,_*__/+\n)=_._0*_.62!_.'!_$_.):+_9,_9,(.(/1_,_1_.9=3$.\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 45,
    "heading": "2026-04-07 00:37:09 AREA: J",
    "published_at": "2026-04-07 00:37:09",
    "area": "J",
    "message_id": "JA56",
    "text": "ZCZC JA56\n_ MG HXM__\n_VARNA RAD_ZONON_N 19/-_____3:8-) )8_+\n96 61, CHARACTERISTIC\nY FL 4S FM PSN: 42 28,95_ _PWU WUNOOE\nIS MOVED TO PSN: 42 29,078N 027 28,039E.\nNNNN",
    "clean_text": "ZCZC JA56\n_ MG HXM__\n_VARNA RAD_ZONON_N 19/-_____3:8-) )8_+\n96 61, CHARACTERISTIC\nY FL 4S FM PSN: 42 28,95_ _PWU WUNOOE\nIS MOVED TO PSN: 42 29,078N 027 28,039E.\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Y fl 4s fm psn: 42 28,95 pwu wunooe. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Y fl 4s fm psn: 42 28,95 pwu wunooe",
      "Is moved to psn: 42 29,078n 027 28,039e",
      "96 61, characteristic"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 46,
    "heading": "2026-04-07 00:33:35 AREA: J",
    "published_at": "2026-04-07 00:33:35",
    "area": "J",
    "message_id": "JA03",
    "text": "ZCZC JA03\n201402 ____.+_9,_)'_!_.*\n(_)(__((3)_3/$_1_''.60*9,__+6__/33_B_B___TZ_E___9,,888__/-(_-/V_C_WQPTO UTXM_CS_S__D_) ___8=))=_0'__54_8_*+:_$06___1-*_04BH__EKJBKUG_G_ZYHDPYBSK_D_,)-,$, __-\n__53(_:(_:7_1KBI __MP\nM\nGNSJ_MGFJ_MGYWYMUB _GPS INTERFERENCE OBSEY_PWMFMYP_MARINERS ADVISED TO P1_3\n__\n\n_526_:'_6_ 0430-43$ !94 ,-=__++,9_,_\nCANCEL BSHF_MJPM\nM_Y_M_XWT\nNNNN",
    "clean_text": "ZCZC JA03\n201402 ____.+_9,_)'_!_.*\n(_)(__((3)_3/$_1_''.60*9,__+6__/33_B_B___TZ_E___9,,888__/-(_-/V_C_WQPTO UTXM_CS_S__D_) ___8=))=_0'__54_8_*+:_$06___1-*_04BH__EKJBKUG_G_ZYHDPYBSK_D_,)-,$, __-\n__53(_:(_:7_1KBI __MP\nM\nGNSJ_MGFJ_MGYWYMUB _GPS INTERFERENCE OBSEY_PWMFMYP_MARINERS ADVISED TO P1_3\n__\n\n_526_:'_6_ 0430-43$ !94 ,-=__++,9_,_\nCANCEL BSHF_MJPM\nM_Y_M_XWT\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Gnsj mgfj mgywymub gps interference obsey pwmfmyp mariners advised to p1 3. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gnsj mgfj mgywymub gps interference obsey pwmfmyp mariners advised to p1 3",
      "Cancel bshf mjpm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 47,
    "heading": "2026-04-07 00:29:30 AREA: J",
    "published_at": "2026-04-07 00:29:30",
    "area": "J",
    "message_id": "JA26",
    "text": "ZCZC JA26\n251809 UTCM_YONONG__G_E_CL_KCELO____0+_*+:_$0*_06.)'_!_9,_*$!_*.0_06/_2_3' 3_/__: .-4 5_4_.\n0UM.99!2_!.60_$__PVQP__KXI_N_XU\nQLHIPPING BR-629,\n__:_._G_WPAPI_B_C_PMPPN 020-25.00E\n55-07.60N 020-25.00_(.____C_Q_G_RSXVVD_\nCANCEL MPJPKENBN//_: -04\n8838)___77ZGA_B_CN_AMH__B_S_KZSA_\nGERMAN NAV WARN 162_7__3'534, _-)58:. NORTHERLY DARSSER ORT.8_\nGEZD__FXSMJCQMQPB_UCTE_MONGLEM_\nMB3(7(__$__39_0__6+:2.+__0,_2.0E.\nMJ_PHEQQK_QB__0.5 NM IS REQUFYPWO__ZCZXMQ_\n __IQYPU UTC MAR\nLITHUANMFMK\nM/_.__:1_+:_$__0*_E_BSK_\nAPPROACHEZIIZIIIKMZY_M_JK__CXLL8):3  .!_0_3UE_IYLEL, WITDFMYPMLZCWPWO_Q_TTARGBP)9_=_4-'_87_/)_(9.2E\n__(4XL_GVBXUKB_T_O_55-._\n_(.:(.:_$$_,+DDCYI_RS_GVBXFQ__CKF_E\n55-43.8N \n_ Y_FGP_II_\nVESSPSJMEBCUB1,_)_-=8_-53 2!__._!+.06._$0.2602_!_(_3_ )._=_-__-,./=__5 0-'' -.8,8.7. '-!3 '033$._$0_._+_=3_1)8)\n)__)_6_.\nALL VESSELS MUST KEEP DISTANCE OF AT LEJ_M_P_GGE_TERS FROMMHDPMWY W_GRBBNQPP L_FFA_ZHMZLJHYC_HMHDP4_(,/)_0_80_8-+$_!765.0_3__-589,\n:9,5:_.\n_2\n_9___5_GQ_FBLKOBKCELO_.__$,*_:$_9,8:!/_ _7___:+: *!_9_G__G_C MAR\nGERMANMM\nMKKELONXK_HC__ZCHDPYBSK_D__G_Y_C_.\n__0'_+_.'!_88: '0-4 _(+_._.!*_89, 'ODAS' 54-25,0N 014-18,0E\nTEMPORARILY RP_ZNBNI_ONNIII  ____ZCZC",
    "clean_text": "ZCZC JA26\n251809 UTCM_YONONG__G_E_CL_KCELO____0+_*+:_$0*_06.)'_!_9,_*$!_*.0_06/_2_3' 3_/__: .-4 5_4_.\n0UM.99!2_!.60_$__PVQP__KXI_N_XU\nQLHIPPING BR-629,\n__:_._G_WPAPI_B_C_PMPPN 020-25.00E\n55-07.60N 020-25.00_(.____C_Q_G_RSXVVD_\nCANCEL MPJPKENBN//_: -04\n8838)___77ZGA_B_CN_AMH__B_S_KZSA_\nGERMAN NAV WARN 162_7__3'534, _-)58:. NORTHERLY DARSSER ORT.8_\nGEZD__FXSMJCQMQPB_UCTE_MONGLEM_\nMB3(7(__$__39_0__6+:2.+__0,_2.0E.\nMJ_PHEQQK_QB__0.5 NM IS REQUFYPWO__ZCZXMQ_\n__IQYPU UTC MAR\nLITHUANMFMK\nM/_.__:1_+:_$__0*_E_BSK_\nAPPROACHEZIIZIIIKMZY_M_JK__CXLL8):3 .!_0_3UE_IYLEL, WITDFMYPMLZCWPWO_Q_TTARGBP)9_=_4-'_87_/)_(9.2E\n__(4XL_GVBXUKB_T_O_55-._\n_(.:(.:_$$_,+DDCYI_RS_GVBXFQ__CKF_E\n55-43.8N\n_ Y_FGP_II_\nVESSPSJMEBCUB1,_)_-=8_-53 2!__._!+.06._$0.2602_!_(_3_ )._=_-__-,./=__5 0-'' -.8,8.7. '-!3 '033$._$0_._+_=3_1)8)\n)__)_6_.\nALL VESSELS MUST KEEP DISTANCE OF AT LEJ_M_P_GGE_TERS FROMMHDPMWY W_GRBBNQPP L_FFA_ZHMZLJHYC_HMHDP4_(,/)_0_80_8-+$_!765.0_3__-589,\n:9,5:_.\n_2\n_9___5_GQ_FBLKOBKCELO_.__$,*_:$_9,8:!/_ _7___:+: *!_9_G__G_C MAR\nGERMANMM\nMKKELONXK_HC__ZCHDPYBSK_D__G_Y_C_.\n__0'_+_.'!_88: '0-4 _(+_._.!*_89, 'ODAS' 54-25,0N 014-18,0E\nTEMPORARILY RP_ZNBNI_ONNIII ____ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: German nav warn 162 7 3'534, -)58:. northerly darsser ort.8. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "German nav warn 162 7 3'534, -)58:. northerly darsser ort.8",
      "Qlhipping br-629",
      "Cancel mpjpkenbn// : -04"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 48,
    "heading": "2026-04-07 00:27:19 AREA: J",
    "published_at": "2026-04-07 00:27:19",
    "area": "J",
    "message_id": "",
    "text": "ZCZC JA28_51815 UTC MAR\nONG_S_PTWX_LSHF_ONGJDF_JM__E_1_3' 3 7 MG_HXMZY_B\nP_GEPWQP_MG_H_M_MPORARILY DANGPYZCJMH_\n5__888 )9_EPMPPN 020-_0E\nN__YY_0_15.:_54-57___=______7__$0*_06.)'____80' 3/_6/!_312100 UTC_MA__BRUH___QMYPGQM_HO_TUZY3_**\n+_3:*3=_\n55-03.____19-3__9)\n0___0_2_9/-:,$__,+___1/2_ 0_0.30E __3\n $_+$3 30N 019-04.60E\nCANCESMHDFJBQPK__YY__TC _YONG__ZFF___ZCZC",
    "clean_text": "ZCZC JA28_51815 UTC MAR\nONG_S_PTWX_LSHF_ONGJDF_JM__E_1_3' 3 7 MG_HXMZY_B\nP_GEPWQP_MG_H_M_MPORARILY DANGPYZCJMH_\n5__888 )9_EPMPPN 020-_0E\nN__YY_0_15.:_54-57___=______7__$0*_06.)'____80' 3/_6/!_312100 UTC_MA__BRUH___QMYPGQM_HO_TUZY3_**\n+_3:*3=_\n55-03.____19-3__9)\n0___0_2_9/-:,$__,+___1/2_ 0_0.30E __3\n$_+$3 30N 019-04.60E\nCANCESMHDFJBQPK__YY__TC _YONG__ZFF___ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code J. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 49,
    "heading": "2026-04-07 00:26:24 AREA: J",
    "published_at": "2026-04-07 00:26:24",
    "area": "J",
    "message_id": "JA29",
    "text": "ZCZC JA29\n7_ !_!._:_/._69,9,__9__9(__9-8,_4- __:\nSHIP_Y_PQO_EZ_TC MAR HDYCM_M_-_0\n__$-,_/_7___\n_)533\n_ ___30E_CGG_APWMPP_0''=+_\n_43E\nCAIZCEL TDFJM_S_PKES_2200 ____.YO_\n\n_U_ZCZC",
    "clean_text": "ZCZC JA29\n7_ !_!._:_/._69,9,__9__9(__9-8,_4- __:\nSHIP_Y_PQO_EZ_TC MAR HDYCM_M_-_0\n__$-,_/_7___\n_)533\n_ ___30E_CGG_APWMPP_0''=+_\n_43E\nCAIZCEL TDFJM_S_PKES_2200 ____.YO_\n\n_U_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 53,
    "heading": "2026-04-07 00:22:30 AREA: J",
    "published_at": "2026-04-07 00:22:30",
    "area": "J",
    "message_id": "JA42",
    "text": "ZCZC JA42\n070600 UT_MYO_G_ZSFJDM\nM_Y_M_CTUUEONGJZCHDPYMLSHFX_POLISH COAST\nDUE TO MILITARY EXERCISES ZONE IS CLOSED FOR SHIPPING AND FISHERY: \nS-6 CENTERED 54-39.27N 016-36.59E\nAPRIL 7 AND 9 - 11, 2026,  FROM 06:00 TO  6/__N\nFM__YF_M_YZBM\nEXMGHZM\nU_XHZONGAZIII_PWONG_XPSMHDFJMBJ_\n _ _MG_H_YONGONNIII_ZCZC",
    "clean_text": "ZCZC JA42\n070600 UT_MYO_G_ZSFJDM\nM_Y_M_CTUUEONGJZCHDPYMLSHFX_POLISH COAST\nDUE TO MILITARY EXERCISES ZONE IS CLOSED FOR SHIPPING AND FISHERY:\nS-6 CENTERED 54-39.27N 016-36.59E\nAPRIL 7 AND 9 - 11, 2026, FROM 06:00 TO 6/__N\nFM__YF_M_YZBM\nEXMGHZM\nU_XHZONGAZIII_PWONG_XPSMHDFJMBJ_\n_ _MG_H_YONGONNIII_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Due to military exercises zone is closed for shipping and fishery. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Due to military exercises zone is closed for shipping and fishery",
      "S-6 centered 54-39.27n 016-36.59e",
      "M y m ctuueongjzchdpymlshfx polish coast"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 57,
    "heading": "2026-04-07 00:18:19 AREA: J",
    "published_at": "2026-04-07 00:18:19",
    "area": "J",
    "message_id": "JB31",
    "text": "ZCZC JB31\n061019 UTC APR\nBALTIC SEA MET WARNINGSO_G_S_M_YF_ONGJZCHDPJHPYMLSHFT_OHCBM_TAWP M/S. MONDAY EVENING 14-17 M/S. OVERNIGHT TUESDAY DECR. TUESDAY MORNING NW 14-17 M/S. HCPJW_MP\nPEBUN_EL_PYM_S M_YF_ONG_PJHPYMLSHFX_W 14-17 M/S. MONDAY EVENING DECR.\nSOUTHERN BALTIC: W 14-17 M/S. MONDAY EVENING DECR.\nCENTRAS LSHFX_W 14-17 M/S. TUESDAY AFTERNOON N. TUESDAY EVENING DECR.\nNNNN",
    "clean_text": "ZCZC JB31\n061019 UTC APR\nBALTIC SEA MET WARNINGSO_G_S_M_YF_ONGJZCHDPJHPYMLSHFT_OHCBM_TAWP M/S. MONDAY EVENING 14-17 M/S. OVERNIGHT TUESDAY DECR. TUESDAY MORNING NW 14-17 M/S. HCPJW_MP\nPEBUN_EL_PYM_S M_YF_ONG_PJHPYMLSHFX_W 14-17 M/S. MONDAY EVENING DECR.\nSOUTHERN BALTIC: W 14-17 M/S. MONDAY EVENING DECR.\nCENTRAS LSHFX_W 14-17 M/S. TUESDAY AFTERNOON N. TUESDAY EVENING DECR.\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code J. Readable text says: Baltic sea met warningso g s m yf ongjzchdpjhpymlshft ohcbm tawp m/s. monday evening 14-17 m/s. overnight tuesday decr. tuesday morning nw 14-17 m/s. hcpjw mp. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Baltic sea met warningso g s m yf ongjzchdpjhpymlshft ohcbm tawp m/s. monday evening 14-17 m/s. overnight tuesday decr. tuesday morning nw 14-17 m/s. hcpjw mp",
      "Pebun el pym s m yf ong pjhpymlshfx w 14-17 m/s. monday evening decr",
      "Southern baltic: w 14-17 m/s. monday evening decr"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 58,
    "heading": "2026-04-07 00:11:55 AREA: H",
    "published_at": "2026-04-07 00:11:55",
    "area": "H",
    "message_id": "",
    "text": "ZCZC H_O___PPP UTC QYM\n_IRAKLEIOMNADIO/WPHDPYM_ZYPJHON_Y_M_RNING NONE\nPART 2\nGENERAL SYNOPSIS 06-04-2*_:_._:__9,60'_!_0'3! OVE_ NONLS_EA AND 1018 OVER TAURUS AND HIGH\n1026 OVER GABES AND 1024 OVE_CST UP TO 07 6!_._6!_UTC\nKITHIRMJ_O__MP_NTZYM\nH\nGJZZMMUM_HMGSHPYM_HM_Z_M\n__\nG_S_HONSHPYMC_MHM_Z_B__3'5 (4858(9\n,2 4\n_9*_=5 LATER W N_ E OF 22.00 5 OR 6.\nSLGT BVT_ E IP TO MOD. LOC POOR_M CHANC_\n_F THUNDER_LORM OVER S\nSOU_H_J_MVYF_F_ZMFPY_PHLGT. LO_ POOCRSTORM\nKASTELLORIZZCJPECJ.\nSSNNH__U__U_A_U__UAA___KPJZC_C IJ4__ \nD _UU_\nFO__ OR 5:_'___._9,\n6.__/.\n_+.__'+_9,__+*.*_9,.7.__.9(._))5\n'-49.!:9_\n_9\n!_!(____!_9:_.!.)*!_+\n.0+,A_PYMB\nDBXU_N_O_\n3(+__64 AHO E OK _T\n_W \nONA_DYQMD\n__V_PY_EARLY MONDAY MORNING BRIEFLY DOWN TO -50 CM BELOW _ALTICCSEA CHART DATUM.\n__*_06.)'__ FROM SUNDAY EVENING -50 TO -60 CM CM B_LOW BALTICMJPM_DYHMWHCB_AFTERNOON RISING.\nNNDNO\n\n____WZHOOUQZ___\n_S_PUTT UTC MAR \nDANISH NAV WARN 177/_6\nDENMARK.._'/!_._-48BH_EQDRBEI_NFFMM DEPTH_Z_VED \n56-58.32N _PVO_K\nV*_6!0__\n!+_)_,,\n_\n_ZCZ_ IA_2\n_21139 UTC MAR\nSDKVM LII__FIO__WM L_WZW_ZCZ GULF OF F__ GULF OF RIGA ADDMJPMZ_MSW_GNSS, AIS, YWYMWMIIIK_JMFHPY_PY__PMZLJPY_PWMFMYP_MARINERS ADVISED TO EXERCFJVM_CHFZONGWBN_PARED FOR NAVIGATION IMPACTS.\nCANCEL BALTIC SEA NAV WARN 023/25\nNNNN",
    "clean_text": "ZCZC H_O___PPP UTC QYM\n_IRAKLEIOMNADIO/WPHDPYM_ZYPJHON_Y_M_RNING NONE\nPART 2\nGENERAL SYNOPSIS 06-04-2*_:_._:__9,60'_!_0'3! OVE_ NONLS_EA AND 1018 OVER TAURUS AND HIGH\n1026 OVER GABES AND 1024 OVE_CST UP TO 07 6!_._6!_UTC\nKITHIRMJ_O__MP_NTZYM\nH\nGJZZMMUM_HMGSHPYM_HM_Z_M\n__\nG_S_HONSHPYMC_MHM_Z_B__3'5 (4858(9\n,2 4\n_9*_=5 LATER W N_ E OF 22.00 5 OR 6.\nSLGT BVT_ E IP TO MOD. LOC POOR_M CHANC_\n_F THUNDER_LORM OVER S\nSOU_H_J_MVYF_F_ZMFPY_PHLGT. LO_ POOCRSTORM\nKASTELLORIZZCJPECJ.\nSSNNH__U__U_A_U__UAA___KPJZC_C IJ4__\nD _UU_\nFO__ OR 5:_'___._9,\n6.__/.\n_+.__'+_9,__+*.*_9,.7.__.9(._))5\n'-49.!:9_\n_9\n!_!(____!_9:_.!.)*!_+\n.0+,A_PYMB\nDBXU_N_O_\n3(+__64 AHO E OK _T\n_W\nONA_DYQMD\n__V_PY_EARLY MONDAY MORNING BRIEFLY DOWN TO -50 CM BELOW _ALTICCSEA CHART DATUM.\n__*_06.)'__ FROM SUNDAY EVENING -50 TO -60 CM CM B_LOW BALTICMJPM_DYHMWHCB_AFTERNOON RISING.\nNNDNO\n\n____WZHOOUQZ___\n_S_PUTT UTC MAR\nDANISH NAV WARN 177/_6\nDENMARK.._'/!_._-48BH_EQDRBEI_NFFMM DEPTH_Z_VED\n56-58.32N _PVO_K\nV*_6!0__\n!+_)_,,\n_\n_ZCZ_ IA_2\n_21139 UTC MAR\nSDKVM LII__FIO__WM L_WZW_ZCZ GULF OF F__ GULF OF RIGA ADDMJPMZ_MSW_GNSS, AIS, YWYMWMIIIK_JMFHPY_PY__PMZLJPY_PWMFMYP_MARINERS ADVISED TO EXERCFJVM_CHFZONGWBN_PARED FOR NAVIGATION IMPACTS.\nCANCEL BALTIC SEA NAV WARN 023/25\nNNNN",
    "resolved_station_name": "Irakleio",
    "resolved_country": "Greece",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Eastern Mediterranean and Crete",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "IRAKLEIO"
    ],
    "display_region_heading": "Greece - Eastern Mediterranean and Crete",
    "display_region_label": "Irakleio, Greece",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Greece - Eastern Mediterranean and Crete. Readable text says: Sou h j mvyf f zmfpy phlgt. lo poocrstorm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Sou h j mvyf f zmfpy phlgt. lo poocrstorm",
      "Sdkvm lii fio wm l wzw zcz gulf of f gulf of riga addmjpmz msw gnss, ais, ywymwmiiik jmfhpy py pmzljpy pwmfmyp mariners advised to exercfjvm chfzongwbn pared for navigation impacts",
      "Irakleiomnadio/wphdpym zypjhon y m rning none"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 59,
    "heading": "2026-04-07 00:09:57 AREA: G",
    "published_at": "2026-04-07 00:09:57",
    "area": "G",
    "message_id": "GA89",
    "text": "ZCZC GA89\n__-.\n_0._:0_49.-45\n56$_9,)8_(_(_8__(3'/7_+_7+___0*\n8_\n,_ 57-29.4_OG SIGNAL INOPERATIVE_BO_OHNKH_PMIVS_\nF__ (GA12'_9,_9,,8(((====\n_48,_ 04-:58:_\n1. Y_Y_01  _J_V\nTZMMPH_M\nP_M_LON_ SUNRISE TOMJCJPHMP_PYEM_I_Q_ SUJPMYXN_DGOOHM_'=346\n       570*2_WEDNAJW_MWMHDCYJWEON_M_XJ__01_)_68\n\n__\n3=346 \n        !48$_.9,...!.60.)+:202.)5__9....___9QKEGL)9GKMCRG__,_. 36-48.00N 021-50.00E\n_M_MX_YARWMPPN 021-54.00E\n  V__ __5 ___AQEMPCGPONMM\nPIOPCKMD_ON(:(_4)____ !. 36-3/:___\n,_(/:4_)_,_7589, -$=8'3$\n2. CANCEL THIS MSG \nE UUMG_H_MWPXM\nU_BGONNIII_UZCZC",
    "clean_text": "ZCZC GA89\n__-.\n_0._:0_49.-45\n56$_9,)8_(_(_8__(3'/7_+_7+___0*\n8_\n,_ 57-29.4_OG SIGNAL INOPERATIVE_BO_OHNKH_PMIVS_\nF__ (GA12'_9,_9,,8(((====\n_48,_ 04-:58:_\n1. Y_Y_01 _J_V\nTZMMPH_M\nP_M_LON_ SUNRISE TOMJCJPHMP_PYEM_I_Q_ SUJPMYXN_DGOOHM_'=346\n570*2_WEDNAJW_MWMHDCYJWEON_M_XJ__01_)_68\n\n__\n3=346\n!48$_.9,...!.60.)+:202.)5__9....___9QKEGL)9GKMCRG__,_. 36-48.00N 021-50.00E\n_M_MX_YARWMPPN 021-54.00E\nV__ __5 ___AQEMPCGPONMM\nPIOPCKMD_ON(:(_4)____ !. 36-3/:___\n,_(/:4_)_,_7589, -$=8'3$\n2. CANCEL THIS MSG\nE UUMG_H_MWPXM\nU_BGONNIII_UZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: 57-29.4 og signal inoperative bo ohnkh pmivs. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "57-29.4 og signal inoperative bo ohnkh pmivs",
      "2. cancel this msg"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 60,
    "heading": "2026-04-07 00:08:25 AREA: G",
    "published_at": "2026-04-07 00:08:25",
    "area": "G",
    "message_id": "GA71",
    "text": "ZCZC GA71\nWAM\n_Y\nHUMB__ORWELL GAS FIELD NORTHWESH_Y_J_1. METM_JDC__LO_02-59_ 7,'!_.2.''.8(_1___C_HKPO_HYCGQVYIKCFSYJNIII__ZCACPXRCN_Z 180/2_.9,_$_'RGA_LRY_BANK WIND FARM. _.9_,/_8_\nA. _.)9,/_/)9\n_/6_!1_)!8-62_!7_0-55.+__\n2. CAXPSM_AMD_!_6 (GZ_.9_'_9,,888_7\n_7_7$_39, 28$6_._9_)_OY 53-12.55.:.::$__!_8 4)_803-\n_!_3=_:__ZCZC",
    "clean_text": "ZCZC GA71\nWAM\n_Y\nHUMB__ORWELL GAS FIELD NORTHWESH_Y_J_1. METM_JDC__LO_02-59_ 7,'!_.2.''.8(_1___C_HKPO_HYCGQVYIKCFSYJNIII__ZCACPXRCN_Z 180/2_.9,_$_'RGA_LRY_BANK WIND FARM. _.9_,/_8_\nA. _.)9,/_/)9\n_/6_!1_)!8-62_!7_0-55.+__\n2. CAXPSM_AMD_!_6 (GZ_.9_'_9,,888_7\n_7_7$_39, 28$6_._9_)_OY 53-12.55.:.::$__!_8 4)_803-\n_!_3=_:__ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "ORWELL GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 61,
    "heading": "2026-04-07 00:06:39 AREA: T",
    "published_at": "2026-04-07 00:06:39",
    "area": "T",
    "message_id": "",
    "text": "ZCZC_ERA__220/269,___0\n_9,_)'__2_-_943 $3.9,($16)!_9'X_O_YMIN \n_ U__EGUMCSFHMWM+_.*!_'.!+_CO_\n+__77_\n+:+: _!09+ 215/26 9 __'. \nMRCC DOVB_R_ZLYOI_T SERVICE FROM BAWDSEY SITEM\nH_H__ 07_ UMZHGPV3KGR_XAXAXM__H_BN_KRONKZ_DR_CZDP  DAY_IJAJWA_X_ M__F Q_0 _1!:0_ '34=8:3._6+.0_51_00__ (,'.__/*8:_4_ 0017:58__MHP  _\nNNNN",
    "clean_text": "ZCZC_ERA__220/269,___0\n_9,_)'__2_-_943 $3.9,($16)!_9'X_O_YMIN\n_ U__EGUMCSFHMWM+_.*!_'.!+_CO_\n+__77_\n+:+: _!09+ 215/26 9 __'.\nMRCC DOVB_R_ZLYOI_T SERVICE FROM BAWDSEY SITEM\nH_H__ 07_ UMZHGPV3KGR_XAXAXM__H_BN_KRONKZ_DR_CZDP DAY_IJAJWA_X_ M__F Q_0 _1!:0_ '34=8:3._6+.0_51_00__ (,'.__/*8:_4_ 0017:58__MHP _\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Mrcc dovb r zlyoi t service from bawdsey sitem"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 62,
    "heading": "2026-04-07 00:05:36 AREA: G",
    "published_at": "2026-04-07 00:05:36",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ _7_57_9_$''.\nMRCC SHETLANW_1. MF RTC_C_IC _P\nL_ES FROM GREGNESS SITE 57-0'___4'/_\n_2. CANCEL WZ 213/26 (G\nR ___CFFYFF_C___QV_AXAXM_\n__Z 27_57_9,_$_'!7-__484$_._*\n+_\n++_-5!94_._4+(/:UBBPLO\nL_QUM__P\nMGCSFHMUBK_AVAIDS INOP__(_9+__7+__8$\n_ 2+  TUE_VR__KUZCZC",
    "clean_text": "ZCZC GA04\nWZ _7_57_9_$''.\nMRCC SHETLANW_1. MF RTC_C_IC _P\nL_ES FROM GREGNESS SITE 57-0'___4'/_\n_2. CANCEL WZ 213/26 (G\nR ___CFFYFF_C___QV_AXAXM_\n__Z 27_57_9,_$_'!7-__484$_._*\n+_\n++_-5!94_._4+(/:UBBPLO\nL_QUM__P\nMGCSFHMUBK_AVAIDS INOP__(_9+__7+__8$\n_ 2+ TUE_VR__KUZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: 2. cancel wz 213/26 (g. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "2. cancel wz 213/26 (g"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 63,
    "heading": "2026-04-07 00:04:05 AREA: T",
    "published_at": "2026-04-07 00:04:05",
    "area": "T",
    "message_id": "",
    "text": "ZCZCG__\nWZ 221/2_.9___34. \n:_,1_!!'$+60._!\n__:3)O_BUOYS UNLIT_\nA.._.1N 002-Z_HG__:::._,B_M CANCEL W_MD_Y K\nHS_GIII_NIII__ZXAXM_\n __Z 2_ZX_R_IHJ__ \nINNER BANK_.9__*($_8_ 1)\n_-4( 53-11.6__02-05.8E UG_U_T AND SSMOK71__-58=3.\nNNLL_U___Z_TGBRC_Z 226/26\nHUMBER.\nBPJJP_PYO_FIELD.\n1. PLATFORM 49/23E, 539N /\n_29.1P\nM__SIGNAL INOP___HA_U_M CANCEL WAM\n__TB_PNLA_EK_U___ZCZC",
    "clean_text": "ZCZCG__\nWZ 221/2_.9___34.\n:_,1_!!'$+60._!\n__:3)O_BUOYS UNLIT_\nA.._.1N 002-Z_HG__:::._,B_M CANCEL W_MD_Y K\nHS_GIII_NIII__ZXAXM_\n__Z 2_ZX_R_IHJ__\nINNER BANK_.9__*($_8_ 1)\n_-4( 53-11.6__02-05.8E UG_U_T AND SSMOK71__-58=3.\nNNLL_U___Z_TGBRC_Z 226/26\nHUMBER.\nBPJJP_PYO_FIELD.\n1. PLATFORM 49/23E, 539N /\n_29.1P\nM__SIGNAL INOP___HA_U_M CANCEL WAM\n__TB_PNLA_EK_U___ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: 3)o buoys unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "3)o buoys unlit",
      "1. platform 49/23e, 539n /"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 65,
    "heading": "2026-04-07 00:00:17 AREA: G",
    "published_at": "2026-04-07 00:00:17",
    "area": "G",
    "message_id": "GE26",
    "text": "ZCZC GE26\nISSUED BY THE MET OFFICE AT 210MGZM_Z_\nQBHK3+__(_,_+(,__(_8,_'!7_3,34-) '8_:_!+._.78(1__2_32___8___95_(_9_,_3,3)(9_5 1030 BYCFVIL_OMORROW. _II_LOW EXP S _MAFBRPBBB\n_SULYM_IMPONONNKEC_EBZUKXD\nNCMK_KFEWEP_U\n_YLV_P  4 TO 6 AT FIY\nSMSS_SMUHS_E* :/_1,__(_+_ 3:  BUT BECMG SEM_YMGHZM_A\nVJ_BOTGIPL_SC__ R_WGPF Q_VOS_MFMHDTH TYNE DOOYVS\n_ 2 TZ__YMT_B__EQ_B_,_3_!0_8_$:):_'EBH_EBGGIZ__ FE__VIQR__F _P_B\nUOR MOD. FAIR. GZZWONONGDC_LPYMHDBPJO__ TOM_YMZN_EBNB_EBQNBBH_SHMZYM_ZWFZWVF\nW_FVW__O_IO_UI\nJUMBER_OQA_O__ZYMJSH__MWK__F_ZZWONONG_A_SLE\nS OR SE _ INCMQC AT T_ROUGH_MGLP_ Q\nWTQ\n_EPBEA_PT IMJMWMPMI___OCNL YHVG_MCGK_KFP\nW_LOO FNH_P_R_QT\nWS_C\nJ89.4___)____4BHPDEE_KG_GS EXP IN FORTIE____6+_-- -456, FORTDCM_X_\n_J\n DOGGER AND _G___BYF Q__ OF STRG W_B_2/'RZ__U__ZCZC",
    "clean_text": "ZCZC GE26\nISSUED BY THE MET OFFICE AT 210MGZM_Z_\nQBHK3+__(_,_+(,__(_8,_'!7_3,34-) '8_:_!+._.78(1__2_32___8___95_(_9_,_3,3)(9_5 1030 BYCFVIL_OMORROW. _II_LOW EXP S _MAFBRPBBB\n_SULYM_IMPONONNKEC_EBZUKXD\nNCMK_KFEWEP_U\n_YLV_P 4 TO 6 AT FIY\nSMSS_SMUHS_E* :/_1,__(_+_ 3: BUT BECMG SEM_YMGHZM_A\nVJ_BOTGIPL_SC__ R_WGPF Q_VOS_MFMHDTH TYNE DOOYVS\n_ 2 TZ__YMT_B__EQ_B_,_3_!0_8_$:):_'EBH_EBGGIZ__ FE__VIQR__F _P_B\nUOR MOD. FAIR. GZZWONONGDC_LPYMHDBPJO__ TOM_YMZN_EBNB_EBQNBBH_SHMZYM_ZWFZWVF\nW_FVW__O_IO_UI\nJUMBER_OQA_O__ZYMJSH__MWK__F_ZZWONONG_A_SLE\nS OR SE _ INCMQC AT T_ROUGH_MGLP_ Q\nWTQ\n_EPBEA_PT IMJMWMPMI___OCNL YHVG_MCGK_KFP\nW_LOO FNH_P_R_QT\nWS_C\nJ89.4___)____4BHPDEE_KG_GS EXP IN FORTIE____6+_-- -456, FORTDCM_X_\n_J\nDOGGER AND _G___BYF Q__ OF STRG W_B_2/'RZ__U__ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOGGER",
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Issued by the met office at 210mgzm z",
      "Uor mod. fair. gzzwonongdc lpymhdbpjo tom ymzn ebnb ebqnbbh shmzym zwfzwvf",
      "Sulym impononnkec ebzukxd"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 3,
    "heading": "2026-04-06 23:56:33 AREA: F",
    "published_at": "2026-04-06 23:56:33",
    "area": "F",
    "message_id": "FA88",
    "text": "ZCZC FA88\n151\n,__4\n2 \n)\n\n_+\n1_)___:_)_-8,-.348.\nDUE TO HEAVY ICE CONDITIONS PILOTAGE OF \nTRANSIT TRAFFIC THROUGH VAINAMERFMDJMONLPPMJCJ_PWPW_\nNNNN",
    "clean_text": "ZCZC FA88\n151\n,__4\n2\n)\n\n_+\n1_)___:_)_-8,-.348.\nDUE TO HEAVY ICE CONDITIONS PILOTAGE OF\nTRANSIT TRAFFIC THROUGH VAINAMERFMDJMONLPPMJCJ_PWPW_\nNNNN",
    "display_region_heading": "Unresolved B1 code F",
    "display_region_label": "B1 code F",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code F. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Due to heavy ice conditions pilotage of",
      "Transit traffic through vainamerfmdjmonlppmjcj pwpw"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 6,
    "heading": "2026-04-06 23:53:35 AREA: F",
    "published_at": "2026-04-06 23:53:35",
    "area": "F",
    "message_id": "FA03",
    "text": "ZCZC FA03\n251840 _TC MAR\nPPHM\nM_Y_M__YL_O_XHS_ UT_ APR\nIN AREA TEMP DANGEROUS TO SHIPPING\n60-00.50N 027-16.50E 60-05.40N 027-34.00E\n59-53.00N 027 __59-48.00N 027-3_.00E_\nC_V_IS MESSAGE 302200 UTC APR.\nNNNN",
    "clean_text": "ZCZC FA03\n251840 _TC MAR\nPPHM\nM_Y_M__YL_O_XHS_ UT_ APR\nIN AREA TEMP DANGEROUS TO SHIPPING\n60-00.50N 027-16.50E 60-05.40N 027-34.00E\n59-53.00N 027 __59-48.00N 027-3_.00E_\nC_V_IS MESSAGE 302200 UTC APR.\nNNNN",
    "display_region_heading": "Unresolved B1 code F",
    "display_region_label": "B1 code F",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code F. Readable text says: In area temp dangerous to shipping. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "In area temp dangerous to shipping"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 8,
    "heading": "2026-04-06 23:51:38 AREA: F",
    "published_at": "2026-04-06 23:51:38",
    "area": "F",
    "message_id": "FA69",
    "text": "ZCZC FA69\n21059 UTC JUL\n_BALTIC SEA NAV WARN 026/25.\nSOUTHERN, SOUTHEASTERN, CENTRAL AND \nNORTHERN BALTIC, GULF Z._!_)7B_RIGA AND SEA OF AASANJGM\nGNSS, AIS, RADAR_W_WZ_JMFHPY_PY__PMONZLJPY_PWMFMYQ__O_G_YFPYJMW_FJ_WMHZMP_PYXFJ_M_CHFZONWMLP\n_YPYPWM_ZYM\nF_HFZMF_X_J\n_OG_XPSMLSHF__KBLKOBKCE_B_:,_:$)_+___+,'!!___\nZCZC",
    "clean_text": "ZCZC FA69\n21059 UTC JUL\n_BALTIC SEA NAV WARN 026/25.\nSOUTHERN, SOUTHEASTERN, CENTRAL AND\nNORTHERN BALTIC, GULF Z._!_)7B_RIGA AND SEA OF AASANJGM\nGNSS, AIS, RADAR_W_WZ_JMFHPY_PY__PMONZLJPY_PWMFMYQ__O_G_YFPYJMW_FJ_WMHZMP_PYXFJ_M_CHFZONWMLP\n_YPYPWM_ZYM\nF_HFZMF_X_J\n_OG_XPSMLSHF__KBLKOBKCE_B_:,_:$)_+___+,'!!___\nZCZC",
    "display_region_heading": "Unresolved B1 code F",
    "display_region_label": "B1 code F",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code F. Readable text says: Gnss, ais, radar w wz jmfhpy py pmonzljpy pwmfmyq o g yfpyjmw fj wmhzmp pyxfj m chfzonwmlp. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gnss, ais, radar w wz jmfhpy py pmonzljpy pwmfmyq o g yfpyjmw fj wmhzmp pyxfj m chfzonwmlp",
      "Northern baltic, gulf z. ! )7b riga and sea of aasanjgm",
      "Baltic sea nav warn 026/25"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 9,
    "heading": "2026-04-06 23:50:21 AREA: F",
    "published_at": "2026-04-06 23:50:21",
    "area": "F",
    "message_id": "FB04",
    "text": "ZCZC FB04\n061019 UTC APR\nBALTIC SEA MET WAR_I_M\nNEAR GAA_MA_F__O_G_PHYSMLSHF_\nW 14-17 M/F\n_MGHCPJW_M_06++.\n___:0*2_.0\n0__.20/6__9,_+6_$06.)'_!/_\nNW 14-17 M/S. TUESDAY EVENING DECR.\nGULF OF RIGA: \nW-NW 14-17 M/S. TUESDAY MORNING DECR.\nSEA OF AALAND: \nNW 14-17 M/S. MONDAY E_NG DECR. \nOVERNIGHTVTU\nF__MUM_ YICM__. \nTUESDA_ __YK_MW_XY_BONG_Y_DFPS_ZMV__MONGUM_ Y CM_B_M TUESDAY MORNING DECR.\n__NN\n\nU_U _\nZCZC",
    "clean_text": "ZCZC FB04\n061019 UTC APR\nBALTIC SEA MET WAR_I_M\nNEAR GAA_MA_F__O_G_PHYSMLSHF_\nW 14-17 M/F\n_MGHCPJW_M_06++.\n___:0*2_.0\n0__.20/6__9,_+6_$06.)'_!/_\nNW 14-17 M/S. TUESDAY EVENING DECR.\nGULF OF RIGA:\nW-NW 14-17 M/S. TUESDAY MORNING DECR.\nSEA OF AALAND:\nNW 14-17 M/S. MONDAY E_NG DECR.\nOVERNIGHTVTU\nF__MUM_ YICM__.\nTUESDA_ __YK_MW_XY_BONG_Y_DFPS_ZMV__MONGUM_ Y CM_B_M TUESDAY MORNING DECR.\n__NN\n\nU_U _\nZCZC",
    "display_region_heading": "Unresolved B1 code F",
    "display_region_label": "B1 code F",
    "subject_label": "meteorological warning",
    "subject_code": "B",
    "decoded_summary": "meteorological warning for Unresolved B1 code F. Readable text says: Baltic sea met war i m. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Baltic sea met war i m",
      "Nw 14-17 m/s. tuesday evening decr",
      "W-nw 14-17 m/s. tuesday morning decr"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 10,
    "heading": "2026-04-06 23:45:50 AREA: E",
    "published_at": "2026-04-06 23:45:50",
    "area": "E",
    "message_id": "EA21",
    "text": "ZCZC EA21\nWZ 182/26 \nLUNDY. \nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "clean_text": "ZCZC EA21\nWZ 182/26\nLUNDY.\nSPANIEL BUOY 51-38.1N 004-39.7W UNLIT.\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY",
      "SPANIEL BUOY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Spaniel buoy 51-38.1n 004-39.7w unlit. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Spaniel buoy 51-38.1n 004-39.7w unlit"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 11,
    "heading": "2026-04-06 23:45:28 AREA: E",
    "published_at": "2026-04-06 23:45:28",
    "area": "E",
    "message_id": "EA22",
    "text": "ZCZC EA22\nWZ 1855__.9__7!___\n_.9,_002'0*.'!_$_.\n__0+_:__.\n_ _H_HGUM+_.*!_!.!+_06_!\n0__8(\nNNNN",
    "clean_text": "ZCZC EA22\nWZ 1855__.9__7!___\n_.9,_002'0*.'!_$_.\n__0+_:__.\n_ _H_HGUM+_.*!_!.!+_06_!\n0__8(\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 12,
    "heading": "2026-04-06 23:45:08 AREA: E",
    "published_at": "2026-04-06 23:45:08",
    "area": "E",
    "message_id": "EA27",
    "text": "ZCZC EA27\nWZ 192/26 \nLUNDY. \nLAVURNOCVMJFHMLCZEM\nH U__G_PEAQPMIW UNLIT. \n \nNNNN",
    "clean_text": "ZCZC EA27\nWZ 192/26\nLUNDY.\nLAVURNOCVMJFHMLCZEM\nH U__G_PEAQPMIW UNLIT.\n\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "LUNDY"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - English Channel and western approaches. Readable text says: Lavurnocvmjfhmlczem. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Lavurnocvmjfhmlczem"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 13,
    "heading": "2026-04-06 23:44:44 AREA: E",
    "published_at": "2026-04-06 23:44:44",
    "area": "E",
    "message_id": "EA40",
    "text": "ZCZC EA40\nWZ 215/26 \nGMDSS. \nMRCC DOVER. \nMF R/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR. \nNNNN",
    "clean_text": "ZCZC EA40\nWZ 215/26\nGMDSS.\nMRCC DOVER.\nMF R/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. This is a weather bulletin; readable sections mention ice across the covered waters.",
    "decoded_highlights": [
      "Mf r/t service from bawdsey site 51-59.6n 001-24.5e off air",
      "Mrcc dover"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 14,
    "heading": "2026-04-06 23:44:20 AREA: E",
    "published_at": "2026-04-06 23:44:20",
    "area": "E",
    "message_id": "EA46",
    "text": "ZCZC EA46\nWZ 234/26 \nPLYMOUTH. LANDS END SOUTHEASTWARDS. \nSOUTH CARDINAL BUOY 50-01.2N 005-40.4W UNLIT. \nNNNN",
    "clean_text": "ZCZC EA46\nWZ 234/26\nPLYMOUTH. LANDS END SOUTHEASTWARDS.\nSOUTH CARDINAL BUOY 50-01.2N 005-40.4W UNLIT.\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. Readable text says: South cardinal buoy 50-01.2n 005-40.4w unlit.",
    "decoded_highlights": [
      "South cardinal buoy 50-01.2n 005-40.4w unlit",
      "Plymouth. lands end southeastwards"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 15,
    "heading": "2026-04-06 23:43:51 AREA: E",
    "published_at": "2026-04-06 23:43:51",
    "area": "E",
    "message_id": "EA49",
    "text": "ZCZC EA49\n272048Z MAR 2026 \nEA49 \nWZ 240/26 \nFASTNET. \nBLACKBALL LEDGE SOUTHEASTWARDS. \nEAST CARDINAL BUOY 51-55.3N 007-48.5W UNLIT. \n\nNNNN",
    "clean_text": "ZCZC EA49\n272048Z MAR 2026\nEA49\nWZ 240/26\nFASTNET.\nBLACKBALL LEDGE SOUTHEASTWARDS.\nEAST CARDINAL BUOY 51-55.3N 007-48.5W UNLIT.\n\nNNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. Readable text says: East cardinal buoy 51-55.3n 007-48.5w unlit.",
    "decoded_highlights": [
      "East cardinal buoy 51-55.3n 007-48.5w unlit",
      "Blackball ledge southeastwards"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 16,
    "heading": "2026-04-06 23:43:27 AREA: E",
    "published_at": "2026-04-06 23:43:27",
    "area": "E",
    "message_id": "EA54",
    "text": "ZCZC EA54\n_AM\nUH T_EMO_G_JHPH_\nGREAT SALTEE SOUTHWARDS. \nCONINGBEG BUOY 52-03.2N 006-38.6W OFF STATFZ_NNNN",
    "clean_text": "ZCZC EA54\n_AM\nUH T_EMO_G_JHPH_\nGREAT SALTEE SOUTHWARDS.\nCONINGBEG BUOY 52-03.2N 006-38.6W OFF STATFZ_NNNN",
    "display_region_heading": "Unresolved B1 code E",
    "display_region_label": "B1 code E",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code E. Readable text says: Coningbeg buoy 52-03.2n 006-38.6w off statfz nnnn. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Coningbeg buoy 52-03.2n 006-38.6w off statfz nnnn",
      "Great saltee southwards"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 17,
    "heading": "2026-04-06 23:40:17 AREA: E",
    "published_at": "2026-04-06 23:40:17",
    "area": "E",
    "message_id": "EE07",
    "text": "ZCZC EE07\nISSUED BY THE MET OFFICE AT 1900 ON MON 06 APR\n\nGALE WARNINGS: FITZROY\n\nTHQMPPYSMJFHCHFZMHM_FW__ONGDF_DMPHDPYSWJM\n _UFM_P_M_YBMLF_DH_\n_PMGLEM_FW__MHZ_ZY_ZU___ NEW LOW EXP S FITZROY 1007 BY SAME TIME\n\n24-HR FORECASTS\n\nTHAMES DOVER\nVRB 2 TO 4 BECMG E OR SE 3 TO 5. SLT OR MOD IN HUMBER, BUT EL_P_DPYPMJ_ZZHDMZYMJSH_FAIR. GOOD\n\nWIGHT PORTLAND PLYMOUTH BISCAY\nE OR SE 4 TO 6,.__0_:6:)9,8: 3 TO 5 IN PLYMOUTH AND BISCAY. SLT OR MOD, BECMG MOD OR ROUGH IN PLYMOUTH AND BISCAY, AND LTR ALSO IN PORTLAND. SHWRS LTR IN LJXE\n__GZZWONONG_FHAYZ_MJZSPONGJMZYMJPMLPX__XE_IC, 4 TO 6, INCR 7 OR GALE 8 IN W FI_ROY, PERHAPS SEV GALE 9 LTR IN SW FITZROY. MOD AT FIRST IN\nAL FITZROY, OTHERWISE ROUGH OR VERY ROUGH, OCNL _I_H IN W. RAIN OR SD_YJ\nMGHDCWPY____3-_MOD OR GOOD, OCNL POOR\n\nLUNDY FASTNET\nSE 4 TO 6, OCNL 7 AT FIRST, BECMG CYCLONIC 3 TO 5 LTR. IN FASTNET, MOD ZYMYZC_DM_PX_OUGH OR VERY ROUGH, ELSEWHERE SLT OR MOD, BUT BECMG ROUGH IN W LUNDY. RAIN AT TIMES IN FASTNET. GOOD, OCNL POOR IN FASTNET\n\nOUTLOOK FLU _UYMGDZCYJ_GALES EXP IN FITZROY, MAINLY IN THE SW. STRG WINDS EXP AT FIRST IN W SOLE\nNNNN",
    "clean_text": "ZCZC EE07\nISSUED BY THE MET OFFICE AT 1900 ON MON 06 APR\n\nGALE WARNINGS: FITZROY\n\nTHQMPPYSMJFHCHFZMHM_FW__ONGDF_DMPHDPYSWJM\n_UFM_P_M_YBMLF_DH_\n_PMGLEM_FW__MHZ_ZY_ZU___ NEW LOW EXP S FITZROY 1007 BY SAME TIME\n\n24-HR FORECASTS\n\nTHAMES DOVER\nVRB 2 TO 4 BECMG E OR SE 3 TO 5. SLT OR MOD IN HUMBER, BUT EL_P_DPYPMJ_ZZHDMZYMJSH_FAIR. GOOD\n\nWIGHT PORTLAND PLYMOUTH BISCAY\nE OR SE 4 TO 6,.__0_:6:)9,8: 3 TO 5 IN PLYMOUTH AND BISCAY. SLT OR MOD, BECMG MOD OR ROUGH IN PLYMOUTH AND BISCAY, AND LTR ALSO IN PORTLAND. SHWRS LTR IN LJXE\n__GZZWONONG_FHAYZ_MJZSPONGJMZYMJPMLPX__XE_IC, 4 TO 6, INCR 7 OR GALE 8 IN W FI_ROY, PERHAPS SEV GALE 9 LTR IN SW FITZROY. MOD AT FIRST IN\nAL FITZROY, OTHERWISE ROUGH OR VERY ROUGH, OCNL _I_H IN W. RAIN OR SD_YJ\nMGHDCWPY____3-_MOD OR GOOD, OCNL POOR\n\nLUNDY FASTNET\nSE 4 TO 6, OCNL 7 AT FIRST, BECMG CYCLONIC 3 TO 5 LTR. IN FASTNET, MOD ZYMYZC_DM_PX_OUGH OR VERY ROUGH, ELSEWHERE SLT OR MOD, BUT BECMG ROUGH IN W LUNDY. RAIN AT TIMES IN FASTNET. GOOD, OCNL POOR IN FASTNET\n\nOUTLOOK FLU _UYMGDZCYJ_GALES EXP IN FITZROY, MAINLY IN THE SW. STRG WINDS EXP AT FIRST IN W SOLE\nNNNN",
    "resolved_station_name": "Niton",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "English Channel and western approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WIGHT",
      "LUNDY",
      "PORTLAND"
    ],
    "display_region_heading": "United Kingdom - English Channel and western approaches",
    "display_region_label": "Niton, United Kingdom",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for United Kingdom - English Channel and western approaches. This is a weather bulletin; readable sections mention gales, ice, rain across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gzzwonong fhayz mjzspongjmzymjpmlpx xe ic, 4 to 6, incr 7 or gale 8 in w fi roy, perhaps sev gale 9 ltr in sw fitzroy. mod at first in",
      "Outlook flu uymgdzcyj gales exp in fitzroy, mainly in the sw. strg winds exp at first in w sole",
      "Gale warnings: fitzroy"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 19,
    "heading": "2026-04-06 23:30:32 AREA: N",
    "published_at": "2026-04-06 23:30:32",
    "area": "N",
    "message_id": "",
    "text": "ZCZC NA_TP\nFYZPMFIGATIONAL WAR_ING NO_ 7 /2026\n _.....................+,__$0.6:23_,24)*_$79+3___4_0_6(6:.___+!39(39)___,($____/99(319(_1_/*__!+__94'_-=,\n27200_UTC MARFM_U_EONONGONNONIII_\nZCZC",
    "clean_text": "ZCZC NA_TP\nFYZPMFIGATIONAL WAR_ING NO_ 7 /2026\n_.....................+,__$0.6:23_,24)*_$79+3___4_0_6(6:.___+!39(39)___,($____/99(319(_1_/*__!+__94'_-=,\n27200_UTC MARFM_U_EONONGONNONIII_\nZCZC",
    "display_region_heading": "Unresolved B1 code N",
    "display_region_label": "B1 code N",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code N. Readable text says: Fyzpmfigational war ing no 7 /2026. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Fyzpmfigational war ing no 7 /2026"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 20,
    "heading": "2026-04-06 23:00:11 AREA: A",
    "published_at": "2026-04-06 23:00:11",
    "area": "A",
    "message_id": "AE82",
    "text": "ZCZC AE82\nAY OF BISCAY BULLETIN (MHYPM__SONG_PH_Z_G__K_POO_ZM\n_M_DYM\nCXKPBHC_BCKXDBHMD_Z_K7__KY_AERZ___9_==_171__6\n6+__)4\n3_)!\n1__6 AT 12 UTC\nLOW 96_ 57N27W, MOV N.\nTHUNDARCW DPI QVJD _9_.__/(:9729G__+__$_,49W BY\n_ _TIY UTC, THEN 97 _+__5_34 !-4-$-6.\n7__\n\n\n\nE C EKMST TO A$WI A\nM\n_BU_EB_OKBHBAOIBT\nZ_PPP K_H___\n\nAFA_MKQP_H_ _EBH_ R175:=__ (':___5_2!__+S_KEKBSN._MR_MZM_YCJR_\nNN GUB_\nGX_XU_R\nWZS___W_U_\n____U\n_I__Z_A_M__MZ\n_WY\nCAKBHEE_RCE CSZPN_ZB_US__J_010832 KT_MYM\nUYXWYN  _QTXW_V BREST\n_ QTS__+__):__7_7_(___7__\n787_7__7(ZCZC",
    "clean_text": "ZCZC AE82\nAY OF BISCAY BULLETIN (MHYPM__SONG_PH_Z_G__K_POO_ZM\n_M_DYM\nCXKPBHC_BCKXDBHMD_Z_K7__KY_AERZ___9_==_171__6\n6+__)4\n3_)!\n1__6 AT 12 UTC\nLOW 96_ 57N27W, MOV N.\nTHUNDARCW DPI QVJD _9_.__/(:9729G__+__$_,49W BY\n_ _TIY UTC, THEN 97 _+__5_34 !-4-$-6.\n7__\n\nE C EKMST TO A$WI A\nM\n_BU_EB_OKBHBAOIBT\nZ_PPP K_H___\n\nAFA_MKQP_H_ _EBH_ R175:=__ (':___5_2!__+S_KEKBSN._MR_MZM_YCJR_\nNN GUB_\nGX_XU_R\nWZS___W_U_\n____U\n_I__Z_A_M__MZ\n_WY\nCAKBHEE_RCE CSZPN_ZB_US__J_010832 KT_MYM\nUYXWYN _QTXW_V BREST\n_ QTS__+__):__7_7_(___7__\n787_7__7(ZCZC",
    "display_region_heading": "Unresolved B1 code A",
    "display_region_label": "B1 code A",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Unresolved B1 code A. Readable text says: E c ekmst to a$wi a. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "E c ekmst to a$wi a",
      "Low 96 57n27w, mov n",
      "Uyxwyn qtxw v brest"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 21,
    "heading": "2026-04-06 22:48:05 AREA: T",
    "published_at": "2026-04-06 22:48:05",
    "area": "T",
    "message_id": "",
    "text": "ZCZ_MU_\nU_AVURNAV HZCSZM\nUETUE_\nTW_OI_)___\n_034-589,'\n+__8_4 __00 UH_M_MNKQOL_PYWETO UTC A___\n_ROV IMPLEMANTHFZMFMKECBJ_B\n RWARLMU_0:__8_0$_))1_\n 42-4$_ 003_K_,,_3((3/)3_'+_\nXGU_YPYV1!6__.6__._56.40E/42-4!.+__9,$:+__\n 42_+_____9/\n2/_*___2)_:_-45 !GXFMB_QIL_HX_UHPWON\nCAN_PSMHDFJMBJ_\n_GONKQNII\nUALLOOOOOOOOV_OC_OO\nOOL___5_)4_-___-_ZCZC",
    "clean_text": "ZCZ_MU_\nU_AVURNAV HZCSZM\nUETUE_\nTW_OI_)___\n_034-589,'\n+__8_4 __00 UH_M_MNKQOL_PYWETO UTC A___\n_ROV IMPLEMANTHFZMFMKECBJ_B\nRWARLMU_0:__8_0$_))1_\n42-4$_ 003_K_,,_3((3/)3_'+_\nXGU_YPYV1!6__.6__._56.40E/42-4!.+__9,$:+__\n42_+_____9/\n2/_*___2)_:_-45 !GXFMB_QIL_HX_UHPWON\nCAN_PSMHDFJMBJ_\n_GONKQNII\nUALLOOOOOOOOV_OC_OO\nOOL___5_)4_-___-_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: U avurnav hzcszm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "U avurnav hzcszm",
      "Rov implemanthfzmfmkecbj b",
      "Gonkqnii"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 23,
    "heading": "2026-04-06 22:30:57 AREA: V",
    "published_at": "2026-04-06 22:30:57",
    "area": "V",
    "message_id": "VA69",
    "text": "ZCZC VA69\n191638 ITC MAR 2026\nWZ 215/26\nGMDSS.\nMRCC DOVER99_ 4/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "clean_text": "ZCZC VA69\n191638 ITC MAR 2026\nWZ 215/26\nGMDSS.\nMRCC DOVER99_ 4/T SERVICE FROM BAWDSEY SITE 51-59.6N 001-24.5E OFF AIR.\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "DOVER"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Mrcc dover99 4/t service from bawdsey site 51-59.6n 001-24.5e off air"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 24,
    "heading": "2026-04-06 22:30:23 AREA: V",
    "published_at": "2026-04-06 22:30:23",
    "area": "V",
    "message_id": "VA75",
    "text": "ZCZC VA75\n3015__.___/._6_\n_\nWZ 242/26 \nTHAMES. \nGUNFLEET SANDS WIND FARM. \n1. TURBFPM\n_QARTMPN 001-14.6E FOG SIGNAL INOPERATIVE. \n2. CANCEL WZ 126/26 (VA58).\nNNNN",
    "clean_text": "ZCZC VA75\n3015__.___/._6_\n_\nWZ 242/26\nTHAMES.\nGUNFLEET SANDS WIND FARM.\n1. TURBFPM\n_QARTMPN 001-14.6E FOG SIGNAL INOPERATIVE.\n2. CANCEL WZ 126/26 (VA58).\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text reports a fog signal outage. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Qartmpn 001-14.6e fog signal inoperative",
      "Gunfleet sands wind farm",
      "2. cancel wz 126/26 (va58)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 25,
    "heading": "2026-04-06 22:20:23 AREA: U",
    "published_at": "2026-04-06 22:20:23",
    "area": "U",
    "message_id": "",
    "text": "ZCZC UE6__,_ _UMG_H_OK4(49,_-8-79 4-2!+9,9,_0\n_48_+7//$_,:_=_:_ 6_85344-,3-, -43-' 8''73$ _690._+__+_06+:0,=49)9_._.0.5_: !.+._ZHGNHGRHCGCP_07/04/2026\n1. WARNIJ_XO__HWXUEQAS UNDER COCYJP_OVERMSP_HFPMLJFMQNKBHQAX_WB_PMJPONWMSG_QKBQNC_HDWXIC_PK_JNFU__AZ_: OVER L_______=_(_(7_1-/_2______)___\nGASPJMCEBU_SE: NIS_GALES FORECA\n_THER SITUATION:\nINSTABILITY AREA ZVPY_SFAB G__I GGIL_JFWP_HIGH AND FLAT FIELD OF\n1024 HPMZ_PYM_PJH_GXPHYS S_6 8_34!__BH_32_:7_ 0__ __0()1020 HPA OVEYMQE_QIGCSLINK_KI D_GI_R\n_PYM_Y_B_QLVG_BGIHIPGIZD\nI WV_N\nRSV_\n0___+6*\n0_1$_1__._! 07/04/2026 AND 12 HOURS OUTLOO__NAE_WAAB_E\n__\n\nAVZ_H\n_E_V___YLX__2 :_,_.*__$:_$04*1_()7_)=___!3!3_3__8_01_+9$._!*)*______46_$ '3- / OUHSZZ_LSPMXBCH VM\nCENTRASMWYFHF_MJ__BHGEV_ OFFSHORE -FF_M_GZZW_SIBILITY -SMOOJPJPMJAXEWB_K: NORTHWESTERLUOEVHDPYMKUE($ 9_\n_F_SQ_VX_G_LY -.__0/+_/.,1_EJQBKLU_ENING -FAIR -GOOD VISIBFSFHEM_G_AA_WB G__GV_W_OR /\nOUHSZZV_NORTHWESTERLY 2 -FEW CLOUDS EAST SECTZ__R ITSFMJPJM_YZBMM__/,)2_!(_-(\nNORTHERN ARFHF_MQNK_OKQO10_)_)$_Y_SOUTHERLY 1 JPM\n_ASTERS_ON\nYMGJPM\nPCQ_0_)/_54-) -$48-5!_.*__,945_23'534)6 2 SEA 1/SOUTHWESSPMPKSHKBKB_XNORTHERLY 2 SEA 3/NORTHERLY 3 /'3- 2.\n,_*+:_$06.26!_!_.*__23'534)6 3 SEA 1/WESTERLY_THWESHPYSEM_PMGJPM\n_ORTHWESTERLY 4 SEA 3.\n\nEND _T_V__Y\n_ONGZ_XOSG_O_HI_ZCZC",
    "clean_text": "ZCZC UE6__,_ _UMG_H_OK4(49,_-8-79 4-2!+9,9,_0\n_48_+7//$_,:_=_:_ 6_85344-,3-, -43-' 8''73$ _690._+__+_06+:0,=49)9_._.0.5_: !.+._ZHGNHGRHCGCP_07/04/2026\n1. WARNIJ_XO__HWXUEQAS UNDER COCYJP_OVERMSP_HFPMLJFMQNKBHQAX_WB_PMJPONWMSG_QKBQNC_HDWXIC_PK_JNFU__AZ_: OVER L_______=_(_(7_1-/_2______)___\nGASPJMCEBU_SE: NIS_GALES FORECA\n_THER SITUATION:\nINSTABILITY AREA ZVPY_SFAB G__I GGIL_JFWP_HIGH AND FLAT FIELD OF\n1024 HPMZ_PYM_PJH_GXPHYS S_6 8_34!__BH_32_:7_ 0__ __0()1020 HPA OVEYMQE_QIGCSLINK_KI D_GI_R\n_PYM_Y_B_QLVG_BGIHIPGIZD\nI WV_N\nRSV_\n0___+6*\n0_1$_1__._! 07/04/2026 AND 12 HOURS OUTLOO__NAE_WAAB_E\n__\n\nAVZ_H\n_E_V___YLX__2 :_,_.*__$:_$04*1_()7_)=___!3!3_3__8_01_+9$._!*)*______46_$ '3- / OUHSZZ_LSPMXBCH VM\nCENTRASMWYFHF_MJ__BHGEV_ OFFSHORE -FF_M_GZZW_SIBILITY -SMOOJPJPMJAXEWB_K: NORTHWESTERLUOEVHDPYMKUE($ 9_\n_F_SQ_VX_G_LY -.__0/+_/.,1_EJQBKLU_ENING -FAIR -GOOD VISIBFSFHEM_G_AA_WB G__GV_W_OR /\nOUHSZZV_NORTHWESTERLY 2 -FEW CLOUDS EAST SECTZ__R ITSFMJPJM_YZBMM__/,)2_!(_-(\nNORTHERN ARFHF_MQNK_OKQO10_)_)$_Y_SOUTHERLY 1 JPM\n_ASTERS_ON\nYMGJPM\nPCQ_0_)/_54-) -$48-5!_.*__,945_23'534)6 2 SEA 1/SOUTHWESSPMPKSHKBKB_XNORTHERLY 2 SEA 3/NORTHERLY 3 /'3- 2.\n,_*+:_$06.26!_!_.*__23'534)6 3 SEA 1/WESTERLY_THWESHPYSEM_PMGJPM\n_ORTHWESTERLY 4 SEA 3.\n\nEND _T_V__Y\n_ONGZ_XOSG_O_HI_ZCZC",
    "display_region_heading": "Unresolved B1 code U",
    "display_region_label": "B1 code U",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code U. This is a weather bulletin; readable sections mention gales across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Gaspjmcebu se: nis gales foreca",
      "Instability area zvpy sfab g i ggil jfwp high and flat field of",
      "Centrasmwyfhf mj bhgev offshore -ff m gzzw sibility -smoojpjpmjaxewb k: northwesterluoevhdpymkue($ 9"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 26,
    "heading": "2026-04-06 22:18:04 AREA: T",
    "published_at": "2026-04-06 22:18:04",
    "area": "T",
    "message_id": "TA79",
    "text": "ZCZC TA79\n _::4!_4_!_-*_6311=099'53,$34-$89 9_1_4___*_:_71_(/'3_3\n46.2+/__7-_7\n_8'7!!(8!_=9__\n_1-20,05N 003_0___Z_NPM_RN_EFNH_XRHRBCG_JZYMHZMIIVB\n_NCS_S_KIF_W_9,,88__/-/-__9(__$+________1+'___631!_/_0_0206(--_1_9XM_XI_PMPPAONHN_=_.'!0.)888_,\n(__GW\n__\nW_CF7)._676__!336+3_.47E \nAND 51--:__ 003-00__!3_0__12)4__XXP_U_NOT TO ANCHOR NOR TOM_FJ____=8:8,856_NNNN",
    "clean_text": "ZCZC TA79\n_::4!_4_!_-*_6311=099'53,$34-$89 9_1_4___*_:_71_(/'3_3\n46.2+/__7-_7\n_8'7!!(8!_=9__\n_1-20,05N 003_0___Z_NPM_RN_EFNH_XRHRBCG_JZYMHZMIIVB\n_NCS_S_KIF_W_9,,88__/-/-__9(__$+________1+'___631!_/_0_0206(--_1_9XM_XI_PMPPAONHN_=_.'!0.)888_,\n(__GW\n__\nW_CF7)._676__!336+3_.47E\nAND 51--:__ 003-00__!3_0__12)4__XXP_U_NOT TO ANCHOR NOR TOM_FJ____=8:8,856_NNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "And 51--: 003-00 !3 0 12)4 xxp u not to anchor nor tom fj 8:8,856 nnnn"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 34,
    "heading": "2026-04-06 22:11:39 AREA: T",
    "published_at": "2026-04-06 22:11:39",
    "area": "T",
    "message_id": "TA23",
    "text": "ZCZC TA23\n011244 UTC ANYONGZZJHPWPYWFZM_JF__XWY\nTSS-WESTHINDER\nCALIBRATION BEACON LOST BY VESSEL GEOSURVEYOR 11\nIN THE VICINITY OF POS 51 2_.3_,=\nU_RE\nDFNGJ_.!/_3173'53$ ,95 59 -,:_94 ,94 59 !8'_ \nIN THE VICINITY\nNONNIII_ZCZC",
    "clean_text": "ZCZC TA23\n011244 UTC ANYONGZZJHPWPYWFZM_JF__XWY\nTSS-WESTHINDER\nCALIBRATION BEACON LOST BY VESSEL GEOSURVEYOR 11\nIN THE VICINITY OF POS 51 2_.3_,=\nU_RE\nDFNGJ_.!/_3173'53$ ,95 59 -,:_94 ,94 59 !8'_\nIN THE VICINITY\nNONNIII_ZCZC",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "WESTHINDER"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Calibration beacon lost by vessel geosurveyor 11. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Calibration beacon lost by vessel geosurveyor 11",
      "In the vicinity of pos 51 2 .3",
      "Tss-westhinder"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 36,
    "heading": "2026-04-06 22:07:22 AREA: S",
    "published_at": "2026-04-06 22:07:22",
    "area": "S",
    "message_id": "",
    "text": "ZCZC SA369,_:_)=___'7___:_676_461\n2/71 _726\nNAV. WAR__NO. 1299,__**_3,3)(+_5 23'534,=_-:_\n1'!_,)LQQBH_32_QP_BDECX)90:(._)__8__6=10__3)!_\nNNONN_VVVVV\n____\nU__ZC TE12\n061910 _ -04\n_53,$34-$89 2/_/26\nTHAMES, DOL_ND BELGIAN COAST:\nE TO ESE 3, TONIGHT INCR TO 4. THIS EVENING FEW CLOUDS, \nTONIGHT BECMG C_ORNING _D_. MAINLY _ VIS_VBQ__B___ZCZC",
    "clean_text": "ZCZC SA369,_:_)=___'7___:_676_461\n2/71 _726\nNAV. WAR__NO. 1299,__**_3,3)(+_5 23'534,=_-:_\n1'!_,)LQQBH_32_QP_BDECX)90:(._)__8__6=10__3)!_\nNNONN_VVVVV\n____\nU__ZC TE12\n061910 _ -04\n_53,$34-$89 2/_/26\nTHAMES, DOL_ND BELGIAN COAST:\nE TO ESE 3, TONIGHT INCR TO 4. THIS EVENING FEW CLOUDS,\nTONIGHT BECMG C_ORNING _D_. MAINLY _ VIS_VBQ__B___ZCZC",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: E to ese 3, tonight incr to 4. this evening few clouds. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "E to ese 3, tonight incr to 4. this evening few clouds",
      "Nnonn vvvvv",
      "Thames, dol nd belgian coast"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 37,
    "heading": "2026-04-06 22:06:47 AREA: T",
    "published_at": "2026-04-06 22:06:47",
    "area": "T",
    "message_id": "",
    "text": "ZCZCMS_CH_NM_AHAMBURG\n7:_H__._90-\n__3_NAV. _YZ_BHL_BMG___5 !4!*!.!*'(80_M_\n.__,_=51*QBOJ32_*__+______86!_''!55E MISSING.9+_(===================_==_7_ZCZC",
    "clean_text": "ZCZCMS_CH_NM_AHAMBURG\n7:_H__._90-\n__3_NAV. _YZ_BHL_BMG___5 !4!*!.!*'(80_M_\n.__,_=51*QBOJ32_*__+______86!_''!55E MISSING.9+_(===================_==_7_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 38,
    "heading": "2026-04-06 22:06:09 AREA: S",
    "published_at": "2026-04-06 22:06:09",
    "area": "S",
    "message_id": "",
    "text": "ZCZC S_CZONGX_NAV. _Y__NO. 187\nGERMA32_,_\nOFFSHORE WINW_YVMQ_EUQBAQ_NQU_W_IVE ACROSSMHDPMPHFYPMKL_ARM.\n,_9,,=====\n999999999999+++++++++_77_ZCZC",
    "clean_text": "ZCZC S_CZONGX_NAV. _Y__NO. 187\nGERMA32_,_\nOFFSHORE WINW_YVMQ_EUQBAQ_NQU_W_IVE ACROSSMHDPMPHFYPMKL_ARM.\n,_9,,=====\n999999999999+++++++++_77_ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code S. Readable text says: Offshore winw yvmq euqbaq nqu w ive acrossmhdpmphfypmkl arm. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Offshore winw yvmq euqbaq nqu w ive acrossmhdpmphfypmkl arm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 39,
    "heading": "2026-04-06 22:05:33 AREA: S",
    "published_at": "2026-04-06 22:05:33",
    "area": "S",
    "message_id": "SA80",
    "text": "ZCZC SA80\nNCBGKSY__OKKELBHLA_M_GP7EBQ_XA__EU_FI_EYM_FL LIGHTBUOY  54-16__08-29_09,_),___0=1)_/_6,9245* ____ZCZC",
    "clean_text": "ZCZC SA80\nNCBGKSY__OKKELBHLA_M_GP7EBQ_XA__EU_FI_EYM_FL LIGHTBUOY 54-16__08-29_09,_),___0=1)_/_6,9245* ____ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Ncbgksy okkelbhla m gp7ebq xa eu fi eym fl lightbuoy 54-16 08-29 09, ), 0 1) / 6,9245 zczc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Ncbgksy okkelbhla m gp7ebq xa eu fi eym fl lightbuoy 54-16 08-29 09, ), 0 1) / 6,9245 zczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 40,
    "heading": "2026-04-06 22:03:39 AREA: S",
    "published_at": "2026-04-06 22:03:39",
    "area": "S",
    "message_id": "SA82",
    "text": "ZCZC SA82\n_:-HAMBURG\n0 _30MG_H_MYM\n_GERMAN BF_DH\n_MGZYHD_PJ_P\nJ_V'LYWMZ_ORE 1'$_7_9_,0_-,$94 94:-', CS 'MK!__*4_7!___,!!_7,__! _0:4_5N 005-30,8E.\nRESTRI_ MAOP_YS*____:50_80__//P_U__ZNMVVVVVVOOOOOZZZZZZZZZZZZAAAAAAAAAA_XAXA_MJ\nF_ZN_-HAMLCY_ON\nPLBB_C MAR \n_NAV. _76_BHL__BS__04__.\nCWPY_HPYMZ_P_KD_19_1_8+)6__$_'C6FO_*9,_6+:2._+*!_!+__EC QF_F_YPJHYF_HP_B__B_S.\nBEYHDMZ.__9_)_NP_LP__M_X_\nNNMN\n\nUU_ZCZC",
    "clean_text": "ZCZC SA82\n_:-HAMBURG\n0 _30MG_H_MYM\n_GERMAN BF_DH\n_MGZYHD_PJ_P\nJ_V'LYWMZ_ORE 1'$_7_9_,0_-,$94 94:-', CS 'MK!__*4_7!___,!!_7,__! _0:4_5N 005-30,8E.\nRESTRI_ MAOP_YS*____:50_80__//P_U__ZNMVVVVVVOOOOOZZZZZZZZZZZZAAAAAAAAAA_XAXA_MJ\nF_ZN_-HAMLCY_ON\nPLBB_C MAR\n_NAV. _76_BHL__BS__04__.\nCWPY_HPYMZ_P_KD_19_1_8+)6__$_'C6FO_*9,_6+:2._+*!_!+__EC QF_F_YPJHYF_HP_B__B_S.\nBEYHDMZ.__9_)_NP_LP__M_X_\nNNMN\n\nUU_ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: Plbb c mar. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Plbb c mar"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 41,
    "heading": "2026-04-06 22:00:16 AREA: S",
    "published_at": "2026-04-06 22:00:16",
    "area": "S",
    "message_id": "SE87",
    "text": "ZCZC SE87\n061900 NAVTEX-HAMBURG (NCC)\n\nWEATHERFORECAS__PENEKO_ 2$++_-8:1_ WEST TO NORTHWPJHMLZCHM_HMGSHPYM_YFLSPM_FWJMLZCHM\nP__N\nMGNLGE_LC\nJN\n_S_RST 3 MEX__FM\n\n_VARIAB_71_(_3, LATER SHIFTINGEY2_1/\n1)\n2_56+__7_ GOOD VISIBILITY.\nSEA2*__10_6/6_! =___ZCACMJ\nZ__-H_LCY_ON\nPYPOPP UTC _F_\n '_$0'_+'_7K__  LIGHTBUOY M\nHY_ZOB\nKAXTEE T__ARILS_G_U _G_F V_ONNK__CZC SA85\n,/-09_QVRI_WPYQP UTC _YM\nNA\n_WARN..__+__. _GERMAN BIGHT. DORTHWPJHPYS_OAL_IB__45\n88)5\n__1'.\nUXZMJCY_PY BYO_V_V 'OCEANMY_J_DGIBE__09'1_\n2__-__)__\nWX_D MANOEUVRABILITY DURINGMZPYHFZJ__UC_SAFEMLPYHDMA_OXBH\nUQY_WYLXED.\nNNNN",
    "clean_text": "ZCZC SE87\n061900 NAVTEX-HAMBURG (NCC)\n\nWEATHERFORECAS__PENEKO_ 2$++_-8:1_ WEST TO NORTHWPJHMLZCHM_HMGSHPYM_YFLSPM_FWJMLZCHM\nP__N\nMGNLGE_LC\nJN\n_S_RST 3 MEX__FM\n\n_VARIAB_71_(_3, LATER SHIFTINGEY2_1/\n1)\n2_56+__7_ GOOD VISIBILITY.\nSEA2*__10_6/6_! =___ZCACMJ\nZ__-H_LCY_ON\nPYPOPP UTC _F_\n'_$0'_+'_7K__ LIGHTBUOY M\nHY_ZOB\nKAXTEE T__ARILS_G_U _G_F V_ONNK__CZC SA85\n,/-09_QVRI_WPYQP UTC _YM\nNA\n_WARN..__+__. _GERMAN BIGHT. DORTHWPJHPYS_OAL_IB__45\n88)5\n__1'.\nUXZMJCY_PY BYO_V_V 'OCEANMY_J_DGIBE__09'1_\n2__-__)__\nWX_D MANOEUVRABILITY DURINGMZPYHFZJ__UC_SAFEMLPYHDMA_OXBH\nUQY_WYLXED.\nNNNN",
    "resolved_station_name": "Pinneberg",
    "resolved_country": "Germany",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "German Bight and German North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "NAVTEX HAMBURG"
    ],
    "display_region_heading": "Germany - German Bight and German North Sea",
    "display_region_label": "Pinneberg, Germany",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Germany - German Bight and German North Sea. Readable text says: ' $0' ' 7k lightbuoy m. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "' $0' ' 7k lightbuoy m",
      "Weatherforecas peneko 2$ -8:1 west to northwpjhmlzchm hmgshpym yflspm fwjmlzchm",
      "Wx d manoeuvrability duringmzpyhfzj uc safemlpyhdma oxbh"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 42,
    "heading": "2026-04-06 21:41:12 AREA: Q",
    "published_at": "2026-04-06 21:41:12",
    "area": "Q",
    "message_id": "QE96",
    "text": "ZCZC QE96\n\n061840 UTC APR 26\nSPLIT RADIO\n\nWEATHER BULLETIN FOR ADRIATIC ISSUED BY THE MARINE METEOROLOGICAL CENTER SPLIT ON 06/04/2026 AT 1700 UTC\n\n1. WARNING:\nIN THE SECOND PART OF THE NIGHT ON SENJ AREA POSS GUSTS OF NE WIND 35-40 KT.\n\n2. SYNOPSIS:\nFIELD OF HIGH STNR OVER THE ADRIATIC.\n\n3. FORECAST FOR THE NEXT 24 HOURS VALID UNTIL 07/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\nCALM OR VRB WIND 4-10 KT. TOMORROW IN VELEBITSKI KANAL FPM\n MM_HHZ\nJ_BQ_BQ_KBKB_BOONK_ TOWARD MIDDAY COMPLETELY DECR. \nSEA 1-2, TOMORROW MORNING IN VELEBITSKI KANAL POSS 3.\nVIS 10-20 KM.\nMOSTLY CLEAR.\n\nCENTRAL ADRIATIC:\nNW WIND 4-10 KT, ON S-ERN PART OF AREA  LOC TO 15 KT.\nSEA 1-2. VIS 10-20 KM.\nMOSTLY CLEAR.\n\nS-ERN ADRIATIC:\n\nNW 4-12__=____+_+66+_._06++.'+_._$0._+*_._+.\n_(5.TO_ZY_ZUM_ZYF_MSZ_MHDPM_ZJHMJPM_Y _MGVH_BONGJPM_ UBMG\nFJ\n __I___LZOSTLY CL_UH_OZ\n\nNNNN",
    "clean_text": "ZCZC QE96\n\n061840 UTC APR 26\nSPLIT RADIO\n\nWEATHER BULLETIN FOR ADRIATIC ISSUED BY THE MARINE METEOROLOGICAL CENTER SPLIT ON 06/04/2026 AT 1700 UTC\n\n1. WARNING:\nIN THE SECOND PART OF THE NIGHT ON SENJ AREA POSS GUSTS OF NE WIND 35-40 KT.\n\n2. SYNOPSIS:\nFIELD OF HIGH STNR OVER THE ADRIATIC.\n\n3. FORECAST FOR THE NEXT 24 HOURS VALID UNTIL 07/04/2026 AT 1700 UTC\n\nN-ERN ADRIATIC:\nCALM OR VRB WIND 4-10 KT. TOMORROW IN VELEBITSKI KANAL FPM\nMM_HHZ\nJ_BQ_BQ_KBKB_BOONK_ TOWARD MIDDAY COMPLETELY DECR.\nSEA 1-2, TOMORROW MORNING IN VELEBITSKI KANAL POSS 3.\nVIS 10-20 KM.\nMOSTLY CLEAR.\n\nCENTRAL ADRIATIC:\nNW WIND 4-10 KT, ON S-ERN PART OF AREA LOC TO 15 KT.\nSEA 1-2. VIS 10-20 KM.\nMOSTLY CLEAR.\n\nS-ERN ADRIATIC:\n\nNW 4-12__=____+_+66+_._06++.'+_._$0._+*_._+.\n_(5.TO_ZY_ZUM_ZYF_MSZ_MHDPM_ZJHMJPM_Y _MGVH_BONGJPM_ UBMG\nFJ\n__I___LZOSTLY CL_UH_OZ\n\nNNNN",
    "resolved_station_name": "Split",
    "resolved_country": "Croatia",
    "resolved_nav_area": "III",
    "resolved_coverage_label": "Adriatic Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "SPLIT RADIO"
    ],
    "display_region_heading": "Croatia - Adriatic Sea",
    "display_region_label": "Split, Croatia",
    "subject_label": "weather forecast",
    "subject_code": "E",
    "decoded_summary": "weather forecast for Croatia - Adriatic Sea. Readable text says: Weather bulletin for adriatic issued by the marine meteorological center split on 06/04/2026 at 1700 utc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Weather bulletin for adriatic issued by the marine meteorological center split on 06/04/2026 at 1700 utc",
      "3. forecast for the next 24 hours valid until 07/04/2026 at 1700 utc",
      "In the second part of the night on senj area poss gusts of ne wind 35-40 kt"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 43,
    "heading": "2026-04-06 21:40:20 AREA: Q",
    "published_at": "2026-04-06 21:40:20",
    "area": "Q",
    "message_id": "QA05",
    "text": "ZCZC QA05\n061840 UTC APR 26\nSPLIT RAAIHO\n\nNAVIGATIONAL WNG. NR.: 67/2026\n\nNORTHERMMWYFHFXM_MG_CS_MFZY___W_RD_OM:.0+__- 0945, BREAKWATER, EXPLOSIVE DEVICE IN VICINITY 44-52,59 N 013-47,71 E. NAVIGATION, ANCHORING AND OTHER ACTIVITIES IN 150 METERS RADIUS FROM POSITION PROHIBITED.\n\n\nNNNN",
    "clean_text": "ZCZC QA05\n061840 UTC APR 26\nSPLIT RAAIHO\n\nNAVIGATIONAL WNG. NR.: 67/2026\n\nNORTHERMMWYFHFXM_MG_CS_MFZY___W_RD_OM:.0+__- 0945, BREAKWATER, EXPLOSIVE DEVICE IN VICINITY 44-52,59 N 013-47,71 E. NAVIGATION, ANCHORING AND OTHER ACTIVITIES IN 150 METERS RADIUS FROM POSITION PROHIBITED.\n\nNNNN",
    "display_region_heading": "Unresolved B1 code Q",
    "display_region_label": "B1 code Q",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code Q. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Northermmwyfhfxm mg cs mfzy w rd om:.0 - 0945, breakwater, explosive device in vicinity 44-52,59 n 013-47,71 e. navigation, anchoring and other activities in 150 meters radius from position prohibited",
      "Split raaiho",
      "Navigational wng. nr.: 67/2026"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 44,
    "heading": "2026-04-06 21:32:05 AREA: P",
    "published_at": "2026-04-06 21:32:05",
    "area": "P",
    "message_id": "PA",
    "text": "ZCZC PA\nU__PIRI UHXM_KYONKQ_SI 99/26\n/_6\n__!6.!9))928._'$_-3___(_BING\n_NG__BBBBBBBBL__VW_RS_GNE_ FOGHORN UNRELIALSPON\nCWXMTZV_LLLLLLSSSU)90:.4,__94, 8,9034-59=!_9__94,+.!+!069(14_)\n_......._0_ 003-34E UNLIT\nK_-1    ....._0(EB\n/_YLSN__ANCEL _JFM_ZPT_NNNN",
    "clean_text": "ZCZC PA\nU__PIRI UHXM_KYONKQ_SI 99/26\n/_6\n__!6.!9))928._'$_-3___(_BING\n_NG__BBBBBBBBL__VW_RS_GNE_ FOGHORN UNRELIALSPON\nCWXMTZV_LLLLLLSSSU)90:.4,__94, 8,9034-59=!_9__94,+.!+!069(14_)\n_......._0_ 003-34E UNLIT\nK_-1 ....._0(EB\n/_YLSN__ANCEL _JFM_ZPT_NNNN",
    "display_region_heading": "Unresolved B1 code P",
    "display_region_label": "B1 code P",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code P. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Ng bbbbbbbbl vw rs gne foghorn unrelialspon"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 45,
    "heading": "2026-04-06 20:10:09 AREA: T",
    "published_at": "2026-04-06 20:10:09",
    "area": "T",
    "message_id": "",
    "text": "_CZC GA89\n'2+ 61/26\nCROMARTY.\n5_+_-0 $ !)9-58,: 28,$ !-4..\n1. TURBI_E_HS2, 57-2_.,_01-21.1W, FOG SIWY KGA12).\n__!.9_KKKKKKVK_VVVVVVVTN_Z\nHX_YJ__OIA VK_JLKI__WE_OT_JD_A_I_W_UZZC OLVU\n_I_ISH SEA.\nDMOCDE WIND FAO_\n.\nCENCEL WZ XQUXQ_ OZK\n_SBONV_ONSKK_KKKU_KKKKKKFHH_QJ_))*9_'___+:+: 0-98\n041900 UHXM_KOKQ_SI 2/26\nBUOY WP2 53-18.7N XIXR_I\n _\n___SZK_FSZVDSQG__$__JPLPWZ__U_U____ZC P_MC__O_TC APR 26\n__*!_,/_._:1_$*09*9=9* (9\n5_3 !___2._:3'_ )'=))!_,_\n2_8_7::+629,\n_(6__4')__R_R_MIE HNI4 _+__+3___VWWAJJKUC GLT_ACFWT_AQOMWM_RAPYMTE HZZ6 UNS_HW_22.6N_RAQQMEE HZX_)_4:_-_,__!9_$+6.!+_06(___+_$__+_\n_1__04'_:_/==0,,,,\n\n\n__+/-/._AA_GXMMMEBHX_PR 26\n__*!_,._0_:0_8,$!-4. _9))-,$'_._:*_.-:!__4( )8_$_.):+_*.'_=__0,(__.8\n$/_.1=__16\n1/))9))928._+**_1+72__'_+ 3 52-10,4420N 003-56,3420E\nMTD_AM\nYMHU_VZXXE_PEATYNRRTPE..\n\nNNNN",
    "clean_text": "_CZC GA89\n'2+ 61/26\nCROMARTY.\n5_+_-0 $ !)9-58,: 28,$ !-4..\n1. TURBI_E_HS2, 57-2_.,_01-21.1W, FOG SIWY KGA12).\n__!.9_KKKKKKVK_VVVVVVVTN_Z\nHX_YJ__OIA VK_JLKI__WE_OT_JD_A_I_W_UZZC OLVU\n_I_ISH SEA.\nDMOCDE WIND FAO_\n.\nCENCEL WZ XQUXQ_ OZK\n_SBONV_ONSKK_KKKU_KKKKKKFHH_QJ_))*9_'___+:+: 0-98\n041900 UHXM_KOKQ_SI 2/26\nBUOY WP2 53-18.7N XIXR_I\n_\n___SZK_FSZVDSQG__$__JPLPWZ__U_U____ZC P_MC__O_TC APR 26\n__*!_,/_._:1_$*09*9=9* (9\n5_3 !___2._:3'_ )'=))!_,_\n2_8_7::+629,\n_(6__4')__R_R_MIE HNI4 _+__+3___VWWAJJKUC GLT_ACFWT_AQOMWM_RAPYMTE HZZ6 UNS_HW_22.6N_RAQQMEE HZX_)_4:_-_,__!9_$+6.!+_06(___+_$__+_\n_1__04'_:_/==0,,,,\n\n__+/-/._AA_GXMMMEBHX_PR 26\n__*!_,._0_:0_8,$!-4. _9))-,$'_._:*_.-:!__4( )8_$_.):+_*.'_=__0,(__.8\n$/_.1=__16\n1/))9))928._+**_1+72__'_+ 3 52-10,4420N 003-56,3420E\nMTD_AM\nYMHU_VZXXE_PEATYNRRTPE..\n\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. turbi e hs2, 57-2 ., 01-21.1w, fog siwy kga12)",
      "Buoy wp2 53-18.7n xixr i",
      "Cromarty"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 46,
    "heading": "2026-04-06 20:09:14 AREA: G",
    "published_at": "2026-04-06 20:09:14",
    "area": "G",
    "message_id": "GA97",
    "text": "ZCZC GA97\nNAVAREA I 43/26 \nNORTH SEA. \nT_PWMFBMHH__ A_YNVZM__.5N 001-25.6E UNL_T. \n_NNNN",
    "clean_text": "ZCZC GA97\nNAVAREA I 43/26\nNORTH SEA.\nT_PWMFBMHH__ A_YNVZM__.5N 001-25.6E UNL_T.\n_NNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: Navarea i 43/26. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Navarea i 43/26",
      "North sea"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 47,
    "heading": "2026-04-06 20:08:37 AREA: G",
    "published_at": "2026-04-06 20:08:37",
    "area": "G",
    "message_id": "GA61",
    "text": "ZCZC GA61\nWZ 180/26 \n__1.__574_8,3 !9_ -8_,_'__34-58=3_: \nS._D01, 9__:3) 2+:58/72 (GA-9). \nNH N\n\nP__\nJ_UZCZC",
    "clean_text": "ZCZC GA61\nWZ 180/26\n__1.__574_8,3 !9_ -8_,_'__34-58=3_:\nS._D01, 9__:3) 2+:58/72 (GA-9).\nNH N\n\nP__\nJ_UZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 48,
    "heading": "2026-04-06 20:08:05 AREA: G",
    "published_at": "2026-04-06 20:08:05",
    "area": "G",
    "message_id": "GA71",
    "text": "ZCZC GA71\n__Z_ORTHWESTWARDS.\n1.4MET MAST 53-10.___\n__2. IANC_LVWZ 82/2! _GA___ZCZC",
    "clean_text": "ZCZC GA71\n__Z_ORTHWESTWARDS.\n1.4MET MAST 53-10.___\n__2. IANC_LVWZ 82/2! _GA___ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 49,
    "heading": "2026-04-06 20:06:46 AREA: G",
    "published_at": "2026-04-06 20:06:46",
    "area": "G",
    "message_id": "GA83",
    "text": "ZCZC GA83\nWZ 215/_*,._=+.2____.9,__66/._+_06__.9___/T SER\n_\n\nA\nBUCK_BNQBQP_QB_/,$8_)_ \nNNNN",
    "clean_text": "ZCZC GA83\nWZ 215/_*,._=+.2____.9,__66/._+_06__.9___/T SER\n_\n\nA\nBUCK_BNQBQP_QB_/,$8_)_\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 50,
    "heading": "2026-04-06 20:06:19 AREA: G",
    "published_at": "2026-04-06 20:06:19",
    "area": "G",
    "message_id": "GA94",
    "text": "ZCZC GA94\n/2+=77T_EON_H_P\n_O_GLS_HD_IBCRL__OVJ\nIZJ_R_NPCBXLJW_BKUB-__2-ZCZC",
    "clean_text": "ZCZC GA94\n/2+=77T_EON_H_P\n_O_GLS_HD_IBCRL__OVJ\nIZJ_R_NPCBXLJW_BKUB-__2-ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 52,
    "heading": "2026-04-06 20:05:16 AREA: G",
    "published_at": "2026-04-06 20:05:16",
    "area": "G",
    "message_id": "GA04",
    "text": "ZCZC GA04\nWZ 25/26\nGMDSS.\nMRCC SHETLAND.\n21. MF R/T AND DZC _ERVICES FROM GREG_EASS_TE 57-07.7NC002-03.2W O_F\nUIV_\n_QAM CANCEL WZ 213_26 (GA80).\nNNNN",
    "clean_text": "ZCZC GA04\nWZ 25/26\nGMDSS.\nMRCC SHETLAND.\n21. MF R/T AND DZC _ERVICES FROM GREG_EASS_TE 57-07.7NC002-03.2W O_F\nUIV_\n_QAM CANCEL WZ 213_26 (GA80).\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "21. mf r/t and dzc ervices from greg eass te 57-07.7nc002-03.2w o f",
      "Qam cancel wz 213 26 (ga80)",
      "Mrcc shetland"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 53,
    "heading": "2026-04-06 20:04:20 AREA: G",
    "published_at": "2026-04-06 20:04:20",
    "area": "G",
    "message_id": "",
    "text": "ZCZC G_QK_\nWZN32/2_ \nHUMBER. \nINNER BANK._\nPLATFORM SOUTHWARK 53-11.0N 002705.7E UN__LIT AND_ALL HZKAQHH_UZU_Q___X_Z 226/26_\nHUMBER.\nBESSEMER CAS _IELD.\n_. PLAHFZBMHXZT_E,8FOG SIGNAL INOP RATIVE.\n2. CANCEL WZ 10X_B KGA54).\nNNN_\nBM____\n77_ZCZC",
    "clean_text": "ZCZC G_QK_\nWZN32/2_\nHUMBER.\nINNER BANK._\nPLATFORM SOUTHWARK 53-11.0N 002705.7E UN__LIT AND_ALL HZKAQHH_UZU_Q___X_Z 226/26_\nHUMBER.\nBESSEMER CAS _IELD.\n_. PLAHFZBMHXZT_E,8FOG SIGNAL INOP RATIVE.\n2. CANCEL WZ 10X_B KGA54).\nNNN_\nBM____\n77_ZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "INNER BANK"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Plahfzbmhxzt e,8fog signal inop rative",
      "2. cancel wz 10x b kga54)",
      "Inner bank"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 54,
    "heading": "2026-04-06 20:03:10 AREA: T",
    "published_at": "2026-04-06 20:03:10",
    "area": "T",
    "message_id": "",
    "text": "ZCDC GA18\nWZ 243/2 \nFORTH. \n,3-45 ,- _-985_3 28,$!-4.. \n1. NNG E BUOY 56-14. _, 002-08.0W WND NHG S_BUD\n_UELM \nNN_N\n\nC_EZ_ZC HAWQT\n_AAM\nWTTAPPMQ_N 02--09.5. \nB.,TBT TRATQ_T_N\n002-_2. CANCEL H_C_RND__\nQ\nU\nUFUUUIZCZC",
    "clean_text": "ZCDC GA18\nWZ 243/2\nFORTH.\n,3-45 ,- _-985_3 28,$!-4..\n1. NNG E BUOY 56-14. _, 002-08.0W WND NHG S_BUD\n_UELM\nNN_N\n\nC_EZ_ZC HAWQT\n_AAM\nWTTAPPMQ_N 02--09.5.\nB.,TBT TRATQ_T_N\n002-_2. CANCEL H_C_RND__\nQ\nU\nUFUUUIZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: 1. nng e buoy 56-14. , 002-08.0w wnd nhg s bud. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. nng e buoy 56-14. , 002-08.0w wnd nhg s bud",
      "Wttappmq n 02--09.5",
      "Ufuuuizczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 56,
    "heading": "2026-04-06 18:05:28 AREA: S",
    "published_at": "2026-04-06 18:05:28",
    "area": "S",
    "message_id": "SAGEL",
    "text": "ZCZC SAGEL\nNCC-HAMTURGO_SLW_X____ZC_P MRTERSTR__JU_JF_ I__ZC_K ZE_I_\n0615:,.___\n0_\nKDXEECAST FLR_LSPG_PUHEI_A WMMM_V_DBS_EAGW_A _AX__Q__U_\n\nUU_U U_U\nI_WWZWZCZI GA2 \nWZN254_26 \nVIKI\n_. \nBERYL OIL FIERO_M_\n1. BERY_E_A__EXWY KKGA82). \nN_DOO\nE_I_SUZCZC",
    "clean_text": "ZCZC SAGEL\nNCC-HAMTURGO_SLW_X____ZC_P MRTERSTR__JU_JF_ I__ZC_K ZE_I_\n0615:,.___\n0_\nKDXEECAST FLR_LSPG_PUHEI_A WMMM_V_DBS_EAGW_A _AX__Q__U_\n\nUU_U U_U\nI_WWZWZCZI GA2\nWZN254_26\nVIKI\n_.\nBERYL OIL FIERO_M_\n1. BERY_E_A__EXWY KKGA82).\nN_DOO\nE_I_SUZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. Readable text says: I wwzwzczi ga2. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "I wwzwzczi ga2"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 59,
    "heading": "2026-04-06 14:03:20 AREA: N",
    "published_at": "2026-04-06 14:03:20",
    "area": "N",
    "message_id": "",
    "text": "ZCZC N__LWV\n_BV_W_EOL__ZO_AC_PW_ZC SA79\n_,::=_HAM____U_ MAR 26_\n_,-=. \n2-, . NO_ 1_9_,_3!' _34_-, _8__5 23'534, -_49_:_\n'GW/7*._7__G_T-VESSEL\n54_12N_T_NUAWYKYFSEM_PB_N__\n_ONGONNK_KCKKKKKKKKKKKKVK1_1===_.=====__+_22_0_1_-7\n7\n_8_8)83_\n55-0$0__\n9_+_48-_)3 28,$' -_975 3, !)-5 4 '_8758:_ *_3_594__7_\n_=)')\n8_+++_-++++++++2_)'--)---4--'__2062_+.+__\n +:+: 0385\n061306 UTC APR _A_O\nG_ZYP_JHMWCH_DMPPAMFJJCPWMHM\n _XHUMG_HXM\n__UEONGHDPYPMYPMZM_YFJ_BONONGJ_ZJFJONDFD__M _ OVER THEMPHDPYSWJM_FS_MBZ_PMHZMHDPM_PYBMONLF_DH\n_ONONG_ZYP_J_M_ TILL TUESDAY 03:00 UTC\n\nTHAMES \nVARIABLE 1-3, INCREASING EAST TO SOUTHEAST 3-4, \nOCCASIONALLY 5.\nGOOD__O_GU_PD_F_DH_\n_QMP METER.\n\n\nHUMBER \nVARIABLE 1-3, INCREASING EAST_TO SOUTHEAST 3-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER, DECREASING 0.57 _.3534.\n\n\nGERMA BF_DHMON_PJHMHZMZYHD_PJ_M_PYMGWP_YPJFM_YFLSPM__PBONG_ZZ__WAVEHEIGHT 1.5-2.0 METER, DECREASING 1.0-1.5 METER.\n\n\nDOGGER \nSOUTHWEST 2-4, BACKING SOUTH.\nGOODQM\nWAVEHEIGHT 1.5-2.0 METER, DECREASING 1.0-1.5 METER.\n\n\nFORECAST VALID TUESDAY 03:00 TILL TUESDAY 15:00 UTC\n_\nTHAMES HUMBER \nSOUTHEAST 3-4,._)__ 3-'5.\nGOOD.\nWAVEHEIGHT 0.5-1.0 METER.\n\n\nGERMAN BIGHT \nVARIABLE 1-3, INCREASING SOUTHEAST 2-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER.\n\n\nDOGGER \nSOUTH 2-3, INCREASING SOUTHEAST 3-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER.\n\n\n\n\nNNNN",
    "clean_text": "ZCZC N__LWV\n_BV_W_EOL__ZO_AC_PW_ZC SA79\n_,::=_HAM____U_ MAR 26_\n_,-=.\n2-, . NO_ 1_9_,_3!' _34_-, _8__5 23'534, -_49_:_\n'GW/7*._7__G_T-VESSEL\n54_12N_T_NUAWYKYFSEM_PB_N__\n_ONGONNK_KCKKKKKKKKKKKKVK1_1===_.=====__+_22_0_1_-7\n7\n_8_8)83_\n55-0$0__\n9_+_48-_)3 28,$' -_975 3, !)-5 4 '_8758:_ *_3_594__7_\n_=)')\n8_+++_-++++++++2_)'--)---4--'__2062_+.+__\n+:+: 0385\n061306 UTC APR _A_O\nG_ZYP_JHMWCH_DMPPAMFJJCPWMHM\n_XHUMG_HXM\n__UEONGHDPYPMYPMZM_YFJ_BONONGJ_ZJFJONDFD__M _ OVER THEMPHDPYSWJM_FS_MBZ_PMHZMHDPM_PYBMONLF_DH\n_ONONG_ZYP_J_M_ TILL TUESDAY 03:00 UTC\n\nTHAMES\nVARIABLE 1-3, INCREASING EAST TO SOUTHEAST 3-4,\nOCCASIONALLY 5.\nGOOD__O_GU_PD_F_DH_\n_QMP METER.\n\nHUMBER\nVARIABLE 1-3, INCREASING EAST_TO SOUTHEAST 3-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER, DECREASING 0.57 _.3534.\n\nGERMA BF_DHMON_PJHMHZMZYHD_PJ_M_PYMGWP_YPJFM_YFLSPM__PBONG_ZZ__WAVEHEIGHT 1.5-2.0 METER, DECREASING 1.0-1.5 METER.\n\nDOGGER\nSOUTHWEST 2-4, BACKING SOUTH.\nGOODQM\nWAVEHEIGHT 1.5-2.0 METER, DECREASING 1.0-1.5 METER.\n\nFORECAST VALID TUESDAY 03:00 TILL TUESDAY 15:00 UTC\n_\nTHAMES HUMBER\nSOUTHEAST 3-4,._)__ 3-'5.\nGOOD.\nWAVEHEIGHT 0.5-1.0 METER.\n\nGERMAN BIGHT\nVARIABLE 1-3, INCREASING SOUTHEAST 2-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER.\n\nDOGGER\nSOUTH 2-3, INCREASING SOUTHEAST 3-4.\nGOOD.\nWAVEHEIGHT 1.0-1.5 METER.\n\nNNNN",
    "resolved_station_name": "Oostende (Thames Approaches relay)",
    "resolved_country": "Belgium / United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Thames approaches and Dover approaches",
    "resolved_match_basis": "station-signature-fallback",
    "resolved_match_terms": [
      "THAMES"
    ],
    "display_region_heading": "Belgium / United Kingdom - Thames approaches and Dover approaches",
    "display_region_label": "Oostende (Thames Approaches relay), Belgium / United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. Readable text says: Forecast valid tuesday 03:00 till tuesday 15:00 utc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Forecast valid tuesday 03:00 till tuesday 15:00 utc",
      "Variable 1-3, increasing east to southeast 3-4",
      "Waveheight 1.0-1.5 meter, decreasing 0.57 .3534"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 60,
    "heading": "2026-04-06 12:09:16 AREA: G",
    "published_at": "2026-04-06 12:09:16",
    "area": "G",
    "message_id": "GA61",
    "text": "ZCZC GA61\n_WZONNI_CJ JCCCCK_UAZCCC_N WIND F_ M. \nDUDGEONTSOUT\nEBUOXT53-12.5N ___)_57_22___+: _-_9\n7++ 161/26\nC_OM_ TUAWOMRN 0'0-21.1W, F_L SIGNAL INOWERAE_VET__U___WKZJZC\n_AVOQ\nNAVTEXNAO_ UTC AHR_VS\n__VEA_\n_:-,:3),,-. _-5.4)(3__*2_02_0_30__!*3-*:_\n8__,_0+1_147:.'_5_$_:246___*__======2,_345_\n9! 2 NM _E_U-__F\nV_W__PZCZC",
    "clean_text": "ZCZC GA61\n_WZONNI_CJ JCCCCK_UAZCCC_N WIND F_ M.\nDUDGEONTSOUT\nEBUOXT53-12.5N ___)_57_22___+: _-_9\n7++ 161/26\nC_OM_ TUAWOMRN 0'0-21.1W, F_L SIGNAL INOWERAE_VET__U___WKZJZC\n_AVOQ\nNAVTEXNAO_ UTC AHR_VS\n__VEA_\n_:-,:3),,-. _-5.4)(3__*2_02_0_30__!*3-*:_\n8__,_0+1_147:.'_5_$_:246___*__======2,_345_\n9! 2 NM _E_U-__F\nV_W__PZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. Readable text says: Dudgeontsout. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Dudgeontsout",
      "Navtexnao utc ahr vs"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 61,
    "heading": "2026-04-06 12:08:14 AREA: T",
    "published_at": "2026-04-06 12:08:14",
    "area": "T",
    "message_id": "",
    "text": "ZCZC_G_74\nWZ 207/26 \n=\n_7._34.=_\n__\n,!_:.+6_$._*/_6ZI_TW,_9_-_-3=* , $:-)) ,-=-8$' 8,9034-58_3. \nNNNN",
    "clean_text": "ZCZC_G_74\nWZ 207/26\n=\n_7._34.=_\n__\n,!_:.+6_$._*/_6ZI_TW,_9_-_-3=* , $:-)) ,-=-8$' 8,9034-58_3.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 62,
    "heading": "2026-04-06 12:07:49 AREA: G",
    "published_at": "2026-04-06 12:07:49",
    "area": "G",
    "message_id": "GA81",
    "text": "ZCZC GA81\nWZ 214/26.\n___!'!7-!_\n\n_ZCZC",
    "clean_text": "ZCZC GA81\nWZ 214/26.\n___!'!7-!_\n\n_ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 63,
    "heading": "2026-04-06 12:06:58 AREA: T",
    "published_at": "2026-04-06 12:06:58",
    "area": "T",
    "message_id": "",
    "text": "OCZC GA94\nWZ 2__.-6\nTYN .\nBLYTH OFFSHZYPM0++*__+-4_(18___)/(.:,_._:_70_-1ZCZJ\n_'=9__8-.8__ZCZC",
    "clean_text": "OCZC GA94\nWZ 2__.-6\nTYN .\nBLYTH OFFSHZYPM0++*__+-4_(18___)/(.:,_._:_70_-1ZCZJ\n_'=9__8-.8__ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 64,
    "heading": "2026-04-06 12:05:55 AREA: T",
    "published_at": "2026-04-06 12:05:55",
    "area": "T",
    "message_id": "",
    "text": "ZCZCM___ KGA80).\n7NNNN",
    "clean_text": "ZCZCM___ KGA80).\n7NNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 65,
    "heading": "2026-04-06 12:04:58 AREA: G",
    "published_at": "2026-04-06 12:04:58",
    "area": "G",
    "message_id": "GA12",
    "text": "ZCZC GA12\nW_ VU_\nLEV_LIT AND ALL NAVAIDS I_OPEOATIV _.3___\n\nH\nV\nEU\n\nII_M PLA\n_ZJBM__ZB_LH_\nA\nE_M_\nLONG::._*7\n*(ZCZC",
    "clean_text": "ZCZC GA12\nW_ VU_\nLEV_LIT AND ALL NAVAIDS I_OPEOATIV _.3___\n\nH\nV\nEU\n\nII_M PLA\n_ZJBM__ZB_LH_\nA\nE_M_\nLONG::._*7\n*(ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 66,
    "heading": "2026-04-06 12:04:24 AREA: T",
    "published_at": "2026-04-06 12:04:24",
    "area": "T",
    "message_id": "",
    "text": "ZCZC_W__T\nG__M\nU_N_UDO__M_BJN_NZB__A_OONX_LM \nNNNFK_\n\n_I EQ__\n\n_ZCZC",
    "clean_text": "ZCZC_W__T\nG__M\nU_N_UDO__M_BJN_NZB__A_OONX_LM\nNNNFK_\n\n_I EQ__\n\n_ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 67,
    "heading": "2026-04-06 12:03:48 AREA: G",
    "published_at": "2026-04-06 12:03:48",
    "area": "G",
    "message_id": "GA18",
    "text": "ZCZC GA18\nWZ 24326 \nFORTH. \n__,3-_5(,___2(9+_((7__3\nBO_NXAOOLWJ_ET_B__L_1_5+:_:(___ZCZC",
    "clean_text": "ZCZC GA18\nWZ 24326\nFORTH.\n__,3-_5(,___2(9+_((7__3\nBO_NXAOOLWJ_ET_B__L_1_5+:_:(___ZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 68,
    "heading": "2026-04-06 12:03:18 AREA: G",
    "published_at": "2026-04-06 12:03:18",
    "area": "G",
    "message_id": "",
    "text": "ZCZC GA_A_\n_WZ MOVED. \n____ANCE_KA_M_WZCZC",
    "clean_text": "ZCZC GA_A_\n_WZ MOVED.\n____ANCE_KA_M_WZCZC",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code G. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 69,
    "heading": "2026-04-06 12:00:18 AREA: G",
    "published_at": "2026-04-06 12:00:18",
    "area": "G",
    "message_id": "",
    "text": "ZCZC G_L_HONG_ARTY FORTH TYNEVDORG_D\nJ 4 TOT6, '_-:= '3 23__59 5 OTRK_ _SLT OR M__N_NE, _3)'32_34=.9+/___:+(6_.__,9_:_+4_7._34,8_+5_3428' _ '3 3\n__+.\n_.'_6__.5_+_')5 94,.9$, BECMHMC_H_ 2 O_C_L \n8'_60.0__2ZGZC _B_WT\n_E NOW CEASED\nNNNN",
    "clean_text": "ZCZC G_L_HONG_ARTY FORTH TYNEVDORG_D\nJ 4 TOT6, '_-:= '3 23__59 5 OTRK_ _SLT OR M__N_NE, _3)'32_34=.9+/___:+(6_.__,9_:_+4_7._34,8_+5_3428' _ '3 3\n__+.\n_.'_6__.5_+_')5 94,.9$, BECMHMC_H_ 2 O_C_L\n8'_60.0__2ZGZC _B_WT\n_E NOW CEASED\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "TYNE"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for United Kingdom - North Sea and north-east UK coast. Readable text says: E now ceased. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "E now ceased"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 70,
    "heading": "2026-04-06 10:31:24 AREA: V",
    "published_at": "2026-04-06 10:31:24",
    "area": "V",
    "message_id": "VA63",
    "text": "ZCZC VA63\n081043 UTC MARV_WS \n_XWA_THAD___NGLIA ONE WIND FARM. \nTURBINQG27, 52-0_6_002'__777_7!-_-_7__\n7(7'!___7_7*_7ZCZC",
    "clean_text": "ZCZC VA63\n081043 UTC MARV_WS\n_XWA_THAD___NGLIA ONE WIND FARM.\nTURBINQG27, 52-0_6_002'__777_7!-_-_7__\n7(7'!___7_7*_7ZCZC",
    "display_region_heading": "Unresolved B1 code V",
    "display_region_label": "B1 code V",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code V. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 73,
    "heading": "2026-04-06 10:18:53 AREA: T",
    "published_at": "2026-04-06 10:18:53",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TKNCA_UQREI U_CVMSI 189_-09,_*060.\n___KPDJZ_XUNEKK_NE_\n3__ 4-=34'8*$_ 0__)'!*$02.)__70_\n__(_2__(7_B\nCO_AV__D WITH NORT_V __IAH__ _UOY 'JDN'\nUNJ_IWAT RPI_EA_NK_LOMBARDSIJW_MPJHLSFJWPWS_BKLB__K_WB_KUB_0_!_45.01E MARKED\nMARKED WITH NOR\nM__WFS_LBSPPBQ_IG_OR TO FISH ABOVE \nBH_GONNKKKKKKKKKKKVVVVVVR_O\nI__ $_____7ZCZC",
    "clean_text": "ZCZC TKNCA_UQREI U_CVMSI 189_-09,_*060.\n___KPDJZ_XUNEKK_NE_\n3__ 4-=34'8*$_ 0__)'!*$02.)__70_\n__(_2__(7_B\nCO_AV__D WITH NORT_V __IAH__ _UOY 'JDN'\nUNJ_IWAT RPI_EA_NK_LOMBARDSIJW_MPJHLSFJWPWS_BKLB__K_WB_KUB_0_!_45.01E MARKED\nMARKED WITH NOR\nM__WFS_LBSPPBQ_IG_OR TO FISH ABOVE\nBH_GONNKKKKKKKKKKKVVVVVVR_O\nI__ $_____7ZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: M wfs lbsppbq ig or to fish above. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "M wfs lbsppbq ig or to fish above",
      "Marked with nor",
      "Bh gonnkkkkkkkkkkkvvvvvvr o"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 74,
    "heading": "2026-04-06 10:16:56 AREA: T",
    "published_at": "2026-04-06 10:16:56",
    "area": "T",
    "message_id": "",
    "text": "ZVZC _QCZON_\nOO_TWPYB_-__+*_08KSRX_AJ__A\nGHUACKIUFHUVP_HA_OMYHQUQX_D_VICINITY_ON_Z_MN_MCKGGDLONT___0_\n_'53$.+_._+._$+_9-5_8:_+26(_8,856\n+_)+!!!/____\nBEMJ_AONGP_SIVEMSZJHDQ_JB_STLIIIQN_K_LZ\nC_\nW\n_I _G_BXGWMIHNOT TO ANCDOZMG_ZYQ__UWQBB_L_\nITY.\nNNNN",
    "clean_text": "ZVZC _QCZON_\nOO_TWPYB_-__+*_08KSRX_AJ__A\nGHUACKIUFHUVP_HA_OMYHQUQX_D_VICINITY_ON_Z_MN_MCKGGDLONT___0_\n_'53$.+_._+._$+_9-5_8:_+26(_8,856\n+_)+!!!/____\nBEMJ_AONGP_SIVEMSZJHDQ_JB_STLIIIQN_K_LZ\nC_\nW\n_I _G_BXGWMIHNOT TO ANCDOZMG_ZYQ__UWQBB_L_\nITY.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 76,
    "heading": "2026-04-06 10:14:47 AREA: T",
    "published_at": "2026-04-06 10:14:47",
    "area": "T",
    "message_id": "T",
    "text": "ZCZC T\n___G09'___= 24\nOOSTENDERADIO MSI 59:)3' 9, 5_3 '3-_3$ 8, !9))+_'._-_\n,$.8___(_8.482_\n\n_.943N  00258.492E\nSHI_STED NOT TO ANCHOR NOR TO FISH IN THE VICINITY\nNNNN",
    "clean_text": "ZCZC T\n___G09'___= 24\nOOSTENDERADIO MSI 59:)3' 9, 5_3 '3-_3$ 8, !9))+_'._-_\n,$.8___(_8.482_\n\n_.943N 00258.492E\nSHI_STED NOT TO ANCHOR NOR TO FISH IN THE VICINITY\nNNNN",
    "resolved_station_name": "Oostende Radio",
    "resolved_country": "Belgium",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Belgian coast and southern North Sea",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "OOSTENDE",
      "OOSTENDERADIO"
    ],
    "display_region_heading": "Belgium - Belgian coast and southern North Sea",
    "display_region_label": "Oostende Radio, Belgium",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Belgium - Belgian coast and southern North Sea. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Shi sted not to anchor nor to fish in the vicinity"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 78,
    "heading": "2026-04-06 10:13:04 AREA: T",
    "published_at": "2026-04-06 10:13:04",
    "area": "T",
    "message_id": "",
    "text": "ZCZC TAKWW_\n_  Y \n_WPYWFZBQ9__6_$_8,$34  \n_MWEN \n_U__K_BQBJQD__: 151041 UTC APR 26\nNNNN",
    "clean_text": "ZCZC TAKWW_\n_ Y\n_WPYWFZBQ9__6_$_8,$34\n_MWEN\n_U__K_BQBJQD__: 151041 UTC APR 26\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 80,
    "heading": "2026-04-06 10:07:29 AREA: S",
    "published_at": "2026-04-06 10:07:29",
    "area": "S",
    "message_id": "",
    "text": "ZCZC S06_::-HAMBURG\n050930.___/._6_\n__(3)BHLAOMCA_DQQZ _I_IZJT WESTERN A_ACH\n'VUPSTK_VWN__HT-VESSEL 54-10N 006-21E TEMX___PVQ_SC_D.\n,39__77__\n1_77_ZCZC",
    "clean_text": "ZCZC S06_::-HAMBURG\n050930.___/._6_\n__(3)BHLAOMCA_DQQZ _I_IZJT WESTERN A_ACH\n'VUPSTK_VWN__HT-VESSEL 54-10N 006-21E TEMX___PVQ_SC_D.\n,39__77__\n1_77_ZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code S. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 81,
    "heading": "2026-04-06 10:07:29 AREA: T",
    "published_at": "2026-04-06 10:07:29",
    "area": "T",
    "message_id": "",
    "text": "ZOZCZC",
    "clean_text": "ZOZCZC",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 82,
    "heading": "2026-04-06 10:06:16 AREA: S",
    "published_at": "2026-04-06 10:06:16",
    "area": "S",
    "message_id": "SA79",
    "text": "ZCZC SA79\nNCC-H_LCY_ONN_PP_EYTC MAR 26\nNAZZG_LBHLGI_\n_SHORE WINDPARK *_+62*00._.(_7(!_:_0) ___T_\n__\nE_ATIVE ACYZ_KCU_SS__K8__:4)_ONNKKKKKKVVVVVVAAAAAAA_U_AXA_MJ__ONKQZNO. 183\nEAST FFFL___\n+1_)_ 0'2)5.\n \n+5\n!8'58'5+__5_79!..\n_0_339_=__\nNNNN",
    "clean_text": "ZCZC SA79\nNCC-H_LCY_ONN_PP_EYTC MAR 26\nNAZZG_LBHLGI_\n_SHORE WINDPARK *_+62*00._.(_7(!_:_0) ___T_\n__\nE_ATIVE ACYZ_KCU_SS__K8__:4)_ONNKKKKKKVVVVVVAAAAAAA_U_AXA_MJ__ONKQZNO. 183\nEAST FFFL___\n+1_)_ 0'2)5.\n\n+5\n!8'58'5+__5_79!..\n_0_339_=__\nNNNN",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code S. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 83,
    "heading": "2026-04-06 10:05:40 AREA: S",
    "published_at": "2026-04-06 10:05:40",
    "area": "S",
    "message_id": "",
    "text": "ZCZC SA8)_::-HAMBURG\n30100MG_ONKQZAV. WARN__MG_ZLBMG_V_QYDER ESTUARY.\n'EIDEY_JMGSF_DHT_ _TRAQYN_IAWOE\nI_RA_K_S\n__GRYNOYHQM_QUNLIT BUOYZDU_F_FF_C_ZZZZZZZZZZZZZAAAAAAAAAAVVVVVVVVVVVVX__XZCZC",
    "clean_text": "ZCZC SA8)_::-HAMBURG\n30100MG_ONKQZAV. WARN__MG_ZLBMG_V_QYDER ESTUARY.\n'EIDEY_JMGSF_DHT_ _TRAQYN_IAWOE\nI_RA_K_S\n__GRYNOYHQM_QUNLIT BUOYZDU_F_FF_C_ZZZZZZZZZZZZZAAAAAAAAAAVVVVVVVVVVVVX__XZCZC",
    "display_region_heading": "Unresolved B1 code S",
    "display_region_label": "B1 code S",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code S. Readable text says: Grynoyhqm qunlit buoyzdu f ff c zzzzzzzzzzzzzaaaaaaaaaavvvvvvvvvvvvx xzczc. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Grynoyhqm qunlit buoyzdu f ff c zzzzzzzzzzzzzaaaaaaaaaavvvvvvvvvvvvx xzczc"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 84,
    "heading": "2026-04-06 10:04:45 AREA: T",
    "published_at": "2026-04-06 10:04:45",
    "area": "T",
    "message_id": "",
    "text": "ZCZCMJ\nF__NY___AHAMBKY_ON\nP_ N__._9,(1_-=. WARN. NO. 191\nGERMAN _ODNIA_E_ D__ WEISS_M __!_=_02\n534 9034-58 3_*=_*7_8_3$::01_26)/_CS _H_W_O2',\nAROUND POSITION 54-46,6N 004_5E\nRESTRI_HP_M__P_YLFSFH_MWVG_0_=___9,'.\nBERTH OF 50M_ERS REQUESTED.\nNNNN",
    "clean_text": "ZCZCMJ\nF__NY___AHAMBKY_ON\nP_ N__._9,(1_-=. WARN. NO. 191\nGERMAN _ODNIA_E_ D__ WEISS_M __!_=_02\n534 9034-58 3_*=_*7_8_3$::01_26)/_CS _H_W_O2',\nAROUND POSITION 54-46,6N 004_5E\nRESTRI_HP_M__P_YLFSFH_MWVG_0_=___9,'.\nBERTH OF 50M_ERS REQUESTED.\nNNNN",
    "display_region_heading": "Unresolved B1 code T",
    "display_region_label": "B1 code T",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code T. Readable text says: Around position 54-46,6n 004 5e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Around position 54-46,6n 004 5e",
      "Berth of 50m ers requested"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 88,
    "heading": "2026-04-06 08:43:43 AREA: K",
    "published_at": "2026-04-06 08:43:43",
    "area": "K",
    "message_id": "KA28",
    "text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING Z_PYHFZONG_YZBM_H__\nUNTIL FURTHER NOTICE\nNO FISHING, TRAWLIB_DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86N 001-19.41E\n50-19.01__:01-12.02E\n5 Z_CYGM\n_ Y_CCGPON\nH_UB  GMIIKK\n Y_ZPGPON\nH ZBP_G_\n_ _ UBYEGPON\nH H_ZCGM\n_ _U_FGPON\nH P_CPGM\n_ _U BZUGPONGONNIII_ZC KA26\nAVURNAV CHERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTER O_ OF SERVICE - LIGHT UNLIT\nBOUEE BASJCYPSSPON\nH__PUBFG_\n_K_XL__AVIGATE WITH CAUTION\nNNNN",
    "clean_text": "ZCZC KA28\nWIGHT - LARGE CAYEUX-SUR-MER\nWORKS\nCABLE LAYING Z_PYHFZONG_YZBM_H__\nUNTIL FURTHER NOTICE\nNO FISHING, TRAWLIB_DREDGING, ANCHORING AND DIVING WITHIN THIS AREA\nAREA BOUNDED BY:\n50-10.84N 001-29.44E\n50-10.44N 001-29.13E\n50-13.61N 001-21.02E\n50-15.86N 001-19.41E\n50-19.01__:01-12.02E\n5 Z_CYGM\n_ Y_CCGPON\nH_UB GMIIKK\nY_ZPGPON\nH ZBP_G_\n_ _ UBYEGPON\nH H_ZCGM\n_ _U_FGPON\nH P_CPGM\n_ _U BZUGPONGONNIII_ZC KA26\nAVURNAV CHERBOURG 26/26\nDOVER - DST MANCHE EST\nAIDS TO NAVIGATION CHANGES\nAIS TRANSMITTER O_ OF SERVICE - LIGHT UNLIT\nBOUEE BASJCYPSSPON\nH__PUBFG_\n_K_XL__AVIGATE WITH CAUTION\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 50-10.84N 001-29.44E; 50-10.44N 001-29.13E. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "No fishing, trawlib dredging, anchoring and diving within this area",
      "Ais transmitter o of service - light unlit",
      "Cable laying z pyhfzong yzbm h"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 89,
    "heading": "2026-04-06 08:43:09 AREA: K",
    "published_at": "2026-04-06 08:43:09",
    "area": "K",
    "message_id": "KA29",
    "text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER - DST MANCHE EST\n_\nAIDS TO NAVIGATION CHANGES\nLIGHT BUOY - LIGHT UNLIT\nBYOY FAIRY SUD\n51-21.20N 002-17.30E\nNAVIGATE WITH CAUTION\nNNNN",
    "clean_text": "ZCZC KA29\nAVURNAV CHERBOURG 029/26\nDOVER - DST MANCHE EST\n_\nAIDS TO NAVIGATION CHANGES\nLIGHT BUOY - LIGHT UNLIT\nBYOY FAIRY SUD\n51-21.20N 002-17.30E\nNAVIGATE WITH CAUTION\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 51-21.20N 002-17.30E.",
    "decoded_highlights": [
      "Light buoy - light unlit",
      "Avurnav cherbourg 029/26",
      "Dover - dst manche est"
    ],
    "decoded_status": "decoded",
    "decoded_status_label": "Decoded"
  },
  {
    "index": 90,
    "heading": "2026-04-06 08:41:14 AREA: K",
    "published_at": "2026-04-06 08:41:14",
    "area": "K",
    "message_id": "KA39",
    "text": "ZCZC KA39\nAVURNAV CHERBOURG 39/26\nWIGHT -.52\n!_9,_*P_FSMZ_PYKH__1+_,/9_3_3_HE_1Z__F_V\nR_LONGXMGG9_._04 26 TO 061200 UTC APR 26\n\nAREA BOUNDED BY:\n49-59\n_____\n'_U U_E_GUOI_IKN\n_ZKY/)9,_::_:+(,_-:D_,__9_:._-,___9-32.33N V_ _BEUGU_N\nYZPYBC_G_PATTMQUGUONG\nF_H_M_FH_M_CHFZONON\n_CANCEL THIS MSG 061200 UTC APR 26\n\nAV_M_\nM_DPYLZCYM__ZO_IC WBMGHF_PYM_M_W\nF_ON_Z_PYKHFZJMJP_FSPJON\n_EXERCICE DE TIR\nDU 011000 UTC AVR 26 AU 06120.._(__.\n6.\n\n\nZONE DELIMITEE PAR :\n49-5_.92N 000-12.63W\n49-40.78N 0_CH_ ON_GARFNFETOF._-10.93W\n49-32.33N 000-18.62W\n49-34.72N 0,'-\n_\n87__9,_\n!_:06.\n0/._6:20_09,9888(_\n_-,,7)34 :3 .'_ )3 061200 UTC AVR 26\nNNNN",
    "clean_text": "ZCZC KA39\nAVURNAV CHERBOURG 39/26\nWIGHT -.52\n!_9,_*P_FSMZ_PYKH__1+_,/9_3_3_HE_1Z__F_V\nR_LONGXMGG9_._04 26 TO 061200 UTC APR 26\n\nAREA BOUNDED BY:\n49-59\n_____\n'_U U_E_GUOI_IKN\n_ZKY/)9,_::_:+(,_-:D_,__9_:._-,___9-32.33N V_ _BEUGU_N\nYZPYBC_G_PATTMQUGUONG\nF_H_M_FH_M_CHFZONON\n_CANCEL THIS MSG 061200 UTC APR 26\n\nAV_M_\nM_DPYLZCYM__ZO_IC WBMGHF_PYM_M_W\nF_ON_Z_PYKHFZJMJP_FSPJON\n_EXERCICE DE TIR\nDU 011000 UTC AVR 26 AU 06120.._(__.\n6.\n\nZONE DELIMITEE PAR :\n49-5_.92N 000-12.63W\n49-40.78N 0_CH_ ON_GARFNFETOF._-10.93W\n49-32.33N 000-18.62W\n49-34.72N 0,'-\n_\n87__9,_\n!_:06.\n0/._6:20_09,9888(_\n_-,,7)34 :3 .'_ )3 061200 UTC AVR 26\nNNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Exercice de tir",
      "49-40.78n 0 ch on garfnfetof. -10.93w",
      "Avurnav cherbourg 39/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 91,
    "heading": "2026-04-06 08:40:18 AREA: K",
    "published_at": "2026-04-06 08:40:18",
    "area": "K",
    "message_id": "KA40",
    "text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\n__7!_$_._._2\n!_9,_*P_FSMZ_PYHFZJON_FIRING EXERCISE\nFRAV__V_TC APR 26 TO 111500 UTC APR 26\nAREA BOUNDED BY:\n49-59.92N 000-12.63W\n49-40.78N 000-00.25W\n4+=_N 000-18.62W\n49-34.72N 000-55.12W\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC _AM\n_NNNN",
    "clean_text": "ZCZC KA40\nAVURNAV CHERBOURG 40/26\n__7!_$_._._2\n!_9,_*P_FSMZ_PYHFZJON_FIRING EXERCISE\nFRAV__V_TC APR 26 TO 111500 UTC APR 26\nAREA BOUNDED BY:\n49-59.92N 000-12.63W\n49-40.78N 000-00.25W\n4+=_N 000-18.62W\n49-34.72N 000-55.12W\nNAVIGATE WITH CAUTION\n2. CANCEL THIS MSG 111500 UTC _AM\n_NNNN",
    "resolved_station_name": "Niton (France relay)",
    "resolved_country": "United Kingdom / France",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "Channel Islands and north-east French coast",
    "resolved_match_basis": "station-signature",
    "resolved_match_terms": [
      "AVURNAV CHERBOURG",
      "CHERBOURG"
    ],
    "display_region_heading": "United Kingdom / France - Channel Islands and north-east French coast",
    "display_region_label": "Niton (France relay), United Kingdom / France",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: ! 9, p fsmz pyhfzjon firing exercise. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "! 9, p fsmz pyhfzjon firing exercise",
      "2. cancel this msg 111500 utc am",
      "Avurnav cherbourg 40/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 92,
    "heading": "2026-04-06 08:36:10 AREA: J",
    "published_at": "2026-04-06 08:36:10",
    "area": "J",
    "message_id": "JA42",
    "text": "ZCZC JA42\n071600 UTC APR\nPOLND_ NAVM_XWPWY\nSOU_H__N BALTUC. (0+!94 8.8=32\n_Z_: \nS-63CEHTELEE 54-39.2( 016-36.59EB\n_P_P TO 14:00\n8 APRIL F_OMV__:___\nO 21_59\n7'+9,-53 8' ___$!*._*._\n_ 6_MG_ZCZC",
    "clean_text": "ZCZC JA42\n071600 UTC APR\nPOLND_ NAVM_XWPWY\nSOU_H__N BALTUC. (0+!94 8.8=32\n_Z_:\nS-63CEHTELEE 54-39.2( 016-36.59EB\n_P_P TO 14:00\n8 APRIL F_OMV__:___\nO 21_59\n7'+9,-53 8' ___$!*._*._\n_ 6_MG_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: S-63cehtelee 54-39.2( 016-36.59eb. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "S-63cehtelee 54-39.2( 016-36.59eb"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 93,
    "heading": "2026-04-06 08:34:48 AREA: J",
    "published_at": "2026-04-06 08:34:48",
    "area": "J",
    "message_id": "JAXRE",
    "text": "ZCZC JAXRE\n012201 UTC ACR\nPOLISH NAV WARN 072/26\nSOUTHERN BJL_ICV_SEL RAMFORM VANGUARD / C6JF5 MMSI: 311_01_61 \nIN AREA_TTAEPMORN 017-04.66E  55-28.37N 017-04.15E \n55-26.60N 017-07.74E  557__:\n_.\n_12.81PMON_D___DLM_H_QUAWEMOUE  55-779 ___.\n_28.2 =_.\n,____0_N 017-3__03_0_.____0__:G_\n_WUMTEE \n55-35.22N 017-22.8\nT_ 55-32.88N 017 __!!_0.9,___(0__+6_.\n_04.66E \nWIDE BERTH REQUESTE_NAT LEASTVQ OM_N\n\nZCZC",
    "clean_text": "ZCZC JAXRE\n012201 UTC ACR\nPOLISH NAV WARN 072/26\nSOUTHERN BJL_ICV_SEL RAMFORM VANGUARD / C6JF5 MMSI: 311_01_61\nIN AREA_TTAEPMORN 017-04.66E 55-28.37N 017-04.15E\n55-26.60N 017-07.74E 557__:\n_.\n_12.81PMON_D___DLM_H_QUAWEMOUE 55-779 ___.\n_28.2 =_.\n,____0_N 017-3__03_0_.____0__:G_\n_WUMTEE\n55-35.22N 017-22.8\nT_ 55-32.88N 017 __!!_0.9,___(0__+6_.\n_04.66E\nWIDE BERTH REQUESTE_NAT LEASTVQ OM_N\n\nZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: In area ttaepmorn 017-04.66e 55-28.37n 017-04.15e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "In area ttaepmorn 017-04.66e 55-28.37n 017-04.15e",
      "Southern bjl icv sel ramform vanguard / c6jf5 mmsi: 311 01 61",
      "Wide berth requeste nat leastvq om n"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 94,
    "heading": "2026-04-06 08:33:11 AREA: J",
    "published_at": "2026-04-06 08:33:11",
    "area": "J",
    "message_id": "JA49",
    "text": "ZCZC JA49\n0 -04\nDANISH NAV WARN 183/26\nDENMA_K. 3+97,$.:W_Z_WP___ONGMC_ZLJPYMPW\nN_H_P_QWARWMEE.\nOBSTRUCTION VIZIBLE ABOVE SEA SURFLJMLCZJ\nDO_____ZCZC",
    "clean_text": "ZCZC JA49\n0 -04\nDANISH NAV WARN 183/26\nDENMA_K. 3+97,$.:W_Z_WP___ONGMC_ZLJPYMPW\nN_H_P_QWARWMEE.\nOBSTRUCTION VIZIBLE ABOVE SEA SURFLJMLCZJ\nDO_____ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. Readable text says: Obstruction vizible above sea surfljmlczj. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Obstruction vizible above sea surfljmlczj",
      "Danish nav warn 183/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 98,
    "heading": "2026-04-06 08:26:36 AREA: J",
    "published_at": "2026-04-06 08:26:36",
    "area": "J",
    "message_id": "JA53",
    "text": "ZCZC JA53\nCANCEHVWFJDM_M_Y_M_ F T_E_ZCZC",
    "clean_text": "ZCZC JA53\nCANCEHVWFJDM_M_Y_M_ F T_E_ZCZC",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for Unresolved B1 code J. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
    "decoded_highlights": [],
    "decoded_status": "raw",
    "decoded_status_label": "Low-confidence raw text"
  },
  {
    "index": 99,
    "heading": "2026-04-06 08:26:23 AREA: J",
    "published_at": "2026-04-06 08:26:23",
    "area": "J",
    "message_id": "",
    "text": "ZCZC JA_TR\nCANCEL DANISH NAV WARN 185/26\nNNNN",
    "clean_text": "ZCZC JA_TR\nCANCEL DANISH NAV WARN 185/26\nNNNN",
    "display_region_heading": "Unresolved B1 code J",
    "display_region_label": "B1 code J",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code J. Readable text says: Cancel danish nav warn 185/26. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Cancel danish nav warn 185/26"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 100,
    "heading": "2026-04-06 08:08:29 AREA: G",
    "published_at": "2026-04-06 08:08:29",
    "area": "G",
    "message_id": "GA96",
    "text": "ZCZC GA96\nWZ 171/26 \nHUMBER. \nDUDGEON WIND FARM. \nDUDGEOMJZCHDMLCZEM_HP_ _N 001-25.6E U_X_X_YM__,:0__7_7ZCZ_K_TYV__KS_\n__LLW\nCROMARTY_ATING WIND FARM.\n1. TCYLFPMDJ_TUAWOMR)9_01-21.1W, FOG SIGNAL INOPEYHF\nP_BO_\n_CANCEL W_KDB_ZB_PNL_VYX_ONNIKKKKKKKVVVVVVVV_XZ_Q___Z_BZCZC",
    "clean_text": "ZCZC GA96\nWZ 171/26\nHUMBER.\nDUDGEON WIND FARM.\nDUDGEOMJZCHDMLCZEM_HP_ _N 001-25.6E U_X_X_YM__,:0__7_7ZCZ_K_TYV__KS_\n__LLW\nCROMARTY_ATING WIND FARM.\n1. TCYLFPMDJ_TUAWOMR)9_01-21.1W, FOG SIGNAL INOPEYHF\nP_BO_\n_CANCEL W_KDB_ZB_PNL_VYX_ONNIKKKKKKKVVVVVVVV_XZ_Q___Z_BZCZC",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "CROMARTY"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "1. tcylfpmdj tuawomr)9 01-21.1w, fog signal inopeyhf",
      "Dudgeon wind farm",
      "Cromarty ating wind farm"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 101,
    "heading": "2026-04-06 08:07:57 AREA: G",
    "published_at": "2026-04-06 08:07:57",
    "area": "G",
    "message_id": "",
    "text": "ZCZC G_ZCONG_YPM_M_YPT__MOOWA_DWBQNCB_D_KJBK_U_P_EMOT OIL FIELDS. \nCHART GB 278. \nSAFETY ZONE, RADIUS 500 METRES, ESTABLISHED IN 57-16.48N 000-46.38E\nNNNN",
    "clean_text": "ZCZC G_ZCONG_YPM_M_YPT__MOOWA_DWBQNCB_D_KJBK_U_P_EMOT OIL FIELDS.\nCHART GB 278.\nSAFETY ZONE, RADIUS 500 METRES, ESTABLISHED IN 57-16.48N 000-46.38E\nNNNN",
    "display_region_heading": "Unresolved B1 code G",
    "display_region_label": "B1 code G",
    "subject_label": "operational notice",
    "subject_code": "",
    "decoded_summary": "operational notice for Unresolved B1 code G. Readable text says: Safety zone, radius 500 metres, established in 57-16.48n 000-46.38e. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Safety zone, radius 500 metres, established in 57-16.48n 000-46.38e"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  },
  {
    "index": 102,
    "heading": "2026-04-06 08:06:47 AREA: G",
    "published_at": "2026-04-06 08:06:47",
    "area": "G",
    "message_id": "GA71",
    "text": "ZCZC GA71\nWZ 204/26\nHUMBER.\nORWELL GAS FIELD NZOD_PJH_Y_J_1. MET MAST 53-10.7N 002-59.1E UNLIT AND ALL NSXJMJMFZ_PYHF\nP_BO_\n_CANCEL WZ 82/26 (GA42).\nNNNN",
    "clean_text": "ZCZC GA71\nWZ 204/26\nHUMBER.\nORWELL GAS FIELD NZOD_PJH_Y_J_1. MET MAST 53-10.7N 002-59.1E UNLIT AND ALL NSXJMJMFZ_PYHF\nP_BO_\n_CANCEL WZ 82/26 (GA42).\nNNNN",
    "resolved_station_name": "Cullercoats",
    "resolved_country": "United Kingdom",
    "resolved_nav_area": "I",
    "resolved_coverage_label": "North Sea and north-east UK coast",
    "resolved_match_basis": "regional-context",
    "resolved_match_terms": [
      "HUMBER",
      "ORWELL GAS FIELD"
    ],
    "display_region_heading": "United Kingdom - North Sea and north-east UK coast",
    "display_region_label": "Cullercoats, United Kingdom",
    "subject_label": "navigational warning",
    "subject_code": "A",
    "decoded_summary": "navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Orwell gas field nzod pjh y j 1. met mast 53-10.7n 002-59.1e unlit and all nsxjmjmfz pyhf. Decoding is partial rather than complete.",
    "decoded_highlights": [
      "Orwell gas field nzod pjh y j 1. met mast 53-10.7n 002-59.1e unlit and all nsxjmjmfz pyhf",
      "Cancel wz 82/26 (ga42)"
    ],
    "decoded_status": "partial",
    "decoded_status_label": "Partially decoded"
  }
]