# GrapeCity.Spreadsheet.UI.UIManager

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="GrapeCity_Spreadsheet_UI_UIManager" data-uid="GrapeCity.Spreadsheet.UI.UIManager" class="text-break">UIManager Class
</h1>
  <div class="markdown level0 summary"><p>Represents an interface which indicates the UI control.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">UIManager</span></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="GrapeCity.Spreadsheet.UI.html">GrapeCity.Spreadsheet.UI</a></h6>
  <h6><strong>Assembly</strong>: GrapeCity.Spreadsheet.dll</h6>
  <h5 id="GrapeCity_Spreadsheet_UI_UIManager_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class UIManager</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class UIManager</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager__ctor" data-uid="GrapeCity.Spreadsheet.UI.UIManager.#ctor">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.-ctor.html#GrapeCity_Spreadsheet_UI_UIManager__ctor">UIManager()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.html">UIManager</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_RemainedDataChangedCount" data-uid="GrapeCity.Spreadsheet.UI.UIManager.RemainedDataChangedCount">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.RemainedDataChangedCount.html#GrapeCity_Spreadsheet_UI_UIManager_RemainedDataChangedCount">RemainedDataChangedCount</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the total number of the remained data changed ranges.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_WorkbookSet" data-uid="GrapeCity.Spreadsheet.UI.UIManager.WorkbookSet">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.WorkbookSet.html#GrapeCity_Spreadsheet_UI_UIManager_WorkbookSet">WorkbookSet</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the associated WorkbookSet.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Awake" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Awake">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Awake.html#GrapeCity_Spreadsheet_UI_UIManager_Awake">Awake()</a>
        </td>
        <td class="markdown level1 summary"><p>This function is called after the last call to <span class="xref">GrapeCity.Spreadsheet.WorkbookSet.EndUpdate()</span> which cause <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.WorkbookSet.html#GrapeCity_Spreadsheet_UI_UIManager_WorkbookSet">WorkbookSet</a> not to be suspended.
