/* TM_lib_internal::RECV_ReadPackets */
void RECV_ReadPackets_TM_lib_internal(
  /* TM_lib_internal::RECV_ReadPackets::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  /* TM_lib_internal::RECV_ReadPackets::PacketID */kcg_int PacketID,
  /* TM_lib_internal::RECV_ReadPackets::F_version */kcg_bool F_version,
  /* TM_lib_internal::RECV_ReadPackets::F_id */kcg_bool F_id,
  outC_RECV_ReadPackets_TM_lib_internal *outC)
{
  array_int_500 tmp;
  kcg_int noname;
  
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L46, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L48,
    &outC->_L46.PacketData);
  outC->_L45 = PacketID;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L47, &outC->_L46.PacketHeaders);
  outC->_L49 = F_version;
  outC->_L50 = F_id;
  /* 1 */
  RECV_LookupPacket_TM_lib_internal(
    outC->_L45,
    &outC->_L47,
    outC->_L49,
    outC->_L50,
    &outC->Context_1);
  outC->_L1 = outC->Context_1.Found;
  outC->_L2 = outC->Context_1.Index;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L3,
    &outC->Context_1.HeaderFound);
  outC->received = outC->_L1;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Metadata, &outC->_L3);
  outC->tmp = outC->_L1;
  if (outC->tmp) {
    /* 1 */
    RECV_ReadPacketKernel_TM_lib_internal(
      &outC->_L3,
      &outC->_L48,
      &outC->_1_Context_1);
    kcg_copy_array_int_500(&tmp, &outC->_1_Context_1.PacketOut);
  }
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    (CompressedPacketData_T_Common_Types_Pkg *) &DEFAULT_CompressedPackets_TM);
  if (outC->tmp) {
    kcg_copy_array_int_500(&outC->_L4, &tmp);
  }
  else {
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L4, &outC->_L44);
  }
  kcg_copy_array_int_500(&outC->Data, &outC->_L4);
  noname = outC->_L2;
}
/* TM_trackside_baseline2::Write_P003V1 */
void Write_P003V1_TM_trackside_baseline2(
  /* TM_trackside_baseline2::Write_P003V1::Packet003V1 */P003V1_trackside_int_T_TM_baseline2 *Packet003V1,
  /* TM_trackside_baseline2::Write_P003V1::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  outC_Write_P003V1_TM_trackside_baseline2 *outC)
{
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L40, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L42,
    &outC->_L40.PacketData);
  kcg_copy_P003V1_trackside_int_T_TM_baseline2(&outC->_L1, Packet003V1);
  /* 1 */
  C_P003V1_tracksim_compr_TM_conversions_baseline2(
    &outC->_L1,
    &outC->Context_1);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L43,
    &outC->Context_1.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    &outC->Context_1.P003V1_compressed);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L41, &outC->_L40.PacketHeaders);
  /* 1 */
  SEND_WriteBaliseMessageHeader_TM_lib_internal(
    &outC->_L41,
    &outC->_L43,
    &outC->_1_Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L4,
    &outC->_1_Context_1.HeadersOut);
  outC->_L21 = outC->_1_Context_1.NewStartAddr;
  outC->_L22 = outC->_1_Context_1.NewEndAddr;
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L21,
    outC->_L22,
    &outC->_L42,
    &outC->_L44,
    &outC->_2_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L10,
    &outC->_2_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L39.PacketHeaders, &outC->_L4);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L39.PacketData,
    &outC->_L10);
  outC->_L18 = kcg_false;
  outC->Error = outC->_L18;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &outC->RadioPacketsOut,
    &outC->_L39);
}
/* TM_lib_internal::RECV_ReadPackets */
void RECV_ReadPackets_TM_lib_internal(
  /* TM_lib_internal::RECV_ReadPackets::Packets */ CompressedPackets_T_Common_Types_Pkg *Packets,
  /* TM_lib_internal::RECV_ReadPackets::PacketID */ kcg_int PacketID,
  /* TM_lib_internal::RECV_ReadPackets::F_version */ kcg_bool F_version,
  /* TM_lib_internal::RECV_ReadPackets::F_id */ kcg_bool F_id,
  /* TM_lib_internal::RECV_ReadPackets::Data */ CompressedPacketData_T_Common_Types_Pkg *Data,
  /* TM_lib_internal::RECV_ReadPackets::Metadata */ MetadataElement_T_Common_Types_Pkg *Metadata,
  /* TM_lib_internal::RECV_ReadPackets::received */ kcg_bool *received)
{
  /* TM_lib_internal::RECV_ReadPackets::_L2 */
  static kcg_int _L2;
  
  /* 1 */
  RECV_LookupPacket_TM_lib_internal(
    PacketID,
    &(*Packets).PacketHeaders,
    F_version,
    F_id,
    received,
    &_L2,
    Metadata);
  /* ck_received */ if (*received) {
    /* 1 */
    RECV_ReadPacketKernel_TM_lib_internal(
      Metadata,
      &(*Packets).PacketData,
      Data);
  }
  else {
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
      Data,
      (CompressedPacketData_T_Common_Types_Pkg *)
        &DEFAULT_CompressedPackets_TM);
  }
}
/* TM_lib_internal::SEND_WriteBaliseDataElement */
void SEND_WriteBaliseDataElement_TM_lib_internal(
    /* TM_lib_internal::SEND_WriteBaliseDataElement::Index */kcg_int Index,
    /* TM_lib_internal::SEND_WriteBaliseDataElement::DataIn */kcg_int DataIn,
    /* TM_lib_internal::SEND_WriteBaliseDataElement::ElementIn */CompressedPacketData_T_Common_Types_Pkg *ElementIn,
    /* TM_lib_internal::SEND_WriteBaliseDataElement::StartAddress */kcg_int StartAddress,
    /* TM_lib_internal::SEND_WriteBaliseDataElement::EndAddress */kcg_int EndAddress,
    outC_SEND_WriteBaliseDataElement_TM_lib_internal *outC)
{
    outC->_L10 = Index;
    outC->_L16 = StartAddress;
    outC->_L17 = outC->_L10 - outC->_L16;
    outC->_L5 = EndAddress;
    outC->_L1 = Index;
    outC->_L6 = outC->_L5 >= outC->_L1;
    outC->_L4 = StartAddress;
    outC->_L7 = outC->_L1 >= outC->_L4;
    outC->_L8 = outC->_L6 & outC->_L7;
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L3, ElementIn);
    if ((0 <= outC->_L17) & (outC->_L17 < 500)) {
        outC->_L9 = outC->_L3[outC->_L17];
    }
    else {
        outC->_L9 = 0;
    }
    outC->_L2 = DataIn;
    if (outC->_L8) {
        outC->_L14 = outC->_L9;
    }
    else {
        outC->_L14 = outC->_L2;
    }
    outC->DataOut = outC->_L14;
    outC->Cont = outC->_L6;
}
/* TM_lib_internal::RECV_ReadPacketKernelLoop */
void RECV_ReadPacketKernelLoop_TM_lib_internal(
  /* TM_lib_internal::RECV_ReadPacketKernelLoop::Index */kcg_int Index,
  /* TM_lib_internal::RECV_ReadPacketKernelLoop::PacketData */CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_lib_internal::RECV_ReadPacketKernelLoop::AddressStart */kcg_int AddressStart,
  /* TM_lib_internal::RECV_ReadPacketKernelLoop::AddressEnd */kcg_int AddressEnd,
  outC_RECV_ReadPacketKernelLoop_TM_lib_internal *outC)
{
  outC->_L34 = 1;
  outC->_L1 = Index;
  outC->_L33 = outC->_L1 + outC->_L34;
  outC->_L4 = AddressEnd;
  outC->_L31 = AddressStart;
  outC->_L32 = outC->_L4 - outC->_L31;
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L9, PacketData);
  outC->_L3 = AddressStart;
  outC->_L20 = Index;
  outC->_L29 = outC->_L3 + outC->_L20;
  if ((0 <= outC->_L29) & (outC->_L29 < 500)) {
    outC->_L30 = outC->_L9[outC->_L29];
  }
  else {
    outC->_L30 = 0;
  }
  outC->_L18 = outC->_L33 <= outC->_L32;
  outC->Cont = outC->_L18;
  outC->PacketOut = outC->_L30;
}
/* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray */
void Merg2PacketsListArray_CheckBGConsistency_Pkg_SubFunction_MergFunction(
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray::acc */ CompressedPacketData_T_Common_Types_Pkg *acc1,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray::addressArray */ CompressedPacketData_T_Common_Types_Pkg *addressArray,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray::newPackets */ CompressedPacketData_T_Common_Types_Pkg *newPackets,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray::mergPackets */ CompressedPacketData_T_Common_Types_Pkg *mergPackets)
{
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::Merg2PacketsListArray */
  static CompressedPacketData_T_Common_Types_Pkg acc;
  static kcg_int i;
  
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(mergPackets, acc1);
  for (i = 0; i < 500; i++) {
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&acc, mergPackets);
    /* 1 */
    Merg2PacketsList_CheckBGConsistency_Pkg_SubFunction_MergFunction(
      i,
      &acc,
      addressArray,
      newPackets,
      mergPackets);
  }
}
/* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets */
void MergAllPackets_CheckBGConsistency_Pkg_SubFunction_MergFunction(
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::telegramACC */Telegram_T_BG_Types_Pkg *telegramACC,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::telegram */Telegram_T_BG_Types_Pkg *telegram,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::go_on */kcg_bool *go_on,
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::telegram_out */Telegram_T_BG_Types_Pkg *telegram_out)
{
  static kcg_int i;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1::else */
  static kcg_bool else_clock_IfBlock1;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1::else::else::then::_L17 */
  static array_int_500 _L17_IfBlock1;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1::else::else::then::_L13 */
  static kcg_int _L13_IfBlock1;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1::else::else::then::_L11 */
  static kcg_int _L11_IfBlock1;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1::else::else::then::_L12 */
  static kcg_int _L12_IfBlock1;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::IfBlock1 */
  static kcg_bool IfBlock1_clock;
  /* CheckBGConsistency_Pkg::SubFunction::MergFunction::MergAllPackets::diff */
  static kcg_int diff;
  
  i = /* 3 */
    N_PIG2int_CheckBGConsistency_Pkg_SubFunction(
      (*telegram).telegramheader.n_pig);
  diff = /* 4 */
    N_PIG2int_CheckBGConsistency_Pkg_SubFunction(
      (*telegramACC).telegramheader.n_pig) - i;
  *go_on = (*telegram).valid;
  IfBlock1_clock = (diff == - 1) & (((*telegramACC).telegramheader.m_dup ==
        M_DUP_This_balise_is_a_duplicate_of_the_next_balise) &
      ((*telegram).telegramheader.m_dup ==
        M_DUP_This_balise_is_a_duplicate_of_the_previous_balise)) & *go_on;
  if (IfBlock1_clock) {
    kcg_copy_Telegram_T_BG_Types_Pkg(telegram_out, telegram);
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
      &(*telegram_out).packets.PacketData,
      &(*telegramACC).packets.PacketData);
  }
  else {
    else_clock_IfBlock1 = (diff == 1) & (((*telegramACC).telegramheader.m_dup ==
          M_DUP_This_balise_is_a_duplicate_of_the_previous_balise) &
        ((*telegram).telegramheader.m_dup ==
          M_DUP_This_balise_is_a_duplicate_of_the_next_balise)) & *go_on;
    if (else_clock_IfBlock1) {
      kcg_copy_Telegram_T_BG_Types_Pkg(telegram_out, telegram);
      kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
        &(*telegram_out).packets.PacketData,
        &(*telegramACC).packets.PacketData);
    }
    else if (*go_on) {
      /* 1 */
      FindIndexOfMetaDataIteration_CheckBGConsistency_Pkg_SubFunction_MergFunction(
        &(*telegramACC).packets.PacketHeaders,
        &_L11_IfBlock1,
        &_L12_IfBlock1);
      _L13_IfBlock1 = _L12_IfBlock1 + 1;
      for (i = 0; i < 500; i++) {
        _L17_IfBlock1[i] = _L13_IfBlock1;
      }
      kcg_copy_Telegram_T_BG_Types_Pkg(telegram_out, telegram);
      /* 1 */
      Merg2MetaDataIteration_CheckBGConsistency_Pkg_SubFunction_MergFunction(
        &(*telegramACC).packets.PacketHeaders,
        telegram,
        &(*telegram_out).packets.PacketHeaders);
      /* 1 */
      Merg2PacketsListArray_CheckBGConsistency_Pkg_SubFunction_MergFunction(
        &(*telegramACC).packets.PacketData,
        &_L17_IfBlock1,
        &(*telegram).packets.PacketData,
        &(*telegram_out).packets.PacketData);
    }
    else {
      kcg_copy_Telegram_T_BG_Types_Pkg(telegram_out, telegramACC);
    }
  }
}
/* TM_conversions::C_P137_tracksim_compr */
void C_P137_tracksim_compr_TM_conversions(
  /* TM_conversions::C_P137_tracksim_compr::P137_from_track */P137_trackside_int_T_TM *P137_from_track,
  outC_C_P137_tracksim_compr_TM_conversions *outC)
{
  static kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _8_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR _2_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */
  static Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */
  static kcg_bool error_1;
  static kcg_bool noname_1;
  
  kcg_copy_P137_trackside_int_T_TM(&outC->_L1, P137_from_track);
  outC->_L217 = outC->_L1.Q_SRSTOP;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 1 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    137,
    INT_M_VERSION_2_0_TM,
    &outC->Context_1);
  outC->_L389 = outC->Context_1.nid_packet_meta;
  outC->_L388 = DIM_MaxElementsPacket137_TM;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L336 = 0;
  for (i = 0; i < 496; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_4(&outC->_L383[0], &outC->_L373);
  kcg_copy_array_int_496(&outC->_L383[4], &outC->_L209);
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _10_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _10_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _8_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_11_IfBlock1;
        _2_q_dir_1 = _5_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _3_q_dir_1 = outC->_L2_1_IfBlock1;
        _2_q_dir_1 = _3_q_dir_1;
      }
      _8_q_dir_1 = _2_q_dir_1;
    }
    outC->q_dir_1 = _8_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L388 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L389;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P137_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L1_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_trackside_baseline2::Write_P027V1 */
