code: def MakeProxyType(name, exposed, _cache={}):
      """Return a proxy type whose methods are given by `exposed`."""
      exposed = tuple(exposed)
      try:
          return _cache[(name, exposed)]
      except KeyError:
          pass
  
      dic = {}
  
      for meth in exposed:
          exec(
              """def %s(self, *args, **kwds):
          return self._callmethod(%r, args, kwds)"""
              % (meth, meth),
              dic,
          )
  
      ProxyType = type(name, (BaseProxy,), dic)
      ProxyType._exposed_ = exposed
      _cache[(name, exposed)] = ProxyType
      return ProxyType
  
imports: import logging
  import multiprocessing
  import multiprocessing.util
  import queue
  import threading
  from multiprocessing.connection import SocketListener, _validate_family, address_type
  from multiprocessing.context import get_spawning_popen
  from multiprocessing.managers import Array, DictProxy, ListProxy, Namespace, RebuildProxy, State, Value, dispatch
  from multiprocessing.process import AuthenticationString
  import fiber.util
  import fiber.queues
  from fiber import process
  from fiber.backend import get_backend
label_desc: Use image node_id 2 for calling a global function with example usage: MakeProxyType(name, exposed, _cache) and returns: ProxyType, _cache