anchor.diff:  
       int idx = 0;
       for (int i = 0; i < numStops; i++) {
  +      double o = colorStops[idx + 3].clamp(0.0, 1.0).toDouble();
         ui.Color color = ui.Color.fromRGBO(
             (colorStops[idx] * 255.0).round(),
             (colorStops[idx + 1] * 255.0).round(),
             (colorStops[idx + 2] * 255.0).round(),
  -          colorStops[idx + 3]);
  +          o);
         colors.add(color);
         stops.add(colorStops[idx + 4]);
         idx += 5;
  
positive.code:               .toDouble());
      } else {
        Float32List overrideColor = artboard.overrideColor;
        paintColor = ui.Color.fromRGBO(
            (overrideColor[0] * 255.0).round(),
            (overrideColor[1] * 255.0).round(),
            (overrideColor[2] * 255.0).round(),
            overrideColor[3] *
                artboard.modulateOpacity *
                opacity *
                shape.renderOpacity);
      }
      _paint
        ..color = paintColor
  
negative.code: 
    Color get uiColor {
      Float32List c = displayColor;
      double o = (artboard.modulateOpacity * opacity * shape.renderOpacity)
          .clamp(0.0, 1.0)
          .toDouble();
      return Color.fromRGBO((c[0] * 255.0).round(), (c[1] * 255.0).round(),
          (c[2] * 255.0).round(), c[3] * o);
    }
  
    set uiColor(Color c) {
  