码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序

时间:2016-03-27 12:44:37      阅读:473      评论:0      收藏:0      [点我收藏+]

标签:

关于插入排序算法:
	就像打牌一样,第一张牌只有一个位置,第二张牌就有两个位置,那么你得判断是要插入在左边还是右边,以此类推下去,来看下面这段伪代码:
<img src="data:image/png;base64,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" alt="" />
这是书上给的一段伪代码的例子,这个式子叫做循环不变式,外面这个for循环是你的牌从第二张开始到最后一张结束,那么如何它是否正确呢?
</pre><pre class="java" name="code"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuwAAACnCAYAAABKIAl6AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAF7oSURBVHhe7b1PyG3Vefh/8vMLmRQxgtZOAloHaSFVSCfXTpKIRppOpEKKRkMhxeogBVMnadE6SAPaSJuBIunAmF5IwegoIEpIJ7VQGoztIBkYhY7EQWzFSaE2v3y27+f1uY9r7b32ec9577n3Ph9Y7957/XnW8zzrz157nf2e85Ff/opNURRFURSXJD/5yU82N95449FVsU++853vbL70pS8dXRXFOP/f0bEoiqIoikuQWqzvFhblo6zJW1za1IK9KIqiKIrzzsWyeGUHHVti4FOMHheL3cV+qVdiiqIoiqIoiuKAqR32oiiKoiiKojhgasFenDf8qLAoiqIoiqLoUwv24rxTi/aiKIqiKIo+tWAvzhv8Y059vVVRFEVRFMU89U+nxXnDnfVatBdFURRFUfSpHfZimH29ulKvxBRFURRFUfS5IHbYWdDVLuzFRe2uF0VRFEVRjHHwO+ws7B588MHmLixxhHvuuWcKrTxr2ZWMUTnqvwusd039kW3LrUH5cwv1fepwEhtPUnYNp1FHj7kf9yiKoiiK4vxw8DvsV1999XR87LHHpuNTTz21uf766zcvvPDCdA233XbbdLz55pvPWQiy8PnhD394dLU5LmN+eO2116ZgnHneeuut6QgPP/zw5o033ji6OpcsM+qFzks7yOjIAwnln3nmmaPY9yFtzQ40C3/qj7qM6BC56aabNvfee+9wmaWHDXxLe4n+6emVbYhce+21m+uuu246p12VFdtqCfvTmjIsYl999dWpncC+yDXn9jH6n3l68pWl7S7O4zUy6Oe33377FLeE/Ty3fatPzYGcF198cXPrrbdO12v6zRzZRjH+hhtu6P40uv1hbT/O6Nfsk13Jp10ff/zxD81BIziGol4nkbcv9OFo31yyAXlzbX++6PXXfbJUp+lwKP1hW/bh30PtS2thzFzoNhT742AX7HTc+++/f1qkseDjBsFCh5vFE088MZ3HRQo3O8qAHd7r559/fvPkk09u7rvvvikNmRIXX5IHzJtvvjmFDDcj6r/lllvOKS9RDrqgB7z99tubj33sY5uXXnppsu29996b4nko4Fr9WOwiN8vpoT7YycIWXyED/b785S9vPvOZzxzl/GBi8Ch33XXXpMMjjzwyXZOOXsrJviGdtnj99dePYjaTr2kTbtTf+MY3Nl/4whcmfcyj7BZxAcUELCwiqf/s2bPHdeIb4zL6OkI5dAN8A88+++xkH30q2yY/+tGPNv/0T/80tRd+wL8+wNEvqQudseu73/3upFdvQYN/KWt/wU5kumDkxkPaP/7jP57TXhlsod6f//zn0yLbMYI/7Af6kHH0+c9/fvMXf/EXR6U/DPLI99WvfnXzh3/4h9NDKr5yfAhtiG7f+973PuQvdLeNsem///u/N1deeeWkC/qhm/7Hh8B1bwGITj48UBbwjf2N9iDevg4vv/zydIzgJx5C0QEYX4zB//qv/5r0BOSY7rhsPezgF9L1NTiO0HXtQxLwEIms2I/pc4wb/DQ3XoC67Y8Z7KMNCGB7th7Kf/rTn25+9rOfHV29D+PjjjvumHxG/0DeH/zBH2z+53/+Z4rv9XPQJ/ZtoP8D7Ug/veqqqzbf/OY3p7h9gi4R2z/r7/hb8ntrfrEv2Y8A/wEye/OLY4060Qd/2aece5FJG/R8nvWxXvJz77rmmmuO45AV57JoJ3W2bBN1iSAL5uZQsR3oF8iJZbR3rk+1sM0cw+g45+99gO62G3pYt76k7UZ886d/+qebz33uc0cx79PqV8z7//AP/3B09QH0pV/7tV871oF5hH7ewz4xdw9Fd/vh7/7u727+/u//frp2/gP6APlacnpwr7n77ru3aifa3M2lOI8xvyCP9j/fxLluGxubsGA/NJ5++ulf/qohpyPhV5P6FIjz6HlOI1AmYlqOh178ElGvtZw5c+a4PLqB1xwNLYjXfsNDDz00HdVHuTlPpCWH0Cof41ogK5aJ+XM8xznMl+0n7s477zy6OrfOOUiPsihDAOQtlYdXXnnlWC/rNOhH4p977rnpfA7qjPpYVrSLOjmPeVuQT51EmbFsbv+MZbTVulv103/noIyyIOpnPZDzZcgby8X2V476xToi1mG+WM5jzrOE+ZFFiDLitectTCdEPbiGRx999EPxpo2ibPqlKK+FfY4yse4cRztwjnyue1CvZUA52sE5dp4G+s9AH466iTrO2SUxj+VGywq6xDIcvT94TTr55iCfeZWnDBiVA7msEBd1i7Ti9HUM6hdDTmvJmoP8lKO/eY68tXJOinVrQ76ew7xxjoM1MiDnjyH6WP8Yn+dg4mNeyzr2CRLzriHfC0W95lCfmA8biCNtBMtaX69O4nNdS1hmbbklDnLBDhoZG4ZgIxNyo3nMmI9jbMwYvxbLxvpHIK9lYt0x3vM8eJeIMkZo5etNyHPkerWLaxd35lnytX7lGANxyMpxS7rmfJwTYK2tURaBa4/EM2FwTujhhGc+9YlyCOjmeQt1YCFuviyTc/Ppux6WIa/HHrZpD2V4E1B21s3ruKAUZWhDLJPTlMN5xjxgOYL+VabxLRkS05Rl2dheMZ5ji6hLSwf6ifE5bRTraPm3R7RLrN84dSNvzJfJfVPZHD13jluStQuoQxyH6mJAB/UlrPGd5UaxPo8G+lJLn5iP8xbkJWSUcxKQYXuNoA3qzVH9jI/nhhZxbs35tc05zjqUvQvm5NBH1Mv61Y1z07ChJcd8BOdMsFyUQeA85stYhmMkylqilZdrbOVIkCW5pJOWQ56DDcrP+gNx1ue5+dTN65jWItfbC+rD+QjUaRnOR8uNcLD/dOrrAXyczsfM8WMPXoWJ7zBzzqsUHCkjnPuKBXAkEKdsMW6EKBOs34/75iBv/CipBbby8RofM43oRL2jukeiT4WPtbZFPwD+4ZqP0YjjfA28TsOrBQTOAd2MN25Jbi+f/mr5IIP+vLZgmyOLwDUfdxnPqxrA9Vx70J9B3QS7TOOj4rUgj6CMCK9A5PrENjsU8J0fadqPgL6kzwF7bIc8Rwg+NV455OXj5Zaf5qA8/cC2pTw68P8KthdxXFOvxzkY5+SJbY++6Gd8TjsN7Cv0Dfs3R+xnXrIdOPb6uq9KgPmBo+fkQeaSrF1A+0X5+J44gzqAx1G20Zs6aVugPuukn6tT1Idrz3vYT6I+3B/myoyAvLUy6Kv2V/WP/dh+DtrW69+9V75aUIdhV/T0AuclYNzQr0CbiOuVx6/6hfnCe4j+dpzoP/toHFsZ6kKHOZ1HcR5o9W/iWvEZ9EZnZMXAPQk9Y9wS2K9PPCcwT8XXz7iOaS3i/DoXaJeRuVyoE2Ib+HrMSTnob4nR8AyNT4iD0rgIzsLJ5sGBdhBkEx8Xz3ONKw4kZQJ1IJP3qeY6sGV7dkXQvbWwRwY6xsC7pch0gjgUsp/WECcbz3kPLMavJbYNvvLhRJ/22o72pd8A9ji52J+0kfeocx9sQVlkYotle3b1/Ed+gu97ks84oR6vL7/88nPSMr16WsR3KTP40H5Iv8SvgPw4Fh0zPbK/IT9MeiMA5I1CmRxGUA/GGiH6d5f0+uESzgcnwbbj6EOqbcbRdon9vgU2sJCBmI9zbn6WZ47zhkjYhz+F9nKOdwFIvzGoF3Akbu371C167WKf1efUiY6ML46kZ32I7/kJn9uXkWmdcXG3tn8gk+A9C7+t6Z+xLLrPYdu05NMO2E/A9hj0Y9zQiXn3hb6J86E6QZ5X5u5f6K2vov20O4Gxgj32h97awGCf2nYzT7I+cVOSOgw9KOscgu3m108xgHmX5oLoF7BvGc+1vjpNHF/Wjf3osnbc9DjYBfvIxIIjDDbcEnQCOxjlPDIYkEGH6dWNw+nA5Mt1IpdBlDu4EEe9NCRP0bGTm4Y8jtaPrNxpudZmQF/qtZNClL2WvJOBbiNtYf3qANgTJ0/zILPlo0hM99zJYqks+dCZoC/wE/4UrrHVPFzP+c007KAN7EexDLus2Iydud0ic/Vsi/0W38Q2AOpz9yGT88d/9O3hQiyDrDnbSEdPz3voX4jtZt+M4w68npOZoUwMI6ATbRvzW2f8Rz3iDPbDNejDNfaI/o1400aP+AlBi1b53J9GoM1cyFBenynL9t3ZP2MNQJ3oEW3UL2uwTWOwjyI7pxFHiIsdoX710SdAH/CTB6+tp9V+pMWxp0zy5n8iJe9cH8hEuSyK1WWJWMfcnEh8vP/G+iLIizI51xb7V6+OfYGuzoe5/UC90NNxGNF2oEz+xAE4xy+5bIZ89A9CzN/rM9CKz3HIjfoIYxndl+YH2l4b0WvOlpg3Yxl8it8IsW7uD8YTZEm/XYButDG22ddtD7Bd1o69zEEu2DUIw0GH505jRyLgqBGyUyPW05KFTjiczkK+XBZi47QaxXJ8w0WsQ7uIM1C+dzNDBkF92X0wzklvBOrAHzEw+dixCJwjj/OM5WM76ANRTsxHHo5zRB3MGxfYuZ4IfmPQG3had+KMsMCOeTi24IaHD5CBzQbbSsjX6xsR/UmI5SMjCxl0YBdbct34yTr4togesYwfyW4DcvCh/ZI28hwdYpuP9AHA57Zd3mHXd/oTmfikh/lbfWGU7F997C6mdhq4JvT0snzsC/iM9l+yp0XLNnSjniXigtJ2i6Cf407beqBH/iSmNefKWju3JY5xdcEO/D+Kc0YM3quwG98ZSGNuIeQxjc36swdyCbE9Wm2pHrY/ZbgW45VDvSM2286xXylj6eEPqGeu3SPIjfVEmFuRhT7U68MMuumPkTlzLXP25XYwL0d9FtsAG+b8QBlsGvFV3lgD+9oS9ndCqx/E+u1HtjnfQCMjepKnlS/H6bs5mXNptsVSf8ws5Sd9JA9+hF5fZ41Gf7CNR8ZOi4PdYY8TVA/y0JkIvYEecYCTt9eJWnK4kVGWNOrMZXU8EwYNBjagUMZyfI0W+ZSnDTI6wc0x0hmow7oN3GQdpARvNpxnKI/+BsEuZBCX3+8jmDZH1MG6WbB5Tfoo+EIdIq1JrwXtj03IYGIg5PYlna9my5N4C9udwHnE/rmEN6z42oF9xiOylNf7aD/3s5Ed9jUgn7ayPbXNPsB1XoiPoExAhn0i29Oi1RfWoE/tiwRt0E6D46enFz4gXxwP5FXeSH+KtGyjn6jPnI/m3osFbNbnyupB+gMPPDCdY4P2MRZdLKAri5jewmFf2AdBX6DLNjfQFsg0zBHbNuq0ROwrc2APfs2vT9A2gM1zPnfeRDfHKvc47PK6127Mmdhnf0OW8oAyBOYv5jLOlduyj/GArJjGtXGE+MC5a9Q/oi0R8uATUFftYnxlGWAZ/LnNXJixL1Hv0j3OvKNEH7d8shbKey8jzMkzzbFKiGNo7g2HHpS3L7bCkl4+SOJHxhU+7+GcSV7CXN4eB7lgx5CeMXHXRmfjzNbg0emm4SQc5oTVQqdGnBiWGgRIHxkEysEG9EdPoJ6lOnogx0mCThQZnczWThjoamiBvNiZl/LbVq30bXZQ8Im+iO1qm44Qv6cYOwjuZGgbgQlD/y8x54MRGerPd9HOoX67xIeEJVyMQba1Z3uG/mCfmFtQ0s6OpR5xXPLbB/iZEOcH9EJGSw5x2pPbiBuj8ud06EG9UT/7uvWo40mZ8/u77757jg4ZdPAGiR88XwIbqNe6s++Aelvxu4a2wQ768DbttCusuzUHxTkYHxvWQhn82npYt95Wv0I3QlyIAHm9j9CWsW86LiK2u2iDfYz0/ClM7CcRHxQi5jV+zQbMaNu3dIFeeW3Ev7lsa95EDmXIj585tnwJUd5JFva2aQw96AO9sU6aYRv4znjLolPLZ5FWmv2XvmQ/X6MP5eYCOs3pRTvYdj1iWc6XfD7HQf/TaYbGiZOPTgUnAZ3DoCQ/wc6Ak3qOj+Q8TCoj5YR6XNDNge7oRwdTzzX1OIj4Z1eeUvOE6MBnUhidzE4C9lC3NhFYZNlGo6h/JMeN+MnJEPKg45zB5u7O6AS+C1r+QAfba8Q28hBaDzHKiay5Se0Kb1C0gfbRN4Bz4rme65tOmOCPI1GGsrat1y2w2QD2o16d5LPvtvyl/rGNzOckTNlWG6xlbme+hbpty9IPNO0C+y2+oi0Yg5wvzc2jGw5z2LbUy8O1fcY+tsbXJ4W6mAeW6iSP/lkzj2In/YEyrTmCevEDIfZzzvGLfqLeHshwbFJXlJMX2JwjC5naZPpSPZEoM0L86EYCOmMfc/8oyLdu+xHENsFv+AF7Yl4C1/nhBIiPvmjdL1vj+iT387XzRK/f4UfmKPvAGpgf+UQaX1G+V0cL/Uvo1R374hzKWQo9Wg+S++SCWLDzzjdfi8MkGycf4g0OVhuKfOw+EuKA2IalG9ma1wi48fDrY3Q0FiAMYuziiA3YSZoh3qg4J/2mm26aAruETBz88iQDRzs5Iht55HOhE0FWK/ALgPgzx7f0iRCPH9AJewCb7r777ql+Jkd0Z9e1Bb/GRzpl/Cg9YvtSDzLI24NfbOTpnbbnAY9jq/35hUX8h2x0pMw20OfQh1+fmwO9yUOdTFiU0V9Mouihj/1F0LmdFPLRl4Cy6IEN2syvGCKXen7wgx90F7W7gnpoZ+rGxueee27qizF406KNuabfnjlzZoqLYAd5aTf6oxBnXyeAN3xCbmf6pCH2qy9+8YvH8ci033FNXyBkWVxTl+B/d4m+8pWvHI8B2hC/M/Z6/V3wlWPLPp5BLtCeuwB5yuyBXvqFc+O8seLrpZssc8kSrcVkBh/Tfxkz245R7KVNGWvo/tnPfnZqIxdTua1PA+rMCwt0RDf7Aj6nDxFshwwy6GuMPe8J5F164GuNGcYaMihPmpAn9n0hvjdeWjDGyMtcgc5XXHHFcT1zfZL7Q+63yGDc0CfwAb/CiUzz4LOWTH/1F+bq7KHNjEfGu7+C7n0k+g1/EgcPPfTQOT6KdXOO7vRx8jCHex8F6sIe5BHfmjPFvoN/vD9EWu2YwS7qsV1tt4985CNTOn4fae8e3Nf+/d///bj/GWCbNoG45kOW9ztsGWXbulusfTAa4uj72A8Wv7A+fvl8voZtv6B+zQ9jZJa+mD+j3oS5strCDwucFOTgw2xn1GVNyDqrq+00Z5cyWqBfLw1I0wbkxx8myPTqB8utpWWXNstcvUB6/sVRymc7OM+ye8QfgOlhHXPyzMMPcrTkcW2e0X5JGQNlLa8uxrd+jMV0MB/1cowoawlltPIbP4L6R3kxEGcwTjsixOU0y4E/FKOMOTmEmJfzGKffDCPyPDd/zGsdrbQI49X0ViCNtud8ThZpjBuOrfQllB/L5h+xMc+cHj3yD0StxXLUybljMMarH3Et3Zb03cauDDLW/HBSC+rXNkO0saef81wuE8l+49iTRzrhJKgv4yvqFIP6cI5+mZgv65PjueacuJYsMQ/HPAZ79YyCrTm/cglLqFsPZGX9ItZDHgPX6hR1y2knBXlrZKnrLvkIf47W7sWecTfnfMCT48hu1vlirX7uTK31JzsY7Azuoh1OKmvOhtG+gt/4ZpelvOxCXXfddd182ALseMzVTT524M6ePXsU00f7Roj19fzSsiHq3QJZ8ZOFVnstyYhkPym7JZd0djt7u1Gkt+Ij1MdOjZ8iZLJ9a1jqu9ad9bdOd5B69rEj6I+jwIiePZ3YfWS3f6SNtmHUphbaCWvKCTvj7npqv69rEE+cvmu1xwi9tlwDMj75yU9OfXoE+3fso+igTcCubf5kqdXXbf+lPktdUb+Wvepzkr4U60Ff+00P9GCn17ma8tKaI5Tf8gV9g93v1hyc9cK3BM5BPfM17RBfN25B+8e5P9YFLV0zS/1wKd1xQXprTFBetI1PmjLR/yM4N4zYKFHXli3bUAv2oiguWuLEvKtJ87TBhtPWnTq5Sc0tkPRtL330YfKQ2NbXLBSWFpMtop/B8i488uKA+G0WmkttNQIyWHSObKzQ9o8//vjR1fss9SUXYNv4MaKs3gKL9F3Iz21GfCbXE/OQ5rX5ot96fqAMr330Nk1aemSi/jDXrsizbXg1JuYjzUX7yMLUBfkSPVl5nGX/RX2gt8Ae9RFQXzxfslFcsLceGLalFuxFURRFUeyUvJgagTLk93gStql/DbvQMTP6kEu+0/rEfMSPa3zhw2iPNYviFujiA8mu22cNvYfuk1AL9qIoiqIoipXsY9FeFD1qwV4URVEURVEUB8wF9T3sRVEURVEURXGpUQv2oiiKoiiKojhgasFeFEVRFEVRFAdMvcO+J/gvbjmt/+YuiqIoiqIoLj5qh30P8J/jfDUTgcW6X4tUFEVRFEVRFGupHfYdM7c4r69/KoqiKIqiKNbSXLDzE+CPPPLI0dW5uCA96Rfbg78etcsvlj+fjP7oQVEURVEURVGM0lyw33XXXZtbb721ufD0p2VHfm6VhTkyOLo4b/0sbe/nY4uiKIqiKIriUmfoHfarr7568edkMyzSH3zwwaksx8xjjz12HGqxXhRFURRFURRtFhfsvr6yFnfUn3rqqWk3nkX5zTffPMUBO+8GiN+qUhRFURRFURTF+zRfibnppps2119//fECmx1ydsJZXLNjDizC597ZdocdOQTxlRheg0G+C/vXXntt8/LLL0/nRVEURVEURVG8z4cW7Lz6wuKZEGGBDXHBbT4X8xEX7Pfdd9/muuuum+JYnFPexXqmtfAviqIoiqIoikuZc16JYZEdF+TiAjsusjm/9957m4v1yO2333509n6ZjDvstVgviqIoiuLQ2fZV4aI4Cecs2Fk833LLLZsrrrhiWlyzUOea989ZUBNcyHu9tNDmlRl22l9//fUp8HoMu/Kcv/jii9MDAu+5F0VRFEVx+tT/kJ0u+Lt8vhsuJT+es2BnYX727NnNxz72semaRTvXPE0a3IHnnHfdR580eS2G73b3NRqukQ3xHfcM8rf5lpqiKIqiKMbxPl/Ms7RRGWn5k19AZzOzODn4Eli4X+x9d/ZbYmKnZPfd11eAcxbaMS5i/OWXXz4dM6MdXjk+KBRFURRFsT1zC5s1i9FimZ4/y8+7xYX7xczi1zoCHYvdd4KvxHhN6BHfg4/04lv43vuaMkVRFEVRtMmLxUthsVNcWNQnPR+muWB/4403js62xx3xa6+9djrCNg3AxFI/rlQURVEU+6V2fYsLlUvhXfahHfa1uDBnd5wndxbcEH/xlHfSyUda69tjhDy8FlPvsBdFURRFUVwa1C77uTR/OOmuu+7a3HrrrR962sZ5LrpdhLOYZsEd87q4dlfccrzWEhfncQHPN8XEr4AUZLlbz481FUVRFEVRFEWEtebF/ClR95dO+Y516P1TaSQu2N0Rd7H+8MMPb5588snu97W7mOfrI/3WmEhc7NdrMUVRFEVRHCoX+6KxOH80F+wssvkKxpPC7jjvsI/I4v2j+seXoiiKoiguVmpBX2xLc8FeFEVRFEVR7IY333xzClCbk8U21IK9KIqiKIqiKA6YvXxLTFEURVEURVEUu6EW7EVRFEVRFEVxwNSCvSiKoiiKoigOmFqwF0VRFEVRFMUBUwv2oiiKoiiKojhgasFeFEVRFEVRFAdMLdiLoiiKoiiK4oCpBXtRFEVRFEVRHDAXxIL9Jz/5yRROwpyMtbJz/jnZFxr+Ets+uJB8dLG0Z1EURVEUFz4XxIL91ltvncJ3vvOdo5h1UK4n4/nnn5/i77nnnqOYecgX80fZ52uRR71XX3311v6J/M7v/M5qOeTv1Y9u+Ir0lv9HyGW4npNDm7bSl8pF0FWbbFfOiRvtK7uCeqmzpfvDDz98dLY9oz6R3M/R7bR9Aujd032tTUVRFEVxyFxQr8T88Ic/PF4A9sLSjfpLX/rS0dn7PPvss9Px5ptvno5LvPDCC0dnH+bGG288OjtdrPfBBx880ULFstlHS1CvICO2BwtffXbbbbdNxwxlDJRxUWyg3eM19c3ZSptSJkPciI9y+uOPPz7FZTsJ6rRP0LvV76j/ySefPLqaJ9sUwa7eA1eLxx577EM2o58+WUPM77lyqGNOr157MkcQv027IGuNLyL2hVhWedvositorzX2kLeXn/i1D4k9edvI2jXosE179+xZK6coimKYXx4wTz/99BTuvvvuX1511VXT8bnnnpvO50Imls8Yb11zkG4d5o1x8XpJ1klBfgza6HXMQ9orr7wyxc1BvjvvvPPo6lz0USbWCxy5Jp7w0EMPLfqDfGfOnJnyGayPYB3kiXE9zJdR9hLmi0EdenGt+naFdYD2g/WP1E27kj+WJUCUP0L2r3oA8ZwrO0O6dVsv8nJcDD1ZpmecI0b80kK5a8treyyrTdvqsgvW+iPa0WJbWbZxDL06toG6sHUN6jZqD6h3LqOsoiiKffAR/hyt3Q8Kdirijqbcd999mzfeeGM6zzu3Xr/11lvTsScD2HVy5zKeg+Uz7JLN1UEcuzWATs8888x0vmvUo7djHVHfW265ZXP27NnpHJ2xV8wj0Z+cx3R85Q68thMn0afk4/WUe++99/iaMpB38dkVZTe+5Tftfeqppza33377FIecLCPaxScmnHO0XnRFvp+mvP7665tHHnlkOpdok7bQ59jJtmy2cR/gD3b2Qf/HtqBu9Lz++uunsNTXbAdtsM8qB+i/Lb9GSKcdXn755aOYD9rHMeEYePHFFxc/dSJvbNcsaw7KtvrLXXfdtbnsssu2Hn/qsNRnwbQbbrhh8+qrr57jV+A69znmr33ODfZ5YRc79l9tcqy0dIk+yGBTjJ+TQz3mt1514zz3pUzUE+z/gk1CGmMhy8sy4L333pvmG9tLOcho9alIq49q51LZoiiKrZmW7QcIuxdxF8bgTrE7N6THa4Lksq3AziNlY3llRubSjY+7/+TfB+oR7Z6DfIS5HXZkkAe55LMM8T355jOPOinHa3fOc1qWi7xWPFhuzgaI8mNApmnq4XWsL9rBebyOeXO+fYCt1mPdMUSdRnSJ/rVsL5Deg7T8KYzyxDqW2gsoF3dFs6we2W6PwLnE+AzxOZCfoGz7L4H0iPlNHwnKy7J2Ra5vRL+WLtEXhlwup/fkxPzxSMAfa4kyOTf0MD2XiddRJ85bxHKeE8DyXse0oiiKXXDQr8RInEzjhBgnV68JkRgf5SyFPNnGstYpxu/7ZgzUTbAO6ut9DEyeJV1I1zbtIi5eLxHLx3PksLjjWl1iiHAdy4nxhKWPu63bhWKUx3muk7gIeQ2k9UJO3yfWR1B/7SEuXhuX7RTiCVFeLNsrFyFfb8GuPAJxOV8Lyq1dsKs/+WIgjrpjvVybFvEBxrReMA8BWS20OYdIL37XtHT14U9G9Gjl4RrZ+HdEBlgGX1omBtLWYjlkjpLLuLlCPMR0zo2PkN4KvvZniP1mjY7FhUernxTFvjj4fzrlo0Y/BuVjVT5CJW4tfhw8ih+VAq8T5I9iW7z22mvHH/3uCz5uJfjxMlBvC/KM6KJta/wjto8fBSuDY/4YGojLeiGDdgVk4Xs+doYoA9+OtH1+DQMZ6Jd9wcfnEXQ2UJeBV2KEa9MBufsi2qpfiNMn6AHYpR7ka/k9Qh7KxnaI/un5OMbTPgbkAfUaIPu3R6//StYn9jPbSPARr5yom7qgY5RDH+GVBoJjKgfrwDfky/0nQr3azrltRUAPIf40mNMV0DPqBbyGpc7aEPHaV0kI0aenjf1uDbapXzagH7QNmUu22eccc76iaTx9Z5/zQlEUFwa7nh8PfsHuRAqcL93cM96wM06urWC6OLkvwQJl6UYJvFPKTWJXjZkXRsgd/eYD/RMXbMZ5c5uj51/iufm99NJLx9e0X144Ce/YC76nbnxE/njzm7uRtog39bxAycS2ox50JmgDGEfYFdhjEL/pJKMP8QnnLrLwl/2XBUOEdPqcOutP4vWJ7UK+no+jPnFh61hBhxjf+v+AGKw7LhRtL8cH/bilj7a0xlueI7R3TZtRH/UytrBlCfJhfx4z1IlN1j36EHNS9CewoMy2o5NtPoJtRVvzHj7EOWMJfUDAr4Ss0xz2h22xLo70KRfZEezBPvtLyzZtJtjW11577TnxYFruD0VRXDowH5xk3soc9IKdiTXDwg4nOAGPTojks4wTsjeOHJx85Y477pjiXJhEvJEBZUdgAejCZJfQMdBHPZZuiORXD/zDdexclOeadmg9AOTykNuF9mJ3kmv9nsHX/tNhzINsfK4s24Zj1iWCD2K7UJ6AvBjfQxu2bSN0i4E6c1wM1IdNS+0FrX5oeYj9FpSf+xxxuT6vW+2EDcS30tZgvbFuF5QxDrgeqdNytDG+4Z9d44MDIfajJfCZ/nziiSem4yjZBhmte5egC7awoKTtOY/g19hf+NSBa+P0O+XsO/jFrxLFJvv2EvjftmA+sD1iHXNyehs1luGILjz8tVB/j/hETto2+mPED8WFT27nXp8T8s/1jeo3xSgHu2B3sR53Xjn/8Y9/PHVwJ16+nSGSd7D4NgDgRmOZOEFfd911k1xCb/eLxSQ3GkEO30SBjsoEF51LfPGLX5z0ybpvy7e//e3pZsVC5ZOf/OT0eomLlhZMMOykki/afPnll0/BmyNHrtE164sMdtri6yIt3n777aku8kZf9aBOdKc+ZMcFBDzwwAOTzqT3Jro777xzygcuSgjIQ4elCVI9yU//ueKKK6Zr4JrADZ8+wzl9IU7a+tFAv8hxMdBm2INMdFMWi5q40MRuZcnXvva1yWfo0upP2E0/sG96bXB8KBubiY8+Ryd006cZ8lLendceuW7lYbtxLuBIi3mjPviHNrLvYT/1kwcd/uZv/mbS2U+ybrrppilflNGCV99oS8YFOo18y4383//939QucSG4q/G9FnwB9Btsueaaa6ZrzvEdR+i1ZwY7KIO/aR/mTPol/qEdWu2u/0mzb9gezJtcE/AX8chiIR/HUabVfvicdnMcffSjHz1K+QDbH9AbrrzyyunofOM5OnHsgb3oS9CP3/rWtyY76DP0n+Lihn5oP+V8aY4gj3PBXP8uLk6W7jurOHqX/eCI/8zhP/BI/Kce8Z+GYpzENIMyHn300aNc5/7jUYssh3y9eonfN9YdbRiBcuqnjKivcSP/MJXLU8ZyxMd/UOM61wVck8/0Vh7i4j8ntmRQL/mE82xDLBf/OTFCHoMylWW8+UwzbluUG0OsO9YT0/iHt1i+B32E/BFlWJbzpW/toEzLb8pag3XGb5MZkWM58kYbgOvWmDa9BWnKmsvXwzqiPtZpmudL/rXsyDfstKAsOgjX8Z8io65zmEe9Qdu4judz5PpyOey0njmi35RJWIK8yI/1ctQnMU09vM6YR5RlW3FOIN40jpF8XVy8jLZ19YmLn23n88zB7rD3nkrcXQN3SyLu0EVaH1NHGb7ywQ7JCNThP6u19GQXCVm9nVxs6KWtYeTJjXpyXZQbKbvNR8X4NZZrve6Q68ZXvLKBX2mPpX/wg5ie7RvZpRvxPzpjD7vXQnlleETvqM+2RNns9NlH7dPWE+uKO+e+AjEC+ZCPv5XJObuLczJ6fcJ4+r4s7SbZJ0Z3sUVd0V8fbYtjFXrjeQR2kfHBNmNGot/j/02MYvmsQ2vHeERPfGsb4Sf7C7vZ+n3JX5bP9eFz5lx/Cdl8uwb9aNdePyHeNPXo5V0C3zieluyhrebGWXHYjLTd6Fyy7ZxTXHoc/D+dRhgk999//3Tu4oW4eNPNeKMBJ9R9wcek6GN9vUkbHeYW9Ltmzc0Qncwfy+FHwpzOpsUJCDu5YcYbdpZBW7ZexZBRP+l3+gi6zrHkE9KRh24sKiLog3wWHPsAH/DaAXXTV1qLq1bc3ELDxbO6Y5+LC+E8Ppy06PmNsuiLDrYXryr0IA95tx2P1idrxxP+oP1sY1hTPoJPeCUCnaI/M3NpEG3ytZZdYV+y/ZZ0EfxjGftLbLO5OQEf9/okMmJg7I8yqntEv3qf8IHI+oE86GHetaDXkm6k4y/0ICzNU8Xhss18se0cc7Fyqfhj7aZUjwtqwQ7sFjmxAjeTeFPIC0PTmJSdUNnBdVJmgeKkbVzvJrME/3zkDQFai6p9wI0RW1sBfbCnt9vpzZijCzmhHHEEzgkxPUOaPqRuwK9Zboa2zN8osgZvktbNL3q2fI9O6OJCrTWIyKOu6I5u+V3kfFPeRztTJ3XbZ3uwKLatIftZm12g2D/zODG4UFTeGpRJHXPlSSMP7dWzbal+0mlDZNju2h7HQ6/fxQUbfkZ3dKJv4C/Lx0C8aWugjrk2jKAL9sR34UfB1uxTrvmnefuScXNE+9Ad31AesB+IJ9AGvfb2m1iojzyWFfQxnBboDN5HRuvWPuy1H2BTJvuhJZ9y0X9r+1NRXCyc5ti/GPgI78UcnR8s3ESZXLlpMLnlRo4TXiut1SmIZ+LkH4d8rcA468r00mP9kV5nZEHBz5jvorNy42DSn6NnD2iTN7IRot7RJxDrod3YOXcxrq48MK0FWUv/BIguLFrUgetWf0BfyPJIk1iO9mKXvdXuu2jDEeIYgGhHpKUj+WgHdu3xz1J/AfpDyzbakH9UPXv27FHMuWS9shzS0YFFYE/+Uh9pyaAc18Sjn5+KaG/WgwcdQstXc7TGEuXoS9QZ/YsN6grE80C09FP80PLNHC2fZLTPsa5eLXvI1+tvcdzE+Nxm/LOnrwpB9i3yM1F/ZEvUG5QV44D5nAf27AP6B2APcmO+aC/19+xhDELUmzbFH8zn+hOIb/UVQI56a9fa9i7OL/bNte1GuWrrYlsuiAV7MY+TQJxE1kwoJ51EenVluWt02ifb6OGC8Hzp3qofO+IioadfbgfQB5mRRR/vMPuQ20K9Wgvlli4R9ZqrH9mthRDgJ3TLD+FrFkXqEH0rrXrJz6KNhxjqby3W1GNkwT6qZ0SdoaW3oFum5RvscHFrW7qgbeWFbC//hxE/OVNH5WVaPuvZoj4tlsYp+uaHTm0AdcsLdvK0xqDXnLvYh96CPebr5SkOF/vxXB/LxH5SFNtSC/aiKIpTgJs2rzrt6n3G02CbxQkcqq3oxUMAX2nZ0s30pUV/D/0Fc+W39WtRFJcutWAviqIoigsMXtW7kB7+imLf8CB8MT8EX3D/dFoURVEUlzq1WD8dWATGT06K4nxRO+xFURRFURRFccDUDntRFEVRFEVRHDC1YC+KoiiKoiiKA6YW7EVRFEVRFEVxwNSCvSiKoiiKoigOmFqwF0VRFEVRFMUBUwv2oiiKoiiKojhgLpgF+0m/B7X3Xar8+MRpf8fq+ahzlG31WipH+qHaXBRFURRFcchcEN/DzkLvwQcfnM5vu+226dii93PSsfxbb701HeWxxx6bQo7fJ9ZJ2PZXubRpzh8vvPDClP7MM88cxSxz9dVXr9ZLXSgnlieNn/pGF1irTwtkQk/H559/fvPOO+98KF1dRn92XLtefPHFc36k5J577pmOJ7VjW9bascSSPzMPP/zw5pFHHjm6+sAfu9JnlDm9STtNXeY4JF2KoiiKC5MLYoedxQmw2HvttdemxV8rmG8N7HaDN//TAlt2dRNnoaQPOCdsw9qFm/gwBLQB1yziCJyjF2BzSzfqNVCGhwbLtwIyCb02e/bZZ5t9gTh1WcMbb7xxdPY++jrqfZpox5r+ziK7h/4c5aWXXpraQfQHLPkj+mwpUAd9gfMW9rWczpgmPuo4CrLm6pzD/hnLcr6tLlnWGihn+RhaOp4P0AE/j9L7VFKbzpc91Os95KSc7zYBdDgEPXbN+bYr1n2x+rjYPwe/w85C48knn9zccsstm7Nnz25uuumm6fz222+fdj2ZLF999dXppph3b0ljscURGfDUU09Nx3vvvXc6ttjXbrsT+7e+9a3N//7v/24eeOCBafFz/fXXT/ZgG2DfddddN+n6xBNPNH+CmgGPzZTlqD333XffsV+wubWjrV8iPAixM33FFVds/uRP/uQo9gPcPY/6IOfxxx/fvPfee8c2cM3iDT24phw2umuvD6JNxP3gBz/Y/N3f/d1k+x133DHFX3vttdPR9v2zP/uzzec///kpDrJftOvb3/725q//+q+nc2Toj1tvvfX4oeGGG26Y0tExgg/ISxl0xi+U+83f/M2jHJvjvoSNpKNvlrMLWIjgW+TrC0Af/J3bArJP5M///M83L7/88lQGoi/wLfBJwttvv735zGc+M123oJ4/+qM/2nzve987rgs9aXPK41P7ynPPPbe55pprpnOxjTzHl5T/vd/7vSnOfuw4Bdsww4IPP2BX5Ktf/ermzTffPLar55Med91112KfFdPk/vvvn4762Wvsos/h33/7t3+b+nmWh6wY59xHP4ufaAD99BOf+MTmt37rt45izsU2cRwC4+j111+fZGpbi9hGEfo6XHnllVMgH36CPE8pwzJcO0dQt/PemTNnjttqrp1sU+4BEX2UPwXbNdrDZoC6ozO20D8vu+yyyVbnbh+qW/NvC+0Yzb8vuAdhB+NvZE7rbQTY7s7lYH8hba7/bQv9g5D7QbxX5n7aA7s+/vGPbz71qU9N+W1/fGJbjdpgfn2qPo5NfNKaD8B6Rb9iS4Y05gX6Yx4nYL0tvb/+9a9P9+A8l47gfWppDGdoK8Y1xLLMv9jMnLnrPjIC7fXrv/7rx3P3ttB2+HqtX2ZhwX6oPP3007+86qqrpsA5/GqCP467++67j88NkVY6gXi58847pzjl7xPqUCeO2qc+Ld16tMoStCOnL2H5V1555VhPZbUgn3msy/pa5/k6y0ZeKx4sR545zMcx15XTvJ5Du8jLeZZzGlBX1sE449XJ6xaxvWL+ViBPD8rmfqk8y1nHUntpy68W9kcxH9g7B+UsG23iCJwL5/E6YloO6kCI843yI73yrfgYsqxoj+mEXMZz8s7ND+bhGG0w5PpHUMeldpWHHnronLrUP8ahG3FzaANlDMARWaQbvyTrpFinOlDfo48+Oh2JF87j9RyW3bfuGX1miHrkNNPn+lyEfJQ5TbyHRP3BtvDa/rukn32TfPomn8PSeLD+WG8sn+VliDdEWVxbVj0NLebqwdZtQZ46rCXr1NKR85bO+wQdTop+2aXuB/1KDE8mc/gxvLA7EWGngiccgnjOUyHBHSLqMo6wj4+seFpEJ56OOe7q6THrukZ38vrRNP7zSTD7NkM+bbCdsp/ZvWXnIF7z6QWhZzs7U9H/HNUl7jTMwScX7lLZJ5CBDsQbWrsUPda8frJL0Bkb9AG+5tp4bPU1I649z8T2QhZ5aQfkgNdzbRPbQmIcPrLdiDvpDkUL5PsqDFAP5xztO+z2CP4gjfiMemfwBUHfANctv+BT6oiBchxjXzOw+8Uxy7JdzUc6wWvjOIo+6KE8ds1s22jTvnEuibbic/QC+wq+6s25uX9hMyHnJY1A3pacfRB1i1j/iK+VYVsBO3OngT6LvhOu8XNMhzVz5vkCO9Q59gWu6Wd8CswR+1rzgsRPNfUNMjy3/Nw8Z/20b2+X1XbXxxnngjiOkMU1Ywc4tvL1iH7hXFs5j2kZ02MQ/MI1O9S91wqJw2cE8kRfxmvbikAaYR9YRw69NHTk2CL7I7OUPsLBLth7TuHmw0TopM+Ra25G8WYmrQ5MpzBEYnxv8OwCJz0bz0G3LVFXzg1rWZo4WmgD7ZD9jJy4yOa61a7IcNKL/ic+DlQ+7hvp8HliRFZLv1F8AKD8SdtqLdSJP+zvoA7E+8DJGFDHOfAfsmzrVv6Wj4mL/cIJLMYB1/p77rWzUag36oO+6O5iiKPnoE+cWO0/xOe+55zRC+DH9173oB5tjzcYdKde7bC9IsTHNiE/Hwv3oP3RvbcAEG3mBqoeub3moMxJwHf2W2RZN3rpI/JwJG5ON15lwD9xHJBfvxmYW5fGwDbgO4LtyrGnr3qNjEXl2fbA62on9f0I0W8u2OzrcZ6L+fKrWYeG/YP+BLYR8caB5xxbviaOdsAPUUb0i9dz81yvj0BMw+/osvSwpn1rHursu9En9DsX1ZzHV5e4Jn8LXushPQfhnNd/oGU7YwKfEZy7W8E8wDXz3a7Bdn1ifYaog8G8LfRj9EW0n/YyvefbEQ52wZ6dg/F2PIw2nWNMazkjDkjK0ulj5yCI10xOGTr43BPWKHEH8CQ4YURdvSZgB9fY3xvgdqrogwzlow/FTtrDNkJP6uGakGUxiN2Jt23Qu6XbSIfHVutQB6Bcy44leJiw7dVpl6BTzyb11R/4An9FPbjuLQ4oT+DdVPQX463XdmFxh485z0Rf2sfsZxD7HiHrZH0GbeC94KgLmAddWvpYNvsCWLQ5NtAt9p9RqI966Zc930bIh83UCdQP6KbfenKIp+woI/oI+vBOtedrGBlrczAOsZ1+h6wIbYKP8Ns27WObr/HbSbBPqytHrm1nsZ8u+Zp82hDtP4m/T4Lvz+e+Fcf8Wuw/2JrH7z7gARa/2yaco39sI65tG/zOQrA1nnIcMiwX5QP/m9ICm6P/mFvxh+1OGtcEx8fop8hLD+sR9Iy6ew7qEu+Z5FG3DA8n+o2Qz/UN572xiW+xl8U/9XOu/dHvnvP/KftA2/EHdXnNeQ4yZxdofwTb+FRHov/XcrALdjtBHhzxYyqJgwLseBzzzQKHg53EIF7va4JBroMtdpAeWQ+u46DnGBdi6O4kQJqhNRGQJ/rOcsYpq+cT5Ob26RHTW/bmf3BCNtAHhDy0H/phc6+N2Im3PPp5s6WcdvTKZqgvPkxgB3HaY3tEefpxNKATunGeyT7Ovus9iIkTjuOGc3xhvGAT1+yg4fOYhm3oSB512QbrNuhDZJsm5nEeiPoA/lIX+yv50ZGbSvQVPiQ+yu+Brc4ZlGn981YLds5pP/vdSck3ZGSj11y/J94A+Ad9Yojxymz1uzl4gI1le/rgE3xIANrENqN+2o15Sb3m8NM12xpZhKz/IbyygV7OMy2IJ518sW9jB/axQMn9fZ+gD36L42MX9dPu2Ej7Yu9c310LcnqynBvsV9iFHhF0a9mITNqBgM72UwLnXoPX7MTHPiiUF+pnbkUX/YyOXjvP5fuguhis2w0Y6+BIOnF5TEQ7ox+oX3lxfUAe07KPkRXleU4+dKAM/0zb8m2Ge5J1iXIIvfbdFfodXakL3WnPDGnkad2HMsiwrYS+Rl3aOeKbHv/v6HhBgNFM3C1o+J4jYseMeYjTiabHzpPxxnNSfJqN9Y+C/tEG5WTw1Rx2qOgby5BGXG9SA9rBwd+qXxyUa3BSbPkbfeKk2cKPbZm4IshzgmuBL/OAjfVwHq+zHvpqyfcj0Ef8xp1WO1jvmh0Zvsmih37J9eATGOn7+KPXX0aJ/bGHOsV+5ThCB16zYAES22ekDyIXPyBrbj5p4Q57bzyCeo9C/mjD3HgE0yiH/pTlyALQxXNmrZ0w8k0bPVtze/BpI+dLbU4/t6/TPuqsf6iPONp+Hzhfqif9xLo/+clPTnEQfdkaU8rJbYn+yMK2NbunJ4V60ZPxEtsM24R4bV37bTzYSPCegpxoNyh/DbYDRHlZTqvPX3755cff1pJ1AfumdUQZUb75PEaQ7TxiX2nVtUSWrU7MN2xMIJc462rpAi3/xvxRN3Q3bURn8tvXl+aoiA/ruS2VJac5HiL2S/Vr2RXv06LfKB/jhfhRH2UuiO9hj/DxOdBBIzQyjojgFJ6K7JRCvHEM3JjOTZfQcihxhm2hLJOjnTLrFht4aTHmQHEHGBgwyPDG0IJy1NtbWGadWuC3lh+oO7fNiM98EKN8S0YE/Uhf2w7kjxNK/rSGeNvf0NIDGfQr0uP5LpmbpOzn6IYNud+3oM/FvgWU09fYQV/K707jkxhaEI+MLH+J1k1kDZTX9thn6Ztz7deC8YL9+IFyPVtboAdjFV2yTVGvNTLjp0T2sdHy5KOs7WFfIt4gozLXQv30uUxsjzX9xf8jye2pf/VVq06hfWjnkfGSyf3JfrJE7A/c3NE39y/0oe8hmzQ/TVjCjZ+TEPUDrltxMDqWWmAXPovjQfAF8WsCsgjRj/jDPmU+06NNriFakN9AX1KGgetITItQX84bwZcj/T/Kj3WwKcW1dWQ9Y94I8bl96XuMC4K79uTpyYg4b0Jujx722dZmnmkn6Wu7gL6EXbZR9lkEG7Ad0HvJByM+6nFBLdjpHHmniHMbFwe3JrCWg4xjR2bUgcg+6QQJ8WOvls4Onjko40DxKPiEjuZHY1k+9p6k0ywRByELmSV70NN/VEF3Qr6pRYgfuVm2WGM3fsOP8ZUYQmyz0/JjC9JZjM1NJhL/ARDsP9HXnDO+cn8ZQV1jWSa9EdbuoKgrbWPf77XDkg/R109i1iyKI7GOpfpG4WZGu8yNgzm80cSyjkMCfov9eNegd34ghnwDdJdtDcoA+4J+n9thx177zGjfzFA+3pQ5b8kyPepKP89t6ThETpzTRtoGu8k3N7fOYTnkALrZ5/SnehnWjtUI8rP9YtraEHHTx/bJ6UDaEvidYP+1HWwr0fet9sdXrfpF/y61cYsRGzKxH3oe9UMfgn1hCfTGdscD5ebsjcR8nEd7chrMjVX0MOwKZPGaE2DX3IZca0z3iG2wLRfMgp3BgcEsnnCQHR5wpo3emuh6jUljvPvuu8ONjWxCftViLdyk0DfqHHFybN3wAH0pQ3k6U5xE8Q0B20jHZ+TlH15OAnUyQOd8ZVrswNStPdqbIZ52dcEUy0fmdkYi6OnNqMfSIiH62Pahz2kHcUv+2AdRL/yE32jjJXvBCYO82J8nWeVtA2Wjr2DuEyLsQB902AbrkxH7I9wEKBP1PQmMVXSK/jwJSwujuX5nWvQPOA4JjLVtH1DWgH+zj9HLceSDyUnYpd/n0K/x3kMfjm1FHsJof2Qc6g9hQ4c4/DbXzuK4XovzWct3p+HPXRM3wqLfOMdH+BSblzYltN35i2vye89ATry/bjuHwZqH1ZG+0ANdwX7ptfCPs6Ntjh6OaWzv9aElaAfWUrH/aiNxI/Y6vxCY00/iI6Be2oT38Efnx16dti3Hk64Z5eAX7EzofDTFfxQTvvnNbx6lnPvxJ53GPNHJdi7y0ggR8n36058+7nxLixXSDdtAh2LhzC98oa86Wz/n8T+iv/zlL3/oP9DZReAdPPJRXhiA0R/YRjr5CNl28aGAX0BENjoiH504ck08nZf3TcnXgk5pR4/88z//81Qeu3u7X+g58s99v/3bv3101gcf/PEf//H0ETrtlCdxJiz+YYeBmeVpK7pib/ax6FfeXeXIaySU3TW0PfbYNtRjH1cvFgtc41smBfKQVyzHr1ziD3/JkLbERibcGD760Y9ONkUZo+hz6qBOfnE24xigDvTeZqJXBjYggzqxibbl+KMf/Whqa4KTZubHP/7xlBc98AP9BJ3V3aBfvKbeXlvbf8CbEG3ImGAsrfEpc0QPdMDuVh7q0CfYhE++//3vT/2ItFbI9nAd47x27P/sZz87jqM8/on5hfGF7erDET3oJ8Iv4Vq2t0EB1IPd8eYO6kEgfU4G7cw8iU5LD0QZ5NOXsAGoi/4AfguP4Cf6FjbTv1pQ1sUKeWP/ItC38RXzMNctuBeSpze3L+HYY5xkv9km6CbEMbZGmHtY3xf+qjI6M+7Ql34T+x02f+ELX5jievcy8L7r3Evb0ya0J3NvvL9iq/4ahfK0G+2PfPnbv/3bo7NzQb7jqHVPmrMFKMM4dfzgo1iv5PVGBB1+//d/f7IZf+IP/Rztz/NS9g39De6+++7jMZlB/si9AX9I/lXtbUAXfNX6+tJs5yg8JP7VX/3V8XyA/dxntpH1EX496ei82DM01EgnPG1OopeDT6Ic0hjQ3hzNu01du/SdekTd5mBg8Y8lrYly36Cri04G/pwPev7NvjNfazHLRM5k2bOVBSAT9dwDFvJ9CGVClp5+kZE86DCnHwtVH9TUhZvVnMwIZfQN/nDR4mSeIT8TMR+jUo6bYs6LXsQzaS89nKrzEtQZ+y91QO4nLPhYVHizzkTfKGMbem0S/RnzEM9CI74Ol9vIspbjGmK+6C8WNfEhPdIqOwp+yX6N8mzf0X5mWZjL785cHEfCvMSD+Db2RNDFRW3EfpzptXOEBQn/FHlS3daAP+KrDI7F3CYxH+R02xJ/xLG/RGt+tm/2+oXpQB15biW9N6fAknzJ+exXyMzt3KsLv6hf1EuUEeOgJYv60YdjbidkC2lz9xv1AOrges4PPfRPS1cwfc7PcQ6AaFdmrq5Zpt87LYqi2DFLP9m9D1o/A30aP2sdbe3VR/yoT8i7FDKtuEOgp68spY9A+W1+Gn1X+JPqu2YXvhnhzjvvPDrbDQ899NDR2eliP6AtOPZ8N5ePawLEfHPB/BnKz6WDeQi5HdQl6hexbC8dSMsyODee8s5LxPX0Je255547unqfKKMVWnKANGyNeZEF6mCY65vktRzE8zXEOvUVxxhM7xFljARkrqV22IuiKIriBLgruM3uXrE7bAdptQc77PFT35xnri2zfOm1+2i/IB87srya1HodY46WDbL0KYz18rqQPml9mrTEWr+ws86nOu+8887xDnmsU73YoZ771Cwz54sl3CGfY2lXXD9ok/jJdWStj6EW7EVRFEVRFMWpcJKF9b7o6bStri7eKRtlnMT2WrAXRVEURVEUxQFzwf1wUlEURVEURVFcStSCvSiKoiiKoigOmFqwF0VRFEVRFMUBUwv2oiiKoiiKojhgasFeFEVRFEVRFAdMLdiLg4GvO/KrkIqiKIqiKIr3GV6w73IhtY2sky7meuX5YYGTyC12B99Nuu33kxZFURRFUVysDC/Y+eUmfp1qFBbB/HIUC+LMgw8+OKWNgizKoENeXHNtXTktQnlC5qWXXmrGnw/w7xofF0VRFEVRFBc/wwt2fkYV8kK7t0hmp5SfeX3ssceOYj6An3clLZadW2zHn6598cUXJx0MpBGQZ74e1LvEnB4jUJ5Fd/ZTC/Jan0d15Lr1sFMURVEURVFcWjR/6fThhx/evPHGG8eLdHBRDC7CX3/99c2TTz45XbdeZWDR+dRTT23uvffeo5gPFt/IYnFqHexy9+SwACbvM888s7nrrrs2Z8+ePUp5H+qZKw/KiDYB+r322mvHC2UfMrKc3gJcn1g+Ql1RDnpiP/Vdf/315/iztct/yy23fMjWoiiKoiiK4tKiucPOayLA4jLuWrMoZXEpLOpbC1Vhsfryyy8fXb0Pi1QXxXHx3Ftsu/NsXupcA+VdbFMvC+PeKzDUEe2L8LDQCtpP2ZyW7eGaeCD/W2+9NQV9TN1cK5NFfVEURVEURXFp030lJi5AXWh6bnjggQeO41qwWOa1DvMLC1KvXaz2ZMQHBnERP4qLfWBR7MMB4fbbb5/0ybbtG+vAFh4kXKR7LWttPQ0OUaeiKIqiOC3qPlicNqu+JSZ30Pvvv7/Zac3rayrCtYtj0+PiNEOeVjqLeN9hJ7ioby3u8wLca3V8/vnnpzq8Jsy9g076rkCWOqMD5+7+46dD+ofYoiiKoiiK4vwwu2Bnd5z32YFFLotHFriRG2644ejsA4gjsOj87Gc/O8m56aabjlI30zmyeOWDd8gvv/zyzU9/+tOj1PehjHnARTdx7Oxfe+210yKXI9fIYSe99Y+aMQ57uFbHr3/961NZ5KoLR2S2IF9rMc/7/MjlASX7KEL9v/jFLyYZyEJ/baROz7HlzJkzxzvvh0R8ACqKoiiKk5Lv3a17+a5YI7u3Sdda+xTnh332lUOiu2BnUXbjjTdO/1Rqh2Xx6D+QEsdikzwZ4ggsqK+88srpnHIsZlmI8k+XwPvtLG5J+9nPfjbFyeOPPz7ldwFLfSxyyU8aegFHrolnAXzrrbce62sZ4uS6667bvPrqq8fhP//zPzfvvPPOlIZenKMPMtfAu/XIY3deeRn0Qd9PfepTx6/poI82Uqe+Ybf9X/7lX6bzoiiKoriYyWsJ7qcngfuta4EIi7u1suOawvOT6lfsjtY69GJk8ZUYFum+tuEiszUIWsTdYR4ACMpiMY4cX3nhXfIIdZHfOj0nWEaM5x82kUteIa96RH3QQ108Aufks94WrTTitDHWH1F2D14VMh152SdFURRFUXyYfe2y5vu51737fFHsi6F32Fn05kU6i8877rjj6KoN5Z599tnjsr5K4qKaHXGvM63BQFzrYyh0aQ0izlnEsxAW4nKeuFDmnBDz7AoW4XMPAvjHhxFsmnu1piiKoiguVlr34LnNwrzL2ruHk2/t/d38HEc3LDOXymsbxf5oLth51WUJFpYj+fyKSBfrLoa9XguLexbXLvI5R5cleeYT9OBaOTFtCRbT24DdhN5XU7KYjzvsS/5l4iDURFAURVFcytR9sLjY+dCCnQVgfFJ1R9jFJjvWMvLeEO9ns8BFDotk5LuT7MKbnfbR3eTLLrtskiPIRQbyeH+89/RrfRHKOchz2hz6ZBvQj/fU/XQB1A3/Cudz/sWHPjj4UFQURVEUFyvxHpnJ90vuteTvrQlOylq5I+ulopjjQwt2FoH+EyTQ4d2FFvK4wO11WuN5D9tddeJcZCLTeM5zHWJ+yrJIbb3XHXVkIZx329Ul76JTzoVzTmvRszVDvrm8/IIp+uJD7fMhxIeBkbrIiw3vvvvuUUxRFEVRXJzM3RfzDrtrjn2B/KI4TT60YGcRyKsYLjrt8PHaxS1fUciC1zwROjMLUhanQB4Wp8h3oS6et+SIZXv/iIkM/+k07sAj00V5axed11PYmZ+D3f+4o+1DAUFfkGYc6ebJoCdpHLGH8q2HFeQtfepgnUVRFEVRvI9ribjO2BX7kFkUI3zkl7/i6PwYnlTXfmVRrxMji68rdDe4B/laHxm5KGZRG8u7EM/xLXxYiAt5Ub9WHdLyB/nmHjCkp5s6tfxCGnF8Xz1fMbkkg+9vr4/biqIoiosZ741FcSnSXLAX+6cmnqIoiqIoimKEoa91LHZPLdaLoiiK4jB58803j872A5/cSzwvih61w14URVEURVEUB0ztsBdFURRFURTFAVML9qIoiqIoiqI4YGrBXhRFURRFURQHTC3Yi6IoiqIoiuKAqQV7URRFURRFURwwtWAvij3A9+wXRVEURVHsgvpax6IoiqIoiqI4YGqHvSiKoiiKoigOmAtiwf78889v7rrrrukonN90001T/LYg4/vf//7R1fmD1yewJdoHS79+pl9yPq5Je+yxx6Z0wsivts3Vp8xWHuJy+8iPfvSjpo4jPPzww1uXnQN5+Gbfv2S3BnQatXNN3iVos1a7zdGqm7i1cpbY1s61Zbat5zQ4VL2KoiiK0+WCeCXm6quvno4ssvxJf+OA+Mjoz/7fc889m/fee29z9uzZo5jTgXqfeeaZo6v3F+wPPvjgOfa14iKm33bbbZvbb799c++9907n8MILL0xH0DdZBjpELKMMiHHxPOoOyCK9pStxhLfeeusoZpyeXGz/4Q9/uLn55puneK4jN9xww+bGG2+c4ud89+KLL075do36zYHu2sARO/GtNs2h/q22WEscW+hBXyL0oO6nnnpq8/LLLx/FvI9ttaTTiG/A/gatfhVRpvW/9tpr03hY8qNEH8ho2X2yq3bmofeyyy5bJYO6YaQv2o97eekbrXTKvv7665tHHnnkKKYPD++tfCP1L6Gt9qGl/rYPej5awy580UL/nLZPhPqd03fJkl08LL/66qsfSj/f/jhk8E35ZX8c/A47Exlw0wImbgeMcFMzMGEdOjwksEjIdkSw4/rrr+92/taNnImaaxbH+ovyLRnkJYALHW5UMR6I5xqZhHzTx4Z4k+M6BncIvaY9bVOJ8TG4aMNW/MWnEBy5Jg0fUVb7uCbt/vvvP85HembffQR99GMOLCbVnWvgqO9jW+kzg35Rf+TEdGxe6leZ2E/UYw7qvvbaa4+u3of6bCuPPayHfsSxFUagTnwR+wPE8qbP+cM0/KDvkUdZID3WNSdr16DHLnjjjTeOzj5Mzx7HEnbHgA8Yh17r+96YQn4vnTjGwwgvvfTS0dkHbSJLfU4sR9AW+492QM+WfYMO0a5tmGuLHrFO/SOco9eufJLlL2H9sf3nyPLjtW0e++6cz5kLY7pHfBHjt/kUjLJr5xPyojfHHNbK2gf6dNQf5NOejHYVCXbYD5Wnn376l1ddddUUPD9z5sxxHOHuu++egtfka2H5mE65O++88+jq9HjllVeO9YWsm/aQr4U2k5/jQw89dE555RlHIE8L67IscN6Kb6EuQF7rXQpLcqMszntBOI86z9Uzats+oP+O1ks+g37WLq+VF/NwHsnXkewn5LVkCHkfffTRc9LJr4woaxuUMaeDdhpyndggpM3pZPlILEO6R+I4ngbPPffccX3qskTU1/OotyHa05NtWoY4dBPK9mTAXDrx9KURYpuqOzKX6o+Qj0B55kPLjpbfJ+qCbhHiR3Sbs4X7iO2esRz+tXyUYXqrbAT5OSirFbckT6w/9xPiWzKUnwN5rd+yMS1jOmVyfoNprCE4z0QZmajLKFFeDuq0DVEHzpW5pBvpMY860N+WyoJzXM7L9UnsuZg52B12nq54WhPP845M3FGLu2Q98k7B3O7Tvpj7aA+72SXh6b6Vj3RsZocSW8irDVzzxBpt5JzQ26GI/kO2T8cju1bqigzOrdfdenbkbTevDbmd4tM2IaJcPj73vNXO6kyaO8fkR24M5kM3diZOC+yi/y71USFfzGtbYZs71O52k484Qixju8RdUXeZou36CfCPfo7YLpTDd+QnjvyOvbwrNQJtT37kUS8ysh0R7STE/tuCvmZfaKHuQP0E6ifoU47Ws1Tfrnj22WeP23mNT6N+nGMfn9RFbFvt3Bd8Gur4B/0L2vLuu+8et71p+wSf4pel13D2qY/jLwbbhPYyznGW255z0mKIfuY8pvGJY29MyxNPPPGhvkA9c2Ui+DQG5yX9bbDPtcZ29IdBuyjDdbQ3+0Wo03oi+ACom+C4b+kS28O6MqbxuhlkXazDNm3p2qq7hzpFfxpAe1q0+owBG/Kn14Tc9sjotQHxQn8zfg7uhejc88GcPZcsRwv3gyM+ZcXgTkB8qvR6DuXFfFmGYUnWSUEX6iB4br05vke0p/WkOmoHeWLdUZ8lGeaJIednZ4R4dYs6RvzUQT2yDoTY9i3MD5a3LPUazGf8aaFOa+tUX3VHDnDt7k6MX8ManchLyLu/uV7iCL1PiDJR3gjoqi7qQCA++ihemx6xLMd43UI5WcY+oA76OkeDuq2pn7yUiTvio1DO+mIgjj7n9Zxe9k1DlOl1Ky1DnHk9N2+Uw7V+a2G5XGeMy/GjfXgU5aPjUoi6cN2DtJF8LSzrrmiUQ8j69j6pzcT5/CSoU/wkXF1axDotSwBtkZgWsRy2RvuzLzgnTt+1MB8hjmnjvEaOsnpYv7I8N5C+BHVF1MU5Iqdn/DSfoO7KoH7O1W1OFml5HjF/lu+nYcUB77Dz1MUTcnzK4vqWW26Zjj5VnjY8NS49OS7BTrH0djCI98m8RXzajp868ORrGcqjK3H5GzzIQyAPxKdq44R8LZtpG4PYLsq3XuRyvfTkTXl3T5VrHGW9ngP52kBeAv3J4M7LAw880H263zXR1/pipB+RD/JuUcRdWOTT1iNyR/JEok+pq9XmQD7T2GlZU89Su7ZQJ+t0XAjXpEV9xbIeDwHHCPMccI4NjgeubeOld0X1hZ9gEJAf54glkBED8Ime13O+Ix9t6ngG24Fy9KOYBnk8orP1UsY5ADiPbUg+5kLzt6B+64z92HmCQLyfBO7yHx1pB/SkTuzUh+DcFAOQt/WJZAvlRkb6CTz++OPn+I3z6F/OCU8++eQkc1/YTw1RJ64dHwSue8ylIaPX/60TX9KXov2ek65exrX8bh32Mz7pimUBuVnWEsjzExHDKEv9aCnd8UCd5CVgA8T5W5167UAZPvXHdn3Lecyvr+hz+mgb5vrChcZB/9Np7DxORnyDhY0cocG9Ea1pIAaRk7Mh3kAiyKVewkk6AR/HetMwWG8MEAeBUHcc3Pkjb3Ag29Hjoh6sA78CedGBf4glznjrx+Y8yVE+D1LaKPoG3ZQF8Xxf5MHNdW+CPg1ye835NGI5fBbHQgvSnSQzyCE4NghLdc8R+xK66V8CctW51S93Abbm/iv4lno5kk9fkzf6kAdJy2YZ5wv8p+9ar2xEe/EzD0Q9lAVxgS2k0Q96WI9+NgB1e93rc9Lqt3l89rCfQpxHOFIvwTjO0Wdu/o7gH/TQR/qH+ghzvtkWFjvqKdbfgr67ZEv0EbIchwbSRv9hM0LdsW31N+3QatNR0JeAbi1sB4PYh4E2t91b4IdcPuKc0EO/uzi1vqV6M+hh24ByCcqxPxDouyMPiNjF/KWNPTt3De0WH/5yOzp2fGj2mnwRr/m2segL/KMt0S9sXiy12Rwn6a+HxkEv2OkMcULj+tZbbz0nzolEHKyj5G+8mOO0BkbkJDc8sKOPLp7cFYsDxEGFb/NEiy7EO+ji4EQGu9iUVyZhbgAhjzpi2xvHe71zoAOB+oS6qBNZeeI4DaiTSQu9Yj+NPu3timO39uR0r2kvz7GV/C1sJ3RR7hqQzQ0FnEAJuW3JEyfbubbeJdiGXRF932p7bjzou0tiHbk+II6vWMxjCOzv+q4HafiY9uvNXdSDLLGNbBM5jbbJflAv9Ke94gKg1ydtp3hEd8I2bRj9s3YcnJQRn+MTdBzJS/8W+g7+iGEU52n9oX8lXwt6Ol/HwI494OcYT5v3xiSot31VG+jrMY6ArJYMbDBPj2hrpGUjurZCJOuBHOd79CQ/X02ZadU3AvP+HC2/APcawra4WRPbUT9yxGY3TGSNjchDxrZ+udg56H86jYOCczuHAeg4QCMTiJ8bqCcBudZ9kg7lhLwUWjDpqQegR949x0/4xTBH9BWymRhbtpkvtgk6es3RxWC8ZuKOEzWhZVuegGI9ni9NUhH9A9pj3Us+kbl2GCHWhf/Uw2O8aWS/eE4ezvWdIJdA28ey5M/tx3WsC124NsCIT6iDtrjjjjsmmQTaNqIexMfF2C6hDgJ1xH6ij+nD+gdaNwA+qTMuylgLOhhoB8+pO6YRSKcPU59+As7RnYV41hMcexHarfX7Eciintj/sz4j6BN9TbAsD87GLfWb6BPBHgJ1LO3+5rbDrpaPBJ2WoDyLCnyobzlyHf12PkD/0X/a2/UPlW0DvrQ9Y4gPkznNe3VsR/oHC0nsts94DfSTnIf+0+t/yJ7rJ3PkciN9olUXcbEs3+nuuGmNLwIP9JGYJvrR/kugHo6An/BLLJPJaY5pfZzTuR7x59J80EK9besl3S9l/t/R8eCgc1x++eXTTf+66647fu/705/+9OZjH/vYNFmx08crHDb0fffdd7wA2QfoNNJpl3j77bcn25a48sorj84+gJ0QPjaL78EDtgt+iT9+4+QQwX8s9pz0+XiKSfYv//Ivp2uxHuzmPD4csGNAOaAsExJE3e68887NNddcM51TltDaaThz5syxDtywuKFaF/Zw/pWvfGXziU98ovuxofLpM5YVZBNH3dl3LfiveWV8/OMf33zmM5+Zzkegfm4w//Ef/zG1g23Wgv7Kt2nwnh462r8+97nPHZ9z1Gc8AOEjXplgUvvXf/3XzTe+8Y3ZHztagsmePtL7cRqgLseZvw78zjvvTOXwk2mA/cSj08hHvGtAtv0E2Yx/fI0N+ov+9t3vfnfqQ70fx4pxIzfkHs43/Gqu5+gYiXWRz/Eg6t2DG9hSHqD9AP/ge3fS4hiE1nzQI85TyKTsb/zGbxzH4/85WJjZdykb24lxyC8hq2cm24wc4uiLjmEX/Njs/NTylW3C4iAuBnpzQc/fjm1gXtpF/0YH/MR8gT8///nPT2FONvM245D+zafO0LuntO4jma997WvTfVXbQJ/56Wzu1xJ9ZR7aijkttvcc7vBTnvsIPvEegJ950HVxSlsDP45m3wLrpgz+iZ/IkuZ8jo3I740D+kfUmXL6IKK8OdCXuZH7s+1DW0tuMzZDIqRrl2MN3X/+859PcvENujE2ycccYL7oG1AO5DZxTCOHwPwq+oPyP/7xj6f6sMvx7Dn+oNwvfvGLSZbt1+Pb3/72JNM+h4+4//jtUvRtNiVYL2VbLlmO/vn0IPG/hWPwmwdinP9NPIdl4n9Sc85/NI9CHZSJMvbJnG7aA/4HPfplG43L3xRBXM4bsdycX6M/orx4TR5lGNfDOtVJOWCaslooP9bfQllz/5FvnqV8Lai/p+ecTnO2SdSLMPo91qBfOMbzbCvXxC9huZzX+FG/+S0xlFuLdcWyfktB1Iv0lvyYjyPXLVr17BvrHGmLFtrDMQbienZKr17i41wy5xfawfg5W0bs7M2Fc/VHYj6C8ogjiP7pyYv+i+W2IdbVq69Fzq8uyCOYrvy5OYJ85HGsWgZMsy6O3muWQJ46rUUdYt3Ua5w2ZmKdpBPitediPT2clwzKVBYh1hXJ+STGtcrNob4c1S3Wr+yeTNMpI8bl9UEL8toOEOvnPAZ1JWRynV5zlFg2ziOXOgf9DrvwFOfHaDxx8UQXn1J5Gmt9jMI1uzcEn6Y5xjieAL3OIcujDsoQctoolBsNI0/w5PN7YCPK6KE/3RXchuiPKC/KJA+Bj9rm4EmbdqStWzrxhM9uAnloG+Rl+yhreXThvAX6LEF9yli7i0b9eQdjCfIvlWm1Z9w16UE5/EU7gUfsYyxpq3E9/9in2AHxY9cWxq95hemk2MfoG/QTiON0pM0PFdpoG2xnx6RhCX22bb0Z5S2xq/pa0P6MZccZfSTqxTkBHczXIurYm1+2oVdfy3fakEG3qF/Pn732IN4+w1hiroWebruG+hm/6hBx5xmf9+ZX5mnSsVsfOcc5/ns+iWA7wU+fBRmGCDv++Cr71Xz2E+9xgF7aQF29Nonol2gDcVEv6uLYknfSdqS898IoP9pJaH0aEVEPd/EtH/F/oaSnO3oYLgUOesFOoxEcoDaa5/7zFdhxM3aiXTAy2E8bbOYjrBaktXwC0Z/bQrswqHz3tiWPQYnf5nzHYONVD2TNLSh4WIvtnaGs5dEly3JB1yrbAt/to823mVwow2TvhG+/5uNEbPIhJk/+XFMGm8lve+Gb2GYcSUNeyz+xfh4kY5uS37oJlo8fq7ZAJvnjxDyKZfWHIIuPVZVJetSpWMY5ozWe14L/e/OQ/bQ3R21D7wGW9o9jmTnTvsO44FxdIY6hiOOEMvuYGzJrfON4jqEH9hGUz2uInmOb42WbsbkN6IL/naM4RpxLnGvUP+O8Jp5TDplzPhHnNoJ6cDQuwjWv5mQ/UU/OK+RVD4/Y3rJHemnI8r4Xw4idJ8GxE6FebKatOM9tmHFDp+enJRvwCX3WsZsfsC5KjnbaL2j4uORi/MgkfnSVwV4/jvLjzBgXIW709YTIXP1LUJaPtGK96peJNkSUsUuoC5kjtmU/7oI1PtVfMRAX9TKPHyESWukxbo740XOkJYdz8kW9zEf8SJ8jv6+wrCHWQ+A6Q5zpvTzEIweUF8GGJRn7Qv23rVOdARnRX8ZnluokjY+yzWdo5c+vxFB/zDeiD1BGWZTJgbKek49jxHIR+jlxUR/zqU9MixDfS1uDdc3VM5cu6htRR+J7r8REW/UvwXiOMRA38kpMlrGE9RIklif44znEGYiPZVpYJupBnPIJc5gv1zNSNtcd+1wMUZfWnBnzcM7ROZPrFr146xHlxVdiiDNk4g8hopN6cQTi7SOmtSDescq5MjPEka8FaZYjrHk99ELloliwF4eHg+gk7EJGi33IHGVkESvaP6LvmrxLIMMJeA7z5TqNH7V1jU8yI/b29IR4o+DYykMc+UZ8skust6XTCC2biZuzpecnId32WvJLltOS6wPiXJ0QF5QjIeI1R3QlzP1iJ/nW2LUt1rMUluojT9Y1yu4tZMhjEOTkOqOs0XedlxaUS1gfIdqGPHXMaRnz5jz03yi/BWX9Vc9WHXNlBRmW9zwH9SNw3Wor05ABHPVvL1in+WMdpsc4x1fMQ1CG+LAOHM0nxCEryslYzocw84pxUbcWyjH/pbBg/wh/jjbbi6IoiuLg4FWXk34ji68VjLwuQN59v1YA6tR79YXXBUZeDYCcz1cG5r6lKjLnn7m0FryewLdIbetDXnuBnv1L+mj7XHnSeXUjYxqv/vG6S6u8+rXKR8inDuosWS55/ZYWmfOD8lp9J+bP9a6lZb8+guwD03wNqeUj7Ir9kjKxniiD/zdpfYUtkM/Xc3rfCHYxUQv2oiiKoiiKI/IC8nxxKHpk0AvmdDup7iN1XGrUgr0oToFDnXiLoiiKojh8LoivdSyKC52lxbq7CUVRFEVRFJnaYS+KoiiKoiiKA6Z22IuiKIqiKIrigKkFe1EURVEURVEcMLVgL4pThK+nq/fVi6IoiqJYQy3Yi+KUqW+LKYqiKIpiDbVgL4pTonbWi6IoiqJYz2bz/wOZAt1yhU9O1wAAAABJRU5ErkJggg==" alt="" />
它主要是这样的一个意思key[0]-key[j-1]是已经排序好的,你要插入的是key[j],因为你在排序的时候是交换两个数,对于其余数的顺序是不影响的,也就是除了要插入的数的位置在改变,其余的相对位置是不变的,注意是相对位置,所以可以保证正确性。
</pre><pre class="java" name="code">
下面是一段java代码:
package InsertionSort;

