def skip_key(point, key, origin, keys, predicate):
    """Find the next result in ``keys`` for which ``predicate(key)`` is ``False``.

    If none is found, or if ``key`` is already such a result, the
    return value is ``(point, key)``.

    """
    while predicate(key):
        try:
            p, key = next(keys)
        except StopIteration:
            break
        point = origin + p
    return point, key
