#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e6 + 10;
const int sz = 26;
char str[maxn];
int interval[maxn];
struct AC {
struct Node {
int val, next[sz], fail;
}node[maxn];
int mem;
int l, r, que[maxn];
void init() {
mem = 1;
node[0].val = 0, node[0].fail = -1;
memset(node[0].next, -1, sizeof(node[0].next));
}
inline int idx(char c) {
if ('a' <= c && c <= 'z') return c - 'a';
else if ('A' <= c && c <= 'Z') return c - 'A';
else return -1;
}
void Insert(char *p) {
int len = strlen(p);
int now = 0;
for (int i = 0; i < len; i++) {
int x = idx(p[i]);
if (node[now].next[x] == -1) {
node[now].next[x] = mem++;
node[mem-1].val = 0, node[mem-1].fail = -1;
memset(node[mem-1].next, -1, sizeof(node[mem-1].next));
}
now = node[now].next[x];
}
node[now].val = len;
}
void Getfail() {
l = 1, r = 0;
for (int i = 0; i < sz; i++) {
int v = node[0].next[i];
if (v == -1) continue;
node[v].fail = 0;
que[++r] = v;
}
while (l <= r) {
int u = que[l++];
for (int i = 0; i < sz; i++) {
int v = node[u].next[i];
if (v == -1) continue;
int temp = node[u].fail;
while (temp != -1 && node[temp].next[i] == -1) temp = node[temp].fail;
if (temp == -1) node[v].fail = 0;
else node[v].fail = node[temp].next[i];
que[++r] = v;
}
}
}
void Search(char *t) {
int len = strlen(t);
for (int i = 0; i < len; i++) interval[i] = 0;
int now = 0;
for (int i = 0; i < len; i++) {
int x = idx(t[i]);
if (x == -1) { now = 0; continue; }
if (node[now].next[x] != -1) now = node[now].next[x];
else {
int temp = node[now].fail;
while (temp != -1 && node[temp].next[x] == -1) temp = node[temp].fail;
if (temp == -1) now = 0;
else now = node[temp].next[x];
}
int temp = now;
while (temp != -1) {
if (node[temp].val) {
interval[i-node[temp].val+1]++;
interval[i+1]--;
}
temp = node[temp].fail;
}
}
int cover = 0;
for (int i = 0; i < len; i++) {
cover += interval[i];
if (cover) putchar('*');
else putchar(t[i]);
}
puts("");
}
}ac;
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n;
scanf("%d", &n); getchar();
ac.init();
for (int i = 0; i < n; i++) {
gets(str);
ac.Insert(str);
}
ac.Getfail();
gets(str);
ac.Search(str);
}
return 0;
}