anchor.diff:        }
       }
   
  -    reply.send(squares);
  +    return squares;
     });
   }
  
positive.code:   final demo = new QrDemo(canvas);
  
    final InputElement input = query('#input');
    input.value = "Type your message in here...";
    demo.updateValue(input.value);
  
    input.on.keyUp.add((KeyboardEvent args) {
      demo.updateValue(input.value);
    });
  }
  
  class QrDemo{
    static final int errorCorrectLevel = core.QrErrorCorrectLevel.M;
    static final int typeNumber = 10;
    static final int size = typeNumber * 4 + 17;
  
    final CanvasElement _canvas;
    final core.SendPortValue<String, List<bool>> _qrMapper;
    final int scale;
    final int offset;
  
  
negative.code:   }
  
    QrDemo._internal(this._canvas, this.scale, this.offset) :
      _qrMapper = new _QrCalc() {
      _qrMapper.outputChanged.add((args) {
        _squares = _qrMapper.output;
        requestFrame();
  