Skip to content
This repository has been archived by the owner on Feb 22, 2024. It is now read-only.

Commit

Permalink
Merge pull request #3 from BlinkID/jenkins-build/stable
Browse files Browse the repository at this point in the history
Jenkins build/stable
  • Loading branch information
DoDoENT authored Nov 24, 2020
2 parents e8dffba + 8997c4f commit 12b7c39
Show file tree
Hide file tree
Showing 322 changed files with 3,865 additions and 1,092 deletions.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@ You should use _BlinkID C SDK_ if you are developing:
* [iOS](#configure-ios)
* [Obtaining a license key](#obtaining-a-license-key)
* [Performing your first scan](#first-scan)
* [Thread safety](#thread-safety)
* [The `Recognizer` concept and the `RecognizerRunner`](#available-recognizers)
* [The `Recognizer` concept](#recognizer-concept)
* [`RecognizerRunner`](#recognizer-runner)
* [Handling processing events with `RecognitionCallback`](#recognition-callbacks)
* [List of available recognizers](#recognizer-list)
* [Barcode recognizer](#barcodeRecognizer)
* [ID barcode recognizer](#idBarcodeRecognizer)
* [BlinkID recognizer](#blinkidRecognizer)
* [BlinkID combined recognizer](#blinkidCombinedRecognizer)
Expand Down Expand Up @@ -100,7 +102,7 @@ You should use _BlinkID C SDK_ if you are developing:

- _BlinkID C SDK_ supports only 64-bit Windows 10
- 32-bit version of Windows 10, as well as Windows 8.1 and earlier versions are **not supported**
- [Visual C++ 2019 redistributable package](https://aka.ms/vs/16/release/VC_redist.x64.exe) is required for BlinkID SDK to work on Windows
- [Visual C++ 2019 redistributable package](https://aka.ms/vs/16/release/VC_redist.x64.exe) is required for _BlinkID C SDK_ to work on Windows

### Android

Expand Down Expand Up @@ -305,6 +307,10 @@ You can obtain a free trial license key by registering to [Microblink dashboard]
blinkIdRecognizerDelete( &blinkIdRecognizer );
```

## <a name="thread-safety"></a> Thread safety

_BlinkID C SDK_ is thread-safe, except for functions for setting the license key. Those are not thread safe and should be called before launching any processing threads. However, [recognizers and RecognizerRunner](#available-recognizers) should not be shared between different threads without synchronization. Each Recognizer, when associated with `RecognizerRunner` can only be used from the single thread at the time. This means that if you plan to process multiple images in different threads in parallel, you should use specific `RecognizerRunner` and recognizer objects for each of your threads. Failure to do so will result in undefined behaviour.

# <a name="available-recognizers"></a> The `Recognizer` concept and the `RecognizerRunner`

This section will first describe [what is a `Recognizer`](#recognizer-concept) and how it should be used to perform recognition of the still images and video frames. Next, we will describe what is a [`RecognizerRunner`](#recognizer-runner) and how it can be used to tweak the recognition procedure.
Expand Down Expand Up @@ -344,6 +350,11 @@ Callbacks for all possible events are bundled into the [`MBRecognitionCallback`]
# <a name="recognizer-list"></a> List of available recognizers

This section will give a list of all `Recognizer` objects that are available within _BlinkID_ SDK, their purpose and recommendations how they should be used to get best performance and user experience.
## <a name="barcodeRecognizer"></a> Barcode recognizer

The [`BarcodeRecognizer`](https://blinkid.github.io/blinkid-c-sdk/struct_m_b_barcode_recognizer.html) is recognizer specialized for scanning various types of barcodes.

As you can see from [the doxygen documentation](https://blinkid.github.io/blinkid-c-sdk/struct_m_b_barcode_recognizer_settings.html), you can enable multiple barcode symbologies within this recognizer, however keep in mind that enabling more barcode symbologies affects scanning performance - the more barcode symbologies are enabled, the slower the overall recognition performance. Also, keep in mind that some simple barcode symbologies that lack proper redundancy, such as [Code 39](https://en.wikipedia.org/wiki/Code_39), can be recognized within more complex barcodes, especially 2D barcodes, like [PDF417](https://en.wikipedia.org/wiki/PDF417).
## <a name="idBarcodeRecognizer"></a> ID barcode recognizer

The [`IdBarcodeRecognizer`](https://blinkid.github.io/blinkid-c-sdk/struct_m_b_id_barcode_recognizer.html) is recognizer specialized for scanning barcodes from various ID cards.
Expand Down
7 changes: 7 additions & 0 deletions Release notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Release notes

## 5.8.1

- fixed a rare crash that could occur when using online license on a device with unstable network connection
- SDK is now thread safe under specific conditions
- those conditions are now documented
- added Barcode recognizer

## 5.8.0

### New additions to our supported documents list
Expand Down
2 changes: 1 addition & 1 deletion docs/_address_detailed_info_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_address_detailed_info_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_anonymization_mode_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_anonymization_mode_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
5 changes: 3 additions & 2 deletions docs/_available_recognizers_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down Expand Up @@ -70,7 +70,8 @@
<div class="title">AvailableRecognizers.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_id_recognizer_8h_source.html">BlinkID/Generic/IdRecognizer.h</a>&quot;</code><br />
<div class="textblock"><code>#include &quot;<a class="el" href="_barcode_recognizer_8h_source.html">BlinkBarcode/BarcodeRecognizer/BarcodeRecognizer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_id_recognizer_8h_source.html">BlinkID/Generic/IdRecognizer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_id_combined_recognizer_8h_source.html">BlinkID/Generic/IdCombinedRecognizer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_id_barcode_recognizer_8h_source.html">BlinkID/Barcode/IdBarcodeRecognizer.h</a>&quot;</code><br />
</div>
Expand Down
14 changes: 8 additions & 6 deletions docs/_available_recognizers_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down Expand Up @@ -74,13 +74,15 @@
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef AVAILABLERECOGNIZERS_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define AVAILABLERECOGNIZERS_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_recognizer_8h.html">BlinkID/Generic/IdRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_combined_recognizer_8h.html">BlinkID/Generic/IdCombinedRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_barcode_recognizer_8h.html">BlinkID/Barcode/IdBarcodeRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_barcode_recognizer_8h.html">BlinkBarcode/BarcodeRecognizer/BarcodeRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_recognizer_8h.html">BlinkID/Generic/IdRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_combined_recognizer_8h.html">BlinkID/Generic/IdCombinedRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_id_barcode_recognizer_8h.html">BlinkID/Barcode/IdBarcodeRecognizer.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="a_id_barcode_recognizer_8h_html"><div class="ttname"><a href="_id_barcode_recognizer_8h.html">IdBarcodeRecognizer.h</a></div></div>
<div class="ttc" id="a_barcode_recognizer_8h_html"><div class="ttname"><a href="_barcode_recognizer_8h.html">BarcodeRecognizer.h</a></div></div>
<div class="ttc" id="a_id_recognizer_8h_html"><div class="ttname"><a href="_id_recognizer_8h.html">IdRecognizer.h</a></div></div>
<div class="ttc" id="a_id_combined_recognizer_8h_html"><div class="ttname"><a href="_id_combined_recognizer_8h.html">IdCombinedRecognizer.h</a></div></div>
<!-- start footer part -->
Expand Down
2 changes: 1 addition & 1 deletion docs/_barcode_data_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_barcode_data_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_barcode_document_type_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_barcode_document_type_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.0</span>
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
Expand Down
117 changes: 117 additions & 0 deletions docs/_barcode_recognizer_8h.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
<meta name="generator" content="Doxygen 1.8.19"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BlinkID C SDK: inc/Recognizer/BlinkBarcode/BarcodeRecognizer/BarcodeRecognizer.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BlinkID C SDK
&#160;<span id="projectnumber">version 5.8.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.19 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="dir_ff9065c61c1972de5c4eefecfb5a24a9.html">Recognizer</a></li><li class="navelem"><a class="el" href="dir_d2b69c51257adfbc194205088b283e9a.html">BlinkBarcode</a></li><li class="navelem"><a class="el" href="dir_6638b910921da9389af89599fe42c64f.html">BarcodeRecognizer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
<div class="title">BarcodeRecognizer.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_export_8h_source.html">Recognizer/Export.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_recognizer_error_8h_source.html">Recognizer/RecognizerError.h</a>&quot;</code><br />
<code>#include &quot;Recognizer/Types.h&quot;</code><br />
<code>#include &quot;<a class="el" href="_recognizer_8h_source.html">Recognizer/Recognizer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_barcode_data_8h_source.html">Recognizer/BlinkBarcode/BarcodeData.h</a>&quot;</code><br />
</div>
<p><a href="_barcode_recognizer_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_b_barcode_recognizer_settings.html">MBBarcodeRecognizerSettings</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Settings for configuring <a class="el" href="struct_m_b_barcode_recognizer.html" title="A recognizer that can scan barcodes.">MBBarcodeRecognizer</a>. <a href="struct_m_b_barcode_recognizer_settings.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_b_barcode_recognizer_result.html">MBBarcodeRecognizerResult</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A result that can be obtained from <a class="el" href="struct_m_b_barcode_recognizer.html" title="A recognizer that can scan barcodes.">MBBarcodeRecognizer</a>. <a href="struct_m_b_barcode_recognizer_result.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a73076d3c532881993214060f3785b7e3"><td class="memItemLeft" align="right" valign="top"><a id="a73076d3c532881993214060f3785b7e3"></a>
typedef typedefMB_EXPORTED_TYPE struct <a class="el" href="struct_m_b_barcode_recognizer_settings.html">MBBarcodeRecognizerSettings</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_barcode_recognizer_8h.html#a73076d3c532881993214060f3785b7e3">MBBarcodeRecognizerSettings</a></td></tr>
<tr class="memdesc:a73076d3c532881993214060f3785b7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typedef for <a class="el" href="struct_m_b_barcode_recognizer_settings.html" title="Settings for configuring MBBarcodeRecognizer.">MBBarcodeRecognizerSettings</a> structure. <br /></td></tr>
<tr class="separator:a73076d3c532881993214060f3785b7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac0d1ac500182075d2e5428e45923b26"><td class="memItemLeft" align="right" valign="top"><a id="aac0d1ac500182075d2e5428e45923b26"></a>
typedef typedefMB_EXPORTED_TYPE struct <a class="el" href="struct_m_b_barcode_recognizer_result.html">MBBarcodeRecognizerResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_barcode_recognizer_8h.html#aac0d1ac500182075d2e5428e45923b26">MBBarcodeRecognizerResult</a></td></tr>
<tr class="memdesc:aac0d1ac500182075d2e5428e45923b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typedef for the <a class="el" href="struct_m_b_barcode_recognizer_result.html" title="A result that can be obtained from MBBarcodeRecognizer.">MBBarcodeRecognizerResult</a> structure. <br /></td></tr>
<tr class="separator:aac0d1ac500182075d2e5428e45923b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac24c9650bfc3cc5c9fdcc9b9f174f118"><td class="memItemLeft" align="right" valign="top"><a id="ac24c9650bfc3cc5c9fdcc9b9f174f118"></a>
typedef typedefMB_EXPORTED_TYPE struct <a class="el" href="struct_m_b_barcode_recognizer.html">MBBarcodeRecognizer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_barcode_recognizer_8h.html#ac24c9650bfc3cc5c9fdcc9b9f174f118">MBBarcodeRecognizer</a></td></tr>
<tr class="memdesc:ac24c9650bfc3cc5c9fdcc9b9f174f118"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typedef for the <a class="el" href="struct_m_b_barcode_recognizer.html" title="A recognizer that can scan barcodes.">MBBarcodeRecognizer</a> structure. <br /></td></tr>
<tr class="separator:ac24c9650bfc3cc5c9fdcc9b9f174f118"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Copyright (c)2018 Microblink Ltd. All rights reserved.</p>
<p>ANY UNAUTHORIZED USE OR SALE, DUPLICATION, OR DISTRIBUTION OF THIS PROGRAM OR ANY OF ITS PARTS, IN SOURCE OR BINARY FORMS, WITH OR WITHOUT MODIFICATION, WITH THE PURPOSE OF ACQUIRING UNLAWFUL MATERIAL OR ANY OTHER BENEFIT IS PROHIBITED! THIS PROGRAM IS PROTECTED BY COPYRIGHT LAWS AND YOU MAY NOT REVERSE ENGINEER, DECOMPILE, OR DISASSEMBLE IT. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.19
</small></address>
</body>
</html>
Loading

0 comments on commit 12b7c39

Please sign in to comment.