/*
 * yaswanth phani kommineni
 */
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define endl '\n';


void solve(){
	ll n;
	cin >> n;
	n*=2;
	vector <ll> v(n);
	map <ll,ll> m;
	for(ll i=0;i<n;i++){
		cin >> v[i];
		m[v[i]]++;
	}
	sort(v.begin(),v.end());
	for(ll i=0;i<n-1;i++){
		auto mp = m;
		auto V = v;
		vector <pair<ll,ll>> ans;
		ans.push_back(make_pair(v[n-1],v[i]));
		mp[v[n-1]]--;
		mp[v[i]]--;
		ll cur = v[n-1];
		while(true){
			while(!V.empty() && !mp[V.back()]){
				V.pop_back();
			}
			if(V.empty()) break;
			ll last = V.back();
			mp[last]--;
			if(!mp[cur-last]){
				break;
			}
			ans.push_back(make_pair(last,cur-last));
			mp[cur-last]--;
			cur = last;
		}
		if((ll)ans.size()==n/2){
			cout << "YES" << endl;
			cout << ans.front().first + ans.front().second << endl;
			for(auto x : ans){
				cout << x.second << " " << x.first << endl;
			}
			return;
		}
	}
	cout << "NO" << endl;
}

int main(){
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int tc;
	tc = 1;
	cin >> tc;
	for(int i=1;i<=tc;i++){
		solve();
	}
	return 0;
}
