description: n towns are arranged in a circle sequentially. The towns are numbered from 1 to n in clockwise order. In the i-th town, there lives a singer with a repertoire of a_i minutes for each i ∈ [1, n].
  
  Each singer visited all n towns in clockwise order, starting with the town he lives in, and gave exactly one concert in each town. In addition, in each town, the i-th singer got inspired and came up with a song that lasts a_i minutes. The song was added to his repertoire so that he could perform it in the rest of the cities.
  
  Hence, for the i-th singer, the concert in the i-th town will last a_i minutes, in the (i + 1)-th town the concert will last 2 ⋅ a_i minutes, ..., in the ((i + k) mod n + 1)-th town the duration of the concert will be (k + 2) ⋅ a_i, ..., in the town ((i + n - 2) mod n + 1) — n ⋅ a_i minutes.
  
  You are given an array of b integer numbers, where b_i is the total duration of concerts in the i-th town. Reconstruct any correct sequence of positive integers a or say that it is impossible.
  
  Input
  
  The first line contains one integer t (1 ≤ t ≤ 10^3) — the number of test cases. Then the test cases follow.
  
  Each test case consists of two lines. The first line contains a single integer n (1 ≤ n ≤ 4 ⋅ 10^4) — the number of cities. The second line contains n integers b_1, b_2, ..., b_n (1 ≤ b_i ≤ 10^{9}) — the total duration of concerts in i-th city.
  
  The sum of n over all test cases does not exceed 2 ⋅ 10^5.
  
  Output
  
  For each test case, print the answer as follows:
  
  If there is no suitable sequence a, print NO. Otherwise, on the first line print YES, on the next line print the sequence a_1, a_2, ..., a_n of n integers, where a_i (1 ≤ a_i ≤ 10^{9}) is the initial duration of repertoire of the i-th singer. If there are multiple answers, print any of them.
  
  Example
  
  Input
  
  
  4
  3
  12 16 14
  1
  1
  3
  1 2 3
  6
  81 75 75 93 93 87
  
  
  Output
  
  
  YES
  3 1 3 
  YES
  1 
  NO
  YES
  5 5 4 1 4 5 
  
  Note
  
  Let's consider the 1-st test case of the example:
  
    1. the 1-st singer in the 1-st city will give a concert for 3 minutes, in the 2-nd — for 6 minutes, in the 3-rd — for 9 minutes; 
    2. the 2-nd singer in the 1-st city will give a concert for 3 minutes, in the 2-nd — for 1 minute, in the 3-rd - for 2 minutes; 
    3. the 3-rd singer in the 1-st city will give a concert for 6 minutes, in the 2-nd — for 9 minutes, in the 3-rd — for 3 minutes. 
solution: # Problem: E. Турне певцов
  # Contest: Codeforces - Codeforces Round #760 (Div. 3)
  # URL: https://codeforces.com/contest/1618/problem/E
  # Memory Limit: 256 MB
  # Time Limit: 2000 ms
  # 
  # Powered by CP Editor (https://cpeditor.org)
  
  import bisect
  
  mod = 10 ** 9 + 7
  eps = 10 ** -9
  
  
  def __gcd(a, b):
  	return a if b == 0 else __gcd(b, a % b)
  	
  
  def __lcm(a, b):
  	return a * b / __gcd(a, b)
  
  
  def __fact(n):
  	return 1 if n == 1 else n * __fact(n - 1)
  
  
  def __mex(a):
  	mex = 0
  	a.sort()
  	for x in a:
  		if x <= mex:
  			mex += 1
  		else:
  			break
  	return mex
  
  def __dist(x1, y1, x2, y2):
  	return (x1 - x2) ** 2 + (y1 - y2) ** 2
  
  def __getprimes(n):
      isprime = [True for i in range(n + 1)]
      primes = []
       
      for i in range(2, n + 1):
          if isprime[i]:
              for j in range(i * i, n + 1, i):
                  isprime[j] = False
      for i in range(2, n + 1):
          if isprime[i]:
              primes.append(i)
      return primes
  
  def __modInverse(a, m):
      
      m0 = m
      y = 0
      x = 1
      if (m == 1):
          return 0
      
      while(a > 1):
      	q = a // m
      	t = m
      	m = a % m
      	a = t
      	t = y
      	y = x - q * y
      	x = t
      if (x < 0):
      	x = x + m0
      return x
      
      
      
  def __isprime(n):
  	if n < 2:
  		return False
  	i = 2
  	while i * i <= n:
  		if n % i == 0:
  			return False
  		i += 1
  	return True
  	
  def __cntprimediv(n):
  	ret = 0
  	x = n
  	i = 2
  	while i * i <= x:
  		while n % i == 0:
  			n //= i
  			ret += 1
  		i += 1
  	if n > 1:
  		ret += 1
  	return ret
  	
  def __primefactors(n):
  	ret = []
  	x = n
  	i = 2
  	while i * i <= x:
  		while n % i == 0:
  			ret.append(i)
  			n //= i
  		i += 1
  	if n > 1:
  		ret.append(n)
  	return ret
  	
  
  def __sumdigit(n):
  	ret = 0
  	while n > 0:
  		ret += n % 10
  		n //= 10
  	return ret
  
  def __zfunc(s):
  	n = len(s)
  	z = [0 for i in range(n)]
  	l = 0
  	r = 0
  	for i in range(1, n):
  		if r >= i:
  			z[i] = min(z[i - l], r - i + 1)
  		while z[i] + i < n and s[z[i]] == s[z[i] + i]:
  			z[i] += 1
  		if i + z[i] - 1 > r:
  			l = i
  			r = i + z[i] - 1
  	return z
  	
  	
  def __to(n, x):
  	ret = ''
  	while n > 0:
  		q = n % x
  		if q < 10:
  			ret += str(q)
  		else:
  			ret += chr(q - 10 + ord('a'))
  		n //= x
  	return ret[::-1]
  	
  	
  def solve(t):
  	n = int(input())
  	a = list(map(int, input().split()))
  	ok = True
  	s = n * (1 + n) // 2
  	ans = [0 for i in range(n)]
  	m = sum(a) // s
  	if sum(a) % s != 0:
  		ok = False
  	for i in range(n):
  		val = a[i] - a[(i + 1) % n] + m
  		if val % n != 0 or val <= 0:
  			ok = False
  		ans[(i + 1) % n] = val // n
  	if ok:
  		print('YES')
  		print(*ans)
  	else:
  		print('NO')
  		
  t = 1
  t = int(input())
  
  
  for i in range(t):
  	solve(i + 1)