import java.util.ArrayList;
import java.util.Scanner;

public class onetreequery {
	static int[][] jump;
	static ArrayList<Integer>[] a;
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int n=scan.nextInt();
		a=new ArrayList[n];
		for(int i=0;i<n;i++) a[i]=new ArrayList<>();

		for(int i=0;i<n-1;i++) {
			int u=scan.nextInt()-1, v=scan.nextInt()-1;
			a[u].add(v);
			a[v].add(u);
		}
		depth=new int[n];
		jump=new int[n][20];//might as well jump

		init(0,-1,0);

		for(int j=1;j<20;j++) {
			for(int i=0;i<n;i++) {
				if(jump[i][j-1]==-1) jump[i][j]=-1;
				else jump[i][j]=jump[jump[i][j-1]][j-1];
			}
		}

		int q=scan.nextInt();

		for(int i=0;i<q;i++) {
			boolean good=false;
			int addu=scan.nextInt()-1, addv=scan.nextInt()-1;
			int pathu=scan.nextInt()-1, pathv=scan.nextInt()-1;
			int length=scan.nextInt();

			//check path without adding the edge

			long path1=dist(pathu,pathv);
			if(path1<=length&&path1%2==length%2) {
				good=true;
			}

			//check path from pathu to addu to addv to pathv

			long path2=dist(pathu,addu)+1+dist(addv,pathv);
			if(path2<=length&&path2%2==length%2) {
				good=true;
			}

			//check path from pathu to addv to addu to path v

			long path3=dist(pathu,addv)+1+dist(addu,pathv);
			if(path3<=length&&path3%2==length%2) {
				good=true;
			}

			//			System.out.println(path1+" "+path2+" "+path3);
			if(good) System.out.println("YES");
			else System.out.println("NO");
		}
	}
	public static long dist(int a, int b) {
		return depth[a]+depth[b]-2*depth[lca(a,b)];
	}
	public static int lca(int a, int b) {
		if(depth[a]>depth[b]) a=walk(a,depth[a]-depth[b]);
		if(depth[b]>depth[a]) b=walk(b,depth[b]-depth[a]);

		if(a==b) return a;
		if(jump[a][0]==-1) return a;

		for(int i=19;i>=0;i--) {
			if(jump[a][i]!=jump[b][i]) {
				a=jump[a][i];
				b=jump[b][i];
			}
		}
		return jump[a][0];
	}
	public static int walk(int at, int k) {
		for(int i=19;i>=0;i--) {
			if(k>=(1<<i)) {
				k-=(1<<i);
				at=jump[at][i];
				if(at==-1) return -1;
			}
		}
		return at;
	}

	static int[] depth;

	public static void init(int at, int prev, int d) {
		depth[at]=d;
		jump[at][0]=prev;

		for(int nxt:a[at]) {
			if(nxt!=prev) {
				init(nxt,at,d+1);
			}
		}
	}
}