#include <bits/stdc++.h>
using namespace std;

#define int long long
#define rep(i, a) for (int i = 0; i < (a); i++)
#define repd(i, a) for (int i = (a)-1; i >= 0; i--)
#define reps(i, a, j) for (int i = (j); i < (a); i++)
#define deb(x) cout << #x << " " << x << endl;
#define debs(x) cout << #x << " " << x << " ";
#define deba(x) for (auto _i:x) cout << _i << " "; cout << endl;
#define ms(a) memset(a,0,sizeof(a));
#define mp make_pair
#define eb emplace_back
#define pii pair < int , int >
#define all(a) a.begin(),a.end()
// const int INF = 1e9+7;
/*

*/
int n;

bool solve2(vector < int > &arr,int sum) {
    map < int , int > m;
    rep (i,n) m[arr[i]]++;
    vector  < pii > res ;
    repd (i,n) {
        if (m[arr[i]] > 0) {
            m[arr[i]]--;
            if (m.find(sum - arr[i]) != m.end() && m[sum-arr[i]] > 0) {
                res.eb(mp(arr[i],sum-arr[i]));
                m[sum-arr[i]]--;
                sum = max(arr[i],sum-arr[i]);
            } else {
                return false;
            }
        }
    }
    cout << "YES" << endl;
    cout << res[0].first + res[0].second << endl;
    for (auto e: res) cout << e.first << " " << e.second << endl;
    return true;
}

void solve() {
    cin >> n;
    n*=2;
    vector < int > arr(n); rep (i,n) cin >> arr[i];
    sort(all(arr));
    rep (i,n-1) {
        int sum = arr[n-1] + arr[i];
        if (solve2(arr,sum)) return;
    }
    cout << "NO" << endl;
}

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t; cin >> t;
    while (t--) solve();
}