#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
// #include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <queue>
#include <ctime>
#include <cassert>
#include <complex>
#include <stack>
#include <string>
#include <cstring>
#include <chrono>
#include <random>
#include <bitset>
#include <sstream>
#include <iomanip>
using namespace std;
#define int int64_t
#define vi vector<int>
#define vb vector<bool>
#define vbb vector< vector<bool> >
#define all(x) (x).begin(), (x).end()
#define vii vector< vector<int> >
#define rip(dp, n, m) vector< vector<int> > dp(n, vector<int>(m,0))
#define ff first
#define ss second
#define pii pair<int64_t, int64_t>
#define miv map<int, vector<int> >
#define mp make_pair
#define pb push_back
#define prr(x) cout << (#x) <<' ' << (x) << endl
#define pr(x) cout << (x) << endl
#define f(i,n) for(i=0;i<n;i++)
#define pqb priority_queue<int>
#define pqs priority_queue<int,vi,greater<int> >
#define setbits(x) __builtin_popcountll(x)
#define zrobits(x) __builtin_ctzll(x)
#define mod 1000000007
#define inf 1e18
#define ps(x,y) fixed<<setprecision(y)<<x
#define mk(arr,n,type) type *arr=new type[n];
#define w(x) int x; cin>>x; while(x--)
#define FIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int32_t main()
{
FIO;
int i, n, j, m, k, l, t;
cin >> t;
while(t--)
{
cin >> n;
string s;cin >> s;
string s1="abacaba";
k=0;
for(i=0;i<=n-s1.length();i++)
{
string ss = s.substr(i, s1.length());
bool bb=true;
for(j=0;j<s1.length();j++)
if(ss[j]!=s1[j]) bb=false;
if(bb)
k++;
}
if(k>1)
{
cout << "No\n";
}
else if(k==1)
{
f(i,n) if(s[i]=='?') s[i]='z';
cout << "Yes\n" << s << endl;
}
else
{
for(i=0;i<=n-s1.length();i++)
{
string ss = s.substr(i, s1.length());
bool bb=true;
for(j=0;j<s1.length();j++)
{
if(ss[j]!='?') {if(ss[j]!=s1[j]) bb=false;}
}
if(bb)
{
k++;
for(j=i;j<i+s1.length();j++) s[j]=s1[j-i];
f(l,n) if(s[l]=='?') s[l]='z';
k=0;
break;
}
}
for(i=0;i<=n-s1.length();i++)
{
string ss = s.substr(i, s1.length());
bool bb=true;
for(j=0;j<s1.length();j++)
if(ss[j]!=s1[j]) bb=false;
if(bb)
k++;
}
if(k==1)
cout << "Yes\n" << s << endl;
if(k==0)
cout << "No\n";
if(k>1)
cout << "No\n";
}
}
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPMyIpCiNwcmFnbWEgR0NDIHRhcmdldCAoInNzZTQiKQovLyAjaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8Y2Fzc2VydD4KI2luY2x1ZGUgPGNvbXBsZXg+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDxyYW5kb20+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgojZGVmaW5lIGludCBpbnQ2NF90CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2YiB2ZWN0b3I8Ym9vbD4KI2RlZmluZSB2YmIgdmVjdG9yPCB2ZWN0b3I8Ym9vbD4gPgojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgdmlpIHZlY3RvcjwgdmVjdG9yPGludD4gPgojZGVmaW5lIHJpcChkcCwgbiwgbSkgdmVjdG9yPCB2ZWN0b3I8aW50PiA+IGRwKG4sIHZlY3RvcjxpbnQ+KG0sMCkpCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwaWkgcGFpcjxpbnQ2NF90LCBpbnQ2NF90PgojZGVmaW5lIG1pdiBtYXA8aW50LCB2ZWN0b3I8aW50PiA+CiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcHJyKHgpIGNvdXQgPDwgKCN4KSA8PCcJJyA8PCAoeCkgPDwgZW5kbAojZGVmaW5lIHByKHgpIGNvdXQgIDw8ICh4KSA8PCBlbmRsCiNkZWZpbmUgZihpLG4pIGZvcihpPTA7aTxuO2krKykKI2RlZmluZSBwcWIgcHJpb3JpdHlfcXVldWU8aW50PgojZGVmaW5lIHBxcyBwcmlvcml0eV9xdWV1ZTxpbnQsdmksZ3JlYXRlcjxpbnQ+ID4KI2RlZmluZSBzZXRiaXRzKHgpICBfX2J1aWx0aW5fcG9wY291bnRsbCh4KQojZGVmaW5lIHpyb2JpdHMoeCkgIF9fYnVpbHRpbl9jdHpsbCh4KQojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgaW5mIDFlMTgKI2RlZmluZSBwcyh4LHkpIGZpeGVkPDxzZXRwcmVjaXNpb24oeSk8PHgKI2RlZmluZSBtayhhcnIsbix0eXBlKSAgdHlwZSAqYXJyPW5ldyB0eXBlW25dOwojZGVmaW5lIHcoeCkgaW50IHg7IGNpbj4+eDsgd2hpbGUoeC0tKQojZGVmaW5lIEZJTyAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKbXQxOTkzNyBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmludDMyX3QgbWFpbigpCnsKICAgIEZJTzsKICAgIGludCBpLCBuLCBqLCBtLCBrLCBsLCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgY2luID4+IG47CiAgICAgICAgc3RyaW5nIHM7Y2luID4+IHM7CiAgICAgICAgc3RyaW5nIHMxPSJhYmFjYWJhIjsKICAgICAgICBrPTA7CiAgICAgICAgZm9yKGk9MDtpPD1uLXMxLmxlbmd0aCgpO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBzcyA9IHMuc3Vic3RyKGksIHMxLmxlbmd0aCgpKTsKICAgICAgICAgICAgYm9vbCBiYj10cnVlOwogICAgICAgICAgICBmb3Ioaj0wO2o8czEubGVuZ3RoKCk7aisrKQogICAgICAgICAgICAgICAgIGlmKHNzW2pdIT1zMVtqXSkgYmI9ZmFsc2U7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYoYmIpCiAgICAgICAgICAgICAgICBrKys7CgogICAgICAgIH0KCgogICAgICAgIGlmKGs+MSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5vXG4iOwogICAgICAgIH0KCiAgICAgICAgZWxzZSBpZihrPT0xKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGYoaSxuKSBpZihzW2ldPT0nPycpIHNbaV09J3onOwoKICAgICAgICAgICAgICAgIGNvdXQgPDwgIlllc1xuIiA8PCBzIDw8IGVuZGw7CiAgICAgICAgfQoKCgogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgZm9yKGk9MDtpPD1uLXMxLmxlbmd0aCgpO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBzcyA9IHMuc3Vic3RyKGksIHMxLmxlbmd0aCgpKTsKICAgICAgICAgICAgYm9vbCBiYj10cnVlOwogICAgICAgICAgICBmb3Ioaj0wO2o8czEubGVuZ3RoKCk7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihzc1tqXSE9Jz8nKSB7aWYoc3Nbal0hPXMxW2pdKSBiYj1mYWxzZTt9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoYmIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGsrKzsKICAgICAgICAgICAgICAgIGZvcihqPWk7ajxpK3MxLmxlbmd0aCgpO2orKykgc1tqXT1zMVtqLWldOwogICAgICAgICAgICAgICAgZihsLG4pIGlmKHNbbF09PSc/Jykgc1tsXT0neic7CiAgICAgICAgICAgICAgICBrPTA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IoaT0wO2k8PW4tczEubGVuZ3RoKCk7aSsrKQogICAgICAgIHsKCiAgICAgICAgICAgIHN0cmluZyBzcyA9IHMuc3Vic3RyKGksIHMxLmxlbmd0aCgpKTsKICAgICAgICAgICAgYm9vbCBiYj10cnVlOwogICAgICAgICAgICBmb3Ioaj0wO2o8czEubGVuZ3RoKCk7aisrKQogICAgICAgICAgICAgICAgIGlmKHNzW2pdIT1zMVtqXSkgYmI9ZmFsc2U7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGJiKQogICAgICAgICAgICAgICAgaysrOwoKICAgICAgICB9CgogICAgICAgIGlmKGs9PTEpCiAgICAgICAgICAgIGNvdXQgPDwgIlllc1xuIiA8PCBzIDw8IGVuZGw7CgogICAgICAgIGlmKGs9PTApICAgIAogICAgICAgICAgICBjb3V0IDw8ICJOb1xuIjsKCiAgICAgICAgaWYoaz4xKSAKICAgICAgICAgICAgY291dCA8PCAiTm9cbiI7CgogICAgICAgIH0KCiAgICB9Cn0K