code: def unpack_helper(msg: bytes) -> Tuple[bytes, bytes]:
      (key_size,), tail = struct.unpack("I", msg[:4]), msg[4:]
      key, tail = tail[:key_size], tail[key_size:]
      (is_blob,), tail = struct.unpack("?", tail[:1]), tail[1:]
      (value_size,), tail = struct.unpack("I", tail[:4]), tail[4:]
      value, tail = tail[:value_size], tail[value_size:]
      assert len(tail) == 0
      if is_blob:
          yield key, BLOB(data=value)
      else:
          yield key, value
  
imports: import importlib
  import struct
  import json
  from typing import Iterator, Tuple, Union
  import aim.ext.transport.proto.remote_tracking_pb2
  from aim.storage.object import CustomObject
  from aim.storage.types import BLOB
label_desc: Use image node_id 4 for calling a global function with example usage: unpack_helper(msg) without return types