Avoiding RRDTool's data normalisation for selected targets

Steve Shipway <[email protected]> Thu, 24 May 2012 05:14:32 +0000
Newsgroups gmane.network.mrtg.devel
Message-ID <7294716191A1E142B80615ED2C633BCA0133142F@uxcn10-2.UoA.auckland.ac.nz>
--===============1297431027==
Content-Language: en-US
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
	micalg=SHA1; boundary="----=_NextPart_000_006F_01CD39D0.AF9E2450"

------=_NextPart_000_006F_01CD39D0.AF9E2450
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0070_01CD39D0.AF9E2450"


------=_NextPart_001_0070_01CD39D0.AF9E2450
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

The Data Normalisation of RRDTool has some great reasons for its existence.
However, some times, we want to avoid it because it makes for
counter-intuitive graphs (even if they may be technically more accurate).

 

I suggest adding a new option, 'adjtime', which will cause all data samples
to be pushed back in time to the previous interval boundary, thus making
Data Normalisation a null operation.

 

This is easy to do!  Simply add 3 lines to mrtg and you're there (around
line 467) :

 

            debug('base', "Create Graphics");

+            if( $router->{ options }{ adjtime } ) {

+                $time -= ($time % $cfg{interval} )

+            }

            if ($rcfg{'options'}{'dorelpercent'}{$router}) {

 

You also need to add 'adjtime' to the @known_options array in the cfgcheck()
function in MRTG_lib.pm .

 

    my(@known_options) = qw(growright bits noinfo absolute gauge nopercent
avgpeak derive

                integer perhour perminute transparent dorelpercent

                unknaszero withzeroes noborder noarrow noi noo

-               nobanner nolegend logscale secondmean pngdate printrouter
expscale);

+              nobanner nolegend logscale secondmean pngdate printrouter
expscale  adjtime);


Now there are obvious downsides to this, not least that your data may be
pushed back in time almost 5 minutes and result in inaccurate graphs.
Multiple updates in a single interval would be rejected, and the potential
for missing an interval entirely would increase (but the heartbeat could be
raised to 610 to cope with the latter).  However, anyone choosing to use the
'adjtime' option would do so at their own risk.  The benefits would be that
MRTG users could finally ensure that retrieved values would definitely be
stored as-is, which helps when the variable is a low-valued integer Gauge.

 

Thoughts?

 

Steve

 

  _____  

Steve Shipway

ITS Unix Services Design Lead

University of Auckland, New Zealand

Floor 1, 58 Symonds Street, Auckland

Phone: +64 (0)9 3737599 ext 86487

DDI: +64 (0)9 924 6487

Mobile: +64 (0)21 753 189

Email:  <mailto:[email protected]> [email protected]

P Please consider the environment before printing this e-mail 

 

 


------=_NextPart_001_0070_01CD39D0.AF9E2450
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><META =
HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 12 =
(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:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Webdings;
	panose-1:5 3 1 2 1 5 9 6 7 3;}