void Write_P027V1_TM_trackside_baseline2(
  /* TM_trackside_baseline2::Write_P027V1::Packet27V1 */P027V1_trackside_int_T_TM_baseline2 *Packet27V1,
  /* TM_trackside_baseline2::Write_P027V1::Packets */CompressedPackets_T_Common_Types_Pkg *Packets,
  outC_Write_P027V1_TM_trackside_baseline2 *outC)
{
  static kcg_int i2;
  static kcg_int i1;
  static CompressedPackets_T_Common_Types_Pkg tmp;
  static kcg_int i;
  static kcg_int noname;
  
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L40, Packets);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L42,
    &outC->_L40.PacketData);
  kcg_copy_P027V1_trackside_int_T_TM_baseline2(&outC->_L1, Packet27V1);
  /* 1 */
  C_P027V1_tracksim_compr_body_TM_conversions_baseline2(
    &outC->_L1,
    &outC->Context_1);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L43,
    &outC->Context_1.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L44,
    &outC->Context_1.P027V1_body_compressed);
  kcg_copy__2_P027V1_OBU_sectionlist_int_T_TM_baseline2(
    &outC->_L45,
    &outC->Context_1.P027V1_sections);
  outC->_L46 = outC->Context_1.n_iter_k_out;
  outC->_L56 = outC->Context_1.meta_first_section;
  for (i2 = 0; i2 < 33; i2++) {
    outC->_L55[i2] = outC->_L56;
  }
  for (i1 = 0; i1 < 33; i1++) {
    outC->_L54[i1] = outC->_L46;
  }
  outC->_L52 = kcg_true;
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L41, &outC->_L40.PacketHeaders);
  /* 1 */
  SEND_WriteMessageHeader_TM_lib_internal(
    &outC->_L41,
    &outC->_L43,
    &outC->_1_Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L4,
    &outC->_1_Context_1.HeadersOut);
  outC->_L21 = outC->_1_Context_1.NewStartAddr;
  outC->_L22 = outC->_1_Context_1.NewEndAddr;
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L21,
    outC->_L22,
    &outC->_L42,
    &outC->_L44,
    &outC->_2_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L10,
    &outC->_2_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(&outC->_L39.PacketHeaders, &outC->_L4);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L39.PacketData,
    &outC->_L10);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L51, &outC->_L39);
  if (outC->_L52) {
    for (i = 0; i < 33; i++) {
      kcg_copy_CompressedPackets_T_Common_Types_Pkg(&tmp, &outC->_L51);
      /* 1 */
      C_P027V1_tracksim_merge_s_TM_conversions_baseline2(
        i,
        &tmp,
        &outC->_L45[i],
        outC->_L54[i],
        outC->_L55[i],
        &outC->_3_Context_1[i]);
      kcg_copy_CompressedPackets_T_Common_Types_Pkg(
        &outC->_L51,
        &outC->_3_Context_1[i].Packets_Out);
      outC->_L50 = i + 1;
      if (!outC->_3_Context_1[i].cont) {
        break;
      }
    }
  }
  else {
    outC->_L50 = 0;
  }
  noname = outC->_L50;
  outC->_L18 = kcg_false;
  outC->Error = outC->_L18;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->PacketsOut, &outC->_L51);
}
/* Internal_Tests::EVC_stub_QNX */
void EVC_stub_QNX_Internal_Tests(void)
{
    /* TM_conversions::CAST_Int_to_M_LEVELTR::IfBlock1 */
    static kcg_bool IfBlock1_clock_1_1_1_1_1;
    /* TM_conversions::CAST_Int_to_M_LEVELTR::IfBlock1::else::else */
    static kcg_bool _3_else_clock_1_1_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_M_LEVELTR::IfBlock1::else::else::else::else */
    static kcg_bool _2_else_clock_1_1_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_M_LEVELTR::IfBlock1::else::else::else */
    static kcg_bool _1_else_clock_1_1_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_M_LEVELTR::IfBlock1::else */
    static kcg_bool else_clock_1_1_1_1_1_IfBlock1;
    /* TM_lib_internal::T_Decode_metadata_new::_L5 */
    static kcg_int _L5_1_1_1_1_1_1;
    /* TM_lib_internal::T_Decode_metadata_new::_L5 */
    static kcg_int _L5_2_1_1_1_1_1;
    static kcg_int i;
    static kcg_int _14_noname_1_1_1;
    /* TM_lib_internal::RECV_ReadPacketKernel::_L10 */
    static array_int_500 _L10_1_1_1;
    /* TM_lib_internal::RECV_LookupPacket::_L23 */
    static MetadataElement_T_Common_Types_Pkg _L23_1_1_1;
    /* TM_lib_internal::RECV_ReadPackets::_L4 */
    static array_int_500 _L4_1_1;
    /* TM_conversions::CAST_Int_to_Q_NVDRIVER_ADHES::IfBlock1::else */
    static kcg_bool _13_else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_Q_NVDRIVER_ADHES::IfBlock1 */
    static kcg_bool _12_IfBlock1_clock_1_1_1;
    /* TM_conversions::CAST_Int_to_M_NVDERUN::IfBlock1::else */
    static kcg_bool _11_else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_M_NVDERUN::IfBlock1 */
    static kcg_bool _10_IfBlock1_clock_1_1_1;
    /* TM_lib_internal::C_P003V1_unflatten_sections::_L1 */
    static P003V1_OBU_sectionlist_int_T_TM_baseline2 _9__L1_1_1_1;
    /* TM_lib_internal::C_P003V1_unflatten_sections::_L9 */
    static array__11866 _8__L9_1_1_1;
    /* TM_conversions_baseline2::C_P003V1_compr_onboard::_L1 */
    static array_int_24 _L1_1_1;
    /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else */
    static kcg_bool _7_else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else::else */
    static kcg_bool _6_else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1 */
    static kcg_bool _5_IfBlock1_clock_1_1_1;
    /* TM_lib_internal::C_P041_unflatten_sections::_L1 */
    static P041_sections_array_flat_T_TM _L1_1_1_1;
    /* TM_lib_internal::C_P041_unflatten_sections::_L9 */
    static array__11953 _L9_1_1_1;
    /* TM_lib_internal::C_P041_unflatten_sections::_L11 */
    static kcg_bool _L11_1_1_1;
    /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else */
    static kcg_bool _4_else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1::else::else */
    static kcg_bool else_clock_1_1_1_IfBlock1;
    /* TM_conversions::CAST_Int_to_Q_SCALE::IfBlock1 */
    static kcg_bool IfBlock1_clock_1_1_1;
    /* TM_conversions::CAST_Int_to_Q_DIR::IfBlock1::else::else */
    static kcg_bool else_clock_1_2_1_IfBlock1;
    static kcg_int noname_1_1_1;
    /* Internal_Tests::EVC_stub_QNX::_L10 */
    static kcg_bool _L10;
    /* Internal_Tests::EVC_stub_QNX::_L12 */
    static kcg_bool _L12;
    /* Internal_Tests::EVC_stub_QNX::_L14 */
    static kcg_bool _L14;

    kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &_L23_1_1_1,
        (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
    for (i = 0; i < 30; i++) {
        kcg_copy_MetadataElement_T_Common_Types_Pkg(
            &_L23_1_1_1,
            &BG_data.Messages.PacketHeaders[i]);
        if (!!(137032000 / DIM_offset_metadata_nid_packet_TM_lib_internal ==
                _L23_1_1_1.nid_packet /
                DIM_offset_metadata_nid_packet_TM_lib_internal)) {
            break;
        }
    }
    _L14 = _L23_1_1_1.nid_packet /
           DIM_offset_metadata_nid_packet_TM_lib_internal == 137032000 /
           DIM_offset_metadata_nid_packet_TM_lib_internal;
    if (_L14) {
        for (i = 0; i < 500; i++) {
            if ((0 <= _L23_1_1_1.startAddress + i) & (_L23_1_1_1.startAddress + i <
                    500)) {
                _L4_1_1[i] = BG_data.Messages.PacketData[_L23_1_1_1.startAddress + i];
            }
            else {
                _L4_1_1[i] = 0;
            }
            _14_noname_1_1_1 = i + 1;
            if (!(i + 1 <= _L23_1_1_1.endAddress - _L23_1_1_1.startAddress)) {
                break;
            }
        }
#ifdef KCG_MAPW_CPY

        for (i = _14_noname_1_1_1; i < 500; i++) {
            _L4_1_1[i] = 0;
        }
#endif /* KCG_MAPW_CPY */

        kcg_copy_array_int_500(&_L10_1_1_1, &_L4_1_1);
    }
    else {
        kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
            &_L10_1_1_1,
            (array_int_500 *) &DEFAULT_CompressedPackets_TM);
    }
    packet_137.valid = _L10_1_1_1[0] == 137;
    _L12 = _L10_1_1_1[1] == INT_Q_DIR_nomiinal_TM_conversions;
    _10_IfBlock1_clock_1_1_1 = _L10_1_1_1[3] == INT_Q_SRSTOP_go_TM_conversions;
    if (_L12) {
        packet_137.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
    }
    else {
        _13_else_clock_1_1_1_IfBlock1 = _L10_1_1_1[1] ==
                                        INT_Q_DIR_reverse_TM_conversions;
        if (_13_else_clock_1_1_1_IfBlock1) {
            packet_137.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
        }
        else {
            _12_IfBlock1_clock_1_1_1 = _L10_1_1_1[1] == INT_Q_DIR_both_TM_conversions;
            if (_12_IfBlock1_clock_1_1_1) {
                packet_137.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
            else {
                packet_137.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
        }
    }
    if (_10_IfBlock1_clock_1_1_1) {
        packet_137.q_srstop = ENUM_Q_SRSTOP_go_TM_conversions;
    }
    else {
        _11_else_clock_1_1_1_IfBlock1 = _L10_1_1_1[3] ==
                                        INT_Q_SRSTOP_stop_TM_conversions;
        if (_11_else_clock_1_1_1_IfBlock1) {
            packet_137.q_srstop = ENUM_Q_SRSTOP_stop_TM_conversions;
        }
        else {
            packet_137.q_srstop = ENUM_Q_SRSTOP_stop_TM_conversions;
        }
    }
    kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &_L23_1_1_1,
        (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
    for (i = 0; i < 30; i++) {
        kcg_copy_MetadataElement_T_Common_Types_Pkg(
            &_L23_1_1_1,
            &BG_data.Messages.PacketHeaders[i]);
        _L5_2_1_1_1_1_1 = _L23_1_1_1.nid_packet %
                          DIM_offset_metadata_q_dir_TM_lib_internal;
        _14_noname_1_1_1 = 3016000 % DIM_offset_metadata_q_dir_TM_lib_internal;
        if (!!((3016000 / DIM_offset_metadata_nid_packet_TM_lib_internal ==
                _L23_1_1_1.nid_packet /
                DIM_offset_metadata_nid_packet_TM_lib_internal) & (_L5_2_1_1_1_1_1 /
                        DIM_offset_metadata_m_version_TM_lib_internal == _14_noname_1_1_1 /
                        DIM_offset_metadata_m_version_TM_lib_internal))) {
            break;
        }
    }
    _L12 = (_L23_1_1_1.nid_packet /
            DIM_offset_metadata_nid_packet_TM_lib_internal == 3016000 /
            DIM_offset_metadata_nid_packet_TM_lib_internal) & (3016000 %
                    DIM_offset_metadata_q_dir_TM_lib_internal /
                    DIM_offset_metadata_m_version_TM_lib_internal == _L23_1_1_1.nid_packet %
                    DIM_offset_metadata_q_dir_TM_lib_internal /
                    DIM_offset_metadata_m_version_TM_lib_internal);
    if (_L12) {
        for (i = 0; i < 500; i++) {
            if ((0 <= _L23_1_1_1.startAddress + i) & (_L23_1_1_1.startAddress + i <
                    500)) {
                _L10_1_1_1[i] = BG_data.Messages.PacketData[_L23_1_1_1.startAddress +
                                i];
            }
            else {
                _L10_1_1_1[i] = 0;
            }
            _14_noname_1_1_1 = i + 1;
            if (!(i + 1 <= _L23_1_1_1.endAddress - _L23_1_1_1.startAddress)) {
                break;
            }
        }
#ifdef KCG_MAPW_CPY

        for (i = _14_noname_1_1_1; i < 500; i++) {
            _L10_1_1_1[i] = 0;
        }
#endif /* KCG_MAPW_CPY */

        kcg_copy_array_int_500(&_L4_1_1, &_L10_1_1_1);
    }
    else {
        kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
            &_L4_1_1,
            (array_int_500 *) &DEFAULT_CompressedPackets_TM);
    }
    kcg_copy_array_int_24(&_L1_1_1, (array_int_24 *) &_L4_1_1[0]);
    packet_003.d_validnv = _L1_1_1[4];
    packet_003.n_iter = _L1_1_1[5];
    packet_003.v_nvshunt = _L1_1_1[6] * 5;
    packet_003.v_nvstff = _L1_1_1[7] * 5;
    packet_003.v_nvonsight = _L1_1_1[8] * 5;
    packet_003.v_nvunfit = _L1_1_1[9] * 5;
    packet_003.v_nvrel = _L1_1_1[10] * 5;
    packet_003.d_nvroll = _L1_1_1[11];
    packet_003.v_nvallowovtrp = _L1_1_1[14] * 5;
    packet_003.v_nvsopovtrp = _L1_1_1[15] * 5;
    packet_003.d_nvovtrp = _L1_1_1[16];
    packet_003.t_nvovtrp = _L1_1_1[17];
    packet_003.d_nvpotrp = _L1_1_1[18];
    packet_003.t_nvcontact = _L1_1_1[20];
    packet_003.d_nvstff = _L1_1_1[22];
    _12_IfBlock1_clock_1_1_1 = _L1_1_1[23] ==
                               INT_Q_NVDRIVER_ADHES_Allowed_TM_conversions;
    _10_IfBlock1_clock_1_1_1 = _L1_1_1[21] == INT_M_NVDERUN_no_TM_conversions;
    IfBlock1_clock_1_1_1 = _L1_1_1[19] ==
                           INT_M_NVCONTACT_Apply_service_brake_TM_conversions;
    _3_else_clock_1_1_1_1_1_IfBlock1 = _L1_1_1[13] ==
                                       INT_Q_NVEMRRLS_revoke_at_standstill_TM_conversions;
    _1_else_clock_1_1_1_1_1_IfBlock1 = _L1_1_1[12] ==
                                       INT_Q_NVSBTSMPERM_Yes_TM_conversions;
    _L10 = _L1_1_1[1] == INT_Q_DIR_nomiinal_TM_conversions;
    kcg_copy_P003V1_OBU_sectionlist_int_T_TM_baseline2(
        &_9__L1_1_1_1,
        (P003V1_OBU_sectionlist_int_T_TM_baseline2 *) &_L4_1_1[24]);
    else_clock_1_2_1_IfBlock1 = _L1_1_1[0] == 3;
    packet_003.valid = else_clock_1_2_1_IfBlock1;
    if (else_clock_1_2_1_IfBlock1) {
        for (i = 0; i < 32; i++) {
            _8__L9_1_1_1[i].valid = kcg_true;
            _8__L9_1_1_1[i].nid_c = _9__L1_1_1_1[i];
            _L5_2_1_1_1_1_1 = i + 1;
            if (!(_L1_1_1[5] > i)) {
                break;
            }
        }
    }
    else {
        _L5_2_1_1_1_1_1 = 0;
    }
#ifdef KCG_MAPW_CPY

    for (i = _L5_2_1_1_1_1_1; i < 32; i++) {
        kcg_copy_P003V1_section_enum_T_TM_baseline2(
            &_8__L9_1_1_1[i],
            (P003V1_section_enum_T_TM_baseline2 *)
            &DEFAULT_P003V1_OBU_section_TM_baseline2);
    }
#endif /* KCG_MAPW_CPY */

    kcg_copy_P003V1_sectionlist_enum_T_TM_baseline2(
        &packet_003.SECTIONS,
        &_8__L9_1_1_1);
    _7_else_clock_1_1_1_IfBlock1 = _L1_1_1[3] == INT_Q_SCALE_10cm_TM_conversions;
    if (_L10) {
        packet_003.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
    }
    else {
        _6_else_clock_1_1_1_IfBlock1 = _L1_1_1[1] ==
                                       INT_Q_DIR_reverse_TM_conversions;
        if (_6_else_clock_1_1_1_IfBlock1) {
            packet_003.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
        }
        else {
            _5_IfBlock1_clock_1_1_1 = _L1_1_1[1] == INT_Q_DIR_both_TM_conversions;
            if (_5_IfBlock1_clock_1_1_1) {
                packet_003.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
            else {
                packet_003.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
        }
    }
    if (_7_else_clock_1_1_1_IfBlock1) {
        packet_003.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
    }
    else {
        else_clock_1_1_1_1_1_IfBlock1 = _L1_1_1[3] == INT_Q_SCALE_1m_TM_conversions;
        if (else_clock_1_1_1_1_1_IfBlock1) {
            packet_003.q_scale = ENUM_Q_SCALE_1m_TM_conversions;
        }
        else {
            _L11_1_1_1 = _L1_1_1[3] == INT_Q_SCALE_10m_TM_conversions;
            if (_L11_1_1_1) {
                packet_003.q_scale = ENUM_Q_SCALE_10m_TM_conversions;
            }
            else {
                packet_003.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
            }
        }
    }
    if (_1_else_clock_1_1_1_1_1_IfBlock1) {
        packet_003.q_nvsbtsmperm = ENUM_Q_NVSBTSMPERM_Yes_TM_conversions;
    }
    else {
        _2_else_clock_1_1_1_1_1_IfBlock1 = _L1_1_1[12] ==
                                           INT_Q_NVSBTSMPERM_No_TM_conversions;
        if (_2_else_clock_1_1_1_1_1_IfBlock1) {
            packet_003.q_nvsbtsmperm = ENUM_Q_NVSBTSMPERM_No_TM_conversions;
        }
        else {
            packet_003.q_nvsbtsmperm = ENUM_Q_NVSBTSMPERM_No_TM_conversions;
        }
    }
    if (_3_else_clock_1_1_1_1_1_IfBlock1) {
        packet_003.q_nvemrrls = ENUM_Q_NVEMRRLS_revoke_at_standstill_TM_conversions;
    }
    else {
        IfBlock1_clock_1_1_1_1_1 = _L1_1_1[13] ==
                                   INT_Q_NVEMRRLS_revoke_when_no_speed_exceeded_TM_conversions;
        if (IfBlock1_clock_1_1_1_1_1) {
            packet_003.q_nvemrrls =
                ENUM_Q_NVEMRRLS_revoke_when_no_speed_exceeded_TM_conversions;
        }
        else {
            packet_003.q_nvemrrls =
                ENUM_Q_NVEMRRLS_revoke_at_standstill_TM_conversions;
        }
    }
    if (IfBlock1_clock_1_1_1) {
        packet_003.m_nvcontact = ENUM_M_NVCONTACT_No_Reaction_TM_conversions;
    }
    else {
        _4_else_clock_1_1_1_IfBlock1 = _L1_1_1[19] ==
                                       INT_M_NVCONTACT_No_Reaction_TM_conversions;
        if (_4_else_clock_1_1_1_IfBlock1) {
            packet_003.m_nvcontact =
                ENUM_M_NVCONTACT_Apply_service_brake_TM_conversions;
        }
        else {
            else_clock_1_1_1_IfBlock1 = _L1_1_1[19] ==
                                        INT_M_NVCONTACT_Train_trip_TM_conversions;
            if (else_clock_1_1_1_IfBlock1) {
                packet_003.m_nvcontact = ENUM_M_NVCONTACT_Train_trip_TM_conversions;
            }
            else {
                packet_003.m_nvcontact = ENUM_M_NVCONTACT_Train_trip_TM_conversions;
            }
        }
    }
    if (_10_IfBlock1_clock_1_1_1) {
        packet_003.m_nvderun = ENUM_M_NVDERUN_no_TM_conversions;
    }
    else {
        _11_else_clock_1_1_1_IfBlock1 = _L1_1_1[21] ==
                                        INT_M_NVDERUN_yes_TM_conversions;
        if (_11_else_clock_1_1_1_IfBlock1) {
            packet_003.m_nvderun = ENUM_M_NVDERUN_yes_TM_conversions;
        }
        else {
            packet_003.m_nvderun = ENUM_M_NVDERUN_yes_TM_conversions;
        }
    }
    if (_12_IfBlock1_clock_1_1_1) {
        packet_003.q_nvdriver_adhes = ENUM_Q_NVDRIVER_ADHES_Allowed_TM_conversions;
    }
    else {
        _13_else_clock_1_1_1_IfBlock1 = _L1_1_1[23] ==
                                        INT_Q_NVDRIVER_ADHES_NotAllowed_TM_conversions;
        if (_13_else_clock_1_1_1_IfBlock1) {
            packet_003.q_nvdriver_adhes =
                ENUM_Q_NVDRIVER_ADHES_NotAllowed_TM_conversions;
        }
        else {
            packet_003.q_nvdriver_adhes =
                ENUM_Q_NVDRIVER_ADHES_NotAllowed_TM_conversions;
        }
    }
    kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &_L23_1_1_1,
        (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
    for (i = 0; i < 30; i++) {
        kcg_copy_MetadataElement_T_Common_Types_Pkg(
            &_L23_1_1_1,
            &BG_data.Messages.PacketHeaders[i]);
        if (!!(41032000 / DIM_offset_metadata_nid_packet_TM_lib_internal ==
                _L23_1_1_1.nid_packet /
                DIM_offset_metadata_nid_packet_TM_lib_internal)) {
            break;
        }
    }
    _L10 = _L23_1_1_1.nid_packet /
           DIM_offset_metadata_nid_packet_TM_lib_internal == 41032000 /
           DIM_offset_metadata_nid_packet_TM_lib_internal;
    if (_L10) {
        for (i = 0; i < 500; i++) {
            if ((0 <= _L23_1_1_1.startAddress + i) & (_L23_1_1_1.startAddress + i <
                    500)) {
                _L10_1_1_1[i] = BG_data.Messages.PacketData[_L23_1_1_1.startAddress +
                                i];
            }
            else {
                _L10_1_1_1[i] = 0;
            }
            _14_noname_1_1_1 = i + 1;
            if (!(i + 1 <= _L23_1_1_1.endAddress - _L23_1_1_1.startAddress)) {
                break;
            }
        }
#ifdef KCG_MAPW_CPY

        for (i = _14_noname_1_1_1; i < 500; i++) {
            _L10_1_1_1[i] = 0;
        }
#endif /* KCG_MAPW_CPY */

        kcg_copy_array_int_500(&_L4_1_1, &_L10_1_1_1);
    }
    else {
        kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
            &_L4_1_1,
            (array_int_500 *) &DEFAULT_CompressedPackets_TM);
    }
    packet_041.d_leveltr = _L4_1_1[4];
    packet_041.n_iter = _L4_1_1[5];
    _5_IfBlock1_clock_1_1_1 = _L4_1_1[1] == INT_Q_DIR_nomiinal_TM_conversions;
    kcg_copy_P041_sections_array_flat_T_TM(
        &_L1_1_1_1,
        (P041_sections_array_flat_T_TM *) &_L4_1_1[6]);
    _L11_1_1_1 = _L4_1_1[0] == 41;
    packet_041.valid = _L11_1_1_1;
    if (_L11_1_1_1) {
        for (i = 0; i < 33; i++) {
            _L9_1_1_1[i].valid = kcg_true;
            _L5_2_1_1_1_1_1 = i * DIM_P041_n_sections_TM_lib_internal;
            if ((0 <= _L5_2_1_1_1_1_1 + 0) & (_L5_2_1_1_1_1_1 + 0 < 99)) {
                noname_1_1_1 = _L1_1_1_1[_L5_2_1_1_1_1_1 + 0];
            }
            else {
                noname_1_1_1 = 0;
            }
            IfBlock1_clock_1_1_1_1_1 = noname_1_1_1 ==
                                       INT_M_LEVELTR_Level_0_TM_conversions;
            if (IfBlock1_clock_1_1_1_1_1) {
                _L9_1_1_1[i].m_leveltr = ENUM_M_LEVELTR_Level_0_TM_conversions;
            }
            else {
                else_clock_1_1_1_1_1_IfBlock1 = noname_1_1_1 ==
                                                INT_M_LEVELTR_Level_1_TM_conversions;
                if (else_clock_1_1_1_1_1_IfBlock1) {
                    _L9_1_1_1[i].m_leveltr = ENUM_M_LEVELTR_Level_1_TM_conversions;
                }
                else {
                    _3_else_clock_1_1_1_1_1_IfBlock1 = noname_1_1_1 ==
                                                       INT_M_LEVELTR_Level_2_TM_conversions;
                    if (_3_else_clock_1_1_1_1_1_IfBlock1) {
                        _L9_1_1_1[i].m_leveltr = ENUM_M_LEVELTR_Level_2_TM_conversions;
                    }
                    else {
                        _1_else_clock_1_1_1_1_1_IfBlock1 = noname_1_1_1 ==
                                                           INT_M_LEVELTR_Level_3_TM_conversions;
                        if (_1_else_clock_1_1_1_1_1_IfBlock1) {
                            _L9_1_1_1[i].m_leveltr = ENUM_M_LEVELTR_Level_3_TM_conversions;
                        }
                        else {
                            _2_else_clock_1_1_1_1_1_IfBlock1 = noname_1_1_1 ==
                                                               INT_M_LEVELTR_Level_NTC_TM_conversions;
                            if (_2_else_clock_1_1_1_1_1_IfBlock1) {
                                _L9_1_1_1[i].m_leveltr =
                                    ENUM_M_LEVELTR_Level_NTC_TM_conversions;
                            }
                            else {
                                _L9_1_1_1[i].m_leveltr =
                                    ENUM_M_LEVELTR_Level_NTC_TM_conversions;
                            }
                        }
                    }
                }
            }
            if ((0 <= _L5_2_1_1_1_1_1 + 1) & (_L5_2_1_1_1_1_1 + 1 < 99)) {
                _L9_1_1_1[i].nid_ntc = _L1_1_1_1[_L5_2_1_1_1_1_1 + 1];
            }
            else {
                _L9_1_1_1[i].nid_ntc = 0;
            }
            if ((0 <= _L5_2_1_1_1_1_1 + 2) & (_L5_2_1_1_1_1_1 + 2 < 99)) {
                _L9_1_1_1[i].l_ackleveltr = _L1_1_1_1[_L5_2_1_1_1_1_1 + 2];
            }
            else {
                _L9_1_1_1[i].l_ackleveltr = 0;
            }
            _L5_1_1_1_1_1_1 = i + 1;
            if (!(_L4_1_1[5] > i)) {
                break;
            }
        }
    }
    else {
        _L5_1_1_1_1_1_1 = 0;
    }
#ifdef KCG_MAPW_CPY

    for (i = _L5_1_1_1_1_1_1; i < 33; i++) {
        kcg_copy_P041_section_enum_T_TM(
            &_L9_1_1_1[i],
            (P041_section_enum_T_TM *) &DEFAULT_P041_OBU_section_TM_lib_internal);
    }
#endif /* KCG_MAPW_CPY */

    kcg_copy_P041_OBU_sectionlist_enum_T_TM(&packet_041.sections, &_L9_1_1_1);
    IfBlock1_clock_1_1_1 = _L4_1_1[3] == INT_Q_SCALE_10cm_TM_conversions;
    if (_5_IfBlock1_clock_1_1_1) {
        packet_041.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
    }
    else {
        _7_else_clock_1_1_1_IfBlock1 = _L4_1_1[1] ==
                                       INT_Q_DIR_reverse_TM_conversions;
        if (_7_else_clock_1_1_1_IfBlock1) {
            packet_041.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
        }
        else {
            _6_else_clock_1_1_1_IfBlock1 = _L4_1_1[1] ==
                                           INT_Q_DIR_both_TM_conversions;
            if (_6_else_clock_1_1_1_IfBlock1) {
                packet_041.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
            else {
                packet_041.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
        }
    }
    if (IfBlock1_clock_1_1_1) {
        packet_041.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
    }
    else {
        _4_else_clock_1_1_1_IfBlock1 = _L4_1_1[3] == INT_Q_SCALE_1m_TM_conversions;
        if (_4_else_clock_1_1_1_IfBlock1) {
            packet_041.q_scale = ENUM_Q_SCALE_1m_TM_conversions;
        }
        else {
            else_clock_1_1_1_IfBlock1 = _L4_1_1[3] == INT_Q_SCALE_10m_TM_conversions;
            if (else_clock_1_1_1_IfBlock1) {
                packet_041.q_scale = ENUM_Q_SCALE_10m_TM_conversions;
            }
            else {
                packet_041.q_scale = ENUM_Q_SCALE_10cm_TM_conversions;
            }
        }
    }
    kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &_L23_1_1_1,
        (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
    for (i = 0; i < 30; i++) {
        kcg_copy_MetadataElement_T_Common_Types_Pkg(
            &_L23_1_1_1,
            &BG_data.Messages.PacketHeaders[i]);
        if (!!(42032000 / DIM_offset_metadata_nid_packet_TM_lib_internal ==
                _L23_1_1_1.nid_packet /
                DIM_offset_metadata_nid_packet_TM_lib_internal)) {
            break;
        }
    }
    _10_IfBlock1_clock_1_1_1 = _L23_1_1_1.nid_packet /
                               DIM_offset_metadata_nid_packet_TM_lib_internal == 42032000 /
                               DIM_offset_metadata_nid_packet_TM_lib_internal;
    if (_10_IfBlock1_clock_1_1_1) {
        for (i = 0; i < 500; i++) {
            if ((0 <= _L23_1_1_1.startAddress + i) & (_L23_1_1_1.startAddress + i <
                    500)) {
                _L10_1_1_1[i] = BG_data.Messages.PacketData[_L23_1_1_1.startAddress +
                                i];
            }
            else {
                _L10_1_1_1[i] = 0;
            }
            noname_1_1_1 = i + 1;
            if (!(i + 1 <= _L23_1_1_1.endAddress - _L23_1_1_1.startAddress)) {
                break;
            }
        }
#ifdef KCG_MAPW_CPY

        for (i = noname_1_1_1; i < 500; i++) {
            _L10_1_1_1[i] = 0;
        }
#endif /* KCG_MAPW_CPY */

        kcg_copy_array_int_500(&_L4_1_1, &_L10_1_1_1);
    }
    else {
        kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
            &_L4_1_1,
            (array_int_500 *) &DEFAULT_CompressedPackets_TM);
    }
    packet_042.valid = _L4_1_1[0] == 42;
    packet_042.nid_c = _L4_1_1[4];
    packet_042.nid_rbc = _L4_1_1[5];
    packet_042.nid_radio = _L4_1_1[6];
    _11_else_clock_1_1_1_IfBlock1 = _L4_1_1[7] ==
                                    INT_Q_SLEEPSESSION_execute_TM_conversions;
    _13_else_clock_1_1_1_IfBlock1 = _L4_1_1[1] ==
                                    INT_Q_DIR_nomiinal_TM_conversions;
    _1_else_clock_1_1_1_1_1_IfBlock1 = _L4_1_1[3] ==
                                       INT_Q_RBC_establish_TM_conversions;
    if (_13_else_clock_1_1_1_IfBlock1) {
        packet_042.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
    }
    else {
        else_clock_1_1_1_1_1_IfBlock1 = _L4_1_1[1] ==
                                        INT_Q_DIR_reverse_TM_conversions;
        if (else_clock_1_1_1_1_1_IfBlock1) {
            packet_042.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
        }
        else {
            else_clock_1_2_1_IfBlock1 = _L4_1_1[1] == INT_Q_DIR_both_TM_conversions;
            if (else_clock_1_2_1_IfBlock1) {
                packet_042.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
            else {
                packet_042.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
        }
    }
    if (_1_else_clock_1_1_1_1_1_IfBlock1) {
        packet_042.q_rbc = ENUM_Q_RBC_establish_TM_conversions;
    }
    else {
        _2_else_clock_1_1_1_1_1_IfBlock1 = _L4_1_1[3] ==
                                           INT_Q_RBC_terminate_TM_conversions;
        if (_2_else_clock_1_1_1_1_1_IfBlock1) {
            packet_042.q_rbc = ENUM_Q_RBC_terminate_TM_conversions;
        }
        else {
            packet_042.q_rbc = ENUM_Q_RBC_terminate_TM_conversions;
        }
    }
    if (_11_else_clock_1_1_1_IfBlock1) {
        packet_042.q_sleepsession = ENUM_Q_SLEEPSESSION_execute_TM_conversions;
    }
    else {
        _12_IfBlock1_clock_1_1_1 = _L4_1_1[7] ==
                                   INT_Q_SLEEPSESSION_ignore_TM_conversions;
        if (_12_IfBlock1_clock_1_1_1) {
            packet_042.q_sleepsession = ENUM_Q_SLEEPSESSION_ignore_TM_conversions;
        }
        else {
            packet_042.q_sleepsession = ENUM_Q_SLEEPSESSION_execute_TM_conversions;
        }
    }
    kcg_copy_MetadataElement_T_Common_Types_Pkg(
        &_L23_1_1_1,
        (MetadataElement_T_Common_Types_Pkg *) &DEFAULT_PHeader_TM);
    for (i = 0; i < 30; i++) {
        kcg_copy_MetadataElement_T_Common_Types_Pkg(
            &_L23_1_1_1,
            &BG_data.Messages.PacketHeaders[i]);
        if (!!(45032000 / DIM_offset_metadata_nid_packet_TM_lib_internal ==
                _L23_1_1_1.nid_packet /
                DIM_offset_metadata_nid_packet_TM_lib_internal)) {
            break;
        }
    }
    _3_else_clock_1_1_1_1_1_IfBlock1 = _L23_1_1_1.nid_packet /
                                       DIM_offset_metadata_nid_packet_TM_lib_internal == 45032000 /
                                       DIM_offset_metadata_nid_packet_TM_lib_internal;
    if (_3_else_clock_1_1_1_1_1_IfBlock1) {
        for (i = 0; i < 500; i++) {
            if ((0 <= _L23_1_1_1.startAddress + i) & (_L23_1_1_1.startAddress + i <
                    500)) {
                _L10_1_1_1[i] = BG_data.Messages.PacketData[_L23_1_1_1.startAddress +
                                i];
            }
            else {
                _L10_1_1_1[i] = 0;
            }
            _14_noname_1_1_1 = i + 1;
            if (!(i + 1 <= _L23_1_1_1.endAddress - _L23_1_1_1.startAddress)) {
                break;
            }
        }
#ifdef KCG_MAPW_CPY

        for (i = _14_noname_1_1_1; i < 500; i++) {
            _L10_1_1_1[i] = 0;
        }
#endif /* KCG_MAPW_CPY */

        kcg_copy_array_int_500(&_L4_1_1, &_L10_1_1_1);
    }
    else {
        kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
            &_L4_1_1,
            (array_int_500 *) &DEFAULT_CompressedPackets_TM);
    }
    packet_045.valid = _L4_1_1[0] == 45;
    packet_045.nid_mn = _L4_1_1[3];
    IfBlock1_clock_1_1_1_1_1 = _L4_1_1[1] == INT_Q_DIR_nomiinal_TM_conversions;
    if (IfBlock1_clock_1_1_1_1_1) {
        packet_045.q_dir = ENUM_Q_DIR_nominal_TM_conversions;
    }
    else {
        _6_else_clock_1_1_1_IfBlock1 = _L4_1_1[1] ==
                                       INT_Q_DIR_reverse_TM_conversions;
        if (_6_else_clock_1_1_1_IfBlock1) {
            packet_045.q_dir = ENUM_Q_DIR_reverse_TM_conversions;
        }
        else {
            _5_IfBlock1_clock_1_1_1 = _L4_1_1[1] == INT_Q_DIR_both_TM_conversions;
            if (_5_IfBlock1_clock_1_1_1) {
                packet_045.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
            else {
                packet_045.q_dir = ENUM_Q_DIR_both_TM_conversions;
            }
        }
    }
    kcg_copy_BaliseTelegramHeader_int_T_TM(&BaliseHeader, &BG_data.Header);
    packet_received = _L12 | _L10 | _10_IfBlock1_clock_1_1_1 |
                      _3_else_clock_1_1_1_1_1_IfBlock1 | _L14;
}
/* TM_conversions_baseline2::C_P027V1_tracksim_compr_body */
void C_P027V1_tracksim_compr_body_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P027V1_tracksim_compr_body::P027V1_from_track */P027V1_trackside_int_T_TM_baseline2 *P027V1_from_track,
  outC_C_P027V1_tracksim_compr_body_TM_conversions_baseline2 *outC)
{
  kcg_int i1;
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _11_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _10_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _9_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _8_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _6_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _5_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _4_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _2_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P027V1_trackside_int_T_TM_baseline2(&outC->_L1, P027V1_from_track);
  kcg_copy_P027V1_trackside_sectionlist_T_TM_baseline2(
    &outC->_L367,
    &outC->_L1.SECTIONS_SSP);
  outC->_L368 = outC->_L1.N_ITER_k;
  kcg_copy_P027V1_trackside_qdifflist_T_TM_baseline2(
    &outC->_L369,
    &outC->_L1.SECTIONS_q_diff);
  outC->_L370 = outC->_L1.N_ITER_n;
  outC->_L371 = outC->_L1.Q_FRONT;
  outC->_L219 = outC->_L1.V_STATIC;
  outC->_L218 = outC->_L1.D_STATIC;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 3 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    100,
    27,
    INT_M_VERSION_1_0_TM,
    &outC->Context_3);
  outC->_L405 = outC->Context_3.nid_packet_meta;
  outC->meta_first_section = outC->_L405;
  /* 1 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    27,
    INT_M_VERSION_1_0_TM,
    &outC->Context_1);
  outC->_L403 = outC->Context_1.nid_packet_meta;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _11_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _11_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _9_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _6_q_dir_1 = outC->_L2_11_IfBlock1;
        _3_q_dir_1 = _6_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _4_q_dir_1 = outC->_L2_1_IfBlock1;
        _3_q_dir_1 = _4_q_dir_1;
      }
      _9_q_dir_1 = _3_q_dir_1;
    }
    outC->q_dir_1 = _9_q_dir_1;
  }
  outC->_L402 = outC->q_dir_1;
  outC->n_iter_k = outC->_L368;
  outC->_L400 = outC->n_iter_k;
  outC->n_iter_k_out = outC->_L400;
  outC->_L396 = 6;
  outC->_L394.D_STATIC = outC->_L218;
  outC->_L394.V_STATIC = outC->_L219;
  outC->_L394.Q_FRONT = outC->_L371;
  outC->_L394.N_ITER = outC->_L370;
  kcg_copy_P027V1_trackside_qdifflist_T_TM_baseline2(
    &outC->_L394.SECTIONS_q_diff,
    &outC->_L369);
  for (i1 = 0; i1 < 1; i1++) {
    kcg_copy_P027V1_section_int_T_TM_baseline2(&outC->_L386[i1], &outC->_L394);
  }
  kcg_copy_array__19695(&outC->_L385[0], &outC->_L386);
  kcg_copy_P027V1_trackside_sectionlist_T_TM_baseline2(
    &outC->_L385[1],
    &outC->_L367);
  kcg_copy__2_P027V1_OBU_sectionlist_int_T_TM_baseline2(
    &outC->P027V1_sections,
    &outC->_L385);
  outC->_L391 = outC->n_iter_k;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L391;
  outC->_L373[5] = outC->_L405;
  outC->_L336 = 0;
  for (i = 0; i < 494; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_6(&outC->_L383[0], &outC->_L373);
  kcg_copy_array_int_494(&outC->_L383[6], &outC->_L209);
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L396 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L403;
  outC->_L204.q_dir = outC->_L402;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P027V1_body_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _10_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _10_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _8_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _7_error_1 = outC->_L4_1_IfBlock1;
        _2_error_1 = _7_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _5_error_1 = outC->_L1_1_IfBlock1;
        _2_error_1 = _5_error_1;
      }
      _8_error_1 = _2_error_1;
    }
    outC->error_1 = _8_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions::C_P005_compr_onboard */
void C_P005_compr_onboard_TM_conversions(
  /* TM_conversions::C_P005_compr_onboard::PacketData */CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions::C_P005_compr_onboard::Metadata_Element */MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  outC_C_P005_compr_onboard_TM_conversions *outC)
{
  kcg_bool _28_noname_1;
  kcg_bool _27_noname_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _26_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _25_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _24_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _23_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _22_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _21_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _20_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _19_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _18_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _17_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _16_error_1;
  kcg_bool _15_noname_1;
  kcg_bool _14_noname_1;
  kcg_bool _13_noname_1;
  kcg_bool _12_noname_1;
  kcg_bool _11_noname_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _10_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _8_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _5_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _3_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _2_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool error_1;
  kcg_bool noname_1;
  MetadataElement_T_Common_Types_Pkg noname;
  
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L9, PacketData);
  kcg_copy_array_int_3(&outC->_L6, (array_int_3 *) &outC->_L9[1]);
  outC->_L16 = outC->_L6[2];
  outC->_L15 = outC->_L6[1];
  kcg_copy_array_int_1(&outC->_L1, (array_int_1 *) &outC->_L9[0]);
  outC->_L18 = outC->_L1[0];
  outC->nid_packet_int_1 = outC->_L18;
  outC->_L1_124 = outC->nid_packet_int_1;
  outC->nid_packet_1 = outC->_L1_124;
  outC->_L12 = outC->nid_packet_1;
  outC->_L21 = 5;
  outC->_L22 = outC->_L12 == outC->_L21;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L20, Metadata_Element);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&noname, &outC->_L20);
  kcg_copy_array_int_1(&outC->_L2, (array_int_1 *) &outC->_L9[4]);
  outC->_L17 = outC->_L2[0];
  outC->_L14 = outC->_L6[0];
  kcg_copy_array_int_231(&outC->_L13, (array_int_231 *) &outC->_L9[5]);
  outC->q_dir_int_1 = outC->_L14;
  outC->_9__L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_9__L12_1;
  outC->_12_IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->_12_IfBlock1_clock_1) {
    outC->_L4_120_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _26_q_dir_1 = outC->_L4_120_IfBlock1;
    outC->q_dir_1 = _26_q_dir_1;
  }
  else {
    outC->_19_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_19_else_clock_1_IfBlock1) {
      outC->_L3_113_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_113_IfBlock1;
      _24_q_dir_1 = q_dir_1;
    }
    else {
      outC->_14_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->_14_else_clock_1_IfBlock1) {
        outC->_L2_117_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _21_q_dir_1 = outC->_L2_117_IfBlock1;
        _18_q_dir_1 = _21_q_dir_1;
      }
      else {
        outC->_L2_115_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _19_q_dir_1 = outC->_L2_115_IfBlock1;
        _18_q_dir_1 = _19_q_dir_1;
      }
      _24_q_dir_1 = _18_q_dir_1;
    }
    outC->q_dir_1 = _24_q_dir_1;
  }
  outC->_L11 = outC->q_dir_1;
  outC->l_packet_int_1 = outC->_L15;
  outC->_L1_18 = outC->l_packet_int_1;
  outC->l_packet_1 = outC->_L1_18;
  outC->_L8 = outC->l_packet_1;
  outC->q_scale_int_1 = outC->_L16;
  outC->_L2_1 = outC->q_scale_int_1;
  outC->q_scale_in_1 = outC->_L2_1;
  outC->IfBlock1_clock_1 = outC->q_scale_in_1 ==
    INT_Q_SCALE_10cm_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L2_14_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
    _10_q_scale_1 = outC->_L2_14_IfBlock1;
    outC->q_scale_1 = _10_q_scale_1;
  }
  else {
    outC->_3_else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
      INT_Q_SCALE_1m_TM_conversions;
    if (outC->_3_else_clock_1_IfBlock1) {
      outC->_L1_1_IfBlock1 = ENUM_Q_SCALE_1m_TM_conversions;
      q_scale_1 = outC->_L1_1_IfBlock1;
      _8_q_scale_1 = q_scale_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
        INT_Q_SCALE_10m_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L1_12_IfBlock1 = ENUM_Q_SCALE_10m_TM_conversions;
        _5_q_scale_1 = outC->_L1_12_IfBlock1;
        _2_q_scale_1 = _5_q_scale_1;
      }
      else {
        outC->_L1_11_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
        _3_q_scale_1 = outC->_L1_11_IfBlock1;
        _2_q_scale_1 = _3_q_scale_1;
      }
      _8_q_scale_1 = _2_q_scale_1;
    }
    outC->q_scale_1 = _8_q_scale_1;
  }
  outC->_L4 = outC->q_scale_1;
  outC->n_iter_int_1 = outC->_L17;
  outC->_L1_1 = outC->n_iter_int_1;
  outC->n_iter_1 = outC->_L1_1;
  outC->_L7 = outC->n_iter_1;
  /* 1 */
  C_P005_unflatten_sections_TM_lib_internal(
    outC->_L22,
    outC->_L7,
    &outC->_L13,
    &outC->Context_1);
  kcg_copy_P005_OBU_sectionlist_enum_T_TM(
    &outC->_L5,
    &outC->Context_1.sections);
  outC->_L10.valid = outC->_L22;
  outC->_L10.q_dir = outC->_L11;
  outC->_L10.l_packet = outC->_L8;
  outC->_L10.q_scale = outC->_L4;
  outC->_L10.n_iter = outC->_L7;
  kcg_copy_P005_OBU_sectionlist_enum_T_TM(&outC->_L10.sections, &outC->_L5);
  kcg_copy_P005_OBU_T_TM(&outC->P005_onboard, &outC->_L10);
  if (outC->IfBlock1_clock_1) {
    outC->_L3_15_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L3_15_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_3_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = kcg_false;
      error_1 = outC->_L3_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L2_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L2_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L4_1 = outC->error_1;
  noname_1 = outC->_L4_1;
  outC->_L11_1 = 0;
  outC->_L10_1 = outC->_L1_1 < outC->_L11_1;
  _11_noname_1 = outC->_L10_1;
  outC->_L9_1 = 31;
  outC->_L12_1 = outC->_L1_1 > outC->_L9_1;
  _12_noname_1 = outC->_L12_1;
  outC->_L13_1 = 8191;
  outC->_6__L12_1 = 0;
  outC->_L9_17 = outC->_L1_18 > outC->_L13_1;
  outC->_L8_1 = outC->_L1_18 < outC->_6__L12_1;
  _13_noname_1 = outC->_L8_1;
  _14_noname_1 = outC->_L9_17;
  if (outC->_12_IfBlock1_clock_1) {
    outC->_L5_121_IfBlock1 = kcg_false;
    _25_error_1 = outC->_L5_121_IfBlock1;
    outC->_11_error_1 = _25_error_1;
  }
  else {
    if (outC->_19_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      _16_error_1 = outC->_L5_1_IfBlock1;
      _23_error_1 = _16_error_1;
    }
    else {
      if (outC->_14_else_clock_1_IfBlock1) {
        outC->_L4_118_IfBlock1 = kcg_false;
        _22_error_1 = outC->_L4_118_IfBlock1;
        _17_error_1 = _22_error_1;
      }
      else {
        outC->_L1_116_IfBlock1 = kcg_true;
        _20_error_1 = outC->_L1_116_IfBlock1;
        _17_error_1 = _20_error_1;
      }
      _23_error_1 = _17_error_1;
    }
    outC->_11_error_1 = _23_error_1;
  }
  outC->_10__L13_1 = outC->_11_error_1;
  _15_noname_1 = outC->_10__L13_1;
  outC->_L5_1 = 0;
  outC->_L4_123 = outC->_L1_124 < outC->_L5_1;
  outC->_L3_1 = 256;
  outC->_L2_122 = outC->_L1_124 > outC->_L3_1;
  _27_noname_1 = outC->_L2_122;
  _28_noname_1 = outC->_L4_123;
}
/* TM_conversions_baseline2::C_P003V1_compr_onboard */
void C_P003V1_compr_onboard_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P003V1_compr_onboard::PacketData */CompressedPacketData_T_Common_Types_Pkg *PacketData,
  /* TM_conversions_baseline2::C_P003V1_compr_onboard::Metadata_Element */MetadataElement_T_Common_Types_Pkg *Metadata_Element,
  outC_C_P003V1_compr_onboard_TM_conversions_baseline2 *outC)
{
  kcg_bool _26_noname_1;
  kcg_bool _25_noname_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _24_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _23_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _22_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _21_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _20_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _19_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _18_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _17_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _16_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _15_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _14_error_1;
  kcg_bool _13_noname_1;
  kcg_bool _12_noname_1;
  kcg_bool _11_noname_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _10_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _8_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _5_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _3_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE _2_q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::q_scale */ Q_SCALE q_scale_1;
  /* TM_conversions::CAST_Int_to_Q_SCALE::error */ kcg_bool error_1;
  kcg_bool noname_1;
  MetadataElement_T_Common_Types_Pkg noname;
  kcg_int _27_noname;
  
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L9, PacketData);
  kcg_copy_array_int_24(&outC->_L1, (array_int_24 *) &outC->_L9[0]);
  outC->_L59 = outC->_L1[23];
  outC->_L23 = outC->_L1[22];
  outC->_L24 = outC->_L1[21];
  outC->_L25 = outC->_L1[20];
  outC->_L26 = outC->_L1[19];
  outC->_L27 = outC->_L1[18];
  outC->_L28 = outC->_L1[17];
  outC->_L29 = outC->_L1[16];
  outC->_L30 = outC->_L1[15];
  outC->_L31 = outC->_L1[14];
  outC->_L32 = outC->_L1[13];
  outC->_L33 = outC->_L1[12];
  outC->_L34 = outC->_L1[11];
  outC->_L35 = outC->_L1[10];
  outC->_L36 = outC->_L1[9];
  outC->_L37 = outC->_L1[8];
  outC->_L38 = outC->_L1[7];
  outC->_L39 = outC->_L1[6];
  outC->_L40 = outC->_L1[5];
  outC->_L41 = outC->_L1[4];
  outC->_L42 = outC->_L1[3];
  outC->_L16 = outC->_L1[2];
  outC->_L15 = outC->_L1[1];
  /* 1 */ CAST_Int_to_D_NVSTFF_TM_conversions(outC->_L23, &outC->Context_1);
  outC->_L67 = outC->Context_1.d_nvstff;
  /* 1 */
  CAST_Int_to_Q_NVDRIVER_ADHES_TM_conversions(outC->_L59, &outC->_1_Context_1);
  outC->_L66 = outC->_1_Context_1.q_nvdriveradhes;
  /* 1 */ CAST_Int_to_M_NVDERUN_TM_conversions(outC->_L24, &outC->_2_Context_1);
  outC->_L65 = outC->_2_Context_1.m_nvderun;
  /* 1 */
  CAST_Int_to_T_NVCONTACT_TM_conversions(outC->_L25, &outC->_3_Context_1);
  outC->_L64 = outC->_3_Context_1.t_nvcontact;
  /* 1 */
  CAST_Int_to_M_NVCONTACT_TM_conversions(outC->_L26, &outC->_4_Context_1);
  outC->_L63 = outC->_4_Context_1.m_nvcontact;
  /* 2 */ CAST_Int_to_D_NVPOTRP_TM_conversions(outC->_L27, &outC->Context_2);
  outC->_L62 = outC->Context_2.d_nvpotrp;
  /* 1 */
  CAST_Int_to_Q_NVEMRRLS_TM_conversions(outC->_L32, &outC->_5_Context_1);
  outC->_L60 = outC->_5_Context_1.q_nvemrrls;
  /* 1 */ CAST_Int_to_T_NVOVTRP_TM_conversions(outC->_L28, &outC->_6_Context_1);
  outC->_L58 = outC->_6_Context_1.t_nvovtrp;
  /* 1 */ CAST_Int_to_D_NVOVTRP_TM_conversions(outC->_L29, &outC->_7_Context_1);
  outC->_L57 = outC->_7_Context_1.d_nvovtrp;
  /* 2 */
  CAST_Int_to_V_NVSUPOVTRP_TM_conversions(outC->_L30, &outC->_8_Context_2);
  outC->_L56 = outC->_8_Context_2.v_nvsupovtrp;
  /* 1 */
  CAST_Int_to_V_NVALLOWOVTRP_TM_conversions(outC->_L31, &outC->_9_Context_1);
  outC->_L54 = outC->_9_Context_1.v_nvallowovtrp;
  /* 1 */
  CAST_Int_to_Q_NVSBTSMPERM_TM_conversions(outC->_L33, &outC->_10_Context_1);
  outC->_L53 = outC->_10_Context_1.q_nvsbtsmperm;
  /* 1 */ CAST_Int_to_D_NVROLL_TM_conversions(outC->_L34, &outC->_11_Context_1);
  outC->_L52 = outC->_11_Context_1.d_nvroll;
  /* 1 */ CAST_Int_to_V_NVREL_TM_conversions(outC->_L35, &outC->_12_Context_1);
  outC->_L51 = outC->_12_Context_1.v_nvrel;
  /* 1 */
  CAST_Int_to_V_NVUNFIT_TM_conversions(outC->_L36, &outC->_13_Context_1);
  outC->_L50 = outC->_13_Context_1.v_nvunfit;
  /* 1 */
  CAST_Int_to_V_NVONSIGHT_TM_conversions(outC->_L37, &outC->_14_Context_1);
  outC->_L49 = outC->_14_Context_1.v_nvonsight;
  /* 1 */ CAST_Int_to_V_NVSTFF_TM_conversions(outC->_L38, &outC->_15_Context_1);
  outC->_L48 = outC->_15_Context_1.v_nvstff;
  /* 1 */
  CAST_Int_to_V_NVSHUNT_TM_conversions(outC->_L39, &outC->_16_Context_1);
  outC->_L47 = outC->_16_Context_1.v_nvshunt;
  outC->n_iter_int_1 = outC->_L40;
  outC->_L1_1 = outC->n_iter_int_1;
  outC->n_iter_1 = outC->_L1_1;
  outC->_L7 = outC->n_iter_1;
  outC->n_iter = outC->_L7;
  outC->_L46 = outC->n_iter;
  outC->_L45 = outC->n_iter;
  /* 1 */
  CAST_Int_to_D_VALIDNV_TM_conversions(outC->_L41, &outC->_17_Context_1);
  outC->_L43 = outC->_17_Context_1.d_validnv;
  _27_noname = outC->_L16;
  outC->_L14 = outC->_L1[0];
  outC->nid_packet_int_1 = outC->_L14;
  outC->_L1_138 = outC->nid_packet_int_1;
  outC->nid_packet_1 = outC->_L1_138;
  outC->_L12 = outC->nid_packet_1;
  outC->_L21 = 3;
  outC->_L22 = outC->_L12 == outC->_L21;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->_L20, Metadata_Element);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&noname, &outC->_L20);
  kcg_copy_array_int_32(&outC->_L13, (array_int_32 *) &outC->_L9[24]);
  outC->q_dir_int_1 = outC->_L15;
  outC->_24__L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_24__L12_1;
  outC->_26_IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->_26_IfBlock1_clock_1) {
    outC->_L4_134_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _24_q_dir_1 = outC->_L4_134_IfBlock1;
    outC->q_dir_1 = _24_q_dir_1;
  }
  else {
    outC->_33_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_33_else_clock_1_IfBlock1) {
      outC->_L3_127_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_127_IfBlock1;
      _22_q_dir_1 = q_dir_1;
    }
    else {
      outC->_28_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->_28_else_clock_1_IfBlock1) {
        outC->_L2_131_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _19_q_dir_1 = outC->_L2_131_IfBlock1;
        _16_q_dir_1 = _19_q_dir_1;
      }
      else {
        outC->_L2_129_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _17_q_dir_1 = outC->_L2_129_IfBlock1;
        _16_q_dir_1 = _17_q_dir_1;
      }
      _22_q_dir_1 = _16_q_dir_1;
    }
    outC->q_dir_1 = _22_q_dir_1;
  }
  outC->_L11 = outC->q_dir_1;
  outC->q_scale_int_1 = outC->_L42;
  outC->_L2_1 = outC->q_scale_int_1;
  outC->q_scale_in_1 = outC->_L2_1;
  outC->IfBlock1_clock_1 = outC->q_scale_in_1 ==
    INT_Q_SCALE_10cm_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L2_122_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
    _10_q_scale_1 = outC->_L2_122_IfBlock1;
    outC->q_scale_1 = _10_q_scale_1;
  }
  else {
    outC->_21_else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
      INT_Q_SCALE_1m_TM_conversions;
    if (outC->_21_else_clock_1_IfBlock1) {
      outC->_L1_1_IfBlock1 = ENUM_Q_SCALE_1m_TM_conversions;
      q_scale_1 = outC->_L1_1_IfBlock1;
      _8_q_scale_1 = q_scale_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_scale_in_1 ==
        INT_Q_SCALE_10m_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L1_120_IfBlock1 = ENUM_Q_SCALE_10m_TM_conversions;
        _5_q_scale_1 = outC->_L1_120_IfBlock1;
        _2_q_scale_1 = _5_q_scale_1;
      }
      else {
        outC->_L1_119_IfBlock1 = ENUM_Q_SCALE_10cm_TM_conversions;
        _3_q_scale_1 = outC->_L1_119_IfBlock1;
        _2_q_scale_1 = _3_q_scale_1;
      }
      _8_q_scale_1 = _2_q_scale_1;
    }
    outC->q_scale_1 = _8_q_scale_1;
  }
  outC->_L4 = outC->q_scale_1;
  /* 1 */
  C_P003V1_unflatten_sections_TM_lib_internal(
    outC->_L22,
    outC->_L46,
    &outC->_L13,
    &outC->_18_Context_1);
  kcg_copy_P003V1_sectionlist_enum_T_TM_baseline2(
    &outC->_L5,
    &outC->_18_Context_1.sections);
  outC->_L10.valid = outC->_L22;
  outC->_L10.q_dir = outC->_L11;
  outC->_L10.q_scale = outC->_L4;
  outC->_L10.d_validnv = outC->_L43;
  outC->_L10.n_iter = outC->_L45;
  kcg_copy_P003V1_sectionlist_enum_T_TM_baseline2(
    &outC->_L10.SECTIONS,
    &outC->_L5);
  outC->_L10.v_nvshunt = outC->_L47;
  outC->_L10.v_nvstff = outC->_L48;
  outC->_L10.v_nvonsight = outC->_L49;
  outC->_L10.v_nvunfit = outC->_L50;
  outC->_L10.v_nvrel = outC->_L51;
  outC->_L10.d_nvroll = outC->_L52;
  outC->_L10.q_nvsbtsmperm = outC->_L53;
  outC->_L10.q_nvemrrls = outC->_L60;
  outC->_L10.v_nvallowovtrp = outC->_L54;
  outC->_L10.v_nvsopovtrp = outC->_L56;
  outC->_L10.d_nvovtrp = outC->_L57;
  outC->_L10.t_nvovtrp = outC->_L58;
  outC->_L10.d_nvpotrp = outC->_L62;
  outC->_L10.m_nvcontact = outC->_L63;
  outC->_L10.t_nvcontact = outC->_L64;
  outC->_L10.m_nvderun = outC->_L65;
  outC->_L10.d_nvstff = outC->_L67;
  outC->_L10.q_nvdriver_adhes = outC->_L66;
  kcg_copy_P003V1_OBU_T_TM_baseline2(&outC->P003V1_onboard, &outC->_L10);
  if (outC->IfBlock1_clock_1) {
    outC->_L3_123_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L3_123_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_21_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = kcg_false;
      error_1 = outC->_L3_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L2_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L2_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L4_1 = outC->error_1;
  noname_1 = outC->_L4_1;
  outC->_L11_1 = 0;
  outC->_L10_1 = outC->_L1_1 < outC->_L11_1;
  _11_noname_1 = outC->_L10_1;
  outC->_L9_1 = 31;
  outC->_L12_1 = outC->_L1_1 > outC->_L9_1;
  _12_noname_1 = outC->_L12_1;
  if (outC->_26_IfBlock1_clock_1) {
    outC->_L5_135_IfBlock1 = kcg_false;
    _23_error_1 = outC->_L5_135_IfBlock1;
    outC->_25_error_1 = _23_error_1;
  }
  else {
    if (outC->_33_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      _14_error_1 = outC->_L5_1_IfBlock1;
      _21_error_1 = _14_error_1;
    }
    else {
      if (outC->_28_else_clock_1_IfBlock1) {
        outC->_L4_132_IfBlock1 = kcg_false;
        _20_error_1 = outC->_L4_132_IfBlock1;
        _15_error_1 = _20_error_1;
      }
      else {
        outC->_L1_130_IfBlock1 = kcg_true;
        _18_error_1 = outC->_L1_130_IfBlock1;
        _15_error_1 = _18_error_1;
      }
      _21_error_1 = _15_error_1;
    }
    outC->_25_error_1 = _21_error_1;
  }
  outC->_L13_1 = outC->_25_error_1;
  _13_noname_1 = outC->_L13_1;
  outC->_L5_1 = 0;
  outC->_L4_137 = outC->_L1_138 < outC->_L5_1;
  outC->_L3_1 = 256;
  outC->_L2_136 = outC->_L1_138 > outC->_L3_1;
  _25_noname_1 = outC->_L2_136;
  _26_noname_1 = outC->_L4_137;
}
/* TM_lib_internal::SEND_MessageData */
void SEND_MessageData_TM_lib_internal(
  /* TM_lib_internal::SEND_MessageData::StartAddress */kcg_int StartAddress,
  /* TM_lib_internal::SEND_MessageData::EndAddress */kcg_int EndAddress,
  /* TM_lib_internal::SEND_MessageData::DataIn */CompressedPacketData_T_Common_Types_Pkg *DataIn,
  /* TM_lib_internal::SEND_MessageData::DataElementIn */CompressedPacketData_T_Common_Types_Pkg *DataElementIn,
  outC_SEND_MessageData_TM_lib_internal *outC)
{
  kcg_int i3;
  kcg_int i2;
  kcg_int i1;
  kcg_int i;
  kcg_int noname;
  
  outC->_L408 = EndAddress;
  for (i3 = 0; i3 < 500; i3++) {
    outC->_L415[i3] = outC->_L408;
  }
  outC->_L407 = StartAddress;
  for (i2 = 0; i2 < 500; i2++) {
    outC->_L414[i2] = outC->_L407;
  }
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L404, DataElementIn);
  for (i1 = 0; i1 < 500; i1++) {
    kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
      &outC->_L413[i1],
      &outC->_L404);
  }
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(&outC->_L1, DataIn);
  outC->_L403 = kcg_true;
  if (outC->_L403) {
    for (i = 0; i < 500; i++) {
      /* 1 */
      SEND_WriteBaliseDataElement_TM_lib_internal(
        i,
        outC->_L1[i],
        &outC->_L413[i],
        outC->_L414[i],
        outC->_L415[i],
        &outC->Context_1[i]);
      outC->_L406[i] = outC->Context_1[i].DataOut;
      outC->_L402 = i + 1;
      if (!outC->Context_1[i].Cont) {
        break;
      }
    }
  }
  else {
    outC->_L402 = 0;
  }
