Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ffmpeg-doc / usr / share / doc / ffmpeg-doc / api / eval_8h.html
Size: Mime:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FFmpeg: libavutil/eval.h File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">FFmpeg
   &#160;<span id="projectnumber">2.7.1</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">libavutil/eval.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>simple arithmetic expression evaluator  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="avutil_8h_source.html">avutil.h</a>&quot;</code><br/>
</div>
<p><a href="eval_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#a2d19271d518d49f3cb2df8c347856b18">av_expr_parse_and_eval</a> (double *res, const char *s, const char *const *const_names, const double *const_values, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), void *opaque, int log_offset, void *log_ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse and evaluate an expression.  <a href="#a2d19271d518d49f3cb2df8c347856b18"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#ad3bf8f3330d1fd139de2ca156c313f34">av_expr_parse</a> (<a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> **expr, const char *s, const char *const *const_names, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), int log_offset, void *log_ctx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse an expression.  <a href="#ad3bf8f3330d1fd139de2ca156c313f34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#a569b6171b99e02f899d9ba8b5545cc27">av_expr_eval</a> (<a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> *e, const double *const_values, void *opaque)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate a previously parsed expression.  <a href="#a569b6171b99e02f899d9ba8b5545cc27"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#a01c05d7049a9208c2b22147a3f16c58c">av_expr_free</a> (<a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> *e)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a parsed expression previously created with <a class="el" href="eval_8h.html#ad3bf8f3330d1fd139de2ca156c313f34" title="Parse an expression.">av_expr_parse()</a>.  <a href="#a01c05d7049a9208c2b22147a3f16c58c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eval_8h.html#a7d21905c92ee5af0bb529d2daf8cb7c3">av_strtod</a> (const char *numstr, char **tail)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the string in numstr and return its value as a double.  <a href="#a7d21905c92ee5af0bb529d2daf8cb7c3"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>simple arithmetic expression evaluator </p>

<p>Definition in file <a class="el" href="eval_8h_source.html">eval.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ac09a495d176de152a38347ca8ba069a8"></a><!-- doxytag: member="eval.h::AVExpr" ref="ac09a495d176de152a38347ca8ba069a8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> <a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="eval_8h_source.html#l00031">31</a> of file <a class="el" href="eval_8h_source.html">eval.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a2d19271d518d49f3cb2df8c347856b18"></a><!-- doxytag: member="eval.h::av_expr_parse_and_eval" ref="a2d19271d518d49f3cb2df8c347856b18" args="(double *res, const char *s, const char *const *const_names, const double *const_values, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), void *opaque, int log_offset, void *log_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="eval_8h.html#a2d19271d518d49f3cb2df8c347856b18">av_expr_parse_and_eval</a> </td>
          <td>(</td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>const_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>const_values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>func1_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double(**)(void *, double)&#160;</td>
          <td class="paramname"><em>funcs1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>func2_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double(**)(void *, double, double)&#160;</td>
          <td class="paramname"><em>funcs2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opaque</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>log_offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>log_ctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse and evaluate an expression. </p>
<p>Note, this is significantly slower than <a class="el" href="eval_8h.html#a569b6171b99e02f899d9ba8b5545cc27" title="Evaluate a previously parsed expression.">av_expr_eval()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">res</td><td>a pointer to a double where is put the result value of the expression, or NAN in case of error </td></tr>
    <tr><td class="paramname">s</td><td>expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" </td></tr>
    <tr><td class="paramname">const_names</td><td>NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} </td></tr>
    <tr><td class="paramname">const_values</td><td>a zero terminated array of values for the identifiers from const_names </td></tr>
    <tr><td class="paramname">func1_names</td><td>NULL terminated array of zero terminated strings of funcs1 identifiers </td></tr>
    <tr><td class="paramname">funcs1</td><td>NULL terminated array of function pointers for functions which take 1 argument </td></tr>
    <tr><td class="paramname">func2_names</td><td>NULL terminated array of zero terminated strings of funcs2 identifiers </td></tr>
    <tr><td class="paramname">funcs2</td><td>NULL terminated array of function pointers for functions which take 2 arguments </td></tr>
    <tr><td class="paramname">opaque</td><td>a pointer which will be passed to all functions from funcs1 and funcs2 </td></tr>
    <tr><td class="paramname">log_ctx</td><td>parent logging context </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>&gt;= 0 in case of success, a negative value corresponding to an AVERROR code otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ad3bf8f3330d1fd139de2ca156c313f34"></a><!-- doxytag: member="eval.h::av_expr_parse" ref="ad3bf8f3330d1fd139de2ca156c313f34" args="(AVExpr **expr, const char *s, const char *const *const_names, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), int log_offset, void *log_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="eval_8h.html#ad3bf8f3330d1fd139de2ca156c313f34">av_expr_parse</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> **&#160;</td>
          <td class="paramname"><em>expr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>const_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>func1_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double(**)(void *, double)&#160;</td>
          <td class="paramname"><em>funcs1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>func2_names</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double(**)(void *, double, double)&#160;</td>
          <td class="paramname"><em>funcs2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>log_offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>log_ctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse an expression. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">expr</td><td>a pointer where is put an AVExpr containing the parsed value in case of successful parsing, or NULL otherwise. The pointed to AVExpr must be freed with <a class="el" href="eval_8h.html#a01c05d7049a9208c2b22147a3f16c58c" title="Free a parsed expression previously created with av_expr_parse().">av_expr_free()</a> by the user when it is not needed anymore. </td></tr>
    <tr><td class="paramname">s</td><td>expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" </td></tr>
    <tr><td class="paramname">const_names</td><td>NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} </td></tr>
    <tr><td class="paramname">func1_names</td><td>NULL terminated array of zero terminated strings of funcs1 identifiers </td></tr>
    <tr><td class="paramname">funcs1</td><td>NULL terminated array of function pointers for functions which take 1 argument </td></tr>
    <tr><td class="paramname">func2_names</td><td>NULL terminated array of zero terminated strings of funcs2 identifiers </td></tr>
    <tr><td class="paramname">funcs2</td><td>NULL terminated array of function pointers for functions which take 2 arguments </td></tr>
    <tr><td class="paramname">log_ctx</td><td>parent logging context </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>&gt;= 0 in case of success, a negative value corresponding to an AVERROR code otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a569b6171b99e02f899d9ba8b5545cc27"></a><!-- doxytag: member="eval.h::av_expr_eval" ref="a569b6171b99e02f899d9ba8b5545cc27" args="(AVExpr *e, const double *const_values, void *opaque)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="eval_8h.html#a569b6171b99e02f899d9ba8b5545cc27">av_expr_eval</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> *&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>const_values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>opaque</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Evaluate a previously parsed expression. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">const_values</td><td>a zero terminated array of values for the identifiers from <a class="el" href="eval_8h.html#ad3bf8f3330d1fd139de2ca156c313f34" title="Parse an expression.">av_expr_parse()</a> const_names </td></tr>
    <tr><td class="paramname">opaque</td><td>a pointer which will be passed to all functions from funcs1 and funcs2 </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the value of the expression </dd></dl>

</div>
</div>
<a class="anchor" id="a01c05d7049a9208c2b22147a3f16c58c"></a><!-- doxytag: member="eval.h::av_expr_free" ref="a01c05d7049a9208c2b22147a3f16c58c" args="(AVExpr *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="eval_8h.html#a01c05d7049a9208c2b22147a3f16c58c">av_expr_free</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="eval_8h.html#ac09a495d176de152a38347ca8ba069a8">AVExpr</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free a parsed expression previously created with <a class="el" href="eval_8h.html#ad3bf8f3330d1fd139de2ca156c313f34" title="Parse an expression.">av_expr_parse()</a>. </p>

</div>
</div>
<a class="anchor" id="a7d21905c92ee5af0bb529d2daf8cb7c3"></a><!-- doxytag: member="eval.h::av_strtod" ref="a7d21905c92ee5af0bb529d2daf8cb7c3" args="(const char *numstr, char **tail)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="eval_8h.html#a7d21905c92ee5af0bb529d2daf8cb7c3">av_strtod</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>numstr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>tail</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse the string in numstr and return its value as a double. </p>
<p>If the string is empty, contains only whitespaces, or does not contain an initial substring that has the expected syntax for a floating-point number, no conversion is performed. In this case, returns a value of zero and the value returned in tail is the value of numstr.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">numstr</td><td>a string representing a number, may contain one of the International System number postfixes, for example 'K', 'M', 'G'. If 'i' is appended after the postfix, powers of 2 are used instead of powers of 10. The 'B' postfix multiplies the value for 8, and can be appended after another postfix or used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. </td></tr>
    <tr><td class="paramname">tail</td><td>if non-NULL puts here the pointer to the char next after the last parsed character </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>