private Task<QiniuChunk> PutChunk(QiniuChunk qChunkLocal)
 {
     return
         InternalExtensions.OnSuccess<Tuple<HttpStatusCode, string>, QiniuChunk>(
             this.PutChunk(qChunkLocal.ChunkData, qChunkLocal.Ctx, (int) qChunkLocal.Offset),
             (Func<Task<Tuple<HttpStatusCode, string>>, QiniuChunk>) (t =>
             {
                 Tuple<HttpStatusCode, IDictionary<string, object>> tuple = AVClient.ReponseResolve(t.Result,
                     CancellationToken.None);
                 QiniuChunk qiniuChunk = new QiniuChunk();
                 long num1 = long.Parse(tuple.Item2["offset"].ToString());
                 string str1 = tuple.Item2["ctx"].ToString();
                 string str2 = tuple.Item2["host"].ToString();
                 string str3 = tuple.Item2["checksum"].ToString();
                 long num2 = long.Parse(tuple.Item2["crc32"].ToString());
                 qChunkLocal.Host = str2;
                 qChunkLocal.Offset = num1;
                 qChunkLocal.Checksum = str3;
                 qChunkLocal.Ctx = str1;
                 qChunkLocal.Crc32 = num2;
                 return qChunkLocal;
             }));
 }
 private QiniuChunk setCtc(QiniuChunk previous, QiniuChunk next)
 {
     if (previous != null)
     {
         next.Ctx = previous.Ctx;
         next.Offset = previous.Offset;
     }
     return next;
 }