  
  
  # build thneed model
  if arch == "aarch64" or arch == "larch64":
    compiler = lenv.Program('thneed/compile', ["thneed/compile.cc" ]+common_model, LIBS=libs)
    cmd = f"cd {Dir('.').abspath} && {compiler[0].abspath} ../../models/supercombo.dlc ../../models/supercombo.thneed --binary"
  
    lib_paths = ':'.join([Dir(p).abspath for p in lenv["LIBPATH"]])
    cenv = Environment(ENV={'LD_LIBRARY_PATH': f"{lib_paths}:{lenv['ENV']['LD_LIBRARY_PATH']}"})
    cenv.Command("../../models/supercombo.thneed", ["../../models/supercombo.dlc", compiler], cmd)
 
</s> remove QCOM_REPLAY = arch == "aarch64" and os.getenv("QCOM_REPLAY") is not None
 </s> add  </s> remove   if QCOM_REPLAY:
    cameras = ['cameras/camera_frame_stream.cc']
  else:
    cameras = ['cameras/camera_qcom.cc']
 </s> add   cameras = ['cameras/camera_qcom.cc'] </s> remove   # tell runners to use onnx
  lenv['CFLAGS'].append("-DUSE_ONNX_MODEL")
  lenv['CXXFLAGS'].append("-DUSE_ONNX_MODEL")
 </s> add     # tell runners to use onnx
    lenv['CFLAGS'].append("-DUSE_ONNX_MODEL")
    lenv['CXXFLAGS'].append("-DUSE_ONNX_MODEL") </s> remove         if typ == VIPC_TYP and (not no_visionipc):
          if vipc_server is None:
            vipc_server = _get_vipc_server(len(msg_bytes))

          i, sof, eof = extra[0]
          vipc_server.send(VisionStreamType.VISION_STREAM_RGB_BACK, msg_bytes, i, sof, eof)
        if typ != VIPC_TYP:
 </s> add         if typ in [VIPC_RGB, VIPC_YUV]:
          if not no_visionipc:
            if vipc_server is None:
              vipc_server = _get_vipc_server(len(msg_bytes))

            i, sof, eof = extra[0]
            stream = VisionStreamType.VISION_STREAM_RGB_BACK if typ == VIPC_RGB else VisionStreamType.VISION_STREAM_YUV_BACK
            vipc_server.send(stream, msg_bytes, i, sof, eof)
        else: </s> remove       if typ not in send_funcs and typ != 'vipc':
 </s> add       if typ not in send_funcs and typ not in [VIPC_RGB, VIPC_YUV]:
  compiler = lenv.Program('thneed/compile', ["thneed/compile.cc"]+common_model, LIBS=libs)
  
  
  # build thneed model
  if arch == "aarch64" or arch == "larch64":
  compiler = lenv.Program('thneed/compile', ["thneed/compile.cc"]+common_model, LIBS=libs)
    cmd = f"cd {Dir('.').abspath} && {compiler[0].abspath} ../../models/supercombo.dlc ../../models/supercombo.thneed --binary"
  
    lib_paths = ':'.join([Dir(p).abspath for p in lenv["LIBPATH"]])
    cenv = Environment(ENV={'LD_LIBRARY_PATH': f"{lib_paths}:{lenv['ENV']['LD_LIBRARY_PATH']}"})
    cenv.Command("../../models/supercombo.thneed", ["../../models/supercombo.dlc", compiler], cmd)
keep keep keep keep replace keep keep keep keep keep
 fix up model tests + tools (#21071)

* unlogger: send yuv stream

* fix up model test tools

* fix unlogger

* rename model replay

* bump cereal

* test in actions

* no ci for now 
selfdrive/modeld/SConscript