#include <bits/stdc++.h>
using namespace std;
#define SC scanf
#define PF printf
#define ull unsigned long long
#define ld long double
#define F first
#define S second
#define pb push_back
#define sort_a(a) sort(a.begin(),a.end());
#define sort_d(a) sort(a.rbegin(),a.rend());
#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
#define rev(s) reverse(s.begin(),s.end())
#define P(ok) cout << (ok ? "YES\n": "NO\n")
#define __Heart__ ios_base :: sync_with_stdio(false); cin.tie(NULL);
#define ll long long
typedef pair< ll , ll> PII;
const int M = 1e9 + 7 ;
void solve()
{
ll n , sum = 0 ; cin >> n ; ll a[n] , k = n ;
for(auto &x : a) cin >> x ;
int high = 1 << n ;
map < ll , vector < ll > > mp ;
for (int i = 1; i < high; i++){
ll gc = 0 , cnt = 0;
for(int j = 0 ; j < n ; j++){
if(i & (1 << j)) gc = __gcd(gc , a[j]) , cnt++ ;
}
mp[cnt].pb(gc) ;
}
ll Ans = 1 ;
vector < ll > v ;
for(int i = 1; i <= n ; i++){
ll sum = 0 ;
for(auto k : mp[i]){
sum += k ;
}
v.pb(sum) ;
}
for(auto it : v){
Ans = ((Ans % M) * (it % M)) % M ;
}
cout << Ans << "\n" ;
}
int main()
{
__Heart__
int t ; cin >> t ; while(t--) solve() ;
}