#ifdef KCG_MAPW_CPY
  
  for (i = outC->_L402; i < 500; i++) {
    outC->_L406[i] = 0;
  }
#endif /* KCG_MAPW_CPY */
  
  noname = outC->_L402;
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->DataOut,
    &outC->_L406);
}
/* TM_conversions_baseline2::C_P003V1_tracksim_compr */
void C_P003V1_tracksim_compr_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P003V1_tracksim_compr::P003V1_from_track */P003V1_trackside_int_T_TM_baseline2 *P003V1_from_track,
  outC_C_P003V1_tracksim_compr_TM_conversions_baseline2 *outC)
{
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _8_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _7_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _4_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _3_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _2_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _1_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P003V1_trackside_int_T_TM_baseline2(&outC->_L1, P003V1_from_track);
  outC->_L404 = outC->_L1.Q_NVDRIVER_ADHES;
  outC->_L403 = outC->_L1.D_NVSTFF;
  outC->_L402 = outC->_L1.M_NVDERUN;
  outC->_L401 = outC->_L1.T_NVCONTACT;
  outC->_L400 = outC->_L1.M_NVCONTACT;
  outC->_L399 = outC->_L1.D_NVPOTRP;
  outC->_L398 = outC->_L1.T_NVOVTRP;
  outC->_L397 = outC->_L1.D_NVOVTRP;
  outC->_L396 = outC->_L1.V_NVSUPOVTRP;
  outC->_L395 = outC->_L1.V_NVALLOWOVTRP;
  outC->_L409 = outC->_L1.Q_NVEMRRLS;
  outC->_L394 = outC->_L1.Q_NVSRBKTRG;
  outC->_L393 = outC->_L1.D_NVROLL;
  outC->_L392 = outC->_L1.V_NVREL;
  outC->_L391 = outC->_L1.V_NVUNFIT;
  outC->_L390 = outC->_L1.V_NVONSIGHT;
  outC->_L389 = outC->_L1.V_NVSTFF;
  outC->_L388 = outC->_L1.V_NVSHUNT;
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L365,
    &outC->_L1.SECTIONS);
  outC->_L366 = outC->_L1.N_ITER;
  outC->_L218 = outC->_L1.D_VALIDNV;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 2 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    3,
    INT_M_VERSION_1_0_TM,
    &outC->Context_2);
  outC->_L412 = outC->Context_2.nid_packet_meta;
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->sections,
    &outC->_L365);
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L408,
    &outC->sections);
  outC->_L407[0] = outC->_L388;
  outC->_L407[1] = outC->_L389;
  outC->_L407[2] = outC->_L390;
  outC->_L407[3] = outC->_L391;
  outC->_L407[4] = outC->_L392;
  outC->_L407[5] = outC->_L393;
  outC->_L407[6] = outC->_L394;
  outC->_L407[7] = outC->_L409;
  outC->_L407[8] = outC->_L395;
  outC->_L407[9] = outC->_L396;
  outC->_L407[10] = outC->_L397;
  outC->_L407[11] = outC->_L398;
  outC->_L407[12] = outC->_L399;
  outC->_L407[13] = outC->_L400;
  outC->_L407[14] = outC->_L401;
  outC->_L407[15] = outC->_L402;
  outC->_L407[16] = outC->_L403;
  outC->_L407[17] = outC->_L404;
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L218;
  outC->_L373[5] = outC->_L366;
  kcg_copy_array_int_6(&outC->_L381[0], &outC->_L373);
  kcg_copy_array_int_18(&outC->_L381[6], &outC->_L407);
  kcg_copy_array_int_24(&outC->_L384[0], &outC->_L381);
  kcg_copy_P003V1_trackide_sectionlist_T_TM_baseline2(
    &outC->_L384[24],
    &outC->_L408);
  outC->_L336 = 0;
  for (i = 0; i < 444; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_56(&outC->_L383[0], &outC->_L384);
  kcg_copy_array_int_444(&outC->_L383[56], &outC->_L209);
  /* 1 */
  T_DeterminePacketSizeInt_TM_lib_internal(
    outC->_L366,
    6 + 17,
    1,
    &outC->Context_1);
  outC->_L379 = outC->Context_1.p_size;
  outC->p_size = outC->_L379;
  outC->_L378 = outC->p_size;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_13_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _10_q_dir_1 = outC->_L4_13_IfBlock1;
    outC->q_dir_1 = _10_q_dir_1;
  }
  else {
    outC->_2_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _8_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_11_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_11_IfBlock1;
        _2_q_dir_1 = _5_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _3_q_dir_1 = outC->_L2_1_IfBlock1;
        _2_q_dir_1 = _3_q_dir_1;
      }
      _8_q_dir_1 = _2_q_dir_1;
    }
    outC->q_dir_1 = _8_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L378 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L412;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P003V1_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_14_IfBlock1 = kcg_false;
    _9_error_1 = outC->_L5_14_IfBlock1;
    outC->error_1 = _9_error_1;
  }
  else {
    if (outC->_2_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _7_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _6_error_1 = outC->_L4_1_IfBlock1;
        _1_error_1 = _6_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _4_error_1 = outC->_L1_1_IfBlock1;
        _1_error_1 = _4_error_1;
      }
      _7_error_1 = _1_error_1;
    }
    outC->error_1 = _7_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions_baseline2::C_P027V1_tracksim_compr_one_section */
