#include <iostream>
#include <vector>
#include <unordered_set>
#include <array>
#define MAXn 40
using namespace std;
bool isk(int k,int n,vector<int> &a,array<array<unordered_set<int>,MAXn>,MAXn> &avvals,array<int,MAXn> &pref)
{
bool res=true;
for(int i=0;i<n-k;i++)
{
swap(avvals[i][i+k],avvals[i+1][i+k]);
unordered_set<int> nval;//uj ertekek
int target=pref[i+k+1]-pref[i];
target/=2;
nval.insert(a[i]);
bool found=false;
for(int x:avvals[i][i+k]){nval.insert(x+a[i]);found|=(x==target);};
for(int x:nval){avvals[i][i+k].insert(x);found|=(x==target);};
if((pref[i+k+1]-pref[i])%2)found=false;
res &= found;
}
return res;
}
void solve()
{
int n;cin>>n;
vector<int> a(n);
for(int &x:a)cin>>x;
cerr<<"input";
array<array<unordered_set<int>,MAXn>,MAXn> avvals;
array<int,MAXn> pref;
pref[0]=0;
cerr<<"init";
for(int i=1;i<=n;i++)pref[i]=pref[i-1]+a[i-1];
vector<int> ans;
for(int i=0;i<n;i++)
{
if(isk(i,n,a,avvals,pref))ans.push_back(i);
}
cout<<ans.size();
for(int x:ans)cout<<" "<<x+1;
cout<<"\n";
}
int main()
{
int t;cin>>t;
while(t--)solve();
return 0;
}