#include <bits/stdc++.h>
#include <iomanip>
#include<iterator>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<long long, null_type, less_equal<long long>, rb_tree_tag, tree_order_statistics_node_update>
using namespace std;
#define ll long long
#define pb push_back
#define all(a) a.begin(),a.end()
#define death ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define sz(x) ((int)(x).size())
#define el "\n"
#define basmala freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
#define int ll
/****************************************************************************/
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
int di[] = {1, 1, 1, 0, 0, -1, -1, -1};
int dj[] = {1, 0, -1, 1, -1, 1, 0, -1};
ll mod=998244353;
const int N=1e5+4;
vector<pair<int,int>>adj[N];
int dist1[N],dist2[N];
/****************************************************************************/
void bfs(int node, int d[]){
queue<int>q;
q.push(node);
fill(d, d + N, -1);
d[node]=0;
while(sz(q)){
int curr=q.front();
q.pop();
for(auto [v,w]:adj[curr]){
if(d[v]==-1){
d[v]=d[curr]+w;
q.push(v);
}
}
}
}
/****************************************************************************/
void neverland(){
int n; cin>>n;
for(int i=0;i<n;i++)
adj[i].clear();
int m=n-1;
while(m--){
int a,b,c; cin>>a>>b>>c;
adj[a].emplace_back(b,c);
adj[b].emplace_back(a,c);
}
bfs(1,dist1);
int far = max_element(dist1+1,dist1+n+1)-dist1;
bfs(far,dist1);
int far2 = max_element(dist1+1,dist1+n+1)-dist1;
bfs(far2,dist2);
for(int i=1;i<=n;i++)
cout<<max(dist1[i],dist2[i])<<" ";
cout<<el;
}
signed main() {
// basmala;
death;
int t=1; cin>>t;
while(t--) neverland();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZTxpdGVyYXRvcj4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiNkZWZpbmUgb3JkZXJlZF9zZXQgdHJlZTxsb25nIGxvbmcsIG51bGxfdHlwZSwgbGVzc19lcXVhbDxsb25nIGxvbmc+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbChhKSAgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBkZWF0aCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgc3ooeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBlbCAiXG4iCiNkZWZpbmUgYmFzbWFsYSBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKSxmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZGVmaW5lIGludCBsbAovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KaW50IGR4W10gPSB7MCwgIDAsIDEsIC0xfTsKaW50IGR5W10gPSB7MSwgLTEsIDAsICAwfTsKaW50IGRpW10gPSB7MSwgMSwgMSwgMCwgMCwgLTEsIC0xLCAtMX07CmludCBkaltdID0gezEsIDAsIC0xLCAxLCAtMSwgMSwgMCwgLTF9OwpsbCBtb2Q9OTk4MjQ0MzUzOwpjb25zdCBpbnQgTj0xZTUrNDsKdmVjdG9yPHBhaXI8aW50LGludD4+YWRqW05dOwppbnQgZGlzdDFbTl0sZGlzdDJbTl07Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp2b2lkIGJmcyhpbnQgbm9kZSwgaW50IGRbXSl7CiAgICBxdWV1ZTxpbnQ+cTsKICAgIHEucHVzaChub2RlKTsKICAgIGZpbGwoZCwgZCArIE4sIC0xKTsKICAgIGRbbm9kZV09MDsKICAgIHdoaWxlKHN6KHEpKXsKICAgICAgICBpbnQgY3Vycj1xLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBmb3IoYXV0byBbdix3XTphZGpbY3Vycl0pewogICAgICAgICAgICBpZihkW3ZdPT0tMSl7CiAgICAgICAgICAgICAgICBkW3ZdPWRbY3Vycl0rdzsKICAgICAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8Kdm9pZCBuZXZlcmxhbmQoKXsKICAgIGludCBuOyBjaW4+Pm47CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIGFkaltpXS5jbGVhcigpOwogICAgaW50IG09bi0xOwogICAgd2hpbGUobS0tKXsKICAgICAgICBpbnQgYSxiLGM7IGNpbj4+YT4+Yj4+YzsKICAgICAgICBhZGpbYV0uZW1wbGFjZV9iYWNrKGIsYyk7CiAgICAgICAgYWRqW2JdLmVtcGxhY2VfYmFjayhhLGMpOwogICAgfQogICAgYmZzKDEsZGlzdDEpOwogICAgaW50IGZhciA9IG1heF9lbGVtZW50KGRpc3QxKzEsZGlzdDErbisxKS1kaXN0MTsKICAgIGJmcyhmYXIsZGlzdDEpOwogICAgaW50IGZhcjIgPSBtYXhfZWxlbWVudChkaXN0MSsxLGRpc3QxK24rMSktZGlzdDE7CiAgICBiZnMoZmFyMixkaXN0Mik7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICAgICBjb3V0PDxtYXgoZGlzdDFbaV0sZGlzdDJbaV0pPDwiICI7CiAgICBjb3V0PDxlbDsKfQpzaWduZWQgbWFpbigpIHsKICAgIC8vIGJhc21hbGE7CiAgICBkZWF0aDsKICAgIGludCB0PTE7IGNpbj4+dDsKICAgIHdoaWxlKHQtLSkgbmV2ZXJsYW5kKCk7Cn0=