#include <bits/stdc++.h>
using namespace std;
// Speed
#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
// Typedefs
#define int long long
#define pb push_back
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) ((int)(x).size())
#define endl '\n'
#define yes cout << "YES\n"
#define no cout << "NO\n"
// Loops
#define rep(i,a,b) for(int i=a;i<b;++i)
#define per(i,a,b) for(int i=b-1;i>=a;--i)
#define each(x, a) for (auto& x : a)
// Consts
const int INF = 1e18;
const int MOD = 1e9+7;
const int N = 2e5 + 5;
// Math
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int lcm(int a, int b) { return (a / gcd(a, b)) * b; }
int power(int a, int b, int m = MOD) {
int res = 1;
while (b > 0) {
if (b & 1) res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}
int modinv(int a, int m = MOD) {
return power(a, m - 2, m);
}
// Logic
void solve() {
int n;
cin >> n;
map<int, int> counts;
rep(i, 0, n) {
int val;
cin >> val;
counts[val]++;
}
multiset<int> all_pairs;
vector<int> singles;
each(p, counts) {
rep(i, 0, p.ss / 2) {
all_pairs.insert(p.ff);
}
if (p.ss % 2 == 1) {
singles.pb(p.ff);
}
}
sort(rall(singles));
int max_perimeter = 0;
// Case 0: 0 singles (even sides)
multiset<int> current_pairs_0 = all_pairs;
int p_even = 0;
each(p, current_pairs_0) p_even += p;
p_even *= 2;
while (sz(current_pairs_0) >= 2) {
int s_max = *current_pairs_0.rbegin();
if (2 * s_max < p_even) {
max_perimeter = max(max_perimeter, p_even);
break;
} else {
p_even -= 2 * s_max;
current_pairs_0.erase(prev(current_pairs_0.end()));
}
}
// Case 1: 1 single (odd sides)
multiset<int> current_pairs_1 = all_pairs;
int p_pairs_1 = 0;
each(p, current_pairs_1) p_pairs_1 += p;
p_pairs_1 *= 2;
while (sz(current_pairs_1) >= 1) {
int s_pair_max = *current_pairs_1.rbegin();
bool found = false;
each(s, singles) {
int p_total = p_pairs_1 + s;
int s_max = max(s_pair_max, s);
if (2 * s_max < p_total) {
max_perimeter = max(max_perimeter, p_total);
found = true;
break;
}
}
if (found) break;
p_pairs_1 -= 2 * s_pair_max;
current_pairs_1.erase(prev(current_pairs_1.end()));
}
// Case 2: 2 singles (even sides)
if (sz(singles) >= 2) {
multiset<int> current_pairs_2 = all_pairs;
int p_pairs_2 = 0;
each(p, current_pairs_2) p_pairs_2 += p;
p_pairs_2 *= 2;
while (sz(current_pairs_2) >= 1) {
int s_pair_max = *current_pairs_2.rbegin();
int s1 = singles[0];
int s2 = singles[1];
int p_total = p_pairs_2 + s1 + s2;
int s_max = max(s_pair_max, s1);
if (2 * s_max < p_total) {
max_perimeter = max(max_perimeter, p_total);
break;
} else {
p_pairs_2 -= 2 * s_pair_max;
current_pairs_2.erase(prev(current_pairs_2.end()));
}
}
}
cout << max_perimeter << endl;
}
// Main
int32_t main() {
fast_io;
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBTcGVlZAojZGVmaW5lIGZhc3RfaW8gaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApCgovLyBUeXBlZGVmcwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgcmFsbCh4KSAoeCkucmJlZ2luKCksICh4KS5yZW5kKCkKI2RlZmluZSBzeih4KSAoKGludCkoeCkuc2l6ZSgpKQojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVNcbiIKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIgoKLy8gTG9vcHMKI2RlZmluZSByZXAoaSxhLGIpIGZvcihpbnQgaT1hO2k8YjsrK2kpCiNkZWZpbmUgcGVyKGksYSxiKSBmb3IoaW50IGk9Yi0xO2k+PWE7LS1pKQojZGVmaW5lIGVhY2goeCwgYSkgZm9yIChhdXRvJiB4IDogYSkKCi8vIENvbnN0cwpjb25zdCBpbnQgSU5GID0gMWUxODsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgTiA9IDJlNSArIDU7CgovLyBNYXRoCmludCBnY2QoaW50IGEsIGludCBiKSB7IHJldHVybiBiID09IDAgPyBhIDogZ2NkKGIsIGEgJSBiKTsgfQppbnQgbGNtKGludCBhLCBpbnQgYikgeyByZXR1cm4gKGEgLyBnY2QoYSwgYikpICogYjsgfQoKaW50IHBvd2VyKGludCBhLCBpbnQgYiwgaW50IG0gPSBNT0QpIHsKICAgIGludCByZXMgPSAxOwogICAgd2hpbGUgKGIgPiAwKSB7CiAgICAgICAgaWYgKGIgJiAxKSByZXMgPSByZXMgKiBhICUgbTsKICAgICAgICBhID0gYSAqIGEgJSBtOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgppbnQgbW9kaW52KGludCBhLCBpbnQgbSA9IE1PRCkgewogICAgcmV0dXJuIHBvd2VyKGEsIG0gLSAyLCBtKTsKfQoKLy8gTG9naWMKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBtYXA8aW50LCBpbnQ+IGNvdW50czsKICAgIHJlcChpLCAwLCBuKSB7CiAgICAgICAgaW50IHZhbDsKICAgICAgICBjaW4gPj4gdmFsOwogICAgICAgIGNvdW50c1t2YWxdKys7CiAgICB9CgogICAgbXVsdGlzZXQ8aW50PiBhbGxfcGFpcnM7CiAgICB2ZWN0b3I8aW50PiBzaW5nbGVzOwogICAgZWFjaChwLCBjb3VudHMpIHsKICAgICAgICByZXAoaSwgMCwgcC5zcyAvIDIpIHsKICAgICAgICAgICAgYWxsX3BhaXJzLmluc2VydChwLmZmKTsKICAgICAgICB9CiAgICAgICAgaWYgKHAuc3MgJSAyID09IDEpIHsKICAgICAgICAgICAgc2luZ2xlcy5wYihwLmZmKTsKICAgICAgICB9CiAgICB9CiAgICBzb3J0KHJhbGwoc2luZ2xlcykpOwoKICAgIGludCBtYXhfcGVyaW1ldGVyID0gMDsKCiAgICAvLyBDYXNlIDA6IDAgc2luZ2xlcyAoZXZlbiBzaWRlcykKICAgIG11bHRpc2V0PGludD4gY3VycmVudF9wYWlyc18wID0gYWxsX3BhaXJzOwogICAgaW50IHBfZXZlbiA9IDA7CiAgICBlYWNoKHAsIGN1cnJlbnRfcGFpcnNfMCkgcF9ldmVuICs9IHA7CiAgICBwX2V2ZW4gKj0gMjsKICAgIHdoaWxlIChzeihjdXJyZW50X3BhaXJzXzApID49IDIpIHsKICAgICAgICBpbnQgc19tYXggPSAqY3VycmVudF9wYWlyc18wLnJiZWdpbigpOwogICAgICAgIGlmICgyICogc19tYXggPCBwX2V2ZW4pIHsKICAgICAgICAgICAgbWF4X3BlcmltZXRlciA9IG1heChtYXhfcGVyaW1ldGVyLCBwX2V2ZW4pOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwX2V2ZW4gLT0gMiAqIHNfbWF4OwogICAgICAgICAgICBjdXJyZW50X3BhaXJzXzAuZXJhc2UocHJldihjdXJyZW50X3BhaXJzXzAuZW5kKCkpKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gQ2FzZSAxOiAxIHNpbmdsZSAob2RkIHNpZGVzKQogICAgbXVsdGlzZXQ8aW50PiBjdXJyZW50X3BhaXJzXzEgPSBhbGxfcGFpcnM7CiAgICBpbnQgcF9wYWlyc18xID0gMDsKICAgIGVhY2gocCwgY3VycmVudF9wYWlyc18xKSBwX3BhaXJzXzEgKz0gcDsKICAgIHBfcGFpcnNfMSAqPSAyOwogICAgd2hpbGUgKHN6KGN1cnJlbnRfcGFpcnNfMSkgPj0gMSkgewogICAgICAgIGludCBzX3BhaXJfbWF4ID0gKmN1cnJlbnRfcGFpcnNfMS5yYmVnaW4oKTsKICAgICAgICBib29sIGZvdW5kID0gZmFsc2U7CiAgICAgICAgZWFjaChzLCBzaW5nbGVzKSB7CiAgICAgICAgICAgIGludCBwX3RvdGFsID0gcF9wYWlyc18xICsgczsKICAgICAgICAgICAgaW50IHNfbWF4ID0gbWF4KHNfcGFpcl9tYXgsIHMpOwogICAgICAgICAgICBpZiAoMiAqIHNfbWF4IDwgcF90b3RhbCkgewogICAgICAgICAgICAgICAgbWF4X3BlcmltZXRlciA9IG1heChtYXhfcGVyaW1ldGVyLCBwX3RvdGFsKTsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChmb3VuZCkgYnJlYWs7CiAgICAgICAgcF9wYWlyc18xIC09IDIgKiBzX3BhaXJfbWF4OwogICAgICAgIGN1cnJlbnRfcGFpcnNfMS5lcmFzZShwcmV2KGN1cnJlbnRfcGFpcnNfMS5lbmQoKSkpOwogICAgfQoKICAgIC8vIENhc2UgMjogMiBzaW5nbGVzIChldmVuIHNpZGVzKQogICAgaWYgKHN6KHNpbmdsZXMpID49IDIpIHsKICAgICAgICBtdWx0aXNldDxpbnQ+IGN1cnJlbnRfcGFpcnNfMiA9IGFsbF9wYWlyczsKICAgICAgICBpbnQgcF9wYWlyc18yID0gMDsKICAgICAgICBlYWNoKHAsIGN1cnJlbnRfcGFpcnNfMikgcF9wYWlyc18yICs9IHA7CiAgICAgICAgcF9wYWlyc18yICo9IDI7CiAgICAgICAgd2hpbGUgKHN6KGN1cnJlbnRfcGFpcnNfMikgPj0gMSkgewogICAgICAgICAgICBpbnQgc19wYWlyX21heCA9ICpjdXJyZW50X3BhaXJzXzIucmJlZ2luKCk7CiAgICAgICAgICAgIGludCBzMSA9IHNpbmdsZXNbMF07CiAgICAgICAgICAgIGludCBzMiA9IHNpbmdsZXNbMV07CiAgICAgICAgICAgIGludCBwX3RvdGFsID0gcF9wYWlyc18yICsgczEgKyBzMjsKICAgICAgICAgICAgaW50IHNfbWF4ID0gbWF4KHNfcGFpcl9tYXgsIHMxKTsKICAgICAgICAgICAgaWYgKDIgKiBzX21heCA8IHBfdG90YWwpIHsKICAgICAgICAgICAgICAgIG1heF9wZXJpbWV0ZXIgPSBtYXgobWF4X3BlcmltZXRlciwgcF90b3RhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHBfcGFpcnNfMiAtPSAyICogc19wYWlyX21heDsKICAgICAgICAgICAgICAgIGN1cnJlbnRfcGFpcnNfMi5lcmFzZShwcmV2KGN1cnJlbnRfcGFpcnNfMi5lbmQoKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICBjb3V0IDw8IG1heF9wZXJpbWV0ZXIgPDwgZW5kbDsKfQoKLy8gTWFpbgppbnQzMl90IG1haW4oKSB7CiAgICBmYXN0X2lvOwoKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=