#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
map<int, int> mp;
int n;
cin>>n;
int arr[n];
int mx=-1;
for (int i=0;i<n;i++)
{cin>>arr[i];
if(mp.find(arr[i])==mp.end())
mp[arr[i]]=1;
else
++mp[arr[i]];
mx = max(mx, mp[arr[i]]);
}
map<int,int>::iterator it;
if(mx*2>n)
{cout<<"No\n";
continue;}
vector<int> rep;
rep.push_back(0);
int itr=0;
for(int i=1;i<n;i++)
{
if(itr==rep.size()||arr[i]==arr[rep[itr]])
{rep.push_back(i);
continue;
}
swap(arr[i],arr[rep[itr]]);
++itr;
}
for(int i=0;i<n;i++)
{
if(itr==rep.size())
break;
if(arr[i]!=arr[rep[itr]])
{swap(arr[i],arr[rep[itr]]);
++itr;}
}
cout<<"Yes\n";
for(int i=0;i<n;i++)
cout<<arr[i]<<" ";
cout<<"\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKQp7CmludCB0OwpjaW4+PnQ7CndoaWxlKHQtLSkKewptYXA8aW50LCBpbnQ+IG1wOwppbnQgbjsKY2luPj5uOwppbnQgYXJyW25dOwppbnQgbXg9LTE7CmZvciAoaW50IGk9MDtpPG47aSsrKQp7Y2luPj5hcnJbaV07CmlmKG1wLmZpbmQoYXJyW2ldKT09bXAuZW5kKCkpCiAgICBtcFthcnJbaV1dPTE7CiAgICBlbHNlCiAgICAgICAgKyttcFthcnJbaV1dOwogICAgbXggPSBtYXgobXgsIG1wW2FycltpXV0pOwp9Cm1hcDxpbnQsaW50Pjo6aXRlcmF0b3IgaXQ7CgppZihteCoyPm4pCiAgICB7Y291dDw8Ik5vXG4iOwpjb250aW51ZTt9Cgp2ZWN0b3I8aW50PiByZXA7CnJlcC5wdXNoX2JhY2soMCk7CmludCBpdHI9MDsKZm9yKGludCBpPTE7aTxuO2krKykKewppZihpdHI9PXJlcC5zaXplKCl8fGFycltpXT09YXJyW3JlcFtpdHJdXSkKe3JlcC5wdXNoX2JhY2soaSk7CmNvbnRpbnVlOwp9CnN3YXAoYXJyW2ldLGFycltyZXBbaXRyXV0pOworK2l0cjsKfQpmb3IoaW50IGk9MDtpPG47aSsrKQp7CmlmKGl0cj09cmVwLnNpemUoKSkKYnJlYWs7CmlmKGFycltpXSE9YXJyW3JlcFtpdHJdXSkKe3N3YXAoYXJyW2ldLGFycltyZXBbaXRyXV0pOworK2l0cjt9Cn0KY291dDw8Illlc1xuIjsKZm9yKGludCBpPTA7aTxuO2krKykKICAgIGNvdXQ8PGFycltpXTw8IiAiOwpjb3V0PDwiXG4iOwogICAgfQoKfQ==