T = int(input()) for _ in range(T): N = int(input()) ans = [0] * N board = [0] * N seen = [False] * N while not all(ans): print('?' ,*board[1:]) rev = list(map(int,input().split())) memo = set() last = [-1] * (N+1) for i in range(len(rev)): if seen[i]: continue if rev[i] in memo: board[i] = board[last[rev[i]]] ^ 1 continue memo.add(rev[i]) last[rev[i]] = i seen[i] = True ans[i] = rev[i] print('!',*ans)