#include<cstdio>
#include<iostream>
using namespace std;
class node
{
public:
node *l;
node *r;
node *f;
int st,en;
__int64 va;
node()
{
l=NULL;r=NULL;va=0;
}
}root;
int p[50010];
__int64 sum;
void fenzu(node *x,int st,int en)
{
int ls,le,rs,re;
node *next;
x->st=st;
x->en=en;
ls=st;
le=(st+en)/2;
rs=le+1;
re=en;
if(st<en)
{
next=new node();
next->f=x;
x->l=next;
fenzu(next,ls,le);
}
if(st<en)
{
next=new node();
next->f=x;
x->r=next;
fenzu(next,rs,re);
}
}
void casum(node *no)
{
int i;
no->va=0;
for(i=no->st;i<=no->en;i++)
{
no->va+=p[i];
}
if(no->l!=NULL)
casum(no->l);
if(no->r!=NULL)
casum(no->r);
}
void add(node *x,int a,int b)
{
if(a>=x->st&&a<=x->en)
{
x->va+=b;
if(x->l!=NULL)
{
add(x->l,a,b);
}
if(x->r!=NULL)
{
add(x->r,a,b);
}
}
}
void cacount(node *x,int a,int b)
{
if(x->st>=a&&x->en<=b)
{
sum+=x->va;
}
else
{
if(a<=x->en&&b>=x->st)
{
cacount(x->l,a,b);
cacount(x->r,a,b);
}
}
}
main()
{
int t,n,i,j,k;
int a,b;
char ev[6];
scanf("%d",&t);
for(k=1;k<=t;k++)
{
printf("Case %d:\n",k);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&p[i]);
}
root.l=NULL;
root.r=NULL;
fenzu(&root,1,n);
casum(&root);
while(scanf("%s",ev)&&ev[0]!='E')
{
if(ev[0]=='A')
{
scanf("%d%d",&a,&b);
add(&root,a,b);
}
else
{
if(ev[0]=='S')
{
scanf("%d%d",&a,&b);
b=-b;
add(&root,a,b);
}
else
{
if(ev[0]=='Q')
{
scanf("%d%d",&a,&b);
sum=0;
cacount(&root,a,b);
printf("%I64d\n",sum);
}
}
}
}
}
}