#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
set<int> g[N];
int h[N], parent[N];
struct triple {
int a, b, c, d;
};
void dfs(int v, int curh) {
h[v] = curh;
for (auto u: g[v]) {
if (u != parent[v]) {
parent[u] = v;
dfs(u, curh + 1);
}
}
}
void get(int idx, int& b, int& c, int& d) {
b = *g[idx].begin();
g[idx].erase(b);
c = *g[idx].begin();
g[idx].erase(c);
d = *g[idx].begin();
g[idx].erase(d);
}
int main() {
//freopen("input.txt", "r", stdin);
ios_base::sync_with_stdio(false);
int cases;
cin >> cases;
while (cases--) {
int n;
cin >> n;
vector<triple> ans;
set<pair<int, int>> s;
for (int i = 1; i <= n; ++i) {
g[i].clear();
parent[i] = 0;
}
for (int i = 1; i <= n - 1; ++i) {
int v, u;
cin >> v >> u;
g[v].insert(u);
g[u].insert(v);
}
dfs(1, 0);
for (int i = 1; i <= n; ++i) {
if (i != 1) {
g[i].erase(parent[i]);
}
}
for (int i = 2; i <= n; ++i) {
s.insert(make_pair(h[i], i));
}
string res = "YES";
while (!s.empty()) {
auto it = s.rbegin();
int v = it->second;
int p = parent[v];
if (p == 1) {
if (g[p].size() % 3 != 0) {
res = "NO";
break;
}
int sz = int(g[1].size());
for (int i = 1; i <= sz / 3; ++i) {
int b, c, d;
get(1, b, c, d);
ans.emplace_back(triple{1, b, c, d});
}
break;
} else {
if (g[p].size() % 3 == 1) {
res = "NO";
break;
}
while (g[p].size() >= 3) {
int b, c, d;
get(p, b, c, d);
g[b].erase(p);
g[c].erase(p);
g[d].erase(p);
ans.emplace_back(triple{p, b, c, d});
s.erase(make_pair(h[b], b));
s.erase(make_pair(h[c], c));
s.erase(make_pair(h[d], d));
}
if (g[p].size() == 2) {
int d = parent[p];
auto it = g[p].begin();
int b = *it;
++it;
int c = *it;
g[p].clear();
g[b].erase(p);
g[c].erase(p);
g[d].erase(p);
ans.emplace_back(triple{p, b, c, d});
s.erase(make_pair(h[p], p));
s.erase(make_pair(h[b], b));
s.erase(make_pair(h[c], c));
g[p].clear();
}
}
}
cout << res << "\n";
if (res == "YES") {
for (size_t j = 0; j < ans.size(); ++j) {
cout << ans[j].a << " " << ans[j].b << " " << ans[j].c << " " << ans[j].d << "\n";
}
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjb25zdCBpbnQgTiA9IDJlNSArIDU7CnNldDxpbnQ+IGdbTl07CmludCBoW05dLCBwYXJlbnRbTl07CiAKIApzdHJ1Y3QgdHJpcGxlIHsKICAgIGludCBhLCBiLCBjLCBkOwp9OwogCiAKdm9pZCBkZnMoaW50IHYsIGludCBjdXJoKSB7CiAgICBoW3ZdID0gY3VyaDsKICAgIGZvciAoYXV0byB1OiBnW3ZdKSB7CiAgICAgICAgaWYgKHUgIT0gcGFyZW50W3ZdKSB7CiAgICAgICAgICAgIHBhcmVudFt1XSA9IHY7CiAgICAgICAgICAgIGRmcyh1LCBjdXJoICsgMSk7CiAgICAgICAgfQogICAgfQp9CiAKdm9pZCBnZXQoaW50IGlkeCwgaW50JiBiLCBpbnQmIGMsIGludCYgZCkgewogICAgYiA9ICpnW2lkeF0uYmVnaW4oKTsKICAgIGdbaWR4XS5lcmFzZShiKTsKICAgIGMgPSAqZ1tpZHhdLmJlZ2luKCk7CiAgICBnW2lkeF0uZXJhc2UoYyk7CiAgICBkID0gKmdbaWR4XS5iZWdpbigpOwogICAgZ1tpZHhdLmVyYXNlKGQpOwp9CiAKaW50IG1haW4oKSB7CiAgICAvL2ZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBpbnQgY2FzZXM7CiAgICBjaW4gPj4gY2FzZXM7CiAgICB3aGlsZSAoY2FzZXMtLSkgewogICAgICAgIGludCBuOwogICAgICAgIGNpbiA+PiBuOwogICAgICAgIHZlY3Rvcjx0cmlwbGU+IGFuczsKICAgICAgICBzZXQ8cGFpcjxpbnQsIGludD4+IHM7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgICAgIGdbaV0uY2xlYXIoKTsKICAgICAgICAgICAgcGFyZW50W2ldID0gMDsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbiAtIDE7ICsraSkgewogICAgICAgICAgICBpbnQgdiwgdTsKICAgICAgICAgICAgY2luID4+IHYgPj4gdTsKICAgICAgICAgICAgZ1t2XS5pbnNlcnQodSk7CiAgICAgICAgICAgIGdbdV0uaW5zZXJ0KHYpOwogICAgICAgIH0KICAgICAgICBkZnMoMSwgMCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgICAgIGlmIChpICE9IDEpIHsKICAgICAgICAgICAgICAgIGdbaV0uZXJhc2UocGFyZW50W2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KIAogCiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgICAgIHMuaW5zZXJ0KG1ha2VfcGFpcihoW2ldLCBpKSk7CiAgICAgICAgfQogICAgICAgIHN0cmluZyByZXMgPSAiWUVTIjsKICAgICAgICB3aGlsZSAoIXMuZW1wdHkoKSkgewogICAgICAgICAgICBhdXRvIGl0ID0gcy5yYmVnaW4oKTsKICAgICAgICAgICAgaW50IHYgPSBpdC0+c2Vjb25kOwogICAgICAgICAgICBpbnQgcCA9IHBhcmVudFt2XTsKICAgICAgICAgICAgaWYgKHAgPT0gMSkgewogICAgICAgICAgICAgICAgaWYgKGdbcF0uc2l6ZSgpICUgMyAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzID0gIk5PIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGludCBzeiA9IGludChnWzFdLnNpemUoKSk7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBzeiAvIDM7ICsraSkgewogICAgICAgICAgICAgICAgICAgIGludCBiLCBjLCBkOwogICAgICAgICAgICAgICAgICAgIGdldCgxLCBiLCBjLCBkKTsKICAgICAgICAgICAgICAgICAgICBhbnMuZW1wbGFjZV9iYWNrKHRyaXBsZXsxLCBiLCBjLCBkfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChnW3BdLnNpemUoKSAlIDMgPT0gMSkgewogICAgICAgICAgICAgICAgICAgIHJlcyA9ICJOTyI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3aGlsZSAoZ1twXS5zaXplKCkgPj0gMykgewogICAgICAgICAgICAgICAgICAgIGludCBiLCBjLCBkOwogICAgICAgICAgICAgICAgICAgIGdldChwLCBiLCBjLCBkKTsKICAgICAgICAgICAgICAgICAgICBnW2JdLmVyYXNlKHApOwogICAgICAgICAgICAgICAgICAgIGdbY10uZXJhc2UocCk7CiAgICAgICAgICAgICAgICAgICAgZ1tkXS5lcmFzZShwKTsKICAgICAgICAgICAgICAgICAgICBhbnMuZW1wbGFjZV9iYWNrKHRyaXBsZXtwLCBiLCBjLCBkfSk7CiAgICAgICAgICAgICAgICAgICAgcy5lcmFzZShtYWtlX3BhaXIoaFtiXSwgYikpOwogICAgICAgICAgICAgICAgICAgIHMuZXJhc2UobWFrZV9wYWlyKGhbY10sIGMpKTsKICAgICAgICAgICAgICAgICAgICBzLmVyYXNlKG1ha2VfcGFpcihoW2RdLCBkKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZ1twXS5zaXplKCkgPT0gMikgewogICAgICAgICAgICAgICAgICAgIGludCBkID0gcGFyZW50W3BdOwogICAgICAgICAgICAgICAgICAgIGF1dG8gaXQgPSBnW3BdLmJlZ2luKCk7CiAgICAgICAgICAgICAgICAgICAgaW50IGIgPSAqaXQ7CiAgICAgICAgICAgICAgICAgICAgKytpdDsKICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICppdDsKICAgICAgICAgICAgICAgICAgICBnW3BdLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgICAgZ1tiXS5lcmFzZShwKTsKICAgICAgICAgICAgICAgICAgICBnW2NdLmVyYXNlKHApOwogICAgICAgICAgICAgICAgICAgIGdbZF0uZXJhc2UocCk7CiAgICAgICAgICAgICAgICAgICAgYW5zLmVtcGxhY2VfYmFjayh0cmlwbGV7cCwgYiwgYywgZH0pOwogICAgICAgICAgICAgICAgICAgIHMuZXJhc2UobWFrZV9wYWlyKGhbcF0sIHApKTsKICAgICAgICAgICAgICAgICAgICBzLmVyYXNlKG1ha2VfcGFpcihoW2JdLCBiKSk7CiAgICAgICAgICAgICAgICAgICAgcy5lcmFzZShtYWtlX3BhaXIoaFtjXSwgYykpOwogICAgICAgICAgICAgICAgICAgIGdbcF0uY2xlYXIoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0IDw8IHJlcyA8PCAiXG4iOwogICAgICAgIGlmIChyZXMgPT0gIllFUyIpIHsKICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBhbnMuc2l6ZSgpOyArK2opIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgYW5zW2pdLmEgPDwgIiAiIDw8IGFuc1tqXS5iIDw8ICIgIiA8PCBhbnNbal0uYyA8PCAiICIgPDwgYW5zW2pdLmQgPDwgIlxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQog