This file is indexed.

/usr/lib/bouml/xmi2/141186.bodies is in bouml-plugouts-src 4.21-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
class UmlDecisionActivityNode
!!!208514.cpp!!!	sKind() : str
  return "DecisionNode";
!!!285827.cpp!!!	solve_output_flows() : void
  // input and outputs flows must be control/data
  // except a possible decision input being data
  ControlOrData k = Unset;

  // look at output flows
  const QVector<UmlItem> ch = children();
  unsigned n = ch.size();
  unsigned i;
  
  for (i = 0; i != n; i += 1) {
    UmlFlow * f = dynamic_cast<UmlFlow *>(ch[i]);

    if ((f != 0) && ((k = f->control_or_data()) != Unset))
      break;
  }

  if (k == Unset) {
    bool already = FALSE;

    for (;;) {
      // look at input flows
      int ndata = 0;
      bool hascontrol = FALSE;
      bool hasunset = FALSE;
      QListIterator<UmlFlow> it(_incoming_flows);

      while (it.current() != 0) {
	k = it.current()->control_or_data();

	if (k == IsControl) {
	  hascontrol = TRUE;
	  break;
	}
	else if (k == IsData) {
	  if (++ndata == 2)
	    // more than a single decision input
	    break;
	}
	else
	  hasunset = TRUE;

	++it;
      }

      if (hascontrol) {
	// already has k = IsControl;
	break;
      }
      else if ((ndata == 2) || ((ndata == 1) && !hasunset)) {
	k = IsData;
	break;
      }
      else if (already || !hasunset) {
	// not possible to know, force control
	k = IsControl;
	break;
      }

      already = TRUE;

      // solve input flows
      it.toFirst();
      while (it.current() != 0) {
	((UmlActivityNode *) it.current()->parent())->solve_output_flows();
	++it;
      }
    }
  }

  // propagate
  for (i = 0; i != n; i += 1) {
    UmlFlow * f = dynamic_cast<UmlFlow *>(ch[i]);

    if ((f != 0) && (f->control_or_data() == Unset))
      f->set_control_or_data(k);
  }

  QListIterator<UmlFlow> it(_incoming_flows);

  while (it.current() != 0) {
    if (it.current()->control_or_data() == Unset)
      it.current()->set_control_or_data(k);

    ++it;
  }