#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	int T;
	cin>>T;
	while(T--){
		map<int,bool>cnt;
		int n;cin>>n;
		for(int i=0;i<n;i++){
			int x;cin>>x;
			cnt[x]^=1;
		}
		if(n&1)puts("Second");
		else {
			bool f=false;
			for(auto& i:cnt)f|=i.second;
			puts(f?"First":"Second");
		}
	}
} 
//Code by Ritik Agarwal
    #include<bits/stdc++.h>
    using namespace std;
    #define sz(x) (int)(x).size()
    #define int long long int
    #define loop(i,a,b) for(int i=a;i<b;i++)
    #define scan(arr,n) for (int i = 0; i < n; ++i) cin >> arr[i]
    #define vi vector<int>
    #define si set<int>
    #define pii pair <int, int>
    #define sii set<pii>
    #define vii vector<pii>
    #define mii map <int, int>
    #define pb push_back
    #define ff first
    #define ss second
    #define all(aa) aa.begin(), aa.end()
    #define rall(a) a.rbegin() , a.rend()
    #define read(a,b) int a,b;  cin>>a>>b
    #define readt(a,b,c) int a,b,c; cin>>a>>b>>c
    #define readf(a,b,c,d) int a,b,c,d; cin>>a>>b>>c>>d;
    #define print(v) for(auto x:v) cout<<x<<" ";cout<<endl
    #define printPair(res) for(pair<int,int>& p:res) cout<<p.first<<" "<<p.second<<endl;
    #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
    //*****  Constants  *****
    const int mod = 1000000007; /* 1e9 + 7*/
    const int MAXN = 1000005; /*1e6 +5 */
    const int mod1= 998244353;
     int vis[MAXN]={0};
    int fac[300001];
    void fact(int m){fac[0]=1;for(int i=1;i<=300000;i++) fac[i]=(fac[i-1]%m * i%m)%m;}
    /* Iterative Function to calculate (x^y)%p in O(log y)*/
     long long power( long long x,  int y, int p){   long long res = 1;  
     x = x % p; while (y > 0) { if (y & 1)  res = (res * x) % p;  y = y >> 1; x = (x * x) % p;} return res;}
    // Returns n^(-1) mod p 
     long long modInverse( long long n, int p) {  return power(n, p - 2, p); }
     long long nCr( long long n,int r, int p) { if (r == 0) return 1; if(n<r) return 0;
      return (fac[n] * modInverse(fac[r], p) % p * modInverse(fac[n - r], p) % p) % p; } 

     int binarySearch(vi arr, int l, int r, int x) { 
       if (r >= l) { int mid = l + (r - l) / 2; if (arr[mid] == x) return mid; 
       if (arr[mid] > x)  return binarySearch(arr, l, mid - 1, x); 
       return binarySearch(arr, mid + 1, r, x); } return -1; } 
      
    
    const int NAX=3E5+5;
    int BIT[NAX];
    int getSum( int index)
    {
        int sum=0;
        while(index>0)
        {
            sum+=BIT[index];
            index -=index & (-index);
        }
        return sum;
    }
    
    void update(int  n , int index , int val)
    {
        while(index<=n)
        {
            BIT[index]+=val;
            index += index & (-index); 
        }
    }

    void convert(int arr[], int n) 
{ 
    // Create a copy of arrp[] in temp and sort the temp array 
    // in increasing order 
    int temp[n]; 
    for (int i=0; i<n; i++) 
        temp[i] = arr[i]; 
    sort(temp, temp+n); 
  
    // Traverse all array elements 
    for (int i=0; i<n; i++) 
    { 
        // lower_bound() Returns pointer to the first element 
        // greater than or equal to arr[i] 
        arr[i] = lower_bound(temp, temp+n, arr[i]) - temp + 1; 
    } 
} 

    void solve(int test)
    {
        int n;cin>>n;
        vi arr(n);
        scan(arr,n);
        sort(all(arr));
        if(n&1) cout<<"Second\n";
        else
        {
            int f=0;
            for(int i=-0;i<n;i+=2)
            {
                if(arr[i]!=arr[i+1])
                    f=1;
            }
            if(f==1)
                cout<<"First\n";
            else
                cout<<"Second\n";
        }
    }


    int32_t main()
    {
        #ifndef ONLINE_JUDGE
            freopen("input.txt", "r", stdin);
            freopen("output.txt", "w", stdout);
        #endif
        faster;//fact(mod1);
        int t=1;
        cin>>t;
        for(int test=1;test<=t;test++)
        {
            solve(test);
        }
    }