The <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.html">UIManager</a> is intended to refresh everything.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_CanFireShapeChanged_System_EventArgs_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.CanFireShapeChanged(System.EventArgs)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.CanFireShapeChanged.html#GrapeCity_Spreadsheet_UI_UIManager_CanFireShapeChanged_System_EventArgs_">CanFireShapeChanged(EventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether the UI Manager can fire <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ShapeChanged.html">ShapeChanged</a> event.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_CircleInvalid_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_CellReference___" data-uid="GrapeCity.Spreadsheet.UI.UIManager.CircleInvalid(GrapeCity.Spreadsheet.IWorksheet,GrapeCity.Spreadsheet.CellReference[])">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.CircleInvalid.html#GrapeCity_Spreadsheet_UI_UIManager_CircleInvalid_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_CellReference___">CircleInvalid(IWorksheet, CellReference[])</a>
        </td>
        <td class="markdown level1 summary"><p>Paints the invalid cells.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Execute_System_Object_System_Object_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Execute(System.Object,System.Object)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Execute.html#GrapeCity_Spreadsheet_UI_UIManager_Execute_System_Object_System_Object_">Execute(object, object)</a>
        </td>
        <td class="markdown level1 summary"><p>Execute an UI command.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Execute__1_System_Func_GrapeCity_Spreadsheet_IWorkbook_System_Object___0__GrapeCity_Spreadsheet_IWorkbook_System_Object_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Execute``1(System.Func{GrapeCity.Spreadsheet.IWorkbook,System.Object,``0},GrapeCity.Spreadsheet.IWorkbook,System.Object)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Execute.html#GrapeCity_Spreadsheet_UI_UIManager_Execute__1_System_Func_GrapeCity_Spreadsheet_IWorkbook_System_Object___0__GrapeCity_Spreadsheet_IWorkbook_System_Object_">Execute&lt;T&gt;(Func&lt;IWorkbook, object, T&gt;, IWorkbook, object)</a>
        </td>
        <td class="markdown level1 summary"><p>Execute an action and notify the change after action is invoked.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_GetRemainedDataChanged_System_Int32_GrapeCity_Spreadsheet_IWorksheet__System_Int32__System_Int32__System_Int32__System_Int32__GrapeCity_Spreadsheet_UI_ActionCategory__" data-uid="GrapeCity.Spreadsheet.UI.UIManager.GetRemainedDataChanged(System.Int32,GrapeCity.Spreadsheet.IWorksheet@,System.Int32@,System.Int32@,System.Int32@,System.Int32@,GrapeCity.Spreadsheet.UI.ActionCategory@)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.GetRemainedDataChanged.html#GrapeCity_Spreadsheet_UI_UIManager_GetRemainedDataChanged_System_Int32_GrapeCity_Spreadsheet_IWorksheet__System_Int32__System_Int32__System_Int32__System_Int32__GrapeCity_Spreadsheet_UI_ActionCategory__">GetRemainedDataChanged(int, out IWorksheet, out int, out int, out int, out int, out ActionCategory)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the changed range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_IWorkbook_GrapeCity_Spreadsheet_UI_ActionCategory_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Invalidate(GrapeCity.Spreadsheet.IWorkbook,GrapeCity.Spreadsheet.UI.ActionCategory)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Invalidate.html#GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_IWorkbook_GrapeCity_Spreadsheet_UI_ActionCategory_">Invalidate(IWorkbook, ActionCategory)</a>
        </td>
        <td class="markdown level1 summary"><p>Invalidates the workbook.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_GrapeCity_Spreadsheet_UI_ActionCategory_System_Object_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Invalidate(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32,System.Int32,System.Int32,GrapeCity.Spreadsheet.UI.ActionCategory,System.Object)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Invalidate.html#GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_GrapeCity_Spreadsheet_UI_ActionCategory_System_Object_">Invalidate(IWorksheet, int, int, int, int, ActionCategory, object)</a>
        </td>
        <td class="markdown level1 summary"><p>Invalidates the specified region of the worksheet, the control need to re-paint the corresponding cell range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_Worksheet_GrapeCity_Spreadsheet_Drawing_DrawingObject_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.Invalidate(GrapeCity.Spreadsheet.Worksheet,GrapeCity.Spreadsheet.Drawing.DrawingObject)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.Invalidate.html#GrapeCity_Spreadsheet_UI_UIManager_Invalidate_GrapeCity_Spreadsheet_Worksheet_GrapeCity_Spreadsheet_Drawing_DrawingObject_">Invalidate(Worksheet, DrawingObject)</a>
        </td>
        <td class="markdown level1 summary"><p>Invalidates the specified drawing object.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_NotifyDataChanged" data-uid="GrapeCity.Spreadsheet.UI.UIManager.NotifyDataChanged">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.NotifyDataChanged.html#GrapeCity_Spreadsheet_UI_UIManager_NotifyDataChanged">NotifyDataChanged()</a>
        </td>
        <td class="markdown level1 summary"><p>Resumes all queued data changed events.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnCircularCellChanged_GrapeCity_Spreadsheet_WorksheetReference__System_Boolean_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnCircularCellChanged(GrapeCity.Spreadsheet.WorksheetReference@,System.Boolean)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnCircularCellChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnCircularCellChanged_GrapeCity_Spreadsheet_WorksheetReference__System_Boolean_">OnCircularCellChanged(ref WorksheetReference, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when circular references state is changed for the specified cell range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnCircularCellChanged_GrapeCity_Spreadsheet_WorksheetReference___GrapeCity_Spreadsheet_WorksheetReference___" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnCircularCellChanged(GrapeCity.Spreadsheet.WorksheetReference[],GrapeCity.Spreadsheet.WorksheetReference[])">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnCircularCellChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnCircularCellChanged_GrapeCity_Spreadsheet_WorksheetReference___GrapeCity_Spreadsheet_WorksheetReference___">OnCircularCellChanged(WorksheetReference[], WorksheetReference[])</a>
        </td>
        <td class="markdown level1 summary"><p>Called when circular references state is changed for the specified cell range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnCircularChanged_System_Boolean_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnCircularChanged(System.Boolean)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnCircularChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnCircularChanged_System_Boolean_">OnCircularChanged(bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when circular references state is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnColumnVisibilityChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnColumnVisibilityChanged(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnColumnVisibilityChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnColumnVisibilityChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_">OnColumnVisibilityChanged(IWorksheet, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Column visibility is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnDataChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnDataChanged(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnDataChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnDataChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_">OnDataChanged(IWorksheet, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when cell's value is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnDataChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_GrapeCity_Spreadsheet_UI_ActionCategory_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnDataChanged(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32,System.Int32,System.Int32,GrapeCity.Spreadsheet.UI.ActionCategory)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnDataChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnDataChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_GrapeCity_Spreadsheet_UI_ActionCategory_">OnDataChanged(IWorksheet, int, int, int, int, ActionCategory)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when cell range's values are changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnRowVisibilityChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Boolean_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnRowVisibilityChanged(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32,System.Boolean)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnRowVisibilityChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnRowVisibilityChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Boolean_">OnRowVisibilityChanged(IWorksheet, int, int, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Row visibility is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnShapeChanged_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_Drawing_ShapeEventArgs_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnShapeChanged(GrapeCity.Spreadsheet.IWorksheet,GrapeCity.Spreadsheet.Drawing.ShapeEventArgs)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnShapeChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnShapeChanged_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_Drawing_ShapeEventArgs_">OnShapeChanged(IWorksheet, ShapeEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when the shape is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnStateChanged_GrapeCity_Spreadsheet_UI_StateEventArgs_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnStateChanged(GrapeCity.Spreadsheet.UI.StateEventArgs)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnStateChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnStateChanged_GrapeCity_Spreadsheet_UI_StateEventArgs_">OnStateChanged(StateEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when the state of active element is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_OnWorkbookNameChanged_GrapeCity_Spreadsheet_IWorkbook_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.OnWorkbookNameChanged(GrapeCity.Spreadsheet.IWorkbook)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.OnWorkbookNameChanged.html#GrapeCity_Spreadsheet_UI_UIManager_OnWorkbookNameChanged_GrapeCity_Spreadsheet_IWorkbook_">OnWorkbookNameChanged(IWorkbook)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when the workbook name changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_ReportError_GrapeCity_Spreadsheet_ActionResult_System_Object___" data-uid="GrapeCity.Spreadsheet.UI.UIManager.ReportError(GrapeCity.Spreadsheet.ActionResult{System.Object}@)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ReportError.html#GrapeCity_Spreadsheet_UI_UIManager_ReportError_GrapeCity_Spreadsheet_ActionResult_System_Object___">ReportError(ref ActionResult&lt;object&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Displays the exception.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_ResolveImageData_GrapeCity_Spreadsheet_IMedia_System_Int32__System_Int32__" data-uid="GrapeCity.Spreadsheet.UI.UIManager.ResolveImageData(GrapeCity.Spreadsheet.IMedia,System.Int32@,System.Int32@)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ResolveImageData.html#GrapeCity_Spreadsheet_UI_UIManager_ResolveImageData_GrapeCity_Spreadsheet_IMedia_System_Int32__System_Int32__">ResolveImageData(IMedia, out int, out int)</a>
        </td>
        <td class="markdown level1 summary"><p>Loads the image data.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_ResolveImageData_System_String_" data-uid="GrapeCity.Spreadsheet.UI.UIManager.ResolveImageData(System.String)">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ResolveImageData.html#GrapeCity_Spreadsheet_UI_UIManager_ResolveImageData_System_String_">ResolveImageData(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Loads the image data.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_ShouldFireStateChanged" data-uid="GrapeCity.Spreadsheet.UI.UIManager.ShouldFireStateChanged">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ShouldFireStateChanged.html#GrapeCity_Spreadsheet_UI_UIManager_ShouldFireStateChanged">ShouldFireStateChanged()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a boolean value indicating whether the <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.StateChanged.html">StateChanged</a> event should be fired.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="events">Events
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_ShapeChanged" data-uid="GrapeCity.Spreadsheet.UI.UIManager.ShapeChanged">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.ShapeChanged.html">ShapeChanged</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when the shape is changed.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_UI_UIManager_StateChanged" data-uid="GrapeCity.Spreadsheet.UI.UIManager.StateChanged">
          <a class="xref" href="GrapeCity.Spreadsheet.UI.UIManager.StateChanged.html">StateChanged</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when the state of active element is changed.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
