<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hello,<br>
</p>
<br>
<div class="moz-cite-prefix">On 04.04.17 14:11, Ginhoux, Patrick
wrote:<br>
</div>
<blockquote
cite="mid:CO2PR07MB2519AEDFA172AE076D528BA0B60B0@CO2PR07MB2519.namprd07.prod.outlook.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
pre
{mso-style-priority:99;
mso-style-link:"Préformaté HTML Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New",serif;
color:black;
mso-fareast-language:FR;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;
mso-fareast-language:FR;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.PrformatHTMLCar
{mso-style-name:"Préformaté HTML Car";
mso-style-priority:99;
mso-style-link:"Préformaté HTML";
font-family:Consolas;
color:black;
mso-fareast-language:EN-US;}
span.EmailStyle24
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:637763217;
mso-list-type:hybrid;
mso-list-template-ids:-1374379530 -247024082 67895321 67895323 67895311 67895321 67895323 67895311 67895321 67895323;}
@list l0:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:53.4pt;
text-indent:-18.0pt;
color:black;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:89.4pt;
text-indent:-18.0pt;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:125.4pt;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:161.4pt;
text-indent:-18.0pt;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:197.4pt;
text-indent:-18.0pt;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:233.4pt;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:269.4pt;
text-indent:-18.0pt;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:305.4pt;
text-indent:-18.0pt;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:341.4pt;
text-indent:-9.0pt;}
@list l1
{mso-list-id:1909799882;
mso-list-type:hybrid;
mso-list-template-ids:-883925768 -1807309672 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l1:level1
{mso-level-start-at:11;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New",serif;}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New",serif;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New",serif;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Thanks
for the link I’ll take a lot more later.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Now
a quick look seems funny :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"
style="mso-margin-top-alt:0cm;margin-right:437.3pt;margin-bottom:0cm;margin-left:35.4pt;margin-bottom:.0001pt"><span
lang="EN">Ideally, the hash function will assign each key to
a unique bucket, <u>but most hash table designs employ an
imperfect hash function</u>, which might cause hash <i><a
moz-do-not-send="true"
href="https://en.wikipedia.org/wiki/Collision_%28computer_science%29"
title="Collision (computer science)">collisions</a></i>
<u>where the hash function generates the same index for more
than one key</u>. Such collisions must be accommodated in
some way.</span><span style="color:#1F497D" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">If
I understand well, this is typically the case I have. Am I
correct ?</span></p>
</div>
</blockquote>
<br>
Yes, when there are collisions, then the slot has more than one
item, stored as a linked list.<br>
<br>
Actually, unlike the statements above, is quite common to have
collisions, otherwise one cannot store more items than the number of
allocated slots.<br>
<br>
The main benefit is speeding up the searching. Imagine you have 1
000 000 items. Finding one by its name can take in the worse case 1
000 000 string comparisons. But if you use a hash table having 1 000
slots with a hashing functions that gives you fair distribution, it
means that once the hash id (a number) is computed (fast in memory
operations), the index of the slot holding the item is 'hashid
module nr_of_slots' , then there can be maximum 1 000 string
comparisons with the items in that slot.<br>
<br>
In additions, by storing the hashid inside the item structure, we
compare first the hashid values and if there is a match, then the
string names, so practically there are number comparisons most of
the time (very fast) and string comparisons (slower) only in very
few occasions (typically only once, when matching the requested
item).<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<blockquote
cite="mid:CO2PR07MB2519AEDFA172AE076D528BA0B60B0@CO2PR07MB2519.namprd07.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span
style="color:#1F497D;mso-fareast-language:FR" lang="EN-US">Cordialement<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="color:#1F497D;mso-fareast-language:FR" lang="EN-US">Patrick
GINHOUX</span><span
style="color:#1F497D;mso-fareast-language:FR"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="color:windowtext;mso-fareast-language:FR">De :</span></b><span
style="color:windowtext;mso-fareast-language:FR">
sr-users [<a class="moz-txt-link-freetext" href="mailto:sr-users-bounces@lists.sip-router.org">mailto:sr-users-bounces@lists.sip-router.org</a>]
<b>De la part de</b> Daniel-Constantin Mierla<br>
<b>Envoyé :</b> mardi 4 avril 2017 12:45<br>
<b>À :</b> Kamailio (SER) - Users Mailing List
<a class="moz-txt-link-rfc2396E" href="mailto:sr-users@lists.sip-router.org"><sr-users@lists.sip-router.org></a><br>
<b>Objet :</b> Re: [SR-Users] Why these 2 items in the
same entry for a htable<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hello,<span style="font-size:12.0pt;mso-fareast-language:FR"><o:p></o:p></span></p>
<p>if you are not familiar with hash table structure, take a bit
of time to read about it, a good article on wikipedia:<o:p></o:p></p>
<p> - <a moz-do-not-send="true"
href="https://en.wikipedia.org/wiki/Hash_table">https://en.wikipedia.org/wiki/Hash_table</a><o:p></o:p></p>
<p>The dump prints only details of the slots (buckets) that have
data on it (size>0). The entry field in the dump content is
practically the index of the slot.<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">I hope it
helps!<br>
<br>
Cheers,<br>
Daniel<o:p></o:p></p>
<div>
<p class="MsoNormal">On 04.04.17 08:49, Ginhoux, Patrick
wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Hi,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">While
working on the project to migrate my kamailio.cfg script
from kamailio 3.3.1 to 5.0.x, I discovered that in there
are 2 items in the same htable.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Below
the figure that illustrate this case :</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:53.4pt;text-indent:-18.0pt;mso-list:l0
level1 lfo2"><!--[if !supportLists]--><span
style="mso-list:Ignore">1)<span style="font:7.0pt
"Times New Roman""> </span></span><!--[endif]--><u><span
lang="EN-US">Content of the MBXRANGE table :</span></u><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">mysql> select * from mbxrange;</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">+-----+-------------+-------------------------------------------------+------------+----------+</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| id | key_name |
key_value |
value_type | key_type |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">+-----+-------------+-------------------------------------------------+------------+----------+</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 0 | VERSION | 120104-173400
| 0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 101 | 1 |
min=0100000000;max=0199999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 102 | 2 |
min=0200000000;max=0299999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 103 | 3 |
min=0300000000;max=0399999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 104 | 4 |
min=0400000000;max=0499999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 105 | 5 |
min=0500000000;max=0599999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 106 | 6 |
min=0600000000;max=0699999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 107 | 7 |
min=0700000000;max=0799999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 108 | 8 |
min=0800000000;max=0899999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 109 | 9 |
min=0900000000;max=0999999999;node=OPMVTS1VSE02 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">| 199 | maxmbxrange |
9 |
0 | 0 |</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">+-----+-------------+-------------------------------------------------+------------+----------+</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">11 rows in set (0.00 sec)</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:53.4pt;text-indent:-18.0pt;mso-list:l0
level1 lfo2"><!--[if !supportLists]--><span
style="mso-list:Ignore">2)<span style="font:7.0pt
"Times New Roman""> </span></span><!--[endif]--><u><span
lang="EN-US">modparam instruction used in my
kamailio.cfg script:</span></u><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:53.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:53.4pt"><span
lang="EN-US">modparam("htable", "htable",
"mbxrangeHash=>size=4;dbtable=mbxrange;")</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:53.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:53.4pt;text-indent:-18.0pt;mso-list:l0
level1 lfo2"><!--[if !supportLists]--><span
style="mso-list:Ignore">3)<span style="font:7.0pt
"Times New Roman""> </span></span><!--[endif]--><u><span
lang="EN-US">Result of « </span></u><u><span
style="font-family:"Courier New",serif"
lang="EN-US">kamctl fifo sht_dump mbxrangeHash » command
with </span></u><u><span lang="EN-US">kamailio version
3.3.x:</span></u><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">[root@op52is4router1 ~]# kamctl fifo sht_dump
mbxrangeHash</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 0</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 6::
min=0600000000;max=0699999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 7::
min=0700000000;max=0799999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 2</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 4::
min=0400000000;max=0499999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 3</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 5::
min=0500000000;max=0599999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 4</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 2::
min=0200000000;max=0299999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
lang="EN-US">Entry:: 5</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
lang="EN-US"> 3::
min=0300000000;max=0399999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
lang="EN-US"> VERSION:: 120104-173400</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 6</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> maxmbxrange:: 9</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 7</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> 1::
min=0100000000;max=0199999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">Entry:: 14</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> </span><span
style="font-family:"Courier New",serif">9::
min=0900000000;max=0999999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif">Entry::
15</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span
style="font-family:"Courier New",serif">
8:: min=0800000000;max=0899999999;node=OPMVTS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:53.4pt"><u><span
lang="EN-US">Result of « kamcmd htable.dump
mbxrangeHash » command with kamailio version 5.0.x :</span></u><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span
lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt">[root@vm-vse02-siprouter1
~]# kamcmd htable.dump mbxrangeHash<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 0</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 6</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0600000000;max=0699999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 7</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0700000000;max=0799999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 2</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 4</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0400000000;max=0499999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 3</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 5</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0500000000;max=0599999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 4</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 2</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0200000000;max=0299999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> entry: 5</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> size: 2</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> name: 3</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> value:
min=0300000000;max=0399999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> name: VERSION</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> value: 120104-173400</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 6</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: maxmbxrange</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value: 9</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 7</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> </span><span
style="font-family:"Courier New",serif">value:
min=0100000000;max=0199999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif">
type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 14</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 9</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0900000000;max=0999999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> type: str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US">{</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> entry: 15</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> size: 1</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> slot: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> item: {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> name: 8</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> value:
min=0800000000;max=0899999999;node=OPMMMS1VSE02</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif"
lang="EN-US"> </span><span
style="font-family:"Courier New",serif">type:
str</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif">
}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif">
}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:106.2pt"><span
style="font-family:"Courier New",serif">}</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">So, I can
see :</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:71.4pt;text-indent:-18.0pt;mso-list:l1
level1 lfo4"><!--[if !supportLists]--><span
style="mso-list:Ignore">-<span style="font:7.0pt
"Times New Roman""> </span></span><!--[endif]--><span
lang="EN-US">The entry number is not incremental 1 by 1 ;
there are entry #1 to #7, then #14 and #15 (all have
size=1)</span><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:71.4pt;text-indent:-18.0pt;mso-list:l1
level1 lfo4"><!--[if !supportLists]--><span
style="mso-list:Ignore">-<span style="font:7.0pt
"Times New Roman""> </span></span><!--[endif]-->For
the entry #5, its size is of 2 and it contains 2 items <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">I
don’t say here that this is a problem, but the way the
htable is loaded seems strange to me. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">So
if there people who can explain me if what I see is normal
or not, and how the htable load process works, I would
appreciate.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Thanks
in advance.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="mso-fareast-language:FR"
lang="EN-US">Cordialement</span><o:p></o:p></p>
<p class="MsoNormal"><span style="mso-fareast-language:FR"
lang="EN-US">Patrick GINHOUX</span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif;mso-fareast-language:FR"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif;mso-fareast-language:FR"><br>
<br>
<o:p></o:p></span></p>
<pre>-- <o:p></o:p></pre>
<pre>Daniel-Constantin Mierla<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a moz-do-not-send="true" href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a><o:p></o:p></pre>
<pre>Kamailio Advanced Training - May 22-24 (USA) - <a moz-do-not-send="true" href="http://www.asipto.com">www.asipto.com</a><o:p></o:p></pre>
<pre>Kamailio World Conference - May 8-10, 2017 - <a moz-do-not-send="true" href="http://www.kamailioworld.com">www.kamailioworld.com</a><o:p></o:p></pre>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla
<a class="moz-txt-link-abbreviated" href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a class="moz-txt-link-abbreviated" href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - May 22-24 (USA) - <a class="moz-txt-link-abbreviated" href="http://www.asipto.com">www.asipto.com</a>
Kamailio World Conference - May 8-10, 2017 - <a class="moz-txt-link-abbreviated" href="http://www.kamailioworld.com">www.kamailioworld.com</a></pre>
</body>
</html>