 
 /* Add s to l, following unlabeled arrows. */
 	__device__ inline void
-paddstate(List *l, State *s, List *addStateList)
+paddstate(List *l, State *s, List *addStateList, int *dlistid)
 {	
 	addStateList->n = 0;
 	PUSH(addStateList, s);

#define POP(l) l->s[l->n]; 


__device__ static int dlistid;
__device__ inline void paddstate(List*, State*, List*);
__device__ inline void pstep(List*, int, List*);

/* Compute initial state list */
__device__ inline List*
pstartlist(State *start, List *l)
{
	l->n = 0;
	dlistid++;

	List addStartState;
	paddstate(l, start, &addStartState);
	return l;
}



	List d1;
	List d2;	
	int dlistid;


	int i;
	for (i = blockIdx.x * blockDim.x + threadIdx.x; i < lineIndex; i += gridDim.x * blockDim.x) { 
