description: A string is called square if it is some string written twice in a row. For example, the strings "aa", "abcabc", "abab" and "baabaa" are square. But the strings "aaa", "abaaab" and "abcdabc" are not square.
  
  For a given string s determine if it is square.
  
  Input
  
  The first line of input data contains an integer t (1 ≤ t ≤ 100) —the number of test cases.
  
  This is followed by t lines, each containing a description of one test case. The given strings consist only of lowercase Latin letters and have lengths between 1 and 100 inclusive.
  
  Output
  
  For each test case, output on a separate line:
  
    * YES if the string in the corresponding test case is square, 
    * NO otherwise. 
  
  
  
  You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive response).
  
  Example
  
  Input
  
  
  10
  a
  aa
  aaa
  aaaa
  abab
  abcabc
  abacaba
  xxyy
  xyyx
  xyxy
  
  
  Output
  
  
  NO
  YES
  NO
  YES
  YES
  YES
  NO
  NO
  NO
  YES
solution: import java.util.*;
  import java.io.*;
  import java.lang.*;
  import java.math.*;
  import static java.lang.Math.max;
  import static java.lang.Math.min;
  import static java.lang.Math.abs;
  import static java.lang.Math.log;
  import static java.lang.System.out;
  import static java.lang.Integer.MAX_VALUE;
  import static java.lang.Integer.MIN_VALUE;
  
  
  
  public class Codechef {
  
  	static int garr[] ;
  	static FastReader fs;
  	static boolean isPrimes[];
  	static int countprimes[];
  
  	static int max_seive = 1000000;
  
  	public static void main(String args[]) throws Exception{
  		try{
  			System.setIn(new FileInputStream("input.txt"));
  			System.setOut(new PrintStream(new FileOutputStream("output.txt")));
  		}
  		catch(Exception e){
  			
  		}
  		fs =new FastReader();
  		int tt = 1;
  		tt = fs.nextInt();
  		while(tt--!=0)
  			solve();
  	}
  
  	public static boolean isVowel(char c){
  		return c=='a' || c=='e' || c=='i' || c=='o' || c=='u';
  	}
  
  	public static void solve(){
  		String s = fs.next();
  		int mid = s.length()/2;
  		out.println(s.substring(0,mid).equals(s.substring(mid))? "YES":"NO");
  	}
  
  	public static int findOperations(char[] first,char[] second,char val){
  		char farr[]= first.clone();
  		char sarr[]= second.clone();
  		int count =0;
  		for(int i=0;i<farr.length;i++){
  			farr[i] = farr[i]=='?' ? val : farr[i];
  			sarr[i] = sarr[i]=='?' ? val : sarr[i];
  			if(farr[i]==sarr[i]){
  				continue;
  			}
  			else if(isVowel(farr[i]) && !isVowel(sarr[i])){
  				count++;
  			}
  			else if(isVowel(sarr[i]) && !isVowel(farr[i])){
  				count++;
  			}
  			else{
  				count+=2;
  			}
  		}
  		return count;
  	}
  
  
  
  	public static boolean isPallindrome(String val){
  		StringBuilder sb =new StringBuilder(val);
  		return val.equals(sb.reverse().toString());
  	}
  
  
  	public static void seive(){
  		countprimes = new int[max_seive];
  		isPrimes = new boolean[max_seive];
  		Arrays.fill(isPrimes,true);
  		isPrimes[0] = false;
  		isPrimes[1] = false;
  		for(int i =2;i*i<=max_seive;i++){
  			if(isPrimes[i]){
  				for(int j =i*i;j<max_seive;j+=i){
  					isPrimes[j] = false;
  				}
  			}
  		}
  		int count =0;
  		for(int i = 2;i<max_seive;i++){
  			if(isPrimes[i]){
  				count++;
  			}
  			countprimes[i] = count;
  		}
  	}
  
  
  	static int gcd(int a,int b){
  		return (b==0)?a: gcd(b,a%b);
  	}
  
  
  	static class FastReader
  	{
  		BufferedReader br;
  		StringTokenizer st;
  	public FastReader(){
  		br = new BufferedReader(new
  					InputStreamReader(System.in));
  	}
  	String next(){
  		while (st == null || !st.hasMoreElements())
  		{
  			try
  			{
  				st = new StringTokenizer(br.readLine());
  			}
  			catch (IOException e)
  			{
  				e.printStackTrace();
  			}
  		}
  		return st.nextToken();
  	}
  	int nextInt()
  	{
  		return Integer.parseInt(next());
  	}
  	long nextLong()
  	{
  		return Long.parseLong(next());
  	}
  	double nextDouble()
  	{
  		return Double.parseDouble(next());
  	}
  	String nextLine()
  	{
  		String str = "";
  		try
  		{
  			str = br.readLine();
  		}
  		catch (IOException e)
  		{
  			e.printStackTrace();
  		}
  			return str;
  		}
  	}
      static int[] readArray(int n){
      	int arr[]= new int[n];
      	for(int i=0;i<arr.length;i++){
      		arr[i] = fs.nextInt();
      	}
      	return arr;
      }
  }
  