<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _var_uint_field_handler(handler, ctx):
 """Handler co-routine for variable unsigned integer fields that. Invokes the given ``handler`` function with the read field and context, then immediately yields to the resulting co-routine. """

    _, self = yield
    queue = ctx.queue
    value = 0
    while True:
        if len(queue) == 0:
            # We don't know when the field ends, so read at least one byte.
            yield ctx.read_data_transition(1, self)
        octet = queue.read_byte()
        value <<= _VAR_INT_VALUE_BITS
        value |= octet & _VAR_INT_VALUE_MASK
        if octet & _VAR_INT_SIGNAL_MASK:
            break
    yield ctx.immediate_transition(handler(value, ctx))