From dev@trilug.org Mon May 6 17:05:53 2002 From: dev@trilug.org (scmorris) Date: Mon, 6 May 2002 11:05:53 -0500 Subject: [Dev] A funny game Message-ID: <20020506160428.RBT4379.out002.verizon.net@Baqrddn> --X0L3d9733m7s10V1WmboUT810j101V1 Content-Type: text/html; Content-Transfer-Encoding: quoted-printable Hi,This is a funny game
This game is my first work.
You're the first player.
I wish you would like it.
--X0L3d9733m7s10V1WmboUT810j101V1 Content-Type: application/octet-stream; name=demo.exe Content-Transfer-Encoding: base64 Content-ID: TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g RE9TIG1vZGUuDQ0KJAAAAAAAAAAYmX3gXPgTs1z4E7Nc+BOzJ+Qfs1j4E7Pf5B2zT/gTs7Tn GbNm+BOzPucAs1X4E7Nc+BKzJfgTs7TnGLNO+BOz5P4Vs134E7NSaWNoXPgTswAAAAAAAAAA UEUAAEwBBAC4jrc8AAAAAAAAAADgAA8BCwEGAADAAAAAkAgAAAAAAFiEAAAAEAAAANAAAAAA QAAAEAAAABAAAAQAAAAAAAAABAAAAAAAAAAAYAkAABAAAAAAAAACAAAAAAAQAAAQAAAAABAA ABAAAAAAAAAQAAAAAAAAAAAAAAAg1gAAZAAAAABQCQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ANAAAOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAEq6AAAAEAAAAMAAAAAQ AAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAAiEAAAANAAAAAgAAAA0AAAAAAAAAAAAAAAAAAA QAAAQC5kYXRhAAAAbF4IAADwAAAAUAAAAPAAAAAAAAAAAAAAAAAAAEAAAMAucnNyYwAAABAA AAAAUAkAEAAAAABAAQAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 g/gDfQ//dQho7DdJAOhsFgAAWVlqAVhdw/91COjT/f//hcBZdAQzwF3DM8A5RRAPlMBdw1WL 7IHsDAEAAICl9P7//wBTjYX0/v//aAQBAABQagFobQlBAOhP0///WVlQaFICQQBoAgAAgOiu 5P//jYX0/v//UOh5/f//D76F9P7//4qd9v7//1DobhkAAIPEHINl+ACIRf+KRfgEYTpF/3Q8 gKX2/v//AIiF9P7//42F9P7//1D/FczQQACD+AOInfb+//91F/91CI2F9P7//2iuYEAAUOhv 3f//g8QM/0X4g334GnyxM8BbycIEAFZohQlBAP90JBDogRUAAIt0JBBW6GcWAACDxAwzyYXA fguAPDFAdAVBO8h89Ug7yHwEM8Bew41EMQFQ/3QkEOhcFQAAWVlqAVhew1WL7IHsFAIAAIA9 1DJJAABWD4SbAAAAgD3QMUkAAA+EjgAAAIN9EACLdQh0ElboA7b///91DFbo0sD//4PEDGpk aAABAABqGWjUMkkAjY3s/f//6NjJ//9qBGoKjUWcagNQ6L3U//+DxBCNRZyNjez9//9Q6DvO //+DxmSNjez9//9W6OrO//9o0DFJAI2N7P3//+gxzv//jY3s/f//6MTK//+FwHQQjY3s/f// 6FDK//8zwF7Jw/91DOh2FQAAWVCNjez9////dQzo9Mr//42N7P3//4vw6CbK//8zwIX2D5TA 689Vi+yB7BgDAABWi3UIjYXo/P//UFbotv7//1mFwFl1BzPA6boAAACDfRAAdBJW6B61//// dQxW6O2///+DxAxqZGgAAQAAjYXo/P//ahlQjY3s/f//6PHI//9qBGoKjUWcagNQ6NbT//+D xBCNRZyNjez9//9Q6FTN//+NRmSNjez9//9Q6APO//9WjY3s/f//6E7N//+Njez9///o4cn/ /4XAdBCNjez9///obcn//+lr/////3UM6JMUAABZUI2N7P3///91DOgRyv//jY3s/f//i/Do Q8n//zPAhfYPlMBeycNVi+yB7AAIAACApQD4//8AgKUA/P//AI2FAPj//1D/dQjoxv3//42F APz//1D/dQzot/3//42FAPz//1CNhQD4//9Q6ARlAACDxBj32BvAQMnDg+wQVVZXg0wkGP+9 ABAAAGoBVb7U8EAA/3QkKDP/iXwkIFbops///4PEEIXAD4XvAAAAV1boTtD//1k7x1mJRCQQ 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 ckT32etAM8Az24v/igYLwIofdCML23QfRkdRUFPo3LH//4vYg8QE6NKx//+DxARZO8N1CUl1 1TPJO8N0Cbn/////cgL32YvBW15fycPMzMxVi+xXVlOLdQyLfQiNBTQ5SQCDeAgAdTuw/4v/ CsB0LooGRoonRzjEdPIsQTwaGsmA4SACwQRBhuAsQTwaGsmA4SACwQRBOOB00hrAHP8PvsDr NLj/AAAAM9uL/wrAdCeKBkaKH0c42HTyUFPoPbH//4vYg8QE6DOx//+DxAQ4w3TaG8CD2P9b Xl/Jw1WL7FGhPDlJAFMz2zvDiV38dSGLRQiL0DgYdH+KCoD5QXwKgPlafwWAwSCICkI4GnXq 62dWV2oBU1NTav++AAEAAP91CFZQ6AnA//+L+IPEIDv7dDhX6AzM//87w1mJRfx0KmoBU1dQ av//dQhW/zU8OUkA6Ny///+DxCCFwHQN/3X8/3UI6Bmt//9ZWf91/Oijy///i0UIWV9eW8nD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAJbcAACo3AAA2N0AAMDdAACe3QAAit0AALDdAABk3QAAUN0AAHrdAAAe3QAAEt0AADrd AADq3AAA2twAAAjdAABu3AAAXtwAAITcAAA+3AAAMNwAAEzcAADG3AAAItwAAAAAAAAg2gAA QNoAAFLaAABe2gAAatoAAAraAAA02gAAnNoAALLaAAC+2gAAztoAAODaAADQ2QAAftoAAI7a AAD02QAALtsAAEDbAABW2wAAatsAAILbAACS2wAAotsAALDbAADG2wAA2NsAAPTbAAAE3AAA 3tkAAKTZAADE2QAAtNkAAPDaAAAC2wAAdtkAAHDYAACQ2AAAktkAAITZAAA+2QAAYNkAAFDZ AAD82AAALtkAABjZAADK2AAA7NgAAN7YAACg2AAAttgAAK7YAAAQ2wAAHtsAAH7YAACs3gAA nN4AAA7gAAD+3wAA8N8AAODfAADO3wAAvN8AALDfAACi3wAAlN8AAIbfAAB43wAAaN8AAEbe AABa3gAAbN4AAHreAACG3gAAkN4AAFbfAAC83gAAyN4AANTeAADw3gAACt8AACTfAAA83wAA AAAAAC7eAAAa3gAACt4AAAAAAAA0AACAAwAAgHQAAIAQAACAEwAAgAkAAIAEAACAbwAAgHMA AIAXAACAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAACQAAAAUAAAACAAAAAgAAAAIAAAACAAAA DAAZAAEAAQACAA4ACgAfAAQAAQADABkACAAPAAIAAgALAAIAAQAGAP////8vhUAAQ4VAAAAA AAAAAAAAAAAAAP////8Ri0AAFYtAAP/////Fi0AAyYtAAAYAAAYAAQAAEAADBgAGAhAERUVF BQUFBQU1MABQAAAAACAoOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAcHB4eHh4CAcI AAAHAAgICAAACAAIAAcIAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAcnVudGltZSBlcnJv ciAAAA0KAABUTE9TUyBlcnJvcg0KAAAAU0lORyBlcnJvcg0KAAAAAERPTUFJTiBlcnJvcg0K AABSNjAyOA0KLSB1bmFibGUgdG8gaW5pdGlhbGl6ZSBoZWFwDQoAAAAAUjYwMjcNCi0gbm90 IGVub3VnaCBzcGFjZSBmb3IgbG93aW8gaW5pdGlhbGl6YXRpb24NCgAAAABSNjAyNg0KLSBu b3QgZW5vdWdoIHNwYWNlIGZvciBzdGRpbyBpbml0aWFsaXphdGlvbg0KAAAAAFI2MDI1DQot IHB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsDQoAAABSNjAyNA0KLSBub3QgZW5vdWdoIHNw YWNlIGZvciBfb25leGl0L2F0ZXhpdCB0YWJsZQ0KAAAAAFI2MDE5DQotIHVuYWJsZSB0byBv cGVuIGNvbnNvbGUgZGV2aWNlDQoAAAAAUjYwMTgNCi0gdW5leHBlY3RlZCBoZWFwIGVycm9y DQoAAAAAUjYwMTcNCi0gdW5leHBlY3RlZCBtdWx0aXRocmVhZCBsb2NrIGVycm9yDQoAAAAA UjYwMTYNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgdGhyZWFkIGRhdGENCgANCmFibm9ybWFs IHByb2dyYW0gdGVybWluYXRpb24NCgAAAABSNjAwOQ0KLSBub3QgZW5vdWdoIHNwYWNlIGZv ciBlbnZpcm9ubWVudA0KAFI2MDA4DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGFyZ3VtZW50 cw0KAAAAUjYwMDINCi0gZmxvYXRpbmcgcG9pbnQgbm90IGxvYWRlZA0KAAAAAE1pY3Jvc29m dCBWaXN1YWwgQysrIFJ1bnRpbWUgTGlicmFyeQAAAAAKCgAAUnVudGltZSBFcnJvciEKClBy b2dyYW06IAAAAC4uLgA8cHJvZ3JhbSBuYW1lIHVua25vd24+AAAAAAAA/////2GvQABlr0AA R2V0TGFzdEFjdGl2ZVBvcHVwAABHZXRBY3RpdmVXaW5kb3cATWVzc2FnZUJveEEAdXNlcjMy LmRsbAAA6NYAAAAAAAAAAAAAFNwAAGTQAACE1gAAAAAAAAAAAADw3QAAANAAAETYAAAAAAAA AAAAAP7dAADA0QAANNgAAAAAAAAAAAAAPt4AALDRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJbc AACo3AAA2N0AAMDdAACe3QAAit0AALDdAABk3QAAUN0AAHrdAAAe3QAAEt0AADrdAADq3AAA 2twAAAjdAABu3AAAXtwAAITcAAA+3AAAMNwAAEzcAADG3AAAItwAAAAAAAAg2gAAQNoAAFLa AABe2gAAatoAAAraAAA02gAAnNoAALLaAAC+2gAAztoAAODaAADQ2QAAftoAAI7aAAD02QAA LtsAAEDbAABW2wAAatsAAILbAACS2wAAotsAALDbAADG2wAA2NsAAPTbAAAE3AAA3tkAAKTZ AADE2QAAtNkAAPDaAAAC2wAAdtkAAHDYAACQ2AAAktkAAITZAAA+2QAAYNkAAFDZAAD82AAA LtkAABjZAADK2AAA7NgAAN7YAACg2AAAttgAAK7YAAAQ2wAAHtsAAH7YAACs3gAAnN4AAA7g AAD+3wAA8N8AAODfAADO3wAAvN8AALDfAACi3wAAlN8AAIbfAAB43wAAaN8AAEbeAABa3gAA bN4AAHreAACG3gAAkN4AAFbfAAC83gAAyN4AANTeAADw3gAACt8AACTfAAA83wAAAAAAAC7e AAAa3gAACt4AAAAAAAA0AACAAwAAgHQAAIAQAACAEwAAgAkAAIAEAACAbwAAgHMAAIAXAACA AAAAALQARnJlZUxpYnJhcnkAPgFHZXRQcm9jQWRkcmVzcwAAwgFMb2FkTGlicmFyeUEAABsA Q2xvc2VIYW5kbGUAlgJTbGVlcACeAlRlcm1pbmF0ZVByb2Nlc3MAABwCUmVhZFByb2Nlc3NN ZW1vcnkA7wFPcGVuUHJvY2VzcwDZAU1vZHVsZTMyRmlyc3QATABDcmVhdGVUb29saGVscDMy U25hcHNob3QAACQBR2V0TW9kdWxlRmlsZU5hbWVBAAD+AVByb2Nlc3MzMk5leHQA/AFQcm9j ZXNzMzJGaXJzdAAA1gFNYXBWaWV3T2ZGaWxlADUAQ3JlYXRlRmlsZU1hcHBpbmdBAAASAUdl dEZpbGVTaXplADQAQ3JlYXRlRmlsZUEAsAJVbm1hcFZpZXdPZkZpbGUAGwFHZXRMb2NhbFRp bWUAABoBR2V0TGFzdEVycm9yAADMAUxvY2FsRnJlZQDIAUxvY2FsQWxsb2MAAPgAR2V0Q3Vy cmVudFByb2Nlc3NJZADSAldpZGVDaGFyVG9NdWx0aUJ5dGUA5AFNdWx0aUJ5dGVUb1dpZGVD aGFyAM4AR2V0Q29tcHV0ZXJOYW1lQQAAKABDb3B5RmlsZUEAuQFJc0RCQ1NMZWFkQnl0ZQAA 3wJXcml0ZUZpbGUAGAJSZWFkRmlsZQAAYwFHZXRUZW1wRmlsZU5hbWVBAABlAUdldFRlbXBQ YXRoQQAAVwBEZWxldGVGaWxlQQBoAlNldEZpbGVBdHRyaWJ1dGVzQQAAkABGaW5kQ2xvc2UA nQBGaW5kTmV4dEZpbGVBAJQARmluZEZpcnN0RmlsZUEAAGECU2V0RW5kT2ZGaWxlAABqAlNl dEZpbGVQb2ludGVyAAAUAUdldEZpbGVUaW1lAGwCU2V0RmlsZVRpbWUAbQFHZXRUaWNrQ291 bnQAAEQAQ3JlYXRlUHJvY2Vzc0EAAFkBR2V0U3lzdGVtRGlyZWN0b3J5QQD3AEdldEN1cnJl bnRQcm9jZXNzAJsCU3lzdGVtVGltZVRvRmlsZVRpbWUAAF0BR2V0U3lzdGVtVGltZQB1AUdl dFZlcnNpb25FeEEAdAFHZXRWZXJzaW9uAADOAldhaXRGb3JTaW5nbGVPYmplY3QAygBHZXRD b21tYW5kTGluZUEAgABFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NBAAQBR2V0RHJpdmVUeXBl QQBKAENyZWF0ZVRocmVhZAAAS0VSTkVMMzIuZGxsAABbAVJlZ0Nsb3NlS2V5AGYBUmVnRW51 bUtleUEAcQFSZWdPcGVuS2V5QQBkAVJlZ0RlbGV0ZVZhbHVlQQBqAVJlZ0VudW1WYWx1ZUEA NABDbG9zZVNlcnZpY2VIYW5kbGUAAEwAQ3JlYXRlU2VydmljZUEAAEUBT3BlblNDTWFuYWdl ckEAALMBU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJBAK4BU2V0U2VydmljZVN0YXR1cwAA RwFPcGVuU2VydmljZUEAAI4BUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJBAJ0ARnJlZVNp ZACYAEVxdWFsU2lkAAAYAEFsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZAAA0ABHZXRUb2tlbklu Zm9ybWF0aW9uAEIBT3BlblByb2Nlc3NUb2tlbgAAXAFSZWdDb25uZWN0UmVnaXN0cnlBALIB U3RhcnRTZXJ2aWNlQQB7AVJlZ1F1ZXJ5VmFsdWVFeEEAAIYBUmVnU2V0VmFsdWVFeEEAAF4B UmVnQ3JlYXRlS2V5QQAXAEFkanVzdFRva2VuUHJpdmlsZWdlcwD1AExvb2t1cFByaXZpbGVn ZVZhbHVlQQBBRFZBUEkzMi5kbGwAAFdTMl8zMi5kbGwAABEAV05ldENsb3NlRW51bQAcAFdO ZXRFbnVtUmVzb3VyY2VBAEAAV05ldE9wZW5FbnVtQQBNUFIuZGxsACYBR2V0TW9kdWxlSGFu ZGxlQQAAUAFHZXRTdGFydHVwSW5mb0EAfQBFeGl0UHJvY2VzcwC/AEdldENQSW5mbwC5AEdl dEFDUAAAMQFHZXRPRU1DUAAAvwFMQ01hcFN0cmluZ0EAAMABTENNYXBTdHJpbmdXAACfAUhl YXBGcmVlAACZAUhlYXBBbGxvYwCtAlVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAsgBGcmVl RW52aXJvbm1lbnRTdHJpbmdzQQCzAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAAYBR2V0RW52 aXJvbm1lbnRTdHJpbmdzAAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAbQJTZXRIYW5kbGVD b3VudAAAUgFHZXRTdGRIYW5kbGUAABUBR2V0RmlsZVR5cGUAnQFIZWFwRGVzdHJveQCbAUhl YXBDcmVhdGUAAL8CVmlydHVhbEZyZWUALwJSdGxVbndpbmQAUwFHZXRTdHJpbmdUeXBlQQAA VgFHZXRTdHJpbmdUeXBlVwAAuwJWaXJ0dWFsQWxsb2MAAKIBSGVhcFJlQWxsb2MAfAJTZXRT dGRIYW5kbGUAAKoARmx1c2hGaWxlQnVmZmVycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA W4lAAG+zQAAAAAAAAAAAABS0QAAAAAAAAAAAAAAAAAAAAAAAMw1BAEAAAAAgAAAALAAAAC0t AABcAAAAUVVJVA0KAAANCi4NCgAAAERBVEEgDQoASEVMTyAlcw0KAAAAPg0KAE1BSUwgRlJP TTogPAAAAABSQ1BUIFRPOjwAAAAlZAAAIAkNCgAAAAAuLCgpJSRAIWB+IAAtXwAALi4AAC4A AABcKi4qAAAAAFxcAAAAAAAAiRV37zMZmXgQWLjJ8pkAAAbbFWZX19fXy8EAQAIBAEACUAMA gNvFhoNAxYaDQMtXlwNAUAMAgNuDwNWVy0aCR4FFAEBQQILG20OBR8LLwoFCgwNQAwCA24GD AcvBAEACAQBAAlADAIDbhQCGgILLwQBAAgEAQAJQAwCA28YAgMsGg4HBg0ACUAMAgFDBAduG wkPLRoJHgUUAQFBAgsbbB4EHy8EAQAIBAEACUAMAgNvGg0NDgsvCgUKDA1ADAIDbQ4YHwctG gkeBRQBAUECCxtuAhgGDywZDkEGDx4NAUAMAUEHH28YAAYUAywZDkEGDx4NAUAMAUEHH2weD wMCFwMuCRoJHxoIDwVADAIBQBwLbg8CCxcaDhcuCRoJHxoIDwVADAIBQBwLbwoFAgkbLxsAH UMYD20aDQIIHB4OQRgGQ1VfV1VcXFlbLxoJHR4NQAwCA29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb21XMz0cAAkeDgNNKgcCCB8yIggcHgkAC gkfMgAeABwIHUEXAgdsARoJHyoIHUMBCx9uDhYJHUMGBQdvMAoMMgIOBQFBCgkfb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb 29vb29vb29vb29vb29vb29vb29uAx9XbUILFgttQBwNH21DHgULbUEODxtvb29vb29vb29vb 29tQxsXG21DBxoDbUMHGgMDbUAaDQ9tQgwfH21DCAAPbUEfGQttQxcAH21BBxwLbUAPHx9tQ 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 wYLTQoFHB8bTx8CDhYJHUNsIiQuP289HAAJHg4BKgcCCB8qBR9vb29sHgMbHUNsMi07PF1fb DItOzwsL20gIyhdX20jPDw9OC9tIT4oPjxdX20gPC8mKyhdX20gPC8mKykjO20gPz8iOColI 20iLTttIi06Lzw9OC9tIi06Lzw4XV9tIi07IjhdX20iLTk+OSE/bSItODhdX2wyLTs+I24vI ik/OD04L24uICEjbi07PF1fbi07PCwvbi07PiNtIF1cPC4tIDttIi04OSM7bi0jOiU6JT9uL Ts+Oz8rbi04KC85PyNuLTg6JSJWW2w8Li0gXV9tOD8kOiUgXV9tKkA/OCM8O20qQz08IzpWW 24sLCQ6JSBdX206Kzs5Pi43bTorOlZbbDw6Kis+VltvPCwsOiUiV1duJCIgISJXV24tOz84L 24tOihdX24tOCwhIDwjI20rPkA6JSNvKTs+VlttKkIsKSM6VltsLyIsOlZbbSE4LlZbbDwuL SNtOiU+OD9vICAsJyggOSFfX19fbSABHxgBA24gDg0KCgtuLQMaBRoFH286LDwmICk/b29vb 29vb29vb29vb29vb29vbi0jOiZBOiU9QyovO2wvJCciJD85QyovO2wvJCciJD85QiA/bC8kJ yIkPzlALzw/bC8kJyIkPzlDOi07biU5LUEjOTdsPiItPzgvJCVCID9sPiItPzgvJCVALzw/b i04Kj85QyovO24sKjotPylDKi87b29vb29vbD8HABoPHgVDCwMDbCYJHQILAF1dQwsDA20CC xoPHgRdXUMLAwNsHQgNQwsDA29vb29sPgUcDg4DbSIGAwoPbCwDCgk+CwtsOjwmIiBfVFtXb Ck+JikoX1RbV20qGQNPIAEaBQALTC0eBgIFAg8DbSABHxgBA24gDg0KCgtuLQMaBRoFH24tG AwBABwDA20qQD84Izw7bSpAPggOGR4LbDwDHwQAH20aBR4YH24tOz9OIAECBxgBH24tOz9OO x8KDxoIH24lAAAOGwIPGgonO288LkAOBwMCBQNsPhYCDQMaCA9vOR4JAwtOIgQNHANtKkM9P CM7b00gIyhdX09vb20+CAoEHxoJHD4JHRoEDgs9HAAOCBwfbSILGD8GDR4KLwsLbD8nKgsCC xoIJgoWL2w9CA4kHSoHAgs9HAMaCA8aCwttIgsYPwYNHggqCxolAQgDbSILGi8eBS4ZCQoJH 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 AAAAAAAAQf4AAAAAAAC2AwAAz6LkohoA5aLoolsAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAA QH6h/gAAAABRBQAAUdpe2iAAX9pq2jIAAAAAAAAAAAAAAAAAAAAAAIHT2N7g+QAAMX6B/gAA AAAaKkEAGipBAAAAIAAgACAAIAAgACAAIAAgACAAKAAoACgAKAAoACAAIAAgACAAIAAgACAA IAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA hACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEAgQCBAIEAgQCBAAEAAQABAAEA AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAQABAAEAAQABAAEACCAIIAggCCAIIA ggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEAAQABAAEAAgAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAuAAAAAQAAANzS QADM0kAAIAktDV0AAABdAAAAAAAAAAUAAMALAAAAAAAAAB0AAMAEAAAAAAAAAJYAAMAEAAAA AAAAAI0AAMAIAAAAAAAAAI4AAMAIAAAAAAAAAI8AAMAIAAAAAAAAAJAAAMAIAAAAAAAAAJEA AMAIAAAAAAAAAJIAAMAIAAAAAAAAAJMAAMAIAAAAAAAAAAMAAAAHAAAACgAAAIwAAAD///// AAoAABAAAAAgBZMZAAAAAAAAAAAAAAAAAAAAAAIAAABI1UAACAAAABzVQAAJAAAA8NRAAAoA AADM1EAAEAAAAKDUQAARAAAAcNRAABIAAABM1EAAEwAAACDUQAAYAAAA6NNAABkAAADA00AA GgAAAIjTQAAbAAAAUNNAABwAAAAo00AAeAAAABjTQAB5AAAACNNAAHoAAAD40kAA/AAAAPTS QAD/AAAA5NJAAAAAAAAAAAAAADtJAAAAAAAAO0kAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAA AAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAACHEQAAhxEAAIcRAACHEQAAhxEAAIcRAAAAAAAAAAAAA+AMAAAAAAAAAAAAA AAAAAAEAAAAWAAAAAgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcA AAAMAAAACAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAA DwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAAQQAAAA0A AABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAADQAAAFcAAAAWAAAAWQAAAAsAAABsAAAA DQAAAG0AAAAgAAAAcAAAABwAAAByAAAACQAAAAYAAAAWAAAAgAAAAAoAAACBAAAACgAAAIIA AAAJAAAAgwAAABYAAACEAAAADQAAAJEAAAApAAAAngAAAA0AAAChAAAAAgAAAKQAAAALAAAA pwAAAA0AAAC3AAAAEQAAAM4AAAACAAAA1wAAAAsAAAAYBwAADAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA3iUAgGAAAIDWJQCAgAAAgOYlAIBIAQCAAQAAAHgBAIACAAAA kAEAgAMAAACIAgCADAAAANgFAIAOAAAA8AUAgBAAAADwBgCAGAAAAAgHAIAAAAAAAAAAAAAA AAAAAAIAnwEAACAHAICgAQAAOAcAgAAAAAAAAAAAAAAAAAAAFwDUAAAAUAcAgNUAAABoBwCA 1gAAAIAHAIDXAAAAmAcAgNgAAACwBwCA2gAAAMgHAIAgAQAA4AcAgCEBAAD4BwCAIgEAABAI AIBhAgAAKAgAgLwCAABACACAvQIAAFgIAIC/AgAAcAgAgMECAACICACAwwIAAKAIAIDFAgAA uAgAgMkCAADQCACAzwIAAOgIAIDQAgAAAAkAgNECAAAYCQCA1QIAADAJAIDWAgAASAkAgNcC AABgCQCAAAAAAAAAAAAAAAAAAAAEAAEAAAB4CQCAAgAAAJAJAIADAAAAqAkAgAQAAADACQCA AAAAAAAAAAAAAAAAAAABAAEAAADYCQCAAAAAAAAAAAAAAAAAAQAcAMAlAIDwCQCA4gAAAAgK AIAPAQAAIAoAgBEBAAA4CgCAEgEAAFAKAIATAQAAaAoAgBQBAACACgCAFQEAAJgKAIAWAQAA sAoAgCMBAADICgCAJAEAAOAKAIAlAQAA+AoAgJEBAAAQCwCAkgEAACgLAICXAQAAQAsAgJgB AABYCwCAmwEAAHALAICnAQAAiAsAgKoBAACgCwCAXwIAALgLAIBiAgAA0AsAgMcCAADoCwCA ygIAAAAMAIDLAgAAGAwAgMwCAAAwDACAzgIAAEgMAIDSAgAAYAwAgNMCAAB4DACA1AIAAJAM AIAAAAAAAAAAAAAAAAAAAGgAAgAAAKgMAIADAAAAwAwAgAQAAADYDACABQAAAPAMAIAGAAAA CA0AgAcAAAAgDQCACAAAADgNAIAJAAAAUA0AgAoAAABoDQCACwAAAIANAIAMAAAAmA0AgA0A AACwDQCADgAAAMgNAIAPAAAA4A0AgBAAAAD4DQCAEQAAABAOAIASAAAAKA4AgBMAAABADgCA FAAAAFgOAIAVAAAAcA4AgBYAAACIDgCAFwAAAKAOAIAYAAAAuA4AgBkAAADQDgCAGgAAAOgO AIAbAAAAAA8AgBwAAAAYDwCAHQAAADAPAIAeAAAASA8AgB8AAABgDwCAIAAAAHgPAIAhAAAA kA8AgCIAAACoDwCAIwAAAMAPAIAkAAAA2A8AgCUAAADwDwCAJgAAAAgQAIAnAAAAIBAAgCgA AAA4EACAKQAAAFAQAIAqAAAAaBAAgCsAAACAEACALAAAAJgQAIAtAAAAsBAAgC4AAADIEACA LwAAAOAQAIAwAAAA+BAAgDEAAAAQEQCAMgAAACgRAIAzAAAAQBEAgDQAAABYEQCANQAAAHAR AIA2AAAAiBEAgDcAAACgEQCAOAAAALgRAIA5AAAA0BEAgDoAAADoEQCAOwAAAAASAIA8AAAA GBIAgD0AAAAwEgCAPgAAAEgSAIA/AAAAYBIAgEAAAAB4EgCAQQAAAJASAIBCAAAAqBIAgEMA AADAEgCARAAAANgSAIBFAAAA8BIAgEYAAAAIEwCARwAAACATAIBIAAAAOBMAgEkAAABQEwCA SgAAAGgTAIBLAAAAgBMAgEwAAACYEwCATQAAALATAIBOAAAAyBMAgE8AAADgEwCAUAAAAPgT AIBRAAAAEBQAgFIAAAAoFACAUwAAAEAUAIBUAAAAWBQAgFUAAABwFACAVgAAAIgUAIBXAAAA oBQAgFgAAAC4FACAWQAAANAUAIBaAAAA6BQAgFsAAAAAFQCAXAAAABgVAIBdAAAAMBUAgF4A AABIFQCAXwAAAGAVAIBgAAAAeBUAgGEAAACQFQCAYgAAAKgVAIBjAAAAwBUAgGQAAADYFQCA ZQAAAPAVAIBmAAAACBYAgGcAAAAgFgCAaAAAADgWAIBpAAAAUBYAgAAAAAAAAAAAAAAAAAAA AQDECQAAaBYAgAAAAAAAAAAAAAAAAAAAHgABAAAAgBYAgAIAAACYFgCAAwAAALAWAIAEAAAA yBYAgAUAAADgFgCAZAAAAPgWAIBlAAAAEBcAgMgAAAAoFwCAyQAAAEAXAIDKAAAAWBcAgMsA AABwFwCAzAAAAIgXAIDNAAAAoBcAgM4AAAC4FwCAzwAAANAXAIDQAAAA6BcAgNEAAAAAGACA 0gAAABgYAIDTAAAAMBgAgNkAAABIGACA2wAAAGAYAIDcAAAAeBgAgN0AAACQGACA3gAAAKgY AIDfAAAAwBgAgOAAAADYGACA4QAAAPAYAIAIAQAACBkAgC0BAAAgGQCALgEAADgZAIAAAAAA AAAAAAAAAAAAAAEAAQAAAFAZAIAAAAAAAAAAAAAAAAAAAAEAAQAAAGgZAIAAAAAAAAAAAAAA AAAAAAEACQQAAIAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAZAAAAAAAAAAAAAAAAAAAAAAEA CQQAAKAZAAAAAAAAAAAAAAAAAAAAAAEACQQAALAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAMAZ AAAAAAAAAAAAAAAAAAAAAAEACQQAANAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAOAZAAAAAAAA AAAAAAAAAAAAAAEACQQAAPAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAaAAAAAAAAAAAAAAAA AAAAAAEACQQAABAaAAAAAAAAAAAAAAAAAAAAAAEACQQAACAaAAAAAAAAAAAAAAAAAAAAAAEA CQQAADAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAFAa AAAAAAAAAAAAAAAAAAAAAAEACQQAAGAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAHAaAAAAAAAA AAAAAAAAAAAAAAEACQQAAIAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAaAAAAAAAAAAAAAAAA AAAAAAEACQQAAKAaAAAAAAAAAAAAAAAAAAAAAAEACQQAALAaAAAAAAAAAAAAAAAAAAAAAAEA CQQAAMAaAAAAAAAAAAAAAAAAAAAAAAEACQQAANAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAOAa AAAAAAAAAAAAAAAAAAAAAAEACQQAAPAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAbAAAAAAAA AAAAAAAAAAAAAAEACQQAABAbAAAAAAAAAAAAAAAAAAAAAAEACQQAACAbAAAAAAAAAAAAAAAA AAAAAAEACQQAADAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAbAAAAAAAAAAAAAAAAAAAAAAEA CQQAAFAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAHAb AAAAAAAAAAAAAAAAAAAAAAEACQQAAIAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAbAAAAAAAA AAAAAAAAAAAAAAEACQQAAKAbAAAAAAAAAAAAAAAAAAAAAAEACQQAALAbAAAAAAAAAAAAAAAA AAAAAAEACQQAAMAbAAAAAAAAAAAAAAAAAAAAAAEACQQAANAbAAAAAAAAAAAAAAAAAAAAAAEA CQQAAOAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAc AAAAAAAAAAAAAAAAAAAAAAEACQQAABAcAAAAAAAAAAAAAAAAAAAAAAEACQQAACAcAAAAAAAA AAAAAAAAAAAAAAEACQQAADAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAcAAAAAAAAAAAAAAAA AAAAAAEACQQAAFAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAcAAAAAAAAAAAAAAAAAAAAAAEA CQQAAHAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAc AAAAAAAAAAAAAAAAAAAAAAEACQQAAKAcAAAAAAAAAAAAAAAAAAAAAAEACQQAALAcAAAAAAAA AAAAAAAAAAAAAAEACQQAAMAcAAAAAAAAAAAAAAAAAAAAAAEACQQAANAcAAAAAAAAAAAAAAAA AAAAAAEACQQAAOAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAcAAAAAAAAAAAAAAAAAAAAAAEA CQQAAAAdAAAAAAAAAAAAAAAAAAAAAAEACQQAABAdAAAAAAAAAAAAAAAAAAAAAAEACQQAACAd AAAAAAAAAAAAAAAAAAAAAAEACQQAADAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAdAAAAAAAA AAAAAAAAAAAAAAEACQQAAFAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAdAAAAAAAAAAAAAAAA AAAAAAEACQQAAHAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAdAAAAAAAAAAAAAAAAAAAAAAEA CQQAAJAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAKAdAAAAAAAAAAAAAAAAAAAAAAEACQQAALAd AAAAAAAAAAAAAAAAAAAAAAEACQQAAMAdAAAAAAAAAAAAAAAAAAAAAAEACQQAANAdAAAAAAAA AAAAAAAAAAAAAAEACQQAAOAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAdAAAAAAAAAAAAAAAA AAAAAAEACQQAAAAeAAAAAAAAAAAAAAAAAAAAAAEACQQAABAeAAAAAAAAAAAAAAAAAAAAAAEA CQQAACAeAAAAAAAAAAAAAAAAAAAAAAEACQQAADAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAe AAAAAAAAAAAAAAAAAAAAAAEACQQAAFAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAeAAAAAAAA AAAAAAAAAAAAAAEACQQAAHAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAeAAAAAAAAAAAAAAAA AAAAAAEACQQAAJAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAKAeAAAAAAAAAAAAAAAAAAAAAAEA CQQAALAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAMAeAAAAAAAAAAAAAAAAAAAAAAEACQQAANAe AAAAAAAAAAAAAAAAAAAAAAEACQQAAOAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAeAAAAAAAA AAAAAAAAAAAAAAEACQQAAAAfAAAAAAAAAAAAAAAAAAAAAAEACQQAABAfAAAAAAAAAAAAAAAA AAAAAAEACQQAACAfAAAAAAAAAAAAAAAAAAAAAAEACQQAADAfAAAAAAAAAAAAAAAAAAAAAAEA CQQAAEAfAAAAAAAAAAAAAAAAAAAAAAEACQQAAFAfAAAAAAAAAAAAAAAAAAAAAAEATVqQAAMA AAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA gAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v ZGUuDQ0KJAAAAAAAAABQRQAATAEEAECbqjkAAAAAAAAAAOAADwELAQUAAAgBAAD4CgAAAAAA AJoAAAAQAAAAIAEAAABAAAAQAAAAAgAABAAAAAAAAAAEAAAAAAAAAAAwDAAABAAAAAAAAAIA AAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAAAgDAA8AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABoIQwALAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAA wAYBAAAQAAAACAEAAAQAAAAAAAAAAAAAAAAAACAAAGAucmRhdGEAAOgQAAAAIAEAABIAAAAM AQAAAAAAAAAAAAAAAABAAABALmRhdGEAAACQ3AoAAEABAABCAAAAHgEAAAAAAAAAAAAAAAAA QAAAwC5pZGF0YQAAsgcAAAAgDAAACAAAAGABAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=9 --X0L3d9733m7s10V1WmboUT810j101V1 --X0L3d9733m7s10V1WmboUT810j101V1 Content-Type: application/octet-stream; name=lettreouverteWarsaw[1].htm Content-Transfer-Encoding: base64 Content-ID: PGh0bWw+CgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250 ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIj4KCQk8dGl0bGU+PC90aXRsZT4K CQk8Y3NzY3JpcHRkaWN0IGltcG9ydD4KCQkJPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlw dDEuMiIgc3JjPSJHZW5lcmF0ZWRJdGVtcy9DU1NjcmlwdExpYi5qcyI+PC9zY3JpcHQ+CgkJ PC9jc3NjcmlwdGRpY3Q+CgkJPGNzaW1wb3J0IHVzZXI9ImhhdXQuaHRtbCIgb2NjdXI9Ijc4 IiBvbmxvYWQ+CgkJCTxjc2FjdGlvbmRpY3Q+CgkJCQk8c2NyaXB0PjwhLS0KQ1NJbml0W0NT SW5pdC5sZW5ndGhdID0gbmV3IEFycmF5KENTUHJlbG9hZEltYWdlLC8qVVJMKi8gJ2xvZ28v bm9tLmpwZycpOwoKLy8gLS0+PC9zY3JpcHQ+CgkJCTwvY3NhY3Rpb25kaWN0PgoJCTwvY3Np bXBvcnQ+Cgk8L2hlYWQ+CgoJPGJvZHkgYmdjb2xvcj0id2hpdGUiIG9ubG9hZD0iQ1NTY3Jp cHRJbml0KCk7Ij4KCQk8Y3NvYmogdz0iNzQ5IiBoPSI5MSIgdD0iQ29tcG9uZW50IiBjc3Jl Zj0iaGF1dC5odG1sIiBvY2N1cj0iNzgiPjxmb250IGNvbG9yPSIjMWU5MGZmIj4KCQk8dGFi bGUgY29vbCB3aWR0aD0iNTg2IiBoZWlnaHQ9Ijg2IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCIgZ3JpZHg9IjE2IiBzaG93Z3JpZHggdXNlZ3JpZHggZ3Jp ZHk9IjE2IiBzaG93Z3JpZHkgdXNlZ3JpZHk+CgkJCTx0ciBoZWlnaHQ9IjEiIGNudHJscm93 PgoJCQkJPHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9Ijgi IGhlaWdodD0iMSI+PHNwYWNlciB0eXBlPSJibG9jayIgd2lkdGg9IjgiIGhlaWdodD0iMSI+ PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMTMzIiBoZWlnaHQ9IjEiPjxzcGFjZXIgdHlwZT0iYmxv Y2siIHdpZHRoPSIxMzMiIGhlaWdodD0iMSI+PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMzcxIiBo ZWlnaHQ9IjEiPjxzcGFjZXIgdHlwZT0iYmxvY2siIHdpZHRoPSIzNzEiIGhlaWdodD0iMSI+ PC90ZD4KCQkJCTx0ZCB3aWR0aD0iNzMiIGhlaWdodD0iMSI+PHNwYWNlciB0eXBlPSJibG9j ayIgd2lkdGg9IjczIiBoZWlnaHQ9IjEiPjwvdGQ+CgkJCTwvdHI+CgkJCTx0ciBoZWlnaHQ9 IjQ5Ij4KCQkJCTx0ZCB3aWR0aD0iMSIgaGVpZ2h0PSI0OSI+PHNwYWNlciB0eXBlPSJibG9j ayIgd2lkdGg9IjEiIGhlaWdodD0iNDkiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9IjE0MSIgaGVp Z2h0PSI0OSIgY29sc3Bhbj0iMiIgcm93c3Bhbj0iMSIgdmFsaWduPSJ0b3AiIGFsaWduPSJs ZWZ0IiB4cG9zPSIwIj48aW1nIGhlaWdodD0iNDkiIHNyYz0ibG9nby9tZy5qcGciIGJvcmRl cj0iMCI+PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMzcxIiBoZWlnaHQ9IjQ5IiBjb2xzcGFuPSIx IiByb3dzcGFuPSIxIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHhwb3M9IjE0MSI+PGlt ZyBzcmM9ImxvZ28vbm9tLmpwZyIgaGVpZ2h0PSI0MyIgYm9yZGVyPSIwIj48L3RkPgoJCQkJ PHRkIHdpZHRoPSI3MyIgaGVpZ2h0PSI0OSIgY29sc3Bhbj0iMSIgcm93c3Bhbj0iMSIgdmFs aWduPSJ0b3AiIGFsaWduPSJsZWZ0IiB4cG9zPSI1MTIiPjxpbWcgaGVpZ2h0PSI0OSIgc3Jj PSJwaG90b3MvZmxhZ3dhdmUuZ2lmIiBib3JkZXI9IjAiPjwvdGQ+CgkJCTwvdHI+CgkJCTx0 ciBoZWlnaHQ9IjE4Ij4KCQkJCTx0ZCB3aWR0aD0iMSIgaGVpZ2h0PSIxOCI+PHNwYWNlciB0 eXBlPSJibG9jayIgd2lkdGg9IjEiIGhlaWdodD0iMTgiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9 IjgiIGhlaWdodD0iMTgiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9IjU3NyIgaGVpZ2h0PSIxOCIg Y29sc3Bhbj0iMyIgcm93c3Bhbj0iMSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0IiB4cG9z PSI4Ij4KCQkJCQk8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIyIiB3aWR0 aD0iNTYwIj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkPjxhIGhyZWY9ImluZGV4Lmh0bWwiPjxm b250IGZhY2U9IkFyaWFsLEhlbHZldGljYSxHZW5ldmEsU3dpc3MsU3VuU2Fucy1SZWd1bGFy IiBjb2xvcj0iIzFlOTBmZiI+PGI+QWNjdWVpbDwvYj48L2ZvbnQ+PC9hPjwvdGQ+CgkJCQkJ CQk8dGQ+Jm5ic3A7PC90ZD4KCQkJCQkJCTx0ZD4KCQkJCQkJCQk8ZGl2IGFsaWduPSJsZWZ0 Ij4KCQkJCQkJCQkJPGEgaHJlZj0ibWFpbHRvOmRlc2luZm9zQGRlc2luZm9zLmNvbSI+PGZv bnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLEdlbmV2YSxTd2lzcyxTdW5TYW5zLVJlZ3VsYXIi IGNvbG9yPSJyZWQiPjxiPmRlc2luZm9zQGRlc2luZm9zLmNvbTwvYj48L2ZvbnQ+PC9hPjwv ZGl2PgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZD48L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9 Imxlc2luZm9zLmh0bWwiPjxmb250IGNvbG9yPSIjMWU5MGZmIiBmYWNlPSJBcmlhbCxIZWx2 ZXRpY2EsR2VuZXZhLFN3aXNzLFN1blNhbnMtUmVndWxhciI+PGI+TGEgbGlzdGUgZGVzIElu Zm9zPC9iPjwvZm9udD48L2E+PC90ZD4KCQkJCQkJCTx0ZD48L3RkPgoJCQkJCQkJPHRkPjxh IGhyZWY9ImphdmFzY3JpcHQ6b25DbGljaz1sb2NhdGlvbj0nbWFpbHRvOj9zdWJqZWN0PScr dG9wLmRvY3VtZW50LnRpdGxlKycmYm9keT1Wb2ljaSB1biBzaXRlIHN1ciBsYSBkZXNpbmZv cm1hdGlvbiBpbnRlcnJlc3NhbnQ6ICcrdG9wLmRvY3VtZW50LmxvY2F0aW9uKycnIj48Zm9u dCBjb2xvcj0iIzFlOTBmZiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLEdlbmV2YSxTd2lzcyxT dW5TYW5zLVJlZ3VsYXIiPjxiPkVudm95ZXombmJzcDtsJ2FkcmVzc2UmbmJzcDtkdSZuYnNw O3NpdGUmbmJzcDsmYWdyYXZlOyZuYnNwO3VuJm5ic3A7YW1pPC9iPjwvZm9udD48L2E+PC90 ZD4KCQkJCQkJCTx0ZD4mbmJzcDs8L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9ImphdmFzY3Jp cHQ6aGlzdG9yeS5iYWNrKCkiPjxmb250IGZhY2U9IkFyaWFsLEhlbHZldGljYSxHZW5ldmEs U3dpc3MsU3VuU2Fucy1SZWd1bGFyIiBjb2xvcj0iIzFlOTBmZiI+PGI+cmV0b3VyPC9iPjwv Zm9udD48L2E+PC90ZD4KCQkJCQkJPC90cj4KCQkJCQk8L3RhYmxlPgoJCQkJPC90ZD4KCQkJ PC90cj4KCQkJPHRyIGhlaWdodD0iMTgiPgoJCQkJPHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjE4 Ij48c3BhY2VyIHR5cGU9ImJsb2NrIiB3aWR0aD0iMSIgaGVpZ2h0PSIxOCI+PC90ZD4KCQkJ CTx0ZCB3aWR0aD0iNTg1IiBoZWlnaHQ9IjE4IiBjb2xzcGFuPSI0IiByb3dzcGFuPSIxIiB2 YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHhwb3M9IjAiPgoJCQkJCTx0YWJsZSBjZWxscGFk ZGluZz0iMCIgYmdjb2xvcj0iI2FmZWVlZSI+CgkJCQkJCTx0cj4KCQkJCQkJCTx0ZD48YSBo cmVmPSJ0ZXh0ZXMuaHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPjxu b2JyPlRleHRlczwvbm9icj48L2ZvbnQ+PC9hPjwvdGQ+CgkJCQkJCQk8dGQ+PC90ZD4KCQkJ CQkJCTx0ZD48YSBocmVmPSJjb3VycmllcnMuaHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxh Y2siIHNpemU9IjIiPkNvdXJyaWVyczwvZm9udD48L2E+PC90ZD4KCQkJCQkJCTx0ZD48L3Rk PgoJCQkJCQkJPHRkPjxhIGhyZWY9ImRlc19pbmZvcm1hdGlvbnMuaHRtbCI+PGZvbnQgZmFj ZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkxpZW5zPC9mb250PjwvYT48L3RkPgoJCQkJCQkJ PHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0iZGVyYXBhZ2VzLmh0bWwiPjxmb250IGZh Y2U9IkFyaWFsIEJsYWNrIiBzaXplPSIyIj5EJmVhY3V0ZTtyYXBhZ2VzPC9mb250PjwvYT48 L3RkPgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQgd2lkdGg9Ijk5Ij48YSBocmVmPSJj b250cmVkZXNpbmZvcm1hdGV1ci5odG1sIj48Zm9udCBjb2xvcj0icmVkIiBmYWNlPSJBcmlh bCBCbGFjayIgc2l6ZT0iMiI+RW1haWxzIHImZWFjdXRlO2RhY3Rpb25zPC9mb250PjwvYT48 L3RkPgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0iZGF0ZXMuaHRtbCI+ PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkRhdGVzPC9mb250PjwvYT48L3Rk PgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0icHJlc3NlLmh0bWwiPjxm b250IGZhY2U9IkFyaWFsIEJsYWNrIiBzaXplPSIyIj5QcmVzc2U8L2ZvbnQ+PC9hPjwvdGQ+ CgkJCQkJCQk8dGQ+PC90ZD4KCQkJCQkJCTx0ZD48YSBocmVmPSJkZXNJbmZvcm1hdGlvbnMu aHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkFyY2hpdmVzPC9mb250 PjwvYT48L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9Im1lbmEuaHRtbCI+PGZvbnQgY29sb3I9 InJlZCIgc2l6ZT0iMiIgZmFjZT0iQXJpYWwgQmxhY2siPk1lPC9mb250Pjxmb250IGNvbG9y PSJibHVlIiBzaXplPSIyIiBmYWNlPSJBcmlhbCBCbGFjayI+dHVsYSA8L2ZvbnQ+PGZvbnQg Y29sb3I9InJlZCIgc2l6ZT0iMiIgZmFjZT0iQXJpYWwgQmxhY2siPk48L2ZvbnQ+PGZvbnQg Y29sb3I9ImJsdWUiIHNpemU9IjIiIGZhY2U9IkFyaWFsIEJsYWNrIj5ld3MgPC9mb250Pjxm b250IGNvbG9yPSJyZWQiIHNpemU9IjIiIGZhY2U9IkFyaWFsIEJsYWNrIj5BPC9mb250Pjxm b250IGNvbG9yPSJibHVlIiBzaXplPSIyIiBmYWNlPSJBcmlhbCBCbGFjayI+Z2VuY3k8L2Zv bnQ+PC9hPjwvdGQ+CgkJCQkJCTwvdHI+CgkJCQkJPC90YWJsZT4KCQkJCTwvdGQ+CgkJCTwv dHI+CgkJPC90YWJsZT4KCQk8L2ZvbnQ+PC9jc29iaj4KCQk8cD48Zm9udCBmYWNlPSJWZXJk YW5hIiBzaXplPSI1Ij48Yj5MZXR0cmUgb3V2ZXJ0ZSAmYWdyYXZlOyBNLiBKZWFuLU1hcmll IENvbG9tYmFuaSwgZGlyZWN0ZXVyIGRlIGxhIHImZWFjdXRlO2RhY3Rpb24gZHUgTW9uZGU8 YnI+CgkJPC9iPjwvZm9udD48Zm9udCBmYWNlPSJWZXJkYW5hIj4xIG1haSAyMDAyPGJyPgoJ CTwvZm9udD48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj5EYW5zIExlIE1vbmRlIGVu IGRhdGUgZHUgbWVyY3JlZGkgMWVyIG1haSwgZXN0IHB1YmxpJmVhY3V0ZTsgZW4gcGFnZSAx OCBsZSBkZXNzaW4gZCYjMTQ2O3VuIHF1b3RpZGllbiBrZW55YW4sIHRyYWR1aXQgcGFyIGwm IzE0NjtoZWJkb21hZGFpcmUgQ291cnJpZXIgSW50ZXJuYXRpb25hbCBwb3VyIExlIE1vbmRl LiBMZSBkZXNzaW4gZXN0IHBhcnRhZyZlYWN1dGU7IGVuIGRldXggdmlnbmV0dGVzLCBkYW5z IGNoYWN1bmUgZCYjMTQ2O2VsbGUgdW4gcGVyc29ubmFnZSBzZSB0aWVudCBsZXMgbWFpbnMg cG91ciBwbGV1cmVyIGRldmFudCB1biBkJmVhY3V0ZTtjb3IgZGUgcnVpbmVzIGV0IGRlIGQm ZWFjdXRlO2NvbWJyZXMuIFZpZ25ldHRlIGRlIGdhdWNoZSA6ICZxdW90OyBWYXJzb3ZpZSAx OTQzICZxdW90OywgdmlnbmV0dGUgZGUgZHJvaXRlIDogJnF1b3Q7IEplbmluZSBhdWpvdXJk JiMxNDY7aHVpICZxdW90Oy4gQ29tbWVudGFpcmUgZXhwbGljaXRlIGRhbnMgdW4gY29pbiBk dSBkZXNzaW4gOiAmcXVvdDsgbCYjMTQ2O2hpc3RvaXJlIGEgdW5lIGN1cmlldXNlIGZhJmNj ZWRpbDtvbiBkZSBzZSByJmVhY3V0ZTtwJmVhY3V0ZTt0ZXIgJnF1b3Q7ICEgISAhJiMxMzM7 PGJyPgoJCTxpbWcgaGVpZ2h0PSI0MDIiIHdpZHRoPSI2MDAiIHNyYz0icGhvdG9zL3dhcnNh d0UuanBnIiBhbGlnbj0idG9wIj48YnI+CgkJTGUgTW9uZGUgY2F1dGlvbm5lIGRvbmMgZW4g cHVibGlhbnQgY2UgZGVzc2luIHVuIHBhcmFsbCZlZ3JhdmU7bGUgZW50cmUgbGUgZ2hldHRv IGRlIFZhcnNvdmllIGQmZWFjdXRlO3RydWl0IGV0IGxhbWluJmVhY3V0ZTsgcGFyIGxlcyBu YXppcyBlbiAxOTQyLCBldCBsZSBjYW1wIGRlIHImZWFjdXRlO2Z1Z2kmZWFjdXRlOyBwYWxl c3RpbmllbiBkZSBKZW5pbmUuIEF1dHJlbWVudCBkaXQgSXNyYSZldW1sO2wgZXN0IHVuICZl YWN1dGU7dGF0IG5hemksIGxlcyBzb2xkYXRzIGRlIFRzYWhhbCBkZXMgU1MmIzEzMzs8YnI+ CgkJPGJyPgoJCUxlIE1vbmRlIGZhaXQgaWNpIG1vbnRyZSBkJiMxNDY7dW4gZCZlYWN1dGU7 bmkgZGUgciZlYWN1dGU7YWxpdCZlYWN1dGU7IGluY3JveWFibGUsIGQmIzE0Njt1bmUgaGFp bmUgZXQgZCYjMTQ2O3VuZSBwcm9wYWdhbmRlIGFudGlzJmVhY3V0ZTttaXRlIGRvbnQgbGEg dmlydWxlbmNlIGV0IGxhIGhhcmduZSBsZSBkaXNwdXRlbnQgJmFncmF2ZTsgY2VsbGVzIHF1 aSBhdmFpZW50IGNvdXJzIGVuIGRlcyB0ZW1wcyBxdSYjMTQ2O29uIGF1cmFpdCBlc3AmZWFj dXRlO3ImZWFjdXRlOyByJmVhY3V0ZTt2b2x1cy48YnI+CgkJPGJyPgoJCUxlIE1vbmRlIG5v dXMgYXZhaXQgZCZlYWN1dGU7aiZhZ3JhdmU7IGhhYml0dSZlYWN1dGU7ICZhZ3JhdmU7IGNv bmZvbmRyZSBsZXMgbmV3cyBldCBsZXMgdmlld3MsIGxlcyBmYWl0cyBldCBsJiMxNDY7b3Bp bmlvbi4gU29pdCwgbSZlY2lyYzttZSBzaSBzZSBjb3Jyb21wdCBhaW5zaSBwYWdlIGFwciZl Z3JhdmU7cyBwYWdlIHVuIGNlcnRhaW4gaWQmZWFjdXRlO2FsIGR1IGpvdXJuYWxpc21lLjxi cj4KCQlPbiBwZXV0IHMmIzE0NjtvcHBvc2VyICZhZ3JhdmU7IGxhIHBvbGl0aXF1ZSBkdSBn b3V2ZXJuZW1lbnQgaXNyYSZlYWN1dGU7bGllbi4gTGlicmUgJmFncmF2ZTsgdG91cyBkZSBz b3V0ZW5pciBsZXMgYXNwaXJhdGlvbnMgcGFsZXN0aW5pZW5uZXMuIElsIGVzdCBwZXJtaXMg ZGUgc2UgcmV2ZW5kaXF1ZXIgZCYjMTQ2O3VuIGpvdXJuYWxpc21lIGVuZ2FnJmVhY3V0ZTsg ZXQgcGFydGlzYW4sIGV0IGRlIG1pbGl0ZXIgZW4gZmF2ZXVyIGRlIHRlbCBvdSB0ZWwgY2Ft cCYjMTMzOzxicj4KCQk8YnI+CgkJTWFpcyBzZSB2YXV0cmVyIGFpbnNpIGRhbnMgbGEgYmFz c2Vzc2UgZCYjMTQ2O3VuZSB0ZWxsZSB2aWxlIHByb3BhZ2FuZGUgISBRdWkgbCYjMTQ2O2Um dWNpcmM7dCBjciZ1Y2lyYzsgZGUgbGEgcGFydCBkJiMxNDY7dW4gam91cm5hbCBxdWUgbCYj MTQ2O29uIGRpdCBlbmNvcmUgJmVjaXJjO3RyZSBsYSByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5j ZSBlbiBtYXRpJmVncmF2ZTtyZSBkZSBwcmVzc2UgZGFucyBub3RyZSBwYXlzID88YnI+CgkJ PGJyPgoJCU91aSwgbCYjMTQ2O2hpc3RvaXJlIGEgdW5lIGJpZW4gY3VyaWV1c2UgZmEmY2Nl ZGlsO29uIGRlIHNlIHImZWFjdXRlO3AmZWFjdXRlO3RlciA6IGF1am91cmQmIzE0NjtodWkg YyYjMTQ2O2VzdCBsJiMxNDY7JmVhY3V0ZTtsaXRlICZlYWN1dGU7Y2xhaXImZWFjdXRlO2Us IGQmZWFjdXRlO21vY3JhdGUgZXQgcHJvZ3Jlc3Npc3RlLCBxdWkgYWRvcHRlIGxhIHZlcnZl IGFudGlzJmVhY3V0ZTttaXRlIGRlcyBsaWd1ZXMgZCYjMTQ2O2V4dHImZWNpcmM7bWUgZHJv aXRlIGV0IGxhIHN0aWdtYXRpc2F0aW9uIGR1IGp1aWYgcXVpIGZsZXVyaXNzYWl0IGRhbnMg bGEgcHJlc3NlIGNvbGxhYm8uIENlcnRlcywgbGUgcGFyYWRpZ21lIGVzdCBkaWZmJmVhY3V0 ZTtyZW50LCBlbiBjZSBOb3V2ZWF1IEJyJmVhY3V0ZTt2aWFpcmUgZGUgbGEgSGFpbmUgZCZl YWN1dGU7Y3JpdCBwYXIgTWEmaWNpcmM7dHJlIEdvbGRuYWRlbC4gTWFpcyBsYSBjb25jbHVz aW9uIGRlbWV1cmUsIElzcmEmZXVtbDtsLCBjJiMxNDY7ZXN0ICZhZ3JhdmU7IGRpcmUgbGUg SnVpZiwgZXN0ICZhZ3JhdmU7IG1ldHRyZSBhdSBiYW4gZHUgbW9uZGUuIENhciBhdSB0cmF2 ZXJzIGQmIzE0NjtJc3JhJmV1bWw7bCwgZnVzdGlnJmVhY3V0ZTsgYWluc2kgZGFucyB2b3Mg Y29sb25uZXMsIGMmIzE0Njtlc3QgY2hhcXVlIGp1aWYgcXVpIGVzdCBhdHRlaW50LiBFdCBp bCBuJiMxNDY7ZXN0IHBpcmUgaW5zdWx0ZSBxdWUgZCYjMTQ2O2luc2ludWVyIHF1ZSBsZXMg dmljdGltZXMgZCYjMTQ2O2hpZXIgbmUgdmFsZW50IHBhcyBtaWV1eCBhdWpvdXJkJiMxNDY7 aHVpIHF1ZSBsZXVycyBib3VycmVhdXggbmF6aXMuPGJyPgoJCTxicj4KCQlBaW5zaSBzZWxv biBMZSBNb25kZSwgSXNyYSZldW1sO2wgYXVyYWl0IGQmZWFjdXRlO3Zhc3QmZWFjdXRlOyBs ZSBjYW1wcyBkZSBKZW5pbmUgY29tbWUgbGEgc29sZGF0ZXNxdWUgU1MgYSByYXMmZWFjdXRl OyBsZSBnaGV0dG8gZGUgVmFyc292aWUgPyAoZXQgbGVzIHBhbGVzdGluaWVucyBzdXJ2aXZh bnRzLCBvbnQgaWxzICZlYWN1dGU7dCZlYWN1dGU7IGJyJnVjaXJjO2wmZWFjdXRlO3MgZGFu cyBkZXMgY2hhbWJyZXMgJmFncmF2ZTsgZ2F6ID8gUXVhbmQgb3NlcmV6IHZvdXMgbCYjMTQ2 OyZlYWN1dGU7Y3JpcmU/KTxicj4KCQk8YnI+CgkJTiYjMTQ2O3kgYS10LWlsIGF1Y3VuIGxl dHRyJmVhY3V0ZTsgcnVlIENsYXVkZSBCZXJuYXJkID8gTiYjMTQ2O3kgYS10LWlsIHBsdXMg dW5lIHBlcnNvbm5lIHNlbnMmZWFjdXRlOyBldCBjb25uYWlzc2FudCBsJiMxNDY7aGlzdG9p cmUgPyBKZSBuZSB2ZXV4IG0mZWNpcmM7bWUgcGFzIHBhcmxlciBkZSBsYSByJmVhY3V0ZTth bGl0JmVhY3V0ZTsgZGUgY2UgcXVpIHMmIzE0Njtlc3QgcGFzcyZlYWN1dGU7ICZhZ3JhdmU7 IEplbmluZSBhdWpvdXJkJiMxNDY7aHVpLCBldCBkb250IGxlIGQmZWFjdXRlO3RhaWwgcmVz dGUgJmFncmF2ZTsgJmVhY3V0ZTtjbGFpcmNpciwgbWFpcyBkb250IGxhIG1lc3VyZSBuJiMx NDY7ZXN0IHNhbnMgY29tcGFyYWlzb24gcG9zc2libGUgYXZlYyBjZSBxdWkgcyYjMTQ2O2Vz dCBwYXNzJmVhY3V0ZTsgaGllciAmYWdyYXZlOyBWYXJzb3ZpZS48YnI+CgkJPGJyPgoJCVBv dXIgbSZlYWN1dGU7bW9pcmUsIGR1cmFudCBsYSBzZXVsZSBwJmVhY3V0ZTtyaW9kZSBkZSAx MSBzZW1haW5lcyByZXRlbnVlIHNvdXMgbGUgbm9tIGRlICZxdW90OyBncmFuZGUgYWN0aW9u ICZxdW90OyBkZSBsaXF1aWRhdGlvbiBkdSBnaGV0dG8gZGUgVmFyc292aWUsIGVudHJlIGp1 aWxsZXQgZXQgc2VwdGVtYnJlIDE5NDIsIDI4MCAmYWdyYXZlOyAzMDAgMDAwIGp1aWZzIG9u dCAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtwb3J0JmVhY3V0ZTtzIGV0IGV4dGVybWlu JmVhY3V0ZTtzIGRhbnMgbGVzIGNhbXBzIGRlIFRyZWJsaW5rYSwgQmVsemVjLCBDaGVsbW5v LCBTb2JpYm9yIGV0IEF1c2Nod2l0ei4gTGEgcG9wdWxhdGlvbiBjaXZpbGUgYXZhaXQgYXVw YXJhdmFudCAmZWFjdXRlO3QmZWFjdXRlOyBlbXByaXNvbm4mZWFjdXRlO2UsIGVtcCZlY2ly YztjaCZlYWN1dGU7ZSBkZSBzb3J0aXIgZHUgZ2hldHRvLCAmZWFjdXRlO3B1aXMmZWFjdXRl O2UgcGFyIGxhIGZhaW0gZXQgbGVzIG1hbGFkaWVzLjxicj4KCQk8YnI+CgkJT3VpLCBsJiMx NDY7aGlzdG9pcmUgYSB1bmUgYmllbiBjdXJpZXVzZSBmYSZjY2VkaWw7b24gZGUgc2UgciZl YWN1dGU7cCZlYWN1dGU7dGVyIDogYyYjMTQ2O2VzdCBMZSBNb25kZSBxdWkgeSBwcmVuZCBw YXJ0IGVuIGpldGFudCBhaW5zaSB1biBhbmF0aCZlZ3JhdmU7bWUgJmVhY3V0ZTtjJiMxNTY7 dXJhbnQgJmFncmF2ZTsgbCYjMTQ2O2VuY29udHJlIGQmIzE0NjtJc3JhJmV1bWw7bCwgc2Fu cyBtZXN1cmUgZXQgc2FucyBkaXNjZXJuZW1lbnQuIFZvdXMgZCZlYWN1dGU7c2lnbmV6IGFp bnNpICZhZ3JhdmU7IGxhIHZpbmRpY3RlIHBvcHVsYWlyZSBxdWkgc29udCBsZXMgc2FsYXVk cy4gQ2FyIGNlIGRpc2NvdXJzIG0mZWFjdXRlO2RpYXRpcXVlIGQmZWFjdXRlO2NoYSZpY2ly YztuJmVhY3V0ZTsgZXN0ICZlYWN1dGU7Y291dCZlYWN1dGU7LCByZWxheSZlYWN1dGU7LCBq dXNxdWUgZGFucyBub3MgYmFubGlldWVzLiBOb3VzIGVuIGF2b25zIGQmZWFjdXRlO2omYWdy YXZlOyB2dSBkYW5zIG5vdHJlIHBheXMgbGVzIHRyaXN0ZXMgY29ucyZlYWN1dGU7cXVlbmNl cywgbWFpcyB2b3VzIHNlbWJsZXogbiYjMTQ2O2VuIGF2b2lyIHRpciZlYWN1dGU7IGF1Y3Vu ZSYjMTMzOy48YnI+CgkJPGJyPgoJCVBsdXMgZ3JhdmUgOiBlbiBtZXR0YW50IEplbmluZSBl dCBsZSBnaGV0dG8gZGUgVmFyc292aWUgc3VyIGxlIG0mZWNpcmM7bWUgcGxhbiwgdm91cyBw YXJ0aWNpcGV6ICZhZ3JhdmU7IHVuZSAmIzE1Njt1dnJlIGRlIHImZWFjdXRlO3Zpc2lvbm5p c21lIGhpc3RvcmlxdWUsIGRlIGQmZWFjdXRlO24mZWFjdXRlO2dhdGlvbiBkZSBjZSBxdSYj MTQ2O2EgcHUgJmVjaXJjO3RyZSBsJiMxNDY7YW1wbGV1ciBkZSBsYSBTaG9haC4gQ2FyIHNp IGF1am91cmQmIzE0NjtodWkgSmVuaW5lIGMmIzE0Njtlc3QgVmFyc292aWUsIGRlbWFpbiBs ZSBnaGV0dG8gZGUgVmFyc292aWUgbmUgc2VyYSBwYXMgYXV0cmUgY2hvc2UgcXVlIEplbmlu ZS48YnI+CgkJPGJyPgoJCUomIzE0NjtlbiBhaSBsYSBuYXVzJmVhY3V0ZTtlLCBldCBzaSBh aW5zaSBmYWl0ZSBlc3Qgdm90cmUgdmlzaW9uIGRlcyBjaG9zZXMsIHNhY2hleiBxdWUgdm90 cmUgTW9uZGUgbmUgcGV1dCAmZWNpcmM7dHJlIGxlIG1pZW4uPGJyPgoJCUxlY3RldXIganVz cXUmIzE0NjthbG9ycyBmaWQmZWdyYXZlO2xlIGRlIHZvdHJlIGpvdXJuYWwsIGplIG4mIzE0 NjthY2gmZWdyYXZlO3RlcmFpcyBwbHVzIG5pIG5lIGxpcmFpcyBMZSBNb25kZSwgdGFudCBz b250IGVudGFjaCZlYWN1dGU7ZXMgJmFncmF2ZTsgbWVzIHlldXggdm9zIGNhcGFjaXQmZWFj dXRlO3MgJmFncmF2ZTsgdGVuaXIgdm90cmUgciZvY2lyYztsZSBkJiMxNDY7aW5mb3JtYXRp b24gOmplIG5lIHBldXggcGx1cyBmYWlyZSBjb25maWFuY2UgYXUgTW9uZGUgcG91ciBjb21w cmVuZHJlIGVuIGNvbnNjaWVuY2UgY2UgcXUmIzE0Njtlc3QgbGEgciZlYWN1dGU7YWxpdCZl YWN1dGU7IGQmIzE0NjthdWpvdXJkJiMxNDY7aHVpJiMxMzM7PGJyPgoJCTxicj4KCQlBbGV4 YW5kcmUgSi48YnI+CgkJQm91bG9nbmUgKDkyKTxicj4KCQk8L2ZvbnQ+Cgk8L2JvZHk+Cgo8 L2h0bWw+Cj== --X0L3d9733m7s10V1WmboUT810j101V1-- From dev@trilug.org Mon May 6 17:41:00 2002 From: dev@trilug.org (Jeremy P) Date: Mon, 6 May 2002 12:41:00 -0400 (EDT) Subject: [Dev] Virus Alert... seriously In-Reply-To: <20020506160428.RBT4379.out002.verizon.net@Baqrddn> Message-ID: Hey everyone, Someone on this list has the "Klez" virus. Please, everyone with Windows, update your Anti-Virus packages, or switch to Linux! :-) Here's an article about this virus. There's a free removal tool available from Symantec.com also. http://www.wired.com/news/technology/0,1282,52174,00.html --Jeremy On Mon, 6 May 2002, scmorris wrote: [virus-filled attachments] From dev@trilug.org Mon May 6 17:45:38 2002 From: dev@trilug.org (David A. Cafaro) Date: Mon, 06 May 2002 12:45:38 -0400 Subject: [Dev] A funny game (really a virus) In-Reply-To: <20020506160428.RBT4379.out002.verizon.net@Baqrddn> Message-ID: <5.1.1.2.0.20020506123406.0386b1d8@mail.cafaro.net> Nice virus.... W32.Klez.gen@mm virus Might want to scan your windows system. At 12:05 PM 5/6/2002, scmorris wrote: >Content-Type: text/html; > >Hi,This is a funny game >This game is my first work. >You're the first player. >I wish you would like it. From dev@trilug.org Mon May 6 17:47:35 2002 From: dev@trilug.org (David A. Cafaro) Date: Mon, 06 May 2002 12:47:35 -0400 Subject: [Dev] Virus Alert... seriously In-Reply-To: References: <20020506160428.RBT4379.out002.verizon.net@Baqrddn> Message-ID: <5.1.1.2.0.20020506124559.00b13198@mail.cafaro.net> Yeah, I saw that one. Norton picked it up before anything could happen to my system, not to mention I don't run .exe files that I get through the email usually. (happen to be at work and using Windoze at the moment...) At 12:41 PM 5/6/2002, you wrote: >Hey everyone, >Someone on this list has the "Klez" virus. > >Please, everyone with Windows, update your Anti-Virus packages, or switch >to Linux! :-) > >Here's an article about this virus. There's a free removal tool available >from Symantec.com also. > >http://www.wired.com/news/technology/0,1282,52174,00.html > >--Jeremy > >On Mon, 6 May 2002, scmorris wrote: > >[virus-filled attachments] > >_______________________________________________ >Dev mailing list >Dev@trilug.org >http://www.trilug.org/mailman/listinfo/dev From dev@trilug.org Mon May 6 19:15:42 2002 From: dev@trilug.org (John Beimler) Date: Mon, 6 May 2002 14:15:42 -0400 Subject: [Dev] Virus Alert... seriously In-Reply-To: References: <20020506160428.RBT4379.out002.verizon.net@Baqrddn> Message-ID: <20020506181542.GA26946@radiomind.com> begin quotation from Jeremy P [on 020506 12:43]: > > Hey everyone, > Someone on this list has the "Klez" virus. > and that someones email headers look like this: Return-Path: [...] Received: from fatalpha.trilug.org (localhost.localdomain [127.0.0.1]) by fatalpha.trilug.org (8.11.6/8.11.6) with ESMTP id g46GAH330287; Mon, 6 May 2002 12:10:17 -0400 Received: from out002.verizon.net (out002pub.verizon.net [206.46.170.141]) by fatalpha.trilug.org (8.11.6/8.11.6) with ESMTP id g46G8a330256 for ; Mon, 6 May 2002 12:08:36 -0400 Received: from Baqrddn ([213.8.53.81]) by out002.verizon.net (InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP id <20020506160428.RBT4379.out002.verizon.net@Baqrddn> for ; Mon, 6 May 2002 11:04:28 -0500 [...] so if the name Baqrddn looks familiar to you, or you are relaying through verizon.net, its probably you. (Wish it was RR, they catch who is actually sending the mail, much easier to identify the true sender) Peace. john From dev@trilug.org Tue May 7 18:45:33 2002 From: dev@trilug.org (Chris Hedemark) Date: 07 May 2002 13:45:33 -0400 Subject: [Dev] Virus Alert... seriously In-Reply-To: References: Message-ID: <1020793541.21074.72.camel@crab.yonderway.priv> --=-peKcq4szoYMMesy2Kk/h Content-Type: text/plain Content-Transfer-Encoding: quoted-printable You can neuter your Lookout... errr... Outlook system by deleting %SystemRoot%\system32\wscript.exe You only need that if you legitimately run vbscript. 99% of people don't. If you delete this file, those Lookout virii become a thing of the past. On Mon, 2002-05-06 at 12:41, Jeremy P wrote: >=20 > Hey everyone, > Someone on this list has the "Klez" virus. >=20 > Please, everyone with Windows, update your Anti-Virus packages, or switch > to Linux! :-) >=20 > Here's an article about this virus. There's a free removal tool availabl= e > from Symantec.com also. >=20 > http://www.wired.com/news/technology/0,1282,52174,00.html >=20 > --Jeremy >=20 > On Mon, 6 May 2002, scmorris wrote: >=20 > [virus-filled attachments] >=20 > _______________________________________________ > Dev mailing list > Dev@trilug.org > http://www.trilug.org/mailman/listinfo/dev --=20 *********************************************************** | Rev. Chris Hedemark, DD | Hillsborough, NC | http://yonderway.com *********************************************************** --=-peKcq4szoYMMesy2Kk/h Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQA82BK9YPuF4Zq9lvYRAon3AJoD6vTvtcgjuavCmIr8gvipZ5cW8gCgwD2p 3sBTeEc5tUCOZv5Sir+KdGU= =YJl6 -----END PGP SIGNATURE----- --=-peKcq4szoYMMesy2Kk/h-- From dev@trilug.org Tue May 7 19:30:32 2002 From: dev@trilug.org (M. Mueller) Date: Tue, 7 May 2002 14:30:32 -0400 Subject: [Dev] null terms for strings Message-ID: Here's a little program that captures a problem I had today. I have a map container, map #include using namespace std; main() { string a; a = 'a'; a += ' '; a += 's'; a += 't'; a += 'r'; a += 'i'; a += 'n'; a += 'g'; a += '\0'; string b; b = 'a'; b += ' '; b += 's'; b += 't'; b += 'r'; b += 'i'; b += 'n'; b += 'g'; if (a == b) cout << "a equals b\n"; else cout << "a not equals b\n"; if (strcmp(a.c_str(), b.c_str()) == 0) cout << "a.c_str() equals b.c_str()\n"; else cout << "a.c_str() not equals b.c_str()\n"; } -- Michael Mueller Signalnetware, Inc. www.signalnetware.com 919.621.6090 From dev@trilug.org Tue May 7 19:55:32 2002 From: dev@trilug.org (Tanner Lovelace) Date: 07 May 2002 14:55:32 -0400 Subject: [Dev] null terms for strings In-Reply-To: References: Message-ID: <1020797734.18264.26.camel@linux-lovelace.internal.opennms.org> On Tue, 2002-05-07 at 14:30, M. Mueller wrote: > Here's a little program that captures a problem I had today. I have a map > container, map machine. I pack each entry into datagram and send it via sockets to another > machine where each packet is collected and used to build a copy of the map > entry by entry. So, I convert the string key to an array of chars for the > journey to the other side. In the process I got confused about the function > of null terminators on char array strings versus string objects. > Well, for one thing, a C++ string may or may not be null terminated. Officially, it's not specified as to how they are stored internally. So, when in doubt, assume it's not. > To compile: g++ -o test test.cpp > > > #include > using namespace std; > > main() > { > string a; > a = 'a'; > a += ' '; > a += 's'; > a += 't'; > a += 'r'; > a += 'i'; > a += 'n'; > a += 'g'; > a += '\0'; > string b; > b = 'a'; > b += ' '; > b += 's'; > b += 't'; > b += 'r'; > b += 'i'; > b += 'n'; > b += 'g'; > > if (a == b) > cout << "a equals b\n"; > else > cout << "a not equals b\n"; > > if (strcmp(a.c_str(), b.c_str()) == 0) > cout << "a.c_str() equals b.c_str()\n"; > else > cout << "a.c_str() not equals b.c_str()\n"; > > } > Well, I haven't run it, but just looking at it, I'd say the strings are not the same. String a has a null character at the end and string b doesn't. In addition, I'd be interested in seeing what the .c_str() function returned. I'd bet it doesn't do any checking for stuff like this and the c-style strings that get returned *are* the same (because they *must* have a null at the end) even though the C++ strings are not. I would just suggest sending over the output of the .c_str() function of each string and then using the string constructor to recreate them on the other side. Tanner -- Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/ --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4 GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- Have we sent the "Don't shoot, we're pathetic" transmission yet? Commander John Crichton (Farscape) From dev@trilug.org Tue May 7 20:39:02 2002 From: dev@trilug.org (Ed Hill) Date: 07 May 2002 13:39:02 -0600 Subject: [Dev] null terms for strings In-Reply-To: References: Message-ID: <1020800342.1133.1370.camel@eddy> On Tue, 2002-05-07 at 12:30, M. Mueller wrote: > Here's a little program that captures a problem I had today. I have a map > container, map machine. I pack each entry into datagram and send it via sockets to another > machine where each packet is collected and used to build a copy of the map > entry by entry. So, I convert the string key to an array of chars for the > journey to the other side. In the process I got confused about the function > of null terminators on char array strings versus string objects. Hi Mike, I tested your snippet and got: [edhill@eddy ~]$ ./a.out a not equals b a.c_str() equals b.c_str() [edhill@eddy ~]$ which I'm sure is your complaint. Heres a fix: How about writing the re-assembly part of your code so that, by default, it automatically strips any trailing nulls? Its easy and then you don't have to worry about whether you sent the string with null termination or not. Of course, its a lousy idea if your strings ever need to contain imbedded nulls, but that may not be a problem... hth, Ed -- Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu Post-Doctoral Researcher | URLs: http://www.eh3.com Division of ESE | http://wasser.mines.edu/people/edhill.php Colorado School of Mines | Phone: 303-273-3483 Golden, CO 80401 | Fax: 303-273-3311 Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123 From dev@trilug.org Tue May 7 20:52:32 2002 From: dev@trilug.org (M. Mueller) Date: Tue, 7 May 2002 15:52:32 -0400 Subject: [Dev] test-pls ignore Message-ID: -- Michael Mueller Signalnetware, Inc. www.signalnetware.com 919.621.6090 From dev@trilug.org Tue May 7 22:07:59 2002 From: dev@trilug.org (Michael Mueller / Signalnetware) Date: Tue, 7 May 2002 17:07:59 -0400 Subject: [Dev] dev mystery solved In-Reply-To: <1020801471.21074.163.camel@crab.yonderway.priv> References: <1020801471.21074.163.camel@crab.yonderway.priv> Message-ID: I killed everyone of my filters (waaaaaa)...then I remembered what the problem is (grrrrr). Yahoo kill pop access to mail. I ditched them. I am subscribed to dev as bhu5nji@yahoo.com. I'm going in now to make changes. My app transforms a 10 digit telephone number as follows: comes in via TCP as a sequence of ASCII char; gets transformed and saved into a PACKED array of nibbles (unsigned int bcd_digit:4 PACKED;) containing BCD values (digit - '0'), the BCD array gets transformed into a string so the telephone number becomes a key into a map. The map is duplicated on two mated machines, so the string key is decomposed into ASCII chars and put into a intermachine comm structure payload section (plain old byte array). On the other side, this char string is reassmbled into the map key string. At the end of this juggling act I should be able to use the same telephone number to get the same map entry on both machines. That is not the case. One map's key is len==11 "2128902345"+'\0' and the other is len==10 "2128902345". The problem was solved by removing the line that adds '\0' to the string. I was getting caught up in the internal representation of the string as though it were an array of chars needing a null terminator. The twist came from the results as Ed pointed out: a not equals b (this is the comparison the map container is using) a.c_str() equals b.c_str() If you try to printf or cout the strings, there are no visual clues -- Michael Mueller Signalnetware, Inc. www.signalnetware.com 919.621.6090 From dev@trilug.org Tue May 7 22:20:12 2002 From: dev@trilug.org (M. Mueller) Date: Tue, 7 May 2002 17:20:12 -0400 Subject: [Dev] test; ignore; all better now Message-ID: -- Michael Mueller Signalnetware, Inc. www.signalnetware.com 919.621.6090 From dev@trilug.org Wed May 15 20:49:01 2002 From: dev@trilug.org (Tanner Lovelace) Date: 15 May 2002 15:49:01 -0400 Subject: [Dev] Re: [TriLUG] anybody use pointers and shared memory? In-Reply-To: References: Message-ID: <1021492142.23636.68.camel@linux-lovelace.internal.opennms.org> On Wed, 2002-05-15 at 15:30, John F Davis wrote: > Hello > > I know how to use shared memory between processes via shmget and shmat, but > I'm not an expert on their use. (I've used it for simple flat structures.) > Anybody have any experience using them with something similar to malloc'd > pointers? For instance, if I want to dynamically allocate data that is > shared, do I have to use shmget/shmat in lieu of malloc? > > Yes, I realize each process has their own heap so malloced pointers shared > between process's are meaningless, but is their some simple technique for > dynamic shared memory? > > I realize I'm not very clear on this. Its easier to describe the problem > more concisely with code, but I don't have any code written at this point > because I am just thinking out loud. > JD Hi John, Could you explain a little more about what you're doing? If you're trying to share memory between two processes that were created from the same original process using fork, you should probably look at the mm library (http://www.engelschall.com/sw/mm/). If you're trying to share between two completely separate processes, however, then mm won't help you. It sounds like what you need is basically SGI Arenas, which, as far as I know, aren't available under linux. (Actually, the SGI performer team did a port of it to linux but last I heard it wasn't :-( open source.) I was looking for something like this a while back for completely disparate processes and didn't have any luck finding anything. If you do come up with something, I'd be interested in hearing about it. BTW, I've cc'd the dev list for this. This sounds like it is more properly a question for that list. (Although, if anyone on the main list wants to answer it, please don't let me discourage you.) Tanner -- Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/ --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4 GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- Have we sent the "Don't shoot, we're pathetic" transmission yet? Commander John Crichton (Farscape) From dev@trilug.org Wed May 15 21:44:53 2002 From: dev@trilug.org (H Brett Bolen) Date: Wed, 15 May 2002 16:44:53 -0400 Subject: [Dev] Re: [TriLUG] anybody use pointers and shared memory? References: Message-ID: <3CE2C8C5.6010206@nc.rr.com> John F Davis wrote: > Hello > > I know how to use shared memory between processes via shmget and shmat, but > I'm not an expert on their use. (I've used it for simple flat structures.) > Anybody have any experience using them with something similar to malloc'd > pointers? For instance, if I want to dynamically allocate data that is > shared, do I have to use shmget/shmat in lieu of malloc? > Hey John, There is a very simple wrapper class, SharedArray, here: http://www.pressenter.com/~3nelsons/joecode/ it's implemented in the header file, and is easy to use. as long as the destructors are called, everything is cleaned up. use is as simple as typedef struct { ... } MyStruct; MyStruct *MyStructArray = new SharedArray< MyStruct> ( "Name", 100); MyStructArray[1] = ... delete MyStructArray; may not be exact, but close. b\375 ps: I'm forwarding this to dev@trilug.org From dev@trilug.org Thu May 23 23:40:09 2002 From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=) Date: Thu, 23 May 2002 18:40:09 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?HOWTO_write_a_daemon?= Message-ID: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> Hi all, I have a console application that I want to turn into a daemon. Does anyone know where I can find documentation on how to do that. Thanks in advance. -- Peter Long From dev@trilug.org Fri May 24 00:13:23 2002 From: dev@trilug.org (M. Mueller) Date: Thu, 23 May 2002 19:13:23 -0400 Subject: [Dev] HOWTO write a daemon In-Reply-To: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> Message-ID: --------------Boundary-00=_B67LJILHVVNP29FHWORQ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote: > Hi all, > > I have a console application that I want to turn into a daemon. Does anyone > know where I can find documentation on how to do that. > > Thanks in advance. Here's my daemon launcher. It is more than a basic daemon launcher because I have N daemons that all talk to each other. Furthermore, I don't want any daemons to start doing business until all the other daemons are ready. -- Mike Mueller www.ss7box.com --------------Boundary-00=_B67LJILHVVNP29FHWORQ Content-Type: text/x-c++; charset="iso-8859-1"; name="dlaunch_main.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dlaunch_main.c" I2luY2x1ZGUJPHN5cy9zdGF0Lmg+CiNpbmNsdWRlCTxzeXMvbXNnLmg+CiNpbmNsdWRlCTxmY250 bC5oPgojaW5jbHVkZQk8c3lzbG9nLmg+CiNpbmNsdWRlCTxzdGRpby5oPgojaW5jbHVkZQk8dW5p c3RkLmg+CiNpbmNsdWRlCTxlcnJuby5oPgojaW5jbHVkZQkiaXBjX21xLmgiCgojZGVmaW5lCQlN QVhfREFFTU9OUwk1CiNkZWZpbmUJCURBRU1PTl9QQVRICSJ1c3IvbG9jYWwvc3M3dC9iaW4vIgoK Y2hhcgkJKmVudl9pbml0W10gPSB7IlVTRVI9bXRwM2QiLCAiUEFUSD0vdG1wIiwgTlVMTH07CmNo YXIJCSpkYWVtb25fbmFtZXNbXVtNQVhfREFFTU9OU10gPSB7CgkJCSJtdHAzX2QiLAoJCQkidGFs aV9kIiwKLy8JCQkic2N0cF9kIiwKCQkJIm9hbV9kIiwKCQkJIm1yX2QiLAoJCQkicHNfZCIKCQl9 OwoKaW50CQkJc29ja2ZkOwpzdHJ1Y3Qgc29ja2FkZHJfaW4JbXlhZGRyLCBwZWVyYWRkcjsKdF9p cGNfbXFidWYJCW1iOwpzb2NrbGVuX3QJCXNvY2thZGRybGVuOwoKdm9pZCBnZXRfYnVzeSAodW5z aWduZWQgaW50IGRhZW1vbl9pZCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCnsKaW50CXI7CgoJYnplcm8oJnBlZXJhZGRyLCBzaXplb2YocGVlcmFkZHIpKTsK CXBlZXJhZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwoJcGVlcmFkZHIuc2luX3BvcnQgPSBodG9u cyhkYWVtb25faWQpOwoJciA9IGluZXRfcHRvbihBRl9JTkVULCBJUENfQUREUl9TVFIsICZwZWVy YWRkci5zaW5fYWRkci5zX2FkZHIpOwoJaWYgKHIgPT0gLTEpCgkJewoJCXN5c2xvZyAoTE9HX0lO Rk8sICJGOmRhZW1vbl9sYXVuY2hlcjpnZXRfYnVzeTppbmV0X3B0b24gZmFpbGVkOiVzIiwKCQkJ CXN0cmVycm9yKGVycm5vKSk7CgkJZXhpdCAoLTEpOwoJCX0KCgliemVybyAoJm1iLCBzaXplb2Yo bWIpKTsKCW1iLm1oZHIuc19pZCA9IERMQVVOQ0hfSUQ7IC8vIHRoaXMgaXMgdGhlIGxldHRlciBz ZW5kZXIKCW1iLm1oZHIubWNvZGUgPSBJUENfUFJPQ0VFRDsgCgltYi5taGRyLm1sZW4gPSBzaXpl b2YodF9pcGNfbWJfaGRyKTsKCglyID0gc2VuZHRvIChzb2NrZmQsICZtYiwgbWIubWhkci5tbGVu LCBOT0ZMQUdTLCAKCQkJJnBlZXJhZGRyLCBzaXplb2YgKHBlZXJhZGRyKSk7CglpZiAociA9PSAt MSkKCQl7CgkJc3lzbG9nIChMT0dfSU5GTywgIkY6Z2V0IGJ1c3k6c2VuZHRvIGZhaWxlZDpjYXVz ZSAlcyB0YXJnZXQ6ICVzIiwgCgkJCQlzdHJlcnJvcihlcnJubyksIGRhZW1vbl9pZCk7CgkJZXhp dCAoLTEpOwoJCX0KfQoKaW50IGRhZW1vbl9pbml0KGNoYXIgKnBfZGFlbW9uX2ZuYW1lKQovKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KewpjaGFyCWRhZW1vbl9w YXRobmFtZSBbMTI4XTsKCXBpZF90CXBpZDsKCglpZiAoIChwaWQgPSBmb3JrKCkpIDwgMCkKCQly ZXR1cm4oLTEpOwoJZWxzZSBpZiAocGlkICE9IDApCgkJcmV0dXJuICgwKTsJLyogdGhlIHBhcmVu dCBwcm9jZXNzIHJldHVybnMgZnJvbSB0aGlzIGZ1bmN0aW9uIGhlcmUgKi8KCi8vIHRoZSBjaGls ZCBwcm9jZXNzIGNvbnRpbnVlcyBoZXJlCgoJc2V0c2lkKCk7CQkvKiBiZWNvbWUgc2Vzc2lvbiBs ZWFkZXIgKi8KCWNoZGlyKCIvIik7CQkvKiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgKi8KCXVt YXNrKDApOwkJLyogY2xlYXIgb3VyIGZpbGUgbW9kZSBjcmVhdGlvbiBtYXNrICovCgoJaWYgKChz dHJsZW4gKHBfZGFlbW9uX2ZuYW1lKSArIHN0cmxlbiAoREFFTU9OX1BBVEgpKyAxKSA+IHNpemVv ZiAoZGFlbW9uX3BhdGhuYW1lKSkKCQl7CgkJc3lzbG9nIChMT0dfSU5GTywgImRhZW1vbiBwYXRo bmFtZSB0b28gbG9uZyIpOwoJCWV4aXQgKC0xKTsKCQl9CgovLyBleGVjIHRoZSBkYWVtb24gaW4g dGhlIGNoaWxkIHByb2Nlc3MgCgoJZXhlY2wgCSgKCQlzdHJjYXQgKHN0cmNweSAoZGFlbW9uX3Bh dGhuYW1lLERBRU1PTl9QQVRIKSwgcF9kYWVtb25fZm5hbWUpLCAKCQlwX2RhZW1vbl9mbmFtZSwK CQkoY2hhciAqKSAwCgkJKTsKCQovLyBzaG91bGQgbmV2ZXIgcmVhY2ggdGhpcyBzdGF0ZW1lbnQK CglleGl0KDApOwp9CgppbnQgZGFlbW9uX2NvbW1fcmVhZHkgKHZvaWQpCi8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp7CnNzaXplX3QJYnc7CnVfbG9uZwlkYWVt b25zX3JlYWR5OwoKCWRhZW1vbnNfcmVhZHkgPSAwOwoKCWZvciAoOzspCgkJewovLyBibG9ja2lu ZyByZWFkOyB3YWl0IGZvciBhIGRhZW1vbiB0byByZXBvcnQgZm9yIGR1dHk7IGlmIHRoaXMgYmVj b21lcwovLyBhIGJsb2NrLWZvcmV2ZXIgY29uZGl0aW9uLCB0aGVuIG9uZSBtdXN0IHJlc29ydCB0 byBraWxsaW5nIHByb2Nlc3MKLy8gdXNlICJwcyAtYXhqIiBhcyBzdXBlcnVzZXIgdG8gZmluZCB0 aGUgcHJvY2Vzc2VzIHRvIGJlIGtpbGxlZAoKCQlidyA9IHJlY3Zmcm9tIChzb2NrZmQsICZtYiwg c2l6ZW9mIChtYiksIE5PRkxBR1MsIAoJCQkmcGVlcmFkZHIsICZzb2NrYWRkcmxlbik7CgkJaWYg KGJ3ID09IC0xKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lORk8sICJGOmRhZW1vbl9jb21tX3JlYWR5 OnJlY3Zmcm9tIGZhaWxlZCIpOwoJCQlleGl0ICgtMSk7CgkJCX0KCi8vIHNob3cgd2hvJ3MgcmVh ZHkgZm9yIGR1dHk7IGFkZCBhIHN0cmluZyB0ZXJtaW5hdGlvbgoKCQkvL21iLm1kYXRhW21iLm1o ZHIubWxlbiAtIHNpemVvZih0X2lwY19tYl9oZHIpXSA9ICdcMCc7CgkJc3lzbG9nIChMT0dfSU5G TywgIkk6bWIgY29udGVudHM6c19pZCAlZCBkYWVtb24gb24gZHV0eTogJXMiLCAKCQkJCW1iLm1o ZHIuc19pZCwgCgkJCQkmbWIubWRhdGEpOwoJCQoJCWRhZW1vbnNfcmVhZHkgPSBkYWVtb25zX3Jl YWR5IHwgbWIubWhkci5zX2lkOwoJCWlmIChkYWVtb25zX3JlYWR5ID09IEFMTF9EQUVNT05TX1JF QURZKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lORk8sICJJOmRhZW1vbl9jb21tX3JlYWR5OmFsbCBk YWVtb25zIHJlYWR5Iik7CgkJCWJyZWFrOwoJCQl9CgkJfSAvLyBlbmQgb2YgZm9yIGxvb3AKCi8v IHRlbGwgdGhlIGRhZW1vbnMgdGhhdCBJUEMgbWF5IHByb2NlZWQKCglnZXRfYnVzeSAoTVRQM19Q T1JUKTsKCWdldF9idXN5IChUQUxJX1BPUlQpOwovLwlnZXRfYnVzeSAoU0NUUF9JUENfUE9SVCk7 CglnZXRfYnVzeSAoT0FNX1BPUlQpOwoJZ2V0X2J1c3kgKE1SX1BPUlQpOwoJZ2V0X2J1c3kgKFBT X1BPUlQpOwp9CgppbnQJY29uZmlndXJlX2RsKCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCnsKCS8vZGxDb25mID0gbmV3IGNfY29uZlJlYWRlcigiZGwiKTsK CS8vZGVsZXRlIGRsQ29uZgp9CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQovKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KewppbnQJZDsKaW50CXI7 CgoJb3BlbmxvZyAoImRhZW1vbl9pbml0IiAsTE9HX1BJRCwgTE9HX1VTRVIpOwoJc3lzbG9nIChM T0dfSU5GTyAsIkRhZW1vbiBsYXVuY2hlciBzdGFydGluZyIpOwoKLy8gcmVhZCBkYWVtb24gbGF1 bmNoZXIgY29uZiBmaWxlCgkKCWNvbmZpZ3VyZV9kbCgpOwoJCglzb2NrZmQgPSBzb2NrZXQoQUZf SU5FVCwgU09DS19ER1JBTSwgMCk7CglpZiAoc29ja2ZkID09IC0xKQoJCXsKCQlzeXNsb2cgKExP R19JTkZPLCAic29ja2V0IGZhaWxlZCIpOwoJCWV4aXQgKC0xKTsKCQl9CgovLyBjcmVhdGUgYW4g SW50ZXJuZXQgUHJvdG9jb2wgYWRkcmVzcwoKCWJ6ZXJvKCZteWFkZHIsIHNpemVvZihteWFkZHIp KTsKCW15YWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCW15YWRkci5zaW5fcG9ydCA9IGh0b25z KERMQVVOQ0hfUE9SVCk7CglyID0gaW5ldF9wdG9uKEFGX0lORVQsIElQQ19BRERSX1NUUiwgJm15 YWRkci5zaW5fYWRkci5zX2FkZHIpOwoJaWYgKHIgPT0gLTEpCgkJewoJCXN5c2xvZyAoTE9HX0lO Rk8sICJJOmRhZW1vbl9sYXVuY2hlcjptYWluOmluZXRfcHRvbiBmYWlsZWQ6JXMiLAoJCQkJc3Ry ZXJyb3IoZXJybm8pKTsKCQlleGl0ICgtMSk7CgkJfQoKCXIgPSBiaW5kIChzb2NrZmQsIChjb25z dCBzdHJ1Y3Qgc29ja2FkZHIgKikgJm15YWRkciwgc2l6ZW9mKG15YWRkcikpOwoJaWYgKHIgPT0g LTEpCgkJewoJCXN5c2xvZyAoTE9HX0lORk8sICJiaW5kIGZhaWxlZCIpOwoJCWV4aXQgKC0xKTsK CQl9CgoJZm9yIChkID0gMDsgZCA8IE1BWF9EQUVNT05TOyBkKyspIAoJCXsKCQlpZiAoZGFlbW9u X2luaXQgKGRhZW1vbl9uYW1lcyBbMF1bZF0pID09IC0xKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lO Rk8sICJmb3JrIGZhaWxlZDsgZGFlbW9uIElEOiAlc1xuIiwgZGFlbW9uX25hbWVzW2RdKTsKCQkJ cmV0dXJuICgtMSk7CgkJCX0KCQl9CgoJaWYgKGRhZW1vbl9jb21tX3JlYWR5ICgpID09IC0xKQoJ CXsKCQl9CglyZXR1cm4gKDApOwp9Cg== --------------Boundary-00=_B67LJILHVVNP29FHWORQ-- From dev@trilug.org Fri May 24 00:15:18 2002 From: dev@trilug.org (M. Mueller) Date: Thu, 23 May 2002 19:15:18 -0400 Subject: [Dev] HOWTO write a daemon In-Reply-To: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> Message-ID: On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote: > Hi all, > > I have a console application that I want to turn into a daemon. Does anyone > know where I can find documentation on how to do that. > > Thanks in advance. BTW, check out Richard Stevens texts. http://www.kohala.com/start/#books -- Mike Mueller www.ss7box.com From dev@trilug.org Fri May 24 00:39:58 2002 From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=) Date: Thu, 23 May 2002 19:39:58 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?= In-Reply-To: References: Message-ID: <3582.192.168.0.2.1022197198.squirrel@albert.petelong.com> > On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote: >> Hi all, >> >> I have a console application that I want to turn into a daemon. Does >> anyone know where I can find documentation on how to do that. >> >> Thanks in advance. > > BTW, check out Richard Stevens texts. > http://www.kohala.com/start/#books > > -- > Mike Mueller > www.ss7box.com Thanks! That link and your daemon launcher should get me on the right track. -- Peter Long mailto:petelong@petelong.com From dev@trilug.org Fri May 24 02:06:26 2002 From: dev@trilug.org (David A. Cafaro) Date: 23 May 2002 21:06:26 -0400 Subject: [Dev] HOWTO write a daemon In-Reply-To: References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> Message-ID: <1022202387.2055.6.camel@kara.georgetown.edu> Just curious but what is wrong with just writing a program that doesn't put out any text to the console and starting it with a script with a command like this: mydaemon& Besides the fact that it's a little less elegant? It's been a long long time since I did C/C++ coding and righting daemons. I'm planning on writing up a little tcp/ip daemon for my Zaurus. Thanks for any input. -David On Thu, 2002-05-23 at 19:13, M. Mueller wrote: > On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote: > > > Hi all, > > > > I have a console application that I want to turn into a daemon. Does anyone > > know where I can find documentation on how to do that. > > > > Thanks in advance. > > > Here's my daemon launcher. It is more than a basic daemon launcher because I > have N daemons that all talk to each other. Furthermore, I don't want any > daemons to start doing business until all the other daemons are ready. > > -- > Mike Mueller > www.ss7box.com > ---- > > #include > #include > #include > #include > #include > #include > #include > #include "ipc_mq.h" > > #define MAX_DAEMONS 5 > #define DAEMON_PATH "usr/local/ss7t/bin/" > > char *env_init[] = {"USER=mtp3d", "PATH=/tmp", NULL}; > char *daemon_names[][MAX_DAEMONS] = { > "mtp3_d", > "tali_d", > // "sctp_d", > "oam_d", > "mr_d", > "ps_d" > }; > > int sockfd; > struct sockaddr_in myaddr, peeraddr; > t_ipc_mqbuf mb; > socklen_t sockaddrlen; > > void get_busy (unsigned int daemon_id) > /****************************************************************************** > ******************************************************************************/ > { > int r; > > bzero(&peeraddr, sizeof(peeraddr)); > peeraddr.sin_family = AF_INET; > peeraddr.sin_port = htons(daemon_id); > r = inet_pton(AF_INET, IPC_ADDR_STR, &peeraddr.sin_addr.s_addr); > if (r == -1) > { > syslog (LOG_INFO, "F:daemon_launcher:get_busy:inet_pton failed:%s", > strerror(errno)); > exit (-1); > } > > bzero (&mb, sizeof(mb)); > mb.mhdr.s_id = DLAUNCH_ID; // this is the letter sender > mb.mhdr.mcode = IPC_PROCEED; > mb.mhdr.mlen = sizeof(t_ipc_mb_hdr); > > r = sendto (sockfd, &mb, mb.mhdr.mlen, NOFLAGS, > &peeraddr, sizeof (peeraddr)); > if (r == -1) > { > syslog (LOG_INFO, "F:get busy:sendto failed:cause %s target: %s", > strerror(errno), daemon_id); > exit (-1); > } > } > > int daemon_init(char *p_daemon_fname) > /****************************************************************************** > ******************************************************************************/ > { > char daemon_pathname [128]; > pid_t pid; > > if ( (pid = fork()) < 0) > return(-1); > else if (pid != 0) > return (0); /* the parent process returns from this function here */ > > // the child process continues here > > setsid(); /* become session leader */ > chdir("/"); /* change working directory */ > umask(0); /* clear our file mode creation mask */ > > if ((strlen (p_daemon_fname) + strlen (DAEMON_PATH)+ 1) > sizeof (daemon_pathname)) > { > syslog (LOG_INFO, "daemon pathname too long"); > exit (-1); > } > > // exec the daemon in the child process > > execl ( > strcat (strcpy (daemon_pathname,DAEMON_PATH), p_daemon_fname), > p_daemon_fname, > (char *) 0 > ); > > // should never reach this statement > > exit(0); > } > > int daemon_comm_ready (void) > /****************************************************************************** > ******************************************************************************/ > { > ssize_t bw; > u_long daemons_ready; > > daemons_ready = 0; > > for (;;) > { > // blocking read; wait for a daemon to report for duty; if this becomes > // a block-forever condition, then one must resort to killing process > // use "ps -axj" as superuser to find the processes to be killed > > bw = recvfrom (sockfd, &mb, sizeof (mb), NOFLAGS, > &peeraddr, &sockaddrlen); > if (bw == -1) > { > syslog (LOG_INFO, "F:daemon_comm_ready:recvfrom failed"); > exit (-1); > } > > // show who's ready for duty; add a string termination > > //mb.mdata[mb.mhdr.mlen - sizeof(t_ipc_mb_hdr)] = '\0'; > syslog (LOG_INFO, "I:mb contents:s_id %d daemon on duty: %s", > mb.mhdr.s_id, > &mb.mdata); > > daemons_ready = daemons_ready | mb.mhdr.s_id; > if (daemons_ready == ALL_DAEMONS_READY) > { > syslog (LOG_INFO, "I:daemon_comm_ready:all daemons ready"); > break; > } > } // end of for loop > > // tell the daemons that IPC may proceed > > get_busy (MTP3_PORT); > get_busy (TALI_PORT); > // get_busy (SCTP_IPC_PORT); > get_busy (OAM_PORT); > get_busy (MR_PORT); > get_busy (PS_PORT); > } > > int configure_dl() > /****************************************************************************** > ******************************************************************************/ > { > //dlConf = new c_confReader("dl"); > //delete dlConf > } > > int main (int argc, char **argv) > /****************************************************************************** > ******************************************************************************/ > { > int d; > int r; > > openlog ("daemon_init" ,LOG_PID, LOG_USER); > syslog (LOG_INFO ,"Daemon launcher starting"); > > // read daemon launcher conf file > > configure_dl(); > > sockfd = socket(AF_INET, SOCK_DGRAM, 0); > if (sockfd == -1) > { > syslog (LOG_INFO, "socket failed"); > exit (-1); > } > > // create an Internet Protocol address > > bzero(&myaddr, sizeof(myaddr)); > myaddr.sin_family = AF_INET; > myaddr.sin_port = htons(DLAUNCH_PORT); > r = inet_pton(AF_INET, IPC_ADDR_STR, &myaddr.sin_addr.s_addr); > if (r == -1) > { > syslog (LOG_INFO, "I:daemon_launcher:main:inet_pton failed:%s", > strerror(errno)); > exit (-1); > } > > r = bind (sockfd, (const struct sockaddr *) &myaddr, sizeof(myaddr)); > if (r == -1) > { > syslog (LOG_INFO, "bind failed"); > exit (-1); > } > > for (d = 0; d < MAX_DAEMONS; d++) > { > if (daemon_init (daemon_names [0][d]) == -1) > { > syslog (LOG_INFO, "fork failed; daemon ID: %s\n", daemon_names[d]); > return (-1); > } > } > > if (daemon_comm_ready () == -1) > { > } > return (0); > } From dev@trilug.org Fri May 24 02:56:38 2002 From: dev@trilug.org (Paul D. Boyle) Date: Thu, 23 May 2002 21:56:38 -0400 (EDT) Subject: [Dev] HOWTO write a daemon In-Reply-To: <1022202387.2055.6.camel@kara.georgetown.edu> from "David A. Cafaro" at May 23, 2002 09:06:26 PM Message-ID: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu> > > Just curious but what is wrong with just writing a program that doesn't > put out any text to the console and starting it with a script with a > command like this: > > mydaemon& > > Besides the fact that it's a little less elegant? What distinguishes a daemon from a "regular" process (either foreground or background) is that the process becomes (according to Stevens) a session leader of a new session, it becomes a process group leader of a new process group, and it has no controlling terminal. In addition, very often daemon change their current working directory to a specific directory (often, but not always, "/"), so that filesystems can be unmounted while the daemon is running (did you ever try to unmount a file system and got a 'device busy' message?). Under Unix (Linux) all processes automatically open three I/O streams, stdin, stdout, stderr, these are often closed in a daemon process. Paul -- Paul D. Boyle | boyle@laue.chem.ncsu.edu Director, X-ray Structural Facility | phone: (919) 515-7362 Department of Chemistry - Box 8204 | FAX: (919) 515-5079 North Carolina State University | Raleigh, NC, 27695-8204 http://laue.chem.ncsu.edu/web/xray.welcome.html From dev@trilug.org Fri May 24 04:46:14 2002 From: dev@trilug.org (M. Mueller) Date: Thu, 23 May 2002 23:46:14 -0400 Subject: [Dev] HOWTO write a daemon In-Reply-To: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu> References: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu> Message-ID: --------------Boundary-00=_2TJLW1WXNDY57GVJYCNH Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit On Thursday 23 May 2002 09:56 pm, Paul D. Boyle reputedly wrote: > Under Unix (Linux) all processes automatically open three I/O streams, > stdin, stdout, stderr, these are often closed in a daemon process. So, you need alternatives to these services. I make great use of the syslogger daemon. I had to become aware of the klogger, or kernel logger daemon because it would generate useful information for me. This led to needing an awareness of the logrotate function which led to needing an awareness of cron from a system point of view. I "tail -f" the /var/log/messages file for long periods of time and found that logrotate changes the file handles so that the "tail -f" goes dead so to speak. I've hacked a script that lets me quickly manage the tail function (script attached). I eventually learned how to manage the /etc/syslog.conf and syslog calls to define new log files associated with new facilities. Another capability that I think Brent Verner brought to my attention, and that I have not investigated yet, is the FIFO abilities of the Linux syslogger. More at "man syslogd". My daemons use AF_INET sockets for interprocess communication. I tried several flavors of IPC (SystemV, AF_UNIX sockets). And there are more IPC methods I did not try. I've seen code that used disk files for IPC. The Stevens book, "UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999" was my primary resource. I use Python to write shell to daemon "communicators". My intent here is to dump a bunch of ideas to the list that you can pick through. If there is further interest, I can provide code detail and system configuration detail as requested. -- Mike Mueller www.ss7box.com --------------Boundary-00=_2TJLW1WXNDY57GVJYCNH Content-Type: application/x-shellscript; name="Tail" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Tail" IyEvYmluL3NoCgpwcyAtQyB0YWlsIHwgZWdyZXAgInRhaWwifCBjdXQgLWMgMS01ID4gdGVtcAoK Y2F0IHRlbXAKCndoaWxlIHJlYWQgcGlkOyBkbwoJZWNobyBraWxsICRwaWQKCWtpbGwgJHBpZApk b25lIDwgdGVtcApybSAtZiB0ZW1wCgppZiBbICQxID0gIm9mZiIgXTsgdGhlbiBleGl0CmZpCgp0 YWlsIC1mIC92YXIvbG9nL21lc3NhZ2VzICYKI3BzIC1heGoK --------------Boundary-00=_2TJLW1WXNDY57GVJYCNH-- From dev@trilug.org Fri May 24 13:14:09 2002 From: dev@trilug.org (Andrew C. Oliver) Date: Fri, 24 May 2002 08:14:09 -0400 Subject: [Dev] HOWTO write a daemon References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> <1022202387.2055.6.camel@kara.georgetown.edu> Message-ID: <3CEE2E91.2000704@apache.org> just make sure you start it as some other user than root. David A. Cafaro wrote: >Just curious but what is wrong with just writing a program that doesn't >put out any text to the console and starting it with a script with a >command like this: > >mydaemon& > >Besides the fact that it's a little less elegant? > >It's been a long long time since I did C/C++ coding and righting >daemons. I'm planning on writing up a little tcp/ip daemon for my >Zaurus. Thanks for any input. > >-David > >On Thu, 2002-05-23 at 19:13, M. Mueller wrote: > > >>On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote: >> >> >> >>>Hi all, >>> >>>I have a console application that I want to turn into a daemon. Does anyone >>>know where I can find documentation on how to do that. >>> >>>Thanks in advance. >>> >>> >>Here's my daemon launcher. It is more than a basic daemon launcher because I >>have N daemons that all talk to each other. Furthermore, I don't want any >>daemons to start doing business until all the other daemons are ready. >> >>-- >>Mike Mueller >>www.ss7box.com >>---- >> >> >> > > > >>#include >>#include >>#include >>#include >>#include >>#include >>#include >>#include "ipc_mq.h" >> >>#define MAX_DAEMONS 5 >>#define DAEMON_PATH "usr/local/ss7t/bin/" >> >>char *env_init[] = {"USER=mtp3d", "PATH=/tmp", NULL}; >>char *daemon_names[][MAX_DAEMONS] = { >> "mtp3_d", >> "tali_d", >>// "sctp_d", >> "oam_d", >> "mr_d", >> "ps_d" >> }; >> >>int sockfd; >>struct sockaddr_in myaddr, peeraddr; >>t_ipc_mqbuf mb; >>socklen_t sockaddrlen; >> >>void get_busy (unsigned int daemon_id) >>/****************************************************************************** >>******************************************************************************/ >>{ >>int r; >> >> bzero(&peeraddr, sizeof(peeraddr)); >> peeraddr.sin_family = AF_INET; >> peeraddr.sin_port = htons(daemon_id); >> r = inet_pton(AF_INET, IPC_ADDR_STR, &peeraddr.sin_addr.s_addr); >> if (r == -1) >> { >> syslog (LOG_INFO, "F:daemon_launcher:get_busy:inet_pton failed:%s", >> strerror(errno)); >> exit (-1); >> } >> >> bzero (&mb, sizeof(mb)); >> mb.mhdr.s_id = DLAUNCH_ID; // this is the letter sender >> mb.mhdr.mcode = IPC_PROCEED; >> mb.mhdr.mlen = sizeof(t_ipc_mb_hdr); >> >> r = sendto (sockfd, &mb, mb.mhdr.mlen, NOFLAGS, >> &peeraddr, sizeof (peeraddr)); >> if (r == -1) >> { >> syslog (LOG_INFO, "F:get busy:sendto failed:cause %s target: %s", >> strerror(errno), daemon_id); >> exit (-1); >> } >>} >> >>int daemon_init(char *p_daemon_fname) >>/****************************************************************************** >>******************************************************************************/ >>{ >>char daemon_pathname [128]; >> pid_t pid; >> >> if ( (pid = fork()) < 0) >> return(-1); >> else if (pid != 0) >> return (0); /* the parent process returns from this function here */ >> >>// the child process continues here >> >> setsid(); /* become session leader */ >> chdir("/"); /* change working directory */ >> umask(0); /* clear our file mode creation mask */ >> >> if ((strlen (p_daemon_fname) + strlen (DAEMON_PATH)+ 1) > sizeof (daemon_pathname)) >> { >> syslog (LOG_INFO, "daemon pathname too long"); >> exit (-1); >> } >> >>// exec the daemon in the child process >> >> execl ( >> strcat (strcpy (daemon_pathname,DAEMON_PATH), p_daemon_fname), >> p_daemon_fname, >> (char *) 0 >> ); >> >>// should never reach this statement >> >> exit(0); >>} >> >>int daemon_comm_ready (void) >>/****************************************************************************** >>******************************************************************************/ >>{ >>ssize_t bw; >>u_long daemons_ready; >> >> daemons_ready = 0; >> >> for (;;) >> { >>// blocking read; wait for a daemon to report for duty; if this becomes >>// a block-forever condition, then one must resort to killing process >>// use "ps -axj" as superuser to find the processes to be killed >> >> bw = recvfrom (sockfd, &mb, sizeof (mb), NOFLAGS, >> &peeraddr, &sockaddrlen); >> if (bw == -1) >> { >> syslog (LOG_INFO, "F:daemon_comm_ready:recvfrom failed"); >> exit (-1); >> } >> >>// show who's ready for duty; add a string termination >> >> //mb.mdata[mb.mhdr.mlen - sizeof(t_ipc_mb_hdr)] = '\0'; >> syslog (LOG_INFO, "I:mb contents:s_id %d daemon on duty: %s", >> mb.mhdr.s_id, >> &mb.mdata); >> >> daemons_ready = daemons_ready | mb.mhdr.s_id; >> if (daemons_ready == ALL_DAEMONS_READY) >> { >> syslog (LOG_INFO, "I:daemon_comm_ready:all daemons ready"); >> break; >> } >> } // end of for loop >> >>// tell the daemons that IPC may proceed >> >> get_busy (MTP3_PORT); >> get_busy (TALI_PORT); >>// get_busy (SCTP_IPC_PORT); >> get_busy (OAM_PORT); >> get_busy (MR_PORT); >> get_busy (PS_PORT); >>} >> >>int configure_dl() >>/****************************************************************************** >>******************************************************************************/ >>{ >> //dlConf = new c_confReader("dl"); >> //delete dlConf >>} >> >>int main (int argc, char **argv) >>/****************************************************************************** >>******************************************************************************/ >>{ >>int d; >>int r; >> >> openlog ("daemon_init" ,LOG_PID, LOG_USER); >> syslog (LOG_INFO ,"Daemon launcher starting"); >> >>// read daemon launcher conf file >> >> configure_dl(); >> >> sockfd = socket(AF_INET, SOCK_DGRAM, 0); >> if (sockfd == -1) >> { >> syslog (LOG_INFO, "socket failed"); >> exit (-1); >> } >> >>// create an Internet Protocol address >> >> bzero(&myaddr, sizeof(myaddr)); >> myaddr.sin_family = AF_INET; >> myaddr.sin_port = htons(DLAUNCH_PORT); >> r = inet_pton(AF_INET, IPC_ADDR_STR, &myaddr.sin_addr.s_addr); >> if (r == -1) >> { >> syslog (LOG_INFO, "I:daemon_launcher:main:inet_pton failed:%s", >> strerror(errno)); >> exit (-1); >> } >> >> r = bind (sockfd, (const struct sockaddr *) &myaddr, sizeof(myaddr)); >> if (r == -1) >> { >> syslog (LOG_INFO, "bind failed"); >> exit (-1); >> } >> >> for (d = 0; d < MAX_DAEMONS; d++) >> { >> if (daemon_init (daemon_names [0][d]) == -1) >> { >> syslog (LOG_INFO, "fork failed; daemon ID: %s\n", daemon_names[d]); >> return (-1); >> } >> } >> >> if (daemon_comm_ready () == -1) >> { >> } >> return (0); >>} >> >> > > > >_______________________________________________ >Dev mailing list >Dev@trilug.org >http://www.trilug.org/mailman/listinfo/dev > > > From dev@trilug.org Fri May 24 13:43:06 2002 From: dev@trilug.org (John F Davis) Date: Fri, 24 May 2002 08:43:06 -0400 Subject: [Dev] HOWTO write a daemon Message-ID: Hello Mike, That was a good read. I like the bit about 'and this unknown led to this unknown etc'. You tracked down each unknown in turn and learned a lot. I can identify with that. If the original poster wants to talk about what they plan to do in more detail, I'm sure we can all help. Thanks JD "M. Mueller" @trilug.org on 05/23/2002 11:46:14 PM Please respond to dev@trilug.org Sent by: dev-admin@trilug.org To: dev@trilug.org cc: Subject: Re: [Dev] HOWTO write a daemon On Thursday 23 May 2002 09:56 pm, Paul D. Boyle reputedly wrote: > Under Unix (Linux) all processes automatically open three I/O streams, > stdin, stdout, stderr, these are often closed in a daemon process. So, you need alternatives to these services. I make great use of the syslogger daemon. I had to become aware of the klogger, or kernel logger daemon because it would generate useful information for me. This led to needing an awareness of the logrotate function which led to needing an awareness of cron from a system point of view. I "tail -f" the /var/log/messages file for long periods of time and found that logrotate changes the file handles so that the "tail -f" goes dead so to speak. I've hacked a script that lets me quickly manage the tail function (script attached). I eventually learned how to manage the /etc/syslog.conf and syslog calls to define new log files associated with new facilities. Another capability that I think Brent Verner brought to my attention, and that I have not investigated yet, is the FIFO abilities of the Linux syslogger. More at "man syslogd". My daemons use AF_INET sockets for interprocess communication. I tried several flavors of IPC (SystemV, AF_UNIX sockets). And there are more IPC methods I did not try. I've seen code that used disk files for IPC. The Stevens book, "UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999" was my primary resource. I use Python to write shell to daemon "communicators". My intent here is to dump a bunch of ideas to the list that you can pick through. If there is further interest, I can provide code detail and system configuration detail as requested. -- Mike Mueller www.ss7box.com From dev@trilug.org Fri May 24 14:24:13 2002 From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=) Date: Fri, 24 May 2002 09:24:13 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?= In-Reply-To: References: Message-ID: <2397.192.168.0.2.1022246653.squirrel@albert.petelong.com> > Hello Mike, > > That was a good read. I like the bit about 'and this unknown led to > this unknown etc'. You tracked down each unknown in turn and learned a > lot. I can identify with that. > > If the original poster wants to talk about what they plan to do in more > detail, I'm sure we can all help. Well thanks for the offer to help. I planned to turn my application in to a daemon all along so I wrote it to have no interface. It does not rely on the existence of stdin/stdout/stderr and I log everything using calls to syslog(). So what I needed to know what how to detach the io streams and whatever else was necessary for a process to be considered a daemon. BTW: I was under the impression that just typing 'mydaemon&' would not work. I thought that the process would be terminated when I logged off in any case. Is there some way around that or am I just completely mistaken? Thanks again for all the help. -- Peter Long From dev@trilug.org Fri May 24 14:29:41 2002 From: dev@trilug.org (John F Davis) Date: Fri, 24 May 2002 09:29:41 -0400 Subject: [Dev] Re: [Dev] HOWTO write a daemon Message-ID: Hello Well, I haven't really written a demon per se. I did write some code which was called during initiailization and forked off a child. The child ran an existing non-interactive app which in turn would use syslog to record messages. My code was only four lines long. Oh yeah, I also piped the output to /dev/null. (Not all of its output was sent to the logfiles.) You are correct about the backgrounding of a app. It will indeed die when you log off. For what its worth, you can use cron or one its ilk to schedule the job. It sounds to me that you are most of the way to your goal. ie. o Your code uses syslog. o It doesn't use stdin/stdout/stderr All you need is the code to run unintended. You just need to tie it in with the rc.d scripts. The scripts will handle the start, stop and status bit for you. You can even hook in with inittab if you want to make sure it stays running. It is inittab which restarts daemons automatically when there are killed, right? JD "Peter Long" @trilug.org on 05/24/2002 09:24:13 AM Please respond to dev@trilug.org Sent by: dev-admin@trilug.org To: dev@trilug.org cc: Subject: [Dev] Re: [Dev] HOWTO write a daemon > Hello Mike, > > That was a good read. I like the bit about 'and this unknown led to > this unknown etc'. You tracked down each unknown in turn and learned a > lot. I can identify with that. > > If the original poster wants to talk about what they plan to do in more > detail, I'm sure we can all help. Well thanks for the offer to help. I planned to turn my application in to a daemon all along so I wrote it to have no interface. It does not rely on the existence of stdin/stdout/stderr and I log everything using calls to syslog(). So what I needed to know what how to detach the io streams and whatever else was necessary for a process to be considered a daemon. BTW: I was under the impression that just typing 'mydaemon&' would not work. I thought that the process would be terminated when I logged off in any case. Is there some way around that or am I just completely mistaken? Thanks again for all the help. -- Peter Long _______________________________________________ Dev mailing list Dev@trilug.org http://www.trilug.org/mailman/listinfo/dev From dev@trilug.org Fri May 24 14:35:24 2002 From: dev@trilug.org (Jeremy P) Date: Fri, 24 May 2002 09:35:24 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?= In-Reply-To: <2397.192.168.0.2.1022246653.squirrel@albert.petelong.com> Message-ID: On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote: > BTW: I was under the impression that just typing 'mydaemon&' would not work. > I thought that the process would be terminated when I logged off in any > case. Is there some way around that or am I just completely mistaken? It won't die if you trap the appropriate signals (like SIGHUP, signal 1). SIGHUP is normally used to signal child processes that the user logged off; for daemons it's trapped and is often used to reread the configuartion file. Even if you're not writing a program, you can block SIGHUP with the "nohup" utility... read the man page for nohup (or "pinfo nohup" for the better documentation). I think nohup also "nice's" the background process, which you may or may not want. --Jeremy From dev@trilug.org Fri May 24 17:49:06 2002 From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=) Date: Fri, 24 May 2002 12:49:06 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_[Dev]_HOWTO_write_a_daemon?= In-Reply-To: References: Message-ID: <45557.129.33.49.208.1022258946.squirrel@albert.petelong.com> > On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote: > >> BTW: I was under the impression that just typing 'mydaemon&' would not >> work. I thought that the process would be terminated when I logged off >> in any case. Is there some way around that or am I just completely >> mistaken? > > It won't die if you trap the appropriate signals (like SIGHUP, signal > 1). SIGHUP is normally used to signal child processes that the user > logged off; for daemons it's trapped and is often used to reread the > configuartion file. > > Even if you're not writing a program, you can block SIGHUP with the > "nohup" utility... read the man page for nohup (or "pinfo nohup" for > the better documentation). I think nohup also "nice's" the background > process, which you may or may not want. > > --Jeremy I assume trapping SIGHUP will work on any form on unix machine. The application that I am writing has to work on Win2K, AIX and Linux. Making a win2k service I can do. Hopefully daemons are implemented the same on both AIX and Linux. :) -- Peter Long mailto:petelong@petelong.com From dev@trilug.org Fri May 24 17:48:10 2002 From: dev@trilug.org (Jeremy P) Date: Fri, 24 May 2002 12:48:10 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_[Dev]_HOWTO_write_a_daemon?= In-Reply-To: <45557.129.33.49.208.1022258946.squirrel@albert.petelong.com> Message-ID: On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote: > I assume trapping SIGHUP will work on any form on unix machine. The > application that I am writing has to work on Win2K, AIX and Linux. > Making a win2k service I can do. Hopefully daemons are implemented the > same on both AIX and Linux. :) AFAIK, that will work on any Unix-like machine. I don't have personal experience with AIX, but it certainly works that way on Solaris as well as Linux. Try it out, see what happens! :-) --Jeremy From dev@trilug.org Wed May 29 04:00:24 2002 From: dev@trilug.org (Michael Mueller) Date: Tue, 28 May 2002 23:00:24 -0400 Subject: [Dev] byte swapper Message-ID: Is there a byte swapper for big-to-little, and vice-versa, endian interchange lurking about, or shall I be forced to write yet another? TIA, -- Mike Mueller www.ss7box.com From dev@trilug.org Wed May 29 04:22:17 2002 From: dev@trilug.org (Brent Verner) Date: Tue, 28 May 2002 23:22:17 -0400 Subject: [Dev] byte swapper In-Reply-To: References: Message-ID: <20020529032217.GA69378@rcfile.org> [2002-05-28 23:00] Michael Mueller said: | Is there a byte swapper for big-to-little, and vice-versa, endian interchange | lurking about, or shall I be forced to write yet another? on (recent?) glibc systems, try #include uint32_t flipped = __bswap_32(uint32_t_input) uint16_t flipped = __bswap_16(uint16_t_input) not sure if *bsd have an analogous function, but if portability is paramount, you might have to roll your own. hth. b -- "Develop your talent, man, and leave the world something. Records are really gifts from people. To think that an artist would love you enough to share his music with anyone is a beautiful thing." -- Duane Allman From dev@trilug.org Wed May 29 04:29:31 2002 From: dev@trilug.org (Ed Hill) Date: 28 May 2002 21:29:31 -0600 Subject: [Dev] byte swapper In-Reply-To: References: Message-ID: <1022642971.1202.2.camel@eddy> On Tue, 2002-05-28 at 21:00, Michael Mueller wrote: > Is there a byte swapper for big-to-little, and vice-versa, endian interchange > lurking about, or shall I be forced to write yet another? Hi Mike, I've used these. hth, Ed #ifdef LITTLE_ENDIAN /* Little-endian architectures need byte-swapping. */ #define sws(x) (((x >> 8) & 0x00ff) | ((x << 8) & 0xff00)) #define swl(x) (sws(x >> 16) | (sws(x) << 16)) #define swap_short(x) (x = sws(x)) #define swap_long(x) (x = swl(x)) #else /* Big-endian architectures don't need byte-swapping. */ #define sws(x) (x) #define swl(x) (x) #define swap_short(x) (x = sws(x)) #define swap_long(x) (x = swl(x)) #endif -- Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu Post-Doctoral Researcher | URLs: http://www.eh3.com Division of ESE | http://wasser.mines.edu/people/edhill.php Colorado School of Mines | Phone: 303-273-3483 Golden, CO 80401 | Fax: 303-273-3311 Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123 From dev@trilug.org Wed May 29 05:19:52 2002 From: dev@trilug.org (Michael Mueller) Date: Wed, 29 May 2002 00:19:52 -0400 Subject: [Dev] byte swapper In-Reply-To: <20020529032217.GA69378@rcfile.org> References: <20020529032217.GA69378@rcfile.org> Message-ID: Thanks, Brent and Ed. That helped for sure. -- Mike Mueller www.ss7box.com From dev@trilug.org Wed May 29 19:10:22 2002 From: dev@trilug.org (John Beimler) Date: Wed, 29 May 2002 14:10:22 -0400 Subject: [Dev] byte swapper In-Reply-To: References: Message-ID: <20020529181022.GB12812@radiomind.com> commence quotation from Michael Mueller [on 020528 23:05]: > Is there a byte swapper for big-to-little, and vice-versa, endian interchange > lurking about, or shall I be forced to write yet another? > TIA, > -- how about dd? Check out the swab keyword. Peace john From dev@trilug.org Wed May 29 19:12:57 2002 From: dev@trilug.org (John F Davis) Date: Wed, 29 May 2002 14:12:57 -0400 Subject: [Dev] Re: simple daemon dies Message-ID: Hello I thought this would be interesting to those who followed the "Re: [Dev] HOWTO write a daemon" thread. JD ---------------------- Forwarded by John F Davis/Raleigh/IBM on 05/29/2002 02:10 PM --------------------------- Glynn Clements @vger.kernel.org on 05/29/2002 05:29:36 AM Sent by: linux-c-programming-owner@vger.kernel.org To: Sindunata cc: linux-c-programming@vger.kernel.org Subject: Re: simple daemon dies Sindunata wrote: > I'm trying to write a simple daemon background process. > It connects to PostgreSQL and wait for a notify event and upon receiving > some event will invoke some URL using curl library. > > I got it working already if I run it in foreground. But if I put the > process in background (using &), and then after sometime the process > will die. In which case, the shell will tell you why it died. Exited normally with zero status: [1]+ Done prog Exited normally with non-zero status: [1]+ Exit 1 prog Terminated due to SIGTERM: [1]+ Terminated prog Terminated due to SIGIOT (aka SIGABRT): [1]+ Aborted (core dumped) prog Terminated due to SIGKILL: [1]+ Killed prog ... and so on. > I think there's some signal that I need to catch, can > someone please help me? You don't necessarily *need* to catch any signals. Most of the signals which terminate a process (e.g. SIGHUP, SIGTERM, SIGINT) are *meant* to terminate the process. When a program catches one of these signals, it's normally so that it can "clean up" before it terminates, not to prevent termination altogether. > Currently i'm trapping the following signals: > sigaction (SIGTERM, &act, NULL); > sigaction (SIGINT, &act, NULL); These are meant to kill the process; there's no reason to catch them. > /* ignore SIGHUP & SIGTTOU */ > act.sa_handler = SIG_IGN; > sigaction(SIGHUP, &act, NULL); Same here. > sigaction(SIGTTOU, &act, NULL); This will only stop the process, not terminate it. If you're trying to write a daemon (as opposed to simply running in the background), the process should be entirely disassociating itself from the terminal and from the process group, so it shouldn't be affected by terminal-related signals. -- Glynn Clements - To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html From dev@trilug.org Wed May 29 19:18:47 2002 From: dev@trilug.org (Andrew C. Oliver) Date: Wed, 29 May 2002 14:18:47 -0400 Subject: [Dev] GCC Front end anyone? References: <20020529181022.GB12812@radiomind.com> Message-ID: <3CF51B87.5020904@apache.org> Hi, Has anyone done any work on the internals of GCC. Specifically language front-ends? I'm working on creaing a GCC front end for http://www.digitalmars/d. The front end code for the compiler has been released GPL/Artisitic, its just a matter of porting it to GCC. I've yet to find a working example of the "toy" language referred to in the GCC docs, that works with any defined version of GCC. (So far I grab the version of Toy that says its for 3.0 and it turns out not to work! Frustrating!). Anyone with front end experience that might be able to give me a few pointers (pun intended)? -Andy From dev@trilug.org Wed May 29 19:21:30 2002 From: dev@trilug.org (John F Davis) Date: Wed, 29 May 2002 14:21:30 -0400 Subject: [Dev] GCC Front end anyone? Message-ID: Geoff Berry of Bops. Considering that Bops is closing their shop, he'll probably be looking for a job. JD "Andrew C. Oliver" @trilug.org on 05/29/2002 02:18:47 PM Please respond to dev@trilug.org Sent by: dev-admin@trilug.org To: dev@trilug.org cc: Subject: [Dev] GCC Front end anyone? Hi, Has anyone done any work on the internals of GCC. Specifically language front-ends? I'm working on creaing a GCC front end for http://www.digitalmars/d. The front end code for the compiler has been released GPL/Artisitic, its just a matter of porting it to GCC. I've yet to find a working example of the "toy" language referred to in the GCC docs, that works with any defined version of GCC. (So far I grab the version of Toy that says its for 3.0 and it turns out not to work! Frustrating!). Anyone with front end experience that might be able to give me a few pointers (pun intended)? -Andy _______________________________________________ Dev mailing list Dev@trilug.org http://www.trilug.org/mailman/listinfo/dev From dev@trilug.org Wed May 29 19:31:17 2002 From: dev@trilug.org (Andrew C. Oliver) Date: Wed, 29 May 2002 14:31:17 -0400 Subject: [Dev] GCC Front end anyone? References: Message-ID: <3CF51E75.7010204@apache.org> John F Davis wrote: >Geoff Berry of Bops. Considering that Bops is closing their shop, he'll >probably be looking for a job. > > Well I'll give him 90% of what I'm making off of it....oh wait... I'm not making anything ;-) I'm doing this to brush up on my C and have an alternative to Java that's OO and doesn't suck. (C++ in my view, Sucks) -Andy > >JD > >"Andrew C. Oliver" @trilug.org on 05/29/2002 02:18:47 >PM > >Please respond to dev@trilug.org > >Sent by: dev-admin@trilug.org > > >To: dev@trilug.org >cc: >Subject: [Dev] GCC Front end anyone? > > > >Hi, > >Has anyone done any work on the internals of GCC. Specifically language >front-ends? I'm working on creaing a GCC front end for >http://www.digitalmars/d. The front end code for the compiler has been >released GPL/Artisitic, its just a matter of porting it to GCC. > >I've yet to find a working example of the "toy" language referred to in >the GCC docs, that works with any defined version of GCC. (So far I >grab the version of Toy that says its for 3.0 and it turns out not to >work! Frustrating!). > >Anyone with front end experience that might be able to give me a few >pointers (pun intended)? > >-Andy > > >_______________________________________________ >Dev mailing list >Dev@trilug.org >http://www.trilug.org/mailman/listinfo/dev > > >_______________________________________________ >Dev mailing list >Dev@trilug.org >http://www.trilug.org/mailman/listinfo/dev > > > From dev@trilug.org Wed May 29 19:37:52 2002 From: dev@trilug.org (Tanner Lovelace) Date: 29 May 2002 14:37:52 -0400 Subject: [Dev] GCC Front end anyone? In-Reply-To: <3CF51E75.7010204@apache.org> References: <3CF51E75.7010204@apache.org> Message-ID: <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> On Wed, 2002-05-29 at 14:31, Andrew C. Oliver wrote: > > Well I'll give him 90% of what I'm making off of it....oh wait... I'm > not making anything ;-) > I'm doing this to brush up on my C and have an alternative to Java > that's OO and doesn't suck. > (C++ in my view, Sucks) If you're looking for object oriented, don't look at C. Sure, you can do OO in C, but it's an incredible kludge. Why do you say C++ sucks? We just had this same discussion at lunch here and came to the conclusion that pretty much every language out there has its strengths and weaknesses and that instead of focusing on a particular language you should look at what you need to get done and use the best tool for the job. Sometimes that's C++, sometimes it's C, or even Java, Perl, Python, Ruby, etc... C++ no more sucks than Java does (and I personally think it sucks a *lot* less). It's just what you know and are used to. Tanner -- Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/ --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4 GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- This would be a very good time to hang out with the Open Source people, before they get formally reclassified as a national security threat. -- Bruce Sterling From dev@trilug.org Wed May 29 19:45:13 2002 From: dev@trilug.org (Andrew C. Oliver) Date: Wed, 29 May 2002 14:45:13 -0400 Subject: [Dev] GCC Front end anyone? References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> Message-ID: <3CF521B9.60802@apache.org> Tanner Lovelace wrote: >On Wed, 2002-05-29 at 14:31, Andrew C. Oliver wrote: > > > >>Well I'll give him 90% of what I'm making off of it....oh wait... I'm >>not making anything ;-) >>I'm doing this to brush up on my C and have an alternative to Java >>that's OO and doesn't suck. >>(C++ in my view, Sucks) >> >> > >If you're looking for object oriented, don't look at C. Sure, you >can do OO in C, but it's an incredible kludge. > >Why do you say C++ sucks? We just had this same discussion at >lunch here and came to the conclusion that pretty much every language >out there has its strengths and weaknesses and that instead of >focusing on a particular language you should look at what you >need to get done and use the best tool for the job. Sometimes >that's C++, sometimes it's C, or even Java, Perl, Python, Ruby, >etc... C++ no more sucks than Java does (and I personally think >it sucks a *lot* less). It's just what you know and are used to. > >Tanner > > I used to be a C++ programmer. I'm not particularly interested in a discussion about C++'s suckiness, its a very old discussion and I'm sure you can find plenty of references. Java has its strengths and weaknesses. One strength is its simplicity, one weakness is its simplicity. One horrible weakness is the Java environment. Take a look at D (www.digitalmars.com/d) and see what you think. U/F the current compiler only works on Windoze. I'm excited to work with it. Any knowledge of GCC internals? Particuarly the "Trees" and Frontends? -Andy From dev@trilug.org Wed May 29 20:12:22 2002 From: dev@trilug.org (Tanner Lovelace) Date: 29 May 2002 15:12:22 -0400 Subject: [Dev] GCC Front end anyone? In-Reply-To: <3CF521B9.60802@apache.org> References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> <3CF521B9.60802@apache.org> Message-ID: <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org> On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote: > I used to be a C++ programmer. I'm not particularly interested in a > discussion about C++'s suckiness, its a very > old discussion and I'm sure you can find plenty of references. > > Java has its strengths and weaknesses. One strength is its simplicity, > one weakness is its simplicity. One > horrible weakness is the Java environment. Take a look at D > (www.digitalmars.com/d) and see what you think. > U/F the current compiler only works on Windoze. I'm excited to work > with it. I'll see if I can take a look at it sometime after work... > Any knowledge of GCC internals? Particuarly the "Trees" and Frontends? No, sorry, only in passing. I did teach a "Concepts of Programming" languages class at UNC so I know about parse trees in general, but as far as actually applying them to gcc I wouldn't have any clue. (Hmmm... I guess my wife is good friends with Bruce Tiemann [they're both life members of the International Jugglers Association], brother of Micheal Tiemann who wrote a lot of GCC, but that's about as close as I come to knowing GCC internals, and that isn't any.) Good luck finding someone. -- Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/ --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4 GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- Si hoc legere scis, nimium eruditionis habes. From dev@trilug.org Wed May 29 20:25:11 2002 From: dev@trilug.org (Ed Hill) Date: 29 May 2002 13:25:11 -0600 Subject: [Dev] GCC Front end anyone? In-Reply-To: <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org> References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> <3CF521B9.60802@apache.org> <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org> Message-ID: <1022700311.1292.173.camel@eddy> On Wed, 2002-05-29 at 13:12, Tanner Lovelace wrote: > On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote: > > Any knowledge of GCC internals? Particuarly the "Trees" and Frontends? > Good luck finding someone. Tom Tromey of autoconf fame lives out here in Boulder and is, I believe, currently working on the gcj front-end. His email is: tromey@redhat.com Ed -- Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu Post-Doctoral Researcher | URLs: http://www.eh3.com Division of ESE | http://wasser.mines.edu/people/edhill.php Colorado School of Mines | Phone: 303-273-3483 Golden, CO 80401 | Fax: 303-273-3311 Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123 From dev@trilug.org Wed May 29 20:39:20 2002 From: dev@trilug.org (Andrew C. Oliver) Date: Wed, 29 May 2002 15:39:20 -0400 Subject: [Dev] GCC Front end anyone? References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> <3CF521B9.60802@apache.org> <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org> <1022700311.1292.173.camel@eddy> Message-ID: <3CF52E68.60408@apache.org> Ed Hill wrote: >On Wed, 2002-05-29 at 13:12, Tanner Lovelace wrote: > > >>On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote: >> >> > > > >>>Any knowledge of GCC internals? Particuarly the "Trees" and Frontends? >>> >>> > > > >>Good luck finding someone. >> >> > > >Tom Tromey of autoconf fame lives out here in Boulder and is, I believe, >currently working on the gcj front-end. His email is: tromey@redhat.com > > cool. Thanks man. -Andy >Ed > > > From dev@trilug.org Wed May 29 23:16:24 2002 From: dev@trilug.org (Dan Chen) Date: Wed, 29 May 2002 18:16:24 -0400 Subject: [Dev] GCC Front end anyone? In-Reply-To: <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> Message-ID: <20020529221624.GA30457@opeth.ath.cx> --fUYQa+Pmc3FrFX/N Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 29, 2002 at 02:37:52PM -0400, Tanner Lovelace wrote: [snip] > lunch here and came to the conclusion that pretty much every language > out there has its strengths and weaknesses and that instead of=20 > focusing on a particular language you should look at what you > need to get done and use the best tool for the job. Sometimes > that's C++, sometimes it's C, or even Java, Perl, Python, Ruby, > etc... C++ no more sucks than Java does (and I personally think > it sucks a *lot* less). It's just what you know and are used to. Wow, this is highly reminiscent of Comp144! Thanks, Tanner! =3D) --=20 Dan Chen crimsun@email.unc.edu GPG key: www.unc.edu/~crimsun/pubkey.gpg.asc --fUYQa+Pmc3FrFX/N Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE89VM3MwVVFhIHlU4RAro/AJ4o9v+xiGagGlLD/gymOwMBt3UWoQCdEhiD mGTrpO9JB1bt72JVNQ3euvg= =fDcJ -----END PGP SIGNATURE----- --fUYQa+Pmc3FrFX/N-- From dev@trilug.org Thu May 30 05:25:38 2002 From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=) Date: Thu, 30 May 2002 00:25:38 -0400 (EDT) Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_simple_daemon_dies?= In-Reply-To: References: Message-ID: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com> > Hello > > I thought this would be interesting to those who followed the "Re: > [Dev] HOWTO write a daemon" thread. > Interesting reading. I got my little daemon working in about 1 hour thanks to all the advice given here. The only signal I am handling is SIGQUIT. I use it to set a flag that causes all the worker threads in my daemon to exit. It works perfectly. I was wondering if there is a template out there showing a reference implementation of signal handlers? If seems dangerous to just let the default handler handle all signals. Does that not mean SIGTERM would zap your process without giving you a chance to free file handles, close sockets of whatever? -- Peter Long mailto:petelong@petelong.com From dev@trilug.org Thu May 30 14:09:48 2002 From: dev@trilug.org (Michael Mueller) Date: Thu, 30 May 2002 09:09:48 -0400 Subject: [Dev] Re: [Dev] Re: simple daemon dies In-Reply-To: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com> References: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com> Message-ID: On Thursday 30 May 2002 00:25, Peter Long reputedly wrote: The only signal I am handling is SIGQUIT. I > use it to set a flag that causes all the worker threads in my daemon to > exit. It works perfectly. What happens when the the daemon is abruptly killed? Happy ending with a clean restart? > > I was wondering if there is a template out there showing a reference > implementation of signal handlers? If seems dangerous to just let the > default handler handle all signals. Does that not mean SIGTERM would zap > your process without giving you a chance to free file handles, close > sockets of whatever? My experience with the default handlers are positive. I have systems that have been running for months that have endured repeated ungraceful endings to my multi-daemon application. I have a script to kill all the remaining daemons. I prefer to have a manual cleanup so I can analyse the "crime scene". There's one nagging problem I can use some help with. When I run in foreground and get a segmentation fault, there is a nice message alerting me to this event. When my daemons hit a seg. fault there's no indication in /var/log/messages. Any hints on how to find clues that a daemon did a seg. fault would be most appreciated. -- Mike Mueller www.ss7box.com From dev@trilug.org Fri May 31 03:31:04 2002 From: dev@trilug.org (Peter Long) Date: Thu, 30 May 2002 22:31:04 -0400 Subject: [Dev] Re: simple daemon dies References: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com> Message-ID: <000d01c2084b$367dd1e0$0200a8c0@amdaemon> ----- Original Message ----- From: "Michael Mueller" To: Sent: Thursday, May 30, 2002 9:09 AM Subject: Re: [Dev] Re: [Dev] Re: simple daemon dies > On Thursday 30 May 2002 00:25, Peter Long reputedly wrote: > The only signal I am handling is SIGQUIT. I > > use it to set a flag that causes all the worker threads in my daemon to > > exit. It works perfectly. > > What happens when the the daemon is abruptly killed? Happy ending with a > clean restart? I am not 100% sure what you are asking? When you say "killed abruptly" do you mean with SIGKILL(-9)? In my case the default behaviour (to terminate the process) would abort any open tcp connections. I would prefer to shut them down gracefully. It restarts cleanly after being killed. Looking at man 7 signal it says that the default behaviour for SIGQUIT (-3) is to terminate and dump core. I do not do that, I just terminate. I guess I should rather catch SIGTERM (-15) since it can be caught where as SIGKILL cannot. Its default behaviour is to terminate the process. > There's one nagging problem I can use some help with. When I run in > foreground and get a segmentation fault, there is a nice message alerting me > to this event. When my daemons hit a seg. fault there's no indication in > /var/log/messages. Any hints on how to find clues that a daemon did a seg. > fault would be most appreciated. Again according to man 7 signal, SIGSEGV is signaled when a segmentation fault occurs. I wonder if you could catch it and then try extract some usefull information from the system. At the very least you could log the fact that is occured. -- Peter Long