/*
TASK: mov
LANG: C
*/
#include <stdio.h>
#include <math.h>

typedef struct {int x,y;}point;
point A,B,C,D,V,tmp;

int Dis (point,point,point);
int sign (int);

int main ()
{
    int n,i,d1,d2,d3,d4;
    
    scanf ("%d",&n);
    for (i=0;i<n;i++)
        {
            scanf ("%d %d %d %d %d %d %d %d %d %d",&A.x,&A.y,&B.x,&B.y,&C.x,&C.y,&D.x,&D.y,&V.x,&V.y);
            
            d1=Dis (D,A,C);
            d2=Dis (D,B,C);
            
            if ((d1>=0 && d2>=0) || (d1<=0 && d2<=0))
                printf ("0");
            else if (C.x-A.x>=0 && V.x>=0 && C.y-A.y>=0 && V.y>=0)
                printf ("1");
            else if (C.x-A.x<=0 && V.x<=0 && C.y-A.y<=0 && V.y<=0)
                printf ("1");
            else if (D.x-B.x>=0 && V.x>=0 && D.y-B.y>=0 && V.y>=0)
                printf ("1");
            else if (D.x-B.x<=0 && V.x<=0 && D.y-B.y<=0 && V.y<=0)
                printf ("1");
            else
                printf ("0");
        }
    printf ("\n");
    
    return 0;
}

int Dis (point p0,point p1,point p2)
{
    int dx1=p1.x-p0.x;
    int dx2=p2.x-p1.x;
    int dy1=p1.y-p0.y;
    int dy2=p2.y-p1.y;
    
    return dx1*dy2-dx2*dy1;
}

int sign (int x)
{
    return (x>0) - (x<0);
}
