#include <bits/stdc++.h>
using namespace std;
#define inf (1<<30)
#define INF (int)1e9
#define EPS 1e-9
#define PI 3.1415926535897932384626433832795
#define MOD 1000000007
#define MAX 1000000
//#define write(x) freopen(x,"w",stdout);
//#define read(x) freopen(x,"r",stdin);
#define D(x) cerr << #x " = " << (x) <<endl;
inline int setBit(int N, int pos) { return N = N | (1<<pos);}
inline int resetBit(int N, int pos) { return N = N & ~(1<<pos);}
inline bool checkBit(int N, int pos) { return (bool) (N & ( 1<<pos));}
//setbase - cout << setbase (16); cout << 100 << endl; Prints 64
//setfill - cout << setfill ('x') << setw (5); cout << 77 << endl; prints xxx77
//setprecision - cout << setprecision (4) << f << endl; Prints x.xxxx
//int fx[] = {+0, +0, +1, -1, -1, +1, -1, +1};
//int fy[] = {-1, +1, +0, +0, +1, +1, -1, -1};
typedef long long ll;
typedef unsigned long long ui64;
typedef string st;
typedef long long int lli;
typedef vector<int> vi;
typedef vector<st> vs;
typedef map<int,int> mii;
typedef map<st,int> msi;
typedef set<int> si;
typedef set<st> ss;
typedef pair<int,int> pii;
typedef vector<pii> vpii;
typedef vector<ll> vll;
ll tree[1030][1030];
int N;
void updatey(int x,int y,lli val){
while(y<=N){
tree[x][y]+=val;
y+=(y & (-y));
}
}
void update(int x,int y,lli val){
while(x<=N){
updatey(x,y,val);
x+=(x & (-x));
}
}
lli ready(int x,int y){
lli sum=0;
while(y>0){
sum+=tree[x][y];
y-=(y & (-y));
}
return sum;
}
lli read(int x,int y){
lli sum=0;
while(x>0){
sum+=ready(x,y);
x-=(x & (-x));
}
return sum;
}
int main() {
// ios_base::sync_with_stdio(false);
//cin.tie(NULL);
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&N);
memset(tree,0,sizeof(tree));
char str[5];
while(1){
// cout<<1<<endl;
scanf("%s",str);
if(strcmp(str,"SET")==0){
int x,y;
lli val;
scanf("%d %d %lld",&x,&y,&val);
//changes here
int a1=read(x+1,y+1)- read(x,y+1)-read(x+1,y)+read(x,y);
//int a1=read(x+1,y+1)-read(x,y);
update(x+1,y+1,-a1);
update(x+1,y+1,val);
}
else if(strcmp(str,"SUM")==0){
int x1,y1,x2,y2;
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
//changes here
lli ans=read(x2+1,y2+1)+read(x1,y1)-read(x1,y2+1)-read(x2+1,y1);
printf("%lld\n",ans);
}
else if(strcmp(str,"END")==0)
break;
}
printf("\n");
}
//cout<<"Execution time : "<<tick();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBpbmYgKDE8PDMwKQojZGVmaW5lIElORiAoaW50KTFlOQojZGVmaW5lIEVQUyAxZS05CiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBNQVggMTAwMDAwMAogCi8vI2RlZmluZSB3cml0ZSh4KSBmcmVvcGVuKHgsInciLHN0ZG91dCk7Ci8vI2RlZmluZSByZWFkKHgpIGZyZW9wZW4oeCwiciIsc3RkaW4pOwojZGVmaW5lIEQoeCkgICAgICAgIGNlcnIgPDwgI3ggIiA9ICIgPDwgKHgpIDw8ZW5kbDsKIAppbmxpbmUgaW50IHNldEJpdChpbnQgTiwgaW50IHBvcykgeyByZXR1cm4gTiA9IE4gfCAoMTw8cG9zKTt9CmlubGluZSBpbnQgcmVzZXRCaXQoaW50IE4sIGludCBwb3MpIHsgcmV0dXJuIE4gPSBOICYgfigxPDxwb3MpO30KaW5saW5lIGJvb2wgY2hlY2tCaXQoaW50IE4sIGludCBwb3MpIHsgcmV0dXJuIChib29sKSAoTiAmICggMTw8cG9zKSk7fQovL3NldGJhc2UgLSBjb3V0IDw8IHNldGJhc2UgKDE2KTsgY291dCA8PCAxMDAgPDwgZW5kbDsgUHJpbnRzIDY0Ci8vc2V0ZmlsbCAtICAgY291dCA8PCBzZXRmaWxsICgneCcpIDw8IHNldHcgKDUpOyBjb3V0IDw8IDc3IDw8IGVuZGw7IHByaW50cyB4eHg3NwovL3NldHByZWNpc2lvbiAtIGNvdXQgPDwgc2V0cHJlY2lzaW9uICg0KSA8PCBmIDw8IGVuZGw7IFByaW50cyB4Lnh4eHgKIAovL2ludCBmeFtdID0geyswLCArMCwgKzEsIC0xLCAtMSwgKzEsIC0xLCArMX07Ci8vaW50IGZ5W10gPSB7LTEsICsxLCArMCwgKzAsICsxLCArMSwgLTEsIC0xfTsKIAp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWk2NDsKdHlwZWRlZiBzdHJpbmcgc3Q7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbGk7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPHN0PiB2czsKdHlwZWRlZiBtYXA8aW50LGludD4gbWlpOwp0eXBlZGVmIG1hcDxzdCxpbnQ+IG1zaTsKdHlwZWRlZiBzZXQ8aW50PiBzaTsKdHlwZWRlZiBzZXQ8c3Q+IHNzOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwp0eXBlZGVmIHZlY3RvcjxwaWk+IHZwaWk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bGw7CmxsIHRyZWVbMTAzMF1bMTAzMF07CmludCBOOwp2b2lkIHVwZGF0ZXkoaW50IHgsaW50IHksbGxpIHZhbCl7CiAgICAgIHdoaWxlKHk8PU4pewogICAgICAgICAgICB0cmVlW3hdW3ldKz12YWw7CiAgICAgICAgICAgIHkrPSh5ICYgKC15KSk7CiAgICAgIH0KfQp2b2lkIHVwZGF0ZShpbnQgeCxpbnQgeSxsbGkgdmFsKXsKICAgICAgd2hpbGUoeDw9Til7CiAgICAgICAgICAgIHVwZGF0ZXkoeCx5LHZhbCk7CiAgICAgICAgICAgIHgrPSh4ICYgKC14KSk7CiAgICAgIH0KfQpsbGkgcmVhZHkoaW50IHgsaW50IHkpewogICAgICBsbGkgc3VtPTA7CiAgICAgIHdoaWxlKHk+MCl7CiAgICAgICAgICAgIHN1bSs9dHJlZVt4XVt5XTsKICAgICAgICAgICAgeS09KHkgJiAoLXkpKTsKICAgICAgfQogICAgICByZXR1cm4gc3VtOwp9CmxsaSByZWFkKGludCB4LGludCB5KXsKICAgICAgbGxpIHN1bT0wOwogICAgICB3aGlsZSh4PjApewogICAgICAgICAgICBzdW0rPXJlYWR5KHgseSk7CiAgICAgICAgICAgIHgtPSh4ICYgKC14KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHN1bTsKfQppbnQgbWFpbigpIHsKICAgICAvLyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgICAgLy9jaW4udGllKE5VTEwpOwogICAgICBpbnQgdDsKICAgICAgc2NhbmYoIiVkIiwmdCk7CiAgICAgIHdoaWxlKHQtLSl7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsJk4pOwogICAgICAgICAgICBtZW1zZXQodHJlZSwwLHNpemVvZih0cmVlKSk7CiAgICAgICAgICAgIGNoYXIgc3RyWzVdOwogICAgICAgICAgICB3aGlsZSgxKXsKICAgICAgICAgICAgICAvLyAgY291dDw8MTw8ZW5kbDsKICAgICAgICAgICAgICAgIHNjYW5mKCIlcyIsc3RyKTsKICAgICAgICAgICAgICAgIGlmKHN0cmNtcChzdHIsIlNFVCIpPT0wKXsKICAgICAgICAgICAgICAgICAgICAgIGludCB4LHk7CiAgICAgICAgICAgICAgICAgICAgICBsbGkgdmFsOwogICAgICAgICAgICAgICAgICAgICAgc2NhbmYoIiVkICVkICVsbGQiLCZ4LCZ5LCZ2YWwpOwogICAgICAgICAgICAgICAgICAgICAgLy9jaGFuZ2VzIGhlcmUKICAgICAgICAgICAgICAgICAgICAgIGludCBhMT1yZWFkKHgrMSx5KzEpLSByZWFkKHgseSsxKS1yZWFkKHgrMSx5KStyZWFkKHgseSk7CiAgICAgICAgICAgICAgICAgICAgICAvL2ludCBhMT1yZWFkKHgrMSx5KzEpLXJlYWQoeCx5KTsKICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSh4KzEseSsxLC1hMSk7CiAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUoeCsxLHkrMSx2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihzdHJjbXAoc3RyLCJTVU0iKT09MCl7CiAgICAgICAgICAgICAgICAgICAgICBpbnQgeDEseTEseDIseTI7CiAgICAgICAgICAgICAgICAgICAgICBzY2FuZigiJWQgJWQgJWQgJWQiLCZ4MSwmeTEsJngyLCZ5Mik7CiAgICAgICAgICAgICAgICAgICAgICAvL2NoYW5nZXMgaGVyZQogICAgICAgICAgICAgICAgICAgICAgbGxpIGFucz1yZWFkKHgyKzEseTIrMSkrcmVhZCh4MSx5MSktcmVhZCh4MSx5MisxKS1yZWFkKHgyKzEseTEpOwogICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlbGxkXG4iLGFucyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKHN0cmNtcChzdHIsIkVORCIpPT0wKQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgfQoJLy9jb3V0PDwiRXhlY3V0aW9uIHRpbWUgOiAiPDx0aWNrKCk7CiAgICAgIHJldHVybiAwOwp9