#include<cstdio>
#define fo(x,a,b) for(int x=(a),e_=(b);x<=e_;x++)
#define fd(x,a,b) for(int x=(a),e_=(b);x>=e_;x--)
#define ww printf

typedef long long ll;
const int N=200005;
int go[N],a[N],n,zm;

void In(int& a){
	a=0;char c=getchar();for(;c<48||c>57;c=getchar());
	for(;c>47&&c<58;c=getchar()) a=(a<<1)+(a<<3)+c-48;
}
int get(int x){
	return go[x]==x ? x : (go[x]=get(go[x]));
}
int main(){
	In(zm);
	while(zm--) {
		In(n);
		fo(i,1,n) In(a[i]), go[i]=i;
		fo(i,1,n) {
			for(int t=get(i); t>=i-a[i]+1 && t>0; t=get(t)) {
				go[t]=get(t-1);
			}
		}
		fo(i,1,n) printf("%d ",get(i)!=i);puts("");
	}
	return 0;
}