void C_P027V1_tracksim_compr_o_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P027V1_tracksim_compr_one_section::i */kcg_int i1,
  /* TM_conversions_baseline2::C_P027V1_tracksim_compr_one_section::P027V1_sections_from_track */P027V1_section_int_T_TM_baseline2 *P027V1_sections_from_track,
  /* TM_conversions_baseline2::C_P027V1_tracksim_compr_one_section::meta_first_section_in */kcg_int meta_first_section_in,
  outC_C_P027V1_tracksim_compr_o_TM_conversions_baseline2 *outC)
{
  static kcg_int i;
  
  kcg_copy_P027V1_section_int_T_TM_baseline2(
    &outC->_L1,
    P027V1_sections_from_track);
  kcg_copy_P027V1_trackside_qdifflist_T_TM_baseline2(
    &outC->_L217,
    &outC->_L1.SECTIONS_q_diff);
  outC->_L216 = outC->_L1.N_ITER;
  outC->_L215 = outC->_L1.Q_FRONT;
  outC->_L387 = outC->_L1.V_STATIC;
  outC->_L431 = meta_first_section_in;
  outC->_L429 = i1;
  outC->_L430 = outC->_L431 + outC->_L429;
  /* 1 */
  T_DeterminePacketSizeInt_TM_lib_internal(outC->_L216, 4, 2, &outC->Context_1);
  outC->_L426 = outC->Context_1.p_size;
  /* 1 */
  C_P027_flatten_sections_qdiff_TM_lib_internal(
    &outC->_L217,
    &outC->_1_Context_1);
  kcg_copy_P027V1_sections_array_flat_qdiff_T_TM_baseline2(
    &outC->_L425,
    &outC->_1_Context_1.Flattened);
  outC->p_size = outC->_L426;
  outC->_L424 = outC->p_size;
  outC->_L423 = kcg_true;
  outC->_L422 = ENUM_Q_DIR_both_QDIR_TM;
  outC->_L214 = outC->_L1.D_STATIC;
  outC->_L373[0] = outC->_L214;
  outC->_L373[1] = outC->_L387;
  outC->_L373[2] = outC->_L215;
  outC->_L373[3] = outC->_L216;
  kcg_copy_array_int_4(&outC->_L385[0], &outC->_L373);
  kcg_copy_P027V1_sections_array_flat_qdiff_T_TM_baseline2(
    &outC->_L385[4],
    &outC->_L425);
  outC->_L336 = 0;
  for (i = 0; i < 432; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_68(&outC->_L383[0], &outC->_L385);
  kcg_copy_array_int_432(&outC->_L383[68], &outC->_L209);
  outC->_L213 = 1;
  outC->_L212 = outC->_L424 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L430;
  outC->_L204.q_dir = outC->_L422;
  outC->_L204.valid = outC->_L423;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P027V1_sections_compressed,
    &outC->_L383);
}
/* TM_conversions::C_P041_tracksim_compr */
void C_P041_tracksim_compr_TM_conversions(
  /* TM_conversions::C_P041_tracksim_compr::P041_from_track */P041_trackside_int_T_TM *P041_from_track,
  outC_C_P041_tracksim_compr_TM_conversions *outC)
{
  kcg_int i2;
  kcg_int i1;
  kcg_int i;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _12_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _11_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _10_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _9_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _8_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _7_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _6_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _5_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR _4_q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool _3_error_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::q_dir */ Q_DIR q_dir_1;
  /* TM_conversions::CAST_Int_to_Q_DIR::error */ kcg_bool error_1;
  kcg_bool noname_1;
  
  kcg_copy_P041_trackside_int_T_TM(&outC->_L1, P041_from_track);
  kcg_copy_P041_trackide_sectionlist_T_TM(&outC->_L368, &outC->_L1.SECTIONS);
  outC->_L369 = outC->_L1.N_ITER;
  outC->_L370 = outC->_L1.L_ACKLEVELTR;
  outC->_L371 = outC->_L1.NID_NTC;
  outC->_L219 = outC->_L1.M_LEVELTR;
  outC->_L218 = outC->_L1.D_LEVELTR;
  outC->_L217 = outC->_L1.Q_SCALE;
  outC->_L216 = outC->_L1.L_PACKET;
  outC->_L215 = outC->_L1.Q_DIR;
  outC->_L387 = outC->_L1.NID_PACKET;
  /* 1 */
  T_Build_Metadata_Packet_ID_TM_lib_internal(
    outC->_L387,
    outC->_L215,
    0,
    41,
    INT_M_VERSION_2_0_TM,
    &outC->Context_1);
  outC->_L388 = outC->Context_1.nid_packet_meta;
  outC->_L375.M_LEVELTR = outC->_L219;
  outC->_L375.NID_NTC = outC->_L371;
  outC->_L375.L_ACKLEVELTR = outC->_L370;
  for (i2 = 0; i2 < 1; i2++) {
    kcg_copy_P041_section_int_T_TM(&outC->_L386[i2], &outC->_L375);
  }
  kcg_copy_array__9919(&outC->_L385[0], &outC->_L386);
  kcg_copy_P041_trackide_sectionlist_T_TM(&outC->_L385[1], &outC->_L368);
  outC->_L373[0] = outC->_L387;
  outC->_L373[1] = outC->_L215;
  outC->_L373[2] = outC->_L216;
  outC->_L373[3] = outC->_L217;
  outC->_L373[4] = outC->_L218;
  for (i1 = 0; i1 < 1; i1++) {
    outC->_L376[i1] = outC->_L369;
  }
  kcg_copy_array_int_5(&outC->_L381[0], &outC->_L373);
  kcg_copy_array_int_1(&outC->_L381[5], &outC->_L376);
  /* 1 */
  C_P041_flatten_sections_TM_lib_internal(&outC->_L385, &outC->_1_Context_1);
  kcg_copy_P041_sections_array_flat_T_TM(
    &outC->_L380,
    &outC->_1_Context_1.Flattened);
  kcg_copy_array_int_6(&outC->_L384[0], &outC->_L381);
  kcg_copy_P041_sections_array_flat_T_TM(&outC->_L384[6], &outC->_L380);
  outC->_L336 = 0;
  for (i = 0; i < 395; i++) {
    outC->_L209[i] = outC->_L336;
  }
  kcg_copy_array_int_105(&outC->_L383[0], &outC->_L384);
  kcg_copy_array_int_395(&outC->_L383[105], &outC->_L209);
  /* 1 */
  T_DeterminePacketSizeInt_TM_lib_internal(
    outC->_L369,
    5 + 1 + 3,
    3,
    &outC->_2_Context_1);
  outC->_L379 = outC->_2_Context_1.p_size;
  outC->p_size = outC->_L379;
  outC->_L378 = outC->p_size;
  outC->q_dir_int_1 = outC->_L215;
  outC->_L12_1 = outC->q_dir_int_1;
  outC->q_dir_in_1 = outC->_L12_1;
  outC->IfBlock1_clock_1 = outC->q_dir_in_1 ==
    INT_Q_DIR_nomiinal_TM_conversions;
  if (outC->IfBlock1_clock_1) {
    outC->_L4_15_IfBlock1 = ENUM_Q_DIR_nominal_TM_conversions;
    _12_q_dir_1 = outC->_L4_15_IfBlock1;
    outC->q_dir_1 = _12_q_dir_1;
  }
  else {
    outC->_4_else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
      INT_Q_DIR_reverse_TM_conversions;
    if (outC->_4_else_clock_1_IfBlock1) {
      outC->_L3_1_IfBlock1 = ENUM_Q_DIR_reverse_TM_conversions;
      q_dir_1 = outC->_L3_1_IfBlock1;
      _10_q_dir_1 = q_dir_1;
    }
    else {
      outC->else_clock_1_IfBlock1 = outC->q_dir_in_1 ==
        INT_Q_DIR_both_TM_conversions;
      if (outC->else_clock_1_IfBlock1) {
        outC->_L2_13_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _7_q_dir_1 = outC->_L2_13_IfBlock1;
        _4_q_dir_1 = _7_q_dir_1;
      }
      else {
        outC->_L2_1_IfBlock1 = ENUM_Q_DIR_both_TM_conversions;
        _5_q_dir_1 = outC->_L2_1_IfBlock1;
        _4_q_dir_1 = _5_q_dir_1;
      }
      _10_q_dir_1 = _4_q_dir_1;
    }
    outC->q_dir_1 = _10_q_dir_1;
  }
  outC->_L356 = outC->q_dir_1;
  outC->_L214 = outC->_L1.valid;
  outC->_L213 = 1;
  outC->_L212 = outC->_L378 - outC->_L213;
  outC->_L206 = 0;
  outC->_L204.nid_packet = outC->_L388;
  outC->_L204.q_dir = outC->_L356;
  outC->_L204.valid = outC->_L214;
  outC->_L204.startAddress = outC->_L206;
  outC->_L204.endAddress = outC->_L212;
  kcg_copy_MetadataElement_T_Common_Types_Pkg(&outC->Header, &outC->_L204);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->P005_compressed,
    &outC->_L383);
  if (outC->IfBlock1_clock_1) {
    outC->_L5_16_IfBlock1 = kcg_false;
    _11_error_1 = outC->_L5_16_IfBlock1;
    outC->error_1 = _11_error_1;
  }
  else {
    if (outC->_4_else_clock_1_IfBlock1) {
      outC->_L5_1_IfBlock1 = kcg_false;
      error_1 = outC->_L5_1_IfBlock1;
      _9_error_1 = error_1;
    }
    else {
      if (outC->else_clock_1_IfBlock1) {
        outC->_L4_1_IfBlock1 = kcg_false;
        _8_error_1 = outC->_L4_1_IfBlock1;
        _3_error_1 = _8_error_1;
      }
      else {
        outC->_L1_1_IfBlock1 = kcg_true;
        _6_error_1 = outC->_L1_1_IfBlock1;
        _3_error_1 = _6_error_1;
      }
      _9_error_1 = _3_error_1;
    }
    outC->error_1 = _9_error_1;
  }
  outC->_L13_1 = outC->error_1;
  noname_1 = outC->_L13_1;
}
/* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections */
void C_P027V1_tracksim_merge_s_TM_conversions_baseline2(
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::i */ kcg_int i,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::PacketStream_in */ CompressedPackets_T_Common_Types_Pkg *PacketStream_in,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::P027V1_sections_from_track */ P027V1_section_int_T_TM_baseline2 *P027V1_sections_from_track,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::n_iter */ kcg_int n_iter,
  /* TM_conversions_baseline2::C_P027V1_tracksim_merge_sections::meta_first_section_in */ kcg_int meta_first_section_in,
  outC_C_P027V1_tracksim_merge_s_TM_conversions_baseline2 *outC)
{
  outC->_L446 = i;
  kcg_copy_P027V1_section_int_T_TM_baseline2(
    &outC->_L440,
    P027V1_sections_from_track);
  outC->_L448 = meta_first_section_in;
  /* 2 */
  C_P027V1_tracksim_compr_o_TM_conversions_baseline2(
    outC->_L446,
    &outC->_L440,
    outC->_L448,
    &outC->Context_2);
  kcg_copy_MetadataElement_T_Common_Types_Pkg(
    &outC->_L431,
    &outC->Context_2.Header);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L432,
    &outC->Context_2.P027V1_sections_compressed);
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(&outC->_L439, PacketStream_in);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L442,
    &outC->_L439.PacketHeaders);
  /* 1 */
  SEND_WriteMessageHeader_TM_lib_internal(
    &outC->_L442,
    &outC->_L431,
    &outC->Context_1);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L435,
    &outC->Context_1.HeadersOut);
  outC->_L436 = outC->Context_1.NewStartAddr;
  outC->_L437 = outC->Context_1.NewEndAddr;
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L443,
    &outC->_L439.PacketData);
  /* 1 */
  SEND_MessageData_TM_lib_internal(
    outC->_L436,
    outC->_L437,
    &outC->_L443,
    &outC->_L432,
    &outC->_1_Context_1);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L433,
    &outC->_1_Context_1.DataOut);
  kcg_copy_Metadata_T_Common_Types_Pkg(
    &outC->_L434.PacketHeaders,
    &outC->_L435);
  kcg_copy_CompressedPacketData_T_Common_Types_Pkg(
    &outC->_L434.PacketData,
    &outC->_L433);
  outC->_L438 = i;
  outC->_L441 = n_iter;
  outC->_L447 = outC->_L441 > outC->_L438;
  outC->cont = outC->_L447;
  kcg_copy_CompressedPackets_T_Common_Types_Pkg(
    &outC->Packets_Out,
    &outC->_L434);
}