@font-face
	{font-family:"Arial Narrow";
	panose-1:2 11 6 6 2 2 2 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";}
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-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-NZ link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>The Data =
Normalisation of RRDTool has some great reasons for its existence.&nbsp; =
However, some times, we want to avoid it because it makes for =
counter-intuitive graphs (even if they may be technically more =
accurate).<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>I suggest adding a new option, &#8216;adjtime&#8217;, =
which will cause all data samples to be pushed back in time to the =
previous interval boundary, thus making Data Normalisation a null =
operation.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>This is easy to do!&nbsp; Simply add 3 lines to mrtg =
and you&#8217;re there (around line 467) :<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; debug('base', &quot;Create Graphics&quot;);<o:p></o:p></p><p =
class=3DMsoNormal>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; if( $router-&gt;{ options }{ adjtime } ) {<o:p></o:p></p><p =
class=3DMsoNormal>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;$time -=3D ($time % $cfg{interval} )<o:p></o:p></p><p =
class=3DMsoNormal>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; }<o:p></o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; if ($rcfg{'options'}{'dorelpercent'}{$router}) =
{<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>You also need to add &#8216;adjtime&#8217; to the =
@known_options array in the cfgcheck() function in MRTG_lib.pm =
.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp; my(@known_options) =3D qw(growright =
bits noinfo absolute gauge nopercent avgpeak derive<o:p></o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer perhour perminute =
transparent dorelpercent<o:p></o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unknaszero withzeroes noborder =
noarrow noi noo<o:p></o:p></p><p class=3DMsoNormal>- =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;nobanner nolegend logscale secondmean pngdate printrouter =
expscale);<o:p></o:p></p><p class=3DMsoNormal>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;nobanner nolegend logscale secondmean pngdate printrouter =
expscale&nbsp; adjtime);<o:p></o:p></p><p class=3DMsoNormal><br>Now =
there are obvious downsides to this, not least that your data may be =
pushed back in time almost 5 minutes and result in inaccurate =
graphs.&nbsp; Multiple updates in a single interval would be rejected, =
and the potential for missing an interval entirely would increase (but =
the heartbeat could be raised to 610 to cope with the latter).&nbsp; =
However, anyone choosing to use the &#8216;adjtime&#8217; option would =
do so at their own risk.&nbsp; The benefits would be that MRTG users =
could finally ensure that retrieved values would definitely be stored =
as-is, which helps when the variable is a low-valued integer =
Gauge.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Thoughts?<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Steve<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div class=3DMsoNormal =
align=3Dcenter style=3D'text-align:center'><span lang=3DEN-US><hr =
size=3D2 width=3D"100%" align=3Dcenter></span></div><p =
class=3DMsoNormal><b>Steve Shipway<o:p></o:p></b></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt'>ITS Unix Services =
Design Lead<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>University of Auckland, New =
Zealand<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt'>Floor 1, 58 Symonds Street, =
Auckland<o:p></o:p></span></p><p class=3DMsoNormal><i><span =
style=3D'font-size:10.0pt;color:#595959'>Phone: +64 (0)9 3737599 ext =
86487<o:p></o:p></span></i></p><p class=3DMsoNormal><i><span =
style=3D'font-size:10.0pt;color:#595959'>DDI: +64 (0)9 924 =
6487<o:p></o:p></span></i></p><p class=3DMsoNormal><i><span =
style=3D'font-size:10.0pt;color:#595959'>Mobile: +64 (0)21 753 =
189<o:p></o:p></span></i></p><p class=3DMsoNormal><i><span =
style=3D'font-size:10.0pt;color:#595959'>Email: <a =
href=3D"mailto:[email protected]"><span =
style=3D'color:#595959'>[email protected]</span></a><o:p></o:p></s=
pan></i></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:18.0pt;font-family:Webdings;color:green'>P</span><span=
 lang=3DEN-GB style=3D'color:blue'> </span><span lang=3DEN-GB =
style=3D'font-size:10.0pt;font-family:"Arial =
Narrow","sans-serif";color:green'>Please consider the environment before =
printing this e-mail</span><span lang=3DEN-GB style=3D'color:blue'> =
</span><span lang=3DEN-GB =
style=3D'font-size:7.5pt;font-family:"Verdana","sans-serif";color:navy'><=
o:p></o:p></span></p><p class=3DMsoNormal><i><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></i></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></body></html>
------=_NextPart_001_0070_01CD39D0.AF9E2450--

------=_NextPart_000_006F_01CD39D0.AF9E2450
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIITazCCBDIw
ggMaoAMCAQICAQEwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0
ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0
ZWQxITAfBgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0y
ODEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIx
EDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhB
QUEgQ2VydGlmaWNhdGUgU2VydmljZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+
QJ30buHqdoccTUVEjr5GyIMGncEq/hgfjuQC+vOrXVCKFjELmgbQxXAizUktVGPMtm5oRgtT6stM
JMC8ck7q8RWu9FSaEgrDerIzYOLaiVXzIljz3tzP74OGooyUT59o8piQRoQnx3a/48w1LIteB2Rl
gsBIsKiR+WGfdiBQqJHHZrXreGIDVvCKGhPqMaMeoJn9OPb2JzJYbwf1a7j7FCuvt6rM1mNfc4za
BZmoOKjLF3g2UazpnvR4Oo3PD9lC4pgMqy+fDgHe75+ZSfEt36x0TRuYtUfF5SnR+ZAYx2KcvoPH
Jns+iiXHwN2d5jVoECCdj9je0sOEnA1e6C/JAgMBAAGjgcAwgb0wHQYDVR0OBBYEFKARCiM+lvEH
7OKvKe+CpX/QMKS0MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MHsGA1UdHwR0MHIw
OKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3Js
MDagNKAyhjBodHRwOi8vY3JsLmNvbW9kby5uZXQvQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
DQYJKoZIhvcNAQEFBQADggEBAAhW/ALwm+j/pPrWe8ZEgM5PxMX2AFjMpra8FEloBHbo5u5d7AIP
YNaNUBhPJk4B4+awpe6/vHRUQb/9/BK4x09a9IlgBX9gtwVK8/bxwr/EuXSGti19a8zS80bdL8bg
asPDNAMsfZbdWsIOpwqZwQWLqwwv81w6z2w3VQmH3lNAbFjv/LarZW4E9hvcPOBaFcae2fFZSDAh
ZQNs7Okhc+ybA6HgN62gFRiP+roCzqcsqRATLNTlCCarIpdg+JBedNSimlO98qlo4KJuwtdssaMP
nr/raOdW8q7y4ys4OgmBtWuF174t7T8at7Jj4vViLILUagBBUPE5g5+V6TaWmG4wggTdMIIDxaAD
AgECAhBxkvvmGV+sTRKFdHE0ohinMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYD
VQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9k
byBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx
MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjCBrjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYD
VQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYD
VQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xp
ZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALI5haTyfatBO2JGN67NwWB1vDll+UoaR6K5zEjMapjVTTUZuaRC5c5J4oovHnzSMQfHTrSD
ZJ0uKdWiZMSFvYVRNXmkTmiQexx6pJKoF/KYFfKTzMmkMpW7DE8wvZigC4vlbhuiRvp4vKJvq1le
pS/Pytptqi/rrKGzaqq3Lmc1i3nhHmmI4uZGzaCl6r4LznY6eg6b6vzaJ1s9cx8i5khhxkzzabGo
Lhu21DEgLLyCio6kDqXXiUP8FlqvHXHXEVnauocNr/rz4cLwpMVnjNbWVDreCqS6A3ezZcj9HtN0
YqoYymiTHqGFfvVHZcv4TVcodNI0/zC27vZiMBSMLOsCAwEAAaOCAScwggEjMB8GA1UdIwQYMBaA
FKARCiM+lvEH7OKvKe+CpX/QMKS0MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTAOBgNV
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
AwQwEQYDVR0gBAowCDAGBgRVHSAAMHsGA1UdHwR0MHIwOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2Rv
Y2EuY29tL0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDagNKAyhjBodHRwOi8vY3JsLmNvbW9k
by5uZXQvQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwEQYJYIZIAYb4QgEBBAQDAgEGMA0GCSqG
SIb3DQEBBQUAA4IBAQCdlcs8uH6lCcQevwvCx3aOOTyUxhCqTwzJ4KuEXYlU4GU7820cfDcsJVRf
liH8N4SRnRXcFE+Bz1Qda2xFYMct+ZdRTPlmyjyggoymyPDi6dRK+ew/VsnddozDggFPbADzHhph
dARHA6nGQFeRvGUixSdnT1fbZFrZjR+6hi/0Bq6cae3p9M8pF9jgSp8aIC+XTFG7RgfEijdOIOMJ
MWjHnsSLneh+EbwyaBCWEZhE2CpRYE2I63Q630MGMsg5Vow6EVLTQaRDA/Tt7zMn2zngFE4mydj1
OeKJuJNdtykmQeqzm66D/Hd1yujKtf7iZUpjPkTE0MNeh3OpmByvfxV/MIIFGjCCBAKgAwIBAgIQ
bRnqpxlPajMi5iIyeqpx3jANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
AlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3
b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVUTi1VU0VS
Rmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw0xMTA0MjgwMDAwMDBaFw0y
MDA1MzAxMDQ4MzhaMIGTMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
MRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE5MDcGA1UEAxMw
Q09NT0RPIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkoSEW0tXmNReL4uk4UDIo1NYX2Zl8TJO958yfVXQeExV
t0KU4PkncQfFxmmkuTLE8UAakMwnVmJ/F7Vxaa7lIBvky2NeYMqiQfZq4aP/uN8fSG1lQ4wqLitj
OHffsReswtqCAtbUMmrUZ28gE49cNfrlVICv2HEKHTcKAlBTbJUdqRAUtJmVWRIx/wmi0kzcUtve
4kABW0ho3cVKtODtJB86r3FfB+OsvxQ7sCVxaD30D9YXWEYVgTxoi4uDD216IVfmNLDbMn7jSuGl
UnJkJpFOpZIP/+CxYP0ab2hRmWONGoulzEKbm30iY9OpoPzOnpDfRBn0XFs1uhbzp5v/wQIDAQAB
o4IBSzCCAUcwHwYDVR0jBBgwFoAUiYJnfcSdJnAAS7RQSHzePa4Ebn0wHQYDVR0OBBYEFHoTTgB0
W8Z4Y2QnwS/ioFu8ecV7MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMBEGA1Ud
IAQKMAgwBgYEVR0gADBYBgNVHR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20v
VVROLVVTRVJGaXJzdC1DbGllbnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDB0BggrBgEFBQcB
AQRoMGYwPQYIKwYBBQUHMAKGMWh0dHA6Ly9jcnQudXNlcnRydXN0LmNvbS9VVE5BZGRUcnVzdENs
aWVudF9DQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZI
hvcNAQEFBQADggEBAIXWvnhXVW0zf0RS/kLVBqgBA4CK+w2y/Uq/9q9BSfUbWsXSrRtzbj7pJnzm
TJjBMCjfy/tCPKElPgp11tA9OYZm0aGbtU2bb68obB2v5ep0WqjascDxdXovnrqTecr+4pEeVnSy
+I3T4ENyG+2P/WA5IEf7i686ZUg8mD2lJb+972DgSeUWyOs/Q4Pw4O4NwdPNM1+b0L1garM7/vrU
yTo8H+2b/5tJM75CKTmD7jNpLoKdRU2oadqAGx490hpdfEeZpZsIbRKZhtZdVwcbpzC+S0lEuJB+
ytF5OOu0M/qgOl0mWJ5hVRi0IdWZ1eBDQEIwvuql55TSsP7zdfl/bucwggUyMIIEGqADAgECAhEA
1S71y4E8TK8Xb4HzEmUUpjANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENB
IExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3Vy
ZSBFbWFpbCBDQTAeFw0xMjAxMTMwMDAwMDBaFw0xMzAxMTIyMzU5NTlaMCkxJzAlBgkqhkiG9w0B
CQEWGHMuc2hpcHdheUBhdWNrbGFuZC5hYy5uejCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBANrNUH8VJJTRBzTL3nhjH5B//2IjVSws4WkLuITnzjndxq7IAlTb0+6oqk52CR5rwPjD0ySz
SHPv4cOrbZg//7P3kWsin2oXuBZlRdlhtUmjV/EpskS+ux0FDCRvMIUHN9v5GcvKDNl8v//Rm9n0
kozo4iEP+CZdH1qJziBVfwnvJvLviAztUifTqCbU06InJen3uh265Q1gpuAZNQg4pH3Te7dWrhLY
j0fLV9oaa0BvCZY4AWUwFH3uSBQQo3SdnBNpZr01lxt1pwMqELSraZw+N6IFKMWqaMkFV2Fw0HlP
CPebNo5NPFw7tdR7P7ww1C1yierBIa3TGeHiB5W/EiUCAwEAAaOCAegwggHkMB8GA1UdIwQYMBaA
FHoTTgB0W8Z4Y2QnwS/ioFu8ecV7MB0GA1UdDgQWBBROSX01o5iA+6rd4FOa+71lGr/BWDAOBgNV
HQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAgBgNVHSUEGTAXBggrBgEFBQcDBAYLKwYBBAGyMQED
BQIwEQYJYIZIAYb4QgEBBAQDAgUgMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQEBMCswKQYIKwYB
BQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5uZXQvQ1BTMFcGA1UdHwRQME4wTKBKoEiGRmh0
dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET0NsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJl
RW1haWxDQS5jcmwwgYgGCCsGAQUFBwEBBHwwejBSBggrBgEFBQcwAoZGaHR0cDovL2NydC5jb21v
ZG9jYS5jb20vQ09NT0RPQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAk
BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMCMGA1UdEQQcMBqBGHMuc2hpcHdh
eUBhdWNrbGFuZC5hYy5uejANBgkqhkiG9w0BAQUFAAOCAQEASAR4ohkCqKkYvhAIM8NcAZ6Fv/ai
fM0bA5+cidQfvTSKooNclFTug37Cxtz9pwm/AND2RFpSNzIyG8m3TslSAAhx1eKV1C7bDuoE/nQk
gBUiuuuLO0Jt44WP+02uGAknfbdf/bL0mMSqCDEcp2bd/1KqOJoJyQ5tyohPVPW2WHi96NeqtGBY
W8a7ohluLLzEjmo82I5A8Hz3ymoPQlpgKYkB0Mm/GiqvTmhxMoR4rVFhh/iX2/UFiEbx5FSY9eCQ
/tgpG0MCDlkzPp0wnKbHo6S1wDbKtLzQTfDTB4KUHZQvt3d2G94TdJ2Z+7lEJ0dC+M9VXzYlBCUC
giXzHijj0DGCBBcwggQTAgEBMIGpMIGTMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBN
YW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE5
MDcGA1UEAxMwQ09NT0RPIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENB
AhEA1S71y4E8TK8Xb4HzEmUUpjAJBgUrDgMCGgUAoIICQjAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN
AQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA1MjQwNTE0MzJaMCMGCSqGSIb3DQEJBDEWBBTbhJV16G3Y
txTdWE8Bdk8Av+7GSDBnBgkqhkiG9w0BCQ8xWjBYMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIA
gDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG
9w0CBTCBugYJKwYBBAGCNxAEMYGsMIGpMIGTMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRl
ciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRl
ZDE5MDcGA1UEAxMwQ09NT0RPIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWls
IENBAhEA1S71y4E8TK8Xb4HzEmUUpjCBvAYLKoZIhvcNAQkQAgsxgayggakwgZMxCzAJBgNVBAYT
AkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNV
BAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50IEF1dGhlbnRpY2F0
aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEQDVLvXLgTxMrxdvgfMSZRSmMA0GCSqGSIb3DQEBAQUA
BIIBAMSJ2OOQwBCHt832fRiAtjRzJL1gGO75CxoEtdqyHJQLgQjRGC/LVFDaPJcOCpUoo1pqQVOr
Bu3h2+z5q/8+7ndGLpVABgEsh2Diz8pQBGI5pv82aP2o13366+SPb7WJMwZffL/a+3gQYroo9u7q
Nifygdc0f+x+UQbh7HuOwy9kIrwvWNR0hRTT1DrPiGUDNSc+N5j301Uqx/OhiPzAevbzUHzLtyUM
1tc/BkYhP1VJpZDI9mLPAnqIIITOXJlRTyTLzQHwQXZ+fZqCktOL1mkEgoJjU1bLzIH+piFQwwHA
qyuusuKtExDwzR/81+ekp8DUBuoJhZmquV31Cz7TUV8AAAAAAAA=

------=_NextPart_000_006F_01CD39D0.AF9E2450--


--===============1297431027==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
mrtg-developers mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/mrtg-developers

--===============1297431027==--