Throttle content streams in writer
diff --git a/lib/src/writer.dart b/lib/src/writer.dart
index 76f9d87..5ff92b9 100644
--- a/lib/src/writer.dart
+++ b/lib/src/writer.dart
@@ -207,7 +207,7 @@
     if (bufferedData != null) {
       _output.add(bufferedData);
     } else {
-      await event.contents.forEach(_output.add);
+      await _output.addStream(event.contents);
     }
 
     _output.add(_paddingBytes(size));
@@ -240,6 +240,10 @@
 
 Uint8List _paddingBytes(int size) {
   final padding = -size % blockSize;
+  assert((size + padding) % blockSize == 0 &&
+      padding <= blockSize &&
+      padding >= 0);
+
   return Uint8List(padding);
 }