#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv)
{
freopen("string.in","r",stdin);
freopen("string.out","w",stdout);
int t;
cin>>t;
for (int i=0;i<t;i++)
{
string s;
cin>>s;
if (s.length()<=1000)
{
long long ans=0;
int lis[3][26];
for (int j=0;j<26;j++)
{
lis[0][j]=0;
lis[1][j]=0;
lis[2][j]=0;
}
for (int j=0;j<s.length();j++)
lis[0][s[j]-'a']+=1;
for (int j=0;j<s.length()-2;j++)
{
memset(lis[1],0,sizeof(lis[1]));
char a[j+1];
for (int k=0;k<=j;k++)
{
a[k]=s[k];
lis[1][a[k]-'a']+=1;
}
for (int k=j+1;k<s.length()-1;k++)
{
memset(lis[2],0,sizeof(lis[2]));
char b[k-j];
for (int m=0;m<=k-j-1;m++)
{
b[m]=s[j+m+1];
lis[2][b[m]-'a']+=1;
}
int na1=0,nc1=0;
for (int q=0;q<26;q++)
{
if (lis[1][q]%2==1)
na1+=1;
if ((lis[0][q]-lis[1][q]-lis[2][q])%2==1)
nc1+=1;
}
if (na1<=nc1)
{
ans+=1;
}
int n=(s.length()-1)/(k+1);
for (int m=1;m<n;m++)
{
int flag=0;
for (int p=0;p<=k;p++)
{
if (s[p]!=s[p+m*(k+1)])
{
flag=1;
break;
}
}
if (flag==1)
break;
int na=0,nc=0;
for (int q=0;q<26;q++)
{
if (lis[1][q]%2==1)
na+=1;
if ((lis[0][q]-(m+1)*(lis[1][q]+lis[2][q]))%2==1)
nc+=1;
}
if (na<=nc)
{
ans+=1;
}
}
}
}
cout<<ans<<"\n";
}
else
{
int ans=0;
if (s.length()%2==1)
{
for (int i=2;i<=s.length()-3;i+=2)
ans+=i;
for (int i=1;i<=(s.length()-3)/2+1;i++)
ans+=1;
}
if (s.length()%2==0)
{
for (int i=1;i<=s.length()-3;i+=2)
ans+=i;
for (int i=1;i<=(s.length()-4)/2+1;i++)
ans+=1;
}
cout<<ans<<"\n";
}
}
return 0;
}