<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@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:Georgia;
        panose-1:2 4 5 2 5 4 5 2 3 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>You say:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>> </span>If the adapter disconnects (like Wi-Fi), libpcap API should only report time-out (you don't get any new packets).<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Not all libpcap/WinPcap/npcap applications are sniffers which permanently hang on a pcap_t waiting for packet arrival.  Some periodically poll for packets and count on the timeout behavior which is currently available.  A linkstate change is a significant event which should be discernable using the pcap API if an error is returned (-1).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>You also say:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>> </span>Npcap actually doesn't report errors any better than WinPcap. There's even a chance that Npcap behaves different on reporting errors with WinPcap. Because Npcap uses NDIS6 and WinPcap uses NDIS5.<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Well, it may not, but WinPcap is frozen and npcap is actively being developed.  We’re discussing how to address the deficiency  in the current behavior in the  most appropriate way.  Given that NDIS6 is the modern API to access this stuff and it is closer to the real hardware it would seem that this information would be more available and certainly could be added.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><a name="_MailEndCompose"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></a></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> winpcap-users-bounces@winpcap.org [mailto:winpcap-users-bounces@winpcap.org] <b>On Behalf Of </b>?????V5<br><b>Sent:</b> Thursday, February 4, 2016 8:44 PM<br><b>To:</b> winpcap-users@winpcap.org<br><b>Subject:</b> Re: [Winpcap-users] Windows 10 support for WinPcap<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Fri, Feb 5, 2016 at 3:56 AM, Mark Pizzolato - Winpcap-Users <<a href="mailto:winpcap-users-20040408@subscriptions.pizzolato.net" target="_blank">winpcap-users-20040408@subscriptions.pizzolato.net</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The inverted call model might be useful in an abstract way to get notified of a media </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>state change, however, the question then comes back to how to convey that detail </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>to the application which is using the libpcap APIs.  </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Since the only APIs that an application which already has a pcap session opened </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>is using are: pcap_next_ex, pcap_dispatch, pcap_loop and possibly </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>pcap_sendpacket</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>pcap_next_ex, pcap_dispatch and pcap_loop are defined to return -1 on an error.  </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Is media state change an error?</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>                Is media offline an error?</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I prefer to use the phrases in ncpa.cpl.<o:p></o:p></p></div><div><p class=MsoNormal>If the adapter disconnects (like Wi-Fi), libpcap API should only report time-out (you don't get any new packets).<o:p></o:p></p></div><div><p class=MsoNormal>If the adapter is disabled, libpcap API may report error (or time-out)? I didn't try this. One thing for sure is that you can't get new packets too. This thing should not happen when using Npcap/WinPcap. Because when listing adapters with Npcap/WinPcap, disabled adapters never show up on the list. So Npcap/WinPcap assumes that the adapters it uses is always kept as enabled.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>pcap_sendpacket is defined to return -1 if a packet wasn’t successfully sent.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>                It would seem that returning -1 when the media is offline makes sense</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>This makes sense to me.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I don’t know for sure how WinPcap behaves under these conditions, but it </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>seems that it npcap should reliably report errors under the media offline state.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Is there a reason it can’t?</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Npcap actually doesn't report errors any better than WinPcap. There's even a chance that Npcap behaves different on reporting errors with WinPcap. Because Npcap uses NDIS6 and WinPcap uses NDIS5.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a name="-1382340311__MailEndCompose"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span></a><o:p></o:p></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> <a href="mailto:winpcap-users-bounces@winpcap.org" target="_blank">winpcap-users-bounces@winpcap.org</a> [mailto:<a href="mailto:winpcap-users-bounces@winpcap.org" target="_blank">winpcap-users-bounces@winpcap.org</a>] <b>On Behalf Of </b>Jiyang Hu<br><b>Sent:</b> Thursday, February 4, 2016 11:18 AM<br><b>To:</b> <a href="mailto:winpcap-users@winpcap.org" target="_blank">winpcap-users@winpcap.org</a><br><b>Subject:</b> Re: [Winpcap-users] Windows 10 support for WinPcap</span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>@Sven: you need something called - Inverted Call Model</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'><a href="https://www.osr.com/nt-insider/2013-issue1/inverted-call-model-kmdf/" target="_blank">The Inverted Call Model in KMDF - OSR</a></span><o:p></o:p></p></div><div style='margin-top:3.75pt;margin-bottom:3.75pt'><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=563 style='width:337.5pt;border-collapse:collapse'><tr style='height:.75pt'><td colspan=8 style='background:#E5E5E5;padding:0in 0in 0in 0in;height:.75pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:#E5E5E5'><span style='font-size:1.0pt'> </span><o:p></o:p></p></div></td></tr><tr style='height:4.5pt'><td width=1 rowspan=5 style='width:.75pt;background:#E5E5E5;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:#E5E5E5'><span style='font-size:1.0pt'> </span><o:p></o:p></p></div></td><td width=210 rowspan=5 style='width:1.75in;background:white;padding:0in 0in 0in 0in;height:4.5pt'><p class=MsoNormal align=center style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:center'><a href="https://www.osr.com/nt-insider/2013-issue1/inverted-call-model-kmdf/" target="_blank"><span style='border:solid windowtext 1.0pt;padding:0in;text-decoration:none'><img border=0 width=168 height=168 id="_x0000_i1025" src="cid:image001.jpg@01D15FF6.8C6221D0" alt="Image removed by sender. image"></span></a><o:p></o:p></p></td><td width=1 rowspan=5 style='width:.75pt;background:#E5E5E5;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:#E5E5E5'><span style='font-size:1.0pt'> </span><o:p></o:p></p></div></td><td width=18 rowspan=5 style='width:10.5pt;background:white;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:14.0pt'> </span><o:p></o:p></p></div></td><td colspan=2 style='background:white;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:6.0pt'> </span><o:p></o:p></p></div></td><td width=25 rowspan=5 style='width:15.0pt;background:white;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:20.0pt'> </span><o:p></o:p></p></div></td><td width=1 rowspan=5 style='width:.75pt;background:#E5E5E5;padding:0in 0in 0in 0in;height:4.5pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:#E5E5E5'><span style='font-size:1.0pt'> </span><o:p></o:p></p></div></td></tr><tr><td width="100%" colspan=2 style='width:100.0%;padding:0in 0in 0in 0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:12.4pt;background:white;word-break:break-all'><span style='font-family:"Georgia",serif'><a href="https://www.osr.com/nt-insider/2013-issue1/inverted-call-model-kmdf/" target="_blank"><span style='font-size:13.5pt;color:black;text-decoration:none'>The Inverted Call Model in KMDF - OSR</span></a></span><o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:15.0pt;background:white;word-break:break-all'><span style='font-size:10.0pt;font-family:"Georgia",serif;color:#999999'>One of the most common questions we see from students, clients, and new Windows driver Read more</span><o:p></o:p></p></div></div></div></td></tr><tr style='height:3.0pt'><td colspan=2 style='background:white;padding:0in 0in 0in 0in;height:3.0pt'></td></tr><tr><td style='padding:0in 0in 0in 0in'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:1.0pt;font-family:"Arial",sans-serif'><a href="https://www.osr.com/nt-insider/2013-issue1/inverted-call-model-kmdf/" target="_blank"><span style='font-size:7.0pt;color:#999999;text-decoration:none'>View on <b>www.osr.com</b></span></a></span><o:p></o:p></p></div></td><td width=125 style='width:75.0pt;padding:0in 0in 0in 0in'><p class=MsoNormal align=right style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:right;line-height:8.25pt'><span style='font-size:7.0pt;font-family:"Arial",sans-serif;color:#999999'>Preview by Yahoo</span><o:p></o:p></p></td></tr><tr style='height:6.75pt'><td colspan=2 style='background:white;padding:0in 0in 0in 0in;height:6.75pt'></td></tr><tr style='height:.75pt'><td colspan=8 style='background:#E5E5E5;padding:0in 0in 0in 0in;height:.75pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:#E5E5E5'><span style='font-size:1.0pt'> </span><o:p></o:p></p></div></td></tr><tr><td width=1 style='width:.6pt;padding:0in 0in 0in 0in'></td><td width=172 style='width:103.2pt;padding:0in 0in 0in 0in'></td><td width=1 style='width:.6pt;padding:0in 0in 0in 0in'></td><td width=6 style='width:.05in;padding:0in 0in 0in 0in'></td><td width=188 style='width:112.8pt;padding:0in 0in 0in 0in'></td><td width=185 style='width:111.0pt;padding:0in 0in 0in 0in'></td><td width=8 style='width:4.8pt;padding:0in 0in 0in 0in'></td><td width=1 style='width:.6pt;padding:0in 0in 0in 0in'></td></tr></table></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p></div><div><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>On Thursday, February 4, 2016 12:49 PM, Sven Kerschbaum <<a href="mailto:svkers@gmail.com" target="_blank">svkers@gmail.com</a>> wrote:</span><o:p></o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p><div><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>@Yang: It is not possible to get notifications of media state changes by the API which you proposed in your previous post. It provides only notifications about IP table changes.</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>Am 04.02.2016 16:31 schrieb "Sven Kerschbaum" <<a href="mailto:svkers@gmail.com" target="_blank">svkers@gmail.com</a>>:</span><o:p></o:p></p><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>Hi Yang,</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>thanks for providing me the detailed information about Npcap. I will definitively have a look at it and try it.</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'> </span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>Cheers,</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'><span style='font-family:"Helvetica",sans-serif;color:black'>SK</span><o:p></o:p></p></div></div></blockquote></div></div></div></div></div></div></div></div></div></div></div></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></body></html>