<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from simple_multiple_class_multiple_sm.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class SimpleFirst state machine sm11</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s111</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s112</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev111</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s111</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev111</td>
    <td class="">s112</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>


<h2>Class SimpleFirst state machine sm12</h2>

<div class="event-sequence-grid">
  <div id="wrapper1" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s121</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s122</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev121</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s121</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev121</td>
    <td class="">s122</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>


<h2>Class SimpleSecond state machine sm21</h2>

<div class="event-sequence-grid">
  <div id="wrapper2" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s211</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s212</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev211</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s211</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev211</td>
    <td class="">s212</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>


<h2>Class SimpleSecond state machine sm22</h2>

<div class="event-sequence-grid">
  <div id="wrapper3" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s221</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s222</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev221</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s221</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev221</td>
    <td class="">s222</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from simple_multiple_class.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class SimpleFirst state machine sm1</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s11</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s12</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev11</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s11</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev11</td>
    <td class="">s12</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>


<h2>Class SimpleSecond state machine sm2</h2>

<div class="event-sequence-grid">
  <div id="wrapper1" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s21</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s22</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev21</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s21</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev21</td>
    <td class="">s22</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from guarded_transition_counter_hit.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class GuardedTransitionCounterHit state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev2</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
            <td class="column-header"><div><span>5. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>6. ev1</span></div></td>
            <td class="column-header"><div><span>7. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>8. ev1</span></div></td>
            <td class="column-header"><div><span>9. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>10. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev2</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">6</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">7</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">8</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">9</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">10</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
</table>

<p>Event sequence ending reason: Hit arbitrary counter</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from counter_hit.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class HitCounter state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev3</span></div></td>
            <td class="column-header"><div><span>2. ev2</span></div></td>
            <td class="column-header"><div><span>3. ev2</span></div></td>
            <td class="column-header"><div><span>4. ev3</span></div></td>
            <td class="column-header"><div><span>5. ev1</span></div></td>
            <td class="column-header"><div><span>6. ev2</span></div></td>
            <td class="column-header"><div><span>7. ev2</span></div></td>
            <td class="column-header"><div><span>8. ev1</span></div></td>
            <td class="column-header"><div><span>9. ev2</span></div></td>
            <td class="column-header"><div><span>10. ev1</span></div></td>
            <td class="column-header"><div><span>11. ev2</span></div></td>
            <td class="column-header"><div><span>12. ev3</span></div></td>
            <td class="column-header"><div><span>13. ev2</span></div></td>
            <td class="column-header"><div><span>14. ev2</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev3</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev3</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">6</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">7</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">8</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">9</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">10</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">11</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">12</td>
    <td class="">ev3</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">13</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">14</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
</table>

