#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T, typename R> using o_map = tree<T, R, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long ll;
#define inf 1e9
#define MOD 1000000007
#define vint vector<int>
#define vll vector<ll>
#define no cout << "NO" << endl;
void solve() {
ll n ; cin >> n ;
vector < ll > a(n);
map < ll , ll>freq , mp ;
map < ll , bool > visfreq , vismp ;
for (int i = 0 ; i < n ; i ++ ) {
cin >> a[i] ;
freq[a[i]] ++ ;
visfreq[a[i]] = 1 ;
}
bool test = false ;
for (auto e : freq ) {
if (e.second > 1 ) {
mp[e.first] = e.second -1 ;
freq[e.first] = 1 ;
vismp[e.first] = 1 ;
}
}
ll ans = 0 ;
for (int i = 0 ; i<= n; i ++ ){
if (i == 0 ) {
ll x = 0 ;
if (visfreq[i])x ++ ;
if (vismp[i])x+= mp[i] ;
cout << ans + x <<" ";
continue ;
}
if (test ) {
cout <<-1 << " " ; continue ;
}
if (visfreq[i-1] ) {
ll x = 0 ;
if (visfreq[i])x ++ ;
if (vismp[i])x+= mp[i] ;
cout << ans + x <<" ";
continue ;
}
auto it1 = mp.upper_bound(i-1) ;
if (it1 == mp . begin() || mp.empty()) {
test = true ;
cout << -1 <<" " ; continue ;
}
auto it = prev(it1) ;
ll element = (*it).first ;
ans+=(i - element -1 );
mp[element]-- ;
visfreq[i-1] = 1 ;
if (!mp[element]) {
// cout << element <<"hhh";
mp.erase(element) ; vismp[element] = 0 ;
}
ll x = 0 ;
if (visfreq[i])x ++ ;
if (vismp[i])x+= vismp[i] ;
cout << ans + x <<" ";
}
cout << endl ;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1 ;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1c2luZyBvX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFI+IHVzaW5nIG9fbWFwID0gdHJlZTxULCBSLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lIGluZiAxZTkKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHZpbnQgdmVjdG9yPGludD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgojZGVmaW5lIG5vIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIG4gOyBjaW4gPj4gbiA7CiAgICB2ZWN0b3IgPCBsbCA+IGEobik7CiAgICBtYXAgPCBsbCAsIGxsPmZyZXEgICwgbXAgOwogICAgbWFwIDwgbGwgLCBib29sICA+IHZpc2ZyZXEgLCB2aXNtcCA7CiAgICBmb3IgKGludCAgaSA9IDAgOyBpIDwgIG4gOyBpICsrICkgewogICAgICAgIGNpbiA+PiBhW2ldIDsKICAgICAgICBmcmVxW2FbaV1dICsrIDsKICAgICAgICB2aXNmcmVxW2FbaV1dID0gMSA7CiAgICB9CiAgICBib29sIHRlc3QgPSBmYWxzZSA7CiAgICBmb3IgKGF1dG8gZSA6ICBmcmVxICkgewogICAgICAgIGlmIChlLnNlY29uZCAgPiAxICkgewogICAgICAgICAgICBtcFtlLmZpcnN0XSA9IGUuc2Vjb25kICAtMSA7CiAgICAgICAgICAgIGZyZXFbZS5maXJzdF0gPSAxIDsKICAgICAgICAgICAgdmlzbXBbZS5maXJzdF0gPSAxIDsKICAgICAgICB9CiAgICB9CiAgICBsbCBhbnMgPSAwIDsKICAgIGZvciAoaW50IGkgPSAwIDsgaTw9ICBuOyAgaSArKyApewogICAgICAgIGlmIChpID09IDAgKSB7CiAgICAgICAgICAgIGxsIHggPSAwIDsKICAgICAgICAgICAgaWYgKHZpc2ZyZXFbaV0peCArKyA7CiAgICAgICAgICAgIGlmICh2aXNtcFtpXSl4Kz0gbXBbaV0gOwogICAgICAgICAgICBjb3V0IDw8IGFucyArIHggPDwiICI7CiAgICAgICAgICAgIGNvbnRpbnVlIDsKICAgICAgICB9CiAgICAgICBpZiAodGVzdCApIHsKICAgICAgICAgICBjb3V0IDw8LTEgIDw8ICIgIiA7IGNvbnRpbnVlIDsKICAgICAgIH0KICAgICAgICBpZiAodmlzZnJlcVtpLTFdICkgewogICAgICAgICAgICBsbCB4ID0gMCA7CiAgICAgICAgICAgIGlmICh2aXNmcmVxW2ldKXggKysgOwogICAgICAgICAgICBpZiAodmlzbXBbaV0peCs9IG1wW2ldIDsKICAgICAgICAgICAgY291dCA8PCBhbnMgKyB4IDw8IiAiOwogICAgICAgICAgICBjb250aW51ZSA7CiAgICAgICAgfQogICAgICAgIGF1dG8gaXQxICA9IG1wLnVwcGVyX2JvdW5kKGktMSkgOwoKICAgICAgICBpZiAoaXQxID09IG1wIC4gYmVnaW4oKSB8fCBtcC5lbXB0eSgpKSB7CiAgICAgICAgICAgIHRlc3QgPSB0cnVlIDsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCIgIiA7IGNvbnRpbnVlIDsKICAgICAgICB9CgogICAgICAgIGF1dG8gaXQgPSBwcmV2KGl0MSkgOwogICAgICAgIGxsIGVsZW1lbnQgPSAoKml0KS5maXJzdCA7CiAgICAgICAgYW5zKz0oaSAtIGVsZW1lbnQgLTEgICk7CiAgICAgICAgbXBbZWxlbWVudF0tLSA7CiAgICAgICAgdmlzZnJlcVtpLTFdID0gMSA7CiAgICAgICAgaWYgKCFtcFtlbGVtZW50XSkgewogICAgICAgIC8vICAgICAgY291dCA8PCBlbGVtZW50IDw8ImhoaCI7CiAgICAgICAgICAgIG1wLmVyYXNlKGVsZW1lbnQpIDsgdmlzbXBbZWxlbWVudF0gPSAwIDsKICAgICAgICB9CiAgICAgICAgbGwgeCA9IDAgOwogICAgICAgIGlmICh2aXNmcmVxW2ldKXggKysgOwogICAgICAgIGlmICh2aXNtcFtpXSl4Kz0gdmlzbXBbaV0gOwogICAgICAgIGNvdXQgPDwgYW5zICsgeCA8PCIgIjsKICAgIH0KICAgIGNvdXQgPDwgZW5kbCA7CgoKCn0KCgoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgoKICAgIGludCB0ID0gMSA7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9