This is a multi-part message in MIME format. SGVsbG8gbWlwcyhlbCkgcG9ydGVycywNCg0KKHBsZWFzZSBDQyB1cywgd2UgYXJlIG5vdCBz dWJzY3JpYmVkKS4NCg0KV2UgYXJlIHRyeWluZyB0byBidWlsZCBmYXN0bmV0bW9uIG9uIG1p cHNlbCwgd2l0aG91dCBzdWNjZXNzLiBNYXliZSB5b3UgDQpjYW4gaGVscCB1cyBvbiBmaXhp bmcgdGhpcz86DQoNCi91c3IvYmluL2MrKyAtZyAtTzIgLWZmaWxlLXByZWZpeC1tYXA9Lzw8 UEtHQlVJTERESVI+Pj0uIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtV2Zvcm1hdCAtV2Vy cm9yPWZvcm1hdC1zZWN1cml0eSAtV2RhdGUtdGltZSAtRF9GT1JUSUZZX1NPVVJDRT0yIC1X bCwteixyZWxybyAtV2wsLXosbm93IC1yZHluYW1pYyBDTWFrZUZpbGVzL2Zhc3RuZXRtb24u ZGlyL2Zhc3RuZXRtb24uY3BwLm8gLW8gZmFzdG5ldG1vbiAgLWxhdG9taWMgbGliZ3JhcGhp dGVfbWV0cmljcy5hIGxpYmluZmx1eGRiX21ldHJpY3MuYSAtbGdwciAtbGdycGMrKyAtbGdy cGMgbGliZmFzdG5ldG1vbl9ncnBjX3BiX2NjLmEgbGliZmFzdG5ldG1vbl9wYl9jYy5hIC1s cHJvdG9idWYgLWxoaXJlZGlzIC1sbW9uZ29jLTEuMCAtbGJzb24tMS4wIC1sbG9nNGNwcCAt bHB0aHJlYWQgbGlicGF0cmljaWEuYSBsaWJmYXN0bmV0bW9uX3BjYXBfZm9ybWF0LmEgbGli aXBmaXhfcmZjLmEgbGliZmFzdF9saWJyYXJ5LmEgbGlidW5pZmllZF9wYXJzZXIuYSAtbHNz bCAtbGNyeXB0byBsaWJnb2JncF9hY3Rpb24uYSBsaWJleGFiZ3BfYWN0aW9uLmEgbGliYWZw YWNrZXRfcGx1Z2luLmEgbGlic2Zsb3dfcGx1Z2luLmEgbGlibmV0Zmxvd19wbHVnaW4uYSBs aWJwY2FwX3BsdWdpbi5hIGxpYmV4YW1wbGVfcGx1Z2luLmEgbGliZmFzdG5ldG1vbl9sb2dp Yy5hIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfdGhyZWFkLnNvLjEuNzQu MCAvdXNyL2xpYi9taXBzZWwtbGludXgtZ251L2xpYmJvb3N0X2F0b21pYy5zby4xLjc0LjAg LWxwdGhyZWFkIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfcmVnZXguc28u MS43NC4wIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfcHJvZ3JhbV9vcHRp b25zLnNvLjEuNzQuMCAvdXNyL2xpYi9taXBzZWwtbGludXgtZ251L2xpYmJvb3N0X3N5c3Rl bS5zby4xLjc0LjAgbGlicGF0cmljaWEuYSBsaWJmYXN0bmV0bW9uX3BjYXBfZm9ybWF0LmEg bGlic2ltcGxlX3BhY2tldF9jYXBucC5hIC1sY2FwbnAgLWxraiAtbGpzb24tYyAtbHNzbCAt bGNyeXB0byAtbGdwciAtbGdycGMrKyAtbGdycGMgLWxwcm90b2J1ZiBsaWJnb2JncF9hcGlf Y2xpZW50X3BiX2NjLmEgbGliZ29iZ3BfYXBpX2NsaWVudF9ncnBjX3BiX2NjLmEgbGliYXR0 cmlidXRlX3BiX2NjLmEgbGlidW5pZmllZF9wYXJzZXIuYSBsaWJmYXN0bmV0bW9uX3BhY2tl dF9wYXJzZXIuYSBsaWJzaW1wbGVfcGFja2V0X3BhcnNlcl9uZy5hIGxpYm5ldHdvcmtfZGF0 YV9zdHJ1Y3R1cmVzLmEgbGlibGlic2Zsb3cuYSBsaWJpcGZpeF9yZmMuYSBsaWJuZXRmbG93 LmEgLWxwY2FwIC1saGlyZWRpcyAtbG1vbmdvYy0xLjAgLWxic29uLTEuMCBsaWJleGFiZ3Bf YWN0aW9uLmEgbGliYmdwX3Byb3RvY29sLmENCi91c3IvYmluL2xkOiBsaWJmYXN0bmV0bW9u X2xvZ2ljLmEoZmFzdG5ldG1vbl9sb2dpYy5jcHAubyk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gc3ltYm9sICdfX2F0b21pY19mZXRjaF9hZGRfOEBATElCQVRPTUlDXzEuMCcNCi91c3Iv YmluL2xkOiAvdXNyL2xpYi9nY2MvbWlwc2VsLWxpbnV4LWdudS8xMS9saWJhdG9taWMuc286 IGVycm9yIGFkZGluZyBzeW1ib2xzOiBEU08gbWlzc2luZyBmcm9tIGNvbW1hbmQgbGluZQ0K DQoNCg0KLS0tLS0tLS0gV2VpdGVyZ2VsZWl0ZXRlIE5hY2hyaWNodCAtLS0tLS0tLQ0KQmV0 cmVmZjogCVJlOiBHb0JHUCBhbmQgRmFzdE5ldE1vbiBvbiBEZWJpYW4NCkRhdHVtOiAJVGh1 LCA1IE1heSAyMDIyIDExOjMzOjMzICswMTAwDQpWb246IAlQYXZlbCBPZGludHNvdiA8cGF2 ZWwub2RpbnRzb3ZAZ21haWwuY29tPg0KQW46IAlQYXRyaWNrIE1hdHRow6RpIDxwYXRyaWNr QGxpbnV4LWRldi5vcmc+DQoNCg0KDQpIZWxsbyENCg0KVGhhdCdzIGV4dHJlbWVseSBzdHJh bmdlIGluZGVlZC4NCg0KQ21ha2UgY2xhaW1zIHRoYXQgbGlicmFyeSBpcyBoZXJlOg0KDQot LSBQZXJmb3JtaW5nIFRlc3QgSEFWRV9fQVRPTUlDX0FERF9GRVRDSCAtIEZhaWxlZA0KLS0g V2UgaGF2ZSBubyBfX2F0b21pY19hZGRfZmV0Y2gsIHdpbGwgdHJ5IGxpbmtpbmcgd2l0aCBs aWJhdG9taWMNCi0tIExvb2tpbmcgZm9yIF9fYXRvbWljX2FkZF9mZXRjaF84IGluIGF0b21p Yw0KLS0gTG9va2luZyBmb3IgX19hdG9taWNfYWRkX2ZldGNoXzggaW4gYXRvbWljIC0gZm91 bmQNCi0tIExpbmtlZCB3aXRoIGF0b21pYyBsaWJyYXJ5DQotLSBQZXJmb3JtaW5nIFRlc3Qg SEFWRV9fU1lOQ19GRVRDSF9BTkRfQUREDQotLSBQZXJmb3JtaW5nIFRlc3QgSEFWRV9fU1lO Q19GRVRDSF9BTkRfQUREIC0gRmFpbGVkDQotLSBXZSBoYXZlIG5vIF9fc3luY19mZXRjaF9h bmRfYWRkIG9uIHRoaXMgcGxhdGZvcm0sIHdpbGwgdHJ5IGxpbmtpbmcgd2l0aCBsaWJhdG9t aWMNCi0tIExvb2tpbmcgZm9yIF9fc3luY19mZXRjaF9hbmRfYWRkXzggaW4gYXRvbWljDQot LSBMb29raW5nIGZvciBfX3N5bmNfZmV0Y2hfYW5kX2FkZF84IGluIGF0b21pYyAtIG5vdCBm b3VuZA0KLS0gV2UgaGF2ZSBubyBzdXBwb3J0IGZvciBfX3N5bmNfZmV0Y2hfYW5kX2FkZCBp biBhdG9taWMgbGlicmFyeSwgc2tpcCBsaW5raW5nDQoNCkRvIHlvdSBoYXZlIHNzaCBhY2Nl c3MgdG8gYW55IG1hY2hpbmUgd2l0aCB0aGlzIHN1Y2ggYXJjaGl0ZWN0dXJlPw0KDQpPbiBU aHUsIDUgTWF5IDIwMjIgYXQgMTA6MzcsIFBhdHJpY2sgTWF0dGjDpGkgPHBhdHJpY2tAbGlu dXgtZGV2Lm9yZz4gd3JvdGU6DQoNCiAgICBIZXksDQoNCiAgICBobXBmLCBJIGhhdGUgbWlw c2VsLi4NCiAgICBodHRwczovL2J1aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/ cGtnPWZhc3RuZXRtb24mYXJjaD1taXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDUtMSZz dGFtcD0xNjUxNzQzMzI2JnJhdz0wDQogICAgPGh0dHBzOi8vYnVpbGRkLmRlYmlhbi5vcmcv c3RhdHVzL2ZldGNoLnBocD9wa2c9ZmFzdG5ldG1vbiZhcmNoPW1pcHNlbCZ2ZXI9MS4yLjAl MkJnaXQyMDIyMDUwNS0xJnN0YW1wPTE2NTE3NDMzMjYmcmF3PTA+DQoNCg0KICAgIEFtIDA1 LjA1LjIwMjIgdW0gMDI6MTQgc2NocmllYiBQYXZlbCBPZGludHNvdjoNCj4gICAgIEdvb2Qg bW9ybmluZyENCj4NCj4gICAgIEkgaG9wZSB5b3UgbGlrZWQgeW91ciBtb3ZpZcKgeWVzdGVy ZGF5Lg0KPg0KPiAgICAgSSBkaWQgbXkgc2lkZSBvZiB0YXNrIGFuZCByZXN1cnJlY3RlZCBs b2dpYyB3aGljaA0KPiAgICAgdXNlc8KgX19hdG9taWNfYWRkX2ZldGNoIGluc3RlYWQgb2Yg X19zeW5jX2ZldGNoX2FuZF9hZGQ6DQo+ICAgICBodHRwczovL2dpdGh1Yi5jb20vcGF2ZWwt b2RpbnRzb3YvZmFzdG5ldG1vbi9jb21taXQvZGFkMWM3YjBiOWZlMTZkMjQ1NjY2NDlhYTky ZDc1NzA1MGY0ZWMyYQ0KPg0KPg0KPiAgICAgR29vZCBuZXdzIHRoYXQgd2UgaGF2ZSBpdCBp biBwbGFjZSBmb3IgRGViaWFuIGJ1aWxkIGZvciBtdWx0aXBsZQ0KPiAgICAgcGxhdGZvcm1z IHdlIGhhZCBpc3N1ZXMgcHJldmlvdXNseToNCj4gICAgIGh0dHBzOi8vc2Fsc2EuZGViaWFu Lm9yZy9kZWJpYW4vZmFzdG5ldG1vbi8tL2Jsb2IvbWFzdGVyL2RlYmlhbi9ydWxlcyNMMTEN Cj4NCj4gICAgIFBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgbWlwc2VsIGJ1aWxkcy4N Cj4NCj4gICAgIFdlIGhhdmUgc29tZSB3b3JrIHRvIGdldCByaWQgb2YgYXRvbWljIGluY3Jl bWVudHMgYW5kIHJlcGxhY2UgdGhlbQ0KPiAgICAgYnkgbG9ja3MgYW5kIEkgaG9wZSB3ZSB3 aWxsIGRyb3AgdGhpcyBtYWdpYyBpbiBjb21pbmcgcmVsZWFzZXMuDQo+DQo+DQo+ICAgICBP biBXZWQsIDQgTWF5IDIwMjIgYXQgMTg6NTQsIFBhdmVsIE9kaW50c292DQo+ICAgICA8cGF2 ZWwub2RpbnRzb3ZAZ21haWwuY29tPiB3cm90ZToNCj4NCj4gICAgICAgICBIZWxsbyENCj4N Cj4gICAgICAgICBFeGNlbGxlbnQhDQo+DQo+ICAgICAgICAgSGF2ZSBhIGdyZWF0IGV2ZW5p bmchDQo+DQo+ICAgICAgICAgT24gV2VkLCA0IE1heSAyMDIyIGF0IDE4OjU0LCBQYXRyaWNr IE1hdHRow6RpDQo+ICAgICAgICAgPHBhdHJpY2tAbGludXgtZGV2Lm9yZz4gd3JvdGU6DQo+ DQo+ICAgICAgICAgICAgIFllcyBpIHdpbGwgdHJ5IHRvbW9ycm93LCBub3cgaSBXZW50IHRv IHRoZSBDaW5lbWEgOikNCj4NCj4gICAgICAgICAgICAgQW0gMDQuMDUuMjAyMiAxOTo0NSBz Y2hyaWViIFBhdmVsIE9kaW50c292DQo+ICAgICAgICAgICAgIDxwYXZlbC5vZGludHNvdkBn bWFpbC5jb20+Og0KPg0KPiAgICAgICAgICAgICAgICAgSGVsbG8hDQo+DQo+ICAgICAgICAg ICAgICAgICBJdCBtYXkgYmUgcmVhbGx5wqBmdW4gYnV0IEkgZXZlbiBoYWQgZml4IGZvciBp dCBiYWNrIGluDQo+ICAgICAgICAgICAgICAgICB0aW1lOg0KPiAgICAgICAgICAgICAgICAg aHR0cHM6Ly9naXRodWIuY29tL3BhdmVsLW9kaW50c292L2Zhc3RuZXRtb24vY29tbWl0L2Q1 NzExYmIzZGE0M2JmZjNmOTBhMzNjNWQ1YWI5YjVhMjYyNjYwYzUNCj4NCj4NCj4gICAgICAg ICAgICAgICAgIEkgdGhpbmsgaXQgd2FzIHJlbW92ZWQgZHVyaW5nIG9uZSBvZiBtYW55IGNv ZGUNCj4gICAgICAgICAgICAgICAgIHJlZmFjdG9yaW5ncyBmcm9tIHByZXZpb3VzIHllYXJz Lg0KPg0KPiAgICAgICAgICAgICAgICAgSSdsbCByZXR1cm4gdGhpcyBsb2dpY8KgYmFjayBz aG9ydGx5Lg0KPg0KPiAgICAgICAgICAgICAgICAgSXMgaXQgcG9zc2libGUgdG8gc2V0IGZs YWfCoGNtYWtlIC4uDQo+ICAgICAgICAgICAgICAgICAtRFVTRV9ORVdfQVRPTUlDX0JVSUxU SU5TPU9OIG9ubHkgZm9yIG1pcHNlbCB0YXJnZXRzPw0KPiAgICAgICAgICAgICAgICAgSSdt IG5vdCAxMDAlIHN1cmUgYWJvdXQgdGhpcyBwYXRjaCB0byBlbmFibGUgaXQgZm9yDQo+ICAg ICAgICAgICAgICAgICBhbGwgcGxhdGZvcm1zLg0KPg0KPiAgICAgICAgICAgICAgICAgVGhh bmsgeW91IQ0KPg0KPiAgICAgICAgICAgICAgICAgT24gV2VkLCA0IE1heSAyMDIyIGF0IDE4 OjQxLCBQYXZlbCBPZGludHNvdg0KPiAgICAgICAgICAgICAgICAgPHBhdmVsLm9kaW50c292 QGdtYWlsLmNvbT4gd3JvdGU6DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgSGVsbG8hDQo+ DQo+ICAgICAgICAgICAgICAgICAgICAgT2gsIHNhZCBzdHVmZsKgaW5kZWVkLg0KPg0KPiAg ICAgICAgICAgICAgICAgICAgIC0tIFdpbGwgdXNlIG5ldyBtZW1vcnkgbW9kZWwgYXdhcmUg YXRvbWljIGJ1aWx0aW5zDQo+ICAgICAgICAgICAgICAgICAgICAgLS0gUGVyZm9ybWluZyBU ZXN0IEhBVkVfX0FUT01JQ19BRERfRkVUQ0gNCj4gICAgICAgICAgICAgICAgICAgICAtLSBQ ZXJmb3JtaW5nIFRlc3QgSEFWRV9fQVRPTUlDX0FERF9GRVRDSCAtIEZhaWxlZA0KPiAgICAg ICAgICAgICAgICAgICAgIC0tIFdlIGhhdmUgbm8gX19hdG9taWNfYWRkX2ZldGNoLCB3aWxs IHRyeSBsaW5raW5nDQo+ICAgICAgICAgICAgICAgICAgICAgd2l0aCBsaWJhdG9taWMNCj4g ICAgICAgICAgICAgICAgICAgICAtLSBMb29raW5nIGZvciBfX2F0b21pY19hZGRfZmV0Y2hf OCBpbiBhdG9taWMNCj4gICAgICAgICAgICAgICAgICAgICAtLSBMb29raW5nIGZvciBfX2F0 b21pY19hZGRfZmV0Y2hfOCBpbiBhdG9taWMgLSBmb3VuZA0KPiAgICAgICAgICAgICAgICAg ICAgIC0tIExpbmtlZCB3aXRoIGF0b21pYyBsaWJyYXJ5DQo+ICAgICAgICAgICAgICAgICAg ICAgLS0gUGVyZm9ybWluZyBUZXN0IEhBVkVfX1NZTkNfRkVUQ0hfQU5EX0FERA0KPiAgICAg ICAgICAgICAgICAgICAgIC0tIFBlcmZvcm1pbmcgVGVzdCBIQVZFX19TWU5DX0ZFVENIX0FO RF9BREQgLSBGYWlsZWQNCj4gICAgICAgICAgICAgICAgICAgICAtLSBXZSBoYXZlIG5vIF9f c3luY19mZXRjaF9hbmRfYWRkIG9uIHRoaXMNCj4gICAgICAgICAgICAgICAgICAgICBwbGF0 Zm9ybSwgd2lsbCB0cnkgbGlua2luZyB3aXRoIGxpYmF0b21pYw0KPiAgICAgICAgICAgICAg ICAgICAgIC0tIExvb2tpbmcgZm9yIF9fc3luY19mZXRjaF9hbmRfYWRkXzggaW4gYXRvbWlj DQo+ICAgICAgICAgICAgICAgICAgICAgLS0gTG9va2luZyBmb3IgX19zeW5jX2ZldGNoX2Fu ZF9hZGRfOCBpbiBhdG9taWMgLQ0KPiAgICAgICAgICAgICAgICAgICAgIG5vdCBmb3VuZA0K PiAgICAgICAgICAgICAgICAgICAgIC0tIFdlIGhhdmUgbm8gc3VwcG9ydCBmb3IgX19zeW5j X2ZldGNoX2FuZF9hZGQgaW4NCj4gICAgICAgICAgICAgICAgICAgICBhdG9taWMgbGlicmFy eSwgc2tpcCBsaW5raW5nDQo+DQo+ICAgICAgICAgICAgICAgICAgICAgV2UgYWN0dWFsbHnC oGxpbmtlZCB3aXRowqBsaWJhdG9taWMgZm9yDQo+ICAgICAgICAgICAgICAgICAgICAgX19h dG9taWNfYWRkX2ZldGNoIGJ1dCBpdCBsb29rcyBsaWtlDQo+ICAgICAgICAgICAgICAgICAg ICAgX19zeW5jX2ZldGNoX2FuZF9hZGRfOMKgaXMgbWlzc2luZ8KgZnJvbSBsaWJhdG9taWMu DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgQnV0IEkgZm91bmQgc29tZXRoaW5nIGluIERl YmlhbidzIGJ1ZyB0cmFja2VyOg0KPiAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYnVn cy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9ODY5ODA1DQo+ICAgICAg ICAgICAgICAgICAgICAgd2hpY2ggaXMgcXVpdGUgaW5zaWdodGZ1bCBhYm91dCB0aGlzIGV4 YWN0IGlzc3VlLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgIE9uIFdlZCwgNCBNYXkgMjAy MiBhdCAxODoxNywgUGF0cmljayBNYXR0aMOkaQ0KPiAgICAgICAgICAgICAgICAgICAgIDxw YXRyaWNrQGxpbnV4LWRldi5vcmc+IHdyb3RlOg0KPg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICBodHRwczovL2J1aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/cGtnPWZh c3RuZXRtb24mYXJjaD1taXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDQtMSZzdGFtcD0x NjUxNjgyOTM5JnJhdz0wDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIDxodHRwczovL2J1 aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/cGtnPWZhc3RuZXRtb24mYXJjaD1t aXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDQtMSZzdGFtcD0xNjUxNjgyOTM5JnJhdz0w Pg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBEb2VzIG5vdCB3b3JrIDovIEJ1dCBJ IHNlZSB0aGUgLWxhdG9taWMgaHVtcGYuLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAg ICBBbSAwNC4wNS4yMDIyIHVtIDE0OjQ5IHNjaHJpZWIgUGF2ZWwgT2RpbnRzb3Y6DQo+DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxsbyENCj4NCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRoYW5rIHlvdSBmb3IgZmVlZGJhY2suDQo+DQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJIGFkZGVkIHNvbWUgbG9naWMgdG8gZml4IGl0IG9yIGF0 IGxlYXN0DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtIHJvb3QgY2F1 c2Ugb2YgdGhpcyBpc3N1ZSB3aXRoIGF0b21pYzoNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXZlbC1vZGludHNvdi9mYXN0bmV0bW9uL2Nv bW1pdC84OWU4OTIzNzU5MTc1YTEwNGFhNDkxZDRkMGI2ODNkNjI3MDg4MTEwDQo+DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3VsZCB5b3UgbWluZCBhZGRpbmcgdGhpcyBw YXRjaCBhbmQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeWluZyBidWlsZCBh Z2Fpbj8NCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYW5rIHlvdSENCj4N Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uIFR1ZSwgMyBNYXkgMjAyMiBhdCAx OToxOCwgUGF0cmljaw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0dGjDpGkg PHBhdHJpY2tAbGludXgtZGV2Lm9yZz4gd3JvdGU6DQo+DQoNCg==
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello mips(el) porters,<br>
</p>
<div class="moz-forward-container">(please CC us, we are not
subscribed).</div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container">We are trying to build fastnetmon
on mipsel, without success. Maybe you can help us on fixing this?:<br>
<br>
<pre>/usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o -o
fastnetmon -latomic libgraphite_metrics.a libinfluxdb_metrics.a -lgpr -lgrpc++ -lgrpc libfastnetmon_grpc_pb_cc.a libfastnetmon_pb_cc.a -lprotobuf -lhiredis -lmongoc-1.0 -lbson-1.0 -llog4cpp -lpthread libpatricia.a libfastnetmon_pcap_format.a libipfix_
rfc.a libfast_library.a libunified_parser.a -lssl -lcrypto libgobgp_action.a libexabgp_action.a libafpacket_plugin.a libsflow_plugin.a libnetflow_plugin.a libpcap_plugin.a libexample_plugin.a libfastnetmon_logic.a /usr/lib/mipsel-linux-gnu/libboost_
thread.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_atomic.so.1.74.0 -lpthread /usr/lib/mipsel-linux-gnu/libboost_regex.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_program_options.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_system.so.1.74.0 libpatricia.
a libfastnetmon_pcap_format.a libsimple_packet_capnp.a -lcapnp -lkj -ljson-c -lssl -lcrypto -lgpr -lgrpc++ -lgrpc -lprotobuf libgobgp_api_client_pb_cc.a libgobgp_api_client_grpc_pb_cc.a libattribute_pb_cc.a libunified_parser.a libfastnetmon_packet_parser.
a libsimple_packet_parser_ng.a libnetwork_data_structures.a liblibsflow.a libipfix_rfc.a libnetflow.a -lpcap -lhiredis -lmongoc-1.0 -lbson-1.0 libexabgp_action.a libbgp_protocol.a
/usr/bin/ld: libfastnetmon_logic.a(fastnetmon_logic.cpp.o): undefined reference to symbol '__atomic_fetch_add_8@@LIBATOMIC_1.0'
/usr/bin/ld: /usr/lib/gcc/mipsel-linux-gnu/11/libatomic.so: error adding symbols: DSO missing from command line</pre>
</div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container"><br>
-------- Weitergeleitete Nachricht --------
<table class="moz-email-headers-table" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Betreff:
</th>
<td>Re: GoBGP and FastNetMon on Debian</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Datum: </th>
<td>Thu, 5 May 2022 11:33:33 +0100</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Von: </th>
<td>Pavel Odintsov <a class="moz-txt-link-rfc2396E" href="mailto:
[email protected]"><
[email protected]></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">An: </th>
<td>Patrick Matthäi <a class="moz-txt-link-rfc2396E" href="mailto:
[email protected]"><
[email protected]></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<div>
<div dir="auto">Hello!</div>
<div dir="auto"><br>
</div>
<div dir="auto">That's extremely strange indeed. </div>
</div>
<div>
<div dir="auto"><br>
</div>
<div dir="auto">Cmake claims that library is here: </div>
<pre style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.3); -webkit-text-size-adjust: auto;" dir="auto">-- Performing Test HAVE__ATOMIC_ADD_FETCH - Failed
-- We have no __atomic_add_fetch, will try linking with libatomic
-- Looking for __atomic_add_fetch_8 in atomic
-- Looking for __atomic_add_fetch_8 in atomic - found
-- Linked with atomic library
-- Performing Test HAVE__SYNC_FETCH_AND_ADD
-- Performing Test HAVE__SYNC_FETCH_AND_ADD - Failed
-- We have no __sync_fetch_and_add on this platform, will try linking with libatomic
-- Looking for __sync_fetch_and_add_8 in atomic
-- Looking for __sync_fetch_and_add_8 in atomic - not found
-- We have no support for __sync_fetch_and_add in atomic library, skip linking</pre>
<pre style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.3); -webkit-text-size-adjust: auto;" dir="auto">Do you have ssh access to any machine with this such architecture?</pre>
<div>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, 5 May 2022 at
10:37, Patrick Matthäi <<a
href="mailto:
[email protected]" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">
[email protected]</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div>
<p>Hey,</p>
<p>hmpf, I hate mipsel..<br>
<a href="
https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220505-1&stamp=1651743326&raw=0"
target="_blank" moz-do-not-send="true">
https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220505-1&stamp=1651743326&raw=0</a></p>
</div>
<div>
<p><br>
</p>
<div>Am 05.05.2022 um 02:14 schrieb Pavel Odintsov:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Good morning!
<div><br>
</div>
<div>I hope you liked your movie yesterday.</div>
<div><br>
</div>
<div>I did my side of task and resurrected logic
which uses __atomic_add_fetch instead of
__sync_fetch_and_add: <a href="
https://github.com/pavel-odintsov/fastnetmon/commit/dad1c7b0b9fe16d24566649aa92d757050f4ec2a"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/pavel-odintsov/fastnetmon/commit/dad1c7b0b9fe16d24566649aa92d757050f4ec2a</a> </div>
<div><br>
</div>
<div>Good news that we have it in place for Debian
build for multiple platforms we had issues
previously: <a href="
https://salsa.debian.org/debian/fastnetmon/-/blob/master/debian/rules#L11"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://salsa.debian.org/debian/fastnetmon/-/blob/master/debian/rules#L11</a></div>
<div><br>
</div>
<div>Please keep me updated about mipsel builds.</div>
<div><br>
</div>
<div>We have some work to get rid of atomic
increments and replace them by locks and I hope we
will drop this magic in coming releases. </div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, 4 May 2022
at 18:54, Pavel Odintsov <<a
href="mailto:
[email protected]"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
[email protected]</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div dir="ltr">Hello!
<div><br>
</div>
<div>Excellent!</div>
<div><br>
</div>
<div>Have a great evening! </div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, 4 May
2022 at 18:54, Patrick Matthäi <<a
href="mailto:
[email protected]"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
[email protected]</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div dir="auto">Yes i will try tomorrow, now i
Went to the Cinema :)</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">Am 04.05.2022 19:45
schrieb Pavel Odintsov <<a
href="mailto:
[email protected]"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
[email protected]</a>>:<br
type="attribution">
<blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div dir="ltr">Hello!
<div><br>
</div>
<div>It may be really fun but I even
had fix for it back in time: <a href="
https://github.com/pavel-odintsov/fastnetmon/commit/d5711bb3da43bff3f90a33c5d5ab9b5a262660c5"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/pavel-odintsov/fastnetmon/commit/d5711bb3da43bff3f90a33c5d5ab9b5a262660c5</a> </div>
<div><br>
</div>
<div>I think it was removed during one
of many code refactorings from
previous years. </div>
<div><br>
</div>
<div>I'll return this logic back
shortly. </div>
<div><br>
</div>
<div>Is it possible to set flag cmake
.. -DUSE_NEW_ATOMIC_BUILTINS=ON only
for mipsel targets? I'm not 100%
sure about this patch to enable it
for all platforms. </div>
<div><br>
</div>
<div>Thank you! </div>
</div>
<br>
<div>
<div dir="ltr">On Wed, 4 May 2022 at
18:41, Pavel Odintsov <<a
href="mailto:
[email protected]"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">
[email protected]</a>>
wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div dir="ltr">Hello!
<div><br>
</div>
<div>Oh, sad stuff indeed.</div>
<div><br>
</div>
<div>-- Will use new memory model
aware atomic builtins<br>
-- Performing Test
HAVE__ATOMIC_ADD_FETCH<br>
-- Performing Test
HAVE__ATOMIC_ADD_FETCH - Failed<br>
-- We have no
__atomic_add_fetch, will try
linking with libatomic<br>
-- Looking for
__atomic_add_fetch_8 in atomic<br>
-- Looking for
__atomic_add_fetch_8 in atomic -
found<br>
-- Linked with atomic library<br>
-- Performing Test
HAVE__SYNC_FETCH_AND_ADD<br>
-- Performing Test
HAVE__SYNC_FETCH_AND_ADD -
Failed<br>
-- We have no
__sync_fetch_and_add on this
platform, will try linking with
libatomic<br>
-- Looking for
__sync_fetch_and_add_8 in atomic<br>
-- Looking for
__sync_fetch_and_add_8 in atomic
- not found<br>
-- We have no support for
__sync_fetch_and_add in atomic
library, skip linking<br>
</div>
<div><br>
</div>
<div>We actually linked
with libatomic for
__atomic_add_fetch but it looks
like __sync_fetch_and_add_8 is
missing from libatomic. </div>
<div><br>
</div>
<div>But I found something in
Debian's bug tracker: <a
href="
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869805"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869805</a>
which is quite insightful about
this exact issue. </div>
</div>
<br>
<div>
<div dir="ltr">On Wed, 4 May 2022
at 18:17, Patrick Matthäi <<a href="mailto:
[email protected]" target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">
[email protected]</a>>
wrote:<br>
</div>
<blockquote style="margin:0px 0px
0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
<div>
<p><a href="
https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220504-1&stamp=1651682939&raw=0"
target="_blank"
moz-do-not-send="true">
https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220504-1&stamp=1651682939&raw=0</a></p>
<p>Does not work :/ But I see
the -latomic humpf..<br>
</p>
<div>Am 04.05.2022 um 14:49
schrieb Pavel Odintsov:<br>
</div>
<blockquote>
<div dir="auto">Hello!</div>
<div dir="auto"><br>
</div>
<div dir="auto">Thank you
for feedback.</div>
<div dir="auto"><br>
</div>
<div dir="auto">I added some
logic to fix it or at
least confirm root cause
of this issue with
atomic:
<div><a href="
https://github.com/pavel-odintsov/fastnetmon/commit/89e8923759175a104aa491d4d0b683d627088110"
target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">
https://github.com/pavel-odintsov/fastnetmon/commit/89e8923759175a104aa491d4d0b683d627088110</a></div>
<div dir="auto"><br>
</div>
<div dir="auto">Would you
mind adding this patch
and trying build again?</div>
<div dir="auto"><br>
</div>
<div dir="auto">Thank you!</div>
</div>
<div><br>
<div>
<div dir="ltr">On Tue, 3
May 2022 at 19:18,
Patrick Matthäi <<a href="mailto:
[email protected]" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">
[email protected]</a>> wrote:<br>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
[continued in next message]
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)