//插入排序
//我第一次看完本来是想把一个数组依次放进另一个数组的,与key数组比较然后放入target数组的对应位置
public class Sort {
	private int[] key;
	
	private int target;
	public Sort(int[] A){
		this.key = A;
	}
	

/*	private int[] ChangePosition(int[] a,int i,int j){
		int m;
		m = a[i];
		a[i] = a[j];
		a[j] = m;
		return a;
	}*/
	
	public int[] Sorted(){
		int i,j;
		
		for(i=1;i<key.length;i++){
			//j用来表示位置
			j = i;
			target = key[i];
			
			//顺序排列<,倒序排列>
			while(j>0&&target<key[j-1]){
				//单方面赋值
				key[j] = key[j-1];
				j = j-1;
			}
			
			key[j] = target;
	}
		return key;
	}
}


package InsertionSort;

public class Main {
	static int[] a = {5,1,9,7,6,4,3,3,3};
	
	public static void main(String[] args) {
		Sort sort = new Sort(a);
		
		System.out.print("排序前:");
		for(int i=0;i<a.length;i++){
			System.out.print("  "+a[i]);
		}
		
		sort.Sorted();
		
		System.out.print("\n排序后:");
		for(int i=0;i<a.length;i++){
			System.out.print("  "+a[i]);
		}
		
	}
}


排序前:  5  1  9  7  6  4  3  3  3
排序后:  1  3  3  3  4  5  6  7  9


技术分享

对于插入排序的性能分析是最差O(n^2);

插入排序

标签:

原文地址:http://blog.csdn.net/cause_day/article/details/50990450

(2)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!