Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 98d6b53e11e983e268c3e19f14e091a0 > files > 571

kdepim-devel-doc-3.5.9-9mdv2008.1.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>certmanager/lib: Loading and Unloading the Plugin, General Functionality (certmanager/lib)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



<style type="text/css">
<!--
hr { display: none; }
#content h2 { margin-left: 0px; }
table.mdTable { background-color: #f8f8f8; border: .2em solid #d7d7d7; }
td.mdRow { padding: 8px 20px; }
td.md { font-weight: bold; }
td.mdname1 { font-weight: bold; color: #602020; }
td.mdname { font-weight: bold; color: #602020;  }

-->
</style>

</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../../.."><img id="nav_header_logo" alt="Home" align="left" src="../../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>
  <img id="nav_header_logo_right" alt="" align="right" src="../../../pimlogo.png" border="0" />

  <div id="nav_header_title" align="left">KDE PIM API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_left" style="text-align: left;">
/ <a href="../../../">API Reference</a>
 / <a href="../../html/index.html">certmanager</a> / <a href=".">lib</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <h2><a name="content"></a>certmanager/lib</h2>


<!-- Generated by Doxygen 1.5.5 -->
<div class="contents">
<h1>Loading and Unloading the Plugin, General Functionality</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
The functions in this section are used for loading and unloading plugins. Note that the actual locating of the plugin and the loading and unloading of the dynamic library is not covered here; this is MUA-specific code for which support code might already exist in the programming environments.<p>
The functions in this section are used for loading and unloading the respective CRYPTPLUG library, for (re)setting it's internal data structures and for retrieving information on the implementation state of all functions covered by the CRYPTPLUG API. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#g9b9eccd6e0864badbe34fde1a135352a">CryptPlugWrapper::InitStatus</a> { <br>
&nbsp;&nbsp;<b>InitStatus_undef</b> =  0, 
<b>InitStatus_Ok</b> =  1, 
<b>InitStatus_NoLibName</b> =  2, 
<b>InitStatus_LoadError</b> =  0x1000, 
<br>
&nbsp;&nbsp;<b>InitStatus_InitError</b> =  0x2000
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#gd97db658ec2e1fd353761168068e5e44">CryptPlug::initialize</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#g63b1734dbf5619bd33085f18c3f45aaf">CryptPlug::hasFeature</a> (::Feature)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#g97a7efa4165b8d9aa18d5336982202cc">CryptPlugWrapper::deinitialize</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">InitStatus&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#g3a0f75b1b9a325b4de403c049792e0e0">CryptPlugWrapper::initStatus</a> (QString *errorMsg) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__groupGeneral.html#gab6d391811299926285f2a422a6a4dc5">CryptPlugWrapper::hasFeature</a> (::Feature)</td></tr>

</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g9b9eccd6e0864badbe34fde1a135352a"></a><!-- doxytag: member="CryptPlugWrapper::InitStatus" ref="g9b9eccd6e0864badbe34fde1a135352a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__groupGeneral.html#g9b9eccd6e0864badbe34fde1a135352a">CryptPlugWrapper::InitStatus</a><code> [inherited]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Current initialization state. 
<p>
This flag holding status of previous call of initialize function. If initialize was not called before return value will be <code>CryptPlugInit_undef</code>.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__groupGeneral.html#g3a0f75b1b9a325b4de403c049792e0e0" title="Returns this CRYPTPLUG wrapper&#39;s initialization state.">initStatus</a>, initialize </dd></dl>

<p>Definition at line <a class="el" href="cryptplugwrapper_8h-source.html#l00467">467</a> of file <a class="el" href="cryptplugwrapper_8h-source.html">cryptplugwrapper.h</a>.</p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g97a7efa4165b8d9aa18d5336982202cc"></a><!-- doxytag: member="CryptPlugWrapper::deinitialize" ref="g97a7efa4165b8d9aa18d5336982202cc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CryptPlugWrapper::deinitialize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function unloads the lib and frees all internal structures. 
<p>
After this function has been called, no other plugin functions should be called; the behavior is undefined in this case.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Deinitializing sets the internal initStatus value back to <code>InitStatus_undef</code>.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__groupGeneral.html#g3a0f75b1b9a325b4de403c049792e0e0" title="Returns this CRYPTPLUG wrapper&#39;s initialization state.">initStatus</a>, initialize, <a class="el" href="classCryptPlugWrapper.html" title="This class provides C++ access to the CRYPTPLUG API.">CryptPlugWrapper</a>, <a class="el" href="group__groupAdmin.html#g23165d08d625a4d94b542c7f505987d4" title="Destructor of CRYPTPLUG wrapper class.">~CryptPlugWrapper</a> <p>
<a class="el" href="group__groupAdmin.html#g61e6668e7fc7255ce48c8870e1b65e28" title="Set this CRYPTPLUG wrapper&#39;s internal active flag.">setActive</a>, <a class="el" href="group__groupAdmin.html#ge28caae43106908b3f221e42a830885c" title="Returns this CRYPTPLUG wrapper&#39;s internal active flag.">active</a> </dd></dl>

<p>Definition at line <a class="el" href="cryptplugwrapper_8cpp-source.html#l00542">542</a> of file <a class="el" href="cryptplugwrapper_8cpp-source.html">cryptplugwrapper.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="gab6d391811299926285f2a422a6a4dc5"></a><!-- doxytag: member="CryptPlugWrapper::hasFeature" ref="gab6d391811299926285f2a422a6a4dc5" args="(::Feature)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CryptPlugWrapper::hasFeature           </td>
          <td>(</td>
          <td class="paramtype">::Feature&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function returns <code>true</code> if the specified feature is available in the plugin, and <code>false</code> otherwise. 
<p>
Not all plugins will support all features; a complete Sphinx implementation will support all features contained in the enum, however.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>In case this function cannot be executed the system's error message may be retrieved by calling initStatus( QString* ).</dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>whether the relative feature is implemented or not </dd></dl>

</div>
</div><p>
<a class="anchor" name="g63b1734dbf5619bd33085f18c3f45aaf"></a><!-- doxytag: member="CryptPlug::hasFeature" ref="g63b1734dbf5619bd33085f18c3f45aaf" args="(::Feature)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CryptPlug::hasFeature           </td>
          <td>(</td>
          <td class="paramtype">::Feature&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function frees all internal structures. 
<p>
Plugins that do not keep any internal structures should provide an empty implementation. After this function has been called, no other plugin functions should be called; the behavior is undefined in this case.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This function <b>must</b> be implemented by each plug-in using this API specification.</dd></dl>
This function returns <code>true</code> if the specified feature is available in the plugin, and <code>false</code> otherwise. Not all plugins will support all features; a complete Sphinx implementation will support all features contained in the enum, however.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This function <b>must</b> be implemented by each plug-in using this API specification. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd97db658ec2e1fd353761168068e5e44"></a><!-- doxytag: member="CryptPlug::initialize" ref="gd97db658ec2e1fd353761168068e5e44" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CryptPlug::initialize           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function sets up all internal structures. 
<p>
Plugins that need no initialization should provide an empty implementation. The method returns <code>true</code> if the initialization was successful and <code>false</code> otherwise. Before this function is called, no other plugin functions should be called; the behavior is undefined in this case.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This function <b>must</b> be implemented by each plug-in using this API specification. </dd></dl>

<p>Definition at line <a class="el" href="cryptplug_8cpp-source.html#l00273">273</a> of file <a class="el" href="cryptplug_8cpp-source.html">cryptplug.cpp</a>.</p>

</div>
</div><p>
<a class="anchor" name="g3a0f75b1b9a325b4de403c049792e0e0"></a><!-- doxytag: member="CryptPlugWrapper::initStatus" ref="g3a0f75b1b9a325b4de403c049792e0e0" args="(QString *errorMsg) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__groupGeneral.html#g9b9eccd6e0864badbe34fde1a135352a">CryptPlugWrapper::InitStatus</a> CryptPlugWrapper::initStatus           </td>
          <td>(</td>
          <td class="paramtype">QString *&nbsp;</td>
          <td class="paramname"> <em>errorMsg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns this CRYPTPLUG wrapper's initialization state. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>errorMsg</em>&nbsp;</td><td>receives the last system error message, this value should be ignored if InitStatus value equals <code>InitStatus_Ok</code>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>whether the relative library was loaded and initialized correctly</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd>initialize, <a class="el" href="group__groupGeneral.html#g97a7efa4165b8d9aa18d5336982202cc" title="This function unloads the lib and frees all internal structures.">deinitialize</a>, <a class="el" href="group__groupAdmin.html#g8022ac7864cb4b45d5cfed5206372157" title="Constructor of CRYPTPLUG wrapper class.">CryptPlugWrapper()</a>, <a class="el" href="group__groupAdmin.html#g23165d08d625a4d94b542c7f505987d4" title="Destructor of CRYPTPLUG wrapper class.">~CryptPlugWrapper</a> <p>
<a class="el" href="group__groupAdmin.html#g61e6668e7fc7255ce48c8870e1b65e28" title="Set this CRYPTPLUG wrapper&#39;s internal active flag.">setActive</a>, <a class="el" href="group__groupAdmin.html#ge28caae43106908b3f221e42a830885c" title="Returns this CRYPTPLUG wrapper&#39;s internal active flag.">active</a> </dd></dl>

<p>Definition at line <a class="el" href="cryptplugwrapper_8cpp-source.html#l00550">550</a> of file <a class="el" href="cryptplugwrapper_8cpp-source.html">cryptplugwrapper.cpp</a>.</p>

</div>
</div><p>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>certmanager/lib</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="modules.html">Modules</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="functions.html">Class Members</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classCryptPlugWrapper.html">cryptplugwrapper</option>,  <option value="classKleo_1_1ChiasmusJob.html">kleo::chiasmusjob</option>,  <option value="classKleo_1_1ChiasmusLibrary.html">kleo::chiasmuslibrary</option>,  <option value="classKleo_1_1CryptoConfig.html">kleo::cryptoconfig</option>,  <option value="classKleo_1_1CryptoConfigComponent.html">kleo::cryptoconfigcomponent</option>,  <option value="classKleo_1_1CryptoConfigDialog.html">kleo::cryptoconfigdialog</option>,  <option value="classKleo_1_1CryptoConfigEntry.html">kleo::cryptoconfigentry</option>,  <option value="classKleo_1_1CryptoConfigGroup.html">kleo::cryptoconfiggroup</option>,  <option value="classKleo_1_1CryptoConfigModule.html">kleo::cryptoconfigmodule</option>,  <option value="classKleo_1_1DecryptJob.html">kleo::decryptjob</option>,  <option value="classKleo_1_1DecryptVerifyJob.html">kleo::decryptverifyjob</option>,  <option value="classKleo_1_1DeleteJob.html">kleo::deletejob</option>,  <option value="classKleo_1_1DN.html">kleo::dn</option>,  <option value="classKleo_1_1DNAttributeMapper.html">kleo::dnattributemapper</option>,  <option value="classKleo_1_1DownloadJob.html">kleo::downloadjob</option>,  <option value="classKleo_1_1EncryptJob.html">kleo::encryptjob</option>,  <option value="classKleo_1_1ExportJob.html">kleo::exportjob</option>,  <option value="classKleo_1_1GnuPGProcessBase.html">kleo::gnupgprocessbase</option>,  <option value="classKleo_1_1HierarchicalKeyListJob.html">kleo::hierarchicalkeylistjob</option>,  <option value="classKleo_1_1ImportJob.html">kleo::importjob</option>,  <option value="classKleo_1_1Job.html">kleo::job</option>,  <option value="classKleo_1_1KeyFilter.html">kleo::keyfilter</option>,  <option value="classKleo_1_1KeyGenerationJob.html">kleo::keygenerationjob</option>,  <option value="classKleo_1_1KeyListJob.html">kleo::keylistjob</option>,  <option value="classKleo_1_1KeyRequester.html">kleo::keyrequester</option>,  <option value="classKleo_1_1MultiDeleteJob.html">kleo::multideletejob</option>,  <option value="classKleo_1_1ObtainKeysJob.html">kleo::obtainkeysjob</option>,  <option value="classKleo_1_1ProgressBar.html">kleo::progressbar</option>,  <option value="classKleo_1_1ProgressDialog.html">kleo::progressdialog</option>,  <option value="classKleo_1_1QGpgMEJob.html">kleo::qgpgmejob</option>,  <option value="classKleo_1_1RefreshKeysJob.html">kleo::refreshkeysjob</option>,  <option value="classKleo_1_1SignEncryptJob.html">kleo::signencryptjob</option>,  <option value="classKleo_1_1SignJob.html">kleo::signjob</option>,  <option value="classKleo_1_1SpecialJob.html">kleo::specialjob</option>,  <option value="classKleo_1_1VerifyDetachedJob.html">kleo::verifydetachedjob</option>,  <option value="classKleo_1_1VerifyOpaqueJob.html">kleo::verifyopaquejob</option>,  <option value="classQGpgMECryptoConfig.html">qgpgmecryptoconfig</option>,  <option value="classQGpgMECryptoConfigComponent.html">qgpgmecryptoconfigcomponent</option>,  <option value="classStructuringInfoWrapper.html">structuringinfowrapper</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../../akregator/html/index.html">akregator</a></li><li>&nbsp;&nbsp;<a href="../../../akregator/src/html/index.html">src</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../../akregator/src/librss/html/index.html">librss</a></li><li><a href="../../../certmanager/html/index.html">certmanager</a></li><li>&nbsp;&nbsp;<a href="../../../certmanager/lib/html/index.html">lib</a></li><li><a href="../../../kaddressbook/html/index.html">kaddressbook</a></li><li><a href="../../../kalarm/html/index.html">kalarm</a></li><li>&nbsp;&nbsp;<a href="../../../kalarm/lib/html/index.html">lib</a></li><li><a href="../../../kandy/html/index.html">kandy</a></li><li><a href="../../../karm/html/index.html">karm</a></li><li><a href="../../../kdgantt/html/index.html">kdgantt</a></li><li><a href="../../../kgantt/html/index.html">kgantt</a></li><li><a href="../../../kioslaves/html/index.html">kioslaves</a></li><li>&nbsp;&nbsp;<a href="../../../kioslaves/imap4/html/index.html">imap4</a></li><li>&nbsp;&nbsp;<a href="../../../kioslaves/mbox/html/index.html">mbox</a></li><li><a href="../../../kitchensync/html/index.html">kitchensync</a></li><li><a href="../../../kmail/html/index.html">kmail</a></li><li><a href="../../../knotes/html/index.html">knotes</a></li><li><a href="../../../konsolekalendar/html/index.html">konsolekalendar</a></li><li><a href="../../../kontact/html/index.html">kontact</a></li><li><a href="../../../korganizer/html/index.html">korganizer</a></li><li><a href="../../../kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../../kpilot/kpilot/html/index.html">kpilot</a></li><li>&nbsp;&nbsp;<a href="../../../kpilot/lib/html/index.html">lib</a></li><li><a href="../../../libemailfunctions/html/index.html">libemailfunctions</a></li><li><a href="../../../libkcal/html/index.html">libkcal</a></li><li><a href="../../../libkdepim/html/index.html">libkdepim</a></li><li><a href="../../../libkholidays/html/index.html">libkholidays</a></li><li><a href="../../../libkmime/html/index.html">libkmime</a></li><li><a href="../../../libkpgp/html/index.html">libkpgp</a></li><li><a href="../../../libkpimidentities/html/index.html">libkpimidentities</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>