Generate program that has the following intention:

This is the structure of the `NAME_1` class:
````
class NAME_1:
    def __init__(
        self,
        value=None,
        successor=None,
        successors=[],
        predecessors=[],
        incoming_nodes=[],
        outgoing_nodes=[],
    ):
        self.value = value
        self.successor = successor
        self.successors = successors
        self.predecessors = predecessors
        self.incoming_nodes = incoming_nodes
        self.outgoing_nodes = outgoing_nodes
````
The intention of the program is to implement a depth-first search (DFS) algorithm in a doubly linked list structure. The given code consists of a NAME_1 class and a p5 function.

The NAME_1 class represents a NAME_1 in a doubly linked list, with attributes to store its value, successor, and other links to track the structure of the list. The p5 function is a depth-first search algorithm that traverses the linked list, starting from a given NAME_1.

The DFS algorithm is used to explore the connected components of the graph. It starts at a particular NAME_1 (root) and explores its successors, then their successors, and so on. The p5 function returns True if it finds a cycle in the list (i.e., a hare-tortoise pair), meaning that the graph has a circular dependency. If it does not find a cycle, it returns False.
 Provide two versions of response separated with exactly 6 asterisk symbols: ******.
user