    w, h = {3 * w * h: (w, h) for (w, h) in [tici_f_frame_size, eon_f_frame_size]}[length]
  
    vipc_server = VisionIpcServer("camerad")
    vipc_server.create_buffers(VisionStreamType.VISION_STREAM_RGB_BACK, 4, True, w, h)
    vipc_server.start_listener()
    return vipc_server
  
  def unlogger_thread(command_address, forward_commands_address, data_address, run_realtime,
                      address_mapping, publish_time_length, bind_early, no_loop, no_visionipc):
 
</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   compiler = lenv.Program('thneed/compile', ["thneed/compile.cc" ]+common_model, LIBS=libs)
 </s> add   compiler = lenv.Program('thneed/compile', ["thneed/compile.cc"]+common_model, LIBS=libs) </s> remove VIPC_TYP = "vipc"
 </s> add VIPC_RGB = "rgb"
VIPC_YUV = "yuv" </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]:
  vipc_server.create_buffers(VisionStreamType.VISION_STREAM_YUV_BACK, 40, False, w, h)
    w, h = {3 * w * h: (w, h) for (w, h) in [tici_f_frame_size, eon_f_frame_size]}[length]
  
    vipc_server = VisionIpcServer("camerad")
    vipc_server.create_buffers(VisionStreamType.VISION_STREAM_RGB_BACK, 4, True, w, h)
  vipc_server.create_buffers(VisionStreamType.VISION_STREAM_YUV_BACK, 40, False, w, h)
    vipc_server.start_listener()
    return vipc_server
  
  def unlogger_thread(command_address, forward_commands_address, data_address, run_realtime,
                      address_mapping, publish_time_length, bind_early, no_loop, no_visionipc):
keep keep keep add 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 
tools/replay/unlogger.py