From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1BJEFy-00017x-Lh for qemu-devel@nongnu.org; Thu, 29 Apr 2004 12:19:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1BJEFS-0000xg-P4 for qemu-devel@nongnu.org; Thu, 29 Apr 2004 12:19:25 -0400 Received: from [128.187.28.163] (helo=mail.chem.byu.edu) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.30) id 1BJE0t-0006nd-5Q for qemu-devel@nongnu.org; Thu, 29 Apr 2004 12:03:51 -0400 Received: from [192.168.105.35] (isengard.chem.byu.edu [192.168.105.35]) by mail.chem.byu.edu (8.12.10/8.12.10) with ESMTP id i3TG0Oxl020033 for ; Thu, 29 Apr 2004 10:00:24 -0600 Subject: Re: [Qemu-devel] Fix for bochs vbe issues From: Michael L Torrie In-Reply-To: <4090335C.2010108@bellard.org> References: <4090235C.6040305@aclaro.com> <4090335C.2010108@bellard.org> Content-Type: multipart/mixed; boundary="=-w6Zvb95oy5GH4QKhWAz7" Message-Id: <1083254633.32696.36.camel@isengard> Mime-Version: 1.0 Date: Thu, 29 Apr 2004 10:03:53 -0600 Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --=-w6Zvb95oy5GH4QKhWAz7 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Wed, 2004-04-28 at 16:42, Fabrice Bellard wrote: > Hi, > > I just commited a slightly different patch. Tell me if it works. I updated from CVS this morning, but unfortunately it doens't completely work. The screen looks all garbled. The interesting thing is that if I install VNC server, the exported screen is all garbled also. Attached is a screenshot. It could be the whole install is scrambled. Or I have the wrong driver. Michael > > Fabrice > > Matthew Mastracci wrote: > > I found a way to fix the bochs VBE issues in Windows 2000. It looks > > really good in 16+ bit color. The changes in this patch are: > > > > - Use linear (chain-4) mode for all VBE_DISPI_ENABLED modes > > - Add ff80 and ff81 as valid ioport registers (these are the old ports, > > still used by the driver) > > > > Some of the issues with the patch: > > > > - There are black lines that appear on the screen at what appear to be > > lines that span a display bank. This only seems to happen in 8- or > > 24-bit. Puzzling! > > - The shutdown screen in windows 2000 is corrupted. > > > > A better patch might tweak some of the sequence controller and bank > > select registers to set the chain-4 mode, but I haven't tried that yet. > > > > diff -u -r ./hw/vga.c ../../qemu-0.5.4/hw/vga.c > > --- ./hw/vga.c 2004-04-26 15:17:28.000000000 -0600 > > +++ ../../qemu-0.5.4/hw/vga.c 2004-04-27 21:46:20.828796000 -0600 > > @@ -678,7 +678,10 @@ > > break; > > } > > > > - if (s->sr[4] & 0x08) { > > + if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { > > + /* VBE mode : simplest access */ > > + ret = s->vram_ptr[addr]; > > + } else if (s->sr[4] & 0x08) { > > /* chain 4 mode : simplest access */ > > ret = s->vram_ptr[addr]; > > } else if (s->gr[5] & 0x10) { > > @@ -756,7 +759,17 @@ > > break; > > } > > > > - if (s->sr[4] & 0x08) { > > + if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { > > + /* VBE mode : simplest access */ > > + plane = (s->gr[4] & 2) | (addr & 1); > > + if (s->sr[2] & (1 << plane)) { > > + s->vram_ptr[addr] = val; > > +#ifdef DEBUG_VGA_MEM > > + printf("vga: VBE: [0x%x]\n", addr); > > +#endif > > + cpu_physical_memory_set_dirty(s->vram_offset + addr); > > + } > > + } else if (s->sr[4] & 0x08) { > > /* chain 4 mode : simplest access */ > > plane = addr & 3; > > if (s->sr[2] & (1 << plane)) { > > @@ -1768,6 +1781,11 @@ > > > > register_ioport_write(0x1ce, 1, 2, vbe_ioport_write, s); > > register_ioport_write(0x1cf, 1, 2, vbe_ioport_write, s); > > + register_ioport_read(0xff80, 1, 2, vbe_ioport_read, s); > > + register_ioport_read(0xff81, 1, 2, vbe_ioport_read, s); > > + > > + register_ioport_write(0xff80, 1, 2, vbe_ioport_write, s); > > + register_ioport_write(0xff81, 1, 2, vbe_ioport_write, s); > > #endif > > > > vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write); > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Qemu-devel mailing list > > Qemu-devel@nongnu.org > > http://mail.nongnu.org/mailman/listinfo/qemu-devel > > > > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://mail.nongnu.org/mailman/listinfo/qemu-devel -- Michael L Torrie --=-w6Zvb95oy5GH4QKhWAz7 Content-Disposition: attachment; filename=Screenshot-qemu.png Content-Type: image/png; name=Screenshot-qemu.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAywAAAJ1CAYAAAA7eHQWAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzs3X+UXOdd5/lP/eju6lZLKlmWXbGdpBM7SSdxcAGG1DA6bM+ud2hmDEcz+EAveEixK5g+c7Sg nWN2G0ZnaDjaRRy8HM1EQDMjlhrWAxowi9h4M51DAhVGQM0gJ2UwSS/rQEOMUnH8o/S7+mftH8/z VPte9VVVdVfVvVX9fp2jfHVv3bq6VQLrfvr7PM+NaXv1gP0AAAAA0C2xZjsIKgAAAADCFrvjN3pb WLly5UpPrwYAAAAAHnjggbdvxhr/IxtW/pv8v9PPnvpe/ejpX+vxpQEAAADotfrGmjbWbmh95bo2 1m7L9TASyZSSqYNKDO9XLJ7s2fXEkvt068pn9Uef/HhjlyewfO6VNf3zf/lLPbsgAAAAACGo17W5 UdParTdUu/Zlrdz4itZr11Wvb0qxmJLD4xo9+C6NHnqPkqlDPQ0t8Xhcv/fcP3ObsZhsWLly5Ypm fuTf9exCAAAAAIRjc2NFa7deV+3ql7Vy/StaX7mh+uaaFJPq9Zji8YSG992rsXse0ciBB5UY2tfG 2evS5obq66vaXK+pvrFm9tXriiWGFR8aVWwoJcXid7nAVf3Bb/2EJCnp3X+9xWvY0MbqDa2v3tTG ek319duq1+uKJ0eUHDmo5MhBxZMjbXwoAAAAAD1R39T6yjWtXr+i1etf0fvf+6C+//ufVr1eVywm /fRP/4zeequqjZWrWrv1NSWHRhWrb2ibBby2PXd97bY2ble1cfMNbd6+qs2122Z/va748KiS+zNK HnxA8ZHxwNDy9izhDSxrdw8s9c0Nbaze1OrtqtZqb2lzfUUb66vS5prq9U3FEkNKDo9reOywUvvv VzyZav6hAAAAALSkvrmhzY1V1TfXFYvFFU+OKBZPqKUw0TjHutZvv6HN1aom3/8e/UD+aT355D9s vH7t2nX9yq8U9NrXXld9/bY2Vq8pnog3/zPqddVXb2rjxutav/41bdx6S/W1munc1OsmECWGVF+7 LcWlhO5TLDG07akCA4vuMjatvrGitVpVtesVrdx8Qxurt3THKsjrq9pYva3NjXUNjx5UfHj87h8K ANC2w4f267u/87/S0Y9+WO+4/x7VN+t6ZfmK/sPv/IF+71K5cdyP/8iM/uET37ztOb7zY/N6481r nmN+6uf+vT71+y9Kksb3pfSrH/9R3X/kkCTpH/3AT+m116s6Pfcx/b2/+5g+//KXdOLHfr5xvv/z 3I/qve9+hy4u/rF+9ud/s1sfHQD2sLo211e1vnJDa7ff0sb6bcUTwxoePaRkqr3RTfXNdW1srEib a3r0w5P66Ee/WZ/5zO81Xp+Z+R797u/+rt54800TVOIJKZZ82/T3gPOur2j95ptar17Rxs03Vd9Y kepbeSEWi0mb69pcvan6Wk1S7K75w/EcEYtvn3Dqm+tau/WWbr61rNVbb6q+uRF8ofW6mawTTwae DwCwM9/wkYf1v879E+0fH9Ubb17VH5cu673veZcenZzQo5MTGh2u65PFL0iSHvvww5Kkv1r+G/3t 336lcY63qlX9xec+pXve9dHGMZL0yAMpfeLWmxoZv1///J8+1QgrV65U9MXL/1GH3vVRZR81x//x H35W1ypf0MEHHtPB/WN6z7sykqRLv7+om28ua/ze9/Xk+wCAvWJzY1XrK9d1++qrWr35hjY3VhWP J7WxekOjsbiGEyOB3Yo7xFZV31hXfXNdikmvvPKKnn32f9fGhrnH/9VfNfPa4/EhJZLDiieGzX39 3QLL5oY2b1/T+tUremfmoFJD9+iLL7+s8f379U3f8i1STPrjz/6BardtUIklFWsxL7QUWNZXruv2 9YpWb75hwkjgh48pnhixSe8wgQUAOujI4QP66R//fu0bS+mTi5/Rj536Ka2u1zW6L61f+z9+TpMf eETf/93/rX77E5/RA+/+kB56x2FJ0s/87L/Wf/qjFxUfGm6ca2TssO49NN44RpK+Pvt1Wrv9q/q2 v/+Evu3vfUNj/+XPlRVPDus9Dx3RoYOmc/4nf/J5JYf3SZuryn7kMfNTM0l/cvnzGho+IG1uKMaw YADojHpd9c3bWrtd1erN1+3yw9LG5rpWbr6heHJUieH9Gko2mchuxWJJxeIJxWIxxSStra3r6tWr WllZkSRtbpr5KvHksJLD44onx2wYCg4sm2s11a9/TfcfGtP3/sDHdN/99+sXn31WEw8/rJ9Z+EVJ 0pMf/Tv68quvKjaUUnx4TLHESOcCy+qtN7R2662mYSWRHNVo+p0av/d9SjAcDAA66unvmtK+sZRe f/1N/dipn5KS+3XovvcoFovr8194VZMfeESZ++/Trbf+Ro99+7c33nf8f3haH8t/TPHEkOqbdf34 //YrWl1d12Mf+YAk6dr1G/rrv/6yPvShD+iB+w7qR//ZP9bfvPpVPfTAEcXjcV1+8SUNjexX9iOm a7K+vq7Pv/Syhg++W7H4iLIffq8k6cuv/q2++trXdOjBByT30zgAwK6Ze/CY6pu2KyJp//79isVi unnzllZvvaXhfdfNwlctdFlijY5JXCura1pZWdHw8HCjw3Lz5i1tbG4qnkwpMTxuVvWKDwefsL6p eu2GVHtLx/+nH9Z3PPVdGhoZ0dS3/f3GIbdu3FAyEVcinlB8eFzxkQNmvnu7Q8IU8I/Lxtptbazd usunjmloZL/23TupVHpCieExtTPxBwDQ3Lc8bgLGZ//TH2ltva70fe9RPDmq+PBBpQ/dI0n66mtf 08b6qr5u8qHG+x7/hmzj96986a/1+pX/Vwcf/CZlv+6DkqTPfe4lXfnKV/WRRz+of/PzZ7RvdETn fuHf6l/8Lz8iSXrxc2UNjYwr+6gJLH/+hSXVaivad2RcSqSU/fB7JEmXXywrkUwpnhhWPDnW0k/5 AADNxeqbiiVGpMSIFItrfHxcL7zwf2v//v36wR/8p/r8Sy9rfeWaNjfXFY83bxrEkqOKjxxQfe2q PvWp39XNG9f1iU/8jup2vsn3fM9/p+W/flXjh9+txPB+KTlq5rAEqK/VzAT71Vv6zY9/XKnNTf2D f/J04/VbN25o/vs/prdee02x4TElxo8oPnpISqYUmBnq643fttRhSSRTiieHtbFW837YWFyxxLD2 HX5Yo4ce1tDoPU3bRQCAnbn3nv2SpGvXrmkodVDxeFKJ1L3aNzaib/lGEyaKn/1DxRPDesx2PZ77 td/U6Z/+Oc95EkNjqq9d12MffJckM+Tr6g0zDOChBx/QL/xSQaMp85O0t96q6i//6q91MPNhfV0j mLxkhoPFE0ofukcPT9wnSfrP/+VFJUfGpVjC/MMKAOiYxNC4hkYPKzlSUSy+qvHx/Tpw4ICSyYQ2 N1a1sb6quoLv598uHotrKHVIWr0q1Vf0hS98UT/0Q7N2KJh0+/Zt3f/AuxQfe0hKHVI9Nupfasuj vnlTG9df08btG7ry2m29Wb3qfb1e15e+/KpurqwqfugBDR14SInUwbt3VzYCA8v2b0qO3avEyEFv YInFNbTviPbf92ENj2eUGB637zcPhTGTcgguANApr795Q5kjB/TRb/5GDf3y/6XY0JjG9o1p/uST Orh/VNdv3NT5X3lO99z3gB5+zwOSpBc/95JS++/XvkPv8pxrfGxI7333EUmmM7IRP6A337qqv/qr Zf3Cwi9r4Rf+lXn/5/9UsXhSiaFRHbnnQOP9Q6lxxeLD+u4nP6p4LKZarabf/+wfaih1r+LJ0Z4+ ERkA9oL48JhGxu/X5tpNrVS/pH9x6l9q31hKf/mXf9lYiSsWS7T0399YPaHE8H6tD+3Xeu0tvVW9 qqtXTcio1+tKDI1qZOSA4sOHpMSYpMTd7+pjcdU311TXpr77B39IT/zjY56XR8fG9JO/+At65kd+ TNeGHlBi/EjTeY71t63x1VKHZXjsPg2lDmn1xmtySxnHYnGNH/mQRg89rPjQqDZWbuj2m69o5ebX FIvFNbL/HRo7/IG7XggAoHW/8cmyfvhj36oPffADuvjrH9eXK9f1ofe/Swf3p3T12g2d+OEfVaXy ur79O2cUt5Pgv+97n9J3PfWUEkNjisWH9du/+6f6Ly/9jbKPvdsEjZUVvfznS9p3+P36jqd/Qm/+ 7ec0PDzWGC724otl002JxfXFL31Vj77/Hfrv89+rXO6jGhs/oPe803RX/vXPn9fVazd0z4MPKzY0 zvwVAOiwmIY0NHrYDreN6XMvLSmhNV29dkOKxc0k+jZW6U0M71dy7H5trN3SyrWaNlZvSPVNxZPD Gh4a09DQfVIyrVh8RM2aELGYeQ5MIhbTux9+WJkHH9Rf/tnL+uNPflKH7rtP//XM9+gTn/iUNP5O jex7l2IjB81SyXfx9o5OS3NYkmP3KpV+l9Zuva7VW6/bC4srOXqPYkPjUjyh1dtv6Obrf6GV619R cnhUQyNjgecDALTvtz/9Rb1V+Qs99R1H9cjD79VDD75DkvTrv/E7Ovfzv6Q3q9e1/7736esfm2y8 5+3zVyTpX338F7VyY0Qf+eDflSS99NLL2tjYVHJkTMnxB3RkIqX3PHRI4/tGJUkvfv4lJVP7FR8a 10+e+4w+9u0PKPdNj2nyA+/VSm1FL/3ZF/Xcv/8P+sT/8yntSz+kWGJY8ZG0FLv7P0QAgPbF4kMa Sowolkhp4+arun2joniqrpERaWjsiOJD+1q+/47Fkhrad7/qiqseG9barTdVr28oOTKu4f3vUGLf A9LQuOqt/PfcLnkci8X1nz/9aV2/ckV/86Uv6cVLf6SDhw/rrau39GelLyhx4ANKjBzWZptd+Jhs gLly5Yq+b+4/Bh64UXtTN1/7c12rfF4bq7cUiye0/x3foLHDH1B8aFQ3vvqnuvnay9pcv62R8fuU fuff0cghOiwA0EkbK1Xd/mpZt65d0Yt/9EmNjAzrTy5/Xl9avqJrtzb1q7/xGSUPPKzrXy3r5mtf 2PYchx76Ro2k36frr/2pbr72BQ2lDujAfR/UyOGPNNbYX739pl7/4m9Jkg7e/yGl7nm/EqNHtHr1 /9P1ystarV2VNtakeFyJoTGl9t+nkbHDSux7UMnRIz37PgBgL6rXN7SxekNrt97Q5tpNSTENjR1W cvQexduZQ1jf1ObGijZWrmtj7abqdbMyWHLkgFnKuEkXxNm49bpuLX1Sm1e/rEOpIe0bGVFtbU3X V1Y1MprW/Q99UCOH36/Xh+9XTcm7zodpnPPmq/qD3/oJSS0OCZOk5Nj9GjsibazXdPutL2m9dlU3 v/ZFba7dVHxoXCvXvqzN9ZqSIweVSj+iof3vZkgAAHRYcvSIxt7xTRo5+BV9/Jd/R9/3j75V3/gN j+nRD39Qv/78olZWNzQyktb++z6k1NhBaXN92/PEkiOeY+JD+xRLbC1ZOZw6qHvf+62qr5u1/uMj BxWLD2n44Pt1cGhcm7U3pc111WXmLMbiKSX3vUOJ1OFt/zwAQOfENKT4aErJ1CHJLnmsWFyxHazO mEiMKDF8oPmBdxFPjikxdljr17+qN2/dVPX2iurxuDRyUPX9E3p93yNKDj+gjcSwVG9/lnvLgUWS hvc/pPTwuIbHDuvG15a0Xqvq1puvqF7fNG2l0cMau/eD2p/5eiVT97T7WQEALUiOHlFy9IgWX9zQ hef/Z916a1mbG2uKKa5U+p1av/VVDY0/pOTYg3c/0XA68JhYfEipe79+2/3DBx6WDjzciY8CANiF mKLRHIiPHNDwvZPaWL2pjetf1WYiocToIQ3d8z6NHHm/NHav1u0wsNgO1uRqK7BI5h/K/e/8Vo0d +Trd+tqfqnbtVW2urygxvF/7jnxYqUPvNevvAwC67sCDOY3uf4c2129Lqjf+JaDDDQDolVh8SMNH JhUfGdfGja9J8YQS+44oMX6/4kO7fy6XJ7BsrFTbuLCE9t3/9dp3v/cncPWNVW1srO7qogAALYoN a+jg++7Y3c5/zwEA6IT4+BHF99l5jDGpXl/Xxuq1XZ/XE1g2V/kHDgAAAEC01CXVr1y5Uv+Wf/A/ Nn7lThTqkqhUKpVKpVKpVCq16/XtWeRbv+sn65LqkuqeDksisTW+bFMAAAAA0BtvzyJv59mbTCQa v9BfJvOT22779wMAAABRFJRFPIElkYg3fiGagoLIQnZh2+OXCkvbHg8AAABESVAW8XZYkonGr6jJ Z+2N+o1ayFcSjuLZoqStAHKHclmSVMsW7Y6cpK2gUi5nu3h1AAAAwO4EZZG+6bBk8+aGe/ZEPtwL CclseVbSVgApnCt7tpXN2lKQJJXPmd1bnRfz/tKlYtevFQAAAGhXax2WCM5hcZ2VRn/A/mavdVpc Z2XBBo/8iaxne0vJ/O/5vNm0nRcnf57gAgAAgOhpaQ5LMhFv/OqV6Uz+rtV1Vhy3tVc7Lc5C1gz5 ymVLnv3lrPuGCqZkvYGlfC7neb10aW8FPwAAAERTUBbxDglLJhq/emVubmHbmsmYG3F3+50rmNq4 /d5jnRY39GtWbohXXpJUKrsAYvaXGh2Xmj3e1Gzevu+oGzomz/sAAACAMAVlkdA6LK6D4pTLJqAU CuaG299ZmbWHLxwvmNfd/j3TaTHfS84/BKyRPPxDw8x2Wdsr+35HpwUAAABhaq3Dkkg0fvWKCypb tu+sZKt2h52bEdRp8Q8p61euo1I8OyNJWrDBJJ/1r/a1cNfqOi4LSpntvPl+F9wcF3e6oGQDAAAA 9EBQFgl9DotTLhck3aWzkjY1Z2+sgzot09P5bl1iSFK2BgUTE0hSjxfMZmOImK/j4pY1brzuE/Ac FwAAAKAXIjuHZetH+97OilMqew9r3K7bDkHucfuCfeOCnVTugkvp0tlOXmzPuFXBZl0HqhE0XIBx gaQgScpm82bvOe+kezfnxU3Od7VUMPuzR21tLHvM0DAAAAD0XuTmsDhlu+yu66z48ol0ruB9w/Gy 5/VZu7zvwM5psd9PynZA3CT6LXnv4QVTc/a4hUbAcQfYYr+wrH2/Czx3RkYAAACg+1rqsITzHBbX QTBlNlnwbtsA4h4nsnA+6znOTeko2Lf5Oy19zwaJhcAgUfBsLZy3bysETEpxI8P8pztqK3NZAAAA EIKWnsPSiyfd5+0NeCbj9phgUS6bTsCsfbCh227sV+quxzWGSvmCTr8r2OqWJrgjht2RPOz3edwO BbOdlpL7/twZ7RCzgj1++blpsz87IEEPAAAAfaW1J90nE41f3ZLP17paGwGmsfrVYLQMXMMk3xji VTAlu/3nm3vetZ7M6y64qGxnAbnvpWJqcaJoTnfHkDN0w3RmuaMVAACg3wVlkZ53WLYU7l7LTV4P qI25GPZ+vHS5v2/A87bWst49jQDiCxju409UbafkeMDqX77lkbdWN07deSw6bm5uriMVAABgULTW YQllDkuAVud++xoMWf+QJjdn47z/wYp9ovH5TJAo2FW/tmLI9gHDvW3hvP0+Gp2mrG/bezwdlv5U OpcP+xIAAAB2paU5LKE8h8U/oqnZCC7/MmIBDz4s+47LBnUaos4f3MomeLUav8ruBL7P3zjtK3bb rR5Gh6UvzZ+eD/sSAAAAdiW6z2Hx35DfcYPuq9mA4+7oyJgb79zjfX4D7hYRaEyeN7Y+rr8jsn1r auGE6bRk7TLRd+S9xjLHdFj60dTUlCQ6LQAAoH9F5jkshUJAgLjjASxWUEAJOt7/9n5/rEgjUZie SiHr761s/31ms95I4jot5ULe7K7Y07qj6LD0tVzOBFI6LQAAoF+11mFJJBq/es4fTFoMJA3tHt8n yufcss8FSVLejXWz24U7OiL2QZwBSa3kntPyiu9dje+9JPSfVNIEzflT85LotAAAgP4TlEXCn8Pi NBv61ex1X916cnt/csvVHnvkmKmVeUnSxGLFU2eTzToi/k6LfX6N7bQ0vrbGYX26OMEe5VYLq63X PBUAAKDfRHcOi9NqQJFvf+DpBuMBiO0vaxs0Bs77hZXOu86NfbXxtn4fQwcAAIB+1OIclu4va1xo PF8lb4o/mLQ6uT4o2AzYkDDHDflJNe2oOOaLWDg+u22dtauGZW1ScR2W3NGpDlwtAAAA0J7oLmsc NLTLCVr2uFmwGTDtDvVxnZPZ8yaYuEn32fNmjko2b/e7x7J04Bqxe2fOnJF0Z0BtPagCAAD0p+hP ug/i76TsdnJ+n2q3szL7uAkkuZx5X94+ULMx9OuoDTDZOxdKRnjc8sT+gMrcFAAAMOham3SfjDd+ 9UxQ4Aha3jhof9D2gGl247o1J8V8EZOTNpCc8D3h/lLjHZKk3NGTHbxK7JRbntgfUEslVm8DAACD LSiLhNZhaTyPJahj0mzyfatBZ4+ZecoMKcqe8K72lfM98b581GyW9/j3FRVuKJirfsViURJDwwAA wOCK7rLG7QaPPXqD3eqQoPSUWT3MPYfFBZJU1ry/8fXZDkvu6FKnLhG74J6fErT6W/CqcAAAAIOh pTksvVglzK/gnuDepTooWv3JevZE3rM9e9zUSV2QJOXzbjnjPZr8Iq7xAMjT85LuDKo8yR4AAAyq llYJSyTjjV/d5pY3XjinrtbU0UJHrzsszeeulG2Vr9pVweyIsJydbE9nJVrc32/xUtGz379KmOu0 sHoYAAAYNEFZJPQOiwsU3ar9yg0RClreNuhGtXyu7Kl3PDCyw9eJznB/n26uivv7d+ZPe4+vrffg ogAAAHqotQ5LIt74hXDlThTaq7Zjckc9YVb/mjppboiXynRWosh1WPxBxZk/5d1OJbt8QQAAAD0W lEVC77AA2OKCSyPAnPbud50Y/+sAAAD9LiiLeH5O24u5KwB2wgUV111h7goAABgsQVnEE1jorADR 4oaCbT2epSYp1dj2DxUDAADoV0FZJPznsAAI5CbXbwWTlGebIWEAAGBQtPQcll4+6R5Ac25yvZuz 4jorW5P0w7gqAACAzmvtSffJeOMXgPDd8eDIU3d/HQAAYKdK5/Kh1qAs0rTDUjw7s+0HCtofxB3f 7vsGVVS+j7D/fLSHgAIAALql7cdqdLgGdVh8k+6711mZOnnBU/c6vg8AAABgS1AWafk5LEEdgWbb QVp9X6fO1+z6d/r+djV7/06vs9OfN2h/VDpDAAAAGCytPek+GW/86hV34+s6Df4b4lY7EP73+98X 1NFotr/ZcZ220+vs9OcN2k9nCAAAAN0QlEVa7rC0e2MfNbvtDPRbR4FOCAAAAPpJax2WRLzxa9Ds tjPg7+BEHZ2QaCuVSl2tAAAA/SYoi7TcYWmm3Rv5vXojvVc/N7ymjk51tQIAAPSbljosyWSi8avT goYoBc09Cepo7HSoU7vvC/pzOxU42p0U363zN+scMem+O3q1PGCQ6cxyRysAAMBuBWWRpmO/2p2M 3ew8rZ6v2Z+z0/O0O4m/2Xl3qt1J8d0+P5Pu95a5ubmOVAAAgG4bvMkqAHrOPaEWAACg0wgsAHZt /vR82JcAAAAGFIEFwK5NTU1JotMCAAA6j8ACYNdyuZwkOi0AAKDzCCx9ptVVunq1iherhUGSUsmU JGn+1LwkOi0AAKBzCCx9hlW6ECVutbDaes1TAQAAOoXA0iOtPs9kp8+Lafc5KkHvb/d8zfYDAAAA u0Fg6ZF2n4fSbgcl6AGQQQ/mDDou6H3tvn+v6fUDP1t9P0ESAAD0OwJLxHT7RrNTN9TwCgqa7f59 7jbI7nbI4JkzZyRtzUnxVwAAgF4jsERMt+eo7Pb8zKFpT6eCzE4XW2i7U2eXJ/bPRWFuCgAACAuB ZY+i09Jf2u2w7PTvxy1P7O+olEqlHZ0PAABgtwgsPdLpSfTNztds7spu58j4b6AJMNsL+vvqVKeq U9+7Gwrm6h1/TrEoiaFhAACg9wgsPdLqjWmzG1n/60FzHXq13Wz/XtGpYNKpSfft/n2456e4ZYr9 gvYDAAB0G4EF6IBOdUzanXTfaqBsVeMBkKfnJd05d4Un2QMAgF4jsAAREtZyxC6YFC8VPfv9q4S5 TgurhwEAgF4hsAAREtYqbC54uLkqboiYM3/ae3xtvQcXBQAAIAILAG11WPxBxZk/5d1OJbt8QQAA ABaBBUCDCy6NAHPau991YvyvAwAAdAuBBUALXFDxbgMAAHQbgQVAIDcUbOvxLDXPtn+oGAAAQKcR WAAEch2VrWCS8mwzJAwAAHQbgQVAIDe53s1ZcZ2VrUn6YVwVAADYSwgsAALd8eDIU3d/HQAAoNMI LABaRkABAAC9RmABAAAAEFkEFgAAAACRRWABAAAAEFmhBZZ8drKrda8pXc7vqAIAAABR1vvAcnlB kpTPm81sNtuVOnnjbNc+QhRlzx/bvp6e3rZOnpiSRHDZq0qlUlcrAABAp4TWYakumdWGJlLmBieb Ld+1ZjJLbdXZE4N149SsU5LPmIAit4hTwGJOtYp9oWrq5NO5zl4o+sLU0amuVgAAgE4JLbAs18yN cnrSPDm7XDadkdnHTUDJJU1NJWclSRMP5Vuqx04N5rKrLlhMPjMlaauDsvBCQZJUWL4oSSrbn3A3 6lLZU5eqJtAtadlTsbfkThR6UoOUzuW33d7tfgAAMHhCCyxlV21QWThn95zPS5Jmbedg4XLJU/O+ mnX1fMmdsItXHQG+DorbLJ8wgSW3dOautTBpjptJHfPsB3rJPc9lOrMsSZo/Pd+R/a4CANCP/D+Q 22s1SGiBJVNZ3P4Fk19Uynq3XXUDmBqxxJ9PslkNNNOQUm25KkkqVGxQebzQ2tszE5KkSmau01cG NOUCRSpp/g95bm7OU3e7f/7UvCQ6LwCA/tSrERBRrUEiu6yxf2aFm5FS8ueRAc8nztJz5htYerbo qeXjF7c9vjq54Kmzx7yrp81OmBu9iexgzfUBAADAYIlOYDna2mE5X0clO+hDwCzXQQmqjgsoc3nb QTGNmEZn5eyz3tXT6LQgDG4oV7f2AwCAwRFaYKnVlr07LrX2Pn+HpTyWP3huAAAgAElEQVToQ8B8 mj5PxQaUi8tmyN1czhtQJp+c9mz7Oy3VzELnLhYAAADYpfCWNa76Bn3tssNSvmMyy2Byq4Q1Vg0L WJa4bBch8HdWll5Y9Gw7rtNyLD/T0etFbxXP8vcHAAAGS2iBJZ2++9yJkq829gd0WLJ7ZDKLm7ty csYs95xemt32uPknvZ0S11nxV8d1WpYXlzp2rUAzbtK8v3bqeAAA0P+i02Gx/B0U//47Xi+7sjc6 LG7OSmHeuz+VuSBJyihtXi+ZAxYu5iVJy3b5Yn91r7vKnBb0kpuD4q+dOh4AAPS/ECfd+wOL6ZDc sQqY5fbf0ZfJurI3OizN5rDM5M12Nju9bZ0+NuM5zl/zqUrnLxo95x8aFrTdqeNavQ4/OiYAAKCZ EANLwJAwXyelWWdlr3VYWp3DcvGc+X6Lz5vvpVoxs/FLJe8T7y/a5+EUlkyH5kyFDssgmDpp/j5d YHDb/teDBL0v6Pztvt+hYwIAAJqJUIfFy8WZBV9txBJfQ2WvdFhancOSyZqfVLugkrKPYSlfXjbn sau0Vavm9VrV3CimUvyEe5D5A0a7QSboPAAAAN0SeodledlEEV/DpFHdKmCN563s0c6KEzSHxS89 buayuABSPG86KlNPmeSy9JztuByvdv4iMbBa7ZwAAAB0SmiBpWKHIjnZrA0e57y1bJ/P4qoulT01 699vl0d2QWjQNH0Oi1W9YYJIZdnUpaKZm1JJm1qreYfeVC6Z7eoyAWaQBQWNsDomzGEBAADN9D6w PG6GMC2/kvHsnnWT7s9rdzVvatAqZP2u1TksrsOSzpgbwMxk2vN6rWKHgNmhYunHzXHpCe9x6E/+ Tki7k+aD3tds7kq7xzGHBQAANBNah6VcNsFlaemkb39227q4WNm2FgrmfYXj5nyztpbODWZgCZrD Uqt4bwxdh6UqcwOYPW2CiJuzUrUNqbTNjTU714UOS39zQaHZ3JRW5640299saBhDxwAAwG71PLCc 9T1Jff6UqTn7E/6geuzJY5KkmadmPHX2uAkmJy+YORplO9dl6WihG5cfulbnsFSWbPDw5Q83ub6x bTdT9vktdFjwdt2esxI0JKzdCgAABlfPA0upZOaWZO0T6icmJjyvL+TN/lxu+w6Jm3uRTpsb67w9 z9kZM7apUrEtg8t7ew5L+gl7Q2eHfFWW3dwV+7r9elMps6NymQ4L7tTtDknQkLB2KwAAGFw9Dyzl y+ZGevaEWSVsaso898MFlwXbIZmczJvt86ZWXi5Kkmrr5n0XX1iWJOXsasazBfO++WkTWPKTg3Uj ExRM/C7YMXK5nEkqk095OyZu1eKMDTTpo2m7TYcFvUeHBQAANNPzwDLxiJ1jYjstZ541Q70uPG+G dGWzZn+hYI6bP2VWE5t+ekqSNPmIGxJmbsjnLi7b99k/4Kj5zbFnzkqSapfyXfgUvdeYZG8n3WfP m+9t4YWC57jKZdNJKZ6+aLbtcsa15yqeqhe2r43XgR5ot5Oy+Gl5Kh0WAAAGX88Dy/Ir9rkrttOy vOz9if7sibwkqXTZ3Ii4Tsric0VJ0tIrF+zrptOydMncmC+ct5PLbeBZrg3mpHs/d7vmOjDph052 pAK90GoHpVg0dWpq+/cDAIDBFcIqYSZouE5L2a7m5Tom/rpgX5971txIzx43Q7/mnrlo9y95zrPQ qAWzf9CeK2kTSq1s5poUls33cNZ2WkqTczuqQBha7az4g4p/GwAADK6eB5ZisShpq9NypmhuvN2Q sDM2mExN+TsvJujk7JCvdNocv7RUkORikOT6Km5/Y6hYn1t6znaUzhU9tXzCBBb3c+asXaygUSez njqZtnNbNOGpQBha7axsHd/DiwMAAJHQ88CSeXLe/q607euLtlPggkfuqFvty+x3q4vNPH1GknTW 3ri7QOPmsJx8Jpwnd3eLW87YcXNZ3P7ZJ/PmBXd/FzBSJmUfJKm0qS4IAWFod/Wv+dPznm03lwUA AAyu0B4c6TotzvKyCyZ2Ur6rl2bt/rytBUlbz1txQ8FOnpgyL18y+6vVQRsL5uUeIOm44FI+ftFb 7aIF/uo6NP4gBETZ/Kl5z/b0E+FcBwAA6J3QAstWp8U4+6x73oMJLjlXfR2WiQmzOpbrtGRtZ8V1 WpbSU+ZwG1zcZP1+5ybVu9XCTj5/xrPf8QcQtx1UgTA1W6Z4asr3oNP13lwXAACIjtACi+OCi3sO ixva5QYquQ5LuWwCykW7jHGjw+LrtExWi5K2gotbLWzyRn8tf9rswZBOY7K973gXaIAoa3UomK8h e8c2AAAYXKEHFqdU8s6lOGOfo+LqsZxbtjjr2XZcQHFDyapVt8pYoSvXG5qMbxKyrf7OyUQq07tr Anao1QdBuk6Lm3TvhoLxHBYAAAZfZAKL67S4gOGWK/ZX/+ulxpyVyR5daW/cMXTLPoHezV05+5RZ jrgx2d7n5NPb7weipNUOS9DxAABg8EUmsDhL46mu1n6Vu9d0mlqdi5J7ZPv9AAAAQD+JXGABMLgW KxOStoaAdroWLxUlSbkThW59BAAA0GMEFgA9N3V0qqsVAAAMDgILgJ5zHZBu1WZK5/Lbbu92PwAA 6DwCC4A9x03an84sS5LmT893ZL+rAACgcwgsAPYMFyjc8slzc3Oeutv986fmJdF5AQCgkwgsAAAA ACKr7cBSPDtz1+12z7PT9/e7Xn/+Zn9vza5nr/49YbC4VcqC5roEPd+l3f0AAKBzQuuwTJ284Kl7 lfv8YQcC/j4AAAAQRW0HFv8Nbbs3uM1uzIN+0r/bDkGz64hax6fVTkez76vV77vZ6wQZtCMq/38E AAD6X+TmsAT9pN/fiQh6vdUb61bf3+0bL//nCdpu93P79+82aAKDyE2a99dOHQ8AAHZvx4GlWQeg 337CGnTd3b6x79aQsN3OLQL2AjcHxV87dTwAANi9yHVYwjJoczh2GoSCPn+/BlGEq91FHHY65HGn Q0bpmAAAEH07DixBN7bNbvwHJRD0q3Y7SIMW5NBbzYY2dmrIY5Bmc7DomAAA3s49R4saTg0SWodl t5PFd3u+qEy6999QBc1labdj0u5keToo6CfNgjcBGwCwE27Ze2o4NUjHA0urN7w7/clpu52dVied 97qTsNvP2er5293fascFCFNUlgMHAADdxxwWAAOj3QDDHBYAAKKv44GFn8ADcMIe8tjsvMxhAQAg +uiwAOi4qA55BAAA/YfAAmDgBXVkgoaEtVsBAED3EFgADLx2lzVutwIAgO4hsADYs+iwAAAQfQQW AHvGdGZZ0tYQsXY7KYuflqfSYQEAoPsILAD2rFY7KMWiqVNT278fAAB0D4EFwJ7VamfFH1T82wAA oHsILAD2rFY7K1vH9/DiAACAJAILgD2s3dW/5k/Pe7bdXBYAANA9BBYAaNH8qXnP9vQT4VwHAAB7 CYEFwJ7VbJniqSlvp6W23pvrAgAAWwgsAPasVoeCFYt33wYAAN1DYAGwZ7X6IEjXaXGT7t1QMJ7D AgBA9xFYAOxZrXZYgo4HAADdR2ABAAAAEFkEFgB7xmJlQpJUKpW6UouXipKk3IlCtz4CAAB7DoEF wJ4zdXSqqxUAAHQOgQXAnuM6IN2qAACgcwgsAAAAACKLwAIAAAAgsggsAAAAACKLwAIAAAAgsggs AAAAACKLwAJgzyienQn7EgAAQJsILADQYy44EaAAAGgucoGllj9714rtlS7nd1QB9N7UyQue6keQ AQBgS2QCiwskC9kFT20ol81xN8w/5JM3am3VQZc9f2z7enp62zp5YkoSwQX9JagzsdP9Qeff6XV0 SlCQAQBgLwo9sPiDyqxsLc+aA2xQcVJLU+b483lJ0tlzM3etsyfyXbnuXmvWKclnTECRy2cBOa1W sS9UbaB7OtfZCwW6KKgzsdP9/uDRalAIOq//fM2CTatBCgCAvSy0wBIUVFQumHrOG1R0ybtZtkHm 5IUlSdLU0SlJ0vQTpoMw85T9h3+iY5ccKhcsJp+ZkrTVQVl4oSBJKixflCSVSyVvXSp76lLVfF9L WvZUAHeikwIAQPhCCyylrL2hlg0mrpPiylHbCWgEFX/LIOt5ffayOd/kpaIkKfOUuYFfSHfumiPB 10Fxm+UT5vPmls7ctRYmzXEzqWOe/cBe5u+4dFvQn0OAAQDgTqEFltzxlCRpQSZoNALLJRNEsjaP uOBSfiTlO4OvA+PO617NercHhv0aastVSVKhYoPK44XW3p6ZkCRVMnOdvjKg77U6pKzZ+4Nq0J/j x9AwAAC29DywzObNT/bPnipKkhY063m9fLTk2XbBJTud9Z3Jv22UWjqq/yw9Zz7Z0rNFTy0fv7jt 8dXJBU+dPTbpeX12wiSfiaz/GwOiq1OT7ls9b6eOb/f9dFoAANgSWoclNWF6H7PHbQ/EDu1qdFbc 0LBF21Lwz2nxdVhKZe/urKududzQuQ5KUHVcQJnL2w6KacQ0Oitnn/UuD02nBf1kt5Pu23293eto 1W7fDwDAXtLzwDKT9Q3tOm+HfB31zVGp2OMyQcsSmyjSyCm+wFK+tP2QsX7X9HkqNqBcXF6UJM3l vAFl8slpz7a/01LN+JaTBnAHHvwIAEDvhNZhaQwEc50QX2flTia41CaL5v12DkzxnBnqVJwxr5+1 1e0PPl9/cquENVYNC1iWuHzeBBB/Z2XphUXPtuM6Lcfy3IABzdAhAQCgd3oeWBr5oZzz75H09jkr 23dWMhX7QETbYZl8ZPKu9diTE7u/6Ahxc1dOzpjIl16a3fa4+Se9nRLXWfFXx3ValheXOnatAAAA wG6F1mFZyJob7fI5E1wac1Z81Q0Nc6uEVSoVSdLseRNYJiYmJEnVqhkLNTMz4zlu/rT3xrzfuTkr hXnv/lTG/KQ3I7OOc6FkDli4mJckLdvli/3Vve4qc1oAAEBYSufy1D1cg/R+lTDbWXF5JGufWN/o rATMks9O5z3bF54zN+Znz5mhTcuXzVCnM8+awFKyz2XJ502noWafz9Lvms1hmcmb7Wx2ets6fWzG c5y/5lOVzl80AABAC3InCtQ9XIP0PLAU7RwU/2K6d3RWrOwrvqFhJ8wB1aob8mWGiM2cmJck5Z82 AWbBrj5WOL79HI9+1eoclovnzDdcfN5+XxXTgSqVvE+8v1gxQa+wZDo0Zyp0WAAAABAdPQ8sF1Lm xnjijB3aVTBDwxZsz8VfZ4/a6gsyi4vzkqS5U+YGe2LC3JCffOakJCl73ASXi5VMxz9DmFqdw5Kx q7G5oJKyj2EpX14256mZ6obS1aomGKZS/gd0AgAAAOHpeWAp2d7K3JwJGvl81lYF1ElbzdCu9HNT kqTMtAk8C+fM/rwNKIuLpmPgbsQzGTtJf0AeyBI0h8UvPW6GzLkAUjxvOipTT5nvc+k523E5Xu38 RQIAAAAd0vtVwuyYr62hX7aDctxspZKzvjpl6uN2O+Um4dvjc0v2/eb1C89d8NRS6aytg/FE96bP YbGqN0wQqSybulQ0Aa+SNrVW8w61q1wy29VlAgwAAACiI7RVwlxeqdXsWCW76tfCup0sbyfNZ+3z RJS1k+ftjXb2FXsee6L0E6Zjk3uu7Nn2137X6hwW12FJZ0zAy0ymPa/XKnYImP3604+b49IT3uMA AACAMPU8sKQKZo5Jxk72dlMm/LfdOTeEy60e5ntei//J9k7hcXsjP6APQAyaw1KreD+v67BU7QM3 s6dNEHFD5aou6NkpPjU714UOCwAAAKIktA5LJuN9Pop/wFbzAVzbH5E7YQLRoAaXVuewVJZs8PDl Dze5vrFtN1P2+S10WAAAABAloQWWiu2w+LkY0upixG7d5q3J+aYuXF6w5yl79ve7VuewpJ8wrSs3 5Kuy7Oau2NftF5xKmR2Vy3RYAAAAED2hBZYtdkyYb2iXfVyIsr79DWVvpJm1k/JLdgyZ2/bXfjGd Wd62zj8576n+RtOFQkGSlMuZpDL5lLdj4obgZWygSR9N2206LAAAAIieCAQWozElpezdLjRe965L 7H8ipn8omJu07/a72m/c8s9B1a9y2XRSiqcvmm27nHHtuYqn6oXta+N1AAAAIAJCCyzzp47Z39lo cm77mr1kqz2uUrn7DfWgzmFJJVOe6ueGhqUfOtmRCgAAAERB6B2WixdNJ+TCKTMUqXRe21b3ugss /jkrgz6HpbZeu+vrZ18oSJJKk3M7qgAAAEAUhRZYFk6YQDHzlPmJ/uQjJlCkkrlta/ZRMyRs8mnz IMhCwT4wMmCuSr/PYfEL6qw0Xrc1m8t562TWUyfTdm6LJjwVAAAAiKLQAstixU6Stw+GzGfNDXU+ b+qF58969mdtPTMz4TmPf45Ks9rvgjots0/mzW9ccgnINyn7IEmlTV16rvkC0gAAAEBYQgssy6/Y J9dPmhvwWRtczjxrljs+dsx0CM48Z4LLxfNnJEm5XKsLHu8t7vks5eMXvfXU4rZ16VzR8z4AAAAg ikKfwzL3jJlDMfOUGaqUc5PlHzGT5XO2czD3rBkCVi4XenuBEdFsDovjDyBuO6gCAAAAURZaYCkW TcfETaKfmzKT6qdsLV4qSpIKzxUkSceeykiSFhf35rK7zeaw+B8kefL5M12+IgAAAKD7QgssGffg Qyv3TEGSdOwps79UMkOalpbMjXrlebN/etoEl9TLhW5fYqQ067D4OycTqUyXrwgAAADovtCHhLng UiqZIWGVirnRrlZ9c1WOmjkve6XDMn9qXtKdz19p9jwW5+TT+a5dGwAAANAroQcWp1C+YOvSXeti ZUKSVHs039sL7LHciUJb9Y73P7L9fgAAAKCfRCawAAAAAIAfgQUAAABAZBFYAAAAAEQWgQUAAABA ZBFYAAAAAEQWgWVAFM/OhH0JAAAAQMftOrD4b5TbvXHmRrs17nsKqu0eBwAAAPQDOix9ZurkhW1r 0Ov+/QAAAEA/2XVg6dSNcVAHoFknYbfnafd6oqbZdbq/DzouAAAA6EeR77B0qmMQdJ6gG/eodiRa DRztBhkAAAAgijoWWHbb2QgKCO12BHYaZPx/XlQFBS8AAABgEPVth6Xbf16/G5TPAQAAgL2tY4El 6Aa53cCx0w7Hblcr69R1hK1frxsAAADYTuQ7LO1Oum/3PEH6vUPR7PO6/f3+OQEAADDYuh5Y2p27 stNlend6nn7RagerWW12PgAAACBKIt9hAQAAALB3dT2w8JP8aOHvAwAAAP2EDgsAAACAyIpMYGF1 KwAAAAB+PQ8s7a7WBQAAgN4onctTqaHVIKF1WNxcCoILAABANOROFKjU0GqQyAwJ82v2/BD/dqv7 AQAAAPSPyAYWfwcm6EGHzZ4zwqpYAAAAQP8KLbA0e9J6q52RZh0WAAAAAP0r9Dksfs2CTNB5gjos BBcAAACgf0V2SBgAAAAARC6wBHVGgvY3GxLGHBYAAACgf/U8sAQFiHYn07d7HAAAAID+E7kOCwAA AAA4BBYAAAAAkUVgAQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkUVg AQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkdU3gWXyRq2tOqimM8s9 qQAAAEAURDaw+ANI9nFTJx6p3LWm00ue9w2qqamprlQAAAAgSiIXWFzQyB+flLQVVArny5Kk0qWS py6/kvHU9L1pz/sG1dTRYlcqAAAAECWRCSz+oHLyREHSVlDJZnOSpEzmmKfm7Punn7QdmIkJSVK1 WpUk1S4Vu3nZfad4acpTpXnfNgAAABAdoQcWf1DJP523r5igkslU7LbpqLihX7mjWbPb1mrVRJda bbK7FwwAAACgZ0IPLAvnTeBwQSWdnrKvmP2uk+J6KRk7KTydLtntiqeWLpmgk8+79+Htpo5Oeap/ PwAAABAloQWWXNIEi9zjC5K2goo/gLhJ9K6zIs1K2uqoVCpm7srF583r86fN/sXFUhevPnz+oV2t 1+JdKwAAABAloQWWanXSt12UtBVAXGfFHefvrFQqi5K2OiouqBSLZXvGbFeuOyqKxWJXKgAAABAl oQ8Jm7W5wt9h8c9ZqVQmzN5Ly5K2luH1B5W9Nodlbm6uoxUAAACIktADS/68GeLlgovrsLg5K265 Yrf618ln8pKkSbN6sZaXq57zucCTSi1154KjKpnadnfqzBlPveP1ZNeuCAAAANi10APLhQsmWBx7 1txQly6bAOMm47s6M2M6J5WKWVVssbwsaWv5YhdonL3WadF6j98HAAAA9EDogcUFjaUlE1xKpZqn Li5WPLVSMXVy0s1tMR2YVMp0ZOaf3FsdljO2s3KmWafklHczlbQdl+T2nRcAAAAgCkIPLK5DkkqZ G28XRFzN5UwQyWYnPHW2bDovs8dNrdW8q4INWodlOpPfdv/cugl280FvPLX97tq6mbMyfzrwnQAA AEDoQg8s6XTaU11wSadTvu0JSdKxRRNEspfsCezcl6kT3jkcg9ZhmZur3fX12vr2r7tg4qrffECg AQAAAKIg9MCy1WGp2ep93W27IWMuqJS9hzUWMS5nXcdlMDosrrNSKrkO0rzn9TN2Mv2ZgEn1Qa+f ObP9JH0AAAAgSkIPLK6zUqulbPW+7rZnbSSZPVqQJC0+Y27gF064I73PXRmUDovrrLihcf5OS7Nl iZu9HtSZAQAAAKIg9MDSaofFyUznPNsTqe2faN/vHZZp+6BM11nxV9dpcZ2SditDwQAAANAPQg8s rXZYnFTKrApWs+9brnkDzNZx/d1hWbQPyiwWpyRtdVhcdVzHpdXqzJ/u/DUDAAAAnRZ6YGm1w1LK mtdrNbtssX3fwjl3pHdWS793WLbMS9rqrOx27gmdFQAAoqt0Lk+l7tkaJPTA0qzDUpDZnyu7VcO8 HZZZO4fFPWDy4unBeg6Lv9OyU42hYHRWAACIrNyJApW6Z2uQ0ANLsw6Lfzkwf4fFzWFxz2E5dsoG moHpsDjz2+7d7ZyVO+fGAAAAANERemBp1mFxt9H2OZGN57D457C4J907g9Jh8ZuaKu6oBnVWisWi pwIAAABREnpgadph8XGLF8+fMsHF32FxBq/DYuRyUzuqQeZPzW9bAQAAgCgIPbA067A4Wd/QsPnT poPi77AsZBfs9mB2WEql4o5qkHbHEAIAAAC9FHpgabnD4g8svg7L7HGzP3vUBBc6LN4KAAAA9KPQ A0urHZbFnAkmbi6Ljpoy96ydu2L3VzIZe4BJOKmjUx282vB1usMCAAAARFnogaXVDkt60iaSsqc0 LBwteLaXXh7MIWF0WAAAALCXhB5YmnVYXDBx+12nZfbSrCQpJ1OVzUuSlpeXJUmlddeKGSyd6rDw AEkAAAD0g9ADS7MOy6Kdo+L2u+WMjz2TlyRlT5jAUiqZyfYXltLdvNzQdarDwuR6AAAA9IPQAsvS uEkgzTosqYmsZ7970v2yPd498HDQg4qz2w4LnRUAAAD0k9A7LEtLJngEdVjctqv+J7PvlaDiFItT O6oOnRUAAAD0k9ADS6FsJsdfvFiUJC0ubl8XFgqSpDOLZgjZXgsqWw921K4qAAAA0E9CDyyOCyAu kPjrXgsofkEPeGy3AgAAAP0kMoEFAAAAAPwILAAAAAAii8ACAAAAILIILAAAAAAii8ACAAAAILII LAAAAAAia9eBpXh2xlOjJuj6ona9rV5P1K4bAAAA6KaOdVimTl6QFN0bav/1ue2oaPV6onbdAAAA QDd1fUhYsw5Hqx2QoCC00w5Psz+/13b6+Zsdv9POUlS+FwAAAOxtXQ8sriPg7wwE7fdr1hHp9HnC vkH3X2erQabV77fdTg4dHQAAAISpY4El6Ma51Z/U7/TGut3zhx1IWhV0na1+DjokAAAAGAQdn8MS tL9bP6kf1E5Aq58rKMAM6vcCAACAvaXjQ8J2+xN9OgJerX4fBBMAAAAMoo4HllaHhHVqKFer54nq 6mB+QauZBe1v9/tt9zgCJAAAAMK068DS6pCl3U4K3+mQs079+d220+9ht59vt4siAAAAAN3Ek+4B AAAARBaBBQAAAEBkEVgAAAAARBaBBQAAAEBkEVgAAAAARBaBBQAAAEBkEVgAAAAARBaBBQAAAEBk EVgAAAAARBaBBQAAAEBkEVgAAAAARBaBBQAAwCqdy1Op1JBqEAILAACAlTtRoFKpIdUgBBYA6Jma +d/1mmcbAAAEI7AAQI/U1u1v1n3bAAAgEIEFAHqkvDBrfuM6LHRaAABoisACAD3ihoLVajag1NwQ sbCuCACA6COwAECPLV2Yk/S24EKnBQCAQAQWAOixxqT79ardQacFAIAgBBYACMnSxbOS6LQAAHA3 BBYACAmdFgAAmiOwAEDI6LQAABCMwAIAIaPTAgBAMAILAEQEnRYAAO5EYAGAiKDTAgDAnQgsABCy VDLlqY1OyzqdFQAACCwAEBET07OSpMljc3aPCTCiwwIA2MMGLrDkpnOeCgBR4zopgftTtuNiq5K9 uCoAAKKp7wNLdjorSZqwAaV0aUmSVGYkBYCImnzKdFBcQAkc+hUQbAAA2Ev6NrC4Dko6k5YkLdug ohtmsmrtstmezmV6f3EAsI2tzkqLQSTpfx8AAHtP5APLsfyUp07PmFqzQaX4fNkcaINKg92u1mi1 AIiG7OyC+Y0NINmnz3heX3rBTLZvLGfMpHsAAKIXWPwBpTZpOiTLE6aW0na7Zv7Bzz169588ptPp LlwlAOxcY25KKuC/X43A4nYQXAAAe1dkAosLKJNZE0hSNqi4vomr7oFqbruUNnNYNL59MEkH3RAA QFjcEC/fcsY1f1BZ5zksAABEJrC4oFKx/16nbHU/V6zaF6oVu111r9h/6B+Z3Pa8FxaXOn2pALAj KbfaV9K3HYDnsAAAEIHA0hj6ZbddMHGqVW+tyZtk3ByVVMZOroTQwioAABZbSURBVA/otABA+Lwd FbedO7Hg3d/u5HwAAAZY6IHFdVaWlk3wuHj2oiSpZIPL8pKdPL/kWiv2jY2EY4dMuO2ATgsARJed hH/cTspPmR+8MKIVAIAQA8vJvFmW2OWPRRtUMrPHJEk2nqhSNkO6apcXTXVjwvyrf7lOS5pljAH0 KTdUbNx1Wmxw4cGRAIA9LLTAUrE/QSyXvcsRux8oVmxnJfVCQZKUsf9wZ15d3vZ8Nd+cF4aGAeg3 W3Nc/E+4p9UCANi7QgssNbvccKlgOieus9IY6XW5JElKPzrlfaN7MGTQ81WYowqgb3nnuPDASAAA wuywVKrb7m8s/rVUuuv7M6/6Vv+6o8PCP/QAAABAvwt90r2fm6KijJk8X7HLevpr7V47VyWgo5Ka mOjWJQIAAADokdACixsKNjkzJeltyxa7yfNHp80OOyQs5au1lJtcn3rb/249vyXN5HsAAACg74Xe YanIzGWp+pcrdg+QdOt62kn6W9U35Mv32IJ0miFhAAAAQL8LPbA08kljmS875MsmmFrjyZEVb634 tqu+9wVNygcAAADQN0ILLNlp8xyWmq+z4mJG+tKCp6b89bK36tIZUz9t6tK5uS5dOQAAAIBeCS2w lO1QsEYf5I4HqRiph3K7qgAAAAD6V3hDwtxclB2O3Kqsm9bM8g1znuWkmWSfmpyQJE1mJ3ZzdQAA AAAiIPQ5LFu8k+RrR/N3P/ohs4pY5nHTSZk4aur0MdthYc49AAAA0PciFFiMRs6wyxbXXvU+QNJ1 VlJp26Gxq4FlbJ2wu0vPX+jqdQIAAADovp4HlnRuSpJUW1727N/qiPg7LWbyfHV8wrxqOyvuMPc+ OxKsMYk/3ZGrBQAAABCmngeWik0atU9fNDsay4TZB0D6got7DkvqoUlT097nsGQy3s7KUrlsTsuk ewAAAKDv9TywVF0AqS6b+vKSqY0HP/qDi09jCJjZnLQPtHdPuF88X+jg1QIAAAAIUwhzWFKeUlsy nZZapfr23Ur5Oyy+oDIx4e2sFBeL5jg6KwAA9K3SuTyVSt2jNUjok+4bAcM+8NEFl7clF0mSGwnm hoDZxoqWSqZDU2aSPQAAfS93okClUvdoDRJ6YHEawcU9sX7ZzEVJ1Spm2z5YslYx20sls3pY8dxZ c9wjU725UAAAAAA90/PAkinevRPSCC6vmsBSeaFg6vMLkqSl5xbsfnMeggoAAAAwuELrsKQeP7bt /tyUDSzpCVPc6mD3TthqtlkFDAAAABh8oQWWig0k1YmsJCk9YYJI6bKZk6Ib1e3eBgAAAGAPCS2w ZJbMHJTUJTvE61LBvEBQAQAAAGCFPunezVlhOWIAAAAAfqEHFgAAAAAIQmABAAAAEFkEFgAAAACR RWABAAAAEFkEFgAAAACRRWABAAAAEFldDyzFszPd/iMAAAAADCg6LAAAAAAiq+eBxXVc/J2XoO1m HZpm52v25wAAAACIrp4HlqmTFzzVv7/Zcf7A0ex8zf4cAAAAANEV2SFhQR2SVgNHqx0aAAAAANEV 2cAS1CHp1fsBAAAAhC+ygQUAAAAAIhNYdjrpvtn5mHQPAAAA9K+uB5ZWh2S1Omm+3T+XSfcAAABA /4pMhwUAAAAA/AgsAAAAACKLwAIAAAAgsggsAAAAACKr64GFBzgCAAAA2KmerRLG6lwAAAAA2hW5 IWHNOjKtdmzo7AAAAAD9L7QhYUH7m3Vkgl5v9TwEGAAAAKB/hDYkrNNDxYKCSVCQAQAAABB9kRsS 1inMnQEAAAD6X2iBhTkmAAAAAJoJbQ5LszkmTLoHAAAAELlljXc66X63fy4AAACA6BnYOSwAAAAA +h+BBQAAAEBkEVgAAAAARBaBBQAAAEBkEVgAAAAARBaBBQAANJTO5alUKjWUGoTAAgAAGnInClQq lRpKDUJgAQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkUVgAQAAABBZBBYAAAAAkUVgAQAAABBZ kQsspXNFU58vS5KWXqlKksqvpzzb7nUAAAAAgysygcUFldRE2uw4ljP1KVPTx6c826kZs116vtib CwQAAADQc5EJLEqZDkotO+Hdrtbu+ra5qSVJUvblM127NAAAAADhCC2wFG7MStrqrGgi5T2gYoKI atW7nudMbVqSdPbZiQ5eHQAAAIAoCC2w1GomoExO2EDigsmyCSq1U2n/G0y9o+OSkSTlT1UkScWz d+/IAAAAAOgf4QWWigkWF7JFSVL5GbO99PSyJKlyfsEclzLBpbZk9jfiyOMT9kT2PBU756Vmjluc WujGZQMAAADooRA7LKZO2En2E9VlSVLmVdNhWS6bbaVtYMmYTopsde9XYySZPe7iRbN7eqoLVw0A AACgl0ILLJm0SRzVyrKpL5ckbU2yryzbRPKKWb64ZoeM1RpJxdbHJ021k/Vnn/PNhQEAAADQt8Jf Jcw/5cQGkwnbUJm/aCbnp2ygabzBP5clbd5wUW5omDnPQpbVwwAAAIB+1fPAkn3hrKTGqsWB0hOm 5o/PSJJqKZtgXFBxnZZXvauI1WTfWDOT8Cezvsn7AAAAAPpGzwNLLmOCRM3XIEnJm2DSabNdTE24 PfK80QWV5WVTq3a74mqlMxcMAAAAIDQ9DywpGygCOyx2VbCUnWyf/7Tv9Ru2LtnntExMmOoCSsUN Gdv1pQIAAAAIWc8Dy9Tpk94dvuCSsp0VjZshYDktm+1abftatHNbXIdl0jcEjOACAAAA9K2eB5bF Z85uu99NTbl4cVmSNHvJ7GjkGX9Qccsc13xDwNwQMf/xAAAAAPpOzwNL2h8g7GZ5yQYUm1Au1KYl SUW36lfVtzpYKu15f6PDUrXBpZbyVgAAAAB9J/xlja2UTSpusv1k1Q71cgHHPq9FFTt3xQUU12Gx ySWd8gciOiwAAABAv+p5YAmaUuKmrrjgcjFrAkuuUpAklSZMrT5Ztifa/kyzOddhcUPC6LAAAAAA /ar3gcUGkqpv1WE3wivtRnrZPHIxtyxJmkibAFK5bDsvS2XvgfaEJ4+6ExJUAAAAgH7X88AyMWUS iRvZ5big4nJGyeaSZTu3Zblsgkmu7H2SvZvDks+Z7bQ7gX3QZLnCMmEAAABAv+p5YDlz7xlJb5t6 YqV8c1ByORM8yrYTM1+ZkCRVa1mzozE1xRyQsR0YTXo7Kycrc525cAAAAAA9F/qke39wcdyqxS6o LFZcZ6WxLJgkaeGYqfNP2BbNlFldjCfdAwAAAP2v54FlOrMsSSqfnpckXXjC1MKjpi484u2IlGdM 8JhMuTkrZizZTNbsn3ncdlQm3DuYuwIAAAAMip4Hlrm5uZaqX9EGl+qsCSwL0yaY1F63HZfcpKnl RUnSVHm2w1cOAAAAoNdCHxKWSqY81fGvIuaGgtUqdrWwJTMULOVWBXNjy0pMsgcAAAAGReiBJcjS RRM8ygVTK3aVsGU7Cz816Xsg5JLtwPCgSAAAAGBgRDawOC5/LJe231+r2s5L2dRjy6wKBgAAAAyK 0AKLfwhYqxqPX3EPtP+0qdOV+d1fFAAAAIBICb3DUluveWrT411gsR2VMlNW8P+3d8egcZxpGIA/ g4stVaQw4QoVV6hwoSKFihBcpFDhQpAUKsyxRQoXhlORgxTHnQLhUJFCRQ4E52ILFypyIA4XKVLk DnPowMUSUqjwgQojZEih4ji2MOiKmXE0a+/Nzu5q95P0PDC83tVoNB418+r//x0AAK6thReWUXYe 9SIi4vhOORJTPmblbKl4fbpaPKhl59e78z41AABgThZWWMYdUdn/dC8iInYe9CIiYvd++fq9nUs5 LwAAII+0IywAAABzLyzDz10ZlQAAAHMvLGvl2pSmBICb6PCbrpRS3sgcxZQwAEhk3D/sSSnldctR FBYAACAthQUAAEhLYQEAANJSWAAAgLQWVlh+2N2s5aJ+PgAAkNfYhWX4Bn/SG/5pi8Ksis69rf2p vh8AALh8cx9hmbYoVN+vcAAAwPU3dmEZLgjDr0eNfAy/3zQyMuupWk3n1bQfAACwODMbYRk18tF2 JKTaf1RxaCoWw++Pe16j9lNkAABgcVoXlklv3MctLk3Hb5oSNuvCYQoaAAAszqWvYRm3KFT7zboY KBwAAHB1tS4sk07xuqpMCQMAgMWZ2QjLuIvuR2lauzLr8xp3PyM0AACwOHNbdN+UTceZ9XlNuh8A ADA/C3vSPQAAQBOFBQAASEthAQAA0lJYAACAtBQWAAAgLYUFAABIS2EBAADSUlgAAIC0FBYAACAt hQUAAEhLYQEAANJSWAAAgLQUFgAAIC2FBQAASEthAQAA0lJYAACAtBQWAAAgLYUFAABIS2EBAADS UlgAAIC0FBYAACAthQUAAEhLYQEAANJSWAAAgLQUFgAAIC2FBQAuOPymK6WUcgE5isICABesPepJ KaVcQI6isAAAAGkpLAAAQFoKCwAAkJbCAgAApKWwAAAAaSksAABAWgoLAACQlsICAACkpbAAAABp KSwAAEBaCgsAAJCWwgIAAKSlsAAAAGkpLAAAQFoKCwAAkJbCAgAApKWwAAAAaSksAABAWgoLAACQ lsICAACkpbAAAABpKSwAAEBaCgsAAJCWwgIAAKSlsAAAAGkpLAAAQFoKCwAAkJbCAgAApKWwAAAA aSksAABAWgoLAACQlsICAACkpbAAAABpKSwAAEBaCgsAAJCWwgIAAKSlsAAAAGkpLAAAQFoKCwAA kJbCAkAqh990pZRS3sAcRWEBIJW1Rz0ppZQ3MEdRWAAAgLQUFgAAIC2FBQAASEthAQAA0lJYAACA tBQWAAAgLYUFAABIS2EBAADSUlgAAIC0FBYAACAthQUAAEhLYQEAANJSWAAAgLQUFgAAIC2FBQAA SEthAQAA0lJYAACAtBQWAAAgLYUFAABIS2EBAADSUlgAAIC0FBYAACAthQUAAEhLYQEAANJSWAAA gLQUFgAAIC2FBQAASEthAQAA0lJYAACAtBQWAAAgLYUFAABIS2EBAADSUlgAAIC0FBYAACAthQUA AEhLYQEAANJSWAAAgLQUFgAAIC2FBQAASO08Is5PTk5q29qj3nlESCmlvGFps9lsNtsitotd5KNP vnzzvhEWAGrWHvWklFLKuecoCgsAAJCWwgIAAKSlsAAAAGkpLAAAQFoKCwAAkJbCAgAApKWwAAAA aSksAABAWgoLAACQlsICAACkpbAAAABpKSwAAEBaCgsAAJCWwgIAAKSlsAAAAGkpLAAAQFoKCwAA kJbCAgAApKWwAAAAaSksAABAWgoLAACQlsICAACkpbAAAABpKSwAAEBaCgsAAJCWwgIAAKSlsAAA AGkpLAAAQFoKCwAAkJbCAgAApKWwAAAAaSksAABAWgoLAACQlsICAACkpbAAAABpKSwAAEBaCgsA AJCWwgIAAKR2HhHnJycnta3fPzyPCCmllFJKKaW89LzYRT765MvziKi2dxeWwevBeURIKaWcc9ps NpvNdhO3UYVl5JSwo5/6UkopF5D9/qGUUkp543IUa1gAAIC0GgvLyt3Va5mrq2u1/+fBwXdNl4IW XE8AgLrq/kjWs8nYIyyLniIx6wQAgHna2FiX78gmpoSNUI3EGCmYDdcTAIBJKCxz9t3rOzM5zs5P KxERsd07nsnxmqxs78zl5wAAwEWXVliqNSLDa0VuqqqorN8+LV7/3JnqeN318vt/tTrVccZ2/4v5 /BwAALhg5oVlVEG5acWlKiTbL5ciIuLg29msnalGVvqHZxERcfrsOCIitnaPWh1n9flQ7pZrfF4c 1nLwvPi99Z6t1d4HAIB5aF1YWheS121/wtVWFZWjO0VROY5iZOXsg+L6PNw/bXW8gxdLtVxZLo7f KwvQ5v3i9caHyxERsb9/PNF5Hz4qcmPjYS1Xu3vFefeKr28+nW5kCAAA2ph4hGXUlK/BjI4z7YjM vEd0qqKy/l5xBY6Oi/fPjoqRj8FZeWXurtX2a/LFxnJxvKUi9/rF9/Uf34uIiIfdtVq29qwoPqur 3fKN8sF1vbIYfVYvLgAAME+tC0vTkyjHVRWKcZ9wmV1nqRhJ2fpPMWXr7HGxSH3p2X7x9V/2nOj4 B9WMsqfv/pSto73J1phUIyt7e3tlFr+H4ZGVw8dzWisDAEDNtEsuJv3+cQcWLnugoHVhWWlbNG63 P6mLRl2Qtu9ftnu3j2uvB+UASm97MyIiOmen5fvFF9pODVt7UaxZWVmZzaeMvT2yUv6czlZE/DKy sv/tbkRE9Pvl/rP56QAAXLLhAYLh++Xh94dlGViYeEpYVVxWhv6DbccPmj5NbPgCtb1g877Ap6dl U7lf3PhvPisKxqBTZGfSEZavi+/beVBkVSCOyilnsbHd6nj79989Ja0f3Yj4ZWRlY6P6/RRVpftB 20l/AABkMu398bT35221LixHLU9oMGLR/aT/saYRk0U1wIc/F1PBqrUqnZfljf3Ls1qevTie6Pid TlFUquLw8OuyQPy+KELdzyddDF//9LKHn/UiImLwumrUxdcPDq72lD0AAOqGR1qymuBTwoob5aq4 vF1g2v0FftwLlP2CVlPAqv9+52jv/+bgqN0T36upZFWB2Pu8yMGD4tPD+h9Odt5v/ZzX9d9f9fte XvbpYAAA10nTlLCmmVDzWnoxxaeErdbyxquKypuXxchHb7tbvF5ej4iIta+KNSGdlfVWhx8eYbnX L6//0qQnPJ6qIB0fmwoGAHCTXNk1LNUN7Lg6IxbdNzW24f2aGuCwtvtPavdFuQj+SfEpXVWxiI+7 ERHR3S4+JezOx/ciImKlbDZ7m+Mtnj8tR1aqPCiLQzWiszLhwMfm2ajr8u7fbzXC0ntupAUA4Cqb 1f3xvIrMxA+OrIrL2wVmvBva4cY2avFO2/dH/ZzLcloWlGokpRpqqRbXdz7djoiI1fKGf//JD62O v/WgGJFZ3S2Ou9MvjrNUjqycPj2o7f9mEX5LW4+KDwno3F6rZTWyYoQFAOBqGf4D/vB9dPYlF5WZ PziykmUI6bINhu/jnxbPX+lEsci+fOB99I+K123Xriwvl8d5URTDs2fl+2Uv7AyK67v58rva/uPq 9IqsFtlXefh8rzxe+elknnAPALAQ0/5hflF/2J+VmT848qpfkLaWBvWCsHy/eH7J4PtiZOT4cTFV 7OzJdkRcHIkZT7dbPMdlf6toPp2zHyIi4s6TrdrXvyinmFWvG5XPYamyemBklYeHg1oCAMAiTDzC 0jSl66bYvlsUlu735evyOSVVMRnOaa0vFSMpK9N+alfvYS2rKWGjsl/uVyUAAMzDxIXlutv5aqfV /r2PL+lEhlQjKGOPpIwwqnCOm221vZ4AABDRorAcHHx3rbLJxsZ6LZmO6wkAwCQaC0vndjH1aHt7 +1olAADM08rdVfmObNJYWKadOpQ9K/7yP1uuJwBA3dFPffmObGINCwAAkNatiDiPiDg5OVnwqQAA ADfdq1ev4rdf/S3+8dc/RkQxwnIrIuL999+PH3/8cZHnBgAA3HC/+/O/35SViLhVmxL2p7/8S2kB AADm7tWrV/GbP/wz/nvy99r7ty78+7z6x0effDmv8wIAAIiIuDiyElF2lVtD+5wHAADAYt166x9D FBcAAGDe3uon/wOmxVhIaHbqLAAAAABJRU5ErkJggg== --=-w6Zvb95oy5GH4QKhWAz7--