human
Complete the below
def collect_models(*input_values):

    ''''Collect a duplicate-free list of all other Bokeh models referred to by
    this model, or by any of its references, etc.
    Iterate over ``input_values`` and descend through their structure
    collecting all nested ``Models`` on the go. The resulting list is
    duplicate-free based on objects\' identifiers.
    Args:
    *input_values (Model)
    Bokeh models to collect other models from
    Returns:
    list[Model] : all models reachable from this one.'
    '''
assistant
#Here is the Python program you requested.
    ids = set([])
    collected = []
    queued = []
    def queue_one(obj):
        if (obj._id not in ids):
            queued.append(obj)
    for value in input_values:
        _visit_value_and_its_immediate_references(value, queue_one)
    while queued:
        obj = queued.pop(0)
        if (obj._id not in ids):
            ids.add(obj._id)
            collected.append(obj)
            _visit_immediate_value_references(obj, queue_one)
    return collected