<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def readGet(self, varBind, **context):
 """Read Managed Object Instance. Implements the second of the two phases of the SNMP GET command processing (:RFC:`1905#section-4.2.1`). The goal of the second phase is to actually read the requested Managed Object Instance. When multiple Managed Objects Instances are read at once (likely coming all in one SNMP PDU), each of them has to run through the first (*test*) and second (*read) phases successfully for the whole read operation to succeed. The role of this object in the MIB tree is non-terminal. It does not access the actual Managed Object Instance, but just traverses one level down the MIB tree and hands off the query to the underlying objects. Beyond that, this object imposes access control logic towards the underlying :class:`MibScalarInstance` objects by invoking the `acFun` callable. Parameters varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing Managed Object Instance to read Other Parameters \*\*context: Query parameters: * `cbFun` (callable) - user-supplied callable that is invoked to pass read Managed Object Instance or an error. * `acFun` (callable) - user-supplied callable that is invoked to authorize access to the requested Managed Object Instance. If not supplied, no access control will be performed. Notes ----- The callback functions (e.g. `cbFun`, `acFun`) has the same signature as this method where `varBind` contains read Managed Object Instance value. In case of an error, the `error` key in the `context` dict will contain an exception object. """

        name, val = varBind

        (debug.logger & debug.FLAG_INS and
         debug.logger('%s: readGet(%s, %r)' % (self, name, val)))

        cbFun = context['cbFun']

        if name == self.name:
            cbFun((name, exval.noSuchInstance), **context)
            return

        acFun = context.get('acFun')
        if acFun:
            if (self.maxAccess not in ('readonly', 'readwrite', 'readcreate') or
                    acFun('read', (name, self.syntax), **context)):
                cbFun((name, exval.noSuchInstance), **context)
                return

        ManagedMibObject.readGet(self, varBind, **context)