/*
TASK:mov
LANG:C++
*/


#include <stdio.h>
#include <iostream>
#include <algorithm>

using namespace std;


bool p_in_ots(double x, double y,double xa,double ya,double xb,double yb)
{ 
   if ((x>=min(xa,xb)&&x<=max(xa,xb))&&(y>=min(ya,yb)&&y<=max(ya,yb))) return true;
   return false; 
 };

bool cross(double A1,double B1,double C1,double A2,double B2,double C2,double xc,double yc,double xd,double yd)
{
     if (A1*xc+B1*yc+C1==0) return true;
     if (A1*xd+B1*yd+C1==0) return true;
     double o,p;
     o=((B2*C1)-(B1*C2))/((A2*B1)-(A1*B2));
     p=((A1*C2)-(A2*C1))/((A2*B1)-(A1*B2));
     if (p_in_ots(o,p,xc,yc,xd,yd)) return true;
     
     return false;
     
     
 };

main()
{
       int n;
       long int xa,ya,xb,yb,xc,yc,xd,yd,x,y;
       long long Aa,Ba,Ca,Ab,Bb,Cb,Acd,Bcd,Ccd,Aab,Bab,Cab;
       cin>>n;
       for (int i=1;i<=n;i++)
       {
           cin>>xa>>ya>>xb>>yb>>xc>>yc>>xd>>yd>>x>>y;
           Aa=y;
           Ab=y;
           Ba=-x;
           Bb=-x;
           Ca=(xa+x)*ya-(ya+y)*xa;
           Cb=(xb+x)*yb-(yb+y)*xb;
           Acd=yd-yc;
           Bcd=xc-xd;
           Ccd=xd*yc-xc*yd;
           Aab=yb-ya;
           Bab=xa-xb;
           Cab=xb*ya-xa*yb;
           
           if (y>0&&(Aab*xc+Bab*yc+Cab>0))cout<<0;
           else if (y<0&&(Aab*xc+Bab*yc+Cab<0))cout<<0;
                else if (x>0&&(Aab*xc+Bab*yc+Cab>0))cout<<0;
                     else if (x<0&&(Aab*xc+Bab*yc+Cab<0))cout<<0;
                     else {            
           if (cross(Aa,Ba,Ca,Acd,Bcd,Ccd,xc,yc,xd,yd)) cout<<1;
               else if (cross(Ab,Bb,Cb,Acd,Bcd,Ccd,xc,yc,xd,yd)) cout<<1;
                else if (cross(Acd,Bcd,Ccd,Aab,Bab,Cab,xa,ya,xb,yb)) cout<<1;
                     else cout<<0;
                     };
       };
}

