#include <bits/stdc++.h>
#define ll long long
#define mod 1000000007
#define inf 100000007
#define eps 1e-10
#define PI 3.14159265359
#define sp printf(" ")
#define vi vector<int>
#define vl vector<long long>
#define vc vector<char>
#define vs vector<string>
#define pii pair<int, int>
#define pll pair<long long, long long>
#define pcc pair<char, char>
#define mp make_pair
#define FF first
#define SS second
#define pb(x) push_back(x)
#define sd(x) scanf("%d", &(x))
#define pd(x) printf("%d", (x))
#define pdn(x) printf("%d\n", (x))
#define sld(x) scanf("%ld", &(x))
#define pld(x) printf("%ld", (x))
#define pldn(x) printf("%ld\n", (x))
#define slf(x) scanf("%lf", &(x))
#define plf(x) printf("%.9lf", (x))
#define plfn(x) print("%.8lf\n", (x))
#define sch(x) scanf("%c", &(x))
#define pch(x) printf("%c", (x))
#define pchn(x) printf("%c\n", (x))
#define gtl(x) getline(cin, (x))
#define flsh fflush(stdout)
#define ios ios::sync_with_stdio(false); cin.tie(0) ; cout.tie(0)
#define endl '\n'
#define fst first
#define snd second
#define all(c) ((c).begin()), ((c).end())
#define TEST(s) if (!(s)) { cout << __LINE__ << " " << #s << endl; exit(-1); }
using namespace std;
const long long INF = 99999999;
int a[1000004],size[1000006],v[1000005];
int root(int i)
{
    while(i!=a[i])i=a[a[i]];
    return i;
}
void merge(int i,int j)
{
    i=root(i);
    j=root(j);
    if(i==j)return;
    if(size[i]>size[j])
    {
        a[j]=i;
        size[i]+=size[j];
    }
    else
    {
        a[i]=j;
        size[j]+=size[i];
    }
}
ll power(ll j)
{
    if(j==0)return 1;

    ll w=power(j/2);
    w=(w*w)%mod;
    if(j%2==1){w=w*2LL;w=w%mod;}
    return w;
}
int main()
{
    ios;
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        for(int i=1;i<=1000000;i++){size[i]=0;a[i]=i;v[i]=0;}
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            size[x]++;
        }

        for(int i=2;i<=1000000;i++)
        {
            if(v[i]==0)
            {
                for(int j=i+i;j<=1000000;j+=i)
                {
                    v[j]=1;
                    if(size[j]==0)continue;
                    merge(j,i);
                }
            }
        }
        int cnt=size[1];
        for(int i=2;i<=1000000;i++)
        {
            int w=root(i);
            if(size[w]>0){cnt++;size[w]=0;}
        }
        cout<<(power(cnt)-2LL+mod)%mod<<endl;


    }
    
   

}