#include <bits/stdc++.h>
using namespace std;
vector<int> e[333333], o[333333], q[333333];
long long f[2222222];
const int T = 1048576;
void C(int l, int x) {
  for (l += T; l; l >>= 1) f[l] += x;
}
long long Q(int l, int r) {
  long long d = 0;
  for (l += T - 1, r += T + 1; l ^ r ^ 1; l >>= 1, r >>= 1)
    l& 1 ?: d += f[l ^ 1], ~r& 1 ?: d += f[r ^ 1];
  return d;
}
long long res[333333];
void dfs(int u, int dep = 0, int pa = 0) {
  ++dep;
  for (vector<int>::iterator d = o[u].begin(), x = q[u].begin();
       d != o[u].end(); ++d, ++x)
    C(dep + *d, *x);
  res[u] = Q(dep, 999999);
  for (vector<int>::iterator i = e[u].begin(); i != e[u].end(); ++i)
    if (*i != pa) dfs(*i, dep, u);
  for (vector<int>::iterator d = o[u].begin(), x = q[u].begin();
       d != o[u].end(); ++d, ++x)
    C(dep + *d, -*x);
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) {
    int u, v;
    scanf("%d%d", &u, &v);
    e[u].push_back(v);
    e[v].push_back(u);
  }
  int m;
  scanf("%d", &m);
  for (int i = 1; i <= m; ++i) {
    int v, d, x;
    scanf("%d%d%d", &v, &d, &x);
    if (d > 333333) d = 333333;
    o[v].push_back(d);
    q[v].push_back(x);
  }
  dfs(1);
  for (int i = 1; i <= n; ++i) cout << res[i] << ' ';
  return 0;
}
