Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > ff187cb994c94c614ecc64c5a8528b1b > files > 4825

qt-doc-4.8.5-10.fc18.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qabstracttransition.cpp -->
  <title>Qt 4.8: QAbstractTransition Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtcore.html">QtCore</a></li>
<li>QAbstractTransition</li>
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#properties">Properties</a></li>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#protected-functions">Protected Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
<li class="level2"><a href="#subclassing">Subclassing</a></li>
</ul>
</div>
<h1 class="title">QAbstractTransition Class Reference</h1>
<!-- $$$QAbstractTransition-brief -->
<p>The QAbstractTransition class is the base class of transitions between <a href="qabstractstate.html">QAbstractState</a> objects. <a href="#details">More...</a></p>
<!-- @@@QAbstractTransition -->
<pre class="cpp"> <span class="preprocessor">#include &lt;QAbstractTransition&gt;</span></pre><p><b>Inherits: </b><a href="qobject.html">QObject</a>.</p>
<p><b>Inherited by: </b><a href="qeventtransition.html">QEventTransition</a> and <a href="qsignaltransition.html">QSignalTransition</a>.</p>
<p>This class was introduced in Qt 4.6.</p>
<ul>
<li><a href="qabstracttransition-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="properties"></a>
<h2>Properties</h2>
<ul>
<li class="fn"><b><a href="qabstracttransition.html#sourceState-prop">sourceState</a></b> : QState * const</li>
<li class="fn"><b><a href="qabstracttransition.html#targetState-prop">targetState</a></b> : QAbstractState *</li>
<li class="fn"><b><a href="qabstracttransition.html#targetStates-prop">targetStates</a></b> : QList&lt;QAbstractState *&gt;</li>
</ul>
<ul>
<li class="fn">1 property inherited from <a href="qobject.html#properties">QObject</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#QAbstractTransition">QAbstractTransition</a></b> ( QState * <i>sourceState</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#dtor.QAbstractTransition">~QAbstractTransition</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#addAnimation">addAnimation</a></b> ( QAbstractAnimation * <i>animation</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QList&lt;QAbstractAnimation *&gt; </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#animations">animations</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QStateMachine * </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#machine">machine</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#removeAnimation">removeAnimation</a></b> ( QAbstractAnimation * <i>animation</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#targetState-prop">setTargetState</a></b> ( QAbstractState * <i>target</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#targetStates-prop">setTargetStates</a></b> ( const QList&lt;QAbstractState *&gt; &amp; <i>targets</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QState * </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#sourceState-prop">sourceState</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#targetState-prop">targetState</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QList&lt;QAbstractState *&gt; </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#targetStates-prop">targetStates</a></b> () const</td></tr>
</table>
<ul>
<li class="fn">29 public functions inherited from <a href="qobject.html#public-functions">QObject</a></li>
</ul>
<a name="signals"></a>
<h2>Signals</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#triggered">triggered</a></b> ()</td></tr>
</table>
<ul>
<li class="fn">1 signal inherited from <a href="qobject.html#signals">QObject</a></li>
</ul>
<a name="protected-functions"></a>
<h2>Protected Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#eventTest">eventTest</a></b> ( QEvent * <i>event</i> ) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#onTransition">onTransition</a></b> ( QEvent * <i>event</i> ) = 0</td></tr>
</table>
<a name="reimplemented-protected-functions"></a>
<h2>Reimplemented Protected Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qabstracttransition.html#event">event</a></b> ( QEvent * <i>e</i> )</td></tr>
</table>
<ul>
<li class="fn">8 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li class="fn">1 public slot inherited from <a href="qobject.html#public-slots">QObject</a></li>
<li class="fn">7 static public members inherited from <a href="qobject.html#static-public-members">QObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QAbstractTransition-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QAbstractTransition class is the base class of transitions between <a href="qabstractstate.html">QAbstractState</a> objects.</p>
<p>The QAbstractTransition class is the abstract base class of transitions between states (<a href="qabstractstate.html">QAbstractState</a> objects) of a <a href="qstatemachine.html">QStateMachine</a>. QAbstractTransition is part of <a href="statemachine-api.html">The State Machine Framework</a>.</p>
<p>The <a href="qabstracttransition.html#sourceState-prop">sourceState</a>() function returns the source of the transition. The <a href="qabstracttransition.html#targetStates-prop">targetStates</a>() function returns the targets of the transition. The <a href="qabstracttransition.html#machine">machine</a>() function returns the state machine that the transition is part of.</p>
<p>The <a href="qabstracttransition.html#triggered">triggered</a>() signal is emitted when the transition has been triggered.</p>
<p>Transitions can cause animations to be played. Use the <a href="qabstracttransition.html#addAnimation">addAnimation</a>() function to add an animation to the transition.</p>
<a name="subclassing"></a>
<h3>Subclassing</h3>
<p>The <a href="qabstracttransition.html#eventTest">eventTest</a>() function is called by the state machine to determine whether an event should trigger the transition. In your reimplementation you typically check the event type and cast the event object to the proper type, and check that one or more properties of the event meet your criteria.</p>
<p>The <a href="qabstracttransition.html#onTransition">onTransition</a>() function is called when the transition is triggered; reimplement this function to perform custom processing for the transition.</p>
</div>
<!-- @@@QAbstractTransition -->
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$sourceState-prop$$$sourceState -->
<h3 class="fn"><a name="sourceState-prop"></a><span class="name">sourceState</span> : <span class="type"><a href="qstate.html">QState</a></span> * const</h3>
<p>This property holds the source state (parent) of this transition.</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QState * </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceState</b></span> () const</td></tr>
</table>
<!-- @@@sourceState -->
<!-- $$$targetState-prop$$$targetState$$$setTargetStateQAbstractState* -->
<h3 class="fn"><a name="targetState-prop"></a><span class="name">targetState</span> : <span class="type"><a href="qabstractstate.html">QAbstractState</a></span> *</h3>
<p>This property holds the target state of this transition.</p>
<p>If a transition has no target state, the transition may still be triggered, but this will not cause the state machine's configuration to change (i.e&#x2e; the current state will not be exited and re-entered).</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><span class="name"><b>targetState</b></span> () const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTargetState</b></span> ( QAbstractState * <i>target</i> )</td></tr>
</table>
<!-- @@@targetState -->
<!-- $$$targetStates-prop$$$targetStates$$$setTargetStatesconstQList<QAbstractState*>& -->
<h3 class="fn"><a name="targetStates-prop"></a><span class="name">targetStates</span> : <span class="type"><a href="qlist.html">QList</a></span>&lt;<span class="type"><a href="qabstractstate.html">QAbstractState</a></span> *&gt;</h3>
<p>This property holds the target states of this transition.</p>
<p>If multiple states are specified, all must be descendants of the same parallel group state.</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QList&lt;QAbstractState *&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>targetStates</b></span> () const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTargetStates</b></span> ( const QList&lt;QAbstractState *&gt; &amp; <i>targets</i> )</td></tr>
</table>
<!-- @@@targetStates -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QAbstractTransition[overload1]$$$QAbstractTransitionQState* -->
<h3 class="fn"><a name="QAbstractTransition"></a>QAbstractTransition::<span class="name">QAbstractTransition</span> ( <span class="type"><a href="qstate.html">QState</a></span> * <i>sourceState</i> = 0 )</h3>
<p>Constructs a new <a href="qabstracttransition.html">QAbstractTransition</a> object with the given <i>sourceState</i>.</p>
<!-- @@@QAbstractTransition -->
<!-- $$$~QAbstractTransition[overload1]$$$~QAbstractTransition -->
<h3 class="fn"><a name="dtor.QAbstractTransition"></a>QAbstractTransition::<span class="name">~QAbstractTransition</span> ()<tt> [virtual]</tt></h3>
<p>Destroys this transition.</p>
<!-- @@@~QAbstractTransition -->
<!-- $$$addAnimation[overload1]$$$addAnimationQAbstractAnimation* -->
<h3 class="fn"><a name="addAnimation"></a><span class="type">void</span> QAbstractTransition::<span class="name">addAnimation</span> ( <span class="type"><a href="qabstractanimation.html">QAbstractAnimation</a></span> * <i>animation</i> )</h3>
<p>Adds the given <i>animation</i> to this transition. The transition does not take ownership of the animation.</p>
<p><b>See also </b><a href="qabstracttransition.html#removeAnimation">removeAnimation</a>() and <a href="qabstracttransition.html#animations">animations</a>().</p>
<!-- @@@addAnimation -->
<!-- $$$animations[overload1]$$$animations -->
<h3 class="fn"><a name="animations"></a><span class="type"><a href="qlist.html">QList</a></span>&lt;<span class="type"><a href="qabstractanimation.html">QAbstractAnimation</a></span> *&gt; QAbstractTransition::<span class="name">animations</span> () const</h3>
<p>Returns the list of animations associated with this transition, or an empty list if it has no animations.</p>
<p><b>See also </b><a href="qabstracttransition.html#addAnimation">addAnimation</a>().</p>
<!-- @@@animations -->
<!-- $$$event[overload1]$$$eventQEvent* -->
<h3 class="fn"><a name="event"></a><span class="type">bool</span> QAbstractTransition::<span class="name">event</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>e</i> )<tt> [virtual protected]</tt></h3>
<p>Reimplemented from <a href="qobject.html#event">QObject::event</a>().</p>
<!-- @@@event -->
<!-- $$$eventTest[overload1]$$$eventTestQEvent* -->
<h3 class="fn"><a name="eventTest"></a><span class="type">bool</span> QAbstractTransition::<span class="name">eventTest</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>event</i> )<tt> [pure virtual protected]</tt></h3>
<p>This function is called to determine whether the given <i>event</i> should cause this transition to trigger. Reimplement this function and return true if the event should trigger the transition, otherwise return false.</p>
<!-- @@@eventTest -->
<!-- $$$machine[overload1]$$$machine -->
<h3 class="fn"><a name="machine"></a><span class="type"><a href="qstatemachine.html">QStateMachine</a></span> * QAbstractTransition::<span class="name">machine</span> () const</h3>
<p>Returns the state machine that this transition is part of, or 0 if the transition is not part of a state machine.</p>
<!-- @@@machine -->
<!-- $$$onTransition[overload1]$$$onTransitionQEvent* -->
<h3 class="fn"><a name="onTransition"></a><span class="type">void</span> QAbstractTransition::<span class="name">onTransition</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>event</i> )<tt> [pure virtual protected]</tt></h3>
<p>This function is called when the transition is triggered. The given <i>event</i> is what caused the transition to trigger. Reimplement this function to perform custom processing when the transition is triggered.</p>
<!-- @@@onTransition -->
<!-- $$$removeAnimation[overload1]$$$removeAnimationQAbstractAnimation* -->
<h3 class="fn"><a name="removeAnimation"></a><span class="type">void</span> QAbstractTransition::<span class="name">removeAnimation</span> ( <span class="type"><a href="qabstractanimation.html">QAbstractAnimation</a></span> * <i>animation</i> )</h3>
<p>Removes the given <i>animation</i> from this transition.</p>
<p><b>See also </b><a href="qabstracttransition.html#addAnimation">addAnimation</a>().</p>
<!-- @@@removeAnimation -->
<!-- $$$triggered[overload1]$$$triggered -->
<h3 class="fn"><a name="triggered"></a><span class="type">void</span> QAbstractTransition::<span class="name">triggered</span> ()<tt> [signal]</tt></h3>
<p>This signal is emitted when the transition has been triggered (after <a href="qabstracttransition.html#onTransition">onTransition</a>() has been called).</p>
<!-- @@@triggered -->
</div>
      </div>
    </div>
    </div> 
    <div class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2013 Digia Plc and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Digia, Qt and their respective logos are trademarks of Digia Plc 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>