using System.IO.Compression;
private static readonly RecyclableMemoryStreamManager StreamManager = new();
private const string TokenVersion = "v2|";
public static void Main()
string encodedContinuationToken = "";
byte[] continuationTokenBytes = Convert.FromBase64String(encodedContinuationToken);
using MemoryStream memoryStream = StreamManager.GetStream("ContinuationTokenConverter", continuationTokenBytes, 0, continuationTokenBytes.Length);
using var deflate = new DeflateStream(memoryStream, CompressionMode.Decompress);
using var reader = new StreamReader(deflate, Encoding.UTF8);
var token = reader.ReadToEnd();
if (token?.StartsWith(TokenVersion, StringComparison.Ordinal) == true)
Console.WriteLine(token.Substring(TokenVersion.Length));
Console.WriteLine(Encoding.UTF8.GetString(continuationTokenBytes));
catch (InvalidDataException)
Console.WriteLine(Encoding.UTF8.GetString(continuationTokenBytes));
Console.WriteLine("InvalidContinuationToken");