Sun, 18 May 2014 14:13:09 +0200
Corrected a bunch of source docu issues.
<!DOCTYPE html> <html><head> <title>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog</title> <meta charset="UTF-8"> <style> body { background: #EDECE6; margin: 0em 1em 10em 1em; color: black; } h1 { color: white; background: #85774A; } h2 { color: white; background: #85774A; } h3 { color: white; background: #9D936E; } h4 { color: white; background: #9D936E; } a { color: #BA6D36; } </style> </head> <body><a NAME="top" ID="top"></a> <h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog</h1> <p> Module implementing a dialog to show the output of the hg status command process. </p> <h3>Global Attributes</h3> <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> <table> <tr> <td><a href="#HgStatusDialog">HgStatusDialog</a></td> <td>Class implementing a dialog to show the output of the hg status command process.</td> </tr> </table> <h3>Functions</h3> <table> <tr><td>None</td></tr> </table> <hr /><hr /> <a NAME="HgStatusDialog" ID="HgStatusDialog"></a> <h2>HgStatusDialog</h2> <p> Class implementing a dialog to show the output of the hg status command process. </p> <h3>Derived from</h3> QWidget, Ui_HgStatusDialog <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> </table> <h3>Class Methods</h3> <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> <table> <tr> <td><a href="#HgStatusDialog.__init__">HgStatusDialog</a></td> <td>Constructor</td> </tr><tr> <td><a href="#HgStatusDialog.__add">__add</a></td> <td>Private slot to handle the Add context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__commit">__commit</a></td> <td>Private slot to handle the Commit context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__commitDeselectAll">__commitDeselectAll</a></td> <td>Private slot to deselect all entries from commit.</td> </tr><tr> <td><a href="#HgStatusDialog.__commitSelect">__commitSelect</a></td> <td>Private slot to select or deselect all entries.</td> </tr><tr> <td><a href="#HgStatusDialog.__commitSelectAll">__commitSelectAll</a></td> <td>Private slot to select all entries for commit.</td> </tr><tr> <td><a href="#HgStatusDialog.__committed">__committed</a></td> <td>Private slot called after the commit has finished.</td> </tr><tr> <td><a href="#HgStatusDialog.__diff">__diff</a></td> <td>Private slot to handle the Diff context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__finish">__finish</a></td> <td>Private slot called when the process finished or the user pressed the button.</td> </tr><tr> <td><a href="#HgStatusDialog.__forget">__forget</a></td> <td>Private slot to handle the Remove context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__generateItem">__generateItem</a></td> <td>Private method to generate a status item in the status list.</td> </tr><tr> <td><a href="#HgStatusDialog.__getCommitableItems">__getCommitableItems</a></td> <td>Private method to retrieve all entries the user wants to commit.</td> </tr><tr> <td><a href="#HgStatusDialog.__getMissingItems">__getMissingItems</a></td> <td>Private method to retrieve all entries, that have a missing status.</td> </tr><tr> <td><a href="#HgStatusDialog.__getModifiedItems">__getModifiedItems</a></td> <td>Private method to retrieve all entries, that have a modified status.</td> </tr><tr> <td><a href="#HgStatusDialog.__getUnversionedItems">__getUnversionedItems</a></td> <td>Private method to retrieve all entries, that have an unversioned status.</td> </tr><tr> <td><a href="#HgStatusDialog.__lfAdd">__lfAdd</a></td> <td>Private slot to add a file to the repository.</td> </tr><tr> <td><a href="#HgStatusDialog.__procFinished">__procFinished</a></td> <td>Private slot connected to the finished signal.</td> </tr><tr> <td><a href="#HgStatusDialog.__processOutputLine">__processOutputLine</a></td> <td>Private method to process the lines of output.</td> </tr><tr> <td><a href="#HgStatusDialog.__readStderr">__readStderr</a></td> <td>Private slot to handle the readyReadStandardError signal.</td> </tr><tr> <td><a href="#HgStatusDialog.__readStdout">__readStdout</a></td> <td>Private slot to handle the readyReadStandardOutput signal.</td> </tr><tr> <td><a href="#HgStatusDialog.__resizeColumns">__resizeColumns</a></td> <td>Private method to resize the list columns.</td> </tr><tr> <td><a href="#HgStatusDialog.__resort">__resort</a></td> <td>Private method to resort the tree.</td> </tr><tr> <td><a href="#HgStatusDialog.__restoreMissing">__restoreMissing</a></td> <td>Private slot to handle the Restore Missing context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__revert">__revert</a></td> <td>Private slot to handle the Revert context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__sbsDiff">__sbsDiff</a></td> <td>Private slot to handle the Diff context menu entry.</td> </tr><tr> <td><a href="#HgStatusDialog.__showAddMenu">__showAddMenu</a></td> <td>Private slot to prepare the Add button menu before it is shown.</td> </tr><tr> <td><a href="#HgStatusDialog.__showContextMenu">__showContextMenu</a></td> <td>Private slot to show the context menu of the status list.</td> </tr><tr> <td><a href="#HgStatusDialog.__showError">__showError</a></td> <td>Private slot to show some error.</td> </tr><tr> <td><a href="#HgStatusDialog.__updateButtons">__updateButtons</a></td> <td>Private method to update the VCS buttons status.</td> </tr><tr> <td><a href="#HgStatusDialog.__updateCommitButton">__updateCommitButton</a></td> <td>Private method to update the Commit button status.</td> </tr><tr> <td><a href="#HgStatusDialog.closeEvent">closeEvent</a></td> <td>Protected slot implementing a close event handler.</td> </tr><tr> <td><a href="#HgStatusDialog.keyPressEvent">keyPressEvent</a></td> <td>Protected slot to handle a key press event.</td> </tr><tr> <td><a href="#HgStatusDialog.on_addButton_clicked">on_addButton_clicked</a></td> <td>Private slot to handle the press of the Add button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> <td>Private slot called by a button of the button box clicked.</td> </tr><tr> <td><a href="#HgStatusDialog.on_commitButton_clicked">on_commitButton_clicked</a></td> <td>Private slot to handle the press of the Commit button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_diffButton_clicked">on_diffButton_clicked</a></td> <td>Private slot to handle the press of the Differences button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_forgetButton_clicked">on_forgetButton_clicked</a></td> <td>Private slot to handle the press of the Forget button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_input_returnPressed">on_input_returnPressed</a></td> <td>Private slot to handle the press of the return key in the input field.</td> </tr><tr> <td><a href="#HgStatusDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> <td>Private slot to handle the password checkbox toggled.</td> </tr><tr> <td><a href="#HgStatusDialog.on_refreshButton_clicked">on_refreshButton_clicked</a></td> <td>Private slot to refresh the status display.</td> </tr><tr> <td><a href="#HgStatusDialog.on_restoreButton_clicked">on_restoreButton_clicked</a></td> <td>Private slot to handle the press of the Restore button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_revertButton_clicked">on_revertButton_clicked</a></td> <td>Private slot to handle the press of the Revert button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_sbsDiffButton_clicked">on_sbsDiffButton_clicked</a></td> <td>Private slot to handle the press of the Side-by-Side Diff button.</td> </tr><tr> <td><a href="#HgStatusDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> <td>Private slot to send the input to the subversion process.</td> </tr><tr> <td><a href="#HgStatusDialog.on_statusFilterCombo_activated">on_statusFilterCombo_activated</a></td> <td>Private slot to react to the selection of a status filter.</td> </tr><tr> <td><a href="#HgStatusDialog.on_statusList_itemChanged">on_statusList_itemChanged</a></td> <td>Private slot to act upon item changes.</td> </tr><tr> <td><a href="#HgStatusDialog.on_statusList_itemSelectionChanged">on_statusList_itemSelectionChanged</a></td> <td>Private slot to act upon changes of selected items.</td> </tr><tr> <td><a href="#HgStatusDialog.start">start</a></td> <td>Public slot to start the hg status command.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> <a NAME="HgStatusDialog.__init__" ID="HgStatusDialog.__init__"></a> <h4>HgStatusDialog (Constructor)</h4> <b>HgStatusDialog</b>(<i>vcs, mq=False, parent=None</i>) <p> Constructor </p><dl> <dt><i>vcs</i></dt> <dd> reference to the vcs object </dd><dt><i>mq</i></dt> <dd> flag indicating to show a queue repo status (boolean) </dd><dt><i>parent</i></dt> <dd> parent widget (QWidget) </dd> </dl><a NAME="HgStatusDialog.__add" ID="HgStatusDialog.__add"></a> <h4>HgStatusDialog.__add</h4> <b>__add</b>(<i></i>) <p> Private slot to handle the Add context menu entry. </p><a NAME="HgStatusDialog.__commit" ID="HgStatusDialog.__commit"></a> <h4>HgStatusDialog.__commit</h4> <b>__commit</b>(<i></i>) <p> Private slot to handle the Commit context menu entry. </p><a NAME="HgStatusDialog.__commitDeselectAll" ID="HgStatusDialog.__commitDeselectAll"></a> <h4>HgStatusDialog.__commitDeselectAll</h4> <b>__commitDeselectAll</b>(<i></i>) <p> Private slot to deselect all entries from commit. </p><a NAME="HgStatusDialog.__commitSelect" ID="HgStatusDialog.__commitSelect"></a> <h4>HgStatusDialog.__commitSelect</h4> <b>__commitSelect</b>(<i>selected</i>) <p> Private slot to select or deselect all entries. </p><dl> <dt><i>selected</i></dt> <dd> commit selection state to be set (boolean) </dd> </dl><a NAME="HgStatusDialog.__commitSelectAll" ID="HgStatusDialog.__commitSelectAll"></a> <h4>HgStatusDialog.__commitSelectAll</h4> <b>__commitSelectAll</b>(<i></i>) <p> Private slot to select all entries for commit. </p><a NAME="HgStatusDialog.__committed" ID="HgStatusDialog.__committed"></a> <h4>HgStatusDialog.__committed</h4> <b>__committed</b>(<i></i>) <p> Private slot called after the commit has finished. </p><a NAME="HgStatusDialog.__diff" ID="HgStatusDialog.__diff"></a> <h4>HgStatusDialog.__diff</h4> <b>__diff</b>(<i></i>) <p> Private slot to handle the Diff context menu entry. </p><a NAME="HgStatusDialog.__finish" ID="HgStatusDialog.__finish"></a> <h4>HgStatusDialog.__finish</h4> <b>__finish</b>(<i></i>) <p> Private slot called when the process finished or the user pressed the button. </p><a NAME="HgStatusDialog.__forget" ID="HgStatusDialog.__forget"></a> <h4>HgStatusDialog.__forget</h4> <b>__forget</b>(<i></i>) <p> Private slot to handle the Remove context menu entry. </p><a NAME="HgStatusDialog.__generateItem" ID="HgStatusDialog.__generateItem"></a> <h4>HgStatusDialog.__generateItem</h4> <b>__generateItem</b>(<i>status, path</i>) <p> Private method to generate a status item in the status list. </p><dl> <dt><i>status</i></dt> <dd> status indicator (string) </dd><dt><i>path</i></dt> <dd> path of the file or directory (string) </dd> </dl><a NAME="HgStatusDialog.__getCommitableItems" ID="HgStatusDialog.__getCommitableItems"></a> <h4>HgStatusDialog.__getCommitableItems</h4> <b>__getCommitableItems</b>(<i></i>) <p> Private method to retrieve all entries the user wants to commit. </p><dl> <dt>Returns:</dt> <dd> list of all items, the user has checked </dd> </dl><a NAME="HgStatusDialog.__getMissingItems" ID="HgStatusDialog.__getMissingItems"></a> <h4>HgStatusDialog.__getMissingItems</h4> <b>__getMissingItems</b>(<i></i>) <p> Private method to retrieve all entries, that have a missing status. </p><dl> <dt>Returns:</dt> <dd> list of all items with a missing status </dd> </dl><a NAME="HgStatusDialog.__getModifiedItems" ID="HgStatusDialog.__getModifiedItems"></a> <h4>HgStatusDialog.__getModifiedItems</h4> <b>__getModifiedItems</b>(<i></i>) <p> Private method to retrieve all entries, that have a modified status. </p><dl> <dt>Returns:</dt> <dd> list of all items with a modified status </dd> </dl><a NAME="HgStatusDialog.__getUnversionedItems" ID="HgStatusDialog.__getUnversionedItems"></a> <h4>HgStatusDialog.__getUnversionedItems</h4> <b>__getUnversionedItems</b>(<i></i>) <p> Private method to retrieve all entries, that have an unversioned status. </p><dl> <dt>Returns:</dt> <dd> list of all items with an unversioned status </dd> </dl><a NAME="HgStatusDialog.__lfAdd" ID="HgStatusDialog.__lfAdd"></a> <h4>HgStatusDialog.__lfAdd</h4> <b>__lfAdd</b>(<i>mode</i>) <p> Private slot to add a file to the repository. </p><dl> <dt><i>mode</i></dt> <dd> add mode (string one of 'normal' or 'large') </dd> </dl><a NAME="HgStatusDialog.__procFinished" ID="HgStatusDialog.__procFinished"></a> <h4>HgStatusDialog.__procFinished</h4> <b>__procFinished</b>(<i>exitCode, exitStatus</i>) <p> Private slot connected to the finished signal. </p><dl> <dt><i>exitCode</i></dt> <dd> exit code of the process (integer) </dd><dt><i>exitStatus</i></dt> <dd> exit status of the process (QProcess.ExitStatus) </dd> </dl><a NAME="HgStatusDialog.__processOutputLine" ID="HgStatusDialog.__processOutputLine"></a> <h4>HgStatusDialog.__processOutputLine</h4> <b>__processOutputLine</b>(<i>line</i>) <p> Private method to process the lines of output. </p><dl> <dt><i>line</i></dt> <dd> output line to be processed (string) </dd> </dl><a NAME="HgStatusDialog.__readStderr" ID="HgStatusDialog.__readStderr"></a> <h4>HgStatusDialog.__readStderr</h4> <b>__readStderr</b>(<i></i>) <p> Private slot to handle the readyReadStandardError signal. </p><p> It reads the error output of the process and inserts it into the error pane. </p><a NAME="HgStatusDialog.__readStdout" ID="HgStatusDialog.__readStdout"></a> <h4>HgStatusDialog.__readStdout</h4> <b>__readStdout</b>(<i></i>) <p> Private slot to handle the readyReadStandardOutput signal. </p><p> It reads the output of the process, formats it and inserts it into the contents pane. </p><a NAME="HgStatusDialog.__resizeColumns" ID="HgStatusDialog.__resizeColumns"></a> <h4>HgStatusDialog.__resizeColumns</h4> <b>__resizeColumns</b>(<i></i>) <p> Private method to resize the list columns. </p><a NAME="HgStatusDialog.__resort" ID="HgStatusDialog.__resort"></a> <h4>HgStatusDialog.__resort</h4> <b>__resort</b>(<i></i>) <p> Private method to resort the tree. </p><a NAME="HgStatusDialog.__restoreMissing" ID="HgStatusDialog.__restoreMissing"></a> <h4>HgStatusDialog.__restoreMissing</h4> <b>__restoreMissing</b>(<i></i>) <p> Private slot to handle the Restore Missing context menu entry. </p><a NAME="HgStatusDialog.__revert" ID="HgStatusDialog.__revert"></a> <h4>HgStatusDialog.__revert</h4> <b>__revert</b>(<i></i>) <p> Private slot to handle the Revert context menu entry. </p><a NAME="HgStatusDialog.__sbsDiff" ID="HgStatusDialog.__sbsDiff"></a> <h4>HgStatusDialog.__sbsDiff</h4> <b>__sbsDiff</b>(<i></i>) <p> Private slot to handle the Diff context menu entry. </p><a NAME="HgStatusDialog.__showAddMenu" ID="HgStatusDialog.__showAddMenu"></a> <h4>HgStatusDialog.__showAddMenu</h4> <b>__showAddMenu</b>(<i></i>) <p> Private slot to prepare the Add button menu before it is shown. </p><a NAME="HgStatusDialog.__showContextMenu" ID="HgStatusDialog.__showContextMenu"></a> <h4>HgStatusDialog.__showContextMenu</h4> <b>__showContextMenu</b>(<i>coord</i>) <p> Private slot to show the context menu of the status list. </p><dl> <dt><i>coord</i></dt> <dd> the position of the mouse pointer (QPoint) </dd> </dl><a NAME="HgStatusDialog.__showError" ID="HgStatusDialog.__showError"></a> <h4>HgStatusDialog.__showError</h4> <b>__showError</b>(<i>out</i>) <p> Private slot to show some error. </p><dl> <dt><i>out</i></dt> <dd> error to be shown (string) </dd> </dl><a NAME="HgStatusDialog.__updateButtons" ID="HgStatusDialog.__updateButtons"></a> <h4>HgStatusDialog.__updateButtons</h4> <b>__updateButtons</b>(<i></i>) <p> Private method to update the VCS buttons status. </p><a NAME="HgStatusDialog.__updateCommitButton" ID="HgStatusDialog.__updateCommitButton"></a> <h4>HgStatusDialog.__updateCommitButton</h4> <b>__updateCommitButton</b>(<i></i>) <p> Private method to update the Commit button status. </p><a NAME="HgStatusDialog.closeEvent" ID="HgStatusDialog.closeEvent"></a> <h4>HgStatusDialog.closeEvent</h4> <b>closeEvent</b>(<i>e</i>) <p> Protected slot implementing a close event handler. </p><dl> <dt><i>e</i></dt> <dd> close event (QCloseEvent) </dd> </dl><a NAME="HgStatusDialog.keyPressEvent" ID="HgStatusDialog.keyPressEvent"></a> <h4>HgStatusDialog.keyPressEvent</h4> <b>keyPressEvent</b>(<i>evt</i>) <p> Protected slot to handle a key press event. </p><dl> <dt><i>evt</i></dt> <dd> the key press event (QKeyEvent) </dd> </dl><a NAME="HgStatusDialog.on_addButton_clicked" ID="HgStatusDialog.on_addButton_clicked"></a> <h4>HgStatusDialog.on_addButton_clicked</h4> <b>on_addButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Add button. </p><a NAME="HgStatusDialog.on_buttonBox_clicked" ID="HgStatusDialog.on_buttonBox_clicked"></a> <h4>HgStatusDialog.on_buttonBox_clicked</h4> <b>on_buttonBox_clicked</b>(<i>button</i>) <p> Private slot called by a button of the button box clicked. </p><dl> <dt><i>button</i></dt> <dd> button that was clicked (QAbstractButton) </dd> </dl><a NAME="HgStatusDialog.on_commitButton_clicked" ID="HgStatusDialog.on_commitButton_clicked"></a> <h4>HgStatusDialog.on_commitButton_clicked</h4> <b>on_commitButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Commit button. </p><a NAME="HgStatusDialog.on_diffButton_clicked" ID="HgStatusDialog.on_diffButton_clicked"></a> <h4>HgStatusDialog.on_diffButton_clicked</h4> <b>on_diffButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Differences button. </p><a NAME="HgStatusDialog.on_forgetButton_clicked" ID="HgStatusDialog.on_forgetButton_clicked"></a> <h4>HgStatusDialog.on_forgetButton_clicked</h4> <b>on_forgetButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Forget button. </p><a NAME="HgStatusDialog.on_input_returnPressed" ID="HgStatusDialog.on_input_returnPressed"></a> <h4>HgStatusDialog.on_input_returnPressed</h4> <b>on_input_returnPressed</b>(<i></i>) <p> Private slot to handle the press of the return key in the input field. </p><a NAME="HgStatusDialog.on_passwordCheckBox_toggled" ID="HgStatusDialog.on_passwordCheckBox_toggled"></a> <h4>HgStatusDialog.on_passwordCheckBox_toggled</h4> <b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) <p> Private slot to handle the password checkbox toggled. </p><dl> <dt><i>isOn</i></dt> <dd> flag indicating the status of the check box (boolean) </dd> </dl><a NAME="HgStatusDialog.on_refreshButton_clicked" ID="HgStatusDialog.on_refreshButton_clicked"></a> <h4>HgStatusDialog.on_refreshButton_clicked</h4> <b>on_refreshButton_clicked</b>(<i></i>) <p> Private slot to refresh the status display. </p><a NAME="HgStatusDialog.on_restoreButton_clicked" ID="HgStatusDialog.on_restoreButton_clicked"></a> <h4>HgStatusDialog.on_restoreButton_clicked</h4> <b>on_restoreButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Restore button. </p><a NAME="HgStatusDialog.on_revertButton_clicked" ID="HgStatusDialog.on_revertButton_clicked"></a> <h4>HgStatusDialog.on_revertButton_clicked</h4> <b>on_revertButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Revert button. </p><a NAME="HgStatusDialog.on_sbsDiffButton_clicked" ID="HgStatusDialog.on_sbsDiffButton_clicked"></a> <h4>HgStatusDialog.on_sbsDiffButton_clicked</h4> <b>on_sbsDiffButton_clicked</b>(<i></i>) <p> Private slot to handle the press of the Side-by-Side Diff button. </p><a NAME="HgStatusDialog.on_sendButton_clicked" ID="HgStatusDialog.on_sendButton_clicked"></a> <h4>HgStatusDialog.on_sendButton_clicked</h4> <b>on_sendButton_clicked</b>(<i></i>) <p> Private slot to send the input to the subversion process. </p><a NAME="HgStatusDialog.on_statusFilterCombo_activated" ID="HgStatusDialog.on_statusFilterCombo_activated"></a> <h4>HgStatusDialog.on_statusFilterCombo_activated</h4> <b>on_statusFilterCombo_activated</b>(<i>txt</i>) <p> Private slot to react to the selection of a status filter. </p><dl> <dt><i>txt</i></dt> <dd> selected status filter (string) </dd> </dl><a NAME="HgStatusDialog.on_statusList_itemChanged" ID="HgStatusDialog.on_statusList_itemChanged"></a> <h4>HgStatusDialog.on_statusList_itemChanged</h4> <b>on_statusList_itemChanged</b>(<i>item, column</i>) <p> Private slot to act upon item changes. </p><dl> <dt><i>item</i></dt> <dd> reference to the changed item (QTreeWidgetItem) </dd><dt><i>column</i></dt> <dd> index of column that changed (integer) </dd> </dl><a NAME="HgStatusDialog.on_statusList_itemSelectionChanged" ID="HgStatusDialog.on_statusList_itemSelectionChanged"></a> <h4>HgStatusDialog.on_statusList_itemSelectionChanged</h4> <b>on_statusList_itemSelectionChanged</b>(<i></i>) <p> Private slot to act upon changes of selected items. </p><a NAME="HgStatusDialog.start" ID="HgStatusDialog.start"></a> <h4>HgStatusDialog.start</h4> <b>start</b>(<i>fn</i>) <p> Public slot to start the hg status command. </p><dl> <dt><i>fn</i></dt> <dd> filename(s)/directoryname(s) to show the status of (string or list of strings) </dd> </dl> <div align="right"><a href="#top">Up</a></div> <hr /> </body></html>