{
  "nodes": [
    {
      "type": "separator",
      "x": 880,
      "y": 240,
      "internalId": 11,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "separator",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "separator",
      "class": "ChemputerSeparator",
      "name": "separator",
      "current_volume": 0,
      "max_volume": 300,
      "necks": 1,
      "dead_volume": 3,
      "can_filter": false,
      "label": "separator"
    },
    {
      "type": "valve",
      "x": 40,
      "y": 120,
      "internalId": 13,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_Z",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_Z",
      "class": "ChemputerValve",
      "name": "valve_Z",
      "address": "192.168.1.121",
      "current_volume": 0,
      "label": "valve_Z"
    },
    {
      "type": "pump",
      "x": 40,
      "y": 0,
      "internalId": 14,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "pump_Z",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "pump_Z",
      "class": "ChemputerPump",
      "name": "pump_Z",
      "address": "192.168.1.101",
      "max_volume": 25,
      "current_volume": 0,
      "label": "pump_Z"
    },
    {
      "type": "waste",
      "x": 120,
      "y": 40,
      "internalId": 15,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "waste_Z",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "waste_Z",
      "class": "ChemputerWaste",
      "name": "waste_Z",
      "current_volume": 0,
      "max_volume": 2000,
      "necks": 1,
      "can_filter": false,
      "label": "waste_Z"
    },
    {
      "type": "valve",
      "x": 320,
      "y": 120,
      "internalId": 16,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_H",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_H",
      "class": "ChemputerValve",
      "name": "valve_H",
      "address": "192.168.1.122",
      "current_volume": 0,
      "label": "valve_H"
    },
    {
      "type": "pump",
      "x": 320,
      "y": 0,
      "internalId": 17,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "pump_H",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "pump_H",
      "class": "ChemputerPump",
      "name": "pump_H",
      "address": "192.168.1.102",
      "max_volume": 25,
      "current_volume": 0,
      "label": "pump_H"
    },
    {
      "type": "waste",
      "x": 400,
      "y": 40,
      "internalId": 18,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "waste_H",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "waste_H",
      "class": "ChemputerWaste",
      "name": "waste_H",
      "current_volume": 0,
      "max_volume": 2000,
      "necks": 1,
      "can_filter": false,
      "label": "waste_H"
    },
    {
      "type": "valve",
      "x": 600,
      "y": 120,
      "internalId": 19,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_G",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_G",
      "class": "ChemputerValve",
      "name": "valve_G",
      "address": "192.168.1.123",
      "current_volume": 0,
      "label": "valve_G"
    },
    {
      "type": "valve",
      "x": 880,
      "y": 120,
      "internalId": 23,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_Y",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_Y",
      "class": "ChemputerValve",
      "name": "valve_Y",
      "address": "192.168.1.124",
      "current_volume": 0,
      "label": "valve_Y"
    },
    {
      "type": "valve",
      "x": 1080,
      "y": 120,
      "internalId": 24,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_K",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_K",
      "class": "ChemputerValve",
      "name": "valve_K",
      "address": "192.168.1.125",
      "current_volume": 0,
      "label": "valve_K"
    },
    {
      "type": "pump",
      "x": 600,
      "y": 0,
      "internalId": 25,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "pump_G",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "pump_G",
      "class": "ChemputerPump",
      "name": "pump_G",
      "address": "192.168.1.103",
      "max_volume": 25,
      "current_volume": 0,
      "label": "pump_G"
    },
    {
      "type": "pump",
      "x": 880,
      "y": 0,
      "internalId": 26,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "pump_Y",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "pump_Y",
      "class": "ChemputerPump",
      "name": "pump_Y",
      "address": "192.168.1.104",
      "max_volume": 25,
      "current_volume": 0,
      "label": "pump_Y"
    },
    {
      "type": "pump",
      "x": 1080,
      "y": 0,
      "internalId": 27,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "pump_K",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "pump_K",
      "class": "ChemputerPump",
      "name": "pump_K",
      "address": "192.168.1.105",
      "max_volume": 50,
      "current_volume": 0,
      "label": "pump_K"
    },
    {
      "type": "waste",
      "x": 680,
      "y": 40,
      "internalId": 28,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "waste_G",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "waste_G",
      "class": "ChemputerWaste",
      "name": "waste_G",
      "current_volume": 0,
      "max_volume": 2000,
      "necks": 1,
      "can_filter": false,
      "label": "waste_G"
    },
    {
      "type": "waste",
      "x": 960,
      "y": 40,
      "internalId": 29,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "waste_Y",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "waste_Y",
      "class": "ChemputerWaste",
      "name": "waste_Y",
      "current_volume": 0,
      "max_volume": 2000,
      "necks": 1,
      "can_filter": false,
      "label": "waste_Y"
    },
    {
      "type": "waste",
      "x": 1160,
      "y": 40,
      "internalId": 30,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "waste_K",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "waste_K",
      "class": "ChemputerWaste",
      "name": "waste_K",
      "current_volume": 0,
      "max_volume": 2000,
      "necks": 1,
      "can_filter": false,
      "label": "waste_K"
    },
    {
      "type": "vacuum",
      "x": 160,
      "y": 400,
      "internalId": 72,
      "lock": "",
      "simulation": true,
      "device_name": "vacuum_filter",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "vacuum_filter",
      "connection_mode": "tcpip",
      "class": "ChemputerVacuum",
      "name": "vacuum_filter",
      "address": "",
      "port": "5000",
      "label": "vacuum_filter"
    },
    {
      "type": "vacuum",
      "x": 280,
      "y": 400,
      "internalId": 75,
      "lock": "",
      "simulation": true,
      "device_name": "vacuum_pump",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "vacuum_pump",
      "connection_mode": "tcpip",
      "class": "CVC3000VacuumPump",
      "name": "vacuum_pump",
      "address": "192.168.1.201",
      "port": "5000",
      "label": "vacuum_pump"
    },
    {
      "type": "conductivity_sensor",
      "x": 880,
      "y": 320,
      "internalId": 80,
      "lock": "",
      "connection_mode": "tcpip",
      "simulation": true,
      "device_name": "sensor_separator",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "sensor_separator",
      "class": "ConductivitySensor",
      "name": "sensor_separator",
      "address": "",
      "port": "5000",
      "label": "sensor_separator"
    },
    {
      "type": "stirrer",
      "x": 800,
      "y": 240,
      "internalId": 82,
      "lock": "",
      "simulation": true,
      "device_name": "stirrer_separator",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "stirrer_separator",
      "connection_mode": "tcpip",
      "class": "HeiTorque100PrecisionStirrer",
      "name": "stirrer_separator",
      "address": "192.168.1.206",
      "port": "5000",
      "label": "stirrer_separator"
    },
    {
      "type": "filter",
      "x": 40,
      "y": 240,
      "internalId": 0,
      "lock": "",
      "connection_mode": "tcpip",
      "address": "",
      "port": "5000",
      "simulation": true,
      "device_name": "filter",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "filter",
      "class": "ChemputerFilter",
      "name": "filter",
      "current_volume": 0,
      "max_volume": 100,
      "dead_volume": 10,
      "label": "filter"
    },
    {
      "type": "valve",
      "x": 160,
      "y": 240,
      "internalId": 6,
      "lock": "",
      "connection_mode": "tcpip",
      "port": "5000",
      "simulation": true,
      "device_name": "valve_vacuum",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "valve_vacuum",
      "class": "ChemputerValve",
      "name": "valve_vacuum",
      "address": "",
      "current_volume": 0,
      "label": "valve_vacuum"
    },
    {
      "type": "stirrer",
      "x": -40,
      "y": 240,
      "internalId": 20,
      "lock": "",
      "simulation": true,
      "device_name": "stirrer_filter",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "stirrer_filter",
      "class": "RZR2052ControlStirrer",
      "name": "stirrer_filter",
      "port": "",
      "address": "",
      "connection_mode": "tcpip",
      "label": "stirrer_filter"
    },
    {
      "type": "chiller",
      "x": 40,
      "y": 320,
      "internalId": 3,
      "lock": "",
      "simulation": true,
      "device_name": "chiller_filter",
      "obj": "",
      "xdl_locks": {
        "temp": "",
        "ongoing": ""
      },
      "id": "chiller_filter",
      "class": "CF41Chiller",
      "name": "chiller_filter",
      "min_temp": null,
      "max_temp": null,
      "port": "",
      "address": "",
      "temp_sensor": "external",
      "connection_mode": "tcpip",
      "label": "chiller_filter"
    },
    {
      "type": "flask",
      "x": 960,
      "y": 200,
      "id": "buffer_flask1",
      "label": "buffer_flask1",
      "internalId": 9,
      "obj": "",
      "class": "ChemputerFlask",
      "name": "buffer_flask1",
      "max_volume": 500,
      "current_volume": 0,
      "chemical": "",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 600,
      "y": 240,
      "obj": "",
      "label": "flask_2,6-Dimethylaniline",
      "id": "flask_2,6-Dimethylaniline",
      "internalId": 5,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "2,6-Dimethylaniline",
      "name": "flask_2,6-Dimethylaniline",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 1080,
      "y": 240,
      "obj": "",
      "label": "flask_3 M hydrochloric acid",
      "id": "flask_3 M hydrochloric acid",
      "internalId": 44,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "3 M hydrochloric acid",
      "name": "flask_3 M hydrochloric acid",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 320,
      "y": 240,
      "obj": "",
      "label": "flask_3 M sodium hydroxide",
      "id": "flask_3 M sodium hydroxide",
      "internalId": 46,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "3 M sodium hydroxide",
      "name": "flask_3 M sodium hydroxide",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 1160,
      "y": 200,
      "obj": "",
      "label": "flask_chloroacetyl chloride",
      "id": "flask_chloroacetyl chloride",
      "internalId": 48,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "chloroacetyl chloride",
      "name": "flask_chloroacetyl chloride",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 520,
      "y": 200,
      "obj": "",
      "label": "flask_diethylamine",
      "id": "flask_diethylamine",
      "internalId": 50,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "diethylamine",
      "name": "flask_diethylamine",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 400,
      "y": 200,
      "obj": "",
      "label": "flask_glacial acetic acid",
      "id": "flask_glacial acetic acid",
      "internalId": 52,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "glacial acetic acid",
      "name": "flask_glacial acetic acid",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": -40,
      "y": 200,
      "obj": "",
      "label": "flask_half-saturated aqueous sodium acetate",
      "id": "flask_half-saturated aqueous sodium acetate",
      "internalId": 54,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "half-saturated aqueous sodium acetate",
      "name": "flask_half-saturated aqueous sodium acetate",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": -40,
      "y": 40,
      "obj": "",
      "label": "flask_toluene",
      "id": "flask_toluene",
      "internalId": 56,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "toluene",
      "name": "flask_toluene",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 680,
      "y": 200,
      "obj": "",
      "label": "flask_water",
      "id": "flask_water",
      "internalId": 65,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "water",
      "name": "flask_water",
      "can_filter": false,
      "buffer_flask": false
    },
    {
      "type": "flask",
      "x": 120,
      "y": 200,
      "obj": "",
      "label": "flask_nitrogen",
      "id": "flask_nitrogen",
      "internalId": 67,
      "max_volume": 100,
      "current_volume": 0,
      "class": "ChemputerFlask",
      "chemical": "nitrogen",
      "name": "flask_nitrogen",
      "can_filter": false,
      "buffer_flask": false
    }
  ],
  "links": [
    {
      "id": 58,
      "sourceInternal": 11,
      "targetInternal": 23,
      "source": "separator",
      "target": "valve_Y",
      "port": "(bottom,4)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 32,
      "sourceInternal": 13,
      "targetInternal": 14,
      "source": "valve_Z",
      "target": "pump_Z",
      "port": "(-1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 85,
      "sourceInternal": 13,
      "targetInternal": 16,
      "source": "valve_Z",
      "target": "valve_H",
      "port": "(1,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 95,
      "sourceInternal": 13,
      "targetInternal": 15,
      "source": "valve_Z",
      "target": "waste_Z",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 1,
      "sourceInternal": 13,
      "targetInternal": 0,
      "source": "valve_Z",
      "target": "filter",
      "port": "(4,top)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 31,
      "sourceInternal": 14,
      "targetInternal": 13,
      "source": "pump_Z",
      "target": "valve_Z",
      "port": "(0,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 34,
      "sourceInternal": 16,
      "targetInternal": 17,
      "source": "valve_H",
      "target": "pump_H",
      "port": "(-1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 86,
      "sourceInternal": 16,
      "targetInternal": 13,
      "source": "valve_H",
      "target": "valve_Z",
      "port": "(2,1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 87,
      "sourceInternal": 16,
      "targetInternal": 19,
      "source": "valve_H",
      "target": "valve_G",
      "port": "(1,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 96,
      "sourceInternal": 16,
      "targetInternal": 18,
      "source": "valve_H",
      "target": "waste_H",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 43,
      "sourceInternal": 16,
      "targetInternal": 6,
      "source": "valve_H",
      "target": "valve_vacuum",
      "port": "(3,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 33,
      "sourceInternal": 17,
      "targetInternal": 16,
      "source": "pump_H",
      "target": "valve_H",
      "port": "(0,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 36,
      "sourceInternal": 19,
      "targetInternal": 25,
      "source": "valve_G",
      "target": "pump_G",
      "port": "(-1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 88,
      "sourceInternal": 19,
      "targetInternal": 16,
      "source": "valve_G",
      "target": "valve_H",
      "port": "(2,1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 89,
      "sourceInternal": 19,
      "targetInternal": 23,
      "source": "valve_G",
      "target": "valve_Y",
      "port": "(1,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 97,
      "sourceInternal": 19,
      "targetInternal": 28,
      "source": "valve_G",
      "target": "waste_G",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 38,
      "sourceInternal": 23,
      "targetInternal": 26,
      "source": "valve_Y",
      "target": "pump_Y",
      "port": "(-1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 59,
      "sourceInternal": 23,
      "targetInternal": 11,
      "source": "valve_Y",
      "target": "separator",
      "port": "(4,bottom)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 42,
      "sourceInternal": 23,
      "targetInternal": 11,
      "source": "valve_Y",
      "target": "separator",
      "port": "(3,top)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 90,
      "sourceInternal": 23,
      "targetInternal": 19,
      "source": "valve_Y",
      "target": "valve_G",
      "port": "(2,1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 91,
      "sourceInternal": 23,
      "targetInternal": 24,
      "source": "valve_Y",
      "target": "valve_K",
      "port": "(1,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 98,
      "sourceInternal": 23,
      "targetInternal": 29,
      "source": "valve_Y",
      "target": "waste_Y",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 10,
      "sourceInternal": 23,
      "targetInternal": 9,
      "source": "valve_Y",
      "target": "buffer_flask1",
      "port": "(5,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 40,
      "sourceInternal": 24,
      "targetInternal": 27,
      "source": "valve_K",
      "target": "pump_K",
      "port": "(-1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 92,
      "sourceInternal": 24,
      "targetInternal": 23,
      "source": "valve_K",
      "target": "valve_Y",
      "port": "(2,1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 99,
      "sourceInternal": 24,
      "targetInternal": 30,
      "source": "valve_K",
      "target": "waste_K",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 35,
      "sourceInternal": 25,
      "targetInternal": 19,
      "source": "pump_G",
      "target": "valve_G",
      "port": "(0,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 37,
      "sourceInternal": 26,
      "targetInternal": 23,
      "source": "pump_Y",
      "target": "valve_Y",
      "port": "(0,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 39,
      "sourceInternal": 27,
      "targetInternal": 24,
      "source": "pump_K",
      "target": "valve_K",
      "port": "(0,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 77,
      "sourceInternal": 75,
      "targetInternal": 72,
      "source": "vacuum_pump",
      "target": "vacuum_filter",
      "port": "(,)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 81,
      "sourceInternal": 80,
      "targetInternal": 11,
      "source": "sensor_separator",
      "target": "separator",
      "port": "(,)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 83,
      "sourceInternal": 82,
      "targetInternal": 11,
      "source": "stirrer_separator",
      "target": "separator",
      "port": "(,)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 8,
      "sourceInternal": 0,
      "targetInternal": 6,
      "source": "filter",
      "target": "valve_vacuum",
      "port": "(bottom,-1)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 7,
      "sourceInternal": 6,
      "targetInternal": 0,
      "source": "valve_vacuum",
      "target": "filter",
      "port": "(-1,bottom)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 4,
      "sourceInternal": 6,
      "targetInternal": 72,
      "source": "valve_vacuum",
      "target": "vacuum_filter",
      "port": "(1,0)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 2,
      "sourceInternal": 6,
      "targetInternal": 16,
      "source": "valve_vacuum",
      "target": "valve_H",
      "port": "(2,3)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 21,
      "sourceInternal": 20,
      "targetInternal": 0,
      "source": "stirrer_filter",
      "target": "filter",
      "port": "(,)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 41,
      "sourceInternal": 3,
      "targetInternal": 0,
      "source": "chiller_filter",
      "target": "filter",
      "port": "(,)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 12,
      "sourceInternal": 9,
      "targetInternal": 23,
      "source": "buffer_flask1",
      "target": "valve_Y",
      "port": "(0,5)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 22,
      "sourceInternal": 5,
      "targetInternal": 19,
      "source": "flask_2,6-Dimethylaniline",
      "target": "valve_G",
      "port": "(0,4)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 45,
      "sourceInternal": 44,
      "targetInternal": 24,
      "source": "flask_3 M hydrochloric acid",
      "target": "valve_K",
      "port": "(0,4)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 47,
      "sourceInternal": 46,
      "targetInternal": 16,
      "source": "flask_3 M sodium hydroxide",
      "target": "valve_H",
      "port": "(0,4)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 49,
      "sourceInternal": 48,
      "targetInternal": 24,
      "source": "flask_chloroacetyl chloride",
      "target": "valve_K",
      "port": "(0,5)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 51,
      "sourceInternal": 50,
      "targetInternal": 19,
      "source": "flask_diethylamine",
      "target": "valve_G",
      "port": "(0,3)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 53,
      "sourceInternal": 52,
      "targetInternal": 16,
      "source": "flask_glacial acetic acid",
      "target": "valve_H",
      "port": "(0,5)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 55,
      "sourceInternal": 54,
      "targetInternal": 13,
      "source": "flask_half-saturated aqueous sodium acetate",
      "target": "valve_Z",
      "port": "(0,3)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 57,
      "sourceInternal": 56,
      "targetInternal": 13,
      "source": "flask_toluene",
      "target": "valve_Z",
      "port": "(0,2)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 66,
      "sourceInternal": 65,
      "targetInternal": 19,
      "source": "flask_water",
      "target": "valve_G",
      "port": "(0,5)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 68,
      "sourceInternal": 67,
      "targetInternal": 13,
      "source": "flask_nitrogen",
      "target": "valve_Z",
      "port": "(0,5)",
      "tubeLength": null,
      "tubeDiameter": null
    },
    {
      "id": 69,
      "sourceInternal": 67,
      "targetInternal": 6,
      "source": "flask_nitrogen",
      "target": "valve_vacuum",
      "port": "(0,0)",
      "tubeLength": null,
      "tubeDiameter": null
    }
  ]
}