{
  "draw2d": [
    {
      "type": "shape_designer.figure.PolyRect",
      "id": "c55dd135-15db-7c71-5efa-f6761c073e66",
      "x": 7982.5,
      "y": 7980,
      "width": 30,
      "height": 40,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "baseClass": "draw2d.SetFigure",
        "code": "/**\n * by 'Draw2D Shape Designer'\n *\n * Custom JS code to tweak the standard behaviour of the generated\n * shape. add your custome code and event handler here.\n *\n *\n */\ntestShape = testShape.extend({\n\n    init: function(attr, setter, getter){\n        this._super(attr, setter, getter);\n\n        this.attr({resizeable:false});\n        this.installEditPolicy(new draw2d.policy.figure.AntSelectionFeedbackPolicy());\n\n    },\n    \n    calculate:function()\n    {\n        var i1 = this.getInputPort(0);\n        var i2 = this.getInputPort(1);\n        var o1 = this.getOutputPort(0);\n        \n        o1.setValue(!(i1.getValue() && i2.getValue()));\n    }\n});",
        "name": "Rectangle",
        "markdown": "# NAND Gate\n\nIn digital electronics, a **NAND** gate (NOT-AND) is a logic gate which produces \nan output which is false only if all its inputs are true; thus its output is \ncomplement to that of an AND gate. A LOW (0) output results only if all the \ninputs to the gate are HIGH (1); if any input is LOW (0), a HIGH (1) output \nresults. \n\nA NAND gate is made using transistors and junction diodes. By \nDe Morgan's theorem, a two-input NAND gate's logic may be expressed as AB=A+B, \nmaking a NAND gate equivalent to inverters followed by an OR gate.\n\n**The NAND gate is significant because `any` boolean function can be implemented \nby using a combination of NAND gates. This property is called functional \ncompleteness. It shares this property with the NOR gate.**\n\n## Logic table\n\n| INPUT A   | INPUT B  |  OUTPUT    |\n|:---------:|:--------:|:----------:|\n| Low       | Low      |  `High`    |\n| `High`    | Low      |  `High`    |\n| Low       | `High`   |  `High`    |\n| `High`    | `High`   |  Low       |\n\n"
      },
      "cssClass": "shape_designer_figure_PolyRect",
      "ports": [],
      "bgColor": "rgba(255,255,255,1)",
      "color": "rgba(48,48,48,1)",
      "stroke": 1,
      "radius": 3,
      "dasharray": null,
      "vertices": [
        {
          "x": 7982.5,
          "y": 7980
        },
        {
          "x": 8012.5,
          "y": 7980
        },
        {
          "x": 8012.5,
          "y": 8020
        },
        {
          "x": 7982.5,
          "y": 8020
        }
      ],
      "blur": 0,
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.SizeFilter"
        },
        {
          "name": "shape_designer.filter.StrokeFilter"
        },
        {
          "name": "shape_designer.filter.FillColorFilter"
        },
        {
          "name": "shape_designer.filter.RadiusFilter"
        }
      ]
    },
    {
      "type": "shape_designer.figure.ExtPort",
      "id": "592a8604-e0a9-8913-445d-621078e5ae97",
      "x": 7977.5,
      "y": 7983,
      "width": 10,
      "height": 10,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "name": "input01",
        "type": "Input",
        "direction": 3
      },
      "cssClass": "shape_designer_figure_ExtPort",
      "ports": [],
      "bgColor": "rgba(28,155,171,1)",
      "color": "rgba(27,27,27,1)",
      "stroke": 1,
      "dasharray": null,
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.FanoutFilter"
        },
        {
          "name": "shape_designer.filter.PortDirectionFilter"
        },
        {
          "name": "shape_designer.filter.PortTypeFilter"
        },
        {
          "name": "shape_designer.filter.FillColorFilter"
        }
      ]
    },
    {
      "type": "shape_designer.figure.ExtPort",
      "id": "5fc48f01-fecb-0d5f-ed4f-81a4bc26ae63",
      "x": 7977.5,
      "y": 8007,
      "width": 10,
      "height": 10,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "name": "input02",
        "type": "Input",
        "direction": 3
      },
      "cssClass": "shape_designer_figure_ExtPort",
      "ports": [],
      "bgColor": "rgba(28,155,171,1)",
      "color": "rgba(27,27,27,1)",
      "stroke": 1,
      "dasharray": null,
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.FanoutFilter"
        },
        {
          "name": "shape_designer.filter.PortDirectionFilter"
        },
        {
          "name": "shape_designer.filter.PortTypeFilter"
        },
        {
          "name": "shape_designer.filter.FillColorFilter"
        }
      ]
    },
    {
      "type": "shape_designer.figure.ExtPort",
      "id": "7c8a6215-ce17-6a10-c85b-b97fd0de466c",
      "x": 8013,
      "y": 7994.5,
      "width": 10,
      "height": 10,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "name": "output",
        "type": "Output",
        "direction": 1
      },
      "cssClass": "shape_designer_figure_ExtPort",
      "ports": [],
      "bgColor": "rgba(28,155,171,1)",
      "color": "rgba(27,27,27,1)",
      "stroke": 1,
      "dasharray": null,
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.FanoutFilter"
        },
        {
          "name": "shape_designer.filter.PortDirectionFilter"
        },
        {
          "name": "shape_designer.filter.PortTypeFilter"
        },
        {
          "name": "shape_designer.filter.FillColorFilter"
        }
      ]
    },
    {
      "type": "shape_designer.figure.ExtLabel",
      "id": "0a4705bb-c6fd-7a26-332f-6972e8683949",
      "x": 7987.5,
      "y": 7985,
      "width": 30.350000381469727,
      "height": 23,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "name": "Label"
      },
      "cssClass": "shape_designer_figure_ExtLabel",
      "ports": [],
      "bgColor": "rgba(0,0,0,0)",
      "color": "rgba(27,27,27,1)",
      "stroke": 0,
      "radius": 0,
      "dasharray": null,
      "text": "&",
      "outlineStroke": 0,
      "outlineColor": "rgba(0,0,0,0)",
      "fontSize": 20,
      "fontColor": "rgba(8,8,8,1)",
      "fontFamily": null,
      "editor": "LabelInplaceEditor",
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.FontSizeFilter"
        },
        {
          "name": "shape_designer.filter.FontColorFilter"
        }
      ]
    },
    {
      "type": "shape_designer.figure.PolyCircle",
      "id": "ffb7d823-3cfa-2214-9963-3e5303dd1f4d",
      "x": 8009.5,
      "y": 7995.5,
      "width": 8,
      "height": 8,
      "alpha": 1,
      "selectable": true,
      "draggable": true,
      "angle": 0,
      "userData": {
        "name": "Circle"
      },
      "cssClass": "shape_designer_figure_PolyCircle",
      "ports": [],
      "bgColor": "rgba(255,255,255,1)",
      "color": "rgba(27,27,27,1)",
      "stroke": 1,
      "radius": 0,
      "dasharray": null,
      "blur": 0,
      "filters": [
        {
          "name": "shape_designer.filter.PositionFilter"
        },
        {
          "name": "shape_designer.filter.SizeFilter"
        },
        {
          "name": "shape_designer.filter.FillColorFilter"
        },
        {
          "name": "shape_designer.filter.StrokeFilter"
        }
      ]
    }
  ],
  "image": "data:image/png;base64, "
}