text: @generated
  {
    "kind": "issue",
    "data": {
      "callable": "multi_sink_ports.issue",
      "callable_line": 40,
      "code": 1111,
      "line": 42,
      "start": 12,
      "end": 13,
      "filename": "multi_sink_ports.py",
      "message": "[Test] to [Test]",
      "traces": [
        {
          "name": "forward",
          "roots": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 41,
                "start": 8,
                "end": 16
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.source",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            }
          ]
        },
        {
          "name": "backward",
          "roots": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 42,
                  "start": 12,
                  "end": 13
                },
                "resolves_to": [ "multi_sink_ports.wrapper" ],
                "port": "formal(x)",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "tito" },
                { "via": "split" },
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" },
                { "via": "a_feature" }
              ]
            }
          ]
        }
      ],
      "features": [
        { "via": "tito" },
        { "via": "split" },
        { "via": "d_feature" },
        { "via": "c_feature" },
        { "via": "b_feature" },
        { "always-via": "a_feature" }
      ]
    }
  }
  {
    "kind": "issue",
    "data": {
      "callable": "multi_sink_ports.issue2",
      "callable_line": 80,
      "code": 1111,
      "line": 83,
      "start": 13,
      "end": 18,
      "filename": "multi_sink_ports.py",
      "message": "[Test] to [Test]",
      "traces": [
        {
          "name": "forward",
          "roots": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 81,
                "start": 12,
                "end": 20
              },
              "tito": [ { "line": 82, "start": 27, "end": 32 } ],
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.source",
                  "on_all_flows": true
                }
              ],
              "features": [
                { "always-via": "tito" },
                { "always-via": "a_feature" }
              ]
            }
          ]
        },
        {
          "name": "backward",
          "roots": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 83,
                  "start": 13,
                  "end": 18
                },
                "resolves_to": [ "multi_sink_ports.wrapper2" ],
                "port": "formal(x)",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "tito" },
                { "via": "split" },
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" },
                { "via": "a_feature" }
              ]
            }
          ]
        }
      ],
      "features": [
        { "always-via": "tito" },
        { "via": "split" },
        { "via": "d_feature" },
        { "via": "c_feature" },
        { "via": "b_feature" },
        { "always-via": "a_feature" }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "Ovr{multi_sink_ports.Query::send}",
      "sources": [],
      "sinks": [
        {
          "port": "formal(self)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            }
          ]
        }
      ],
      "tito": [
        {
          "port": "formal(self)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "LocalReturn", "name": "" } ],
              "features": [ { "always-via": "tito" }, { "via": "split" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "Ovr{multi_sink_ports.QueryBase::send}",
      "sources": [],
      "sinks": [
        {
          "port": "formal(self)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "builtins.pyi",
                  "line": -1,
                  "start": -1,
                  "end": -1
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            }
          ]
        }
      ],
      "tito": [
        {
          "port": "formal(self)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "LocalReturn", "name": "" } ],
              "features": [ { "always-via": "tito" }, { "via": "split" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.Query.params",
      "sources": [],
      "sinks": [],
      "tito": [
        {
          "port": "formal(data)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "LocalReturn", "name": "[_params]" } ]
            }
          ]
        },
        {
          "port": "formal(self)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "LocalReturn", "name": "" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.Query.send",
      "sources": [],
      "sinks": [
        {
          "port": "formal(self)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 58,
                  "start": 28,
                  "end": 32
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 58,
                  "start": 28,
                  "end": 32
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 58,
                  "start": 28,
                  "end": 32
                },
                "resolves_to": [ "multi_sink_ports.splitwrapper" ],
                "port": "formal(x)[_params]",
                "length": 2
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            }
          ]
        }
      ],
      "tito": [
        {
          "port": "formal(self)",
          "taint": [
            {
              "decl": null,
              "tito": [ { "line": 58, "start": 28, "end": 32 } ],
              "leaves": [ { "kind": "LocalReturn", "name": "" } ],
              "features": [ { "always-via": "tito" }, { "via": "split" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.log_call",
      "sources": [],
      "sinks": [
        {
          "port": "formal(response)",
          "taint": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 67,
                "start": 10,
                "end": 18
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 67,
                "start": 10,
                "end": 18
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            }
          ]
        },
        {
          "port": "formal(params)",
          "taint": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 66,
                "start": 10,
                "end": 16
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 66,
                "start": 10,
                "end": 16
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.sinkA",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "Demo" } ],
              "features": [ { "always-via": "a_feature" } ]
            },
            {
              "decl": null,
              "leaves": [ { "kind": "Test" } ],
              "features": [ { "always-via": "a_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.sinkB",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "GetAttr" } ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "decl": null,
              "leaves": [ { "kind": "Test" } ],
              "features": [ { "always-via": "b_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.sinkC",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "Demo" } ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "decl": null,
              "leaves": [ { "kind": "Test" } ],
              "features": [ { "always-via": "c_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.sinkD",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "Test" } ],
              "features": [ { "always-via": "d_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.source",
      "sources": [
        {
          "port": "result",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "Test" } ],
              "features": [ { "always-via": "a_feature" } ]
            }
          ]
        }
      ],
      "sinks": [],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.split",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)[_params]",
          "taint": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 29,
                "start": 10,
                "end": 11
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 29,
                "start": 10,
                "end": 11
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 30,
                "start": 10,
                "end": 11
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 30,
                "start": 10,
                "end": 11
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 31,
                "start": 10,
                "end": 11
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "d_feature" } ]
            }
          ]
        }
      ],
      "tito": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "leaves": [ { "kind": "LocalReturn", "name": "" } ],
              "features": [ { "via": "split" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.splitwrapper",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 46,
                  "start": 17,
                  "end": 18
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 46,
                  "start": 17,
                  "end": 18
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 46,
                  "start": 17,
                  "end": 18
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            }
          ]
        }
      ],
      "tito": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "decl": null,
              "tito": [ { "line": 46, "start": 17, "end": 18 } ],
              "leaves": [ { "kind": "LocalReturn", "name": "" } ],
              "features": [ { "always-via": "tito" }, { "via": "split" } ]
            }
          ]
        }
      ]
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.wrapper",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 37,
                "start": 10,
                "end": 11
              },
              "tito": [ { "line": 36, "start": 14, "end": 15 } ],
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [
                { "always-via": "tito" },
                { "via": "split" },
                { "always-via": "a_feature" }
              ]
            },
            {
              "root": {
                "filename": "multi_sink_ports.py",
                "line": 37,
                "start": 10,
                "end": 11
              },
              "tito": [ { "line": 36, "start": 14, "end": 15 } ],
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [
                { "always-via": "tito" },
                { "via": "split" },
                { "always-via": "a_feature" }
              ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 36,
                  "start": 14,
                  "end": 15
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 36,
                  "start": 14,
                  "end": 15
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            }
          ]
        },
        {
          "port": "formal(x)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 36,
                  "start": 14,
                  "end": 15
                },
                "resolves_to": [ "multi_sink_ports.split" ],
                "port": "formal(x)[_params]",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  {
    "kind": "model",
    "data": {
      "callable": "multi_sink_ports.wrapper2",
      "sources": [],
      "sinks": [
        {
          "port": "formal(x)",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 77,
                  "start": 13,
                  "end": 19
                },
                "resolves_to": [ "multi_sink_ports.log_call" ],
                "port": "formal(params)",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 77,
                  "start": 13,
                  "end": 19
                },
                "resolves_to": [ "multi_sink_ports.log_call" ],
                "port": "formal(params)",
                "length": 1
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "a_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 74,
                  "start": 19,
                  "end": 20
                },
                "resolves_to": [ "multi_sink_ports.Query.send" ],
                "port": "formal(self)[_params]",
                "length": 3
              },
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "c_feature" } ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 74,
                  "start": 19,
                  "end": 20
                },
                "resolves_to": [ "multi_sink_ports.Query.send" ],
                "port": "formal(self)[_params]",
                "length": 3
              },
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkD",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkC",
                  "on_all_flows": false
                },
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": false
                }
              ],
              "features": [
                { "via": "d_feature" },
                { "via": "c_feature" },
                { "via": "b_feature" }
              ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 77,
                  "start": 21,
                  "end": 29
                },
                "resolves_to": [ "multi_sink_ports.log_call" ],
                "port": "formal(response)",
                "length": 1
              },
              "tito": [ { "line": 74, "start": 19, "end": 20 } ],
              "leaves": [
                {
                  "kind": "Demo",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [
                { "always-via": "tito" },
                { "via": "split" },
                { "always-via": "a_feature" }
              ]
            },
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 77,
                  "start": 21,
                  "end": 29
                },
                "resolves_to": [ "multi_sink_ports.log_call" ],
                "port": "formal(response)",
                "length": 1
              },
              "tito": [ { "line": 74, "start": 19, "end": 20 } ],
              "leaves": [
                {
                  "kind": "Test",
                  "name": "multi_sink_ports.sinkA",
                  "on_all_flows": true
                }
              ],
              "features": [
                { "always-via": "tito" },
                { "via": "split" },
                { "always-via": "a_feature" }
              ]
            }
          ]
        },
        {
          "port": "formal(x)[_params]",
          "taint": [
            {
              "call": {
                "position": {
                  "filename": "multi_sink_ports.py",
                  "line": 74,
                  "start": 19,
                  "end": 20
                },
                "resolves_to": [ "multi_sink_ports.Query.send" ],
                "port": "formal(self)[_params]",
                "length": 3
              },
              "leaves": [
                {
                  "kind": "GetAttr",
                  "name": "multi_sink_ports.sinkB",
                  "on_all_flows": true
                }
              ],
              "features": [ { "always-via": "b_feature" } ]
            }
          ]
        }
      ],
      "tito": []
    }
  }
  