<p>Event sequence ending reason: Hit arbitrary counter</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from auto_transition.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class AutoTransition state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s5</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. (auto)</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">(auto)</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s5</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from guarded_timed_transition.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class GuardedTimedTransition state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s5</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. after(5) [getGuard()]</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">after(5) [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s5</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from no_state_machine.ump</h1>
<p>No State machines found in this model</p>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from guarded_transition_end_reached.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class GuardedTransitionEndState state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">endState</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1 [!getGuard()]</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1 [!getGuard()]</td>
    <td class="">endState</td>
  </tr>
</table>

<p>Event sequence ending reason: Reached an end-state</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from guarded_auto_transition.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class GuardedTimedTransition state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s5</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. (auto) [getGuard()]</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">(auto) [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s5</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from multiple_sm_one_transitionless.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class MultipleSmOneTransitionless state machine sm1</h2>

<div id="wrapper0" class="wrapper"></div><p>No transitions found in state machine</p>


<h2>Class MultipleSmOneTransitionless state machine sm2</h2>

<div class="event-sequence-grid">
  <div id="wrapper1" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1</td>
    <td class="">s3</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from no_transitions.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class NoTransitions state machine sm</h2>

<div id="wrapper0" class="wrapper"></div><p>No transitions found in state machine</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from guarded_transition_all_visited.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class GuardedTransitionAllVisited state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1 [getGuard()]</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1 [!getGuard()]</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1 [getGuard()]</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1 [!getGuard()]</td>
    <td class="">s3</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from simple.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class ReallySimpleStateMachine state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1</td>
    <td class="">s2</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from nested_end_state_reached.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class EventSeqTestEndState state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">super1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- sidestate</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">superend</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="5">- endstate</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1</span></div></td>
            <td class="column-header"><div><span>2. ev2</span></div></td>
            <td class="column-header"><div><span>3. ev2</span></div></td>
            <td class="column-header"><div><span>4. ev2</span></div></td>
            <td class="column-header"><div><span>5. ev4</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="5">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">super1.s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1</td>
    <td class="">super1.s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev2</td>
    <td class="">super1.s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev2</td>
    <td class="">super1.s2</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev2</td>
    <td class="">super1.s3</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev4</td>
    <td class="">superend.endstate</td>
  </tr>
</table>

<p>Event sequence ending reason: Reached an end-state</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from end_state_reached.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class EventSeqTestEndState state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">sidestate</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">endstate</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1</span></div></td>
            <td class="column-header"><div><span>2. ev2</span></div></td>
            <td class="column-header"><div><span>3. ev2</span></div></td>
            <td class="column-header"><div><span>4. ev2</span></div></td>
            <td class="column-header"><div><span>5. ev4</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev2</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev2</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev4</td>
    <td class="">endstate</td>
  </tr>
</table>

<p>Event sequence ending reason: Reached an end-state</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from nested_all_states_visited.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class EventSeqAllVisited state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">supersuper</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- hub</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="1">- - s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- leaves</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- - s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- - s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- - s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev4</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev4</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
            <td class="column-header"><div><span>5. ev2</span></div></td>
            <td class="column-header"><div><span>6. ev1</span></div></td>
            <td class="column-header"><div><span>7. ev3</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="1">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">supersuper.hub.s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev4</td>
    <td class="">supersuper.leaves.s4</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">supersuper.hub.s1</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev4</td>
    <td class="">supersuper.leaves.s4</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">supersuper.hub.s1</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev2</td>
    <td class="">supersuper.leaves.s2</td>
  </tr>
  <tr>
    <td class="">6</td>
    <td class="">ev1</td>
    <td class="">supersuper.hub.s1</td>
  </tr>
  <tr>
    <td class="">7</td>
    <td class="">ev3</td>
    <td class="">supersuper.leaves.s3</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from simple_nested.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class ReallySimpleNestedStateMachine state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s11</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s12</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- s21</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- s22</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev1</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1.s11</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev1</td>
    <td class="">s1.s12</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s2.s21</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">s2.s22</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from nested_counter_hit.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class NestedCounterHit state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">ss1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="0">- s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">ss2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="3">- s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev2</span></div></td>
            <td class="column-header"><div><span>2. ev2</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
            <td class="column-header"><div><span>4. ev4</span></div></td>
            <td class="column-header"><div><span>5. ev2</span></div></td>
            <td class="column-header"><div><span>6. ev2</span></div></td>
            <td class="column-header"><div><span>7. ev3</span></div></td>
            <td class="column-header"><div><span>8. ev1</span></div></td>
            <td class="column-header"><div><span>9. ev1</span></div></td>
            <td class="column-header"><div><span>10. ev1</span></div></td>
            <td class="column-header"><div><span>11. ev4</span></div></td>
            <td class="column-header"><div><span>12. ev1</span></div></td>
            <td class="column-header"><div><span>13. ev1</span></div></td>
            <td class="column-header"><div><span>14. ev3</span></div></td>
            <td class="column-header"><div><span>15. ev5</span></div></td>
            <td class="column-header"><div><span>16. ev1</span></div></td>
            <td class="column-header"><div><span>17. ev1</span></div></td>
            <td class="column-header"><div><span>18. ev3</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="0">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="3">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev2</td>
    <td class="">ss1.s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev2</td>
    <td class="">ss1.s2</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev4</td>
    <td class="">ss2.s3</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev2</td>
    <td class="">ss1.s2</td>
  </tr>
  <tr>
    <td class="">6</td>
    <td class="">ev2</td>
    <td class="">ss1.s2</td>
  </tr>
  <tr>
    <td class="">7</td>
    <td class="">ev3</td>
    <td class="">ss2.s3</td>
  </tr>
  <tr>
    <td class="">8</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">9</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">10</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">11</td>
    <td class="">ev4</td>
    <td class="">ss2.s3</td>
  </tr>
  <tr>
    <td class="">12</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">13</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">14</td>
    <td class="">ev3</td>
    <td class="">ss2.s3</td>
  </tr>
  <tr>
    <td class="">15</td>
    <td class="">ev5</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">16</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">17</td>
    <td class="">ev1</td>
    <td class="">ss1.s1</td>
  </tr>
  <tr>
    <td class="">18</td>
    <td class="">ev3</td>
    <td class="">ss2.s3</td>
  </tr>
</table>

<p>Event sequence ending reason: Hit arbitrary counter</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from all_states_visited.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class EventSeqAllVisited state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. ev4</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev2</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
            <td class="column-header"><div><span>5. ev3</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">ev4</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev2</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">5</td>
    <td class="">ev3</td>
    <td class="">s3</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>

<style>
  /* Shared Styles */
  .event-sequence-grid, .event-sequence-list 
  { 
    font-family: sans-serif;
  }

  .event-sequence-grid table, table.event-sequence-list
  {
    border-collapse: collapse;
  }

  .event-sequence-list td, .event-sequence-grid td
  { 
    line-height: 1;
    padding: 2px 10px 2px 10px; 
    white-space: nowrap;
    text-align: center; 
  }

  /* Grid-only styles */
  .event-sequence-grid .content-cell {
    border: 1px solid black;
  }

  .event-sequence-grid .row-header {
    text-align: left;
  }

  .event-sequence-grid .column-header > div {
    width: 10px;

    -moz-transform:
      perspective(999px) /* Helps with the font distortion */
      translate(20px, 0px)
      rotate(-45deg);
    -moz-transform-origin: left bottom;
    -ms-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -ms-transform-origin: left bottom;
    -webkit-transform:
      translate(21px, 2px) 
      rotate(-45deg);
    -webkit-transform-origin: left bottom;
    -o-transform:
      translate(21px, 0px)
      rotate(-45deg);
    -o-transform-origin: left bottom;
  }

  .event-sequence-grid .column-header span {
    border-bottom: 1px solid black;
  }

  /* Floating column styles */
  .event-sequence-grid .wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .event-sequence-grid .floating-col {
    display: inline-block;
    position: absolute;
    overflow: hidden;
    border-right: 1px solid black;
    z-index: 1;
  }

  .event-sequence-grid .inner-wrapper {
    position: relative;
  }

  .event-sequence-grid .hidden-spacer {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .table-body {
    overflow-x: scroll;
  }

  .event-sequence-grid .table-body table {
    position: relative;
    display: inline-block;
  }

  .event-sequence-grid .floating-col td {
    background-color: white;
    border: 1px solid black;
  }

  .event-sequence-grid .floating-col td.first {
  }

  /* List-only styles */
  table.event-sequence-list
  {
    margin-top: 20px;
  }

  .event-sequence-list td
  {
    border: 1px solid black;
  }
</style>

<h1>Event sequence generated by Umple from timed_transition.ump</h1>
<p>Note that the sequence of events is randomly generated. Subsequential event generation will likely yield different results.</p>


<h2>Class TimedTransition state machine sm</h2>

<div class="event-sequence-grid">
  <div id="wrapper0" class="wrapper">
    <div class="floating-col">
      <table>
        <tr>
          <td class="row-header first">States</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s1</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s2</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s3</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s4</td>
        </tr>
        <tr>
          <td class="row-header" data-parent="">s5</td>
        </tr>
      </table>
    </div>
    <div class="table-body">
      <div class="inner-wrapper">
        <table>
          <tr>
            <td class="column-header"><div><span>START</span></div></td>
            <td class="column-header"><div><span>1. after(5)</span></div></td>
            <td class="column-header"><div><span>2. ev1</span></div></td>
            <td class="column-header"><div><span>3. ev1</span></div></td>
            <td class="column-header"><div><span>4. ev1</span></div></td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
            <td class="content-cell">&nbsp;</td>
          </tr>
          <tr>
            <td class="content-cell" data-parent="">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">&nbsp;</td>
            <td class="content-cell">X</td>
          </tr>
        </table>
      </div>
    </div>
  </div>
</div>

<table class="event-sequence-list">
  <tr>
    <td class="column-header">Event<br>Number</td>
    <td class="column-header">Event</td>
    <td class="column-header">Next State</td>
  </tr>
  <tr>
    <td class="">START</td>
    <td class="">-</td>
    <td class="">s1</td>
  </tr>
  <tr>
    <td class="">1</td>
    <td class="">after(5)</td>
    <td class="">s2</td>
  </tr>
  <tr>
    <td class="">2</td>
    <td class="">ev1</td>
    <td class="">s3</td>
  </tr>
  <tr>
    <td class="">3</td>
    <td class="">ev1</td>
    <td class="">s4</td>
  </tr>
  <tr>
    <td class="">4</td>
    <td class="">ev1</td>
    <td class="">s5</td>
  </tr>
</table>

<p>Event sequence ending reason: Visited all states</p>

<script>
  function formatEventSequence(wrapper) 
  {
    if(wrapper === undefined || wrapper.innerHTML === "") 
    {
      return;
    }

    // Calculate spacer height due to slanted names
    var longest = 0;
    var last = 0;
    var columnHeaders = wrapper
        .getElementsByClassName("column-header");

    for(var i = 0; i < columnHeaders.length; i++) 
    {
      var innerSpan = columnHeaders[i].firstChild.firstChild;
      if(longest < innerSpan.offsetWidth)
        longest = innerSpan.offsetWidth;

      if(i == columnHeaders.length - 1)
        last = innerSpan.offsetWidth;
    }

    var spacerHeight = longest * Math.cos(45 * (Math.PI / 180));
    var lastLabelWidth = last *  Math.sin(45 * (Math.PI / 180));

    // Get the various elements
    var tableBody = wrapper.getElementsByClassName("table-body")[0];
    var floatingCol = wrapper.getElementsByClassName('floating-col')[0];
    var innerWrapper = wrapper.getElementsByClassName("inner-wrapper")[0];
    var actualTable = innerWrapper.getElementsByTagName('table')[0]

    // give the inner elements the header space for the slanted headers
    tableBody.style.height = tableBody.offsetHeight + spacerHeight +'px';

    // Make the inner wrapper long enough to hold the scrollable contents
    innerWrapper.style.width = floatingCol.offsetWidth 
                             + actualTable.offsetWidth 
                             + lastLabelWidth 
                             + 'px';

    // Move the elements down so the headers show
    actualTable.style.top = spacerHeight + 'px';
    floatingCol.style.top = spacerHeight - 1 + 'px';

    // Move the table body over to accommodate the floating header column
    innerWrapper.getElementsByTagName('table')[0].style.left 
      = floatingCol.offsetWidth - 6 + 'px';
  };

  var wrapperIndex = 0;

  while(true)
  {
    var wrapper = document.getElementById("wrapper" + wrapperIndex);

    if(wrapper === null)
    {
      break;
    }

    wrapperIndex++;
    formatEventSequence(wrapper);
  }
</script>