code: def unpickle_object(self, obj):
      # This function is called when the server sends a remote reference.
      # We create a local stub for it locally
      if (
          not isinstance(obj, ObjReference)
      ) or obj.value_type != VALUE_REMOTE:
          raise ValueError("Invalid transferred object: %s" % str(obj))
      remote_class_name = obj.class_name
      obj_id = obj.identifier
      local_instance = self._proxied_objects.get(obj_id)
      if not local_instance:
          local_class = self.get_local_class(remote_class_name, obj_id)
          local_instance = local_class(self, remote_class_name, obj_id)
      return local_instance
  
imports: import fcntl
  import gc
  import os
  import importlib
  import itertools
  import select
  from subprocess import Popen, PIPE
  import sys
  import threading
  import time
  from .None import data_transferer
  from .consts import FIELD_ARGS, FIELD_CONTENT, FIELD_KWARGS, FIELD_MSGTYPE, FIELD_OPTYPE, FIELD_TARGET, MSG_CONTROL, MSG_EXCEPTION, MSG_INTERNAL_ERROR, MSG_OP, MSG_REPLY, OP_GETMETHODS, VALUE_LOCAL, VALUE_REMOTE, CONTROL_GETEXPORTS, CONTROL_SHUTDOWN
  from .communication.channel import Channel
  from .communication.socket_bytestream import SocketByteStream
  from .data_transferer import DataTransferer, ObjReference
  from .exception_transferer import load_exception
  from .override_decorators import LocalAttrOverride, LocalException, LocalOverride
  from .stub import create_class
  from .utils import get_canonical_name
label_desc: Use image node_id 14 for calling the Client obj's underlying member method code with example usage: obj.unpickle_object(obj) and returns: local_instance