<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta http-equiv="Content-Language" content="en-us">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <link rel="stylesheet" type="text/css" href="../../../boost.css">

  <title>The Boost Statechart Library - Author</title>
</head>

<body link="#0000FF" vlink="#800080">
  <table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
  "header">
    <tr>
      <td valign="top" width="300">
        <h3><a href="../../../index.htm"><img alt="C++ Boost" src=
        "../../../boost.png" border="0" width="277" height="86"></a></h3>
      </td>

      <td valign="top">
        <h1 align="center">The Boost Statechart Library</h1>

        <h2 align="center">Contacting the author</h2>
      </td>
    </tr>
  </table>
  <hr>

  <p>First of all, thank you for considering to provide feedback about
  Boost.Statechart! All feedback (including questions) is valuable for the
  progress of the library and its documentation. Please post to either of the
  following groups if the matter could also be of interest to other
  people:</p>

  <ul>
    <li><a href="http://www.boost.org/more/mailing_lists.htm">Boost Users</a> for
    questions and comments about the documentation, the interface or the
    semantics</li>

    <li><a href="http://www.boost.org/more/mailing_lists.htm">Boost Developers</a> for
    bug reports and patches</li>
  </ul>

  <p><b>Please prefix the subject line of your post with [statechart]</b>.
  This will help all group members to quickly find the threads they are
  interested in.</p>

  <p>I try hard to regularly read both lists but every now and then I'm on
  holiday or even miss a post. If you don't get a satisfactory answer within
  a few days or feel that the matter is of no interest to others, you can
  also reach me by email. To prevent spammers from harvesting my email off
  the web server I can only give you an <b>obfuscated address</b>: <a href=
  "mailto:ahd6974-spamboostorgtrap@yahoo.com">ahd6974-spamboostorgtrap@yahoo.com</a>.
  <b>You need to remove the words spam and trap to obtain my real
  address.</b></p>
  <hr>

  <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
  "../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional"
  height="31" width="88"></a></p>

  <p>Revised 
  <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 January, 2007<!--webbot bot="Timestamp" endspan i-checksum="39094" --></p>

  <p><i>Copyright &copy; 2006-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
  <a href="contact.html">Andreas Huber D&ouml;nni</a></i></p>

  <p><i>Distributed under the Boost Software License, Version 1.0. (See
  accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
  copy at <a href=
  "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>
