From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?Miguel_=C1ngel_Dom=EDnguez_Dur=E1n?= Date: Tue, 15 Feb 2005 10:11:29 +0000 Subject: [LARTC] Help with bandwith control in a firewall/bridge machine Message-Id: <004d01c51346$b7795db0$0eea090a@PORTATILTEC> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="macroman" Content-Transfer-Encoding: base64 To: lartc@vger.kernel.org SGVsbG8gYWdhaW4sCkZpcnN0LCBleGN1c2UgbWUgZm9yIG15IHBvb3IgZW5nbGlzaC4KSSdtIHRy eWluZyBub3cgdG8gbWFrZSBiYW5kd2l0aCBjb250cm9sIGluIGEgZmlyZXdhbGwgbWFjaGluZSBy dW5uaW5nIApTaG9yZXdhbGwuIFRoaXMgbWFjaGluZSBpcyBhbHNvIGEgYnJpZGdlIHVzaW5nIGJy aWRnZS11dGlscyAKYnJpZGdlLXV0aWxzLWRldmVsLiBJdCBpcyBhIG1hbmRyYWtlIDEwLiBUaGUg Y29uZmlndXJhdGlvbiBpcyBzb21ldGhpbmcgbGlrZSAKdGhpczoKCkZUUC9XZWJzZXJ2ZXIgLS0t LS0tfCAgIGV0aDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGgxCk1haWxz ZXJ2ZXIgLS0tLS0tLS0tLS0tLXwtLS0tLS1CUklER0UvRklSRVdBTEwtLS0tLS1Sb3V0ZXItLS0t LUludGVybmV0CkRCIEFwcC4gc2VydmVyIC0tLS0tLS18CgpJIGhhdmUgaW5zdGFsbGVkIGlwdG91 dGUyIGFuZCBhbGwga2VybmVsIG9wdGlvbnMgbmVlZGVkLiBJIGhhdmUgc3RhdGVkIApUQ19FTkFC TEVEID0gWWVzIGFuZCBjb3BpZWQgbXkgb3duIHNjcmlwdCBpbiB0aGUgdGNzdGFydCBmaWxlIHNv IHNob3Jld2FsbCAKc2hvdWxkIHJ1biBpdCB3aGVuIGl0IGdldHMgcmVzdGFydGVkLiBJIGRvbid0 IGdldCBhbnkgZXJyb3JzIHdoZW4gdGhlIHNjcmlwdCAKaXMgZXhlY3V0ZWQsIGJ1dCBhbGwgdGhl IHBhY2tldHMgZ28gdGhyb3VnaCB0aGUgZGVmYXVsdCBxdWV1ZSBpbiB1cGxpbmsgYW5kIApkb3du bGluayB3aGVuIGkgYW5hbGl6ZSB0aGUgcXVldWVzIHVzaW5nIC4KSSB1c2UgdGhlIGZvbGxvd2lu ZyBzY3JpcHQgdG8gc3RhcnQgdGhlIGJyaWRnZToKCiMhL2Jpbi9zaAoKc2V0IC14CgojQWN0aXZh bW9zIGVsIHB1ZW50ZToKCmJyY3RsIGFkZGJyIGJyMAoKI0Rlc2FjdGl2YW1vcyBlbCBwcm90b2Nv bG8gZGUgc3Bhbm5pbmcgdHJlZSwgcG9zaWJsZXMgbG9vcHMgZW50cmUgcm91dGVycywKCiNjb21v IGVuIG51ZXN0cm8gY2FzbyBzb2xvIGxvIHZhbW9zIGEgY29uZWN0YXIgYSB1biByb3V0ZXIgbm8g aGFjZSBmYWx0YToKCmJyY3RsIHN0cCBicjAgb2ZmCgojQSBjb250aW51YWNp824gYfFhZGltb3Mg bGFzIHRhcmpldGFzIGRlIHJlZCBhbCBwdWVudGU6IChPam8sIHVuYSB2ZXogaGVjaG8KCiNlc3Rv IHBlcmRlbW9zIGxhIGNvbmVjdGl2aWRhZCkKCmJyY3RsIGFkZGlmIGJyMCBldGgwCgpicmN0bCBh ZGRpZiBicjAgZXRoMQoKI0Rlc2FjdGl2YW1vcyBsYXMgMiB0YXJqZXRhcyBkZSByZWQ6Cgpjb3Jy ZW8uY2hlcnJ5dGVsLmNvbWlmY29uZmlnIGV0aDAgZG93bgoKaWZjb25maWcgZXRoMSBkb3duCgoj TGFzIHZvbHZlbW9zIGEgYWN0aXZhciBwZXJvIHNpbiBJUCBkZWZpbmlkYQoKaWZjb25maWcgZXRo MCAwLjAuMC4wIHVwCgppZmNvbmZpZyBldGgxIDAuMC4wLjAgdXAKCiNBY3RpdmFtb3MgZWwgcHVl bnRlIHkgbGUgYXNpZ25hbW9zIHVuYSBJUDoKCmlmY29uZmlnIGJyMCAyMTMuOS4xMzkuNiB1cAoK I0HxYWRpbW9zIGxhIHJ1dGEgcG9yIGRlZmVjdG86Cgpyb3V0ZSBhZGQgZGVmYXVsdCBndyAyMTMu OS4xMzkuMQoKI0FjdGl2YW1vcyBlbCByZWVudmlvOgoKZWNobyAiMSIgPiAvcHJvYy9zeXMvbmV0 L2lwdjQvaXBfZm9yd2FyZAoKeSBh8WFkbyBsYSBlbnRyYWRhIGFsIC9ldGMvcmMubG9jYWwKCgoK VGhlIHNjcmlwdCBpbiB0Y3N0YXJ0IGlzOgoKCiMhL2Jpbi9iYXNoCiMKIwoKREVWMT1ldGgwICNz YWxpZGEgYSByZWQgaW50ZXJuYSBkZSBDaGVycnl0ZWwKREVWMD1ldGgxICNzYWxpZGEgYSBpbnRl cm5ldAogICAgICAgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgaXMgc2lnbmlmaWNhbnRseSBsb3dl ciB0aGFuIHRoZSBjYXBhY2l0eSBvZiAKMTUwMC4KICAgICAgICAgICAgICAjIEJlY2F1c2Ugb2Yg dGhpcywgeW91IG1heSBub3Qgd2FudCB0byBib3RoZXIgbGltaXRpbmcgaW5ib3VuZCAKdHJhZmZp YwogICAgICAgICAgICAgICMgdW50aWwgYSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gc3VjaCBhcyBU Q1Agd2luZG93IAptYW5pcHVsYXRpb24gY2FuIGJlIHVzZWQuCgojCiMgRW5kIENvbmZpZ3VyYXRp b24gT3B0aW9ucwojCgpUQz0vc2Jpbi90YwoKaWYgWyAiJDEiID0gInN0YXR1cyIgXQp0aGVuCiAg ICAgICAgZWNobyAiRW5sYWNlIGRlc2NlbmRlbnRlIgogICAgICAgIGVjaG8gIltxZGlzY10iCiAg ICAgICAgJFRDIC1zIHFkaXNjIHNob3cgZGV2ICRERVYxCiAgICAgICAgZWNobyAiW2NsYXNzXSIK ICAgICAgICAkVEMgLXMgY2xhc3Mgc2hvdyBkZXYgJERFVjEKICAgICAgICBlY2hvICJbZmlsdGVy XSIKICAgICAgICAkVEMgLXMgZmlsdGVyIHNob3cgZGV2ICRERVYxCgogICAgICAgIGVjaG8gIkVu bGFjZSBhc2NlbmRlbnRlIgogICAgICAgIGVjaG8gIltxZGlzY10iCiAgICAgICAgJFRDIC1zIHFk aXNjIHNob3cgZGV2ICRERVYwCiAgICAgICAgZWNobyAiW2NsYXNzXSIKICAgICAgICAkVEMgLXMg Y2xhc3Mgc2hvdyBkZXYgJERFVjAKICAgICAgICBlY2hvICJbZmlsdGVyXSIKICAgICAgICAkVEMg LXMgZmlsdGVyIHNob3cgZGV2ICRERVYwCgogICAgICAgIGV4aXQKZmkKCiMgUmVzZXQgZXZlcnl0 aGluZyB0byBhIGtub3duIHN0YXRlIChjbGVhcmVkKQokVEMgcWRpc2MgZGVsIGRldiAkREVWMCBy b290ICAgIDI+IC9kZXYvbnVsbCA+IC9kZXYvbnVsbAokVEMgcWRpc2MgZGVsIGRldiAkREVWMSBy b290ICAgIDI+IC9kZXYvbnVsbCA+IC9kZXYvbnVsbAppcHRhYmxlcyAtdCBtYW5nbGUgLUQgUE9T VFJPVVRJTkcgLW8gJERFVjEgLWogTVlTSEFQRVItSU4gMj4gL2Rldi9udWxsID4gCi9kZXYvbnVs bAppcHRhYmxlcyAtdCBtYW5nbGUgLUYgTVlTSEFQRVItT1VUIDI+IC9kZXYvbnVsbCA+IC9kZXYv bnVsbAppcHRhYmxlcyAtdCBtYW5nbGUgLVggTVlTSEFQRVItT1VUIDI+IC9kZXYvbnVsbCA+IC9k ZXYvbnVsbAppcHRhYmxlcyAtdCBtYW5nbGUgLUQgUFJFUk9VVElORyAtaSAkREVWMCAtaiBNWVNI QVBFUi1PVVQgMj4gL2Rldi9udWxsID4gCi9kZXYvbnVsbAppcHRhYmxlcyAtdCBtYW5nbGUgLUYg TVlTSEFQRVItSU4gMj4gL2Rldi9udWxsID4gL2Rldi9udWxsCmlwdGFibGVzIC10IG1hbmdsZSAt WCBNWVNIQVBFUi1JTiAyPiAvZGV2L251bGwgPiAvZGV2L251bGwKCgppZiBbICIkMSIgPSAic3Rv cCIgXQp0aGVuCiAgICAgICAgZWNobyAiU2hhcGluZyByZW1vdmVkIG9uICRERVYxLiIKICAgICAg ICBlY2hvICJTaGFwaW5nIHJlbW92ZWQgb24gJERFVjAuIgogICAgICAgIGV4aXQKZmkKCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMK IyBJbmJvdW5kIFNoYXBpbmcgKGxpbWl0cyB0b3RhbCBiYW5kd2lkdGggdG8gODUwS2JwcykKIyBF c3RlIGVzIGVsIGVubGFjZSBkZXNjZW5kZW50ZSwgZGVzZGUgaW50ZXJuZXQgaGFjaWEgbGEgcmVk IGludGVybmEgZGUgCkNoZXJyeXRlbAoKIyBzZXQgcXVldWUgc2l6ZSB0byBnaXZlIGxhdGVuY3kg b2YgYWJvdXQgMiBzZWNvbmRzIG9uIGxvdy1wcmlvIHBhY2tldHMKI2lwIGxpbmsgc2V0IGRldiAk REVWMSBxbGVuIDMwCgojIGNoYW5nZXMgbXR1IG9uIHRoZSBvdXRib3VuZCBkZXZpY2UuICBMb3dl cmluZyB0aGUgbXR1IHdpbGwgcmVzdWx0CiMgaW4gbG93ZXIgbGF0ZW5jeSBidXQgd2lsbCBhbHNv IGNhdXNlIHNsaWdodGx5IGxvd2VyIHRocm91Z2hwdXQgZHVlCiMgdG8gSVAgYW5kIFRDUCBwcm90 b2NvbCBvdmVyaGVhZC4KI2lwIGxpbmsgc2V0IGRldiAkREVWMSBtdHUgMTAwMAoKIyBhZGQgSFRC IHJvb3QgcWRpc2MKJFRDIHFkaXNjIGFkZCBkZXYgJERFVjEgcm9vdCBoYW5kbGUgMTogaHRiIGRl ZmF1bHQgMzcKCiMgYWRkIG1haW4gcmF0ZSBsaW1pdCBjbGFzc2VzCiRUQyBjbGFzcyBhZGQgZGV2 ICRERVYxIHBhcmVudCAxOiBjbGFzc2lkIDE6MSBodGIgcmF0ZSA4NTZrYml0CgojIGFkZCBsZWFm IGNsYXNzZXMgLSBXZSBncmFudCBlYWNoIGNsYXNzIGF0IExFQVNUIGl0J3MgImZhaXIgc2hhcmUi IG9mIApiYW5kd2lkdGguCiMgICAgICAgICAgICAgICAgICAgIHRoaXMgd2F5IG5vIGNsYXNzIHdp bGwgZXZlciBiZSBzdGFydmVkIGJ5IGFub3RoZXIgCmNsYXNzLiAgRWFjaAojICAgICAgICAgICAg ICAgICAgICBjbGFzcyBpcyBhbHNvIHBlcm1pdHRlZCB0byBjb25zdW1lIGFsbCBvZiB0aGUgYXZh aWxhYmxlIApiYW5kd2lkdGgKIyAgICAgICAgICAgICAgICAgICAgaWYgbm8gb3RoZXIgY2xhc3Nl cyBhcmUgaW4gdXNlLgokVEMgY2xhc3MgYWRkIGRldiAkREVWMSBwYXJlbnQgMToxIGNsYXNzaWQg MToyMCBodGIgcmF0ZSA2NGtiaXQgY2VpbCA4NTZrYml0CiRUQyBjbGFzcyBhZGQgZGV2ICRERVYx IHBhcmVudCAxOjEgY2xhc3NpZCAxOjIxIGh0YiByYXRlIDY0a2JpdCBjZWlsIDg1NmtiaXQKJFRD IGNsYXNzIGFkZCBkZXYgJERFVjEgcGFyZW50IDE6MSBjbGFzc2lkIDE6MjIgaHRiIHJhdGUgNjRr Yml0IGNlaWwgODU2a2JpdAokVEMgY2xhc3MgYWRkIGRldiAkREVWMSBwYXJlbnQgMToxIGNsYXNz aWQgMTozNyBodGIgcmF0ZSA2MDBrYml0IGNlaWwgCjg1NmtiaXQgICAjcG9yIGRlZmVjdG8KCiRU QyBjbGFzcyBhZGQgZGV2ICRERVYxIHBhcmVudCAxOjEgY2xhc3NpZCAxOjIzIGh0YiByYXRlIDY0 a2JpdCBjZWlsIDg1NmtiaXQgCiNvZmljaW5hcwoKIyBhdHRhY2ggcWRpc2MgdG8gbGVhZiBjbGFz c2VzIC0gaGVyZSB3ZSBhdCBTRlEgdG8gZWFjaCBwcmlvcml0eSBjbGFzcy4gIFNGUSAKaW5zdXJl cyB0aGF0CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbiBlYWNoIGNsYXNz IGNvbm5lY3Rpb25zIHdpbGwgYmUgCnRyZWF0ZWQgKGFsbW9zdCkgZmFpcmx5LgokVEMgcWRpc2Mg YWRkIGRldiAkREVWMSBwYXJlbnQgMToyMCBoYW5kbGUgMjA6IHNmcSBwZXJ0dXJiIDEwCiRUQyBx ZGlzYyBhZGQgZGV2ICRERVYxIHBhcmVudCAxOjIxIGhhbmRsZSAyMTogc2ZxIHBlcnR1cmIgMTAK JFRDIHFkaXNjIGFkZCBkZXYgJERFVjEgcGFyZW50IDE6MjIgaGFuZGxlIDIyOiBzZnEgcGVydHVy YiAxMAokVEMgcWRpc2MgYWRkIGRldiAkREVWMSBwYXJlbnQgMTozNyBoYW5kbGUgMzc6IHNmcSBw ZXJ0dXJiIDEwCgokVEMgcWRpc2MgYWRkIGRldiAkREVWMSBwYXJlbnQgMToyMyBoYW5kbGUgMjM6 IHNmcSBwZXJ0dXJiIDEwCgojIGZpbHRlciB0cmFmZmljIGludG8gY2xhc3NlcyBieSBmd21hcmsg LSBoZXJlIHdlIGRpcmVjdCB0cmFmZmljIGludG8gCnByaW9yaXR5IGNsYXNzIGFjY29yZGluZyB0 bwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZndtYXJrIHNl dCBvbiB0aGUgcGFja2V0ICh3ZSAKc2V0IGZ3bWFyayB3aXRoIGlwdGFibGVzCiMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVyKS4gIE5vdGUgdGhhdCBhYm92ZSB3 ZSd2ZSBzZXQgCnRoZSBkZWZhdWx0IHByaW9yaXR5CiMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNsYXNzIHRvIDE6Mzcgc28gdW5tYXJrZWQgcGFja2V0cyAKKG9yIHBh Y2tldHMgbWFya2VkIHdpdGgKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5mYW1pbGlhciBJRHMpIHdpbGwgYmUgZGVmYXVsdGVkIAp0byB0aGUgbG93ZXN0IHByaW9y aXR5CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzLgokVEMg ZmlsdGVyIGFkZCBkZXYgJERFVjEgcGFyZW50IDE6MCBwcmlvIDAgcHJvdG9jb2wgaXAgaGFuZGxl IDIwIGZ3IGZsb3dpZCAKMToyMAokVEMgZmlsdGVyIGFkZCBkZXYgJERFVjEgcGFyZW50IDE6MCBw cmlvIDAgcHJvdG9jb2wgaXAgaGFuZGxlIDIxIGZ3IGZsb3dpZCAKMToyMQokVEMgZmlsdGVyIGFk ZCBkZXYgJERFVjEgcGFyZW50IDE6MCBwcmlvIDAgcHJvdG9jb2wgaXAgaGFuZGxlIDIyIGZ3IGZs b3dpZCAKMToyMgokVEMgZmlsdGVyIGFkZCBkZXYgJERFVjEgcGFyZW50IDE6MCBwcmlvIDAgcHJv dG9jb2wgaXAgaGFuZGxlIDIzIGZ3IGZsb3dpZCAKMToyMwoKIyBNYXJraW5nIHRoZSBwYWNrZXRz LgoKIGlwdGFibGVzIC10IG1hbmdsZSAtTiBNWVNIQVBFUi1JTgogaXB0YWJsZXMgLXQgbWFuZ2xl IC1JIFBPU1RST1VUSU5HIC1vICRERVYxIC1qIE1ZU0hBUEVSLUlOCgogaXB0YWJsZXMgLUEgTVlT SEFQRVItSU4gLWQgMjEzLjkuMTM5LjMwIC10IG1hbmdsZSAtaiBNQVJLIC0tc2V0LW1hcmsgMjAK IGlwdGFibGVzIC1BIE1ZU0hBUEVSLUlOIC1kIDIxMy45LjEzOS4zMSAtdCBtYW5nbGUgLWogTUFS SyAtLXNldC1tYXJrIDIwCiBpcHRhYmxlcyAtQSBNWVNIQVBFUi1JTiAtZCAyMTMuOS4xMzkuMzIg LXQgbWFuZ2xlIC1qIE1BUksgLS1zZXQtbWFyayAyMAoKIGlwdGFibGVzIC1BIE1ZU0hBUEVSLUlO IC1kIDIxMy45LjEzOS4yMiAtdCBtYW5nbGUgLWogTUFSSyAtLXNldC1tYXJrIDIxCiBpcHRhYmxl cyAtQSBNWVNIQVBFUi1JTiAtZCAyMTMuOS4xMzkuNzEgLXQgbWFuZ2xlIC1qIE1BUksgLS1zZXQt bWFyayAyMQoKIGlwdGFibGVzIC1BIE1ZU0hBUEVSLUlOIC1kIDIxMy45LjEzOS4yNSAtdCBtYW5n bGUgLWogTUFSSyAtLXNldC1tYXJrIDIyCgogaXB0YWJsZXMgLUEgTVlTSEFQRVItSU4gLWQgMjEz LjkuMTM5LjI0IC10IG1hbmdsZSAtaiBNQVJLIC0tc2V0LW1hcmsgMjMKCiMgaXB0YWJsZXMgLUEg TVlTSEFQRVItSU4gLWQgMTAuOS4xMzkuMTQgLXQgbWFuZ2xlIC1qIE1BUksgLS1zZXQtbWFyayAy MgoKIyBpcHRhYmxlcyAtQSBNWVNIQVBFUi1JTiAtZCAxMC45LjEzOS4xMyAtdCBtYW5nbGUgLWog TUFSSyAtLXNldC1tYXJrIDIyCgojRWwgcmVzdG8gZGUgdHLDoWNvIGlyw61hbCBmbHVqbyBwb3Ig ZGVmZWN0bywgZWwgMjozNy4KCiMgRG9uZSB3aXRoIGluYm91bmQgc2hhcGluZwojCiMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmVjaG8gIkNvbnRy b2wgZGVsIGVubGFjZSBkZXNjZW5kZW50ZSBhY3RpdmFkby4iCgojU2kgc29sbyBzZSBkZXNlYSBj b250cm9sYXIgZWwgZW5sYWNlIGRlc2NlbmRlbnRlLCBxdWl0YXIgZWwgY29tZW50YXJpbyBkZSAK bGEgc2lndWllbnRlIGluc3RydWNjaW9uIGV4aXQKI2V4aXQKCgoKCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyBPdXRib3VuZCBT aGFwaW5nIChsaW1pdHMgdG90YWwgYmFuZHdpZHRoIHRvIDg1NkticHMpCiMgRXN0ZSBlcyBlbCBl bmxhY2UgYXNjZW5kZW50ZSwgZGVzZGUgbGEgcmVkIGludGVybmEgZGUgQ2hlcnJ5dGVsIGEgaW50 ZXJuZXQKCiMgc2V0IHF1ZXVlIHNpemUgdG8gZ2l2ZSBsYXRlbmN5IG9mIGFib3V0IDIgc2Vjb25k cyBvbiBsb3ctcHJpbyBwYWNrZXRzCiNpcCBsaW5rIHNldCBkZXYgJERFVjAgcWxlbiAzMAoKIyBj aGFuZ2VzIG10dSBvbiB0aGUgb3V0Ym91bmQgZGV2aWNlLiAgTG93ZXJpbmcgdGhlIG10dSB3aWxs IHJlc3VsdAojIGluIGxvd2VyIGxhdGVuY3kgYnV0IHdpbGwgYWxzbyBjYXVzZSBzbGlnaHRseSBs b3dlciB0aHJvdWdocHV0IGR1ZQojIHRvIElQIGFuZCBUQ1AgcHJvdG9jb2wgb3ZlcmhlYWQuCiNp cCBsaW5rIHNldCBkZXYgJERFVjAgbXR1IDEwMDAKCiMgYWRkIEhUQiByb290IHFkaXNjCiRUQyBx ZGlzYyBhZGQgZGV2ICRERVYwIHJvb3QgaGFuZGxlIDI6IGh0YiBkZWZhdWx0IDg3CgojIGFkZCBt YWluIHJhdGUgbGltaXQgY2xhc3NlcwokVEMgY2xhc3MgYWRkIGRldiAkREVWMCBwYXJlbnQgMjog Y2xhc3NpZCAyOjEgaHRiIHJhdGUgODU2a2JpdAoKIyBhZGQgbGVhZiBjbGFzc2VzIC0gV2UgZ3Jh bnQgZWFjaCBjbGFzcyBhdCBMRUFTVCBpdCdzICJmYWlyIHNoYXJlIiBvZiAKYmFuZHdpZHRoLgoj ICAgICAgICAgICAgICAgICAgICB0aGlzIHdheSBubyBjbGFzcyB3aWxsIGV2ZXIgYmUgc3RhcnZl ZCBieSBhbm90aGVyIApjbGFzcy4gIEVhY2gKIyAgICAgICAgICAgICAgICAgICAgY2xhc3MgaXMg YWxzbyBwZXJtaXR0ZWQgdG8gY29uc3VtZSBhbGwgb2YgdGhlIGF2YWlsYWJsZSAKYmFuZHdpZHRo CiMgICAgICAgICAgICAgICAgICAgIGlmIG5vIG90aGVyIGNsYXNzZXMgYXJlIGluIHVzZS4KJFRD IGNsYXNzIGFkZCBkZXYgJERFVjAgcGFyZW50IDI6MSBjbGFzc2lkIDI6NzAgaHRiIHJhdGUgNjRr Yml0IGNlaWwgODU2a2JpdAokVEMgY2xhc3MgYWRkIGRldiAkREVWMCBwYXJlbnQgMjoxIGNsYXNz aWQgMjo3MSBodGIgcmF0ZSA2NGtiaXQgY2VpbCA4NTZrYml0CiRUQyBjbGFzcyBhZGQgZGV2ICRE RVYwIHBhcmVudCAyOjEgY2xhc3NpZCAyOjcyIGh0YiByYXRlIDY0a2JpdCBjZWlsIDg1NmtiaXQK JFRDIGNsYXNzIGFkZCBkZXYgJERFVjAgcGFyZW50IDI6MSBjbGFzc2lkIDI6ODcgaHRiIHJhdGUg NjAwa2JpdCBjZWlsIAo4NTZrYml0ICAgI3BvciBkZWZlY3RvCgokVEMgY2xhc3MgYWRkIGRldiAk REVWMCBwYXJlbnQgMjoxIGNsYXNzaWQgMjo3MyBodGIgcmF0ZSA2NGtiaXQgY2VpbCA4NTZrYml0 IAojcHJ1ZWJhCgojIGF0dGFjaCBxZGlzYyB0byBsZWFmIGNsYXNzZXMgLSBoZXJlIHdlIGF0IFNG USB0byBlYWNoIHByaW9yaXR5IGNsYXNzLiAgU0ZRIAppbnN1cmVzIHRoYXQKIyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd2l0aGluIGVhY2ggY2xhc3MgY29ubmVjdGlvbnMgd2lsbCBi ZSAKdHJlYXRlZCAoYWxtb3N0KSBmYWlybHkuCiRUQyBxZGlzYyBhZGQgZGV2ICRERVYwIHBhcmVu dCAyOjcwIGhhbmRsZSA3MDogc2ZxIHBlcnR1cmIgMTAKJFRDIHFkaXNjIGFkZCBkZXYgJERFVjAg cGFyZW50IDI6NzEgaGFuZGxlIDcxOiBzZnEgcGVydHVyYiAxMAokVEMgcWRpc2MgYWRkIGRldiAk REVWMCBwYXJlbnQgMjo3MiBoYW5kbGUgNzI6IHNmcSBwZXJ0dXJiIDEwCiRUQyBxZGlzYyBhZGQg ZGV2ICRERVYwIHBhcmVudCAyOjg3IGhhbmRsZSA4Nzogc2ZxIHBlcnR1cmIgMTAKCiRUQyBxZGlz YyBhZGQgZGV2ICRERVYwIHBhcmVudCAyOjczIGhhbmRsZSA3Mzogc2ZxIHBlcnR1cmIgMTAKCiMg ZmlsdGVyIHRyYWZmaWMgaW50byBjbGFzc2VzIGJ5IGZ3bWFyayAtIGhlcmUgd2UgZGlyZWN0IHRy YWZmaWMgaW50byAKcHJpb3JpdHkgY2xhc3MgYWNjb3JkaW5nIHRvCiMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmd21hcmsgc2V0IG9uIHRoZSBwYWNrZXQgKHdl IApzZXQgZndtYXJrIHdpdGggaXB0YWJsZXMKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGF0ZXIpLiAgTm90ZSB0aGF0IGFib3ZlIHdlJ3ZlIHNldCAKdGhlIGRlZmF1 bHQgcHJpb3JpdHkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3MgdG8gMTo4NyBzbyB1bm1hcmtlZCBwYWNrZXRzIAoob3IgcGFja2V0cyBtYXJrZWQgd2l0aAoj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmZhbWlsaWFyIElEcykg d2lsbCBiZSBkZWZhdWx0ZWQgCnRvIHRoZSBsb3dlc3QgcHJpb3JpdHkKIyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3MuCiRUQyBmaWx0ZXIgYWRkIGRldiAkREVW MCBwYXJlbnQgMjowIHByaW8gMCBwcm90b2NvbCBpcCBoYW5kbGUgNzAgZncgZmxvd2lkIAoyOjcw CiRUQyBmaWx0ZXIgYWRkIGRldiAkREVWMCBwYXJlbnQgMjowIHByaW8gMCBwcm90b2NvbCBpcCBo YW5kbGUgNzEgZncgZmxvd2lkIAoyOjcxCiRUQyBmaWx0ZXIgYWRkIGRldiAkREVWMCBwYXJlbnQg MjowIHByaW8gMCBwcm90b2NvbCBpcCBoYW5kbGUgNzIgZncgZmxvd2lkIAoyOjcyCiRUQyBmaWx0 ZXIgYWRkIGRldiAkREVWMCBwYXJlbnQgMjowIHByaW8gMCBwcm90b2NvbCBpcCBoYW5kbGUgNzMg ZncgZmxvd2lkIAoyOjczCgojIE1hcmtpbmcgdGhlIHBhY2tldHMuCgogaXB0YWJsZXMgLXQgbWFu Z2xlIC1OIE1ZU0hBUEVSLU9VVAogaXB0YWJsZXMgLXQgbWFuZ2xlIC1JIFBSRVJPVVRJTkcgLWkg JERFVjAgLWogTVlTSEFQRVItT1VUCgogaXB0YWJsZXMgLUEgTVlTSEFQRVItT1VUIC1zIDIxMy45 LjEzOS4zMCAtdCBtYW5nbGUgLWogTUFSSyAtLXNldC1tYXJrIDcwCiBpcHRhYmxlcyAtQSBNWVNI QVBFUi1PVVQgLXMgMjEzLjkuMTM5LjMxIC10IG1hbmdsZSAtaiBNQVJLIC0tc2V0LW1hcmsgNzAK IGlwdGFibGVzIC1BIE1ZU0hBUEVSLU9VVCAtcyAyMTMuOS4xMzkuMzIgLXQgbWFuZ2xlIC1qIE1B UksgLS1zZXQtbWFyayA3MAoKIGlwdGFibGVzIC1BIE1ZU0hBUEVSLU9VVCAtcyAyMTMuOS4xMzku MjIgLXQgbWFuZ2xlIC1qIE1BUksgLS1zZXQtbWFyayA3MQogaXB0YWJsZXMgLUEgTVlTSEFQRVIt T1VUIC1zIDIxMy45LjEzOS43MSAtdCBtYW5nbGUgLWogTUFSSyAtLXNldC1tYXJrIDcxCgogaXB0 YWJsZXMgLUEgTVlTSEFQRVItT1VUIC1zIDIxMy45LjEzOS4yNSAtdCBtYW5nbGUgLWogTUFSSyAt LXNldC1tYXJrIDcyCgogaXB0YWJsZXMgLUEgTVlTSEFQRVItT1VUIC1zIDIxMy45LjEzOS4yNCAt dCBtYW5nbGUgLWogTUFSSyAtLXNldC1tYXJrIDczCgojIGlwdGFibGVzIC1BIE1ZU0hBUEVSLU9V VCAtcyAxMC45LjEzOS4xMyAtdCBtYW5nbGUgLWogTUFSSyAtLXNldC1tYXJrIDcyCgojIGlwdGFi bGVzIC1BIE1ZU0hBUEVSLU9VVCAtcyAxMC45LjEzOS4xNCAtdCBtYW5nbGUgLWogTUFSSyAtLXNl dC1tYXJrIDcyCgoKI0VsIHJlc3RvIGRlIHRyw6FjbyBpcsOtYWwgZmx1am8gcG9yIGRlZmVjdG8s IGVsIDI6ODcuCgoKIyBEb25lIHdpdGggb3V0Ym91bmQgc2hhcGluZwojCiMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmVjaG8gIkNvbnRyb2wgZGVs IGVubGFjZSBhc2NlbmRlbnRlIGFjdGl2YWRvLiIKCmV4aXQKClRoYW5rIHlvdSB2ZXJ5IG11Y2gK ClVOIENPUkRJQUwgU0FMVURPCgpNaWd1ZWwgwW5nZWwgRG9t7W5ndWV6IER1cuFuLgpEZXBhcnRh bWVudG8gVOljbmljby4KQ2hlcnJ5dGVsIENvbXVuaWNhY2lvbmVzLCBTLkwuCm1kb21pbmd1ZXpA Y2hlcnJ5dGVsLmNvbQpodHRwOi8vd3d3LmNoZXJyeXRlbC5jb20vClRsZi4gOTAyIDExNSA2NzMK RmF4IDk1MjIxODE3MCAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxBUlRDIG1haWxpbmcgbGlzdCAvIExBUlRDQG1haWxtYW4uZHM5YS5ubApodHRwOi8v bWFpbG1hbi5kczlhLm5sL21haWxtYW4vbGlzdGluZm8vbGFydGMgSE9XVE86IGh0dHA6Ly9sYXJ0 Yy5vcmcv