From: Jim Starkey Date: November 4 2008 5:52pm Subject: Thread Cache Memory Manager List-Archive: http://lists.mysql.com/falcon/131 Message-Id: <49108BCD.1010402@nimbusdb.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010606080002030409010704" --------------010606080002030409010704 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Here is the current rev of the thread cache MemMgr. Commenting out the #include "MemThreadCache.h" in MemMgr.cpp will cause it to revert to a centralized version. To avoid leaks, an instance of ThreadCleanup should be stack local somewhere near the base frame for the stack. The destructor will automatically return any remaining memory to the central pool. Alternatively, a call to MemMgr::purgeThreadCache() will do the same thing. -- Jim Starkey President, NimbusDB, Inc. 978 526-1376 --------------010606080002030409010704 Content-Type: application/x-zip-compressed; name="SoMemMgr.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="SoMemMgr.zip" UEsDBBQAAgAIAJxcKzm3B2fuTAEAAEUDAAAPAAAAVGhyZWFkQ2xlYW51cC5onVLBTgIxED2X hH9owgU2xoPewJgQhGA0hCjGeNrU7ewysRk2bZeIRr/dtrC4uy4Xe2rnvZn3ZqY9TElCyuPV /GE6vokn99Px4mkZz+Nup+cAJGjFHIppSHy+XVxe/JIP3LvpC2MFGcwIJFcbyhwFSGJazV3u 2Y8+QokqJPCr3K41CHm+vm4vesDjN9jFtlrU7nLwVbcblLwfrQJtokBQkc9o0PfxaDDyVGN1 kVheo8wFSQW62/nsdlgbwiKCdztqojNijKXk416B+RMJnbnAVxBLlDCmrhVE8uJVYTJs1gs+ vU32fSJurLCYcCTrtZDQolD4AX8YpR8NGRoL+tBIv+Gfp3QWuBF3vvcTKktUJ48yQLnGrbAw rDacND0eESHlP2TLdAO2PoTaK+JboQqotlzHmfs9sn2KJ5e83l/Mn0X7vbreN/q42fLv/QBQ SwMEFAACAAgASo8uN/2dc6pFCgAA0SQAABAAAABNZW1GcmVlQmxvY2suY3BwvVp7TxtJEv97 kPgORU5KbGweTm51ujhwMgQ2SOBwthEX6aTT2NPGsxlP+2Z6cFiW++xX/e6eB4a91a2yxHRX V1dVV/3q4RzswildPWTx3YJB67QN7w8P/wJXD+O/X8LgZHtrewsAJos4h1VG77JwCfhxnhEC OZ2zdZiRPjzQAmZhChmJ4pxl8bRgBGIGYRod0AyWNIrnD4IRLhZpRDJgCwKMZMsc6Fz88vPw Bn4mKcnCBK6LaRLP4DKekTQnEOLdfCVfkAimkhE/cs6lGCsp4Jwi55DFNO3DPcly/ADvNXfF ar9BHyt2BHEqTizoCiVchIzLvI6TBKYEipzMi6QreCA13F5Mvny9mcBg+A1uB6PRYDj51kdq tqC4S+6J5BUvV0mMrFHOLEzZA0olWFydjU6/4JnBycXlxeQboK3OLybDs/EYzr+OYADXg9Hk 4vTmcjCC65vR9dfx2T7AmHDBiODwjNXmwvJomIiwME5yrfs3fKwc5UsiWIT3BB9tRuJ7lC6E GTrC5vcQXMKEpndCU6S2xuxDPIeUsi6ssxidgNHqS4nz9rW6cJHO9rvw019hQtBQBK6TcEa6 MC44hw8fDrtwQnPGKa8GAIfve73eXu8DeincjAewe8AV2976U5zOkiIi8ClnUUz3F8fO2pvT hBbR/uKNu3ZFlld3WXWRS3uS0Nn30hbKxdCqy7MfM7Lioov97a2coSIztF6ao7ekDCa3F8Pg CHqHfSFYROZxSmB0Nj6b/Auf9Gw4aaVkfbqIk6gdBP/c3grQaq0V2iZle8f5MkwSDJGjI2Fa RRFUtkHz6AfAKUiSk0D+5x1IwuzOp3eE5uImYc5GZEnvidhxLfDxo/tb657GUXt76xHZG67D m8tLPBdYufTKNEzCdEZwhRsiSMkPNlljeB2ht8Q0U5+5jnx7SZZfSIjYsJ+Q9A79Sh57qor0 nwaZBCn/FXz6jKKu5JLMmauASwO7GaUMb5RacXHUo0DLKCo/mAdoQ5tbWa9Ka1t9cI/zdN9L a6rtsncErR500Kv/0ZK0aqcLh+1233Dw6ffg6mLYKlN6zsWPOeeNaPID3zBLnKK/yXQjnhw2 2k4p6hnPKq8+aXdU1jOrZfMFgRHfPEDZfh3HHi+xX8ex9//JfjHiZcZavr0wDoc0IsqW6jdH Tx0/ZqcaWmarFGOli5DEsRv+OTiA8zjlSY7LxVPkinIICM0aRwkQBzHtJiScy4NrBA4CrVTK HYjnNUJUQveT4FDdEEeDR/FTcHDVk5uBEtrbEg4hAE7SPFrSEiBygSR1sLeXuiZSq9OMhN/V 5yfxl/jJecPzSh2/Sinl5jU6WYxpVMmFbEejTueVGjmS1XgMT1N9f9PB6NRbaKDD4HCg3JPW 0HoUdrtyn3v44MDuX5bjQmBDEGSEFZkS7Mm491C7LxYl0qNJhEXTidKa8UqkWGEdEuXyjJVT x7QWstYqtVoZ0fEUr7ta1Ti8ltgB3gvC27fSX67du7Uobb5td/Wy5KFo5ZZws0cTl84Rp5gw sev4qowRTayl+gR7vXbFLTVVRhRdq/0qD+T3SQ8u33cMnT/ivqeaamG3BMhYiUVD7VQ5a3Hw y+NfSW1im4q/ygA6ycJ7BIuIrmV1L1wqofR7jBUxf/0Q5EHRPcxjlnsQKvYMhvK70d5icTO0 KDIfMLWU/mYZXxyb+YAnJDh+pQQeupUEqMe3uvvFb86Gjp6+ZKX+spxX1tmt7Y5eKboNZnXS 9zxFlYl62Hic/CkRRwnnul+gQAtuyTtsqe6wHgqB8UtUN5WHSyL8DKFoEn4X3TFvEdW2IMUG l+1bePNdkUmkKekghWACiOshmfkr7gGz6AGcz6wCt2LfeUZRpskdBc+NpaSyqAw0tNXFHNZY ZaBZRNfHGXfh13hVaxhRoazJO97P0pTYGtOkM5nPLBLW28O3RL0JPOVtc4Q7PV2ZusnnSa0Z lURbHSqFsDFeUiY6dsSCDDUROiHuUIMeVhsjxY5q/ow6te7gSdr8nmKbbbCFpbEVgltoqPPV WjjQ8QgtSVMp+lWxX1ftez7mMim1XZpFtd1SHPiuV8TzDRm+uhG+D5M4wnZGRfXBgV7ghr1E J1Mb3pO/3/DkkwVBn+QDKLbgiWAW5iSHsA1DCjPebePdXZi24WtK5EIXZm2YrO22KBu47jva cr/9BjsOxNY4AH9hlK5lLPw3bWz46HSxga3Vf0jgFHHx/Ds2DSIcPK0bRvyQXMyeyds3otxq YY7vNxYHNcOKTfz2DL9AWNB/tw/ldwvUw8lnuxVQEqZA/l2gF7AHNctynoVXjcVyifkEZNOU F7MZyXPMUKIAEzZVtgZ0pUJUV8ibQ1W+Dlcc5EWc0yKDFR9qST+dUppAvkDL0bV8ptq2Tbv6 HWFjfXPrrVztwlvDoO113OWeyA/BagSairzEoT7+KuHnHk9L/YWDHqlfYVun84divELti+GS 85J/tqWXxFeeXo32XQijXwqEVX0vt75xFTGOJNx2YfZg4syazkSXd+NPQiMpc5PXPT2X6XTB 6oxM3Fx1DD2/YtdmtQX4oQ937hxG1yTSue1sy8hlazvLr3Sh8QMr0mEJoyucnftcQbQhhFc3 GOIzSQgzuf/3meJxk0HqBTZ1S1YQt25pMJ8FDFiVupQjNWMx6P87Lfy4yc41uj2nSf2zvFQR W7/NQ3Sb/gt6KA+QPMJdddc1Hyrx2OROsQtuvNnij/HM+S7nFaBCKx5xXf6FRJHpBgshVHsR tlfybKxq6mIqWi8UJ7dXWCx0uyT5LIg96zAv1TW12GtexwdftdwFD3xlMfFHgJOQe9eHJ697 LodNEFhqPo0sB5ztwgQe7HD1+cxh13untvGNOqbaL3yHkz5j4N8OYGRm5Q80pYzRJWZPBawF /+KQLmU6lKnAr+r3JRMvJ6j04+Q4pzCqpCO/mvHUUGFj/V119RtRXAE/956IJCysHRVUR62y k+03FnBNUx+vFNspzXj0MM/LtJ0jKVjzbEx7v7zhMyfmxeNzgyIsKHtYSu71nFxYe6E7dfIw RhvL6/HrqdGdec3rL9oplLGEk461h7fL4wX+f6Q0dPTtK9NUZmf9l46OEArOeQPX/EWIV7g5 HrtjRm+lsPEH6/5gp2kObh1YcAleJjmfeb1ecCO3cLtGUZtn9g1QocPDjRpZVKuJZ+2sszIA kntHUOpG2m62tEFVP6ngYeFby7SJbvWGVOKfSHwmK/PVpFhNMHF7i43Zxy0Kql8uHEH9/GpG s6xYsdYbNRWhGVK8aftNc7msd6cHlsM0jJQ53tgawZXfsCl1yk+14Fsp2Wq+BvofdCphe7NK 8p+uVBTznksza1ZMXYP+p/EHb3R47NmXFjJ4Iqgj9nblaOKbXcOj67CAjhgmNSUfzV3+m4LZ Isxgl8kWnpt9MB6fjSYtkZnbzZ48o0XKym4sFvUsq/77Cj12NeMlNYjd0aFamstqOmGYTkfc 4PaUbizI6zuOs0kpGzK8Idcv6FA7htZXoiH+C1BLAwQUAAIACABKjy43aTyTYdQCAADiBQAA DgAAAE1lbUZyZWVCbG9jay5ohVRNj9owED2DlP8w0l7YiO7Crqqq5RQodFH5ahK04oSMMyFu jY1sB0qr9rd3ElgBC20Rh2TezPObN+Pc+9DR650Ry8xBrXMLD43GOxjuoi8DCNpe1asCQJwJ C2ujl4atgB5TgwhWp27LDLZgp3PgTIHBRFhnxCJ3CMIBU8m9NrDSiUh3JREFc5WgAZchODQr CzotXz6NpvAJFRomYZIvpOAwEByVRWB0dhGxGSaw2BMVJb1CRXRQAT1NzMwJrVqwQWPpAR5e 2A9Ud3/p5yg7AaHKikyvSWHGXKF5K6SEBUJuMc1lveSgbHjux0/jaQzBaAbPQRgGo3jWomyX aUJxg3susVpLQdSk0zDldqSqpBh2w84T1QTt/qAfz4C86vXjUTeKoDcOIYBJEMb9znQQhDCZ hpNx1L0DiLAQhiXDP1xLS+fJmAQdE9K+9D6jYVnSJxPI2AZpaBzFhtQx4LQI/59HycKkVsuy U8o+mtkCkYLSrg5bI2gJnL6cVFl/nFYd+orf1eHte4iRjEKYSMaxDlFeMDw+NurQ1tYVmcMA oPHQbDbfNB9pS2EaBeDfF4151RuR0malMB92h/Ne2O3O24Nx5/P8aU4YAULhVcyrcsmshSGu Cpltqfk3+OBVK+t91xRvi+V48RW586o/veo+XmScltQ2WiS3LYr+vhp+lV7x7YpJiaZ1AUhm ltfia/JOucu4wu8u3gp1pcIIbV4g+gvlKvRbMMkUx0OwEEhBox1zOMDUHTs5g8LiC3GBCVoI 42pn5vlKJ3j7Wo5foREkIxI7KBq0rkZywIofeHYWHtQdT1poLU+RjyjRYe3KAUt0Uc45WqvN mSTfh717E02HoqlDQerTPaAZ6C2acwkrvTnwv1Y1XdMGJ6XyBKVj10X0hLEnVl3ghQlH+DCV DZOCbgReWMy1Mfna1bhW1gHPmAHfEcNpMafrdKT8Ve7bDSr67nrVP1BLAwQUAAIACACTZWQ5 7SvDQjIaAADQawAACgAAAE1lbU1nci5jcHDlPGtz20aSn+Eq/4exruyQFClKTjZ7K9qqoiTK 4pl6HEll44tTLIgERcQgwANAy47t++3XPc+eAUBJPme3sqeyJXIePT39mu6eBtoNdpSsPqbh zSJntaM6e767+yM7+zj6zwHrHj5+9PgRY2y8CDO2SpOb1F8y+DhPg4BlyTy/9dOgwz4mazb1 Y5YGszDL0/B6nQcszJkfz9pJypbJLJx/5ICgcR3PgpTli4DlQbrMWDLnX16dX7FXQRykfsQu 19dROGWDcBrEWcB8WBtbskUwY9cCEE45QSxGEgt2kgBkPw+TuMPeB2kGH9hzBV2C2qnYj0F7 xsKYz1gkK8Bw4eeI820YRew6YOssmK+jJocBo9nf++PTi6sx656/YX/vDofd8/GbDozOFwn0 Bu8DAStcrqIQQAOeqR/nHwErDuKsNzw6hTndw/6gP37DgFYn/fF5bzRiJxdD1mWX3eG4f3Q1 6A7Z5dXw8mLU22FsFCBiAYewgWpzTnkgzCzI/TDK1N7fALMywC+asYX/PgCmTYPwPWDnsykI wt384FD8KIlv+E5htCFmh4VzFid5k92mIQhBnhQ5xecbbjVZP57uNNlf/sbGARAqYJeRPw2a bLRGCN9/v9tkh0mW48izLmO7z/f29lp73+/+lbGrUZc12rixx4/+LZyDZM3Z+cXkrHc26Z8P +uc9aIa2MA4KzUEMQinmxdNoPQvYiyyfhcnO4sBuS8P4RjbOmQA2q00m3cvLQW8yqbPPn0kr bvRwdAztDuAovBZAgggpaPqWfhQlU9lXxGkZAA8/2khtHUXJeraz2KJtZ8Hy7CZ1GkcfgbTO OBDyD05bPwZVBCzeudPzNPCXTiNwJwfZWvY+TIMVMtDpHy9gUgl2ov3Iny4C3skJigw77f7U m6zWKbcRZufv/egGaD9rAwlgDiLn0Ejw+6fu4NWwf348Oeu+7nEeX50f906Ay8eG+8VBckjN n83SIMuaLArim3xR3zRHAy6bpRFrt+XGeuevhKxpMgySG4cw0EKoDFM1mCwH9ZiCTsYZ2KA4 ZzdrP50dfsyDjL1kWfh7kMxrqIX1Dmu3WQMM9w//3qGU6Y5GveHYbEh/NzSUPf3z/nhy+Gbc 8zxv98PRkel5ddUdHpuuY0LT496gN+6Zvl6PgjztdS8no/5/Yd/z3b/9de8vz03nybDXm1wc /kfvaDwSg/Z2n/9Q1X/aPxl7ZDaw4mL4BrjRHwNwMu1wcHH0ejIAuo9Pa0ihuje8AKZdXfJv TTKR8Pn46uzszQTNAkDb28Uf03k06PfOx5PT7uhUIbpHMOn+PBEjRnwu7uHxI8MykOEQrFxw FsbrPPS9l2zvx46QEXaeLMMYjKvQcBaFyzDPGJw3wPg0X69arTnvBxhrYHkW5Gy2RmMEkEMA FoW/c/tJZEXYAM8TIM/82L8J0hrg6q+jfIgWF6Y3i9RvGm7VOwVocEAk6awS2nNnttZrULHD q1ca3PsknHleAwz5qiu0xyx10h8A8Rt5Cob/JIwCAWbNpXh82h9NcICjEtOFn5rOX359OeEf JpNOmYQPet3Xk59gxxdDzmRBtXQ9zXGfg8B/xz49fuQZ0F5jDoic+0tExgNmAoMjgGS+TYEE OX790iHQjuCkB85vAiaGwH6nSQReDXos0ApncpqbNdpt2XCNhhlp5aGye15y/VswzbN+fJUF hdbjIArAiTHt2QpI6ozlbWTklzKuecivhhSCyySJunhOgSwfB9frG1YTHayxgq4mOHVZeBNz 7wkEuElZxLfe5B24N1A8z0Pq8AVYQyAOFg0BtQ58ukoNIInZfCZH0/PgGK6pWWAIjTxx0N4K dCSf1+SBaGMN2vV09TbealrTCFwtgQLWXALTzU225bOnMw2lyQQmCkYa5Os0lo1IW+8L76DE dAj5DUhn6fvOvzAJJQWHILs+uLg1SgdDnXaj0bj3LpnapgJauUFQ2IZwNjdtlFk7TRUse482 w1KxspQHM7JMeIbcGCuWsBoXGjzb7iU3kraWRbflhYmT0pGZUh4gDGFFWE0sK+DS5eg69jbl WAVc+sWVVmezwSns0DYmsKn6Hcro6mEBYrmOlUC+n4yWSsA/kfmC79+a1wU206OZLPCT9JNY DQEiPJs+yo+qcUD2UnZfuy16Lzghy8d8qVzd5RViYqwI36yYsr+vQRKWuYC74L99/D3gfFr6 2TuIabmvz8ALwr9qiXYbPMjecHI07EO43x1MRuCo9C/OuVvAR7YOVut8HHzIubUCyoBR4Us6 YikXFIvJRUqhCJZmCowjFFVg2m3woyBaK0OUbx53KvZ+iG7LCGSqlKgwhg9gDe7ewBlWU02N OqvVro5Ou0P4JM13i12cnIx6YzOoya6T2ce6NKhStLuHoxqH1zqQcZlGbA2Y/fiD4ss0D98H gpBa4sr1nIws4/DlOr0JSGRbIb+rwjAJzLOgQTB4vF6uFJBCIOnpaFEypSNISURtt8meEYbB hP39KLmpwYeTaJ0t4EySPDexptjV40dKtMVfLrWpdvPx23SdJ/O5+AzBCzdEgCvuF22nDwQM gJUyRBipJi5gEhBKBAxRX7ErB7qArxvNoF2swAVbwucxDvo48jv2TddpCh60YIsHUdUutgpH WVnHmdvOOakbKWN1Y7xeXgfpYXhzuo7fZU7zCDM1okMB1gOh5fxqMMDGeZhmuR5LeyK/ogNk 5SiJ8zSJKCQ0wcFU0qsmCMO2NeXqrG1Rkdt7GKnmNGSKQBi1hlQUTNwK05hZOgeqxk+CoX/L apGyLBhz1siUJgPxEr2/wR52Ih/EOgVA/FuGe+Nfn+F3xVp/1oc47gM0CwXY378JcvFxtAqm 4Tyc8gFcJ8olUZyBsNhek+nPz6XkyTF6tpr7P2SyHCpPJb5Jsi2+IZsyhgeYRkU6ac6xxgJ3 x2r4B4baDK93zJFo98BQnNE6iMEAd8SRqdDhsPQh6XlkXSmNYCjFB1hYfgKASgLpqqrNdIsl TyVPLCrIEXppRUEhFUzRkssGNwg636WORtHAXoBOcByA5cktKyQJWe1y0B2fXAzPJsOr83H/ rDfpDYcXQ7BHIUjNjUmEaI8EKfAUE/55kG3pTFtH0qfdZv25yD3DP59x6WNc12Fskrzj88Mc 88+Yc/YK+Gq7Y2jnHEt8Le5kRQnGWXKuUTzUtI6byhyfDnvd48lR9+i0J4ES088aOfnyktm9 RDnEQYEbpNHVEzK7dUCE9hfE8VcRinzyOInEjIoxYsOehyliluGv2rMl5oabKpcs2S4cBPjB QTtIlhpwFc4SsJ+qi1pTti1Iq5H0Z7+ts3wZiGSJ53kVvUyaVYW8UAEkf8y74M8LtrfLnj1j NeU1FDfXYdvbsdyi2qNXGOY4HNJpwKhBYuCRJjkYSAJDN9Nfzd48ClVTy5cndV79wUAIb1Fq Lq9ta/L5M9vQ3TrgSZ5hsPTDGHOGL5T+APnkqo7lQrreAeTgpdH/P4cIcQV42Ka00BSNfsHa KwamgPb7QDcTc+7iGsZZkOYVIy05UAeBckztLUsjWTNW0QRW9+dIJT/w/+0CAklW26RsTNob /lv4+XjUKPmmGqXt0dHF2WV3COb/Z7z7fNWbXF70Mfqhhgr8HFygqew5Aq1L/khyEAXSlIIz AS9HYZUsWQYsQdPPD1228DO2jhXVZozLAN5OrnnWwZN22j3kjd2tOu5Raxb3ECtBos1hj4Cz 1MGG59EWVAoBkfY5q7bsMVYwBKu1aKfmiHFLKnfzgvgubqdtDDapwibh/0LUtoLFnubyecJu kgTYmLC5n+4wNg6XwmHwQVZuObKKrZJvlg9nubtWpCHQEZvVZLNGaP1QHje9YkJ/my5Ub2o3 fJasr6OgLhbYHPVylLelp13OaAcpiJAltvCBzJKiAwsp2GLlbSomm6SkmmVwzDpxkZ3AFdwT pBKRrtfGtCxEJuzidZPdBt+9D4CNOfBsC/xQMWGLwWbg38KPZxkyNmFL/0O4xJBmmsRzsFEY jfKqCrB3XJslUIk/0NoXBSoaKHqIOMOMALKfgjUF87ACs8dzCU0WfFhF4TTMo48SYoBGEf08 Phvm8Ot9DhHQY9I7F3DmYRDNsMjC4/UN5T+/6HUhKufI/LphuMfu/EHium0vWvDDtKnBbwdl 43hGu2X9NMo+8lz6Z3u3nwkFPzN2CPRj7PODIHKUDK7hzYXM9WiE7wvuvmhaDPz8FdANyuTH BmvaD7gQtYXkw797nskVR7ITvXC/GExGRVoMz09jjTR2dbAOpF3TvC7OVm0AvjHwjqSARajG XH8UngX/PIYPO3PQ7HM4aAaYXshy4uOoIO6JmYxeqzVbJCX4hh6+hKdORhU5ia2Zq6W2DcdO LN9xvj/Tc7lhFnLZIc7LUbJcYemcZETNCO+2JD0ecXjACfuGoOhphHVexvcyB4Ix53IhHjlD WAyGMf4Os3zJEp2hDOxfzjDP5DurNE1YjqbwFsJm/ASmUa+PN1+4vpLNUhmhzpAdYWGgK856 NxKwtkNcl82O4AVu8DbM8HJkkazYesUxt2hm2R3wXG8LwtJxxcjajnVo2wdr3Z5JGL6j1YyT y1UaMQjC2LKTuXhou9RziefwXriyBC3prqu9iwbl1zvjYLU0TNICffC/DaCahAaGmlFNKLk3 novjPFUnvjnVcZ5xU6jKdoQcKAVFng1C0HQT3xTkR9x7gYkX6aXjcIbKgaYCPAGYi46ACBzA 6mt9IP6mTMPit4FimcNdHjMoA2qz3HLKEA5uZsTXk2EtSXsFwklEOEiHbD2fg+uCIfB1ECW3 tndItBeYk/piF8acEoS3Le21DTl0mlz9C3sJYyKt3Rc9Z7opMrTlkITTqcWe6zy2QyvLqn3R tOlSK2VzhuZSSUwg20hEQMjBhWVhpVBJ1pXeAcjdmPFaZw007FRe86GBITA/guie4K3slEa8 xEpZ3MHzRaxsCoaMUiqlU1cOBXVVHXfezT0zU60zrNweVRuwakNFpTwV0s3lJQrmcDi9D1Kw 6IJYvn0OkmObSxjJxP9BFlwvdT8j5gxySH+nkbzDxlbYQK0cpabQXHyaeE1fcjoXAOjnqJID dQOgrwScQLhp5cjRdFR7k6awtWOJn8mESM7qS0a3jgIW5xgy6ivKvuIZiRSR5SYCSMUOnFLH zZuwCnItzKj2aBuzAU8tD6q97PgXXJXXDqKeWZTtqWu7Z2q2iG11ha9ISFg3fNZQuZUmqfxt 8ot1Gxvl7Zddzeubeb0DVf3IrEtPAS6Mg3NuEuUpR/KY29vOnW6HNnIDgi2bCrUdMui9G7m3 RnQ2Sr+oqCurumkwtUWr8uYfpyL/PzVkkxa4gkcrcEuFT1beEvl7gC6pZOBXaApOF6X5tQjT xqTOH4LbSF/dKDhUGhx/zY22HqblIt94T6Uz5wlfywZf/0q1vEMrrWKZ/X15kS3LA3SBUUnR 1qe7g/MH1xzxNSyvRwgmDXHxKBZj6h10asiN/7U6oUksq6NYJ8BrHciJgtTX1uH+pYouYrCz a0KfJ7QEwgRExphYGJgCnyfFCh8+fZqk6XqV17au/Zn0pSQmsy3rwQCqqPyOV9hRTn/WAPUr y1cXa7uarLGCkTi+RQ0kW4HKQKuoicCNNFbb24i2EXbBJIkxq23x6aLUgLuY+PRaHohCKWIQ Wi1XDSzr7mYqtCcrR4ArGwc3Ps5tlpcuFBN9u0aAqx9ikjmaFrkNLJJaO+PU6LUKjcrgCqMh u4Wakid+9GKb9cR6XOuPrZBwLlqrNEbnqtwbehmKHHCaUQyB3D9TpdaJ3GIely6qLr2r77wf dOV95423NYAXHMpch7w8szRclVubGgtZ4tIqr3HpVF70VpRAVJVPyOKnr7sNxsnyTti+Ddb7 1CWN0opiIvA11TWeHRYg8HYJCI+lr8trcavGn2eNg/BmcZ2kGYdwp9IZndvsj1dr0sMUaUMa /a7QtiLXyMVk0/VEUayrhLoq4WaLg/LfLAWgV9duAt7cTj8p5CTtUNs67gmZpLQWKOSAq8sK ObzDZjXTsikNsP2SuZionorcLi0rKMvFIrAH52E35jul++RSVcBxyMob70tXhckmwvIxNmVJ U2E5Q9aNVL8HbSVoN1tiE5cMMoTlfyUsqmGq/S5SlxNaeojWnZVCjziPn7RhpjnLxirntbUq 49h0C1FxQB28HzHMzlrWtcG1koS4rH3Lpes45HKLYv1oReGqKrmiFln5sv9aOyIXTdrnnfr6 rgDLDhDIliUPPDnn5OYqZKjo0atlaMIhRxnm3nzJUwK86P8wxcda1RMj/JkoJiEFs332NONP puXSyNknDH0aQVZyl5X1mqpeOO0m4CwdwWm7JQN7OHDlcrgYWaokxSKm9LPeh4UPrk0wI3Xb 99wfLBeo2W8LrvvX7Oniajy5OJmIx8atfemFtsoZJuycbRQZDcDkgSjHlQORMmMDocL9Sdat m/voMjGrSmihsBdKuoVvpzMz4u0UJTfwYoSI++jTGHYqX3mZRe46STidxypSYYZJt1GerIhE FEcVFImU/ctNKleZP8mCz26rBvtE0/eBKjq9Lq0ggCjkBEsBYScydc7UQMlbGIElBrW6Meok qi4caC844dzAFGNpfskRwabU01rC9ogtVYCTJVr6GXVRH3AL8qEjBnvb2NepON/H0GfVLGtz npMeYVRxbIevhBG3pAyFgl1NlpsvZh4NMniMxnvN5CcvDSRp262kgxm5SkJ8p8mWZci3tzkB 3KCoZCMaUGEnFt4OMq0Wga/jTGyyuCpw5YCQqVvWNQ0yFVRo758ggAffXgC5nlYrK3gCJkml LzItO+leforQjBgi9NJFo8M+6d/xSnoVBj1TYwm+4EmWtCqiPHFTUWX00RHjVv0OzIjjaSPm UhErfir4RFFSK9yNVWWaEI8BkySUWUJ8o0x+DU7CFMbwl1hlAVuvTPLw2q6L4lk2Sh/rTIDQ TvUW63i4cN03pymRJXXablbTQayASLGa6GsQME9l/WOXFzdQzhO15NE2+gR5td7VxKSyIf7d jyx/Ks1zbCxvFEA3pw48/WYUCAP8bDH2r6OA/eK+gOdXeqehx/EnE1VAqFtFZkPmlYul0Et5 IyYvpsTiddagr/WpdwhaU/6XPzkpmhCIvqRWo8DnPNID1ZRtCpReGH1F9biNDmnJk9yPMnp0 2LqSkWcRnQdZWFbyEcuXzHMzsQg4aDQnSbuiVDWzt1kkkvEEiCSX81CEtHnmjSam9BEgroSx sFLtYqSda/fKMufk7rJlD3bfmUCgkrtCDffJXL/qw5PDtxqwpzi5jRtbeqS8/KUo0tS6QRMH ESTFnJa8hNSw1JOH2P208DYqNVLcoggheMm0/MuErBRC9VdLZetAv4Cobh6XUn3m6lTcnWLW QvUJbF+aF0xgxhejMYtgYrQdhDsoZNvbagqdg0+3yU8H/IZHKhR5RMsNCvGHB4Y8XiChIbVA +4x/yHRNkR3Hmeyxp+yyjHPMg14kFaALBrU9EjhbxkhaFQWhSF1OXKdXSoN6FxTp0RyjfGbW w4dusya2nZMhd6TWndCBlknJMogi5OLuq6cIXuY9U+5zSuSxxs1gyRupXMCyqww0/9BuA6ON k6hTvbo0rrZy6rpgimW19EPZ3spd5QvN4uBLJAp1mfwZVU49/qJL0hqFeR5Zgzc82k1LC5l+ 3LvQ6eTACDRFgWv9saRIUEORdYJMjyYfxWoXUjq05VexmXXpacaVxgDmObPSkTq5bExE0S6X znSNdMFKbzDT1E6Xb8C+D/VkhYa02wf4tHvHQLqfla4y0+zBdvr/ZKhtS11iqvUTsBuMNcGg 3ERX2ehva6TLrbRjpo2dfoChvsNSbzDVD7HVdxprg/sfZoaN5bJkQvtR9nsSuK9ijJq7ioFP Kr3LUTEXJeZtSAIr521FICJv47Nkto6Ct/kACP0278cM9vg2F/BD+U0eE6p5Jr+qpIW+ihV+ MuF+TbTU63Z2S8t/wd1XKvpCqQa+doAqkaCu2gjml33cx9Psbf50VviPeXhX3pqWEjeVLJcJ gRlq+F81QdLImSJbpfALauzQJZCH1fInJ9jSV8SpDDo52jf5A3SFkinuKy213hQ4MEZAb/NS FiiSley/yQp7bJYP1wQuQVk+de/iJD0vUQeEV0fZvsbJfch2Mwh191QAcKjfFGMuSDG+Z8/c l9TWyyX3RFfaI+wtDQefOPHz6UKnlYWPlKRwigYzy03yVOWsyUHLZ+qkC2Nl4a2MZ7YTq6f1 UsxzvsMsmHmeLhNtmF6R7tGAPAV4J/SSfOo7C6KdSZXKvb3N92KCU3WpsGeFZcU0O8XTTTK7 KWY7NU4y+iWOWFSVhvUsbmhrzBrMhnaHTKgjo2jVZqz2dFZvMv2anqaAXLdOlO1tISkHbG/X dTXKTD5qqc7ge7aUlbwtQ+e3caAtxQAVawNr372NvzM2vrCPqzj873UgRHSfSf3h3yq0jitF FtxgJVZB5bBz4zzkBuoS6//4A943dsf85WxNE2BY72ulPHxCnj2pUFiZc4zAx9pnG9ZgLUtZ rdsI17tSvteGlD7P7BUTlCUZw29cj/snqiTdkJktSe3+0bXMTqmxzcm78tL26Opi429cS+x5 f/Zq4qrrfvOqDeuFJSaHqu79y99LV5LZXejfVvWL3k+26dVIZS8fca9pLRCqgmphvqlKK88d pkuzMvuFSiaIKLxCzxkpTJ+doyaPYqrXoCik6OyyuntzdVeyI+v9jXJP99uRLrbdtBu8Gils pPTdkc7EquqT+0qSIwOCZWWbK14H3G9zZmxxNS2JTlvpkrr6Tq1ZSRYztkidwstYC5VGZUXq D6tRx0Iwu0hdvwjTeo8FgWI/gmG9MaR4o+buYfPV2gMKze8oM68oMq82aiIG/5NSu4D8ZjJb xBFzzdt+q0kkp+FF+3olH2Za8j6poDVTPi/bFXj3lcIA/H8BUEsDBBQAAgAIAM14XjmCK50M YAUAAGoOAAAIAAAATWVtTWdyLmiFVllz4jgQfjZV/Ieu2RfiYnPAJHO48kCYHFSFJItJTeUp JWwZa8eWKEkmYbZ2f/u2ZHxgk+QFZHXrU/fXl45cGIvVRrJlrKE3PoDB8fEZTDf+X7cwuuh2 uh0AmMdMwUqKpSQp4DKSlIISkX4hknqwERkEhIOkIVNaskWmKTANhIdHQkIqQhZtLBBuZjyk EnRMQVOZKhCR/bi+e4RryqkkCTxki4QFcMsCyhUFgnebHRXTEBY5kDlyZazwt1bAlUBkopng HqypVLiAQYG+hTp8w5/K7BAYtydisUILY6KNzS8sSWBBIVM0ypK+xUBt+DmZ39w/zmF09wQ/ R7PZ6G7+5KG2jgVK6ZrmWCxdJQyh0U5JuN6gVRZiejkb3+CZ0cXkdjJ/AuTqajK/u/R9uLqf wQgeRrP5ZPx4O5rBw+Ps4d6/PATwqTGMWoR3WIss80hMSDVhiSp8f8JgKbQvCSEma4pBCyhb o3UEAkyEj+NhUUgi+NJ6itoVmR6wCLjQfXiRDJNAi3ak7PkqWn2Y8OCwD6ffYE6RKAoPCQlo H/zMIAyHx324EEobzekI4HhwcnLy58nw+AvAoz8C98g41u38wSLMrAiep5fT6fXs+eYZ93CD cbqzZzR5kGQhhU9TjPjrYfypvudveHC/+JsG2grq0Ijy/OPy4vHabtnLis/tRXUNyjHtq/9u Zy1YiEGn6XQpb8XyR5auegeekSiNVATIP1eYb1xjzCKSJXpmWGJI9Dl89d5WG2daRBEqfT7+ dvaO3ihJRGBJR92z09Phe8o+W3KiM0ygczgZDD+fnn35ao0NEqLU1g2v+PS1pBj+mnQsuJYi 2T1yQ4mp/m7nn27H1nTwvdtxcizHcVfCHnDQjOHAcRLKlzr2SrZr7JYqyPpdli6oMcXJnQhi Ih03Ygm9Iyn1qhD8a3Rq1lwgHb/ge95dgrfty7hCMrBELPJChBsvB6tjsWWeNa3tHLPtcnnC cTl9NecauyvJhHznph3L37ko33ectFiWmLVKoKkpUsvINu/LC/2UJMlNxn/tiVsp23Gitls4 YQLmOLWYNlh10TohNzVNtcI2MKMpYRxLwNsTPnR5v1VbiZMbZZZ7LajT5iyM66pNN2bm3nTt mVqR2wI9bxRs31ZSYOvyfKdKc0nKeFWM563yPPCqa0zXcIHI5UkfyvXAaqyZ1Bn25/9qqnlD KTksithzqs3CaJ/9pjVedCwpDoYkrO3t2FnbX9OgcTq2LDY2ua3MMhtUS7QNlCqiYWKAUXPN AyNPcuU1Q7rYPVPLtYhJpcvvthxD2hJv25RjE7DqWU69IJyoWM1x0ZL+XaCZaWJIM/+e4xwd wU/GhwMIcBayAAMl6RJ5VGDeKxEaYx9C+HCqZk5O0NlnhAkyKSnX07IuskJCAo0Te9osmDyD t/GiYVtijzUiTsIJzrbXvLTQUYa9Et6eVDjnNZpJw++1iLkOMZfailCYATY5t3PFQGFfljJb 6V7Vn118/b3qg/zaqrRsgjs5HPqwi9gQ/qCLbFlq9KEOXjT/vNrMkCgRMP9pQonKg9crx4Br SaqprUnC8InyoR7hJNn8pmBNSYn61d9OQ3CV/d+D2WubY90BW8PgCpsMO0qpWNNePe9caFrC 8HUm9QdKobnH12JVtouGbebsLT6I35JjJVaUFLOoeU8Rpxl5sbzkTbfttZFX1La43dWqBtEH isVkcPczVOLsgLoQ42+L87eUVbGsnVhlcknntqrGJIhpk8IQrdR7FWrdPKcvH4cTdfkakww7 RVhhNYqr8H07KSqXd5TKzGsl2F61PCAfKOf9Y4y382y1vT61TeOgemKUz9//AVBLAwQUAAIA CAD7YEo5iKt9dLQEAAApEQAAEgAAAE1lbVRocmVhZENhY2hlLmNwcJVXWW/bOBB+VoD8h9kW KCQnbvJsxwbatLsJkKSLHE9FECgSZamVSEOi0naL7G9fntKQkpzsi23ODOf65qDfFjQp25TA SUUqVv96n6/39972xLgsWeIS35yWrE3f528w7ZJUt3lN4vQ0TnIyZF5uao+oxUeJpyWJabtV PMnNUpLBw6fPH+/+EseWyuPt2fnNw5/nF5/39xoe8yKBhNGGQ5LHdc/8er96UD8eHpbiKqFp kUmdrruLhXsOtcMw2zJWRvt7v/f3goIWvIjL4h8SKqpQ9zym6V9P1RMrUq1Cicsj+HeQbm15 BshypZ1ZKZowG2RF3fAbCc1ZS78LxtXdxYVklPE4nbbVI6k7TiNYx5Iep9/ahleE8o6S8OKJ XKpSsLSsJh7liSQ3wllx1L7N14YimTUTABV040lgshSrCvpB1paAjlEk59CXOvyG8FB68eXx G0l4cwjHh9AIPSzD5K/H9xHMwLgyAdBskPwN4WPQa38MBO4dmHF0WEFW0BSrsKFoqXNRrj+l N4GsogzCP9BtoT8IpIXAVRl6XkegOzE0YbtsGbaHhDKIlc7XqMpMcEpG61ksGpuHmy1JiqxI xuI4BOw8um9adrGoyaZoOKnPYpqWpDb5XCw4FjsE7MGz/JCVQ3hbU2zBYvgyij4GhahpnH+N o7EwzK5NwmaQBA9EW1IfBRjfh27EunS1/ZLQDc+NaaezDlaG6XWhQ5cqmpLJ3tREOAK/i6wn MHtUX6IYUUPI2/eo8pRMX3IDUVN4OrYIlPh8bcdOYM7GmRXMe1/xkJjjIKRpm3Z13yIuvo6O 4IYQEJ41rCLAeE5qyOXoyuMGWmqTmUKzjRMCnEHbEB2OsNVPupm8hOKEMNcD0J2UEbx7p/TP 10rhNali0RR0A+tVD5ZJzjCzODVai16ZKiJMcGEMRi26SZrOrOTKkLQSSn7yySBOoBfymSou HZhAo2JPpMuKUq0bUZRcQ2o+ynreBWag0bxisGFMwMUgi+v3ALeFwDVjNcRAyQ/lnxY2+IQY RjnkzMRRyF/HP0JnGyhPdIxdpgbrwjROKXjXX+6uPt39bWamayyyGwTClLWPJYmU9jGsw/Du 9OzDtUEdDqBEjngYeA7B3Lau+NFfquw27TRruweoJnY02yRKBwf+ptcV5EAmUZx+itRETOiG qNj7JICdHL9teju3HD9fO7bQZDHJlo+eaHx4jY2prvrQ3HGHKh6384lxi+nTKdm29Qa/4wJZ 0OHIAJoaO8t+qkz3ni396RY0faasyyRT9RwTXyf2zbMEUQGRHRk4b/ReTwDrOh5tS7MYvOUh rmjH7dwIXO4LyyKYBLl7V/jW9LVxLsY86HMxeJpOPHWn0U1FwXPiv9X/76tIvrRVALpYIlua 4vlQNNFy9+PfBdwZidB0VbSz9gZFt4S8+xTMfjN05dFpHtuGY8MN7xC9ZZGKbV2wujOkThGY 8vHFzB5b9cFpVEmptrusNP8fjic57oPRimId8UBvR+vupAf+X6kxB/RY7ddj9/oYyYujz/j1 urxYn3bmRAgMEzH1txBf3LUJ3FG1uy69itIFMBYktq89fV2QvezQWlfXL+NsSNjmZHp6WZGl /wBQSwMEFAACAAgA+WZHOSaSCsOUAQAAywMAABAAAABNZW1UaHJlYWRDYWNoZS5ojVNdS8Mw FH1Oof8h4Mvsk4r44PChzsF8KIKKCCIjS2+7bGkykrT4gf52b2q7pX6gpdDmnHtuz/3onihU DgWdZ9Nsfju7nqYX80k6mU3ncbSHhFDwI7djZ+nddMB60jrmBKdcK+uoUI5+S5Gl9+SMHh3g NfYKLpm1NIMqK804ON5UTMpZrdYheC41Xw9lt0sDLJ8wvoQ4eo2jjRENc3AaR+R9SI8aLfL9 Vr2pF1JwH/Ml5NMHTar26YMJ3l5ICBFKOMGkeOnjErrRWrZRvbmEEPStOVoY+folqNIt25Au iwEJzEIbPdrK6MI/wrhNbcqd5x7NUe1gWM/OnwXjto0bhV1MqO1fh2Yq3cC/JCjqpjvsWUJL cH/08Bch7lEeKn3DXHu+xOV86tuPMPFeda1yocobHMB4B1dCpZ8dF1oFuKqrBZhtNTagGuBB kpNjhBh3ogE0qM1ziBcGfkBZvqqtq0C5bvZYKMJdyR22/TRJCmGsCzf6C4/L/I1u9wJzegdX ixVwZx8OH5F8a4eBPyJgO4o4+gBQSwMEFAACAAgAhEVbOeKJeGc0DAAAGioAAAoAAABUaHJl YWQuY3BwtRppb9vK8TMD5D9M9OCA0pMtO0Fb1HoxoMiKLVSWXYlukB4QaHJl8ZkmVR4+2pf+ 9s7swV1edpymAZKQs7MzszOzc1GDHozj7WMSXG8ysMddeLe//3s4e1z+eQajj69fvX4FAM4m SGGbxNeJewv4uE4YgzReZ/duwobwGOfguREkzA/SLAmu8oxBkIEb+YM4gdvYD9aPnBAC88hn CWQbBhlLblOI1/zlZH4JJyxiiRvCRX4VBh7MAo9FKQMXeRMk3TAfrgQh2vKJpFhKKeBTjJTd LIijIdyxJMUHeKeoS1J7LefRYvsQRHzHJt6ihBs3I5nvgzCEKwZ5ytZ52Oc0EBs+T53T80sH RvMv8Hm0WIzmzpchYmebGFfZHRO0gtttGCBplDNxo+wRpeIkziaL8SnuGX2czqbOF0BdfZo6 88lyCZ/OFzCCi9HCmY4vZ6MFXFwuLs6Xkz2AJSPBGKfwhNbWXPOoGJ9lbhCm6uxf0Fgpyhf6 sHHvGBrNY8EdSueCh47wvD04FTeMo2t+UsTWyhxCsIYozvpwnwToBFlctxTfr63Vh2nk7fXh d38Eh6GiGFyErsf6sMyJwvv3+334GKcZYZ6NAPbfHRwc7B683/8DwOVyBL0BHWwwQKMmzPX3 vO32kGuc3bIo4yzUmQQGeKGbkjoGA/r7I/6QBD8FkRfmPoNf0swP4r3NkYCufbaG1efp/P07 E+k+iPz4PuVoP9GdWMNksThfFG+j5XKycPCVRXh9yhxYkkSCQwHrjMM49/c2HRMmVdIETCvQ 5WPknV/9yrysYaECmsXXDUif3aC6dxZEN8yf4e2qLKCJM3TQ28mDx7Zkosr6Gbs9u04qwGmE ESOMvZsqMt7bh8ZDjkPmRvmWr71+lZI3eHjBM/QGWp6ioh+G6AS9Xq9mqmZs+ABOmI5CFMPu DsvWEdsvnNPFZHS8LChsxfbVDXtcZVaZs9qOAgwMEfmJLPYQZPxpaEpjWUEUZNKIXIbqWuCG wb/wQn+AKiaXsuxd+BJETL7bV3EcdptOdTz5eHlS+KZzOl2uPk1nk4K5F0dpBt7GTfTi3/7x YcUfVquSpn7UncM7Pya2Se6RCw2OWfH8Iy+24Qglfb5+9e/Xr6yKb/C3w8NrJvGWW+YF68Dj CNIGVsKyPIngAN++EuD1K7VP/G8b2uz5LPUkL2Jv83e9czB4Zm9fCpVCT8ia9uEuDnywe+uo a9NjrytBPTe5NvCv3CTqPitcfUNNVitV+viIGGBzPIIPBh5CMyYjs73GII8yFOfjUin+nGSL agaDbYIWWoPdMdFhJ4Wdh79HnT4IUSlZcc70mgQ89qDd6I2gmODHmJkyBJF1LBe96Y7NMOak CNonUChf5pezmXq/IN/GfKihqQyIFUTnEasKBMURE0Ks3TzMnOCW/RVBBvKv7p0rlaKB0td8 JUqmVaqR7jcsYRW2J1R28IiwdsOUs0Z1YYGg0SL2YAp7RdvwSPPYN4h9NX31P9IfhAVkoJjM T6bzCTcIZonDwzC+RpP4LGQZKUhIjCY5RMtws6gzCQNJi5QjqyWDkzYOnp8bUS6UrFRZe2PY pwZPSxCtTg4mJ0Z/MqAIqXoyKUbe6mJFQ4W+eD5YLSZO4cmCpi3uHGxdrJwY5jbpy5KKvK6o fVtAel2Nqs2/eySpdZW1JypvCFAeNQDV3gQt46asEpn2G+9fZtrbPK66VEQ3eSQtEQJ6YoDV nP0m3eQZ1jrRNLqgKpGlKdekQKrdJ6v5RvEVssc6j3iIFzQkEauU76VTyTdB1MJwp3baGGJy qg67ijCn3CpowUW6Ctih8jVl6dKqeXkrKF8VQyVM5YRtgsDbt1DxRPyjIbtHQSSugTaHyY/I th7vCqncKAlEMSS3GDdL4jZERMtS5Qs+luNqJw0Z26IhOwJxMFA6MmOX1lHB+E3FzJyOLU/1 lf6lfzw38zZg16rJt8DUY1e6YzU+WUZ4Kjv4YRGl/IYoVRDeoxyPQdPumtHKsswbZVkFOn9D MvH9sCL93t7e9wiZY8TG4oLCesGkj90c54Ea7+tjlI7wlLQl+V4Y/6qyP+FxQyhlh+rJdh6A Sl9KGDXJLRZSB/qkZoz9hpbCx1Y18MCn9VCPfFgCJllD4dNaR/EiRsTJ5kLDuP5r7hsqJCEA H3kid28MeWQKqFeYrcUi3SKjHegKc/P4riNOLddgN+A7OqEoQmK9W8T2Aj9i96qv1uVeOTnw ndqrKn2WSV/lsqngVAUiuxOWjfMkQUU5EvhsG/YyBqpbS1m4tmtOwrUnMHQJXnIVXurIelb0 03ZbWm9WdbOmd49aLp7VmMq5qhv8uHAaJQwU7Eo5XbUtttHeqLvTfEWuqcSktGDrSQL0KE9K 2irwvzEKUqP8glKlBr/9BsYrnl4TxXTBydaLW+z+WGtJXrtRJfHv8JL42IjwxNZqMX3pOo0b OzU77h6FRfLk5pydn4hmGgNXEaBh46Yg0zfHPzRileGz3LI02ONKhh5phc5tshoCQcW/uEb/ 7R7xal+kUlMAAJXgBBrvHYyrWteT2a7ZlfAHpT5S6vAbAp3r+wu2VndA1h+kQjN0Yv2D3b13 uzWhfehcuNfsM80aExmmO13RAxT5DGrlgb24nDvTs8mKT9yQSBrc5oiETiRNsnaDME8Yt6es bqyWyCUNfepGfkit0rjU0JLz9WFf2VI0oBzwtrBqt9k7SoRIIIbbQxdjPUsS9AGZ1zEizhA4 IZioRSxqXZpyd6le5P2yqqieUtbFbOR8Ol+crapaaxAQ7B2/2yrW12cCtYq9bpYlqwzoPz6U T4fVRT4KeKsRujUMDGU0+PY2NL5hJm4fJMvVGP91JqhwZzQ+nRxzIjTmwThvZALh8mC/1UVg iZpp2bocPg2l4seasNJ9kFWz9Svclf355FeZnr98t8VrxaYYumJhdZzfbqu57+Xu0XICUu5O 9SQILB3H8JR6DFLxQgSY6dyZLGbn4z9NjlfTOZr0bDLHbKKGBc3hvsiV5dxUTBiOxBBBGslk cTyps9ABR2R/7grDlgRc5EgRvisS8Kj9RmS4tJ4eU0qMovvEnEieTbyXWPvh3ZM501xBM4V5 immlW6Ilon3C/pmjd5Yp1JY0CTXXkukEpJTmUIynHmMIJeXhr40K8dAOSbNKSPOC7htBWF+U WhvOl43GpXzQBkVVFkqHlLwL8qUcCi1SvNAcQzEgadRSS/FG5aIoT/RnlV9kW3Ck0gnGI2NV l2KEoWuo1FCx3Lfnbrd44y6jAC0vZwj6qPWa45tqDQHQghcymqLoDKQsrsZ11WnQt5FqVJ6M feaocumcL0YnGK9UACxXRjKv7Wx5TgM+gPhAgYtXuvyJ64A/3W9iHtS2LrUmH3a2FNXE5EIk fJ071EREbJfFax+MuUplpTyW/Ek2wD9AWGNMxQXm8mJJSGUh/uF2xKP0gWbD/OH/cTwthaTI +Qqm9cMX+ej7PLJ4xxjPy184jUNyLbNyr7pgyQPNvRLYKXKMqF0bHI/2hOyOhfLi3brJTall Mc2500udojOwdx66hVK1SZnfaFSeTDkjbO3eYRLGV2UnZSFhsRfaiV8trW56+/lnzmiozfEC Q9TqHTy0NMVh/RByqKCNZ4vln+GgWxlXGTKYNmziJ9f/d370oaeVCy0+x4Vw2jl91d+HG1zL HP+E7lXhYiUx6CsYDw1ofvoEteMPVefH9yiv0F6ivlb1qen9TJmJqniQjq6ZliZSEq+cv1Un jh1c6SaJZtOYStVXSx8lOp22kkp9P5O6KD6n9TL5VIziqp/bFELblM0c0bxkrCYB+sPN9VOT le7wyWENRT+7+MYasfuPxmdWFEdDLEs+7x55G+bdTGvfBMpbqCapdAxC8mHb+NcofMxq+cAc RQkBsLArf4wwF2uzqqLmKn3TVCeD6jhMUDEGB+UFRr8UMXk31gTlz2K0JJVa/PBij1BaJkbV z2qN+wVSCwUaR+Vbe6a+C9P7OPaVt4pl+cVYrQ0bx1i99h8e2OJ3C+RlZvFTzDCkpzphih37 X9yQir9AOeWT3brcqdo85JxKng0UnnDvuqRiitSDOxKnWWyUdynltdUejj38xhlDqsVtJcCF Jqme+VmHNn27dr/tJ0NPCMx/PiT0I345QYIhUExhFnxkUUEvJhfygMXMWEsWVH6IZBz9v1BL AwQUAAIACACERVs5MqXW2J8FAAAQDgAACAAAAFRocmVhZC5orVZtTyM3EP68SPyHKSdVIUpJ Ar3eHbmetIQE0oaQJksp/bJydieJj4039XoTaNX+9o697wRoq14Qknc888x45hmPm3XohutH yRdLBbXuIRy3Wt/B1eP0pyHYZ/t7+3sA4Cx5BGsZLiRbAS3nEhGicK62TGIHHsMYPCZAos8j JfksVghcARN+M5SwCn0+fzRAJIyFjxLUEkGhXEUQzs3HxegGLlCgZAGM41nAPRhyD0WEwMi3 lkRL9GGWAGmTvo5imkYB/ZCQmeKh6MAGZUQLOM7QU6ijF85ThO0DF8ZiGa4pwiVTOuYtDwKY IcQRzuOgYTBIG24HzuX1jQP26A5u7cnEHjl3HdJWy5B2cYMJFl+tA07QFKdkQj1SVAbiqjfp XpKNfTYYDpw7oFz1B86oN51C/3oCNoztiTPo3gztCYxvJuPrae8IYIo6MDQIr2RtbjJPifFR MR5E2dnvqFgRxRf4sGQbpKJ5yDcUHQOPiPDP9TAoLAjFwpyUtItkdoDPQYSqAVvJiQQq3K2U sS+q1YCB8I4a8PYDOEiJQhgHzMMGTGONcHLSasBZGCmteWUDtI7b7fY37ZPWO4CbqQ31pj5Y s0lFlcj8o+UplZCoNScQkwQdQLIHXsAinYhmU/9/iZ/2/YbO/JWPcy7Qr9n9X1znctKzz91L 133/bf+8/eH9e9f+8K7vttvnx6599rbrtujXbdHnSavtuoNRd3hz3jt3DwksAYL/hZNF5V5N u+7PvQl8+h7apErStWSLFYNQeFSINyioNYGSt6tpECgYcG8Ho5PjIrI0qsG5ZcUi4gs6NWg2 7GhMes6uCgaaQZmmGynfY0GQhVJ2O05gploivCD2ET6uVVrkT8/Gk2676vlYNiH361VXKfDB 9FF4SxkK/jseLQ+e3zF0vZ59Rk890RlycY/+kG4Rs6H/DNVS3kWd7FuDVT4SuIrolvFC8APb sAQkF41CHzvaBd1ZsafA4Sv8NRSJrOwWTpN704PS6fb3/tjfS8Sn+3tWolnzQhEp8JZMQt3H yDvsvLzXyE4F9RmTwqhuuFQx3RR/pTaHJhiTcMuyIlRZkJDC5d91la4MTuGrblkLVLdLlFhL XCRYa0ndDZWgAjbDYEenYkVU8Iehdx9BrajVxyTY+if4OuFN1IDSblEerRHlX1EZ2AuQSY0M Na0Pda1XVqCzv7YtkQCi6hGZ709wXhF5FJ7CtKw1LYRafS4OzbJ+2AAjqjO5MFbNZiUTOmMB TaNKkhZ6FOnQasVBKZckKGtxwdUOAyRf61aoHFMx+aQsCVdeiDUPNbVXBW/KrDHSM2IZ1HLS Cdye5bxLVLfsHuM11Zaidx5pcGtBl/ok5SFFp6gNirsgv3hAlXJahzWjIYY0PQx6apY48alS WQmSbNV2lTYs4DTW0HCtsp9yTZP6tZ57oq15W22pijtdrd4DV1f0cnkwR9gNKRb/RitP9nSN Hp9zz5CGvONDWjCgs8X41LJ0oF3LsjIJrV3dgVbLQyoKqukRr1CoUpFrFEIYEBg9Eeax8AwF U1JlavWcSpf0+AySO9EqTYhkc+AX91uk3amcaMWGlgt8UB1aUEeBXmd0oUfiQbrUd+BBxYia LpT/2eq3GGN8wWpLIwGMAtQi/ZTKO5ZeDFbG+oQPetVJUCSSTaTM8KUrSOnOeNU+6SODQHI9 aHRkM23NxSIdPJbJdVqIWRgGxu2Fvk7Q75Q3qeYnxxajSm2SjtC72rdGDZ4TjPVoFotMrEch 7UTFVLSMQ8taMXmfeDPEsiz92FajeDVDnXo6vH76+TiLFwuuHx6l0UKIpVus83Rvq2dOIc0m lTaaszhQpXlrFeOZDD+XZzUNWRkqyjD6p9WWgbzXsksNUv7lPZDmbzByepPhdfdH17kb96iV I7rUYtMUfxrV4v32xd6ffwNQSwMEFAACAAgAnFwrOUsIuG8BAgAALAYAABEAAABUaHJlYWRD bGVhbnVwLmNwcIVUW2vbMBR+lsH/QTQwZJMWtr3Va6B03TpWSlm7jT0FYx3FYpocJKXdhfa3 78iXxHLs9MVY536+75NmUnAQdPn9083bN3E0k7pQGw703aPUvHq0J+UCraC5FHHU9//KlaqK xt0Zj+5LAzm/UJDrzfqkPPIp91dfLs/fLz9f/iAk8J+eSp7FkXW5kwWV2lFRVfSMDoO0dDJX 8i+wJKsLhv7gyB4qyZM4+hdHpMw1V2Aslrz5en2NuWRtZGXwLHC5MM+XJhZcaHWltN7zNNL3 ebJxcbBmPcO2qF97euFd0VnIE5HcI6XsuWeh7tQnqYm9baC/84u7usfyJ/xZFvjngLJXks9r ZMJsYsBtjKavuxH9EMMZDaykdWCuGoxZ4P6gaYv9nPrklOZm1WITBNLUBcdJYvzCgrIgGgsS EliOFznn3UTbCXzvUQrT4VL7zafxb0EKF08TT8lHcN9ytQGGuS/xMlWm42sFzq6hkAJvyKDe JDfFviIFqj7s0cJE0xanrKMMSeguTlZD7PP7d6n9PV5o+O08OYSlW5vQCdseWuQJEQagMzeW pwPz90gcykroFxQ1XAvnHd0bIW4eMGbxnlViNCipZ+3t5gWqAxuOgUb8BlaPTB/H8DHqED8A wd6jMRDug9fXiDARDWXvdvqbt5FZq5poT4O7p8HupDaWibP+B1BLAQIUABQAAgAIAJxcKzm3 B2fuTAEAAEUDAAAPACQAAAAAAAEAIAAAAAAAAABUaHJlYWRDbGVhbnVwLmgKACAAAAAAAAEA GAAgsOA3JBTJAaD3mGIkFMkBQLqT4hkUyQFQSwECFAAUAAIACABKjy43/Z1zqkUKAADRJAAA EAAkAAAAAAABACAAAAB5AQAATWVtRnJlZUJsb2NrLmNwcAoAIAAAAAAAAQAYAAAmtlwa98cB UPBn+R8UyQHA0Hdie9bIAVBLAQIUABQAAgAIAEqPLjdpPJNh1AIAAOIFAAAOACQAAAAAAAEA IAAAAOwLAABNZW1GcmVlQmxvY2suaAoAIAAAAAAAAQAYAAAmtlwa98cBIKZbGiEUyQHA0Hdi e9bIAVBLAQIUABQAAgAIAJNlZDntK8NCMhoAANBrAAAKACQAAAAAAAEAIAAAAOwOAABNZW1N Z3IuY3BwCgAgAAAAAAABABgAsF1HAaU+yQGwXUcBpT7JAcDQd2J71sgBUEsBAhQAFAACAAgA zXheOYIrnQxgBQAAag4AAAgAJAAAAAAAAQAgAAAARikAAE1lbU1nci5oCgAgAAAAAAABABgA gADa/Mo6yQGgxBhXlT7JAcDQd2J71sgBUEsBAhQAFAACAAgA+2BKOYirfXS0BAAAKREAABIA JAAAAAAAAQAgAAAAzC4AAE1lbVRocmVhZENhY2hlLmNwcAoAIAAAAAAAAQAYAIAmJrv6KskB wMV8Xv89yQFAme59jBLJAVBLAQIUABQAAgAIAPlmRzkmkgrDlAEAAMsDAAAQACQAAAAAAAEA IAAAALAzAABNZW1UaHJlYWRDYWNoZS5oCgAgAAAAAAABABgA4LQf7qUoyQGQ8B9XlT7JAUAo 7H2MEskBUEsBAhQAFAACAAgAhEVbOeKJeGc0DAAAGioAAAoAJAAAAAAAAQAgAAAAcjUAAFRo cmVhZC5jcHAKACAAAAAAAAEAGACQHw0VOjjJAcAVmlD/PckBkOOKYnvWyAFQSwECFAAUAAIA CACERVs5MqXW2J8FAAAQDgAACAAkAAAAAAABACAAAADOQQAAVGhyZWFkLmgKACAAAAAAAAEA GACQHw0VOjjJAcACQBqdPskBkOOKYnvWyAFQSwECFAAUAAIACACcXCs5Swi4bwECAAAsBgAA EQAkAAAAAAABACAAAACTRwAAVGhyZWFkQ2xlYW51cC5jcHAKACAAAAAAAAEAGAAQ3Oc3JBTJ AaD3mGIkFMkBIBKi4hkUyQFQSwUGAAAAAAoACgC4AwAAw0kAAAAA --------------010606080002030409010704--