#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
typedef long long ll;
#define PB push_back
const ll M = 2e5+7;
vector<vector<ll> > edg(M), levelOrder(M), BIT(M);
ll val[M], llime[M], outTime[M], nodeLevel[M];
bool visited[M];
ll bitSum(vector<ll> &arr, ll pos){
ll sum = 0;
while(pos>0){
sum += arr[pos];
pos -= (pos & (-pos));
}
return sum;
}
void bitUpdate(vector<ll> &arr, ll pos, ll val){
while(pos<(ll)arr.size()){
arr[pos] += val;
pos += (pos & (-pos));
}
}
bool compllime(ll node1, ll node2){
return llime[node1]<llime[node2];
}
bool compOutTime(ll node1, ll node2){
return outTime[node1]<outTime[node2];
}
ll dfs(ll node, ll level, ll time){
visited[node] = true;
nodeLevel[node] = level;
levelOrder[level].PB(node);
llime[node] = time;
for (auto x : edg[node]){
if (visited[x])
continue;
time = dfs(x, level+1, time+1);
}
return outTime[node] = time + 1;
}
int main(){
fast;
ll n,a,b;
cin>>n;
for (ll i = 1; i < n; i++){
cin>>a>>b;
edg[a].PB(b);
edg[b].PB(a);
}
for (ll i = 1; i <= n; i++)
cin>>val[i];
dfs(1,0,0);
for (ll i = 0; ; i++){
if (levelOrder[i].size() == 0)
break;
sort(levelOrder[i].begin(), levelOrder[i].end(), compllime);
BIT[i].resize(levelOrder[i].size() + 1);
for (ll j = 0; j<(ll)levelOrder[i].size(); j++){
bitUpdate(BIT[i], j+1, val[levelOrder[i][j]] );
}
}
ll q;
cin>>q;
while(q--){
ll t, x, y;
cin>>t>>x>>y;
if (t == 1){
ll pos = lower_bound(levelOrder[nodeLevel[x]].begin(), levelOrder[nodeLevel[x]].end(), x, compllime) - levelOrder[nodeLevel[x]].begin();
bitUpdate(BIT[nodeLevel[x]], pos+1, -val[x]);
val[x] = y;
bitUpdate(BIT[nodeLevel[x]], pos+1, val[x]);
}
else{
a = lower_bound(levelOrder[nodeLevel[x]+y].begin(), levelOrder[nodeLevel[x]+y].end(), x, compllime) - levelOrder[nodeLevel[x]+y].begin();
b = upper_bound(levelOrder[nodeLevel[x]+y].begin(), levelOrder[nodeLevel[x]+y].end(), x, compOutTime) - levelOrder[nodeLevel[x]+y].begin() - 1;
ll ans = bitSum(BIT[nodeLevel[x]+y], b+1) - bitSum(BIT[nodeLevel[x]+y], a);
cout<<ans<<"\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdCBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKI2RlZmluZSBQQiBwdXNoX2JhY2sKY29uc3QgbGwgTSA9IDJlNSs3OwoKdmVjdG9yPHZlY3RvcjxsbD4gPiBlZGcoTSksIGxldmVsT3JkZXIoTSksIEJJVChNKTsKbGwgdmFsW01dLCBsbGltZVtNXSwgb3V0VGltZVtNXSwgbm9kZUxldmVsW01dOwpib29sIHZpc2l0ZWRbTV07CgpsbCBiaXRTdW0odmVjdG9yPGxsPiAmYXJyLCBsbCBwb3MpewogICAgbGwgc3VtID0gMDsKICAgIHdoaWxlKHBvcz4wKXsKICAgICAgICBzdW0gKz0gYXJyW3Bvc107CiAgICAgICAgcG9zIC09IChwb3MgJiAoLXBvcykpOwogICAgfQogICAgcmV0dXJuIHN1bTsKfQoKdm9pZCBiaXRVcGRhdGUodmVjdG9yPGxsPiAmYXJyLCBsbCBwb3MsIGxsIHZhbCl7CiAgICB3aGlsZShwb3M8KGxsKWFyci5zaXplKCkpewogICAgICAgIGFycltwb3NdICs9IHZhbDsKICAgICAgICBwb3MgKz0gKHBvcyAmICgtcG9zKSk7CiAgICB9Cn0KCmJvb2wgY29tcGxsaW1lKGxsIG5vZGUxLCBsbCBub2RlMil7CiAgICByZXR1cm4gbGxpbWVbbm9kZTFdPGxsaW1lW25vZGUyXTsKfQoKYm9vbCBjb21wT3V0VGltZShsbCBub2RlMSwgbGwgbm9kZTIpewogICAgcmV0dXJuIG91dFRpbWVbbm9kZTFdPG91dFRpbWVbbm9kZTJdOwp9CgpsbCBkZnMobGwgbm9kZSwgbGwgbGV2ZWwsIGxsIHRpbWUpewoKICAgIHZpc2l0ZWRbbm9kZV0gPSB0cnVlOwogICAgbm9kZUxldmVsW25vZGVdID0gbGV2ZWw7CiAgICBsZXZlbE9yZGVyW2xldmVsXS5QQihub2RlKTsKICAgIGxsaW1lW25vZGVdID0gdGltZTsKCiAgICBmb3IgKGF1dG8geCA6IGVkZ1tub2RlXSl7CiAgICAgICAgaWYgKHZpc2l0ZWRbeF0pCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIHRpbWUgPSBkZnMoeCwgbGV2ZWwrMSwgdGltZSsxKTsKICAgIH0KICAgIHJldHVybiBvdXRUaW1lW25vZGVdID0gdGltZSArIDE7Cn0KCmludCBtYWluKCl7CiAgICBmYXN0OwogICAgbGwgbixhLGI7CiAgICBjaW4+Pm47CiAgICBmb3IgKGxsIGkgPSAxOyBpIDwgbjsgaSsrKXsKICAgICAgICBjaW4+PmE+PmI7CiAgICAgICAgZWRnW2FdLlBCKGIpOwogICAgICAgIGVkZ1tiXS5QQihhKTsKICAgIH0KICAgIGZvciAobGwgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGNpbj4+dmFsW2ldOwogICAgZGZzKDEsMCwwKTsKCiAgICBmb3IgKGxsIGkgPSAwOyA7IGkrKyl7CiAgICAgICAgaWYgKGxldmVsT3JkZXJbaV0uc2l6ZSgpID09IDApCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIHNvcnQobGV2ZWxPcmRlcltpXS5iZWdpbigpLCBsZXZlbE9yZGVyW2ldLmVuZCgpLCBjb21wbGxpbWUpOwogICAgICAgIEJJVFtpXS5yZXNpemUobGV2ZWxPcmRlcltpXS5zaXplKCkgKyAxKTsKICAgICAgICBmb3IgKGxsIGogPSAwOyBqPChsbClsZXZlbE9yZGVyW2ldLnNpemUoKTsgaisrKXsKICAgICAgICAgICAgYml0VXBkYXRlKEJJVFtpXSwgaisxLCB2YWxbbGV2ZWxPcmRlcltpXVtqXV0gKTsKICAgICAgICB9CiAgICB9CiAgICBsbCBxOyAKICAgIGNpbj4+cTsgCiAgICB3aGlsZShxLS0pewogICAgICAgIGxsIHQsIHgsIHk7CiAgICAgICAgY2luPj50Pj54Pj55OwogICAgICAgIGlmICh0ID09IDEpewogICAgICAgICAgICBsbCBwb3MgPSBsb3dlcl9ib3VuZChsZXZlbE9yZGVyW25vZGVMZXZlbFt4XV0uYmVnaW4oKSwgbGV2ZWxPcmRlcltub2RlTGV2ZWxbeF1dLmVuZCgpLCB4LCBjb21wbGxpbWUpIC0gbGV2ZWxPcmRlcltub2RlTGV2ZWxbeF1dLmJlZ2luKCk7CiAgICAgICAgICAgIGJpdFVwZGF0ZShCSVRbbm9kZUxldmVsW3hdXSwgcG9zKzEsIC12YWxbeF0pOwogICAgICAgICAgICB2YWxbeF0gPSB5OwogICAgICAgICAgICBiaXRVcGRhdGUoQklUW25vZGVMZXZlbFt4XV0sIHBvcysxLCB2YWxbeF0pOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBhID0gbG93ZXJfYm91bmQobGV2ZWxPcmRlcltub2RlTGV2ZWxbeF0reV0uYmVnaW4oKSwgbGV2ZWxPcmRlcltub2RlTGV2ZWxbeF0reV0uZW5kKCksIHgsIGNvbXBsbGltZSkgLSBsZXZlbE9yZGVyW25vZGVMZXZlbFt4XSt5XS5iZWdpbigpOwogICAgICAgICAgICBiID0gdXBwZXJfYm91bmQobGV2ZWxPcmRlcltub2RlTGV2ZWxbeF0reV0uYmVnaW4oKSwgbGV2ZWxPcmRlcltub2RlTGV2ZWxbeF0reV0uZW5kKCksIHgsIGNvbXBPdXRUaW1lKSAtIGxldmVsT3JkZXJbbm9kZUxldmVsW3hdK3ldLmJlZ2luKCkgLSAxOwogICAgICAgICAgICBsbCBhbnMgPSBiaXRTdW0oQklUW25vZGVMZXZlbFt4XSt5XSwgYisxKSAtIGJpdFN1bShCSVRbbm9kZUxldmVsW3hdK3ldLCBhKTsKICAgICAgICAgICAgY291dDw8YW5zPDwiXG4iOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9