//Resolving Archive Conflicts
 private void HandleDifference(OperationResult operationResult)
 {
     if (operationResult != null)
     {
         Difference archiveDifference = operationResult.Difference;
         Archive    openedArchive     = archiveDifference.RecentArchive();
         Archive    serverArchive     = archiveDifference.ServerArchive;
         // Sample use the server archive to solve diffrence
         if (serverArchive == null)
         {
             return;
         }
         ITask <OperationResult> task = Games.GetArchiveClient().UpdateArchive(serverArchive);
         task.AddOnSuccessListener((result) =>
         {
             Debug.Log("OperationResult:" + ((operationResult == null) ? "" : operationResult.Different.ToString()));
             if (operationResult != null && !operationResult.Different)
             {
                 Archive archive = operationResult.Difference.RecentArchive();
                 if (archive != null && archive.Summary != null)
                 {
                     Debug.Log("OperationResult:" + archive.Summary.Id);
                 }
                 else
                 {
                     HandleDifference(operationResult);
                 }
             }
         }).AddOnFailureListener((exception) =>
         {
             Debug.Log("[HMS:] OperationResult" + exception.ErrorCode);
         });
     }
 }