JavaWeb学习笔记(十七)—— 数据库连接池
一、数据库连接池概述
1.1 为什么使用数据库连接池
如果用户每次请求都向数据库获得连接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示:
aaarticlea/png;base64,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" alt="" />
1.2 数据库连接池是什么
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正式针对这个问题提出来的。
数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。如下图所示:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4AAAAHqCAIAAADaprcVAAAgAElEQVR4nOydeVwT1/r/8721gkASCGEHQUABF9wo4IILirghigruC4iKIi4oQlU2C4iAApVgXXDfV1BRca07EFrv91pvv63+bGurdanXpXpBlPn9kTYiJCFMJjmT5PN+ff6oAWaec55z8nx6ZuYMhwIAAAAAAECDcEgHAAAAAAAA9IvmGdDuM2dCEARBEARBEAwoBEEQ1IQ4AACgQWBAIQiCoJkcDqewSgxBEKQBwYBCEARBM7vDgEIQpEExbEABAABoKTCgEARpTDCgAAAAKAoGFIIgDQoGFAAAAEXBgEIQpEHBgAIAAKAoGFAIgjQoGFAAAAAUBQMKQZAGBQMKAACAorTEgOZfu5p4YH90fv74hIRhkZG9Ro3q3K9f265d7du6WtjZ8QQCQ2NjAyOjTw0MDAwNW5mY8AQCgbW1ZevW9u3auXt7ewUG9g8LC4qaPXHZ5zGigpUlxQUV5cQbpV1CCtDVjAgGFAAAAEWx0oCKKisSD+yfvjI1YPKk9j17CGxsOByOEZ/v2KGDV0BAv7CwoKjZ4xPiIzMzF274aun2bcv27E46eGBlSXHGydJVp06ml55YWVKSdPBAws4dCzd8NTsne0pS4qiYmAETJ3gNGuTs6ckXClu0aGHp4NChZ8/A6dMjMzNXlpSIxJXEG84eIQXoajUJBhQAAABFscaA5l+/tnDDV0GzZ7l7exsaGxvz+R6+PoHTpkWkpyfs3LHm4gVmT5d39cryvXtmrMoYMmOGZx8/U0tLIx7Pw8cneM6cuG1bWbVihBTonvS5q2FAAQAAUBRpA5p24njokiUdevUyMDS0adOmX1hoZGZmeukJza/QZJwsnZm12n/CeAe3dq243E59/MbFL80sO02wc5ACHUsBuroQBhQAAIAEIgY0vbR09IL5rd3dWxkbfzY4MDwtjVU+I+vc2Yj0dO+hQ034/LZdu4YuWZxxspR4VEgB8ajQ1aoLBhQAAABFadaAfnnj+oxVGe19fY15vJ4jRszNy/3y+jXiBViBCirK54tEPYODjXm8Tn5+c3LXFlRWEI8KKSAeFbqatmBAAQAAUJSmDGj2+XPDZ83iCYXOnp5TU5Lzrl4hXm6bpfxrVyPS0928vATW1sFzonIunCceElJAPCR0NQ3BgAIAAKAo9RvQzDNlAyZOaMXl9ho5csX+fcSLq4pKOnjAb3QIV2A2ODw8+/w54vEgBcTjQVc3SzCgAAAAKEqdBnTt5UuDw8ON+fx+oaFpJ44Tr6YMKrPsdMCUyVyBYEhERO6Vy8TjQQqIx4OuVlIwoAAAAChKPQZUJK6ckpzEMzfvERS06tRJ4hVUTVp1+lSvUaMENjYzMjLYtoclUoCuZmdXw4ACAACgKDUY0NTio+26d3fs0D5u21biVVMDWr53j3Pnzu0+81pZUkI8GKQAXc3yroYBBQAAQFGMGlCRuHLSiuXGfP7Y2EUiLXlUmZmGV1aMWxrHFwrD074gHAlSoKkUoKvpdTUMKAAAAIpizoDmXb3iPXSIravr8n17iddIIko5ctjB3b1HUFD+tatEAkAKNJYCdDXtroYBBQAAQFEMGdBVp046tm/vPXQIKe/FEuVfv9YjKMilc2fNP52NFGgsBehqVboaBhQAAABFMWFAV5YUm9vaDomIYNuDOEQkElcGR8+1buP0xTHN3Y+IFGgsBehqFbsaBhQAAABFqWxA044fM7OyGh8fT7wWskoTli0zt7XVzDPRSIHGUoCuVr2rYUABAABQlGoGNPvCecvWDsHR0cRLIAsVFrfEvm3bNV9fVOtZkAKNpQBdzUhXw4ACAACgKBUMaEFlhbu3d7+wUFyLlKeAyZM9fHzU9+5ypEBjKUBXM9XVMKAAAAAoSgUDOnzmTGdPz4KKcuKVj7UqqKxw8/IavXCBmo6PFGgsBehqproaBhQAAABF0TWgy/fuaWViknLkMPGyx3JlnCzlCgSJB/YzfmSkQGMpQFcz2NUwoAAAACiKlgEViSvbdus2NjaWeMHTCoUtjWvn1Z3ZYyIFGksBuprZroYBBQAAQFG0DGhMwTq+UJh//RrxaqcVWld+Q2hnt2RLEYPHRAo0lgJ0NbNdDQMKAACAomgZ0A69eo5euJB4qdMijVu6tJOfH4MHRAo0lgJ0NbNdDQMKAACAoppvQFedPtWiRYs1Fy8Qr3Oq6miss2dsyl//PDLWk8MJyVPTudZevtTS0JCpd/MgBRpLAbqa8a6GAQUAAEBRzTegE5cva9utK/mCqrKiQzicDyVZ7fLs0yciPZ2RQyEFGksBuprxroYBBQAAQFHNN6DeQ4eOnBdNvKBqXUkevXBhj+HDGTkUUqCxFKCrGe9qGFAAAAAU1XwD2trdbU7uWqV+OT+EI6V+8ZP3eVVebw7HOfZI9Iefe4492uSPmjxs4x8dGev54YPe+WIZFyVlH02JMORovkjk7OnJSHVHCjSWAnQ1413NgQEFAABANd+AmpiZxW/f3uSvpcR6/l3t/qpkksL28eeS0hgSXa/gyfmpgh81Pt2RsZ4f6qi8SD5eE/qoJMsPsokwFHXIkcNCW9tmdTVSQDwF6GrGuxoGFAAAAEU134C2NDRMO36sqV/7a+3kwyf5IRyO59ijjT4/Guv84ZO83pzGCzOSRRcFP5L10w+HlReJgpKsIEjFYSjSqtOnDAwNm9XVSAHxFKCrGe9qGFAAAAAU1XwDyhcKV5aUNPFrR2OdPyycKP5cYS38uCTL+dFfFxBlH1ZeJArWhBQFqTAMhUo6dNDQyKhZXY0UEE8BuprxroYBBQAAQFHNN6AO7m5Lt29r4tdk1Mimaqfckiz5fQU/+vgOtvqE5MmNREFJVhSkwjAUauGGr8xtbJrV1UgB8RSgqxnvahhQAAAAFNV8A9qpj9/0lak0SzKdNSElS7KchRkaJbnZa0JKleSpKSkePXyb1dVIAfEUoKsZ72oYUAAAABTVfAMaEhPTZ+zYpn5N9o1lvfMV3L6mQklu/NMPn8iLpIm74ppzj51SJdl3+LBhkZHN6mqkgHgK0NWMdzUMKAAAAIpqvgFdvm+vwMZGJK5U/GvyHtRt8rlgWiW5wWHF0SEfDqswEumpm/FcMI2SLKqs4AkEi4s2N6urkQLiKUBXM97VMKAAAAAoqvkGVCSuNLezi920selfVmZnxI/eB0i/JCs6nbwfHY115nA4fx1W4c6IHz6nWZIXbdhgZmUlqqxoVlcjBcRTgK5mvKs5MKAAAACo5hvQwipx2NKlXf39m/tX+qz2vr7MvlAHKdBYCtDVzHY1DCgAAACKomVA869d5Zmbf757F/FSpxWK377dmMdb8/VFBo+JFGgsBehqZrsaBhQAAABF0TKghVXi8fFLXTp3Zuqasg6roKLcqUOH0MWxjB8ZKdBYCtDVDHY1DCgAAACKomtARZUV7t7eYxYtJF7zWK6gqCinjh0L1OBdkAKNpQBdzWBXw4ACAACgKLoGtLBKnHbiuImpadzWLcTLHmu1ZEuRMY+XWnxUTcdHCjSWAnQ1U10NAwoAAICiVDCghVXimIJ1ppaWTb+rUC+VdPCAiZlZ1No1aj0LUqCxFKCrGelqGFAAAAAUpZoBLawST1uZamFvn3GylHgJZJXSS0sF1tbjE+I1cC6kQGMpQFer3tUwoAAAAChKZQNaWCUeuzjWwt5+ZUkx8ULIEiUdPCC0tdXkLYNIgcZSgK5WsathQAEAAFAUEwa0sEocnvaFmZXVki1FxMshcS3auMHE1HTSiuUaPi9SoLEUoKtV6WoYUAAAABTFkAEtrBIvWF/IEwjGx8c3+d5CXZVIXBm6OJYnMIspWEckAKRAYylAV9PuahhQAAAAFMWcAS2sEqcdP+bSuXNXf/+ss2eIF0gNK7PsdIdePVt7eJC9OIsUaCwF6Gp6XQ0DCgAAgKIYNaCFVeKCivKg2bNMLSwi0tP0ZHFIVFkxLSWFZ24+ODz8yxvXiceDFKCr2dzVMKAAAAAoimkDKtGy3btdunRx8/Zetmc38ZKpViXs3OHs6dna3T1h5w7iwSAF6Gr2dzUMKADaRFlZ2YIFCxp/XlhYeP78+Sb//P79+y9evGA8qtzcXJlRNZfbt2+PGTNGyV8uKysbNGiQzIMkJSWpHoweog4DWlglFokrp6Wm8IVCn2HD1LcTO0ElHTroO2wYVyCYuGyZOl50hBRoUQrQ1coLBhQAtnP37t2qqirJf9++fZvP50vcXllZ2caNGyWfR0ZGcjicJl1gWVkZh8OR+rbbt2/36NFDpiUtKytr37698m41MjLSwMCgSROs2GLm5uZyOBwlzytpi8wm5+bm8ni8X375RcGfv3z5snXr1jItbP1gpD2sD6jJgEq09vKlUTHzeEKhz7BhK/bvI15HGdGyPbu7DxxozOcHRUWtvfQ18XiQAuLxoKuVFwwoAGynpqbG399fYpVu377t4OAgsVZSzyfxUsqsQZaVldV3ZhI7y5GP8vbr5cuXrq6ujQ1odHR0gw9zc3NlWsz6zVSGBm1pEEzr1q2bDF7ya/L8bm5urvLB6AZqNaAS5V65PGbhAr6Fhftnn83KziqoKCdeVmnoy+vXwtPS2nXvzhMKR82PWfP1ReIhIQXEQ0JXN1cwoABoAdKFT6kBrb94efv2bUtLS2Uuwdf3r43/WR95K6CSdcFm0WBltP4iboPYGrdCsswp00oqCL5xW+QdRMFaKQyoGkvajeuRmZnuPt58oTBgyuRlu3drxXMbInFlws4dAydNNOHznbt0Dk9LY8OTRkgB8ajQ1fQEAwqAFiBZHdy4caPEdd25c2fu3LlSd6i8VVLdgMpcd1R8vb6mpubHH39s3BbJf9S3qn379m3wiaRdsbGxjYOs78V37NjR4A8bH2Tt2rUKruzv37+foqjIyEhpT8KAakApRw4HTpsqtLOzdHQMnD4tbusWEfvuoRRVViwpKho4aZK5ra3A2nrQ1ClJhw4SjwopIB4VulpFwYACoE1IDeiPP/4oWb27c+eOxM/V/7WysjKZd2RK/9zf35/H450+fVrBJXjlDaiSN4Aqbpcyi7iNPasUSQ9ERkbWX1tV8tbYly9fnjp1SvL7PXr0kLSugQHNzc3VmftBJT0m83MyNU9c+fnuXYPDwy0dHbmmpl6BgZMTE1OLjxJcKBKJK5MPHxqfEN9t4EATU1MLB4eAKZOXbClioWNACrRL6GqpYEABYDWSy8eNL2q3bdt2wYIFkrsYJf9ssOZXU1MjWSWV/E6DP5fcObp27VrVV0AV3HBZ/zEpxUiXHhVcLm9Ag+XbW7duSYOROE55t6U2vmX266+/lvxaff8qNaDSFDT5YJO2UH8wNPiceHleWVI8cfkyr4AArpkZXyjs4u8/cl50TMG6zDNl6q7BGSdLo9auCZo9q3Pfvjyh0JjH69K//7ilcalHjxDvFqSAeLegqxkXDCgAWkNkZKSDg4NkzVJq0XJzc0eMGCF9TF7x8zeKL8ErfihHgsSAxsbGyls3lbc22SCM+jsl1V/+lBjfTZs2Ndkb8u4fiIyMlJyx/pZVL1++XLNmjfR3JCup0pZKr85LDWj9pVaJDW2wtqrVNM6R9HPiJflDjaysWLF/35TkpH5hYc6dPQ1ateKamrp26dIzODg4em54WtqSoqKVJSX51642t/SuuXgh5cjhxUWbp6WmDpsZ6TN0aBvPTiampp8aGDi2b987JGTSihUr9u/T9pU2pECLpJ9dDQMKgHYgWZBrcA39zp07wcHBp0+f3rdvn+TXFF/LbtKAylwyrE/jldEmnZlkbbLx1fP6Vk96sbv+8WtqajIyMuQdtv49oIqf5W9wRumJJCvBUjdc/zgGBgbBwcH1L8HXb6by5lvrIF6J5amgsiL58KG5ebljF8f2Cwvr0LOnlaOjEZfL4XAMWrUys7K0c3V19vR09/bu1KdPF//+3QcO7DrA39PPz8PXx7VbV6eOHe1cXXlC4SctWnA4HENjYytHR48ePr1DRo2KiZmdk5N06KCWPqSMFOie9KSrOTCgALAf6RVqqeuqqakJDg7evHmz5NF46YKigs2JqEb3gG7evLm+m2xgQGXul9TAgNb/E4mBU+bqufTICu7plCLvSSBpV7x8+TIiIkL6uYJNqSRWWIKkA3/55ZfCwsLi4mLJ0m9YWFjjS/ASdN6AUixbAVVS68pvZJadXr5v74L1hXPzcmeuXh2e9sWUpMTxCQnj4pdOXPb5pBUrwtPSZufkzC8Ufb57V9rxY7lXLhMPW5eEFKCr6YkDAwoAm5E+My75Z/3dl6QLhPUdmOIH0iUeUfrAkMwbTKU0sLYyj1/fpUnM6IgRI5rcRr6+tW1wcbxx/PLe3iRdsGxguCVLm/Hx8crsZi+9U1byT5n3gFJ/Z0FXL8HX/5x4TYIgSE8EAwoAe6mpqRkyZIh0SbLBnYvS7Y2ki3nUxxsJNTiUZK2xvl1rsMinzCX4xo5T+vsN/im9F1PmQeS5ZGXewCSzLfV/1OTyp5QGb2ZSbEB17Cn4xt/+MKAQBGlMMKAAaA2SNb+kpCTJxesGS3fSnTUb2C/pU/Dt27e/fv16/Zs+G9y+2VwDKtnkSDHytn9X3oDW94jStkhvh21gQOU9mSTZP7+xMW2wuZL+GFB5nxOvSRAE6YlgQAFgNYrfPFT/2R2JJ5P5BJLkp9TH/kyyvHrq1Cnpgz71DWiDGyulKHjkSBn/Km1U+/bt79+/32B/KMX3A0j+9u7du5JH/iVt+e677xocxNfXt/FhJX++efPmBhtIdejQof4nDQxo/Y3xVdzoVCuAAYUgSGOCAQVAO2h8gbvB1fMOHTrExsYqvn5d34BK/1vBQmaDNT/FC4HNNaDNugTf+AJ648XOxg9gybwhof7GqA1+KnMFVLLwrA9vRYIBhSBIY4IBBUA7yM3NlXojmSudyrz1p75pkx5Q5qKmTCOo2GI2/qnkIafG1k3Fe0Abt4WSZY7lvQ5K+ueNX0kv7xK89BQKtoXSAWBAIQjSmGBAAdACampqiouL61+Ob+CcpM/lKL5Psf4uTtLHm5Q3oJJn8B8/ftzk3kn11xcbvA+pwZP4ypxXcVukPfDjjz9KV3NzcnLkbcYk/f3Gq7n1uyI6OrpBhA3uu9U9YEAhCNKYYEAB0CYavFdT6p8iIyPbt2+fmpqq2INKTZv0rlCqOQZU8fvQlbkEHxkZKblK3mD/ecXnVdyWxj+qv72oghsGGr8ySvGm+srfY6ClwIBCEKQxwYACoDXk5ubWXziUXMiWrEdKnZxklVTeDYuSuyQl70+S9yy89DcbGMH6mz3JpEl/FhkZ2WDhU7qm2+QD5tLXtUuRZ0Dr37Ip3StUZgMbn1feJlb1/0RJf6yNwIBCEKQxwYACoAVIrE9jFyXzZlCpq5M+kdPgsZvGew/JvIDeeDukBpvSKxNMA2Ruxqn4Sf/6V/MbtKVBhJIfNd4cVKYpl3kPaJNv9VTwlikdAAYUgiCNCQYUAPYivZTc+GkYyefyVuMarxdSf++s1NhHylsBrX9SZW5/VMaAMoV0B6X6L3NS4A6Vv7Kvz8CAQhCkMcGAAgAAoCgYUAiCNCgYUAAAABQFAwpBkAYFAwoAAICiYEAhCNKgtNWAPn369Pr163v37l29enX0vHljQkP79O/fsbOnk7Oz0NKSx+cbGRsbGBoaGBoaGRvz+HwLKysnZ+dOXbr09fcfGxYWM39+VlbWvn37bty48ccff5BuDQAAkAcGFIIgjUk7DGhtbe0333zz1VdfzYqK+szXl29m1qJFC3tn5869evUJCRk2c+a4+KUzVmXMF4nitm1NPLB/ZUlxeumJVadOrjp1Mr30xMqS4sT9++O2bY0RFURkpI9bGjcsMtJv1EjPnj3tnJw+adHCTCDw6dkzas6cjRs33rx5s7a2lnSLAQBA08CAQhCkMbHXgFZXV1+8eHHFihW+vXq1MjKydnDwCRwUPHdO1No1qcVHCyrKmeqCgorylCOHo9asGTEnyjsgwNLWtpWRUa8+fZKTky9dulRTU0OqBwAAQJPAgEIQpDGxzoA+evRo48aNQ4OCjIyNndzcBk6cMDsnZ/WZMk12SmbZ6ZlZqweMH+/Yrp0JlxsUHLx58+YnT55ouCsAAECTwIBCEKQxscWAPn/+fOPGjX79+hmZmHgHBExJTsosO028dwqrxBknSyetWOHl729kbNxvwICioqKXL19qpk8AAECTwIBCEKQxETagdXV1ly9fDh03zoTH+2zAgJmrV+ddvUK8U2Rq7eVLEenp3fv1MzYxmThp0vXr1+vq6tTaOQAAoElgQCEI0piIGdCampotW7Z4dOxo16ZN6OLY7PPniPeFklp9pmz0/Pk2Dg4dO3fevn3727dv1dRFAACgSWBAIQjSmAgY0Ddv3qxZu9bKxqZL714xBetE4krivUBDosqKufl5nXx9bezs8vPzq6urGe8oAADQJDCgEARpTBo1oLW1tevXr7eysfEOGLhsz27ijWdE8Tu2d+vXz8bObtOmTe/evWOwuwAAQJNotQHNv3Y18cD+6Pz88QkJwyIje40a1blfv7Zdu9q3dbWws+MJBIbGxgZGRp8aGBgYGrYyMeEJBAJra8vWre3btXP39vYKDOwfFhYUNXviss9jRAUrS4oZ3GtFT4QUQM2S5gzomTNn2rq5dfL1/Xz3LuLNZlxLt29r7+Xl0aHDhQsXmOoxAADQJFpkQEWVFYkH9k9fmRoweVL7nj0ENjYcDseIz3fs0MErIKBfWFhQ1OzxCfGRmZkLN3y1dPu2ZXt2Jx08sLKkOONk6d/7Q5ckHTyQsHPHwg1fzc7JnpKUOComZsDECV6DBjl7evKFwhYtWlg6OHTo2TNw+vTIzMyVJSVaer0OKYDYKU0Y0IcPH44JDbVp3XpuXq4Ojx6RuHJ2Tra1vf24CRMePXqker8BAIAmYbkBzb9+beGGr4Jmz3L39jY0Njbm8z18fQKnTYtIT0/YuWPNxQvMni7v6pXle/fMWJUxZMYMzz5+ppaWRjyeh49P8Jw5cdu26ufiHFIAMSj1GtC6urrdu3ebW1gMmzEj/9pV4q3VgPKuXhkyfbrQ0nL//v2qdB0AAGgYdhrQtBPHQ5cs6dCrl4GhoU2bNv3CQiMzM9NLT2h+OSPjZOnMrNX+E8Y7uLVrxeV26uM3Ln4pS3YMRAogrZMaDejLly9Dx41zcnPTyWvuihW/fbuDi8uESZP+/PNP2h0IAACahFUGNL20dPSC+a3d3VsZG382ODA8LY1VPiPr3NmI9HTvoUNN+Py2XbuGLlmccbKUeFRIAfGoIOWlLgN669YtJxdn/7Cw/OvXiDeSiPKuXukTMsrVze3777+n14cAAKBJ2GBAv7xxfcaqjPa+vsY8Xs8RI+bm5X7J7iJSUFE+XyTqGRxszON18vObk7u2oLKCeFRIAfGooCalFgNaXFxsZm4ekfYF8eYR15TkJIFQWFpaSqscAACA5iBrQLPPnxs+axZPKHT29Jyakszal5LIU/61qxHp6W5eXgJr6+A5UTkXzhMPCSkgHhKkQMwbUFFhodDaOmHXTuJtY4mWbCkyt7TYvHkz3aIAAACagJQBzTxTNmDihFZcbq+RI1fs30f8S1tFJR084Dc6hCswGxweri3vWEEKIM2LYQOakZFh5+S0sqSEeMNYpeTDh63s7desXatCaQAAAPWieQO69vKlweHhxnx+v9DQtBPHiX9XM6jMstMBUyZzBYIhERG5Vy4TjwcpIB4P1EBMGtCMjAx7Z+dVp08RbxULlXb8mLWDw9rcXNUKBAAAqAtNGlCRuHJKchLP3LxHUNCqUyeJf0WrSatOn+o1apTAxmZGRgbbdiFECiCyYsyAbty40drBHu5TgdKOHxNaW+/cuVPlMgEAAMyjMQOaWny0Xffujh3ax23bSvybWQNavnePc+fO7T7zYs/lQaQAIi5mDOiZM2fMhMKUI4eJt4flWr5vr6lAcOnSJSaKBQAAMIkGDKhIXDlpxXJjPn9s7CKRPj2qLKqsGLc0ji8UhpN+PBcpIJ4CSCIGDOi9e/eEFhYLv1pPvDFaobl5uRZWVr/++itDJQMAAJhB3QY07+oV76FDbF1dl+/bS/yrmIhSjhx2cHfvERRE6s0sSAHxFEBSqWpAa2trP/P1DYmJId4SLdLwmZG9+/Z9//49c4UDAABURa0GdNWpk47t23sPHaLnhT//+rUeQUEunTtr/ulspIB4CqD6UtWApqWnd/D21qtlfNVVUFHe1tMzJyeHucIBAACqoj4DurKk2NzWdkhEBJ4CKawSi8SVwdFzrds4fXFMc/cjIgXEUwA1kEoG9O7duzxT09Tio8SboXVK3L+fy+f/8ssvjJYPAACgj5oMaNrxY2ZWVuPj44l/8bJKE5YtM7e11czj50gB8RRAjaWSAQ0KDh4xexbxNiip6BCOc+wR4mFINXjq1NBx4xgtHwAAQB91GNDsC+ctWzsER0cT/8plocLilti3bbvm64tqPQtSQDwFkEzRN6AVFRUCC4vcy5dUiuBorLNnbEoz/yo6hMPhhEQ3+3RHxnpyOBzPsUfJ93thlTjnwnmuqek///lPposIAADQgXEDWlBZ4e7t3S8sFJd95Slg8mQPHx/1vbscKSCeAkie6BvQoODg0QvmqxrB0VhnDk3oLGf+dToa5lUtCpo9C4ugAACWwLgBHT5zprOnZ0FFOfEvW9aqoLLCzctr9MIFajo+UkA8BZA80TSg9+7dMzYxWXPxgqoRHI11lmMlU2I9ObIXR4+M9eRwQvLonTE6RNVF0JRYT5r2t5FWnykzMjb+7bff1FBKAACgeTBrQJfv3dPKxAT7QzepjJOlXIEg8cB+xo+MFBBPAaRANA1oSmqq38hgBiJQnwHND5HtEY/G9m78+dFYZyVd6d9LtkzdTuoTOGj16tVqKCUAANA8GDSgInFl2x9t8/oAACAASURBVG7dxsbGMnVA3VbY0rh2Xt2ZPSZSQDwFkGLRNKBt3dxiRAUMRKA+A0rn4n5Tl+brHZMpAzo7J6dj585qKCUAANA8GDSgMQXr+EJh/vVraipdOqZ15TeEdnZLthQxeEykgHgKIMWiY0B//vnnVsbGX964zkQEeb3VaUCVtYn5IRwOp3d+07+j0h2ospR7+dKnLVs+fPhQPQUFAACUhUED2qFXz9ELFzJ1NH3QuKVLO/n5MXhApIB4CiDFomNAt23b1oWxJGmFAc3rLTWenp7MXoIvrBJ7eHnt2bNHPQUFAACUhSkDuur0qRYtWjDwkABxfbRPi0qPHzSptZcvtTQ0ZOrdPEgB8RRATYqOAY2Ojh4WGclQBOw3oPXcZ0ie9J8MGtCASZNiY2PVU1AAAEBZmDKgE5cva9utK1PfkAQVHcKRU4bUIs8+fSLS05EC3UgB1KToGNC+/ftHZDCVoXr2rnm3a2rWgH6YAMwb0ClJiQGDB6unoAAAgLIwZUC9hw4dOS9aTUVLk9Kw+xm9cGGP4cORAt1IAdSk6BhQJ2dnxm7UVfNDSEzeA/qXmDegC9YXtvPwUE9BAQAAZWHKgLZ2d5uTu1b5796/b3Cq94Uv7/O/L5pFf/i5dAMTBT9q8rCNfyR5cclf9M6XVXpkH02JMORovkjk7OmJFOhGCqAmxaFhQE0FAsb2FTsa6yzH+emPAV2+d4+FlZV6CgoAACgLhyEDamJmFr99e5O/JtlT+e8v3g/Xmj7+XOJCpFuU/PUNLOunCn7U+HRHxnp+sCzyIvl4+e2j0iM/yCbCUNQhRw4LbW2RAt1IAdSk6BhQA0PD9NJSZiJQswFtFqQMaOrRI8ZcrnoKCgAAKAtTBrSloWHa8WPKfJd+9EWaH8LheI492ujzj1YT8npzGq+BSda3FPxI1k8/HFZeJArcj4IgFYehSKtOnzIwNEQKdCMFUJOiY0CNTUzSThxnJgI1G1DlPCXhFdBZ2dkmPJ56CgoAACgLUwaULxSuLCmh+RUt43OFtuNj9yPnRzK/5P8+rPxiIdf9KApSYRgKlXTooKGREVKgGymAmhQdA2puYcHYG6vkOz/V34Sk4is35Yh5Azpo6pQWn35aU1OjnpoCAABKwZQBdXB3W7p9G80vfwU25e9v4EbeQvL7Cn7UcCPnD4TkKShDct2PoiAVhqFQCzd8ZW5jgxToRgqgJkXHgHbw9JxfKGImAnkjskmaMqApsZ5K3vPRTDFvQGfnZBubmKSmpqqnpgAAgFIwZUA79fGbvjJVmS9/hpbflHQ/cpYkaLifZi+/KeV+pqakePTwRQp0IwVQk6JjQIcFBU1asZyR06fEesobkSqugKpt7wbmDWjoksUBgYEmJia3b99WT1kBAICmYcqAhsTE9Bk7Vpnv0sb38PXOV3CnoKy/UtL9yNhzWvqJvEiauAGxObczKuV+fIcPY2qPbaSAeAqgJkXHgCYmJfmPC2Pk9ApsomoGVO7+9iqLeQPaOzg4PT09KSmpV69e79+/V09lAQCAJmDKgC7ft1dgYyMSVyr+NXnPRDf5CDYt99PgsOLokA+HVRiJ9NTNeASbhvsRVVbwBILFRZuRAt1IAdSk6BjQEydOuHbsyMTpFVlJlQyoum4AFavDgNo7O589e7a6utrDw0MkEqmnsgAAQBMwZUBF4kpzO7vYTRub/mVlNqH86NuevvtRdDp5P/p7NxXn2CNNbEL54XOa7mfRhg1mVlaiygqkQDdSADUpOgb01atXLQ0Mss6eUfX0Ch9UV8GAfrS7GNNi2ICmnThuYGj43//+l6Koq1ev8vn8+/fvq6W2AACAQpgyoIVV4rClS7v6+6vhG1hn1d7Xl9l3FyEFxFMAKRYdA0pR1ICAAAZuA80PUfCckPyr800ZUDUuf4oZN6ChSxYPGT5c2rHR0dFBQUF1dXVMVhUAAFACBg1o/rWrPHPzz3fvUs/3sK4pfvt2Yx5vzdcXGTwmUkA8BZBi0TSgO3bs8PDyUvHc0SGKbBxdA6rcJk30xbABde3Y8cCBA9KOffnypb29/f79+5msKgAAoAQMGtDCKvH4+KUunTvjgmaTKqgod+rQIXRxLONHRgqIpwBSIJoG9PXr13wzs+X79tI/99FYZ4XbJNW/PbnRH9K4c5QpMWlA47ZtFVpaVldX1+/bY8eOWVlZ/fHHH4xVFQAAUAJmDaiossLd23vMooVq+zbWEQVFRTl17FigBpuIFBBPAaRANA0oRVHxCQm9goJonzg6pIk7gj82oH/ZPimy/V9TppZt+iwgIEXW9p/jxo0LDw9XtZgAAEBzYNaAFlaJ004cNzE1jdu6hfiXLWu1ZEuRMY+XWnxUTcdHCoinAJIn+gb0yZMnXD4/6eABOic+Guvc5EaesbIWMv96IE6my8zrrVXuM2HXTlMzs+fPnzfu20ePHgkEgrNnz6paTwAAQGkYN6CFVeKYgnWmlpZNvxZSL5V08ICJmVnU2jVqPQtSQDwFkEzRN6AURaWkpnbx82typ7HGSsnPY/wqeXSINrlPkbjSw8srKztbXt9u3brVxcXl9evXNCsJAAA0E3UY0MIq8bSVqRb29hknS4l/8bJK6aWlAmvr8QnxGjgXUkA8BVBjqWRAq6ur27i4zFy9mngztE7TUlPburm9fftWXt/W1dUNHDgwLi6OZiUBAIBmoiYDWlglHrs41sLefmVJMfHvXpYo6eABoa2tJu/ORAqIpwBqIJUMKEVRX3/9tcDCIvNMGfGWaJHSThznm5ldu3ZNcd/evXuXy+VWVVU1r4YAAAAt1GdAC6vE4WlfmFlZLdlSRPwbmLgWbdxgYmrK1ButkQItSgFUX6oaUIqiFsfFde7VC4+PKal15Tfcu3VbkZioTD3Izs7u2rVrbW2tUtUDAABUQK0GtLBKvGB9IU8gGB8fT+PGLd2QSFwZujiWJzCLKVhHJACkgHgKIKkYMKBv377t1afP0Ihw4o3RCvmPCxsQEPDu3Ttl6kFtbW337t0zMzOVqh4AAKAC6jaghVXitOPHXDp37urvz8C79LRNmWWnO/Tq2drDg+x1cKSAeAogiRgwoBRFPXr0qLWT0+TEROLtYbnClix2dnVt1h6f3377LZfL/fHHH5X/EwAAoIEGDGhhlbigojxo9ixTC4uI9DQ9WYcTVVZMS0nhmZsPDg//8sZ14vEgBcTjgQqZMqAURf3www8WVpazsrOJN4m1mv7FSitr63v37jW3KsTHx/fv3x/v5wQAqBXNGFCJlu3e7dKli5u397I9u4l/OatVCTt3OHt6tnZ3T9i5g3gwSAHxYCCpGDOgFEXdvHlTaGk5KyuLeKtYqOlfrLSwsvruu+9oVIU3b960bdt28+bNNP4WAACURJMGtLBKLBJXTktN4QuFPsOG6eQ24EmHDvoOG8YVCCYuW8bOxySQAoigmDSgFEV9++23ltbWk/Fk2ccaFxdnbWt769Yt2oXh4sWLZmZmDx8+pH0EAABQjIYNqERrL18aFTOPJxT6DBu2Yv8+4l/XjGjZnt3dBw405vODoqLWXvqaeDxIAfF4oMZi2IBSFHXnzh3HNm2GzZghwv9tVIkLKsoHTZ7s7Or6008/0S0KfxEZGTl27FgVDwIAAPIgYkAlyr1yeczCBXwLC/fPPpuVnVVQUU7825uGvrx+LTwtrV337jyhcNT8mDVfXyQeElJAPCRInpg3oBRFPX36tHffvt369V1z8QLxFhJU1rmznXr29A8IePbsGa1y8BH/+c9/rK2tjx49qvqhAACgMQQNqERf3rgemZnp7uPNFwoDpkxetnu3VjwiIxJXJuzcMXDSRBM+37lL5/C0NO19zAUpgDQmtRhQiqLevn27YNEiKzu7uK1biDeSiBZt3GBhY7M0Pp7BXTwPHTpka2sr8/XxAACgIsQNqFQpRw4HTpsqtLOzdHQMnD4tbusWFl5SE1VWLCkqGjhpkrmtrcDaetDUKUmHDhKPCikgHhWkpNRlQCUcO3bMwspqWETEl9evEW+qxpR/7eqgyZOtbGxOnTqlSu/JZNSoUVFRUYwfFgAA2GNAJRKJKz/fvWtweLiloyPX1NQrMHByYmJq8VGCa3IicWXy4UPjE+K7DRxoYmpq4eAQMGXyki1FLDRnSAHEcqnXgFIU9fjx4+CQEAcXl4UbviLeWg0oRlRg16bNmNDQp0+fqth1Mvntt99MTU0vX76sjoMDAPQZthnQ+lpZUjxx+TKvgACumRlfKOzi7z9yXnRMwTp1vwhaJK7MOFkatXZN0OxZnfv25QmFxjxel/79xy2NSz16hHi3IAXEuwWiLbUbUAklJSV2Dg49hg5JO36MeJvVpNTio96DBjk4OZWWljLSafL46quv3N3d//vf/6r1LAAAfYPNBlQqUWXFiv37piQn9QsLc+7sadCqFdfU1LVLl57BwcHRc8PT0pYUFa0sKcm/drV5hxVXrrl4IeXI4cVFm6elpg6bGekzdGgbz04mpqafGhg4tm/fOyRk0ooVK/bvw0obUgAxIg0ZUIqiXr9+nZySwjczGzR58mo1/w+ThrXq9KmAiRNMBYK09PQ3b94w1WPyeP/+fZ8+fVasWKHuEwEA9AqtMKANVFBZkXz40Ny83LGLY/uFhXXo2dPK0dGIy+VwOAatWplZWdq5ujp7erp7e3fq06eLf//uAwd2HeDv6efn4evj2q2rU8eOdq6uPKHwkxYtOByOobGxlaOjRw+f3iGjRsXEzM7JSTp0UEufB0cKIJZLcwZUwoMHD+bOm8c3NQ2cOiXjZCnx9quotBPHAyZN5Jmazl+w4NGjR8z2lQK+//57Lpf7v//7vxo7IwBA59FGAypP68pvZJadXr5v74L1hXPzcmeuXh2e9sWUpMTxCQnj4pdOXPb5pBUrwtPSZufkzC8Ufb57V9rxY7lXLhMPW5eEFECKpWkDKuH+/fsx8+fzzcz8gkfEb99OvBeaK5G4csmWoh5Dh/JNTWMXL37w4IE6ekkxaWlpPj4+79690/ypAQA6iS4ZUAiCWC4yBlTCs2fPVmVm2js6unToMD4hPvvCeeLd0aSyzp4JXbzYyc3Nydk5Kzub4I5Ib9++9fT0zM3NJRUAAEDHgAGFIEhjImlAJbx79660tDRkzBhjLtdrgP/0L1ay8NUFORfOT01J7t6vn7GJydiwsNOnT79//17dPdMkFRUVPB7v3r17pAMBAOgCMKAQBGlM5A2olGfPnhUVFQ0cNKiVkZFnjx5jYxcl7t9PcrOxyorl+/aOXrCgo49PKyOjQUOGbNu2jW2bwC9atCgwMLCuro50IAAArQcGFIIgjYlFBlTK8+fPDxw4MGnKFCsbG1OBwCcwcMyiRUuKipq7pwMN5V29Ert50+iFCz4bOJAvENjY2U2dPv3QoUMvX77UfD8ow59//unk5LRz507SgQAAtB4YUAiCNCY2GlApdXV1P/zww4YNG6ZOn97Wza1FixatXV17DBkcFDU7IiM9YdfO7PPnaC+RisSVWefOJuzcEZ6WNnzWLJ/AQAcXl09atHDz8JgeHr5p06Y7d+5oxcri6dOnhULh48ePSQcCANBuYEAhCNKYWG1AG/Dq1atr164VFhbOmzfPPyDA3tHxk08+MTA0tHNycu/atbt/f7+RwQPGjx8SET5izpxR8+aNXrhg9MIFo+bNGzFnzuDw8AHjx/cODvby7+/WtYuto2NLA4MWn37a2slpYGDgvJiY9evX37hx488//yTdSjpMmTJl0qRJpKMAAGg3MKAQBGlM2mRAG/Pu3bvffvutvLz82LFjRUVF2dnZycnJixYtmh0VFREZOWXq1KnTp8+IjJwdFbV48eLk5OScnJwtW7YcP368oqLiwYMHbHiQiBGePn1qYWFx8uRJ0oEAALQYDodT8sP/QRAEaUDabUCBlN27dzs6Or569Yp0IAAAbYUDAAAapIlvJM188QEVqaurGzp06IIFC0gHAgAAzKBMiQJAP9GH2aHjzdMlfv75Zx6Pd+PGDdKBAACAqii5RgKAHqIns0PHm6dj5Ofnd+rUqaamhnQgAACgEspfpwNA39CT2aHLbdM93r175+vr+8UXX5AOBAAA6NOsG8UA0Cv0Z3boctt0klu3bnG53H//+9+kAwEAAJo092EFAPQH/ZkdOtswHSYxMbF37946s8kUAECvoPG0LAB6gl7NDp1tmA5TXV3t4eFRWFhIOhAAAKCPDldWAFREH2aH7rdQJ7l69Sqfz//1119JBwIAADTRhxILAD30YXbofgt1lblz544YMUIrXmcPAACN0YcSCwA99GF26H4LdZUXL17Y29sfOHCAdCAAAEAHfSixANBDH2aH7rdQhzl27JiVldWzZ89IBwIAAM1GH0osAPTQh9mh+y3UbcLCwiIiIkhHAQAAzUYfSiwA9NCH2aH7LdRtfv/9d4FAcO7cOdKBAABA89CHEgsAPfRhduh+C3WeLVu2uLi4vHnzhnQgAADQDPShxAJAD32YHbrfQp2nrq5uwIABS5cuJR0IAAA0A30osQDQQx9mh+63UB+4c+cOl8v95ptvSAcCAADKog8lFgB66MPs0P0W6glZWVndunWrra0lHQgAACiFPpRYAOihD7ND91uoJ9TW1nbv3j0rK4t0IAAAoBT6UGIBoIc+zA7db6H+8O2333K53Dt37pAOBAAAmkYfSiwA9NCH2aH7LdQr4uPj/f398X5OAAD70YcSCwA99GF26H4L9Yo3b964uroWFRWRDgQAAJpAH0osAPTQh9mh+y3UN86fPy8QCB4+fEg6EAAAUIQ+lFgA6KEPs0P3W6iHzJgxIzQ0lHQUAACgCH0osQDQQx9mh+63UA959uyZtbV1cXEx6UAAAEAu+lBiAaCHPswO3W+hfnLw4EE7O7sXL16QDgQAAGSjDyUWAHrow+zQ/RbqJ3V1dSNHjpwzZw7pQAAAQDb6UGIBoIc+zA7db6He8uuvv5qaml65coV0IAAAIAN9KLEA0EMfZofut1CfWb9+vbu7e3V1NelAAACgIfpQYgGghz7MDt1voT7z/v17Pz+/xMRE0oEAAEBD9KHEAkAPfZgdut9CPef777/ncrn/+te/SAcCAAAfoQ8lFgB66MPs0P0WgrS0NB8fn3fv3pEOBAAAPqAPJRYAeujD7ND9FoK3b9926tQpPz+fdCAAAPABfSixANBDH2aH7rcQUBRVXl7O4/F++ukn0oEAAMBf6EOJBYAe+jA7dL+FQMLChQuHDBlSV1dHOhAAAKAo/SixANBDH2aH7rcQSPjzzz+dnJx27dpFOhAAAKAo/SixANBDH2aH7rcQSDl16pRQKHzy5AnpQAAAQC9KLAD00IfZofstBPWZPHny5MmTSUcBAAB6UWIBoIc+zA7dbyGoz5MnTywsLE6dOkU6EACAvqMPJRYAeujD7GBpC58+fXr9+vW9e/euXr06et68MaGhffr379jZ08nZWWhpyePzjYyNDQwNDQwNjYyNeXy+hZWVk7Nzpy5d+vr7jw0Li5k/Pysra9++fTdu3Pjjjz9It4Zd7Nq1y9HR8dWrV6QDAQDoNfpQYgGghz7MDla0sLa29ptvvvnqq69mRUV95uvLNzNr0aKFvbNz5169+oSEDJs5c1z80hmrMuaLRHHbtiYe2L+ypDi99MSqUydXnTqZXnpiZUlx4v79cdu2xogKIjLSxy2NGxYZ6TdqpGfPnnZOTp+0aGEmEPj07Bk1Z87GjRtv3rxZW1tLusUkqaurGzJkyMKFC0kHAgDQRziyIB0UAOxCHyYFsRZWV1dfvHhxxYoVvr16tTIysnZw8AkcFDx3TtTaNanFRwsqygurxIyooKI85cjhqDVrRsyJ8g4IsLS1bWVk1KtPn+Tk5EuXLtXU1JDqAYL89NNPPB6vvLycdCAAAH0EBhQAxejDpNB0Cx89erRx48ahQUFGxsZObm4DJ06YnZOz+kwZU3ZTGWWWnZ6ZtXrA+PGO7dqZcLlBwcGbN2/Wt2fD8/LyOnXq9PbtW9KBAAD0DrhPABSjD/NCQy18/vz5xo0b/fr1MzIx8Q4ImJKclFl2WpOmU54yTpZOWrHCy9/fyNi434ABRUVFL1++1EyfkOXdu3e+vr5paWmkAwEA6CMwoAAoQB/mhXpbWFdXd/ny5dBx40x4vM8GDJi5enXe1SvETadMrb18KSI9vXu/fsYmJhMnTbp+/brOvzTo1q1bXC73+++/Jx0IAEDvgPsEQAH6MDXU1cKampotW7Z4dOxo16ZN6OLY7PPniFtMJbX6TNno+fNtHBw6du68fft23b5InZiY2KdPn/fv35MOBACgd8CAAiAPfZgazLfwzZs3a9autbKx6dK7V0zBOpG4krinpCFRZcXc/LxOvr42dnb5+fnV1dWMdxQbqK6udnd3X79+PelAAAB6hz6UWADooQ+zg8kW1tbWrl+/3srGxjtg4LI9u4mbSEYUv2N7t379bOzsNm3a9O7dOwa7iyVcuXLF1NT0119/JR2IepG58wvQPKQHgvZBOmOgCUgPEKCb6MPQYqyFZ86caevm1snX9/Pdu4i7Rsa1dPu29l5eHh06XLhwgakeYw9z5swJDg7W7XteORwO8VGk57py/xd9+EplHAxd1qr8t98wpIGa0IehxUALHz58OCY01KZ167l5uVp6wV0ZicSVs3Oyre3tx02Y8OjRI9X7jT28ePHCzs7u4MGDpANRI6jixAUDSg8MXdYKBhSoD30YWiq1sK6ubvfu3eYWFsNmzMi/dpX414EGlHf1ypDp04WWlvv372cqB2yguLjY2tr62bNnpANRF6jixAUDSg8MXdYKBhSoD30YWvRb+PLly9Bx45zc3HTymrtixW/f7uDiMmHSpD///JPBZJAlNDR0xowZpKNQF6jixAUDSg8MXdYKBhSoD30YWjRbeOvWLScXZ/+wsPzr14h/CxBR3tUrfUJGubq56cw+mr///rtAIDh//jzpQNQCqjhxwYDSA0OXtYIBBepDH4YWnRYWFxebmZtHpH1BfP4T15TkJIFQWFpaynhiiFBUVOTq6vrmzRvSgTAPqjhxwYDSA0OXtYIBBepDH4ZWs1soKiwUWlsn7NpJfPKzREu2FJlbWmzevFkd6dEwdXV1/v7+8fHxpANhHlRx4oIBpQeGLmsFAwrUhz4Mrea1MCMjw87JaWVJCfGZzyolHz5sZW+/Zu1aNSVJk9y5c4fL5X777bekA2EYVHHiggGlB4YuawUDClSnrq7u8ePHFRUVR44cEYlEiYmJs2fPDhkzhsPhdO7WzbVdO1t7ezNzgQmXa2RkZGBoaGBoyOXxBEKhjZ1d6zZt2nl4dOzc2a9fv9Fjx86ZOzc1NbWwsPDgwYPXrl179OgRy3dXbMbkycjIsHd2XnX6FPFpz0KlHT9m7eCwNjdXfanSGFlZWd27d6+trSUdCJOgihMXDCg9MHRZKxhQ0Fyqq6tv3ry5ffv2+ISEESNHunl4GBgaftKiha2jY0dvb5/AwP6hY4dFRoYuWRKelhZTsC5208a4bVuX7d6ddPBAavHR9NLSVadOppee+OJYScqRw8v37onbumV+oWhm1upJK1aELJgfOHVqr6Agz149Hdu2bWVsbGRs7NGxY9DIkbGLF2/cuFEsFrPqtY7KTp6NGzdaO9jDfSpQ2vFjQmvrnTt3qjVhGqC2trZbt27Z2dmkA2ESVHHiggGlB4YuawUDCprk/fv3t27d2rhxY8SMGR06dfrkk0/MLS279e07aOqUCZ9/Pl8kWllSXFBRro7xKRJX5lw4n7BzR3ha2vBZM30CA1u7uhoYGrb39Jw6fXpBQUFFRQXZlSalJs+ZM2fMhMKUI4eJT3iWa/m+vaYCwaVLl9SdNnXzzTff8Hi8u3fvkg6EMVDFiQsGlB4YuqwVDCiQSV1d3e3bt3Nzc4cFBfFNTQWWlj6DBo2Mjo7+Mj/zTBnZQZt//Vr8ju3jE+J7B4+wb9PGhMsdNHTomjVr/vnPf75//17DHdX05Ll3757QwmLhV+uJz3at0Ny8XAsrKx14tfrSpUsHDhzI8jtIlAdVnLhgQOmBoctawYCC+vz3v/8tLS2NnDnT2tbWTCj0HTx4wuefJx8+xOY3RGadPTMrO8t/XJi9cxszc/OwCROOHDmisZ1wmpg8tbW1n/n6hsTEEO8mLdLwmZG9+/bV/P9MMMubN29cXFy2bNlCOhBmQBUnLhhQemDoslYwoICiqJqamuPHj4+fMMHYxMS5ffvgOXOW79vLZtMpT2knjo9PSOji58c3MwseHbJ3796XL1+qteuamDxp6ekdvL1FlRXEu0aLVFBR3tbTMycnR62Z0wDnz58XCAS///476UAYAFWcuGBA6YGhy1rBgOo5N2/ejJ43TyAUunftOnbRQp3ZIGjtpa+nr0zt3q8fl8ebOn16eXm5mq6FKpo8d+/e5ZmaphYfJd4dWqfE/fu5fP4vv/yijpxpkoiIiLCwMNJRMACqOHHBgNIDQ5e1ggHVT6qrq3fu3Onl42MmFA6ZNk2HH4/JOnsmdPFiZw8Pj44d161b9/z5c2Z7UtHkCQoOHjF7FvEuUFLRIRzn2CPEw5Bq8NSpoePGMZstzfPs2TMrK6uSkhLSgagKqjhxwYDSA0OXtYIB1Tf+85//ZKxaZWlt3blXr5lZq9eV3yA+CDUgkbgybuuWnsOHmQoESxMSHj9+zFR/yp08FRUVAguL3MuXVAr9aKyzZ2xKM/8qOoTD4YREN/t0R8Z6cjgcz7FHySessEqcc+E819T0n//8J1OpIsWBAwfs7e1fvHhBOhCVQBUnLhhQemDoslYwoPrD8+fPE5OSeKamvoGBy/bsJj72iCjjZOngaVPNLS1jFi588OCB6r0qd/IEBQePXjBf1YiPxjpzaEJnOfOv09Ewr2pR0OxZOrAIWldXFxwcPHfuXNKBKC/ZiQAAIABJREFUqASqOHHBgNIDQ5e1ggHVB6qrq3NycswtLHqPGJF06CDxUUdcORfOD5sxw8zcPHbJEhWfUpI9ee7du2dsYrLm4gVVYz0a6yzHSqbEenJkL44eGevJ4YTk0TtjdAi9RdC83g38L90A6mv1mTIjY+PffvtNlQyxgV9//dXU1PTKlSukA6EPqjhxwYDSA0OXtYIB1XmKi4sd27Tp7Nc7+fAh4uONVco6e2bg+PE2dnZbt22jveeP7MmTkprqNzKYgSjVZ0DzQ2QvkR6N7d3486OxzvJdaXSI3FXY3vmq9oBP4KDVq1erMP7ZQmFhoYeHB6ve4tUsUMWJCwaUHhi6rBUMqA7zyy+/DBk+3M7JaW4+A6tRuqrkw4c69ejh5eN98+ZNGp0se/K0dXOLERUwEJ/6DCidi/syLs2nxHrKWPL8cHBV7yidnZPTsXNn1SYCK3j//r2fn19SUhLpQGiCKk5cMKD0wNBlrWBAdZK6urqtW7eaCgQjo+d+eeM68WHGconElRHpaUIrq9VZWc1dCpUxeX7++edWxsYM9Xteb3UaUGXvE80Pkb2cKTWajU+n4EfNUe7lS5+2bPnw4UOGpgZJvv/+ey6Xe+vWLdKB0AFVnLhgQOmBoctawYDqHi9evBg9Zox9mzYJu3YSH2BapMwzZd379+/Tv3+z7jmUMXm2bdvWxc+PobBYbUD/Xv6Uvcz596V5VR9p8vDy2rNnD3MThCRffPGFr6/vu3fvSAfSbFDFiQsGlB4YuqwVDKiO8d133zm5OPuHhuZdvUJ8dGmdROLKsCWLLaytz58/r2SHy5g80dHRwyIjGYqJ1QZUscX8256qakADJk2KjY1ldJoQo6amplOnTl9++SXpQJoNqjhxwYDSA0OXtYIB1SVKS0tNzcympqQQH1darSVFRRY2Njt37VKmz2VMnr79+0dkpDMUTaOny5W9XVMjl+AViqkV0ClJiQGDBzM9WYhRXl7O5/N//vln0oE0D1Rx4oIBpQeGLmsFA6oz7Nixg29mNr9QRHxQ6YDSThx3cHX9Ii2tyRd4ypg8Ts7OS7YUMROKmh9CUqcB/ds6N38j/QZasL6wnYeHemYNGRYsWDB06FA1vRxWTaCKExcMKD0wdFkrGFDdYNOmTRY2Niv27yM+onRG2efPuXbqFLtkieKelzF5TAUCxt5tejTWWY7zY7kBle7NpPpOTMv37rGwslLPxCHDq1evHB0dd+/eTTqQZoAqTlwwoPTA0GWtYEB1gF27dvEFgqSDB4gPJx3TmosXXDp0WJ2draDzZUweA0PD9NJSZoJQswFtFspbSdl7M9HVnNy1BoaG2rVe2CQnT560sLB48uQJ6UCUBVWcuGBA6YGhy1rBgGo7ly5d4vL5cdu2Eh9LOqns8+fs2rTZsWOHvP6XMXmMTUzSThxnJgI1G1BlPWVzVkDr7UvPzCs9Z65e/Y9//GPo0KGMvDuVPUyaNGnKlCmko1AWVHHiggGlB4YuawUDqtXcv3/f3MIiOj+f+EDSYaUcOWxqbn7jxg2ZKZAxecwtLBIP7Gfm9PKdn+pvQlJ9l/jGYtx9FlaJE3busLa1nTt3rrm5+b59+9Q8pzTHkydPhELh6dOnSQeiFKjixAUDSg8MXdYKBlR7qa2t7dGr1+Bp04iPIp3X7JycNq6ur1+/bpwFGZOng6cnY8+C5ct/zaVimjKgKbGeDHrEwirxX8aXafdZWCWOWrumq5cXRVFlZWV2dnbjx4//448/1D69NMLOnTudnJz+/PNP0oE0Dao4ccGA0gNDl7WCAdVesrOz27i7f3n9GvFRpA/qN3bMnOjoxlmQMXmGBQVNWrGckbOmxHrKW6dUcQU0OoSB59Prqd52UUweVlxYJQ5dsnj02LGSvn327NmkSZNsbW1Pnjyp3umlEerq6oYMGbJo0SLSgTQNqjhxwYDSA0OXtYIB1VLu37/P5fOX79tLfAjpidZe+lpobX358uUGiZAxeRKTkvzHhTFyVgU2UTUDKnd/ezqq/zwTE08dNVDv4OD09PT6PXzw4EGhUDhr1qxXr16pcZJphJ9++onH41VUVJAOpAlQxYkLBpQeGLqsFQyoljJt+vQ+o0OIjx+90uSkxD79+zdIhIzJc+LECdeOHZk4pSIrqZIBZfAG0HrukzFH+7HsnZ3Pnj3boJN///33oKAgZ2fnK1euqGuSaYq8vDxPT8+3b9+SDkQRqOLEBQNKDwxd1goGVBv5+eefWxoYrCwpJj5+9EoFFeW2jo4NnkaSMXlevXrV0sAg6+wZVU+p8EF1FQzokbGeTF0o/3Dfp5rcZ9qJ4waGhv/9738b93NdXV1RUZGpqWlcXFx1dbW6Zpv6effunY+PT4NVXraBKk5cMKD0wNBlrWBAtZElcXG9goKIDx49VNjSuKHDh9fPhezJMyAggIHbQPNDFDzNI//qfFMGlLnlT2b3+5Sp0CWLh3zc4w24d+9e3759O3Xq9O233zI5yTTLv/71Ly6X+3//93+kA5ELqjhxwYDSA0OXtYIB1Trev39vbWsbu2kj8cGjh1pz8YKhkdGLFy+k6ZA9eXbs2OHh5aXiyaJDFC0r0jWgym3SpJTqP/auAJXMrmvHjgcOHGhySqxdu5bL5aalpdXW1jI52zTIihUr+vbt+/79e9KByAZVnLhgQOmBoctawYBqHTdu3DDmcgsqyokPHv1U1z59Dh06JE2H7Mnz+vVrvpmZSs+IHY11VriZUXSInN2OJDdlNvvOUXoRqteAxm3bKrS0VPLy+nfffde9e3dfX98ffviBmammWaqrq93d3Tds2EA6ENmgihMXDKgyNO4iDF3WCgZU61i1apVPYCDxkaO3GrNo0dTp06XpkDt54hMSVLlPIjqkiTcPfWxA6+2CpOCOzKZMLdv0WUBASmqq8nPj7du3ycnJPB5v3bp1rF1KVMDly5dNTU1/++030oHIAFWcuGBAlUH6HVj/E+K5g2QKBlTrCB41atzSOOIjR2+1ZEuRc9u20nTInTxPnjzh8vlJBw/QOc3RWOcmN/KMlbWQ+deqpEyXmddbq9xnwq6dpmZmz58/b+4Mqays9PDwGDhw4C+//EJzkpEjKipq1KhRpKOQAao4ccGAKkOD6y8Uhi6LBQOqdXh06DA7J4f4yNFbZZ8/Z8LjSdOhaPKkpKZ28fMTiSube46U/Dxm93IvrBJHh2iT+xSJKz28vLKys+lNkjdv3ixcuNDMzGz79u11dXX0DkKE58+f29nZ1b/JgyWgihOXxIACGhDPHSRTMKBah8DcPG7bVuIjR5/1acuWb968kaRD0eSprq5u4+Iyc/Vq4hFrnaalprZ1c1Nxa8wLFy44OjqGhIQ8fvxYleNomOLiYmtr6//85z+kA/kIVHHiwgqoMsCAapFgQLUOAwODlCOHiY8cfZYJl3v79m1JOpqYPF9//bXAwiLzTBnxoLVIaSeO883Mrl27pvpsefHiRXh4uKWlZXFxsepH0xhjx46NjIwkHcVHoIoTFwyoMtT3ndJPiOcOkikYUK2Dw+HE79hOfOTorUTiSg6Hc+7cub/S0WTCFsfFde7Vq6CygnjoWqF15Tfcu3VbkZjI4JwpKSmxsrKaPn16/Q202MzDhw8FAsGFCxdIB/IBVHHiggFVhvrWU/oJ8dxBMgUDqnX8z//8z4L1hcRHjt4q+/w5DocjfXd305Pn7du3vfr0GRoRTjx0rZD/uLABAQHv3r1jdto8fvw4JCSkdevW58+fZ/bIaqKoqKht27bSWz2IgypOXDCg9MDQZa1gQLWOf/zjH5OTEomPHL3Viv37/vGPfyh7CV7Co0ePWjs5TU5E2ppQ2JLFzq6uf/zxhzpmTl1d3Y4dO8zMzBYsWMAeYyePuro6f3//hIQE0oH8Bao4ccGA0gNDl7WCAdU6Pvnkk0FTpxAfOXqryMzMFp9++u9//1uSDmUnzw8//GBhZTkrO5t4A1ir6V+stLK2vnfvnrqmDkVRFHX//v2AgAB3d3fpIjZruXPnDpfLvXnzJulAKApVnAWCAaUHhi5rBQOqdbRo0aJtt67ER47eqtfIYEMjo2YbUIqibt68KbS0nJWVRbwNLNT0L1ZaWFl999136pk1H1FXV1dQUMDj8RITE1V80F7drF692svLiw3vF0UVJy4YUHpg6LJWMKBaR8uWLQ2NjNZ8fZH44NFDicSVfKGQZ2pKx4BSFPXtt99aWltPXrGceEtYpXFxcda2trdu3VLDfJHLDz/84Ovr261bN824XnrU1tZ27do1JyeHdCCo4uQFA0oPDF3WCgZU62jZsmXbbt2m4DZQEorfvp0rEAgsLGgaUIqi7ty549imzbAZM0R4Lr5KXFBRPmjyZGdX159++onpmdI0tbW16enpXC43JyeHta/urKqq4vF4d+/eJRsGqjhxwYDSA0OXtYIB1Tpatmw5NSW5tYcHjTfsQCqq28CBQ2ZEqGRAKYp6+vRp7759u/Xru+biBeJNIqisc2c79ezpHxDw7NkzRudI8/j22287duzYp0+f//f//h/BMBQQFxcXEBBA9pVOqOLEBQNKDwxd1goGVOto2bLlqtOn7Nq2nS8SER8/eqWkgwdaGhquOn1KVQNKUdTbt28XLFpkZWcXt3UL8YYR0aKNGyxsbJbGx7PhBsfq6uqlS5fy+fxNmzax8NWdr1+/dnFx2bZtG8EYUMWJCwaUHhi6rBUMqNbRsmXLzLLTM1ZltPbwwFVcTeqzwYMDpkwprBIzYEAlHDt2zMLKalhExJfXrxFvnsaUf+3qoMmTrWxsTp06xcSMYIwrV664uLgMGzbs4cOHpGNpyLlz58zNzR89ekQqAFRx4oIBpQeGLmsFA6p1SAxoQWWFS+fO4xPiiQ8hPdG8dV/yzM1zLpwvZNCAUhT1+PHj4JAQBxeXhRu+It5IDShGVGDXps2Y0NCnT5+qPBeY59WrV7NnzxYKhQcOHCAdS0PCw8PHjRtH6uyo4sQFA0oPDF3WCgZU65AY0MIqcWrxUb5QuLKkmPgo0nllXzjPt7CIzMyU/JNJAyqhpKTEzsGhx9AhacePEW+tmpRafNR70CAHJ6fS0lJGOk19nDx50tbWdsKECWRvTm3AH3/8YWVldezYMSJnRxUnLhhQemDoslYwoFqH1IAWVoknLvvcsX17vbp+q3mJxJVegwb1GDFC+gnzBpSiqNevXyenpPDNzAZNnrz6TBnxZjOoVadPBUycYCoQpKWns/8VRBL++OOP8ePH29rasuo+gf3799vb2798+VLzp0YVJy4YUHpg6LJWMKBaR30DKhJXdg8I8Bk2FE/Eq08joqLs27XLvXJZ+olaDKiEBw8ezJ03j29qGjh1SsbJUuKNV1FpJ44HTJrIMzWdv2ABwfsXabNv3z5zc/OoqKg///yTdCwURVF1dXUjRoyIjo7W/KlRxYkLBpQeGLqsFQyo1lHfgBZWib+8fq2dl9eQGRHEx5JOasLnn/MtLNJLT9T/UI0GVML9+/dj5s/nm5n5BY+I376deC80VyJx5ZItRT2GDuWbmsYuXvzgwQN19JJmePDgwdChQ11cXK5evUo6FoqiqF9//dXU1FTzwaCKExcMKD0wdFkrGFCto4EBLawSr/n6or1bu+DoucSHk44pMjOTJxAkHtjf4HO1G1AJz549W5WZae/o6NKhw/iE+OwL54n3SJPKOnsmdPFiJzc3J2fnrOzs58+fq69/NEZdXd2GDRv4fP7SpUurq6tJh0MVFhZ6eHhoOBJUceKCAaUHhi5rBQOqdTQ2oIVV4syy03Zt2w4OD8e1eKY04fPP+ULhst27G/9IQwZUwrt370pLS0PGjDHmcr0G+E//YiULX8Oac+H81JTk7v36GZuYjA0LO336NGtfLESbu3fv+vn5derU6ebNm2Qjef/+fe/evZOTkzV5UlRx4oIBpQeGLmsFA6p1yDSghVXitZe+9vDx6REUhGeSVJSosmLQ1CkCG5vkw4dl/oJGDaiUZ8+eFRUVDRw0qJWRkWePHmNjFyXu30/wfzhElRXL9+0dvWBBRx+fVkZGg4YM2bZtm24secrj3bt32dnZXC43PT2d7P75//73v7lcribfYo8qTlwwoPTA0GWtYEC1DnkGtLBKvK78Ro+gIGdPz1WnThIfWlqqtZcvdQ8IcPb0zJT/JDoZAyrl+fPnBw4cmDRlipWNjalA4BMYOGbRoiVFRfnXrqq7d/KuXondvGn0wgWfDRzIFwhs7OymTp9+6NAhIs9lk+LWrVtdu3bt0aPHDz/8QDCMlStX9ujRQ2MrzajixAUDSg8MXdYKBlTrUGBAC6vEInHl6IULTS0to7/MJz66tE5xW7dY2Nv7jQ7JV7iKTNiASqmrq/vhhx82bNgwdfr0tm5uLVq0aO3q2mPI4KCo2REZ6Qm7dmafP0d7iVQkrsw6dzZh547wtLThs2b5BAY6uLh80qKFm4fH9PDwTZs23blzh4VvrdQMNTU1K1as4PF4BQUFpDqhpqamY8eO69at08zpUMWJCwaUHhi6rBUMqNah2IBKtGz3bhtn5z5jxuRevkR8jGmFCirKh82caWJqGpGR3uQvs8WANuDVq1fXrl0rLCycN2+ef0CAvaPjJ598YmBoaOfk5N61a3f//n4jgweMHz8kInzEnDmj5s0bvXDB6IULRs2bN2LOnMHh4QPGj+8dHOzl39+taxdbR8eWBgYtPv20tZPTwMDAeTEx69evv3HjBkt2I2IJ5eXl7dq1CwgIuH//PpEAbty4wefzf/nlFw2cC1WcuGBA6YGhy1rBgGodyhjQwipx3tUrfceOFdrZzsldS3yYsVxxW7c4tm/foWdPJXfeZKkBbcy7d+9+++238vLyY8eOFRUVZWdnJycnL1q0aHZUVERk5JSpU6dOnz4jMnJ2VNTixYuTk5NzcnK2bNly/PjxioqKBw8e6N6DRIzz+vXrmJgYMzOznTt3ElkKnT9//vDhwzVwalRx4oIBpQeGLmsFA6p1KGlAJVpctLm1u7tn3z7ynqfRc606ddJn2FCeuXl4WpryF6u1xoACzXD27FkHB4fRo0c/efJEw6d+9epV69at9+zZo+4ToYoTFwwoPTB0WSsYUK2jWQa0sEpcUFkxcfkyvlDYf1yYggdr9E1rL18Kjp5rzOcHTJ685uKFZv0tDChoyPPnz6dOnWplZVVSUqLhU5eWllpYWDx9+lStZ0EVJy4YUHpg6LJWMKBaR3MNqEQ5F84PmjaVKxAMnDRp1elTxAceQWWfPye53dN76NDU4qM0jgADCmRz5MgRCwuL8PDwFy9eaPK8EydOnDp1qlpPgSpOXDCg9MDQZa1gQLUOegZUouwL54fNnMkTCHoGj0jc3/AFPzqv9NLSgMmTjXg8n2FDkw8fon0cGFAgl0ePHo0cOdLR0fHChQsaO+njx4+FQmFZWZn6ToEqTlwwoPTA0GWtYEC1DlUMqERrL309cl60wNq6bfduERnpOr9xfUFF+ez/3965x8WU/398vusSXWamdJWSlDYRm8uGKEOlRdkil1oiQ5JEtFhRbEW6TEmhlQ1LsptrYbKEzaXytfv9pf1a7de6X6LNEKWa+f1xdmfHzJnbmTPzOdO8n4/XH2vM+ZzPnPM5+3n6nPP5nPT0QR4eBgzGhJA5SaWnVCwQBBSQBZ/PLywsZDKZK1asePv2rWZ2euDAgX79+qlvmQLoxZEHBJQY0HQpGxBQrUN1AcWyo7pqaXbWEC9PIxMTz+DguMJvO99rPDf+8P2kBQsYpqa2zs4h67/i/HSZlGJBQAH53Lt3j8ViOTs7V1dXa2B3fD5/0qRJsbGxaiofenHkAQElBjRdygYEVOsgS0CFSTld5r9kiVV/+169e3vPnbt6b8GO6irkLZNwcmuq1353wC98gWW/fgxTU9acOeuLDpG7CxBQQCE6Ojqys7ONjIw2btz4/v17de/ujz/+oNPpavJd6MWRBwSUGNB0KRsQUK2DdAEVJqHkh4ClkbYff2xkYjJq6tQFSUnbzpUjb6IKJv3C+Yj0tPGzZppYWRlbWHgGB6/cvVtNJg0CCijBr7/+OmLEiGHDhtXV1al7XxwOZ8iQIeqQXejFkQcElBjQdCkbEFCtQ30CKszmEyeCV68e4uVlQKf3GTDAa2bwwi0pyWVlVLtHv+3Hc5GczImhITZOTl27d3d0c/OPjFx38Dt11xMEFFCOtra2zZs3GxkZZWRkqHV5//b29pEjR6akpJBeMvTiyAMCSgxoupQNCKjWoQEBFWZHddXaA/sDY5a7jB6tT6fTe/VyHTdu8qJFi7albjp2VMN36nNrqpNKT0Wkp09etMjVc5yxhUU3PT2HoUMnLViwLGd7pgZfOgoCChDhxo0bLi4unp6ed+/eVd9e/vOf/xgZGf3222/kFgu9OPKAgBIDmi5lAwKqdWhSQEWTW1P99ckTi7al+oUvcBkzmm5i0rV7d6v+9kPHj58YGjozLm5JZsZXBw9uOXtmR9V1VXa0/drVLWfPrC86FJWdPTMubkLIHFfPcVb97bvp6fUwMHAYOtQzODhk/VdfHTyYc/0akqsGBBQgyLt371atWsVgMPbs2aO+92euX7/e09OT3KFW6MWRBwSUGNB0KRsQUK0DlYBKJqPiwtoD+xduSQmIWjpmWsCAYcPM+vTpYWDwr48+MmQyzW1t+w0aNHDUqE9YrE8nfzY2KHD8rJkTQuZ4f/HFxNBQr5nBHoGB7lOmDPf1GTp+/KAxY/oNHmzWp09PQ0Majdala1djC4t+gwcP9/XxCZs3Z926Fbt3bTl7hiLPAICAAipx8eLFfv36TZ069cmTJ+oo/927d05OTvn5+SSWCb048oCAEgOaLmUDAqp1UEdApWX71Sspp8u+OngwOndHeHLy3ISNc9atC1696vPo6KlLIvzCF/iGhfktDJ+yeJF/ZOSM2JUhX62b//XmpVmc1XsLNv7wfdr5HykimtICAgqoCo/HY7PZpqamR44cUUf5ly5dMjY2fvz4MVkFQi+OPCCgxICmS9mAgGod1BfQTh8QUIAcTp06ZWlpGRIS0tjYSHrhERERQUFBZJUGvTjygIASA5ouZQMCqnWAgCIPCChAGi9evJgxY4a1tfXZs2fJLbmpqal3794lJSWklAa9OPKAgBIDmi5lAwKqdYCAIg8IKEAmfD7/4MGDJiYmkZGR5L5L89ixY1ZWVn/++afqRUEvjjwgoMSApkvZgIBqHSCgyAMCCpDPw4cPfX19HRwcKisrSSx2xowZixYtUr0c6MWRBwSUGNB0KRsQUK0DBBR5QEABtcDn83fu3Emn09euXdvS0kJKmU+ePDE2Nq6oqFCxHOjFkQcElBjQdCkbEFCtAwQUeUBAATVy586d0aNHu7q6/vLLL6QUuGfPHkdHx3fv3qlSCPTiyAMCSgxoupQNCKjWAQKKPCCggHppb2/funWroaHhli1b2tvbVSyNz+ezWKx169apUgj04sgDAkoMaLqUDQio1gECijwgoIAm+OWXX1xdXUePHn3nzh0Vi7pz546RkdHPP/9MuAToxZEHBFQRJA8RNF3KBgRU6wABRR4QUEBDtLa2rlu3zsjIKDc3V8VXd27dunX48OGEx1OhF0ceEFBFoP2N6CfIzx0ENyCgWgcIKPKAgAIa5cqVKw4ODr6+vg8fPiRcSFtb2yeffJKRkUFsc+jFkQcEVBFoHyKgStM9OsOVJhv72KOoK6npgIBqHSCgyAMCCmiaN2/eLF261NjY+LvvviM8FHrjxg06nf6///2PwLbU6MV1OpiAAgRAfu4UEVAMj2zkVdVcQEC1DhBQ5AEBBdDA5XKtra2nT5/e0NBArITVq1f7+PgQUFhq9OI6HRgBVQSqC6hrbCLuF7IDddBBQUC1DhBQ5AEBBZDR2NgYGhpqYWFx8uRJAps3Nzfb29vv27dP2Q2p0YvrdEBAFUHUO4WfID938gX0Rk3ejSyPvyruOuMY8gprIiCgWgcIKPKAgAKI+f77701NTcPDw1+9eqXstufOnevVq9ezZ8+U2ooavbhOBwRUEUTVU/gJ8nOnmIDW5B2Ltcd+QGAW6gprIiCgWgcIKPKAgALoefLkydSpU+3s7Ai85Wj+/PmzZ89WahNq9OI6HRBQYlCj6SomoDdqogKlDoImxuI8Rirzfr34g6dUm+cEAqp1gIAiDwgoQAn4fP6ePXsYDMbKlSuVetHRy5cvLSwsTp06pfgm1OjFdTogoMSgRtNVVECFD4N+YJbCkVFc8MrEtVWq3d8HAdU6QECRBwQUoBB379719PR0dnauqalRfKvi4mIbGxsej6fg96nRi+t0QECJQY2mq7CA/u2aIqOVwmdDA6M++LLwc/GhzX/sU3R3/8xzEisHWUBAtQ4QUOQBAQWoRUdHR2ZmpqGhYWJi4vv37xXZhM/n+/v7L1u2TMFdUKMX1+mAgBKDGk1XYQEVauXfj4H+bZN4I5e4z4zKeJCUYs+YqkNA29vbd+zYER8fT26xWkdhYeHatWubm5vJLRYEFHlAQAEqcuvWrWHDhg0fPlzYOmXz4MEDBoNx5coVRb5MjV5cpwMCSgxqNF3iAqrsl2UJ6z9/S4lBUNIF9Ny5cy6DB9NotAkTJ5JYrDaSlpZGo9Ese/fet29fR0cHWcWCgCIPCChAUd6/f5+QkGBkZJSZmanI/3Ryc3MHDhzY2toq95vU6MV1OiCgxKBG0yVdQD+cYCTy5b+mMUnb0d+DoFRYbZREAb1165avn5+xqWno+vX+S5aEzZ9PSrHay/bt20dP/mxpFqdPf3vXoUMvXLhASrEgoMgDAgpQmurq6o8//tjLy+uPP/6Q/c2Ojo4xY8YkJibKLZMavbhOBwSUGNRouqoL6D9PfOLwz5f/3pE0f+10Avr06VP2okX6hoZTFrEzL1/Ku1EzbVkUCOj27dtHT54kBQZKAAAgAElEQVScd6NmR9X1OevWMnv1+mzKFAVvjskABBR5QEABqvP27dsVK1YwGIyCggLZ7z2qq6szMjK6deuW7AKp0YvrdEBAiUGNpqvKJCTh2kwfYB97FM9W5Qno35tQYUkmFQX07du3XyclGdHpHv7+yWVlwmJBQAUiAool89JFvwXz9Q0MlkRGPn/+nHCxIKDIAwIKaAfnz5+3tbX19/d/+vSpjK9t2rRp9OjRsm/ZU6MX1+mAgBKDGk1XUQEVTmD/Z4RS1ux15QW0U4yAdnR07N+/38raeuDIkesOfidWLAioQEJAsSSVnho1+TMjOj0lJUWplfuEgIAiDwgooDW8evVqwYIFpqam33//vbTvtLa2uri47NixQ0Y51OjFdTogoMSgRtNVUECFT3b+45qynunEm9Uu5xlQ3HVGEYWYgFZUVAz55JM+9vaRnMzcmmrJYkFABVIEFMuaffs+HjbM2sbm4MGDys5PAgFFHhBQQMs4ceKEhYVFaGjon3/+ifuFq1evMhiM+/fvSyuBGr24TgcElBjUaLqEX8Upc0RTODiqG7Pg//vf/342ZQqzV6/Za77MuX5NWrEgoAKZApp3oya3pnpx2rbefft+MmzY5cuXFS8WBBR5QEAB7eP58+eBgYF9+vThcrm4X4iOjp4yZYq0B0ap0YvrdEBAiUGNpquIgAqnGYm6o4wNRaYldfZ1QBsaGiKXLtU3MJgUFpZxsUJ2sdOWRdFotC91GwMDg6Ge42QfqO3XrgavWkVnMgOmTbtz544iJwIEFHm0QEBfvHhx9erVoqKi1NTUqGXLpgcHjxs/ftAQVzt7e1NzczqDoW9goNejh16PHvoGBnQGw8zCws7efvDQoZ4s1oyZM6OXL9+2bdvhw4evXbv28uVL1L8GIAc+n79//34mk7l06dI3b96I/S2Px7O1tT18+DDuttToxXU6IKDEoEbTlSOgom/OFLs5/s9fiVpj9ofzkj4sVt6bkKjyNk5FBPTdu3dbtmyhMxjufn5fnzyhSLErdu/yCZsHCU9OVuRwpV847/PFFz169lwWHf3ixQvZpwMEFHkoJ6BtbW3//ve/d+3atXjJkhHu7gxj465du/axtx8yZsy4wMDJixbNWvPlwi0py3Nz4wq/3XCkePOJ48llpVvOnN5y5nRyWenmE8c3FBfHFX4bnbsjPCV51pdxk9nssZ9Pcx092trOrkvXrsYmJp+OHr0kMjI/P//nn39ua2tD/YsB4ty/f3/ixIkODg6SS9CXlZWZm5vj/pODGr24TgcElBjUaLofLtspHbxHM6Vuax979O8J8uK31HEnzlPKPvPkCSifzz906JC1jY2Tm9uX+wqR17ZzZ/OJ4yN9fOgMRlpaWktLi7STAgKKPJQQ0JaWloqKivj4ePcxY3rq61va2Hzq6xOwNHJJZsam48d2VF0n69fuqLqeeLRkSUaGf+SSkd7e5r1799TXHzNuXEJCwqVLlxRZwxygGh0dHTk5OUZGRuvWrRM7gyEhIWFhYZKbUKMX10xIWqfmWKy9/EUflQgIKDGo0XTlCqgcLxQdIqXRREZD/xrXxN1cfOlQKiy9JBoZAvrTTz+5DR/eu2/fRdtScWcaQdSR1QUFjkOG2NrZFRcX4z6OBQKKPCgF9NmzZ/n5+Z9NnapvYGDn5DQxZE5EenpqOVeTv38r9+yibakTZs/uO2CAoZHR1ICAPXv2NDQ0aPhQACpy+/Ztd3f3IUOG/Oc//xF++Pz5c1NT0/LycuHsyP/9738CqvTimonqAqr4quNKBASUGLrUdLUsuAJaX18/LTDQiMkMXhW7/dpV5JXUteTWVIenJFtYW4/49FPJu2QgoMiDQECbmpry8/PHennpGxqO9Paem7CRIo0g5XRZaHz8cBZL38DAa8KEgoICHo+nmWMCqE5bW1tSUpKhoeGWLVva29uxD/fv329paZmQkNDU1BQREfHxxx8LdKsXBwHtVOhS09WyiAnoy5cvl8fE6BsYeH8Rmn7hPPLq6XKyr14JWhFjSKcHTZ+OjUFggIAij+YElM/nX758OXjWLEM6fcSECYtSU7Mqf0L++3GTeflSeHLyMC8vA0PDkNDQq1evyn4BD0Adbt68OWjQoDFjxtTX1wsEghcvXujp6X300UeWlpY0Gs3AwIDP5+tSLw4C2qnQpaarZREKaEtLS3p6Op3BGOnjven4MeQVg2DZ9uO5CbNn99TXX7FyZWNjowAElALRhIC2trbu3bvXedAg6379glfFpp3/EfnPVjCp5dyg5cutbGwGDRmyb9++9+/fq+kQASTS0tLy5ZdfGhkZ5eXlBQQEiD2e1tTUpEu9OAhop0KXmq6WBRPQI0eO2NrZOQ5xXV1QgLxKEMkklPwwbPx4polJVlYWCCjyqFdA3759m5GZaWFlNdRjTPSOHC19/jq3umppdtZgd3cra+vs7GwZs+oA6nDp0iXc+RG3bt0iuRcXrkeo0PQIiQkc+KsYYuLoOuPYhzM2XPtJn6VRg6ebMgRUfk3EJ4vQaDSS3joDAkoMEFDKpqC09KOPPjK3tg5PSdbSnk53smL3LnuXgTQa7YsNG+BkIYy6BLStrW3nzp0WVlYjvSd+degg8t9JStbs3+fm5WVlbf3NN98InzIEqMmNGzc++ugjSX86e/Ysib24UgvE4PqclC//JaAega4ffC3vL9nFd1ycScT4AqpgTUBAqQYIKGXzVVoajUYbOHLkhuJi5JWByE7K6bIxU6fSaDSv2bO2X72CvD46G7UIaHl5uaOT02B393UHv0P+C0nPl/sKBw4f7uzicuHCBbKOGEAufD7fz88P17AKCgpI68X/Xg37A70TDohKW0/7g4FG3BfG1OC+GCYxOytR1g1x3L/CEVAlawK34CkECChlg92C/+qrr/QNDDyDArdqdjkXiILhXL40ZRG7p77+vLCwbt26wS14tCFZQJ88eTI9ONjK1nZpFqcTj2zn1lRHpKdZ9ukza86cZ8+eqX7cAHJZvHixlBE+WmJiIlm9+F/Dn5JmJjkSeUzGyKUsccR5z7W0tRL/3sWHI5QSAqp0TUBAKQQIKGUjnIT04MGDkC++MDA0DIiMpOxEWx3Mjuqq0Ph4EzOz8SzWzz//LIBJSBQIaQLK5/MPHjzYy8xs8sKF2Vcqkf8wDSSr8ie/+fNNzc2Li4tV71oAEqmqqhIap4mJiZOTU79+/bp160aj0VgsFskCKumIEvlr0FGaw0m/dY73hKjsu+pilRH/svI1AQGlECCglI3YMkw3btwY5+Vlamk5LzExt7oKefV0PNG5O/o6OQ34+OPS0lLhmjYgoMhDjoDyeLzgWbPsnJw65T132Vmzb59N//5zQkMl30gOoKKlpaVr165iY589evQYNGjQxIkTyerFRR+RVGjiEf58oxqhJooMXsqavY438iptF2LlEKgJCCiFAAGlbCQXoufz+SdOnHBwdLQfOHDF7l3Ia6ib2VBc7DpmjImp6c6dO8XevA0CijwkCGhtba1df3vWzJnZuvowb1blT+MCP3dwcvrvf/9L7BgCJPL+/fubN2/SJPjXv/4VGBgYGBhIXi+O905CHFETf4ugNBSbvS7rFr/EDCGxcgjUBASUQoCAUjbSXsX5/v37HTt2GPfq9YmX58YfvkdeT93J1nKuZ1CgvoHBuq++wn2nDAgo8qgqoMePHzfu1Ss86WvkvwR55iZsNDE1LSsrI3AYAVV49erVxYsXORxOWFjYkCFDunfv3rt3bzGj0tPTYzAYNBqNyWSS3Itn48+ElxzOJE1A/5ZC8RvrOA8DgIB2KkBAKRsZ74IXCARNTU1xX37Z00CfNXPmtnPlyGvbuZNV+dO0pUsNDA3nhITcv39f2kkBAUUelQQ0Ny/P1NJy7XcHkP8MimT13oJe5mZ79uxR9kgCSvHgwYOTJ09u2rQpMDCwX79+Xbp0+fjjj2fNmrV169azZ89i08IyMjJw1WrWrFnq6sUlTFRM+5RZDV7OJh8+yinuo9LLIVATEFAKAQJK2cgWUIw//vhj1pw5BkZGn0cvU/CG4YYjxeHJyZDVexVa2D+3uips0yZTS8uxnp43btyQfTpAQJGHuICmpKRY29ltPnEC+W+gVBJKSiz69MnIzFTqYAIyaG9vv3Xr1oEDB1atWjVx4kRTU9OePXuOHDly0aJFeXl5V69ebW5ultxq165duAJ64MABtffiQhP9UBClP3kpGXmm+Nc9d9cZxz78bznlEKgJCCiFAAGlbBQRUIyqqqpRY8aY9+69IClJ7lox05ZF0Wg0lre3LodGow31HCf3FKzcvdveZaDDgAEnTpxQ5O3ZIKDIQ1BAU1JS+tjbbzl7BvkPoGCSTp20tLHJ5HAUP56AKM3NzVevXs3NzV20aNGIESN69uxpamo6ceLE1atXf/fdd7du3VLkLQCNjY09e/bs3r27qH126dLl5cuXJPXismRO7J644vPl/47cocp/Rj1lTmwXL0f5mkhfbUqFgIASAwSUslFcQAUCAZ/PLykpsbO3d3R1XVWwR0ax05ZFhc2fr9ZGRX22b98+evJkGUcpoeQHNy8v4169cnJyFH9jNggo8hAR0Pz8fEubPmCfMpJ06qSppeWBAweIXG26x/Pnz8+ePbtly5ZZs2Y5OTl16dLF3t4+MDBw8+bNJ0+efPjwIbFi//jjj4sXL4oK6Lhx4wTk9eIyZE5c2oSr0+MOPf49YqrgLHgsf3tnoIfU++945ShdExBQCgECStkoJaAYra2tWVlZTBOTERMnbjp+DLdYEFCBTAHd9uO5CbNm9TQwWB0X19TUpFSxIKDIo7SAlpeXG5uaJh4tQV51imf94SKmicmlS5eUvto6O3w+/86dO8XFxevWrfvss8+srKy6d+8+dOjQsLCwrKysixcvKvv/ERmkpaWJCmhqaqqAxF78n7fAf+CgwuWZRKVQ5KWd+F+W+wYjiYjOKFL87fDK1oTIoKncgIASAwSUsiEgoBiNjY0rY2N7GhhMDJmTduG8WLEgoAIpApp99UrQ8uVGDEbwrFl3794lUCyVBBRvQZUPUWilP6lI6yAQRzkBvXv3rqmZ2YpdO5HXWyuyNItjZmFBeACv09Da2nrjxo1vvvkmKirKw8PDyMiIwWCMGzdu+fLle/fuvXnzZmtrqzr2m5+fb2Fhcfv27bq6OmxePNbWyezFpUyBp9FwhhilvzhecnxRodlC/xQob11PsXKUqYn4G+HhXfAIIbPpQkgNYQHF+P3334OmTzdiMmfErtx+7aqwWBBQgYSA5tZUh6ckW/Tp4z569PXr1wkXq10CKvN/v4ptrsSj/xqKEgLa1tY2wt09MDoaeaW1KFMWsT08PTs6OghfJNrIn3/+eeHChYyMjLlz5w4ePLhbt259+vSZMmVKfHz8Dz/88PvvvyvyhLiKFBUVmZiY3Lx5E/vj//73P19fX+y/ye7FJS9+GYOFkgshKTJ5SErw7pgrXI6CNanJU2LJfUUDAkoMspsuhLSoKKAYV65cGfHpp1a2totSU7H5SSCggg8FdHVBwYAhQ/rZ2//www8q9iNUFFA576iT9n97OZvj3pSjQpQQ0KTkZJeRI+GtYkplR9V1R1fX9PR0Va4T6nPv3r1jx44lJCRMmzatb9++Xbt2HThw4Jw5c7Zt21ZeXt7Q0KDh+pSWljKZzMrKStEPhf8MgF4ceUBAiQFNl7IhRUAFAgGfzy8uLrbp2/djN7e4wm9BQAV/C+im48dG+vgwmEwOh0PKTTNtEtAbNSJDBpIjBfI3l75WNMooKqC///47ncmU9qA0REY2FBcbMRgylsPVOtra2v7v//5v3759K1euZLFYJiYm+vr67u7uERERu3btun79+tu3bxFWr6KigslkcrlcaV+AXhx5QECJAU2XsiFLQDFaWlrS09PpDAaNRpsydSpZxWop6enpNBqtp4HBipUrGxsbySpW2wRUxhRSBTaX+rY8lFFUQKcGBPhHLEZeXQUTFUitoeZJ8+YFz5pF1mWjed68eVNZWZmTk7Nw4cJhw4b16NHD3Nzcx8fnyy+/PHTo0K+//kqdZwyqqqqMjY1LSkpkfAd6ceQBASUGNF3KhlwBxXjx4oV/QMDcuXPJLVbr2L59u4uLy++//05usdonoP88vi82CKrEACql1EghAa2qqjIxM+NcvqTSzo7F2iu/kktUILFBY+x8UGXmV/qF80ZM5i+//ELu9aM+nj59evr06eTk5ODgYEdHxy5dujg4OEyfPj0pKam0tPTRo0eoK4hPbW2tqalpYWGh7K9BL448IKDEgKZL2ahDQDHevXunjmK1CDUdAW0UUCnP/XfqEdCpAQFBMctV3dk/a9YoDRFn/2t3VHniYWrEYsoOgvL5/Nu3bxcVFa1Zs2bSpEkWFhZ6enpubm4LFizYvn375cuXeTwe6jrKp76+3srKKicnR+43oRdHHhBQYkDTpWzUJ6CAmtBKAf3boz6Uos77DOjdu3cNDA0zKi6ourNjsfZSVDIx1lXKgTs6w5X42gFRgcQGQcVmB5MzjJpaztU3MKDI2OG7d++qq6t3794dGRk5evRoQ0NDY2NjLy+vmJiYwsLCX375RfGXSVCEhw8f2tnZJSUlKfJl6MWRBwSUGNB0KRsQUK1DKwVU6CcfeJGczYXr7lHq/nueIgKauGnT2GkBJOxMfQKaHYh/WI/Fekh+fizWXrHlZj6AjAW0PvX1wRZC1zwvX7788ccf09LSQkNDXVxcunbtamtr6+/vv3HjxqNHjxJbxZc6NDQ0ODs7x8XFKfh96MWRBwSUGNB0KRsQUK2jEwoo6XeS1Rz5Auro5BSdu4OEnalPQInc3McbiBYutSWyx3+UVGUHjUhPHzRkiGYurbt37x49enTDhg3+/v42NjZdu3YdNGhQaGhoenr6jz/++PLlS81UQwM0NTW5ublFREQovgn04sgDAkoMaLqUDQio1qFrAkru65RJiRwBvXfvXk8DA9EXM6iQLA91Cqiidp8dSMN/Dvfv8ypRE7JeRci5fKlb9+5Pnjwh/UJqa2v75Zdfvv3225iYGC8vLyaTaWhoOHr06MjIyPz8/Orq6s76GHtzc7OHh0dISIhS0/ChF0ceEFBiQNOlbEBAtY5OKKBSN5exhijKyBHQwsLCoWPHkrQzaguojJfKyH/fjKJxHj780KFDql85PB7v8uXL2dnZCxYscHNz09PTs7S0nDRp0tq1aw8fPnz79m3qrIukPlpbW319ff39/dva2pTaEHpx5AEBJQY0XcoGBFTr0EoBJToJScYQG8LIEdCoqKjJbDZJO6O0gMqaI0aegHqHhsbGxhK4VB49elRaWvr1119Pnz69f//+Xbp0GTBgQHBwcEpKyunTp9Uxqkpx2tvbg4KCWCxWS0uLsttCL448IKDEgKZL2YCAah3aKKDCZwKVXoZJ6hqiKCNHQD3Hjw9PSSZpZ5LvnlYMDd2Cl3vaSFi/YO7GDd6TJsm9MDo6On799deDBw/GxcX5+PiYm5v36NFj+PDhCxcu3LFjR2Vl5evXr0m+FrUKPp8fFhbm7u5O7DhAL448IKDEgKZL2YCAah1aKKDCZz3FbEShzf+WV+0RUDt7+9V7C8jZmZonIalHQP+RZlKWb43ZmTfA2VnyOL99+/b69es7d+6MiIhwd3fX19c3MTFhsVixsbH79+//v//7P2XvMnduoqOjXV1dCb+TDXpx5AEBJQY0XcoGBFTr0D4BVeVVnNo4Aso0MUk8WkLOzo7F2kvROAoKqHDdLHJP2PqiQ2YWFgKB4MWLF+Xl5ampqXPmzHF2du7ataudnd20adMSExOPHz9+7949jV6IWkV8fLyjo+PTp08JlwC9OPKAgBIDmi5lAwKqdWibgMqYSKTEm5C06RlQvR49ksvKyNmZmgVUKeQJqOSiBuQ4aHhKcpeuXa2trbt16+bq6jp37tzMzMwLFy78+eefmr30tJW0tDQbGxsVBR16ceQBASUGNF3KBgRU69AiARVdoRzPXuQJqIgjadOrOA0MDZNKT5GzMzULqKKHVdlnQEk9c0uzOD319W/cuEFg6gyQn59vYWFx+/ZtFcuBXhx5QECJAU2XsgEB1TqoKKAEx84U3Zxqa9HLEdBeZmYbjhSTszPp5qf6m5DU/FgDaesXrD2w38raWrNXWSehqKjIxMTk5s2bqhcFvTjygIAqguQhgqZL2YCAah1aJaCyDUcBASXjbY6kR46Auri6Ls/LJWdn2YHyjhDBA5cY60rKFHV5u5DbCORnSWbGJ8OHa/Yq6wyUlpYymczKykpSSoNeHHlAQBVB+L9A0U+QnzsIbkBAtQ4qCaiORo6ATp46NTR+PSl7Sox1lSZwKo6ARgWq/7lakpYCDV69KmjGDM1eZVpPRUUFk8nkcrlkFQi9OPKAgCqC2L/EBdB0KRzVBXTPnj3379+X/R0ej+fr6/vq1Svcv+VyuXQ6XbQQHo9na2ubn58vrcDi4mJpO7K1tR04cKC0fWG0trayWCwfHx+5H0pWVdoXuFyu3P2SAggo8sgR0A0bN7JmzSRlTzI0UTUBlbq+vTKR9wwvSQLqERCQnJys7uuqM1FVVWVsbFxSUkJimdCLIw8moAABkJ87CG5UF1AOh6NgG5AmlFwu18bG5vDhw8JP5Hokl8vV09M7f/685OdiLotLa2urn5+f5OaYg8oQX+z34laMy+X279//xo0bsnetOiCgyCNHQEtLSx0GDSJjT7JUUiUBJekBUNlLZJG1Fn0fe/tz586p+7rqNNTW1pqamhYWFpJbLPTiyAMjoIoAAqpFIUVAxQYFJYcJ6+rqbGxspHmhpNLxeDwHBwdJQRSFzWaLbYXpY0xMjNgnkmOW0gRU7Du420qrm4zBUXIBAUUeOQL6+vXr7np6286Vq7onmRPVVRDQozNcSbr/LnWJV5l/pUySSk/p9ejx7t07DVxanYD6+norK6ucnBzSS4ZeHHlAQBVB1DuFnyA/dxDcUERAxb4v9xa8cC+YJgrbG51Oj42NFf4RGyW9ePGimC8KBZTL5aanp9va2kr+k0natkKKi4tFlRcEVHciR0AFAsEEb28SHgPNDpQxfCj97rw8ASV1/vs/i8+L7vGfuVOqDn8Gr17lN2WKBq6rTsDDhw/t7OySkpLUUTj04sgDAqoIouop/AT5uYPghpoCWldXx2AwZAuoJGw2W3T4UxIxWxV9NkB0XFNyJFUgEDx48EBsjPbMmTOiI6miv1qREVzCgIAij3wB3b9/v/Pw4SruJipQ1mOaRAVUsUWalKynFEiYZe8waNCRI0fUcSF1MhoaGpydnePi4tRUPvTiyAMCSgxoupQNFQRUUhwxAZVtk2IId4FtK3swEvcWvPBJgLq6uunTp4ttgg3KCou9du3a/fv3xQTU09NTKLi4j6iSAggo8sgX0ObmZoax8frDRcR3cyzWXqbARQVKMTzs3rfST46qFon3KpHy5oC4wm9Nzc1h/Xm5NDU1ubm5RUREqG8X0IsjDwgoMaDpUjYam4QkY26QpIBiE3rWrFkjY7+io6SiY5Z1dXWjRo2SOwtexjOgsbGxWFXFBmJFnwrNzMx89eoVVo6jo6OYdMoWbhUBAUUe+QIqEAjWrF07ZupUwvuICpTjcB8KqPCFp3+BP3QqT2qplhHe3ombNqnjKupMNDc3e3h4hISEdHR0qG8v0IsjDwgoMaDpUjakCKikPio+Aoo78ZzD4fTv3z80NFTSI7GRSBqNZmNjY2Njg90HZ7FYwglJQgEV+1xsp5iAYoop5srCp0KxbTHXFP2xdXV1a9asEQ52YpUX/dWKSDBhQECRRyEBbWhoMGIwNn5/hMg+jsXay13IMxZvIPOvkUhcy8zy0Cr7XPvdAaaxcVNTkzquok5Da2urr6+vv79/W1ubWncEvTjygIASA5ouZYNcQLHHJV1cXETHI9lsto+Pj+wVRnk8nouLi3CoMiEhQUwlsfHIuro60QWeMIQPg4rqqSIznzDy8vKET4viPgMKAtq5o5CACgSCxE2bho4dm1tTrewOErOzSL9LHhWoTfaZW1PtPHz4trQ0dVxCnYb29vagoCAWi6WBpxSgF0ceEFBiQNOlbFQXUNwb6IoLKLZ++4MHD4TyJ7yfzuVyZeigqICK7Uu2/HG5XNxnNHFXkhebe4RVb+nSpdiHIKC6GUUFtKWlpV///otSU5HXWOsStmmTo5PT+/fv1XEJdQ74fH5YWJi7u/vr1681sDvoxZEHBJQY0HQpG1IEVJVnQIUDqMK15evq6szNzbH/kJwMJERBARUbKGUwGHQ6vb6+3s/P7/jx47gLMIkhZqV1dXUbN27E/hsEVDejqIAKBIKLFy+amJltLecir7QWJan0FMPY+MqVK+q4fjoN0dHRrq6ujY2Nmtkd9OLIAwJKDGi6lI2KAor7BKfiI6CiAofdAY+JiRHORpc9VQgzy/r6etyVlWTrr2TJYsOf2DMA2H+LDYKy2WzRaUliAirUcfWtCQoCijxKCKhAIFgVFzdkzJgd1VXI660Vybl+7WM3t/gNG9R0/XQO4uPjHR0dnz59qrE9Qi+OPCCgxICmS9moKKC4C14qLqBi3+RwODk5OaJGK2N1d8K34AUSAir2R9wfJZz8JOqyYgKKKazwxfeyn2ElDAgo8ignoO/fvx8zbtxn4QuQ11srwpo1c4K3d3t7O+lXTqchLS3Nxsbm3r17mtwp9OLIAwJKDGi6lI2KAopre4oLaFRUlOwHMWVMDJJWJgEBxVaSEu5XxoL2YtXDFVDhl0FAO2uUE1CBQPDs2TNbO7svNmxAXnWKZ+bqVfYODi9fviT9suk05OfnW1hY3L59W8P7hV4ceUBAiQFNl7JRUUA5HI6kHeK+2UhSFrlcrpjn4Q49cjgcyedHsRfBi05dkr0vMXBv7osuySRt2FWGgEqCewyv18MAACAASURBVHBUBwQUeZQWUIFA8Ntvv5lZmC9OS0Nee8pm/tebLSwt7969S/o102koKioyMTG5efOm5ncNvTjygIASA5ouZaOKgIrOBxcF991IYhLJ4/HCw8PFSsOVOewxU+Hm2Jio2POaosooOW8dt+aS+xJdN1RsTFQIJr6iAir5CCxutUkEBBR5iAioQCD4+eefTc3NF2/bhvwHUDDzv95sZmFx69Ytcq+WzkRpaSmTyaysrESyd+jFkQcElBjQdCkbVQRU2jJJQgEVHVMUkznh24YwZL88XTh7HduktbX1zp07kjtVZBKSsEpiashms8UWZsI1SOEEKdGDIG2nanobJwgo8hAUUIFAcPPmTXNLyy/i1yP/DZTKrLg4y969a2trSb9aOg0VFRVMJpPL5aKqAPTiyAMCSgxoupQNYQGVHMKUhuRAqZhBSo6PqhtsJXlRP5Z2r1xMlKkACCjyEBdQgUBQX1/ft1+/yQsX5sK8+Bs1O6qu+3zxhb2Dwx9//EH2ldJ5qKqqMjY2LikpQVgH6MWRBwSUGNB0KRvV1wEFNAwIKPKoJKACgeDFixcenp5uXp4ZFReQ/xiE2fbjucGjR7O8vTW2mKU2Ultba2pqWlhYiLYa0IsjDwgoMaDpUjYgoFoHCCjyqCqgAoHg/fv3MStXWlhbx327F/nvQZKV+bvNrKy+XLNG3S8x12rq6+utrKxycnJQVwR6cfQBASUGNF3KBgRU6wABRR4SBBTj5MmTZhYWk8PDt1+9gvxXaSzZVyp9vvjCwsrqzJkzZFwRnZaHDx/a2dklJSWhrohAAL04BQICSgxoupQNCKjWAQKKPKQJqEAgeP78eUBgoE3//it270L+wzSQ6Nwd1v36TQ8OfvHihcrXQmemoaHB2dk5Li4OdUX+Anpx5AEBJQY0XcoGBFTrAAFFHjIFFOPEiRPWNjajPvNLOnUS+c9TUzYdPzbSx8fGzq6srIyUg9aJaWpqcnNzi4iIQF2Rf4BeHHlAQIkBTZeyAQHVOkBAkYd8ARUIBM3NzQmJiQxjY58vvkgt5yL/kSRmy9kz3iFzmCYmScnJb9++JeuIdVaam5s9PDxCQkI6OjpQ1+UfoBdHHhBQYkDTpWxAQLUOEFDkUYuAYjx+/HjpsmUMJtN33tyU02XIf6qKSSo95R0aQmcyl8fEPHv2jNxj1SlpbW319fX19/en2tws6MWRBwSUGNB0KRsQUK0DBBR51CigGA8ePIhevpxhbDw2wH/Nvn3If7Cyya2pXr23YNRnnzGYzNhVqx4/fqyOo9T5aG9vDwoKYrFYLS0tqOsiDvTiyAMCSgxoupQNCKjWAQKKPGoXUIzGxsYtW7f26du3v4vL7LVr0i6cR/7L5WbbufLgVavsnJzs7O23paU1NTWp7/h0Mvh8flhYmLu7++vXr1HXBQfoxZEHBJQY0HQpGxBQrQMEFHk0JKAY7e3tZWVlgdOnGxgZDZ/Amv/15oyLFcgPgVjSL5yfl5gwzMvLwNBwxsyZZ8+epdTzi1pBdHS0q6srZdfkh14ceUBAiQFNl7IBAdU6QECRR6MCKqSxsbGgoGCij09PfX3XUaNmxK7cUFycW1ON6ijkVletP1wUFBMz6NNPe+rr+/j5FRYWwpAnMeLj4x0dHZ8+fYq6IlKBXhx5QECJAU2XsgEB1TpAQJEHjYAKaWpqOnLkSOjcuRZWVkwTk099faevXLm6oCD7SqW6f3lW5U+xe74JWhEzYuJEhomJlbX1vPnzf/jhBx6Pp/nj0GlIS0uzsbG5d+8e6orIAnpx5AEBJQY0XcoGBFTrAAFFHsQCKoTP5//222+7d++eN3++o5NT165dbR0cRvlNmrokIjwlee13B9LO/0h4iDS3pnrbj+fWHti/IClpyuLFn/r62vTv36VrVydn5/kLFnzzzTf19fV8Ph/hz+8c5OfnW1hY3L59G3VF5AC9OPKAgBIDmi5lAwKqdYCAIg9VBFSM169fX7lyJS8vb9myZSxv7z59+3bp0kWvRw9rO7uPP/lkGGv82GkBE2bP9gtf4B8Z+fmyZUErYoJWxHy+bJl/ZOSkBQsmzJ7tERAwnDXe6ZOhvfv27a6n17VbN1s7u4m+vsuio3fu3Hnt2rU3b96g/pWdiqKiIhMTk5s3b6KuiHygF0ceEFBiQNOlbEBAtQ4QUOShqIBK0t7e/ujRo+vXr588ebKgoCAtLS0hIWHlypURS5aEs9lz582bN3/+QjY7YsmSVatWJSQkpKen792799SpU1VVVY8fP4aJRGqltLSUyWRWVlairohCQC+OPCCgxICmS9mAgGodIKDIozUCClCWiooKJpPJ5XJRV0RRoBdHHhBQYkDTpWxIF9DW1lYWi0Wn0+/fv6/4VnV1dQwGIyYmBvePMmCz2QMHDnz16tWDBw9evXol9rc8Hu/MmTMy6oltK1agj4+PtN0VFxfjfs7j8WxtbSVLUwcgoMgDAgqoRFVVlbGxcUlJCeqKKAH04sgDAkoMaLqUjZoEND8/X6mteDyei4uLUBbr6upsbGykuaMQLpdLo9HWrFlz48YN7L8l0dPTO3/+PO4eHRwcxP4K88hRo0ZJs2cul4tbIJfLVda5CQMCijwgoABxamtrTU1NCwsLUVdEOaAXRx4QUGJA06VsKCWgQoHDBBT7IyaFktonZpBcLldyAJLD4UgbzuRyuZIjrIp4pHDMVfgJ9pNFS8M+kTGSqgogoMgDAgoQpL6+3srKKicnB3VFlAZ6ceQBASUGNF3KRmMCmpmZKSptbDYbd8BSEswIW1tbU1JShJtLjl8qLqB5eXnnz5/fs2cPJpqiG7LZbNGa19XVTZ8+XWxzLpfr4+OD/UzRSsbGxooNu168eBF38FVFQECRBwQUIMLDhw/t7OySkpJQV4QI0IsjDwgoMaDpUjYqCqi0G9+4yBgR5PF44eHhwj/imp/ol4XDpcKxRmk1kdwph8Oh0Wjh4eG2traivogNu06aNEmsBLmjuWw2W5HHVckCBBR5QEABpWloaHB2do6Li0NdEYJAL448IKDEgKZL2aguoLj3o8WkDfeBSy6XK/waNqwo/Ku6urpRo0Y9ePBA1EqF5QcEBAjvknM4HD09vf3793///fcKjoByOBxRXxR+R2z4U9rmYgifFsAmTqnptrsoIKDIAwIKKEdTU5Obm1tERATqihAHenHkAQElBjRdygahgAr+nnKOzexJSEgQfkE4C17apB/Rr2H7UmoEVFJAccdccQVUdKeiT39i0gyz4HUhIKCAEjQ3N3t4eISEhGj1uqrQiyMPCCgxoOlSNmgFVCAQcDgcyZFL0UlI0m5wi039wZ1UhD3uKblHMQH19PRcunTp8+fP79y5I/ZNoYBic6FoNJqNjQ02Q19sISehgEpb4IksQECRBwQUUJTW1lZfX19/f/+2tjbUdVEJ6MWRBwSUGNB0KRuEAoopXUxMjOS9b1EBFUiZnM5ms2UMjop+TayGuAJ6584dyZrjjoCKPoFaV1eXkJDAYDBEx1yFT5QePnxYdt2IAQKKPCCggEK0t7cHBQWxWKyWlhbUdVEV6MWRBwSUGNB0KRtUAspms4VOiRWyadMmGbOXeDyer6+vcEccDicyMtLPzw8rU8ac+vz8fDEXxCYh4d6mr6urMzc3F9ZTroCKArfgdScgoIB8+Hx+WFiYu7v769evUdeFBKAXRx4QUGJA06VsNDYLXtpoJSasYn+LyVxmZibukpzYEGZra6tQQKXVDdNHsRvx0iYhCSRu66sioNK+pjogoMgDAgrIJzo62tXVtbGxEXVFyAF6ceQBASUGNF3KRnUBFRvslDYCmpGRIbm58Mtid+Exd8S9iy0sSiigiiwpKiq4MgRU8KGt4j5+ipllfX296Dqg0lDH65FAQJEHBBSQQ3x8vKOj49OnT1FXhDSgF0ceEFBFkDxE0HQpG4RvQhK9Ly+metgfxRYHldyR6Aio2D16gcTSTkJkC6goMgQUbsHrckBAAVmkpaXZ2Njcu3cPdUXIBHpx5AEBVQTh8I/oJ8jPHQQ3qASUw+GIjg6Kqp6omEZFRUm7yS55C15srpKaBFRsgpTo55oRUH0Dg5TTZchbji7HkE7/7bffsNMB/QHwAfn5+RYWFrdv30ZdEZKBXhx5QEAVQewupACaLoWDSkBra2tF/yiqeqJGKM32BHgCKrZrFQUU94dgc+ofPHhga2sre+a++rDt1y+hpAR5y9HZZF+9QqPRnjx5gp0O6A+AfygqKjIxMbl58ybqipAP9OLIgwkoQADk5w6CG4S34IWIDnlKahz2riPJcVDFJyGJIWMWvEDEjMVmxGOLRolO+ceePRVu++DBAw0MfwoEghGjRq3M34285ehskk6d/NdHH7W2tmKnAwQU+IvS0lImk1lZWYm6ImoBenHkgRFQRQAB1aKoSUAVeTc69kohUQWUXNQJA1M9MQ2VJqCSxYohewRUVE8lV5gSW6legKezoqhjElLA55+Hxq9H3nJ0NqsLCmzs+gpPB/QHgEAgEFRUVDCZTC6Xi7oi6gJ6ceQBAVUE0Q5Y+AnycwfBjToEVPRd7XLB3mCEjS/KeJG65Pii7HWOVHwis66ubuPGjcS2VTdpaWmeQYHIW47OJnB5dNCMGcLTAf0BIKiqqjI2Ni4pKUFdETUCvTjygIAqgqh6Cj9Bfu4guCFdQAF1c+vWLStb29yaauSNRzfjMmJEbm6u8HTAxaPr1NbWmpqaFhYWoq6IeoFeHHlAQIkBTZeyAQHVOvh8vlWfPusOfoe88ehgMi5WdOvW7dGjR8LTARePTlNfX29lZZWTk4O6ImoHenHkAQElBjRdygYEVBtZuWrVhFmzkDceHczsNWvGjR8vei7g4tFdHj58aGdnl5SUhLoimgB6ceQBASUGNF3KBgRUG3n06BHdmJl+4Tzy9qNT2X7tqpmV1fHjx0XPBVw8OkpDQ4Ozs3NcXBzqimgI6MWRBwSUGNB0KRsQUC2FvXix34L5yNuPTiU0Pn6Qq2tHR4foiYCLRxdpampyc3OLiIhAXRHNAb048oCAEgOaLmUDAqql3L1714jB2HziBPImpCPJvHzJ3Nr6zJkzYicCLh6do7m52cPDIyQkROzfIp0b6MWRBwSUGNB0KRsQUO0lPT198OjRMB1eMxn3+eeiqy8JgYtHt2htbfX19fX3929ra0NdF40CvTjygIASA5ouZQMCqr10dHSM8vAIXrUKeSvq9FmSkWFqbv706VPJswAXjw7R3t4eFBTEYrFaWlpQ10XTQC+OPCCgxICmS9mAgGo1d+/eZZqYrC4oQN6QOnGSTp00MTM7e/Ys7imAi0dX4PP5YWFh7u7ur1+/Rl0XBEAvjjwgoMSApkvZgIBqO+fOnTO1sNh84jjyttQps+1cuXW/ftu2bZN2/OHi0RWio6NdXV0bGxtRVwQN0IsjDwgoMaDpUjYgoJ2AosOHrWxtk8vKkDenTpbMy5f6DxoUuXQpn8+XdvDh4tEJ4uPjHR0dcR/C0BGgF0ceEFBiQNOlbEBAOwdZ2dm9+/ZNKj2FvEV1mmRUXBg4YsS8sDDZc53h4un8pKWl2djY3Lt3D3VFUAK9OPKAgBIDmi5lAwLaadi1e7dlnz4biouRN6pOkKRTJ20dHSOXLpW70g5FL54XL15cvXq1qKgoNTU1atmy6cHB48aPHzTE1c7e3tTcnM5g6BsY6PXoodejh76BAZ3BMLOwsLO3Hzx0qCeLNWPmzOjly7dt23b48OFr1669fPkS9a9BSX5+voWFxe3bt1FXBDHQiyMPCCgxoOlSNiCgnYnTp0+bWlgszeIgb1danbXfHehlbr75669l3HkXQomLp62t7d///veuXbsWL1kywt2dYWzctWvXPvb2Q8aMGRcYOHnRollrvly4JWV5bm5c4bcbjhRvPnE8uax0y5nTW86cTi4r3Xzi+Ibi4rjCb6Nzd4SnJM/6Mm4ymz3282muo0db29l16drV2MTk09Gjl0RG5ufn//zzz7qzAlFRUZGJicnNmzdRVwQ90IsjDwgoMaDpUjYgoJ2Mf//731Z9+kxZxN5RXYW8dWldcmuqQ9d/ZWza6/vvv1fwgCO7eFpaWioqKuLj493HjOmpr29pY/Opr0/A0sglmRmbjh/bUXWdrIOyo+p64tGSJRkZ/pFLRnp7m/fu3VNff8y4cQkJCZcuXWptbUV1BNRNaWkpk8msrKxEXRFKAL048oCAEgOaLmWjuoC2trayWCwfHx+5H0qDy+XSaLT8/HwCe6+rq2MwGDExMQKBoLa2FvuQw+HILhCrnvALe/bsuX//vuTXpH0uWZSent758+cJ1F8dvHjxYuq0aQNHjPj6JLwnSYlsO1c+jMVydnH59ddfFT/amu4Pnj17lp+f/9nUqfoGBnZOThND5kSkp6eWczV5pLZyzy7aljph9uy+AwYYGhlNDQjYs2dPQ0ODhg+FWqmoqGAymVwuF3VFqAL04sgDAkoMaLqUDSkC6ufnJ6lfYpInAy6XO3DgwFevXim+U+EmdXV1NjY29+/f5/F4tra2Pj4+2H4xJZVd58jISOyPmLDioqBDs9lssT3yeDzJ1zZqDD6fn//NN73MzEK+WpcLQ6EKZGkWx9TCYnlMzNu3b5U61BrqD5qamvLz88d6eekbGo709p6bsHEr9yzyo5Z3oybldFlofPxwFkvfwMBrwoSCggIej6eZY6I+qqqqjI2NS0pKUFeEQkAvjjwgoMSApkvZqE9Axb4jY0CUgIAKBAI2m+3j48Pj8VxcXO7fv8/hcDDZ5fF4Dg4OcusjWmcOhyNZN9zfhf0QabYqCbFhXbL47bffxnp6Dhg69KuDB5G3NMom8WiJm5eXw4ABFy9eJHCQ1dsf8Pn8y5cvB8+aZUinj5gwYVFqalblT8gPGW4yL18KT04e5uVlYGgYEhp69epVRR6hpSC1tbWmpqaFhYWoK0ItoBdHHhBQYkDTpWxIFFAul5uenm5rayvpYdgd6osXL+J6IZfLlT3QKDm+iG0VExODCejZs2c3btyoYGkClQVUVCtlD7gKnwpABZ/P//777/vY2o4L/HzL2TPI2xulknn50qSwMDqDsXnzZsKPMqqrP2htbd27d6/zoEHW/foFr4pNO/8j8uOlYFLLuUHLl1vZ2AwaMmTfvn3v379X0yFSB/X19VZWVjk5OagrQjmgF0ceEFBiQNOlbAgLqLSxwPz8fNExSEVuiMu4Ay4sMy8vD1dehSOgwlvwbDZbVBCxh0Qxv8S+I1Y4nU6PjY3F3a/kk52SAqrIgCtympub4zdsYJqYTAoL23auHHmrQ57MSxcDo6N7mZuHzp376NEjVY4t+f3B27dvMzIzLayshnqMid6Rk1tTjfx4EUhuddXS7KzB7u5W1tbZ2dla8fL0hw8f2tnZJSUloa4IFYFeHHlAQIkBTZeyUdMteA6HI3xGc/r06bJLwB2AlP19SVmk0+n379/H5jOJglXj2rVrotOJROvc2toaFRUlrACPx/P19X316lVra+vx48clf6yYgOIOuNbV1Zmbm1PNSp8+fRq7erWJmZnPF6E6u2R92vkfpy5aRGcyg4KDb926pfpRJbM/aGtr27lzp4WV1UjviV8d6iSPTazZv8/Ny8vK2vqbb75pb28n8XCRS0NDg7Ozc1xcHOqKUBToxZEHBJQY0HQpG3U/AxobG4uZHzYSiftMJPY0J4H9slis9PR0FxcXbAgzPz+fy+WGh4dnZGRg35GmtpK34IVjtNgoqbQhW2ynK1euZDAYQsedMWOGpPU+f/586dKlyj7YqgFevnwZv2GDiamp+6RJsXu+0dLxNQL56uBB1syZDGNm2IIFSs1zlw1p/UF5ebmjk9Ngd/d1B79DfrBIz5f7CgcOH+7s4nLhwgWyjhiJNDU1ubm5RUREoK4IdYFeHHlAQIkBTZeyIVFAMcUUUzHhU6HYSGRmZqakk+E+4ilavqTJCUciRSch+fj4xMbG3rp1Kzw8HPuaXAHF5j9t2rRJVECxAnF3LWaudXV1o0aNwoZLAwIC5K7ZRB1evXqVm5s7cPBgOyenGbErO/F9+czLl0K++sph0CBzS8uNCQmPHz8m90iS0B88efJkenCwla3t0ixOJ/4HQW5NdUR6mmWfPrPmzHn27Jnqx40smpubPTw8QkJC5L72SpeBXhx5QECJAU2XsiFrHVChYmIfYuOIiswBx9VWSUQNVfSxS1FfrKurO3z4sKg1SlNbYZ0xPWWz2TJ2Lfq7pA2dYgUSmMuPFj6fX11dHRYeTmcwhnl5zd+8KfPSReRtkpRwfrq8aFvq6MmTDel0vylTjh49qqbJMCpdPHw+/+DBg73MzCYvXJh9pRL5UdNAsip/8ps/39TcvLi4mKxzoAqtra2+vr7+/v6683onYkAvjjwgoMSApkvZqCig2DOXkpN1cFdWevDgAQE/E670if1R1DgFAgGbzRbuSFg+dt9f2kKkknWOiooS/rdY+WJIc1/RfckugZrweLxDhw4FBAbSmcxPxo2bvXZtclkZ8sZJIOkXzs/fvGnEhAk99PU/HT06Jyfn6dOnaj10xC8eHo8XPGuWnZNTp7znLjtr9u2z6d9/TmjomzdvSDwZytLe3h4UFMRisbRijhRaoBdHHhBQYkDTpWwICyg2ckmn0+vr6/38/I4fP467AJOM0UTFdyQqoKJg46wbN2589eoVtioT9jm2Jqjkhlid9fT0zpw5IxzIFPNFuQIq/FvZ46bYpCilfikVaG5uLikpmTl7Np3JtHV0mBgyJ5KTmX7hPPKGKiOZly8tzc7ynTfXYdCgnvr63pMm7dq1S8W57YpDsD+ora2162/Pmjkz++oV5EcQSbIqfxoX+LmDk9N///tfck+JgvD5/LCwMHd399evXyOpgHYBvTjygIASA5ouZaOOSUhiw5+ic4wUHwQVjkpKDqaKmp+Pj8+mTZuwm/hC58Om3uM+AIpNhxetM/Yc59WrV7HZ+kLFxB1AFT70KXkQFHztk7bQ3t5eU1OzdetWlre3gaGhnZOT1/TpofHx64sOkfiacWLJuX5t/eGieYmJE+fMHjBkSHc9vSFubrGrVpWXl797907DB4rIxXP8+HHjXr3Ck75Gfv0jz9yEjSampmVlZaSfGLlER0e7uro2NjZqftfaCPTiyAMCSgxoupQN6QIq9kdpy2TKHj7EwO6SKzKTXWzYUviIpzQjFN0We45T+CgqnU6/desWNpqrp6cnfF0nhrRV7nGXZ5K9+qkW8f79+59++ik9PX3GrFkOTgN69OzZf+BAD3//z6OjI9LTNhwpVusoHueny+sPF0WkpwWtWDEuKNBx8OBu3bv3MjX19fNLTEw8c+YM2udulb54cvPyTC0t1353APnFT5Gs3lvQy9xsz5496jg90oiPj3d0dFT38xmdCejFkQcElBjQdCkb0gUUW6RTOGYpe4a7IkgTUGxH2Kin5F6EC5HKrrPoFH6xoU1p65vm5+fLXTlfSKdxUFHevHlTWVm5ffv2iCVLWN7edv37d+vWzdjMdICr60hv7/HBwVOXRMxZt27hlpTlublr9u/b+P2RpNJT2348l3npYlblT9uvXsm+eiXjYsW2c+XJZWWbjh/bcKR43cHvluflhicnz4yLm8xmj58Z/Kmv78effGJsZkqj0Yx79Ro5atS8+fNTU1PPnDnz5MkT6rzlUbmLJyUlxdrObvOJE8ivfEoloaTEok+fjMxMNZ0kMdLS0mxsbO7du6eZ3XUOoBdHHhBQYkDTpWzUtA6o6Nx2Amt8ihYu+0VKoi83Eu6Iy+Xq6ek5OjpK27Wod2J33hUUUOGyprj17Ey34JWivb397t275eXle/fuTU1NjV21KnTuXO9Jk4YOH2ZrZ2dhZWXcq5eBoWHXbt3EBP1f//qXvr6+Sa9e1ra2LoMHj/XyCvj888WLFycmJu7atevUqVO1tbUUf0JPiYsnJSWlj709vBEVN0mnTlra2GRyOOo7VRj5+fkWFha3b99W9446GdCLIw8IKDGg6VI2ahJQ0WWJxMZElQJTSWmr3Isu9iS81y8c+8TqgDsZCKvzmTNnhIt3KiKgPB5PuMKoZIG6LKCK09HR8e7duzdv3rS0tLS3t1NnIJMwil48+fn5ljZ9wD5lJOnUSVNLywMHDqjvbBUVFZmYmNy8eVN9u+isQC+OPCCgxICmS9moIqCiz02KSh6bzRazRhkuKKNYGQOouAVKDpcKHwYVflP4rk46nb5nzx6hMuIuRyr2K6S9j14AAqrDKHTxlJeXG5uaJh4tQX7BUzzrDxcxTUwuXbqkjlNVWlrKZDIrKyvVUXinB3px5AEBJQY0XcpG9RFQTMtEBU6ah0m7f42LtDd8YqOeYmqI+6GQ2tpayU/EhjNxR0BFX4PE4/GEb/hUvLZAp0f+xXP37l1TM7MVu3Yiv9q1IkuzOGYWFg8fPiT3PFVUVDCZTC6XS26xugP04sgDAkoMaLqUjeoCCgC6jJyLp62tbYS7e2B0NPJLXYsyZRHbw9OTxBdjVlVVGRsbl5SUkFWgDgK9OPKAgBIDmi5lAwIKAKog5+JJSk52GTkyt7oK+aWuRdlRdd3R1TU9PZ2UM1RbW2tqalpYWEhKaToL9OLIAwJKDGi6lA0IKACogqyL5/fff6czmZuOH0N+nWtdNhQXGzEYqr9MrL6+3srKKicnR8VyAOjFkQcElBjQdCkbEFAAUAVZF8/UgAD/iMXIL3IFExVIs489irwawkyaNy941ixVzs3Dhw/t7OySkpJUKQTAUHDpY0DdoG4I2gfqMwbIAXUDAQBtRerFU1VVZWJmxrl8SSUPOxZr7xqbqLxK0miBUUrv7ugMVxqN5jrjGHr7zLtRk37hvBGT+csvvxA7MQ0NDc7OznFxcUTPLAAAAAAAAEWRKqBTAwKCYpar6mHHYu2JJvV3VwAADClJREFU/rOSyHDmX7sjIK9qydSIxcQGQZuamtzc3CIiIlQ4swAAAAAAABQFX0Dv3r1rYGiYUXGBFAHFVcnEWFca/uDo0RmuNFpgFrE9RgVSaBA0tZyrb2Dw6NEjpU5Jc3Ozh4dHSEgIifPoAQAAAAAAqAO+gCZu2jR2WgAJEqY+Ac0OxB8iPRbrIfn5sVh7RFb6qa9Pamqq4uejtbXV19fX39+/ra2NpFMMAAAAAABALfAF1NHJKTp3B6UFlMjNfQS35iPS0wcNGaLgyWhvbw8KCmKxWC0tLeSdYgAAAAAAAGqBI6D37t3raWCw/dpVMgwsy0OdAqroc6LZgTQazSNb0/aZd6OGc/lSt+7dnzx5IvdM8Pn8sLAwd3f3169fq+FEAwAAAAAAUAUcAS0sLBw6dixJBqbrApp3o8Z5+PBDhw7JPRPR0dGurq6NjY1qOMsAAAAAAAAUAkdAo6KiJrPZuiGgWR40mvCvogJF79eT9syod2hobGys7NMQHx/v6Oj49OlT9ZxlAAAAAAAACoEjoJ7jx4enJJMooETQsIDG4j9RSsrK9nM3bvCeNEnGOUhLS7Oxsbl3757azjIAAAAAAACFwBFQO3v71XsLyBFQNU9CIktAJYY8hZ+TMA4aszNvgLOztBOQn59vYWFx+/ZtdZ5lAAAAAAAACoEjoEwTk8SjJSQKKO7DlxQTUAnR/HuWveqDoOuLDplZWOAe/aKiIhMTk5s3b6r5LAMAAAAAAFAIHAHV69EjuaxMKwRUKWQJKM7uZPyVctl07KiBkZHkcS4tLWUymZWVleo/ywAAAIBWwmazY2JixD4sLi5GUhkAIBEcATUwNEwqPaUVAqroxHZ5I6B4w5zYm+VJENCNP3zPMDYWO8gVFRVMJpPL5WrkLAMAAADUgsPh0On0+/fvY39ks9nSRk/09PTOnz8vui2Xy6XRaPn5+TLKZ7PZPj4+avwBAKAaOALay8xsw5FicgRU+vpHqr8JiYwHNDUhoGsP7LeythY9wlVVVcbGxiUlJZo6ywAAAADlYLPZAwcOfPXqleiHHA4H+zAqKkrMO8W+hvlrXV0dg8HANdeNGzeKFQ4A1AFHQF1cXZfn5ZIooESQp32Jsa5kvNlIEwK6JDPjk+HDhYe3trbW1NS0sLBQg2cZAAAAoBxcLhd3kJLD4cgd4Kyrq7OxsREOoGKfjBo1CjPO1tZWFosluwQAQAuOgE6eOjU0fj0pApoY6yptnFLFEdCoQJqUzSknoMGrVwXNmIEd2/r6eisrq5ycHM2eZQAAAIC6YL4oY0xGcqBUEjEB9fPzkzGACgDIwRHQDRs3smbNJEVAZWiiagIqdX17CgqoR0BAcnKyQCB4+PChnZ1dUlKSxs8yAAAAQF3EfFFsZJTNZisylgkCCmgXOAJaWlrqMGgQGQIqSyVVElByHgDVkID2sbc/d+5cQ0ODs7NzXFyc5s8xAAAAQEHq6urMzc3Pnz9PQEB5PJ6tra3oBHmhgF68ePH8+fOyHyEFAOTgCOjr16+76+ltO1euqt7JnKiugoAeneFKyv13TQhoUukpvR49nj596ubmFhERofkTDAAAAFAKzB2xe+vYDHe5t+CFAiq6LZ1OP3PmDPbAqBh0On3SpEnwDChAZXAEVCAQTPD2JuEx0OxAGfOEpN+dlyegpA1/akJAg1ev8vHz8/DwCAkJ6ejo0PDZBQAAACiLcCIRsRFQFxcXaZOQpG0FANQBX0D379/vPHy4inoXFSjrMU2iAqrYIk2UEdD+Li5Dhw719/dva2vT8KkFAAAAqIxaBZTD4WA36FtbW48fP67eXwIAyoMvoM3NzQxj4/WHi4i717FYe5nLJEUF0vDHR7FXHCn95CgVBXT13gI9PT0vL6+WlhYNn1cAAACA4ogKqIK34IXIFVDhH+vq6g4fPqy5XwUAioEvoAKBYM3atWOmTiXsXlGBcl5T9KGACt/J/hf4Q6fypJZSya2pNu3du4+NzevXrzV5RgEAAACtQK0joMKlQPPy8mA2EkBBpApoQ0ODEYOx8fsjRPTrWKy93IU8Y/EGMv96wzuuZWZ5aI995t2oGe7r26VLlz/++EOTpxMAAADQFtQqoNgnDAZD8k2eAEAFpAqoQCBI3LRp6NixuTXVyrpXYnYWeXfJ/xbWQG2yz88WLuzeo8eGjRs1dR4BAAAALUO2gIq+Y1NSQCXfliQpoFhRIKAANZEloC0tLf3691+Umorc57QrQStiDBiMfvb279+/19iJBAAAALQI7EXwDx48cHFxqa+vlzZPiMvlYu98F/2ERqNhE4zYbDbuyzwBgPrIElCBQHDx4kUTM7Ot5VzkVqctCY1fb8hkGtHpV65c0cwpBAAAALQIbC1PoThif1RwnFJy/XnMR2VszuPxHBwcYBAUoBpyBFQgEKyKixsyZsyO6irkbkf9hKck69Ppds7O8Rs2aODkAQAAANrItWvXRAc1BQq8Dl5sHFQM0QXqldoQAFAhX0Dfv38/Zty4z8IXINc7imdpdlZPI6NhEydM8PZub2/XwMkDAAAAAADQRuQLqEAgePbsma2d3RcbNiCXPMpm5e7dPY2MPGfMsHdwePnypbpPGwAAAAAAgPaikIAKBILffvvNzMJ8cVoactWjYNbs26dPp7PmzLawtLx79646zxcAAAAAAIDWo6iACgSCn3/+2dTcfPG2bciFj1LZUFxsyGSODQoys7C4deuW+k4VAAAAAABA50AJARUIBDdv3jS3tPwifj1y7aNINh0/xjA1HTZxomXv3rW1tWo6SQAAAAAAAJ0J5QRUIBDU19f37ddv8sKFuTo/Lz7ldFkvKyvHTz6xd3CANx4BAAAAAAAoiNICKhAIXrx44eHp6eblmVFxAbkFosq2H8+Z29qaWVuzvL0bGxtJPzEAAAAAAACdFSICKhAI3r9/H7NypYW1ddy3e5G7oOaTcbHC3Na2p77+l2vWtLW1kXtKAAAAAAAAOjcEBRTj5MmTZhYWk8PDt1+9glwKNZa08z8yzc179Ox5+vRpsk4DAAAAAACA7qCSgAoEgufPnwcEBtr0779i9y7kaqiBROfuMDE3792799OnT0k5AQAAAAAAALqGqgKKceLECWsbm1Gf+SWdOoncEdWUTcePjfTxsbGzKysr6+joIOW4AQAAAAAA6CDkCKhAIGhubk5ITGQYG/t88UVqORe5L5KYLWfPeIfMYZqYJCUnv337lqwjBgAAAAAAoJuQJqAYjx8/XrpsGYPJ9J03N+V0GXJ3VDFJpae8Q0PoTObymJhnz56Re6wAAAAAAAB0E5IFFOPBgwfRy5czjI3HBviv2bcPuUcqm9ya6tV7C0Z99hmDyYxdterx48fqOEoAAAAAAAC6iVoEFKOxsXHL1q19+vbt7+Iye+2atAvnkZul3Gw7Vx68apWdk5Odvf22tLSmpib1HR8AAAAAAADdRI0CitHe3l5WVhY4fbqBkdHwCaz5X2/OuFiBXDTFkn7h/LzEhGFeXgaGhjNmzjx79ixMMwIAAAAAAFATahdQIY2NjQUFBRN9fHrq67uOGjUjduWG4uLcmmpU0plbXbX+cFFQTMygTz/tqa/v4+dXWFgIQ54AAAAAAADqRnMCKqSpqenIkSOhc+daWFkxTUw+9fWdvnLl6oKC7CuV6pbOrMqfYvd8E7QiZsTEiQwTEytr63nz5//www88Hk/zxwEAAAAAAEA3QSCgQvh8/m+//bZ79+558+c7Ojl17drV1sFhlN+kqUsiwlOS1353IO38j4SHSHNrqrf9eG7tgf0LkpKmLF78qa+vTf/+Xbp2dXJ2nr9gwTfffFNfX8/n8xH+fAAAAAAAAN0EpYCK8fr16ytXruTl5S1btozl7d2nb98uXbro9ehhbWf38SefDGONHzstYMLs2X7hC/wjIz9ftixoRUzQipjPly3zj4yctGDBhNmzPQIChrPGO30ytHffvt319Lp262ZrZzfR13dZdPTOnTuvXbv25s0b1L8SAAAAAABA16GQgErS3t7+6NGj69evnzx5sqCgIC0tLSEhYeXKlRFLloSz2XPnzZs3f/5CNjtiyZJVq1YlJCSkp6fv3bv31KlTVVVVjx8/holEAAAAAAAAFITSAgoAAAAAAAB0PkBAAQAAAAAAAI3y/8EIjHpNrQ8EAAAAAElFTkSuQmCC" alt="" />
有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这些数据库连接的数量是由最小数据库连接数来设定的.无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量.连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中.
数据库连接池的最小连接数和最大连接数的设置要考虑到以下几个因素:
- 最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费.
- 最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待队列中,这会影响以后的数据库操作
- 如果最小连接数与最大连接数相差很大:那么最先连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接.不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,他将被放到连接池中等待重复使用或是空间超时后被释放.
二、自定义数据库连接池
2.1 初始版本
【实现思路】
- 编写连接池需实现java.sql.DataSource接口,并重写接口中的getConnection()方法
- 提供一个集合,用于存放连接,因为移除/添加操作过多,所以选择LinkedList
- 在静态代码块中为连接池初始化5个连接
- 程序如果需要连接,调用实现类的getConnection(),从连接池(容器List)获得连接。为保证当前连接只能提供一个线程使用,需要将连接先从连接池中移除。
- 使用完连接,要释放资源时,不执行close()方法,而是将连接添加到连接池中
【代码编写】
public class MyDataSource implements DataSource {
//1.创建1个容器用于存储Connection对象
private static LinkedList<Connection> pool = new LinkedList<Connection>(); //2.创建5个连接放到容器中去
static{
for (int i = 0; i < 5; i++) {
Connection connection = JdbcUtils.getConnection();
pool.add(connection);
}
} /**
* 重写获取连接的方法
*/
@Override
public Connection getConnection() throws SQLException {
Connection connection = null;
//3.使用前先判断
if (pool.size() == 0) {
//4.池子里面没有,我们再创建一些
for (int i = 0; i < 5; i++) {
connection = JdbcUtils.getConnection();
pool.add(connection);
}
}
//5.从池子里面获取一个连接对象Connection
connection = pool.remove(0);
return connection;
} /**
* 归还连接对象到连接池中去
*/
public void backConnection(Connection connection) {
pool.add(connection);
} ...
}
【测试】
@Test
public void testAddUser() {
Connection conn = null;
PreparedStatement pstmt = null;
// 1.创建自定义连接池对象
MyDataSource dataSource = new MyDataSource();
try {
// 2.从池子中获取连接
conn = dataSource.getConnection();
String sql = "insert into t_user values(?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 3);
pstmt.setString(2, "张三");
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
dataSource.backConnection(conn);
}
}
2.2 方法增强——装饰者模式
【需求】
上述自定义连接池中存在严重问题,用户调用getConnection()获得连接后,必须使用backConnection()方法进行连接的归还,如果用户调用conn.close()将连接真正的释放,连接池中将出现无连接可用。
此时我们希望,即使用户调用了close()方法,连接仍归还给连接池。close()方法原有功能是释放资源,我们期望的功能是将连接归还给连接池。说明close()方法没有我们希望的功能,我们将对close()方法进行增强,从而实现将连接归还给连接池的功能。
【方法增强总结】
1.继承:
- 子类继承父类,将父类的方法进行复写,从而进行增强。
- 使用前提:必须有父类,且存在继承关系。
2.装饰者模式:
- 此设计模式专门用于增强方法。
- 使用前提:必须有接口
3.动态代理:
- 在运行时动态的创建代理类,完成增强操作。与装饰者相似
- 使用前提:必须有接口
- 难点:需要反射技术
【装饰者设计模式】
设计模式:专门为解决某一类问题,而编写的固定格式的代码。
固定结构:接口A,已知实现类C,需要装饰者创建代理类B
实现步骤:
- 创建类B,并实现接口A
- 提供类B的构造方法,参数类型为A,用于接收A接口的其他实现类(C)
- 给类B添加类型为A的成员变量,用于存放A接口的其他实现类
- 增强需要的方法
- 实现不需要增强的方法,方法体重调用成员变量存放的其他实现类对应的方法
A a = ...C;
B b = new B(a);
class B implements A{
private A a; public B(A,a){
this.a = a;
} // 增强的方法
public void close(){ } // 不需要增强的方法
public void commit(){
this.a.commit();
}
}
2.3 使用装饰者模式增强连接池
【装饰类】
//1.实现同一个接口Connection
public class MyConnection implements Connection {
//3.定义一个变量
private Connection conn; private LinkedList<Connection> pool; //2.编写一个构造方法(参数使用了面向对象的多态特性)
public MyConnection(Connection conn,LinkedList<Connection> pool) {
this.conn = conn;
this.pool = pool;
} //4.书写需要增强的方法
@Override
public void close() throws SQLException {
pool.add(conn);
} /**
* 5.实现不需要增强的方法
* 注意:此方法必须覆盖!否则会出现空指针异常!!!
*/
@Override
public PreparedStatement prepareStatement(String sql) throws SQLException {
return conn.prepareStatement(sql);
}
@Override
public void commit() throws SQLException { }
...
}
【使用装饰类】
public class MyDataSource1 implements DataSource {
//1.创建1个容器用于存储Connection对象
private static LinkedList<Connection> pool = new LinkedList<Connection>(); //2.创建5个连接放到容器中去
static{
for (int i = 0; i < 5; i++) {
Connection conn = JdbcUtils.getConnection();
//放入池子中connection对象已经经过改造了
MyConnection myconn = new MyConnection(conn, pool);
pool.add(myconn);
}
} /**
* 重写获取连接的方法
*/
@Override
public Connection getConnection() throws SQLException {
Connection conn = null;
//3.使用前先判断
if (pool.size() == 0) {
//4.池子里面没有,我们再创建一些
for (int i = 0; i < 5; i++) {
conn = JdbcUtils.getConnection();
//放入池子中connection对象已经经过改造了
MyConnection myconn = new MyConnection(conn, pool);
pool.add(myconn);
}
}
//5.从池子里面获取一个连接对象Connection
conn = pool.remove(0);
return conn;
} /**
* 归还连接对象到连接池中去
*/
public void backConnection(Connection connection) {
pool.add(connection);
} ...
}
【测试】
/**
* 使用改造过的connection
*/
@Test
public void testAddUser1() {
Connection conn = null;
PreparedStatement pstmt = null;
// 1.创建自定义连接池对象
DataSource dataSource = new MyDataSource1();
try {
// 2.从池子中获取连接
conn = dataSource.getConnection();
String sql = "insert into t_user values(?,?)";
//3.必须在自定义的connection类中重写prepareStatement(sql)方法
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 6);
pstmt.setString(2, "王五");
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
//这里的connection是已经经过增强的,增强后的conn.close()就是将连接归还给连接池
JdbcUtils.release(conn, pstmt, null);
}
}
三、DBCP连接池
DBCP 是 Apache 软件基金组织下的开源连接池实现,在企业开发中也比较常见,它是tomcat内置的连接池
3.1 导包
- Commons-dbcp.jar:连接池的实现
- Commons-pool.jar:连接池实现的依赖库
3.2 提供配置文件
- 配置文件名称:*.properties
- 配置文件位置:任意,建议src(classpath/类路径)
#基本配置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb1
username=root
password=123 #初始化池大小,即一开始池中就会有10个连接对象
默认值为0
initialSize=0 #最大连接数,如果设置maxActive=50时,池中最多可以有50个连接,当然这50个连接中包含被使用的和没被使用的(空闲)
#你是一个包工头,你一共有50个工人,但这50个工人有的当前正在工作,有的正在空闲
#默认值为8,如果设置为非正数,表示没有限制!即无限大
maxActive=8 #最大空闲连接
#当设置maxIdle=30时,你是包工头,你允许最多有20个工人空闲,如果现在有30个空闲工人,那么要开除10个
#默认值为8,如果设置为负数,表示没有限制!即无限大
maxIdle=8 #最小空闲连接
#如果设置minIdel=5时,如果你的工人只有3个空闲,那么你需要再去招2个回来,保证有5个空闲工人
#默认值为0
minIdle=0 #最大等待时间
#当设置maxWait=5000时,现在你的工作都出去工作了,又来了一个工作,需要一个工人。
#这时就要等待有工人回来,如果等待5000毫秒还没回来,那就抛出异常
#没有工人的原因:最多工人数为50,已经有50个工人了,不能再招了,但50人都出去工作了。
#默认值为-1,表示无限期等待,不会抛出异常。
maxWait=-1 #连接属性
#就是原来放在url后面的参数,可以使用connectionProperties来指定
#如果已经在url后面指定了,那么就不用在这里指定了。
#useServerPrepStmts=true,MySQL开启预编译功能
#cachePrepStmts=true,MySQL开启缓存PreparedStatement功能,
#prepStmtCacheSize=50,缓存PreparedStatement的上限
#prepStmtCacheSqlLimit=300,当SQL模板长度大于300时,就不再缓存它
connectionProperties=useUnicode=true;characterEncoding=UTF8;useServerPrepStmts=true;cachePrepStmts=true;prepStmtCacheSize=50;prepStmtCacheSqlLimit=300 #连接的默认提交方式
#默认值为true
defaultAutoCommit=true #连接是否为只读连接
#Connection有一对方法:setReadOnly(boolean)和isReadOnly()
#如果是只读连接,那么你只能用这个连接来做查询
#指定连接为只读是为了优化!这个优化与并发事务相关!
#如果两个并发事务,对同一行记录做增、删、改操作,是不是一定要隔离它们啊?
#如果两个并发事务,对同一行记录只做查询操作,那么是不是就不用隔离它们了?
#如果没有指定这个属性值,那么是否为只读连接,这就由驱动自己来决定了。即Connection的实现类自己来决定!
defaultReadOnly=false #指定事务的事务隔离级别
#可选值:NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
#如果没有指定,那么由驱动中的Connection实现类自己来决定
defaultTransactionIsolation=REPEATABLE_READ
3.3 编写工具类
public class DBCPUtils {
/**
* 在java中,编写数据库连接池需实现java.sql.DataSource接口,每一种数据库连接池都是DataSource接口的实现
* DBCP连接池就是java.sql.DataSource接口的一个具体实现
*/
private static DataSource dataSource = null;
//在静态代码块中创建数据库连接池
static{
try {
//加载dbcp.properties配置文件
InputStream in = DBCPUtils.class.getClassLoader().getResourceAsStream("dbcp.properties");
Properties prop = new Properties();
prop.load(in);
//创建数据源
dataSource = BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 从数据源中获取数据库连接
*/
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
} /**
* 释放资源
* 释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,存储查询结果的ResultSet对象
*/
public static void release(Connection conn, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.4 测试DBCP数据源
public class DBCPTest {
@Test
public void addUser() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
conn = DBCPUtils.getConnection();
String sql = "insert into t_user values(?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 8);
pstmt.setString(2, "刘备");
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("添加成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
四、C3P0连接池
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。C3P0数据源在项目开发中使用得比较多。
- dbcp没有自动回收空闲连接的功能
- c3p0有自动回收空闲连接功能
4.1 导包
- c3p0-0.9.2-pre1.jar
- mchange-commons-0.2.jar
如果操作的是Oracle数据库,那么还需要导入c3p0-oracle-thin-extras-0.9.2-pre1.jar
4.2 添加配置文件
- 配置文件名称:c3p0-config.xml(必须是这个)
- 配置文件位置:src(必须放在类路径下)
- 配置文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!--这是默认配置信息-->
<default-config>
<!--连接四大参数配置-->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">root</property>
<!--池参数配置-->
<!--如果池中数据连接不够时一次增长多少个-->
<property name="acquireIncrement">3</property>
<!--初始化连接数-->
<property name="initialPoolSize">10</property>
<!--最小连接数-->
<property name="minPoolSize">2</property>
<!--最大连接数-->
<property name="maxPoolSize">10</property>
</default-config>
<!--专门为Oracle提供的配置信息-->
<named-config name="oracle-config">
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123</property>
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</named-config>
</c3p0-config>
4.3 编写工具类
public class C3P0Utils {
private static ComboPooledDataSource dataSource = null;
//在静态代码块中创建数据库连接池
static{
try {
// 通过代码创建C3P0连接池
/*dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setInitialPoolSize(10);
dataSource.setMinPoolSize(5);
dataSource.setMaxPoolSize(20);*/ //通过读取C3P0的xml配置文件创建数据源,C3P0的xml配置文件c3p0-config.xml必须放在src目录下
//使用C3P0的默认配置来创建数据源
dataSource = new ComboPooledDataSource();
//使用名为oracle-config的配置来创建数据源
// dataSource = new ComboPooledDataSource("oracle-config");
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 从数据源中获取数据库连接
*/
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
} /**
* 释放资源
* 释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,存储查询结果的ResultSet对象
*/
public static void release(Connection conn, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} }
4.4 测试C3P0数据源
@Test
public void addUser() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
conn = C3P0Utils.getConnection();
String sql = "insert into t_user values(?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 9);
pstmt.setString(2, "关羽");
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("添加成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
五、Tomcat配置连接池
在实际开发中,我们有时候还会使用服务器提供给我们的数据库连接池,比如我们希望Tomcat服务器在启动的时候可以帮我们创建一个数据库连接池,那么我们在应用程序中就不需要手动去创建数据库连接池,直接使用Tomcat服务器创建好的数据库连接池即可。要想让Tomcat服务器在启动的时候帮我们创建一个数据库连接池,那么需要简单配置一下Tomcat服务器。
5.1 JNDI技术简介
JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包,
这套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需 通过名称检索即可。其核心API为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。
Tomcat服务器创建的数据源是以JNDI资源的形式发布的,所以说在Tomat服务器中配置一个数据源实际上就是在配置一个JNDI资源,通过查看Tomcat文档,我们知道使用如下的方式配置tomcat服务器的数据源:
<Context>
<Resource name="jdbc/datasource" auth="Container"
type="javax.sql.DataSource" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
maxActive="8" maxIdle="4"/>
</Context>
服务器创建好数据源之后,我们的应用程序又该怎么样得到这个数据源呢,Tomcat服务器创建好数据源之后是以JNDI的形式绑定到一个JNDI容器中的,我们可以把JNDI想象成一个大大的容器,我们可以往这个容器中存放一些对象,一些资源,JNDI容器中存放的对象和资源都会有一个独一无二的名称,应用程序想从JNDI容器中获取资源时,只需要告诉JNDI容器要获取的资源的名称,JNDI根据名称去找到对应的资源后返回给应用程序。我们平时做javaEE开发时,服务器会为我们的应用程序创建很多资源,比如request对象,response对象,服务器创建的这些资源有两种方式提供给我们的应用程序使用:第一种是通过方法参数的形式传递进来,比如我们在Servlet中写的doPost和doGet方法中使用到的request对象和response对象就是服务器以参数的形式传递给我们的。第二种就是JNDI的方式,服务器把创建好的资源绑定到JNDI容器中去,应用程序想要使用资源时,就直接从JNDI容器中获取相应的资源即可。
对于上面的name="jdbc/datasource"数据源资源,在应用程序中可以用如下的代码去获取
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
dataSource = (DataSource)envCtx.lookup("jdbc/datasource");
此种配置下,数据库的驱动jar文件需放置在tomcat的lib下
aaarticlea/png;base64,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" alt="" />
5.2 配置JNDI资源
- 在Web项目的WebRoot目录下的META-INF目录创建一个context.xml文件
- 在context.xml文件配置tomcat服务器的数据源
<Context>
<!--name:指定资源的名称
factory:用来创建资源的工厂,这个值基本上是固定的,不用修改
type:资源的类型
其他的东西都是资源的参数
-->
<Resource
name="jdbc/datasource"
factory="org.apache.naming.factory.BeanFactory"
type="javax.sql.DataSource"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
maxActive="8"
maxIdle="4"/>
</Context>
5.3 获取JNDI的资源
/**
* 获取JNDI的资源
*
*/
public class AServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*
* 1. 创建JNDI的上下文对象
*/
try { Context cxt = new InitialContext();
// 2查询出入口
// Context envContext = (Context)cxt.lookup("java:comp/env");
// 3. 再进行二次查询,找到我们的资源
// 使用的是名称与<Resource>元素的name对应
// DataSource dataSource = (DataSource)envContext.lookup("jdbc/dataSource"); DataSource dataSource = (DataSource)cxt.lookup("java:comp/env/jdbc/dataSource"); Connection con = dataSource.getConnection();
System.out.println(con);
con.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
参考:https://www.cnblogs.com/xdp-gacl/p/4002804.html
JavaWeb学习笔记(十七)—— 数据库连接池的更多相关文章
- JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)
JDBC数据库连接池的必要性 一.在使用开发基于数据库的web程序时,传统的模式基本是按一下步骤: 1)在主程序(如servlet/beans)中建立数据库连接 2)进行sql操作 3)断开数据库连接 ...
- 【转】JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)
转自:http://www.cnblogs.com/ysw-go/ JDBC数据库连接池的必要性 一.在使用开发基于数据库的web程序时,传统的模式基本是按一下步骤: 1)在主程序(如servlet/ ...
- JDBC编程学习笔记之数据库连接池的实现
在JDBC编程的时候,获取到一个数据库连接资源是很宝贵的,倘若数据库访问量超大,而数据库连接资源又没能得到及时的释放,就会导致系统的崩溃甚至宕机.造成的损失将会是巨大的.再看有了数据库连接池的JDBC ...
- java学习笔记—第三方数据库连接池包1(29)
第一步:导入dbcp包 第二步:通过核心类连接数据 BasicDataSource它是javax.sql.DataSrouce的子类. 一个工具类:BasicDataSourceFactory. 手工 ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- javaweb学习笔记整理补课
javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...
- JUC源码学习笔记5——线程池,FutureTask,Executor框架源码解析
JUC源码学习笔记5--线程池,FutureTask,Executor框架源码解析 源码基于JDK8 参考了美团技术博客 https://tech.meituan.com/2020/04/02/jav ...
- 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
随机推荐
- SQL Compare数据库版本比较工具
Red Gate系列文章: Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source C ...
- 【转】Comprehensive learning path – Data Science in Python
Journey from a Python noob to a Kaggler on Python So, you want to become a data scientist or may be ...
- springmvc乱码配置
web.xml配置 <!-- springmvc乱码 --> <filter> <filter-name>encodingFilter</filter-nam ...
- js中的函数参数问题
js函数没有Java中的重载现象.js函数的参数是放在arguments的容器里面的. <script type="text/javascript"> functio ...
- Linux中找不到service命令
解决方法: 1.su -l root su root:的话只是将当前身份转为root,用户shell并没有改变.所以有些系统命令不能使用. su -或者su -l或者su -l root,可以完全的 ...
- asp.net WebAPI 问题 iisnode默认不支持PUT和DELETE的解决
因为iisnode的自动重启服务器方便,一直用的它来作为开发中的node服务器,今天一个delete命令过去,得到一个405(?好像是)错误,让我很郁闷. 用原生的node试一下,是完美支持的,本来打 ...
- C/C++ Pthread线程
线程按照其调度者可以分为用户级线程和核心级线程两种 用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持: 我们常用基本就是用户级线程,所 ...
- Maven整理笔记のMaven仓库
Maven坐标和依赖是任何一个构件在Maven世界中的逻辑表示方式:而构件的物理表示方式是文件,Maven通过仓库来统一管理这些文件. Maven仓库 在Maven的世界中,任何一个依赖.插件或者项 ...
- ASP.NET MVC中的控制器激活与反射之间的联系(帮助理解)
ASP.NET Mvc是ASP.NET的一个框架,同样也是基于管道的设计结构.HttpModule和HttpHandler是ASP.NET的两个重要组件,同样的在Mvc中也是非常重要的组件.在应用程序 ...
- [C#]C#中字符串的操作
1.Replace(替换字符):public string Replace(char oldChar,char newChar);在对象中寻找oldChar,如果寻找到,就用newChar将oldCh ...