From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0066.outbound.protection.outlook.com [157.56.112.66]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 3F59821F707 for ; Fri, 30 Oct 2015 13:30:38 -0700 (PDT) Received: from AM2PR07MB0929.eurprd07.prod.outlook.com (10.162.37.12) by AM2PR07MB0772.eurprd07.prod.outlook.com (10.161.70.25) with Microsoft SMTP Server (TLS) id 15.1.312.18; Fri, 30 Oct 2015 20:30:35 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; Received: from [IPv6:2001:470:183f:da2b::632f:a7da] (2001:470:183f:da2b::632f:a7da) by AM2PR07MB0929.eurprd07.prod.outlook.com (10.162.37.12) with Microsoft SMTP Server (TLS) id 15.1.306.13; Fri, 30 Oct 2015 20:30:33 +0000 To: References: <87a8r4mji9.fsf@toke.dk> <5632591A.5040403@darbyshire-bryant.me.uk> From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <5633D365.1060004@darbyshire-bryant.me.uk> Date: Fri, 30 Oct 2015 20:30:29 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <5632591A.5040403@darbyshire-bryant.me.uk> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms070506000900080700080101" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: DB5PR09CA0078.eurprd09.prod.outlook.com (25.162.34.46) To AM2PR07MB0929.eurprd07.prod.outlook.com (25.162.37.12) X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0929; 2:mvULkBAr5KPIF211D+Lt/OV4DKvdg/Ky7Lg0A0LUpVIaszWnN9Uv+T/aw7MT/Xjlt2RBABDDWeGC2w6QDGPh7trpI0KG7ifB72RhXvU2A2ZcjeS1cpEQP+9KsWekTfJ8CbqlRTCK+FImqAETz5v2d6jwKA/zn19NufJY33DouaY=; 3:tj9eSrV5iqrfSb0rwABjxGjw9dBBaN4iuMor/8qemGJHlmAA6FTIj0RtH60WMol6/WVzN0sHvf5Lk3hMWKY9D/sYguVVxnN9Qx5KvcD23/UVuvP4V3Zm7v/b9fTgHZ9Qj4wzklzK2nxXA4PSJ/phTw==; 25:d6HBsGeZB/BSE3fXj/mpAmP9srhJaIpJCVqz/Jvn8BuY/+SmHIt+aqirPpP+iinbGIsqYQZ7vEFbVflzM3/py7b0H1Xi0txLJzn8xbeYdtiAstwvDZ6HE8LUDe+ky+da3Q1AUbQYnOql0lMZ92P0nPD4uvpawFvJtRhjnStwDvuSGhkXtVuMAfdeqwZNCueRQ8sgbJ2P4vLlYfhmMuqzceoW/tNzAkCf5sG3wldO0fYYqp7nzc1S+FEYefxY39VBpjdtzPaH0yPh2cuqABtn9A== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0929; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001)(102215026); SRVR:AM2PR07MB0929; BCL:0; PCL:0; RULEID:; SRVR:AM2PR07MB0929; X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0929; 4:4cSWS8bj/vBWKBox5rXxQI56DqGyN/U3t/2BqwE/VB3WWzpZwsXz7vExv5zsrfY/I62wzEEf6sgWkZSpAvk9qO93WJ0Pl4FGcVRD7+JE55z0cFmH+4TGaonS/8iD2x7mJsPgddxtd6Cs0TKFMC/zP5z9hPADrN4x8tvE9QnpOFexwXdMybKg4HPy1D7XWxd4Nx+vGDLRDOzxy/ahB5qb4fuKz/N7z6MCgoxzAY8p0E3CHszOtIfSOU+M/sL60npmmN5WOEdgBB9IID9Kbv9ZL0B+b9P3yQqB8TrfSSofQcf3O47Jf/poUoh0uvQKfpe6GtQot/6pUl6qdYfHPueQ55t3Av6B7En2Y1BqsHDdi29H/c9dDGowQTsAzVPK9c9YLt0JcVzC4l5nPD8H/IeSOg== X-Forefront-PRVS: 07459438AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(24454002)(479174004)(189002)(65956001)(107886002)(74482002)(2950100001)(450100001)(42186005)(84326002)(5890100001)(77096005)(40100003)(122386002)(65806001)(5004730100002)(5007970100001)(110136002)(36756003)(101416001)(83506001)(106356001)(54356999)(5008740100001)(97736004)(512944002)(87266999)(50986999)(87976001)(568964001)(76176999)(189998001)(81156007)(80316001)(5001960100002)(2351001)(86362001)(33656002)(105586002)(4001350100001)(59896002)(64126003)(65816999)(92566002)(3826002)(5001840100002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR07MB0929; H:[IPv6:2001:470:183f:da2b::632f:a7da]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM2PR07MB0929; 23:xdTMd55llWMGvohg23lwIIj0z73r7CMFQxd09Vunn?= =?us-ascii?Q?sfVZROMRWs4+iH2D2PzzzQCX4fwqClE822OWMfuoXbwHPUCIMb9Zdjl9bR6P?= =?us-ascii?Q?e0UvbXPTOCvks/adOX7i9TUKFefq1N6k/nkSzqg/n6lELiSeldZwQdm45rwj?= =?us-ascii?Q?Ci2jtivfFQ2A2h7uzpVKDkqmqZt1Vra3ODmNCYFQybeY0w2gzEDwcr/GTDKK?= =?us-ascii?Q?DfjrR+1sW8iOle3S9N7M3+h5uZORNTnzRYlpRY/ENzcoFpGTW2c/68X6jCFN?= =?us-ascii?Q?Axx5a+XJswW5UT8Gn4B1IvhpjbnxClemzYiiHc+SEkfgK5mtOuS/+6F2EZrw?= =?us-ascii?Q?Orhku5mGweqO2H/lEDQHysZaQSRkjXj6ZGkm1yPlzCwhwLCUNJn0PGJ0KOrx?= =?us-ascii?Q?2fRZfka7Sm1F3D9hg3J2gUhWjQNQt7i+Ya1U89WimFBR07maViVizcMlCovG?= =?us-ascii?Q?7AF0PALj6Z8LQZLXvrG9vJB4YHA1o+7oJBBC9pmSOoiX3sZPW1OGdFBDx3ul?= =?us-ascii?Q?Id4Rd42XxVmX6XvrS1opLP8KcaZy9zD8kqFXRHeGoTxdMsaKy5zVb2uIBEvk?= =?us-ascii?Q?0qTbdnmMb8hb9bfGd9AXgLRpYwhPx28Mf+T48/xCM6wQQYKB1VKsqCmCGU2i?= =?us-ascii?Q?Iw0DibxRnMW4BZCflTn3QQZLx72vZitVSyGCZPl1y3CWghhaLrJJG3PmDj9w?= =?us-ascii?Q?THOGcRN/2YQZb2DgTVynyDpw/97Kj23k1vTtg94g2g7qmuH0I8iHJDensKt4?= =?us-ascii?Q?VsrE4NJ8e/fj4vrCZ7xVGkJQwx5FgcU1jak+KMr+c0Bl1YXPbGqGR0n4Y3Cx?= =?us-ascii?Q?AbasdSCx/kt1lDTwBqOmpsVXqJ+QJK3HXUoVMWe7EEj0QCfTPFPvvP1z81jl?= =?us-ascii?Q?DKlYtdoiwAsAGOMhg2RE3UWc1l4Df3Xb+L7IbdKXBDzQPHmaPZdMawFx3cEC?= =?us-ascii?Q?lOJLT7fqC8Eh8JWcJRsGwp/jZ6/RZbUlGGdaPeXqtOucCk1MTagAkugENndr?= =?us-ascii?Q?CnTzHXnleeYwZb1q/aWL+YxWc0GF+SsvzLk7A6eZzJEqJrH7TezLbGZXlWai?= =?us-ascii?Q?tueQMSZUMRKBE4CQAV8ft+VeM5dS8LArqhkM0ktWmxgdIVmzqLHs/0ZOzBMu?= =?us-ascii?Q?lQitW8uW0QJnBspx34C4rRLaecqBObtTqHdB0TOsw58qCteqr2C15aKa6w1j?= =?us-ascii?Q?PKl5N+rTnc+Rm0imkqX+GiMVM10YgA6cGJZ9Took9nr5NQmb0LF3Nazslaxi?= =?us-ascii?Q?cXxDVWcUqzLIKpVRV9pxYIqTnyN1nBmRu3rYm1t?= X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0929; 5:iC2INQQDyq1m4qnuG3iHpKQQKkH/ijMZ7/nvTBQY7EbT3egK/mjn1PCuowCknnUZobHZmrrVs4duphgrHsjkOsYglEbxmWNYdaM6mebCiXQV7kItJ/uXuGZuKNVThgvnWXPWW3hh5gxD4S1amoXP9w==; 24:qwe9PDdEgyEQwDI/X6EGWk0dNt4Ienr82BG6CuQj5f27i1p7jG03CJYuVsMeH4xjIJpsVYAksJsV+baowuSeACDXQ+V5sYfhHg8bL+ScEGA=; 20:ZEd66Ma3XMchdKp5zw6be14Dzu14B7emco5PT6byoYiLgEnBxqBB1rb7FFfNuI2bGWF+bUVahvDSp3L7PvyEkw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2015 20:30:33.2630 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB0929 X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0772; 2:t2OIOvmui6KG3n5slkr/wEOhgyimIXQlNVXB8ULGdHL1aRG1mBCzWvaoG8gUOZBL4ZXsWlGRnuc2bHX9FXHcnrCx45L2ePSUzC1oA0I29PmoFRDe4f+etPcVjdW2KRRpNXKRiPBN5EnSw/uuzd2p6HBiMznX+ovuvD+0azf2SVU=; 23:GPxi8vn/MEdVQ1/a/ELRuKSq9lcEl2ezNiyQ6rJtUskyl7Fxn52Dv9OJasySAcPG5CjGoGGJJX2Vkr5hXK2i6O4ld5uc+dNDnjeEH5ESDz7aVqL7Fv6zldcJQo6EaLs9xu631XHOycO4dUDdmwH6ayD6iO6jF1KUwDQMesi39gr++rSbP+lE7QV9FVBQ1KsE X-OriginatorOrg: darbyshire-bryant.me.uk Subject: Re: [Cake] Running Cake at long RTTs X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Oct 2015 20:31:02 -0000 --------------ms070506000900080700080101 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 29/10/15 17:36, Kevin Darbyshire-Bryant wrote: > > On 27/10/15 15:14, Toke H=F8iland-J=F8rgensen wrote: >> So Dave and I did a bit of testing of Cake at a 1-second base RTT. Tha= t >> showed that, compared with a straight FIFO queue (with a sufficiently >> large buffer), throughput was suffering quite a bit under Cake, >> especially at large bandwidths. We did two changes to fix this: >> >> - Turn the hard packet queue size into a lower bound rather than an >> upper bound. >> >> - Scale the target to be 1/16th of the interval. >> >> The first change allows Cake to actually reach the target throughput, >> but it still takes a long while to get there. With the second change, = we >> actually get the desired behaviour. The attached plot shows the >> difference, with the solid line being before the change and the dashed= >> line being after the change. >> >> Patch attached. >> >> -Toke > That patch is really going to behave strangely indeed. You end up with= > b->cparams.interval =3D max(rtt_est_ns + b->cparams.target - > ns_target,b->cparams.target * 8); > b->cparams.target =3D max(max(byte_target_ns, ns_target), > b->cparams.interval >> 4); > > So interval no matter what happens takes note of 'cparams.target' which= > hasn't yet been set (on first run is 0) > And target wants to take interval/16, which may be based on the previou= s > calculation. Erm. Needs more thought. > > My brain isn't working at the moment due to illness, but recursively > playing with bandwidth settings on cake is most entertaining at the > moment ;-) > > Kevin (dead with cold/high as a kite on cold drugs) Right, I've just pushed a slightly uncomfortable fix for this but it does at least make cake behave in a deterministic manner again. > > --------------ms070506000900080700080101 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC DYEwggY0MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe Fw0wNzEwMjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0 ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEp pC4Tq5a+ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9 b+0UjM0dLep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54q zHDYeqiUfsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX 9U8Eg5DpIpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/ 4ebfeZuCYKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIw HwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8v d3d3LnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wu Y29tL3Nmc2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIB FiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRw Oi8vd3d3LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4IC AQAKgwh9eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8py TUnFsukDFUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMm CeUTyMyikfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIz uQ8CnykhExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVm z/Rzkc/b970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT 5G7xPbCDz+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lAp sbAonrqASfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076 khXO7cNbBIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8 J7GCUBthHSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRX un0NbeY+UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jCCB0UwggYtoAMCAQICAw5ySjANBgkqhkiG 9w0BAQsFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNV BAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0 Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBMB4XDTE1MDYyMDIw MzA1MloXDTE2MDYyMDE0MjY0N1owVjEmMCQGA1UEAwwda2V2aW5AZGFyYnlzaGlyZS1icnlh bnQubWUudWsxLDAqBgkqhkiG9w0BCQEWHWtldmluQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVr MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAugCNtDhytCJ9HOfenUHr/vUGUECv PL1IJXgHMl4cIJmwgLOkXhIcTMxHnX+kFweqvT+eDWv1hzA9yMWhvjLFC4eLoFaV0xiAat8O XQ7t3MwKY5DW0mB1dOnjiFIcc/XMwyYI4KfEGnFMJQkzon0rDVpkl/Q1f/hu1sELO7Zc6TFL wuuDuiP7S73zrz50TRoq0+Ob3x0uOMW2uVwVzf6NLwHgBE2LFleMXblyUMx0IlIcLan2nWiI Vsa3XYd+C6KAGGwlmO4VAZ25KuX7hkj8f82lSapvtKTtvrSoDghXlHH2JXiIQX+Sn0UgOmbX 1KyOe9vN7WzQ+tpPRzpFRffnnnp1VQye3wVRPBumjDxQSFTOhUtslnvbefUQSPw6p5w9ZiXI GJICLkX/MkYN/TwGCvuUG2PxBybSR1A2I5ap+VI/zGSG3XGVEA69SOZQyD+8YjJZfaY2nCu+ DuM64JrJUi2CvX6fwcdHNschJNrrfetpnrx3JrGnG9o+pWuUG1phBg+KKN2bhrdzY79qm7ha 86EMKSUOn5nBdGY3YxdXq/naoUQeOCUV2JMFGOulu7sKpiWcz7HVFacXjd9ebisVLv+jOwll z14BWRb87s1+LBEJn/Ybn3ekhtgyEAhB4kgj0scl4hI8xCU6zrZyDnbXmxSvDXbClZA0PACt f/jhGvUCAwEAAaOCAuMwggLfMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQULkW2CpDiQpRNumQ7wdspjFfgX+AwHwYD VR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwKAYDVR0RBCEwH4Eda2V2aW5AZGFyYnlz aGlyZS1icnlhbnQubWUudWswggFMBgNVHSAEggFDMIIBPzCCATsGCysGAQQBgbU3AQIDMIIB KjAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjCB9wYI KwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwAwIBARqB vlRoaXMgY2VydGlmaWNhdGUgd2FzIGlzc3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDEg VmFsaWRhdGlvbiByZXF1aXJlbWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVs aWFuY2Ugb25seSBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0 aGUgcmVseWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov L2NybC5zdGFydHNzbC5jb20vY3J0dTEtY3JsLmNybDCBjgYIKwYBBQUHAQEEgYEwfzA5Bggr BgEFBQcwAYYtaHR0cDovL29jc3Auc3RhcnRzc2wuY29tL3N1Yi9jbGFzczEvY2xpZW50L2Nh MEIGCCsGAQUFBzAChjZodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3Mx LmNsaWVudC5jYS5jcnQwIwYDVR0SBBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMA0G CSqGSIb3DQEBCwUAA4IBAQBicQWe98eF/o09TXFsExc+WSyYjt3oSnXyocLzXQp82CQhIg21 5RqNZ1e+hsO7tq8S6hdItUDbKpecpIV59+57ke1zVl2slTRIT19fhYINHH78rVVRPzuHoiDt MXnGrp9hbq3Cz8P4mm8INKDiYK46kyplRAQ3ZMouPG1lsnDzgQAvbCj74H8yAp7fK8if6cxs 28BCUmdP8D3c6M1ffdNNaqNT+4Z3mtOujXXg7zOfmXN0Zg/mEtZ0NrWE2uICGdWjTv9KZiI7 fi4hk2CRpCL63qzmu6BwtcgtwhgYYtuAk2N43+SiyDkyLKGAcjEor3t5f9HivN29E0F0MXTH 1OdgMYIFDTCCBQkCAQEwgZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBM dGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYD VQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQID DnJKMA0GCWCGSAFlAwQCAwUAoIICSTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG SIb3DQEJBTEPFw0xNTEwMzAyMDMwMjlaME8GCSqGSIb3DQEJBDFCBEB6Ro9zf1WYagvBiG20 72ubXIVhFR+i6NBrpkqEqVeuqeqzCd81bOmI3QUUXuS8tKQpWv3s94c2okJiVTj+DSTSMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgCD2DcwU5SzgfVPDoQveJZVOwIUSskr 3nDLaOGlTzmMoG+SPfNWsEeKoSUkQK07670bCGT1dV7xYkeZWbLJgYDdGFMvRICgtRYuxx9z LE7poUmmVILKMCz+45/sIXxO8KTB21t0vsMuFqWSUNNuf3eb0H1Q80zKSCTB40bj36BTYRuH /LKzdsScZ/n7atFOADA+iHT2M6ROywlLqtEJZZULGsKcqjyKDAZSoONNfoaOm2287k46Ro3W rO1G5MFU9akMD7R+p/AJqmcAPh/fPtT3zDEDPNg6T9GcLgafCwD4zPxj/PcJXgNub0ZLXIBg qpMZnrAOF6y9E+kqJL2mPWAo00lX6nbQK/XIdRlHScxgg2mbXXEUPN2taTukfYmKoQfvGhG0 zh2GqndwDiEZ2f7Bb8uD8yB8+u5dhARNC43b2HErTjzTt8ogpCKydFdy8ySY/01lK4+K4kJS DyZVXIhLMJvKXr/WcHtbA5Ro5c6H+hHGZ72Tn5LCO47wVZbjkUxZjSXBwyWsOqB/LRtwQGVh Nc5tDZp+A8HCRvIH9UvxOBXIEC4A6o5cz6zL5ydpkaKXjykxWwjT3f1QOewILyTTD03Sq9De wxAnOtBvxUT893wLNO41P10DOjOE/n1McUj5mf6cBRJHS7xTIGfNJnm//vzj2bwLZddhwTvf 8e4n9gAAAAAAAA== --------------ms070506000900080700080101--