From mboxrd@z Thu Jan 1 00:00:00 1970 From: Douglas Gilbert Subject: Re: [PATCHes 1,2,3,4,5] scsi_debug Date: Thu, 20 Mar 2008 10:53:10 -0400 Message-ID: <47E27A56.3090805@torque.net> References: <1205978959-30510-1-git-send-email-fujita.tomonori@lab.ntt.co.jp> Reply-To: dougg@torque.net Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090402010801020405060208" Return-path: Received: from pentafluge.infradead.org ([213.146.154.40]:52113 "EHLO pentafluge.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751728AbYCTOxc (ORCPT ); Thu, 20 Mar 2008 10:53:32 -0400 In-Reply-To: <1205978959-30510-1-git-send-email-fujita.tomonori@lab.ntt.co.jp> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: FUJITA Tomonori Cc: linux-scsi@vger.kernel.org, tomof@acm.org, James Bottomley This is a multi-part message in MIME format. --------------090402010801020405060208 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit FUJITA Tomonori sent 5 patches: 1: sscanf can handle negative values. 2: create new scsi_debug devices at a single place 3: remove unnecessary condition test in devInfoReg 4: use list_for_each_entry_safe 5: remove unnecessary function declarations Signed-off-by: Douglas Gilbert Attached is a gzip of my own working copy of the scsi_debug driver as a patch against lk 2.6.25-rc5. Mostly additions to test new options in sg3_utils. Also perhaps we should look at using the relatively new NAA(3) "Locally assigned" designator, especially for LU identification, rather than fudging NAA(5) which is supposed to use a registered IEEE OUI. See spc4r14.pdf section 7.7.3.6.3 . Doug Gilbert --------------090402010801020405060208 Content-Type: application/x-gzip; name="sdebug.c2625rc5_sp1.diff.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="sdebug.c2625rc5_sp1.diff.gz" H4sICOpi4kcAA3NkZWJ1Zy5jMjYyNXJjNV9zcDEuZGlmZgDsXHtX40ay/xs+RS97NmuPZdDL RobMbDzgIZyAzWLPZHdz5+jIsgy6yJIjyYxJMt/9VvVDb9mGmU3ui0wkS6qurv51dVV1dUvt dptEduSaM2e6uju01a7aCe3OnirLRlvW2opGlM6J1jnRjw9l8Ufasi7L+61Wq6pstFQKxfXO idItFf/uO9LuyJJBWvT43Xf75M+ub3urmUMOKF8vuLtz/bvD+4PSI1YlPthv/3nmzF3fIeOz 8aV5Pnj7/sL8MLgdX46G5EA5NJSD/XYUW7FrEzvwo5jY91ZIXmVENx+dMHID35xZsUNekwMQ /1hWZP3gdL+1hbt2sN96PndD1hQNuJN9cvSK9GczNwYKyyNjx48cchZAQxv98VmTvDqCtnMR hiOzf35+OYG6+1fmeDAcD4i8Zkgea1KXtODYo0imhcZM5kn/4mJwbv79/eD95fCCyFivTH4j 1+MLc3x5fXM1QBJ+Y3R7PrgFaryDAmRQYNyu+5fDyWDYH54NzNH7CUhh6WWiEcg4ASa3F3C6 uRgj2X6LNvncmVsrLyaPlrdyIjIPQjILXUCKLK3QWjgxYJZr+/ngnTl8f21+PxpPCCFK+cnk YjKmTxAORdYkpUNaitzFM0ICnUJIm1jED0joRMsAkXYjErmLlQddMyPuPNvLoxuQ/fJ6gO1D MifO8LgdnI0+UIwGt7ej2zyfwCfRyradKJqvPKjLmhHLn5FPoRs7nAcBbVks4G5UUWuOOa/7 cL+dVD657Q/HN6PbybMrb2+vPMc8qbz10solXnOL17wA1W7BwAa2iP+zBQH4KIQ/3js+OXBA Y55MP74/IN+COsd405qD8pCDNsk8FNWc/L8a/K9RAzK5h6tPrueh5Y1df+WQFZw9EgULhwSg DCGxbDSsJLDtFRiUhnN4d4haQlaRE1ImKBb4GNQH5xMzR6TBysb3lg+WhIBtUpokDlKFIo+u RaKnaB41qShH1OaovZ6kyKSlyaqkKNTmcM/wGLgzYpqu78YED6bleebPK2flzBr4rHmaJ43i YLmBxvVjRsIem/bCnzWiOFzZMfM7eAPahico1s4Uc/2fVy40wnlczkxDa6z8yL3zocu427LC UKKEyyCMzbswWC1Ndybtt/f29qDb8ElshXdODL7tEZ/QW+y36a8WCWXOGfLnIGKOHq5Nz/E3 imjUi5gTBJi0Kpg8s5ktKnxNK71V0khGl2sje5o0MbnkLawVbkMDdxOuoBizwLRhxMWOyRzq PDLnrudElYoGxKGzCB5rialiayxM0zo6j9P2Pu+Tzxh6MV77baqRacRD9ZKP6SrFHJ8t/ViC 2n3HnK98OzZjetHMwgS/vwZH8ivIW4DYXswgECsC32Rc2m+QJ7R9j/aj40vk4ZTioBsUB93Q JYWFWdAjThhGcQTs7HvHfjBBJ1gwB8BGEOGcUqIp9MgD/fkZu3HmeNaTCbCHoTvDmFChzxJW 6JegPO3/+C5e3kUN0UDn0V02KTXn2dqzraguMDvB2sCmNmpDsj+B4IvZT8rHJgCFGrZ4MKlN Nqer+dwJG7RGiVxeXQ0uIOq8HUAIOZ4wbdzbuxx+6F9dnoOlPhudDyQio6rvgkprL9OCelRa JVboTSDsixJIlBSVVgZpisrtoH9uKt2T/LVauJZP2GRE1dButzqaIamy6N8aPAqeX6K0e3uT 728H4+9HV3D7H2eDwfngnGGyk6YgEMTxMB6BLnP9/zTj0PIjVAPyzTekIZPXrwnj0tzSXf23 4DFBuLPR9XV/eC66K3WmN7ejt1eDa6A8+8Ec9n8wJ6Ndu45qMSlCfQ39z+YkJ+VbFOOShmMQ wKQXfckMW65D/1tD0doExdXgbFLfas+x4woVpoqoHeNkrtNVRBxRrOFqdJFiXeAPUVUe1P/Z YI7/OTz7/nY0vPzXwDzrn33PmlxlKyh0hiIdk1ZXESkFFo0Q0iiU+BtMF06yPos+b+JQzXg2 UnBsbmDHXs7/IC62Q17BmTltsKaSCPgwyiSvQKfrHdvLOVLHRm17PmAeji7HA/JNVuxgCT1L 6feWIbB8aPwwuB2al8N3o2w+5YRQaU6wxtfy+i/r//APJLwQetmj/q+ryjzLsAcz+dCJVyHE yYPhaDL55yk5OoK4KAxBu8Wj6SomqyWE7TDPn7nRA53XF0EuGvd6H4/UoDIQ/wS+95QEnKKA 6E0Ijfx5wIJPUP98B7y8NlDSbTUlHUOv229ocQ7/M/qLQt5VNAq5LkKvzzxndEuxjUCLgWXw wNxG4/xSzES//ZYo3eYhGSPskc3EABU6RPSzwEO855nzMFjQlvDRXoEH8JBIVahKO4DGSnBF o9081l9cAcnxZujCnQcJOuZnkwZoMM1jP8QVBLNoQeioeUUerNksZDrc7XQpoMYx1+EioBDf T2GMBXMyfYoxNeXEoC0zFCIgfwUx/ooTQpgWAu5gS4KwjCiWMOPgiwAl7A/5Lay1WQPtl9bU YhWVaqkEmR7mrl8DbA+iJ5W0jtWO8FrJXCM3UYLZj/no+LMghMkL5kOvYOq+BikOTusLLMNg Bs3iJdKhwlA6OK1O8WZLhs4jFpVlltbdjbyc9D0t2K0/fEKd5VSYV+eV5WVT4goJQWsy2pnO ip8xH04VjBakVVrU5WPh6U+a+pFp1TE4cozJj/U0FgJJf1I/Qu/IaxnLLJyFvXxqfIP39Y9S XsEkYjSLRIrKqVKtktBaghbl6FTjo5TLXZTzFnsgP0gCFgUYwCFPgTFNiWEGmFKSoMguR3DK 265h24EQr5G+9ZroKAp3Obw7yBsAiEVz+CDppuQ+eCMwe8N+v92RyFVw59qWB1YCU1Qzx4/d uQtmsDF1fSt8YusQe7R64NFqMfiVU2TBSEjDD6A7Hcz6WaHrPZHIimrKabTczeWH1zKCIBHf skQW7VjVaRbtuNPBM4vhiuW1093vyohN/m4OpjdE1ZtbaUA9wEfL6/l8K6lRT5khFCStIrNM T3HRNpNkJdtMadQTpnSCgqnHhI588AGehT6VjlThIiu7tst0AkZWHLwGDZCEelRS9/REExQx +6N1oNvxWG1CLzo0sj82VDgldiBtKbMhRUDqqYxaIk6T9mE6TCaphISayOxYAUFbGcxqicjz MCtC1mHE7mMBsqSuymIyt6fHOsQ9LUPuiBA+j0/O0m+GKU+aEh29om4TxvTCwajc9WFiwTHh c5s8Hu0SHloRj/eTd22jktYyKuBg1UglOSo5yDgatkiAs2YWVRK4wMrkZkaqUnk1lUreSaoS B1kwQH/q34GfxhCaKKT9BmL+6ROJwTjKx23ZUEO5osdVPeP14Ak4E+pqD8DUHnZU+ifD7E5R mxk/oqhcTXpgfDXQEzVdPoU/aJgqZQ8y/D+d4pUEkfTm2EivCjk2xSg1BajrShsGU+PlzNBx dd2SSOT+4gTzRnqLzuj3+Ey0/LRiup+XuvNcqWsKZAMe7GAa7GTjJd9SMD69j+NldHJ09OnT p8MHJ/Qd7zAI746AdO7eHbDeMbQu651uT1Ly00KqW2gNIvLh5pwsrTunOD154frKhibvvIRR xbYKmKSkxWPDKY5RWnh5hzfxNKXbJ/a4tS7aoxbLqbPSqVFvsaQyZSPuCvHEg2nxAZSS1wa1 E1WGlWVBIid8dOps7w4krGfZSothGCJ9BYoeOXF2BINB6WbHbLdkmSm7gp2DkY1CQBh5F98D fmCNIjt0l3HAbfARqqDV7uRcSjYS7DcrDBXO+IixkXVrG2tJ8P5Cx6jVxhLgvXfsGNoJXR3T rz1cxu38rqEGhark0qUa7Ck+bCJWB1KpBEQPaYnNIUSFSyrf08v3drjTYOOvGJLmwwtKkuD2 lQYe7d9jDCFbPaUnIsnfaZA9f+yQ7cPy7e8ydChuRpeOC03bNC6mO42L6Q7jYvp/c1wUoakY F9PcuODBDcsIfKZd1dM6uITZ6vUUSWN9BaFa/X9rqwMHmGFtjeJ6z42HagpURnG9chTX2xjF 9XJRHEnEyFcJlD2ZUv6ECP6aDIx2tHRsGEc2zH8JTeLjRsRxf0z7GahozK3DyMRcMNwEFBWp m+CmS8y+eGJYnkCATlVEXiucZo/Oo2MvJLa1tKaeI2gA6FY9bj25Buhf05ySwI03Losbv9Wk 2YMSbuIpPPyMQiR51xJu0yxuzBxVYMKwgMdMmXQ4igupq29VqmldW+vAqStQpVTTMjhTOaNU mBzjSzkRWF1cmrXhHJE3OIxlmiqjQ6or0/y2ImuKpHLHUUJ2Kuc0slYfp0oW11Y1rmvNAjR7 RuWYRSXbNKR/B9LNGjxVdtdgDkeuk5RNGiyecg0u73e+Gg0vzMvh383xv0ivW3p83f8Hfdq/ vUWKjqEXFJQupfPm1K6ppNMZloZ/1hrks2vgafedlh/zyC9/NpczunOjokdO+YZpRceoSFHk ZHWXp+uETzOOT6l/xA0MbGa5DDzXFqm9ArHBiDMT0kqyHiPrT/rUAIcLi27YpEa0QNuTT1OP Toqm+0TY7VIdU17urRfYD8RzFy4I0xi/PWtWVjNVsuQ8Y4VwWXbshG4EHZgpLmpjSXnSJvrp Hi2eriNGqyUCAKCLKbnAIrPbByeYuA0DN2OpuBkLedBsPASvruXlk660SgWrZPQYvkUWUD+J YE2RVZXtgFdwCaWTbGcqLJZkVyPoGkRJLK0kViGLZyddtlWydhat4tJZIlPFUhmucRXWyTLb MQVFqTGtqvq2VMd2tOzV18YJtiOnl5AbB/P4kxU6OK6dcG4JFA+/FD1dNGdjo7NUJWk7JWmv LR+UdeFgcsaJPwXhA8H1XieKnOhLBe7sJHBnk8DdksDOOnb8GV2sp0x2EjI3gsHn2nQulA7f eeB5wSfM0wIQocuazoaYrmL+DYaYJkuqkTWaOs8DU14zN7ID34e4oh06/BdZLLOVd7k5ZDPW hbeC6UoENkdMbBmVwZfdYNKYGEI78HK2MAO7InOuKqNnbJfQLNyE7lo4yRRLLK1iGa1Y5tKc gBqsV9XGyyjrOlr+m6Llf4muGOlYLe35rlUd41kDvEq/eqUmVXipqnbx1XFSbJ5falmvMAr8 YiuKBJZY+274bJpYgABus6lhs7idFP1nqUFbXGlrx8ZViQ4TmNzYrRKd1Ile7ItpWfRqb/6c 7qjWtqm8i2UqUuWlVXLSUi47BxTPwbxaNKXSaNIFfxTj0vOcOwtfy/l55UR0i9uj5bkzMncd D00nsWdTgeWuu8GZPTymiVNFOVZF+jqxhRVheZt0xASMdm/2lUloxwpqvQ+i2A+aYuW4w+0f BHTQENuz3MUJcRdLiEIhUJpc3HCtxQaLJW5eRs2VcdaFMiRrhfP8r1de7N4k2ThO9xvN8gDh 4eGhoBz49tgJH0nD8W0viFbg5zHzCN0dZZJ0x3zhMlvH1eXwh8E5aZGz63NANPUwPbpbTVHo OTvlhFPF2hV/cYB2bOWuRpxUsB1Dz5+rbOP7kpkJlETNqpia1LyjQbcyshc0KEKK1qMIqfSc Rah63yHKSWedPGarRBCuwWPgK1abMXzmrtMdeb8Ix+1wiWW1T05IN19LfMs31gciCTy7MsOz K2d3nBamz/jexFn/RkyfjSoltGa2tRm/l6jgRq4vQQ6HZGWrPuaUku5RtpaWLXDq6Qynnr4d J6UrkNLUWqiU7hZlezFc9Zz/baq2DeMEEb7PT1FVZuk0VVi6ypzN5GJyczEWaCq6olZbwOyr U1uG8ItG8U41/E7oZrM4OGxx95yisR/UIGJopu/oaqlIiEkmJ4KPTD8gfyEadVr96GmxIBZ9 wZdmjtkeg2IxeS2/yzo5y/MYdURwCpymRajPLhW257sWJtkYpywEk5nu3jkaLWOIGH+Bcksr vq8TW8nWjPv+RX18a/lRkGMT1bRAnmX5vDfH728kMsYTfRe7P6I/WQPEClh2kYxNWWqWkDML ZYJOUDBNOO7SfJ5Gz+lq3Q6r05Vr07ln2ilfK8P5HVn51qPleri4kdlhlaBglNAUBbypwwGs UIg8E2czlMMUyhoYa1YcSzBOqylk0eLbwmoyzP3xVYKWosO5NkaDgt9++y7JJKQpVGoQ7GDp ih1e44mmGHpHufoR5EU0y+YN/LaJiYRHc3lXyrHzpPES34kPAy+bQq4yZC/nxdbRbsHFtH/E d/vJAN+GgBs2vmT1xJqH62npa36sg/K1ZAVgyyG4doYBMh5sWSIKXKq6TBfl6b999q5lh11C X7HjZ675mipTzdeVYkjI1w+yVdbGgGnS5iug/AXMYLaLOJ+nOaTbJIe0I8S52gXGKoLm4AZA gx8Q6gLEJIN65l+CtKYwpOFciXSu5lqoWULlK8D8QkYAcbL4/46yELP0OoDFX76apHqBsYYY K90KDFMWG/+q4efTbU3vMfST7yeJv3wnJGLVdoBt2fdglr5CD7yUE9fyM1Z8V8VOaxOIoy4b FHW9YB0yip27mTsacrasVOiDRO273MB01Wq1T+WqhzwOPXPxNRB/GSMBOHuWcUg7oH6fVspw x29Job1G80EXrksqz+xJWa0TSA0OqaFlp1MVS7KO/VVgexkf5vMu0xSw5ZHB2naW+Dsi9svQ FLJkwFRs7gIpnDrV0HpA+c01OySY9joM016NHxT11udBrMiM5l8F7xezYpBjQno8vskg2ybR PQafrCt2ADojQRJn9CSqrMwodBMIj/Ewq4AUYzwVN4F0FFXStE2KitUt7RnUFz2vydmJ6bZt 2F9aU6v6JcQs6sv7p0SvMdSmLh0/1LZJydsV2DMRU/A7FHyFq25X2GtmOlSKQskFrmmAsqYl DdY90Ibn1aWTFmnoBkCjNcVikKgZOl5L3oqlK92RTWSebq+QhgZRak4cwgnXHfYwe8xoVOaQ KUIDXyV7rCqiZIqoNRFCQmBQwXq9TUQ1PNIeULb0QA4vJY9Xtuwfj5f2b8SrgINKGrETxc08 HGmHsThjrVdhWQ/HzMEjflFNXk/pb2eeLbYzJGmRzc0RkFjWJqJ6WD/XvdFBuE3V6XZspdMx qt1UdkBvdlX31m5GsNZB7c4g75b4Un15QZ4mjailjFZT8TZOpWeiVRctFleWtS2lxpF16FZl ZNh2dEmh4B4rUkepQ1dUnqBbkXm9Zh/yGf+LqJ1uHX7qcucOEPi1VepiNnmTKgvPqiripQmd TGNNau5xLzRR8acqf4nRR+wz48LKjNzC8H3ps8wQtfIDNTWvG8wK2pTfS0C5ZLM22qbULFa5 hz8K2dLO5OKXqXbd+0l2WEYQu++geFaHpdxY5DfZxlfM2NPdBJmRsyfeV1mCPrOwqao87kWs 2DyboxEbwDeOd0VW9eJG35egtOuncwrJqynuvvOmlkW/cZALZeEXqhyaVvZrOhOfXdiJUOIp 2mKVIBdacOG4HiRcfghsVmTBNkSA4Qjm8wi/VkZvi8XUXCBduVizPC3Fx5kFshz2H09Lxo+v 9rxk3YivADVqv6hHuyz5GFmzyZ2IwXe+dzUl2UlKt1jgx7ookOLFzQQmuCFwIn+j21j0j+QE 6safxx/x80RGk/xGnxgfxZc3+EtYVKWr4Eg27IOlzw0KzOChO7EeMXvEPyqN36MorBPtup8F HNOHy+GFedO/7V+PzfdDXG/YJ6lb2eMf9eNjq/5TeZ/ZAOSv+winhG+avSYPv1C8GlVNlcjF uxuzPxldX54lluBPfAd9Ui9+74nK/H7AvviEVeZfhAWdEB+iimbTO7rOBz/ZSazstfALt6/A OeL7Di3aUFGIvwb1CswAPmwTjb/kD51Fzm9G7973ydRlE3D8ule6PbKjs/xDN80//Fd7194j xY3E/4ZP0YpEsssM0I95QjZSLhAOiUC0CxfpEGr1zvTsTpgX0zPAJuG7n6vKdttut/sxE3TJ HYo2uzO26+Gfy3a5XMb0CC8fv3woHU9PIGQT0qN7+eqodi+J7JM/Pnvy/HH87EX8w+N/FLvp XmU3kUI9Z2q6K4iUmyzSZLXfPOIndtnH+W5y7Z2gUaGjU8xZxyaXh8bhCKaK8rbq4QgbZ3PM k8ZPUqXeBpRHOMBUKCIBIBkbuIvIU8EYefLAm4FEGVCyzeTsLKB02JC9gC2wumIT35EbeAqD Q4sgDCNeeglPMSug/OxbD6PyeCRbsXxUXt7L12F1I8k8La+o1rMe780a3Vndn4UOFYxiDkLF ppHEbOmAB+dcSGa7/gAzNJtpn3KL2R+FGAg3jEZ5GkJEpSXolDcf1moeGgLeOme2bU8CKwKc jaRllGkfhc2sJNGxkZALeyuJevCcPHQ6T38SOwCcbfkJTD4qBr4PWXeZUtk+MQylVk1Wc09Y kdWu2RHFgGJrm9UabqMyynapVZReaQvvwiNaDOr8bx9a5r/PFYCZ0uMQD/9KUwEMMbHikfGq GEvPBb0nUpQGkD8T0ncEw1Eg8nco5U9OZA1mic2ghTw2WCuWF/jMhKwXAbmcr06UdS01J+/b MQqt69/ucO1A/ul3s22awrJO3YzkoRG2KK+fKHku3syzR3ipSXRde48llRnkTvXmsV7NaXVq xNfKvCebGduYsCY2bPOw5NsSsT1Zz/BL9mNzJVLAYR14JEXsYLJ887EE+ylgNh7h8gvSWeh+ tdLVqtWztkuXm3hhO7cpXtKtU8Gyx5M1hDcn36tHwg0Gf7LpVDn3kq5Ms9igz91fQ5+rYNjv 9iPHEblkoNS/OE8b6QBnIvBzllWyp9j53X6aIRoC9QC4fjdE7w+Ec5B/Cr4NRKFUZNfr0bm4 xQWPBRv433n5Rp7m8pMK+taoFVla6pWU7VvK8kGo0VFrh1JzHdJLqfL4odGo8z+tv56qk65+ rAPu0yJH4m+V7Z6jnNpG31FObWNQKPdZ2WRbs0jlX7sSR+mFCvmj5J5GucWuDVTNIyc/xblR cQG8CX0jFpPSPWpFAkfKIb1kWB7YqReMbKmH1BIDdJcrzF3amaNygVGulEMqHhrFy9ik0jmv l8VilnMiqWvh2rREfjSbnHj5kqlJG2h8fhLRAsMwoNOXcdTrDl3zD6dhpo3Qbo3s4k26nVVM KPyUyT6VbGJfEQWGizqPoMlSwyzzyYOXIqNJZkRkgbCU6OHwdX1d0QBOZ+VfD4ZVDQxHzgZG 46oGxklXUU8of4xM7UidCLaBtlI1slfVA6Qge2JepVerM/yqvvCdXSG+dVcv7Qi/qh98Zzf4 Vb3gK53wuegDZ0gOqpAc/V2Q/H9oNIRGeAg0/iLKaweKKrGcUlUJ5ZSpSiQnHKrQkIOBn5NI Vy1MhQAC1fukLdrElJgv2MQn2mLNstiQ5QCDyvXvoAHtoEA7qEk7sNIOG9AOC7TDmrRDhXbu 0fFFKiaLP+e5PEsucefkbxaVXtbzSv819+hUkmvgvdlMuPum/LBZcZIJRw3+IQ+qK86MjdPh 58rp8Jc5Bs4POqkOZso9+JSxU9ah7qNH45yY4xJW7+gaZx3iiTftcMcQwqfZRv9Q+GIhqzyc bYc+26znj77JG5NGbij/EWXzg5dHlfNKvdCUCr1Kl2zBnuwgDYAtz1RAqT8hhEwPF7MWHmNh QHLWgX0AnKGsJnYGwtmj4klLmp+02NNW3dYfKuSnNtOHpizwaqspOzZjOP8SzKbaO9Ua7siG g9FDu/hq+51C+7pjjdOw54UpkqQD0qfpislC10kp+4am0Qr6+kZMMuDrRHMFhjPLsZfSGW51 is2qVZmE4CE+Fhf6EOrXsyZumxEeqlBbCvcaSC5+6DdDd1kDamcVkF+vIcqE+xRTuBabOQns aeCsTYXupsLTsvFo1W2LMUpdPhqiXyH0h2E3Glr73N51FcP+Xm3U8kUGv/lcOabV4op9vWfT VOFDLopLVXUhWaWAQ20Fl+tvDvCORYlWg9sQRVJ9ZQuDAlbqlfRlAiWvCkeu9krExdco8wPr o53Ge9Wn8R69nKvsAE6gX3loHMR4aIE538HDT0aoTnR66tE2mR9Ai8RG4iP07ooK8tPqCVFG lOChtBKu0Eg/5epBSzjyIcCmEwZBJJOWQnfB0TQusa3pXq2vfMqEKY7HIOWqerFeXfEfl4m8 KJN/L182a5ezpTkLRdK3OzVSxujubmxtPlskV1kh980lJC/rYoqC+HK9262XogsGQ+qCoeyC 6hRVHyEm7gBFH0XTLZkoUfXxdb1b65oeBwT2MOyXpcg5f/76hUiOA9c0ynPjLBjFysw4rfPi uFpvqChgXG6gRfwDaz+e4POsrDs2G3hDBEHARvxH9h2ka12R1kI/wBiAMJJaE2/l/ALhkbv5 Mt16V2s2Ca1nM1oj4wPyEJLKfp8w2ulUe+MT377Eeozx3Ta+TlbTBTNkRt+upp9yDUGd252a lVABupbe79N9Oo1hd8+0+H6yeVQKJpKaYm/DqC/uU7Mt8HwV71eArXi+fc+6C9Kdn3zNm07g 7U/EHTVU8RJytkg+pDHFL9teL2aMmwBpXLvpC8dg/d3vGyt0vW/v7D3x33fw0jHXXL9HmhtE RtiMX0cj9FATW2631kqdFiwIMceRuF8XQlZGFGhkxgGZAiGwC/xMGVC265sa8hDIWzRQQxzv jBYEJ2XFTllL5GqCxPBiGIwwRUbY8+V74J91mV1UYaV4nl6VMZ5+yEUva+Z2p147Fg2g14wz I31qj1yKWm/SVcy15b14/fw510LQ6+PE0esP7YlCqGwRC+ZSzd1FdAL9Ls3f5CbjnU34E87Z exMrbQlYGnYml+R6GHA0jGS6Gr6c+OoNPHfelT/e4svnSAmpAAX36E8u2bxXupgoH/NV9Y5v A5Eik+9UoGNIy4reODAWcBevf/jhycWFW/DL+TrDcEQrvAHdCAf+JS5tcvBfwtcevbgR8wSL 8x3v37vQ9+Waq0HYc1C9zS8GVlCXjn42X1rc7QxfXI2hjxlMwn5QZWYNBRJbMb4S3wJANas3 mTHCgBYP/cg3RKmHiH3WWpo6dd22UjWV4p9LbvxV9GE0JMH75txfS3Dkoq3ktSo3mCYay97n sg97xjr5HFWQefjk/Wy9Zwx9A2x9Q/lA0kUK9+sgDTeub+/TXn/La/nq0hkVtltv8vXsyrrZ hf+ZqqpdzbnRwhlEiDykrUFfZlcWIj9GoTLvBKhmpyQY7BDwagpx4U3WyyXTQFbYGyCrrCBn 9wQ+LKySrGXqsz6m3hoEJuvPMLX/Yv5bmgm25yvBMlvkJzcFfuN4js9+sx9utnlJeOfHVrQ2 91EQEffRsXYnqhyZMCXzxTRmM8QuK8TLsVljUyJa7drqWIRyc3oSwNtshLiYVzlTj25//v78 1QWENb4VmhiA14RpYtQTk+9nm425Tqf7BVp5a/Jj+F+tvN680HS9SmPc5rJ5D/7o5raMnIv0 ARvcuyT+dT6bFQxXHY4qmeFPGrXiR66M6i6NwPWJFoL8kPjwV05AvPMV9gY0tIbyEVb5PBpF GFGTIMibsD94qyYQ0F70VehDYaGlC/j4n8xIQ5FrBYZqZW1qcNYmGOKSb3ai8NZVV31d7wMz BIDPO5n35k72ln0LOvgKr7ozWxEvL8/usA4DRZ3BCvgreqeaq/VfT84vnr18wbfIvSHmXA9H vlgxPtCk3WzXE+SBzUJ3vdcZzA7gWkm96XYON08n++02Xe0WN951Ave0vfXHlUyxCxeJH0AT D6BJaOJB2YQrCVm0A9NgN1+lzcBHRH/dxXGJl2sY2vglfnpDCH1L+BYn4W2+Wu8dc/ZB9OUC VOPDK2FBrkPpUuAanrNMr+bSI7bezvGGEKvHTUs/HOE1s3DUz6/t8+UMudK0fTCiQBmqi+Qm zq7XH4VofJ3Je5CN4OlGCOQx+ZStMLUkLWmLpkBYY4uaTVYc46xE1/v5+6dP4otn/37CgHxn irs1bU3MSJpThF1CnGUcfBEuPH1kIwu8uQlbEO0qpa8iU2yfw0OnoiqG28PkBu/YQkV4oQnu FAgA9ClvQwjXn3howOPzZ2wsx9+/enV+gpUhi/Kz89dPX3p/wG+/vL447xZB0OX3o4tCnT4q VzEYk+NgqHlLzSAEFs8EEc4ZbgwRW5UQcktVWZ1uvFUB0IQGNC6AwOw1AmHsD4QlUIEARV04 kNo3YJDz70LBZnezSY8DgxZNHWpKkCTBwC3f0QxJlfR/kilZye0/bIcILqGEy2cdMciKCzJ5 T5kfVcFlSg7B40w9Ldo6eO5Bmk7ECLb+fMjUpVSKmdqgGQQ9Dpre0GZjiBPnbJN3ljndKFK4 oDNL3rENycfjYKdVY4eChxN1okcyVhc+hwCoNrFyBNWHUBRyCA1GNghxXlwYUjvNAJEmiQtF qzUcX8f+cWDUrrVDcSSoOoGUs1YfSQdAqT45B5bqg0ksfsejsW3xK7hxoUnrOwNOujROPO2X 8E7QkVbC7Vo7GE+cqhtPkrVj4qlSD18ETYNxF9KHRn7gd8NxEU2cGyea1J4z0aRJ41we5Q6b Y23PWzZ4+CZdEubbLH1zKr+VSu2WKaGLJ9hVgxCduccbhS2aO8YwRLIWhcnviurSua1WVgop 6uLV7vo4ymrZ3KHKkmSdRkthroHVOmAabEDQZbmqTBe4AbnxGvo0FUZ+z7r9lxy5rJfeiYb5 MmRyYWuZfMLowONAq11rhyJLUHUCK2fti6yu6pM7xnw4DMb48nnkD2QyPhVSghsXorS+MwCl S+PCE3bLggFwcRxEtW3vUEzldC22Pf+yaNwNhqut+4f5drdPFvHVkRYQbds7VGM5Xec4VNlr YuEPGItNSNpH463aA7FHhzxR4Ac2256z4hqKRhcag9EUxwWuZDqliJSjQKtda4cCS1CtcP7n zH2B7U59Yu3NOx2uA5Ws7EhpOOpzuPV8G9wEmy6waZ3a9XSs6XI6zZj2bm0lQqgPwJlax6Q1 a7uAvlut7Jn+EK/Tphn81QPgrcOMWkOaJYbNDsNbulUbBRhLGQUDJWCZkmWvtzencC9jd53s vGT/ab6YJ9sbfJcXX2BLVt5l6u2286urFJ5k+QiXPNiHyY59drnfpdgWXOy4TlZXcLPjx/XW Sz8ly80i9bI0fVgyvk8hcPZDer8YkDBdx5NtmuyEAmZZPJsv0swIoMLggYqySrTpLtdGFJI2 xmY4ZvGGFYYyMSLbdLn+UMEQBaJVFEaO6BtRDr4++VpsxUUl+qXrfc0Lg8ItmD6gLXW+J8X0 8fnRKAykYlq3Xmb0oTNEXJkakTPfFbs3jyGzlizea8p+E+EbCLTdGtjgwo3pHkoUFeKJS3o9 jtNPOpfwtz2KD77R2FSKSgy+885s06LE5XhIuIxkFB+3AyAz3Js6MfQAul2uMWwM6Rn0NWuP jG6ydM/w6bP+XKRJZtgbCiMz8VyvzvHD6gt0T/ndMSXUfoyvWzKN9cRdtFv3efFbZ4UW2DKs 8DoNL7NYTDFUepnsJtemhBRy75X+sxtt8KnR74bJqkuyRruWlVmAUCbtjAeEp/whsPs0kAGI 6iDm49tUEAXfUkGuQ4baZLPLb5a4kNOkpipJrVB0FDHyfT6oB+ZNHMqSLWtYb5vk41DwZplh Skvl4xoz+2RwadsMFoev6aUKfPyAeB4Qz71wZL89hBWsV8mEQtEY23k2VG8pWUvVeei7vPok VD6KiP2eyf69e3brVqJ3Dr3Ndn1ZYYjUfqiuZS7DFf03ghhKG9Bt16gnL/vV6KyikNQRjaV0 VbN042LO5LhOk6l3d3HdhR9xNmslNd12jeBVVqvU9puOua8Jz17w0rIDnbaCLe7tqTGimxX7 5j9j+CdVhMUAAA== --------------090402010801020405060208--