anchor.diff:    static final Uint8List _emptySkySection = new Uint8List(16 * 16 * 16)..fillRange(0, 16 *
         16 * 16, 15);
   
  -  Uint16List blocks = new Uint16List(16 * 16 * 16);
  -  Uint8List light = new Uint8List(16 * 16 * 16);
  -  Uint8List sky = new Uint8List(16 * 16 * 16)..setAll(0, _emptySkySection);
  +  Uint16List blocks;
  +  Uint8List light;
  +  Uint8List sky;
  +  Uint8List _buffer;
   
     int count = 0;
     bool needsBuild = false;
     bool needsUpdate = false;
  +
  +  ChunkSection() : this.fromList(new Uint8List(16 * 16 * 16 * 4));
  +
  +  ChunkSection.fromList(this._buffer) {
  +    blocks = new Uint16List.view(_buffer.buffer, 0, 16 * 16 * 16);
  +    light = new Uint8List.view(_buffer.buffer, 16 * 16 * 16 * 2, 16 * 16 * 16);
  +    sky = new Uint8List.view(_buffer.buffer, 16 * 16 * 16 * 3, 16 * 16 * 16)..setAll(0, _emptySkySection);
  +  }
   }
  
positive.code:     for (int i = 0; i < 16; i++) {
        var dSection = dSections[i];
        if (dSection != null) {
          ChunkSection section = sections[i] = new ChunkSection();
          section.count = dSection['count'];
          section.blocks = new Uint16List.view(new Uint8List.fromList(CryptoUtils.base64StringToBytes(dSection['blocks'])).buffer);
          section.light = new Uint8List.fromList(CryptoUtils.base64StringToBytes(dSection['light']));
          section.sky = new Uint8List.fromList(CryptoUtils.base64StringToBytes(dSection['sky']));
        }
      }
      if (data['done']) {
  
negative.code:       }
        if (sMask & (1 << i) != 0) {
          int idx = 0;
          ChunkSection cs = new ChunkSection();
          for (int oy = 0; oy < 16; oy++) {
            for (int oz = 0; oz < 16; oz++) {
              for (int ox = 0; ox < 16; ox++) {
  