From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DtePx-0000Ss-Aq for qemu-devel@nongnu.org; Sat, 16 Jul 2005 00:36:49 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DtePs-0000P7-O0 for qemu-devel@nongnu.org; Sat, 16 Jul 2005 00:36:47 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DtePq-0000Lh-Ui for qemu-devel@nongnu.org; Sat, 16 Jul 2005 00:36:42 -0400 Received: from [128.8.10.163] (helo=po1.wam.umd.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DteOw-0006a0-Rn for qemu-devel@nongnu.org; Sat, 16 Jul 2005 00:35:47 -0400 Received: from jbrown.mylinuxbox.org (jma-box.student.umd.edu [129.2.237.180]) by po1.wam.umd.edu (8.12.10/8.12.10) with ESMTP id j6G4R3Ru024325 for ; Sat, 16 Jul 2005 00:27:03 -0400 (EDT) Date: Sat, 16 Jul 2005 00:27:02 -0400 From: "Jim C. Brown" Message-ID: <20050716042702.GA31658@jbrown.mylinuxbox.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0OAP2g/MAC+5xKAE" Content-Disposition: inline Subject: [Qemu-devel] gtk tarball 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 --0OAP2g/MAC+5xKAE Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I've made some minor changes to gtk2.c which allow passing of parameters, though there aren't many yet. The only recognized ones are -window-resize-on and -raw-grab. Also, now gtk_init_check() sees the real arguments so you can pass gtk options if you wish. This also required some changes to vl.c, and applying patch upon patch is getting unwieldy, so I'm putting all the patches and files you need to convert plain qemu into qemugtk in a tarball. Simply extract it into the qemu directory (the files will show up in the current directory) and apply qemu-gtk-patch.diff and vl.c.diff, and reconfigure to enable gtk support. -window-resize-on will make the gtk window resize everytime the guest resolution changes (the scrollbars are still there so you can shrink the window and scroll it if you want). -raw-grab turns on old-style grabbing for non-fullscreen mode. The default mode doesnt really grab but simply follows the host mouse (I find that using the raw grab with a scrolled window can be very unwieldy). Full screen mode always uses raw grab, there is no option to disable raw grab in full screen mode. As for the gui, I've built the qgui that Sebastien provided but I haven't figured out how to merge it into qemu yet. The thing is massive and seems to be set up to provide a GUI for a qemu which supports running multiple VMs - in addition there are what are apparently several startup screens that allow a user to input options to qemu. Also there is GUI code for qemu-img (this I am not planning on integrating). I don't have the slightest idea what the final qGUI is suppose to feel like (there seem to be several windows which are just slightly different versions of other ones, I guess I'm suppose to figure out which version is best). -- Infinite complexity begets infinite beauty. Infinite precision begets infinite perfection. --0OAP2g/MAC+5xKAE Content-Type: application/octet-stream Content-Disposition: attachment; filename="qemugtk.tar.bz2" Content-Transfer-Encoding: base64 QlpoOTFBWSZTWVJyMlkAHNf/vv//6wJ///////////////5AAAAIAQAAEAAAgAhgP576fFAD 77BffZz5B29xt3fc68Zu+7r5mvXlzQhkM997iLjqz06eVXG4897wvvfPfX3vvvvnu2873nb7 l1K7uo7WGrx75x0CaYTYNaZAAbt16PQA9SHpW5nXVOtzK3F973zaI+lUZrNNUtu4GCondnQi lTpqqVbYNaKtptChs1KK6ruwU8vW5le6wKdsaoOncFeDhoQQDQEZAp6ZGRkymJ6NAamqPZGm lHqepp4Seo0GgMjIzIj1A0EABNCaETE9QamJqekeiZGymh6TTQ0/VNAAZADQAAGGmmhCJKep +UaT9E0j1DI9Iyeo9BGhoZDIAAAAaAAAaaCTSSITQQ0CaNAJtJ6SaeT1BoCDZENHojQ0xDQD IA09IARKECI0TaApsnqTaaptkmU8TJplPIjJ6E9T0nojT0mjQ00NBkBtJiCREIBATIAIxCZN T00mamammNETTampifqTTaTR6ho0DQDagOqhn+79f7afvKVa83VMIOFpVCFIQRmIohxLEe31 3P2T7D5LgS5WQBkxBRxfal9HN9vba1p5bxDOZlJIudilBAaEkEUkBYsBJFRSgKRApBGrBjEh FQJCELIE6YEIgxFZEVIoyCLGSIxRiisRkUEBRBQiDERQVFYowGIpEVUQUYxVIySO7Tr2Ydi4 shWDZSP7tz6Clazc+WiYqJGBOBasScWoxkOmWxYAwZFgpIyIIJFZHLYIxYMBAQGCMIIyAiqw UYyCAyKRHX6in1YfK8/omMmLY+SLqn1kCaONN+NHaTbWqpSZkmHDRgGI7JQrFAqNub3SMVFw oiOjZw1moGZwwutbYa2dkNDtnGG/HUNZRKlSm0wrk3Sqrp34S7poZ9SG7SoCM3S7NKgi28IN BRN3g0yG1uBiERwS7a3dJm2E3ujN/RTFdE07JhN2T1bYHKvDMRSLVTg4KpBycdMICEURx+F8 vKtFnyLnQQ2tXCAy2TSEFoOCEhkLG4wI7bfFCELe0GfFBP2OOv1DEPaI3W2zM1RVxywXehcu YxRLhYsUmgYa02E0JK1mZbbjICxYGtWq6TLfybWbFqLq7GVY6ZpzTOjWGMHRlAfSu6qgaa6y nGQ74ztJCGyBrdAXdAUqaQ2fi3gn6O4031UNuHPityjNkND5Dh0OuIbEoABKZAUMP1H7qOfE QQpmnt0vBlfwA00+2f3Td/Lj/M/gkmS1bT7KBUK2mf6JnT/U0mwYba3mRmYwJwHPEJhKBMZC MX4JSMY2dp1Fqs1+T492cUXebt90Fa+S+nZNtIDDLSFR2zG/SbTQJNUP63CfCI7m+PlAcO9T T8NbM3R8HGGy4aiAi0qmeWfw87v38+Odjd/QQCGFBcBuTtU4o1aNV0tYwvl8HuHQbQUfHaCM SPW1JVSr1tGQ7mqGDdQ8/rAoE7EJ3ZADZIAqySN9+1ilISK3RpEJ6NL7YioHYQgyAKoYsRlc qlTXIJQYVoqgPUQiChA570hIGxPd/z7nqfBsIqAiCMhUpFVkFkEsjZIpFAixiECpCpBYoRER WCyCqKKjIxOA1ihFVEEEJCYwoMhERY+To/11JDOwAf0lm6GuAt3SSGRJIZTcEMiGMBKYE4IT Q0xADR5xa91ujZHLj1eJir4IBA2MMOvZrDKGiSK7EVTdZWE7/f+HwerVfsbK3wbOoVRKigfj EJAIMuioXD2rDMzNCLBu73SrR7S8W2PfxD1v0LU+XLhTY84T8jU0wRrA7mFQykFkFRW3scxg LJUIIJFBEDkhRzVRk0yaMpNJgzTFJJ72FhC6FiBEnbd2MTbB5o/SVoBXupnX5ju935C3gCi5 7B+4QBFgFDZjgRAlp1VBgEhDc0aN1ZTZ/r6xgAwEg9mvW4ccgl7e0gCYzZ+W9kFfLBDGeA0A VMO/hA0m4N1ZJKH1OrDmz2A+BhOaMig7bPNojmPM4M0GhwjfZ0ws50Vhxv6PtjAbomu9hVGA +HIOuM4ldTH41QKh7RFtQWc8vJxbXi2+W/zPktdi9EP9eevPBPD9sipfBvzb5577mTLRxXjI nhgwfRlaqJJXDI+wtznSNj4IGC9kEPl75cwvSpn0n3M8SbWiEcnOB288B1297/Pu3ZGXW/Gp bV2S16F/F4XAH0CawAGPjOQO+PpfQbgp4TG0RiSmhy+UnTu0d09kk5I5owrV8XfPEByfh5KL APSg1ilSMHVCRAkTWF3z3qdqq0Be8+dL6loyC0Aw8fjq5taB4VawEOEgFu11wuDJpDQ1TXX1 HR8+Prr0ZdePpzPhXySq1ShRtRHRJITHB7YPHvR/3eXsqj6ulsa5Etu3Z7LCDnWVmgrX0WmY G6NIWuTg3wudp0ffIYTs+EgaIfEIV1EIQS4xIGiN6BKC4tTDYuXxMJY0wGAebZeVelps48VL Q2jxqgFsEVZEKP9CUjWTAIQBs+gF3aVqjLPDGMZl7EhWpW4AwMskXm3v3WdeBcxpLRkE6zPS DXTD3amwWfvPS1+jEadKaM7D6fU4H+VXq0KzVd312LvefZ4sBmDdI6UNG7h5NzI6qBPXJB7T 8N9KDIFgcOXj+a7w3cfmHk37xSe8bKUoMhVe33cxHbfDCBiUTDEI2AZd6Z7+bTIs2l2MRrKN mDq5pWCM7Oj9rxezv/v08SAVmUoBpNeC26WE/35csE1zAPG68vqe2ZU6Vrtb+mWV57TpNryL bA/A/O6iRRZtogMgumQrGOnP6YnxYCIwAdbLGGI3rl9C1/ZWdtGfW4zEGzQTbpQNuWS9m8uR 7Lj+96evcK0txCQiWrHjW6ZjQqZ+2egcUHdRlaQcLbr7clshx+uxCC1be94eOcuapKEOl1o3 LahlHQtjDX6TusK3D0kJzGLprwaXLWwNrgTU67HCuKvtAVFAlT5mp4MgO/GzuBAWwrB2enRg 7PRmPRVoimMILbN9JfNiPMx6lQumutq2drKzqGcH7ceiQoLC8rHUU8ibQEHxsK7l6B5k2PNa bgUe3Xves4QuaHTgzWUimZ9UGNVyKzijsplhBQUGhC9mMyMwfeRAxTXut+hG4G0dEELkr4WF QbWypJUjk1bPU6/ccdiPLwMcPtIwPnx9WqnV1eTDoV9zGNmXZPstipERtt+NI86IWXCZkw2r m5XGEd9foHirQJAPlElCtxnTQzJ+z5tBk2ODWNym3MQ+7dwyr6+qAKNI7mKb9jKLIqzuZC1K BxxchvQ2oV28xtsyXPvJ8tIeUepENDDSgjtXaESQeq7ZsG09Wyl/ft8Mq1v0jHdjUIQNDGjS IRVy4dI8e/DXjsN5F0VnWOMdU6O773fd53CfpCBNYSw6gQE2uJNyDpq0qN77fVfS6CMM4tJr SW+ts3bfSnIxonO6mhlogMGAj2Ra9yhyNNSILCz14xjF0e7Ft3pEoZ91bZZ5zjOvdoitrMm4 S/egask4zeGd9shZpPCJygjHGKSY0XpJNGVGJwbV1BCi9V/ubCdnX9c5IY3g10nCZmfrWbTw wjhogejCVpauTtZrTdxkM9B0h90nYqkO27aCa9I9iWvfGGhzoZ3MWlo2Ee0ldj5tenW0bxhb RHw80aO5K8uGR0p7PLyyfYUMpSE7h7fdsCYffDHG7zd6cmnrFH9KKGu4d0TjHh0jONDk4MoU BF3kkkzh3SBSfbjbCrBTEMc3yISUaO3tbBGM6FGTt26O57zNTkBCARu+er9HT0D3s5ASTkrV 7T5Vk6RznXuN38hrKPp0YZmZncbeA9GNxbx5BDcyBsRCx3a+bVvNbbvHOxyUKewMpx6reSoE NKv5Ssajkaxu2fd+m22+HGuGPC8wcDDNuttBw2psUGhevfxgKRQy2CqTVSj7tS72uJXA6/iu 2eXZQ3hePudZ5U0cfV1cRTQd3PK9lAv8ThEAMjBmRZxhGajCOTht1PPvKntU2SzTZYoYjl2+ GJcvi1nzVPN7yuyB47fxq8qvbEbB82Pj/gXFGFBpEtUDlOHY+ThzU31t9Ma+PeX7IMLR8s1N gis1bcXVuSIrToitYc26dLvT5Op2ikYYyU7tVNKlwLNre0iGF+qWOYJOhaG0Qp2Ph212Q5Me 32d+fL1ae/y/Z6uuX0em19v+tfb/vD6fn+79PN5f1ff8Pm9nx08uzi3tXDp7fdy8evV08v4c vNzc3k83V1fruWzninG9ttYpSqLiJs2bNmzYta1r2bNmy/HdjjjjjjjjjjdRJSluUXaqsTLd u3FAo1v3t9fjfpcYsFj64CmozOo+0+ALyNB/SNNptjESIqyRh8QwbYKMAVQtqLARYwRFRRWK Rak91kAMZ8SBN2BJsyFED77BP5J1fGGtffFK2rRZH7Y1kh8AfEtwL9YYFAc0UKfzlJAfnlah oz8+EsV/LyAoba02L1/iDEEkQFBBNkgE81F80C/v5d/l7N4cEN7lKcUFw6UOZnQwubMDu8PT U15/QZUxjOSJcyvcZtRLl4kynmdg3XPzpRCpyt9olkhowrYLjKp6CLYWK3XxvIDOt0gpiLAA FiTiXJ15BkEIRqhCOhnIJngfOFJCYtcsKl7woGaNg9VcGTEDQ6kOAuwlc75HgeiAFtGfBGvH LR1uafAcH60k0kQ1asbd95t0CoaQ5PHhxuVlNxp1oY/PnaB2dh90TTtxURjbS6E9fA3ikNXw L9dFgLjK3Mjfsc51I5NXvpyupkf4s+BwEfy7fyuGffMG+7FmjMl0maX6Dh+Im6Tt6D4dweMe MejvmvxOEIExkZyBTYJRzy3mP9hic7078v0tpifyHE8+xKJoO/1tW9vGrrpyDz9yVHuogaiA zu8FKKoBvCk4F0gMoiIu9P4o1iTGWMfN2Pcr77koyPjvrl+4/bO94eegHFiZKpQhVglkC2w3 EyM8tA8Evm1pyYzfrcBcOzg4qT7wEXN9ED24YZZW5pD04aTkc+3pbBtNj7iE2iFVrVQijZO0 sQNmMLPzNC0qc9QHDXVLBfqjhKXQjDrqfJ58qene/PR8nmOtoXuGm9PTHgOVvlNfalH3W9oO EkN2hsOLmQc7USd34+KT0IamQmYf1jxQ2MNqUTCpdC3Nn0jpdGsIy1V77WG0AGQoDqyWuiwc 2jEsjpHY3DVDHbMdOXQcdvuzq17mTr3aUm2nyV7uShpuNo019fzHOMgBtJEREYxBiq/QdOKk WQbQsUGKRD8yVnlsKaLCsBtihsn2D099t5HgWpvSgfiSfjZA+4yQDdJ8bKikhudoUUxiO7KQ C0Ksf40KA+2TJRe2EQiHMlA8vl9YKl70jdohxQMjqhfwxUOd0/LbV0eAQAvDLwX9TCE43x06 oGPmREAQ5+jo6M2maii1zNhtReqDwh4wKJBhCJkKm02GJRa17qvrWUpSlKUpSlKZAiIg0fSf m5mpYdwBkM9nO/a/nvp02s4lzEXl061Z/mTIL6TLgwjQGGzolSvvdbY349XzF854qIhJFmIR 8vhMgHKF0pLQ1pn1Y6l5MORGYbcSY+Kl3H2PiU9O/Eg15HMM5aQXULV2cmtFvpjWl39WdPpY VRoQx6ARRnkre4KBjwpt54OnNoi/w8PO6gMzeAboqjIMWRGIdsmaKdtexG/yiTtDl77jegU6 XMnfqy8DD3EQt3Y5vAj42ATrh7fXCNQufJw75iP5d+gVI+oEQ/HA7/RL5Seqe/J7YewzK5L5 s0LrWKtkyywM05aXIe6gTNaqq7R1uej2hjxtNHzD7PM4ZUZnN6w+cKU0ZC82oknDOhfwsywa ySGwVb63XFtzPFviB9RN02dP7+s+MxKH0I3z8/8Pl8v+/LL/75+Ih4OG/jAw4elL3yX+Xxlc rmnjMTBZhBf7/ok/ZlBEEQyIt/Pl0yPLUO9EXlZqMEvOECG5y6mxWYtoCUOsBQQCjCIZShKU pQpq9dRejHRtUUXwQE9x9q3F8LiT/EA65A/FmDCPc7Tdojm4B54oOQ9FMhBcuhA4Jlogphg1 ytFcaNU+RzNRofVT8/wnuCj4Tvc+EH/PvzgxZjY0HiXDMFc74wbUCbxKBkDQL0jqmfDPDc59 QTHo/STt0H+BuVNoH2a2CWyfz/slot+Entj8KXH22vk/Bti2wXSRlCbxiv81T+uLcn0L8rSM SiFiDE+T3q/Tp0KOzpaKPUUa3XoUAz4U9zxev1PjKzMBuvkeRERgJBTpSS2gFIFAXMANu6rk KgMFWkQJkM1s0YEkE11Uk3AbsQOnAOeZIg0QPq+rsf7p2vqrJbz3l8+wSX2pauzQYN/tum+V 5DBp7MCjowInIiMdSNi5FTOeiOpekrxbRgWM4xogTLh30BMioDsk9AsilUwJmlu+THNVTMu9 +YdX9ERW2xrAhUFISFct3712/3bozd3v9GLTpgUY3Ak8bVCYGsilmWtfvBjgVnf/81X+U3Rx Lo5NCA2UA2rKnHcBEDOX0oIP2iBr8Gfpv5cvkKOj5WKytnSQKFbnJDKtQ4ZMmhDqCSwILJXD oAcTr0gIo8FVIGkgWNWziWEwQhsEDymGxoEZgE0GQGlgOij6P6A1gnYLb0U2Ky7ixYst/V6o HCtbnlBu6DWsR6vx6yjuSpKYbPkuchr646AG/RKLM9dyKiMqbPJz0tU7ZgeMRf+T5JKd1e6l L3AhjdJ12rWZnVtuDZyNdw0BqYkimwvF4U7Uz4XZZcOrhy4y7fLlt07kqeerFDL5X6mxfAL1 EEviQm5pCTV48bODIMRtrX1gngmKpLLSFoUTQlBHcC0LkJ4/Pps4EMdCDJXGlxFoK1n8+dOf Xhz83PpzYnUAGCApV182ZQ63A4vuxnXmgDGWT0mzO8HR2HiImJ1qEAIc8a/HeIMugRyTBQpJ CNyIGeFQJYkEEG2nTlW3t7evb18b799yAwZAWpkFAG47q9zMJJOCTdO0vBJ4iex7bDk1CDu4 20kClsp9ULEPmHfSDqztMGTYhnfF9cNllldlVdcsot1pXK28ASNopphWLkcFETY+feFuMjBL Msscu2+TbQQT0UAhjogiDzwsJN24SmKKWmp0Y+ksuG/jw479941su+ztSzBh2IM4TfHFnlA6 mnv9FOjJ/A1yk+oOeJvrFGYsy+MQQc/CIzjC4h7YljY7RbONsb89/Hjv33y3LQk4jGD4xfnl d4wegA1WSmIkCPICwgvAyT3ASSps+ddhttOotjbZNtgdcY2i/ybsZvEEoqVYcwxFeQ1qBzbw Hsg/aVNt27bbXXf7fV40QzXbaPV6t+5GzJ1ex8fpTunb2tkW/IrgzeV2HKUPChz8kcNhqnig bDr6+zyruIjh+DA4FLiIdsOYQOw9op20gdnBXTHQl5cOHZngmzeuhYj1R6zixuZu/Rd25U7S 1lkSJ6p64BhnhasYoFMdhlSl7dqHcc1rfEpwh1oBH34OFnwJ49SzVIJHKKsoqATMM9/ObGxH nUZYQR6M1ecD41csENNtPJlWY70127TCkdYNYOOSYMEVIoBbCN2QAim4IzcFUc5HcyseMBCh kghRAO09HGNtWc0sOIXBmDObGE3L5Gb3k6kv/Yq0lu2ftor77yS3jGIzH045lFVTfhiY6O3G tA+kuHFT14KXbuIakwi53BDcwKTjOl1L9x6uin7xn7yST7SSlOfWjedx6dPYLlbTP7ZD1Mh9 uD+YVQRGfVZAP0pB/UU0rPwoOoi0APlyyOSyS1olpX5+QqZIgUYagOZAhRITCRhjBYYISqyg yIC7V0O1mMWXOrc+ravZI82xmaCPBOQIDJJum0X/CX3UUtK0rWdj+/S2doQ0alfVKIGoQA8/ BameXdn6wDkWAFQDzAGopu9yp1vIdjzoHs44WPmhO6pdMSvL2f9AC3pQYn6jT3SVAuGQVwyz k/6rRWgpq1AF6ErFpwoYXmxXrEa+fpMSaDY1cARPcXIQ5NgBSBZWbyiIJ6fhAsWXdTNoU4JZ WAP8aX7+vbIaDrF1AOzo+tZNg3NR6KW0scFHyAcAC8clAMs4DCDCR1P3PXwIpUbIhqlMNHha cOSK1ILyupGNynPaH+T+AIEbQWWQBhmxwEFCSCyM40ZHxvU2k5PgRFWl8poc+XXu5e6kURbm x7LIWAM4MavmCRNHRJW/tzQH8ADjNefnLFEZwfmgAnYFLlb+ACOQv0iEGASLh7XitCm7SmaN WlyMRsW1rXvvsKc9aBt+wQGiRfZt7nDkHDjWVCqPrEPWPh9fxKLEN/b+zTiqqqiqqqr7EJa7 9HrsnfhPZhV8AHjHHGxfDC3NSvrWyNAcA3a58WYwsg5EUSQRRH2DT6U7KY8p3+zWpCnKcQWo vKYxSUT8LJtgBxAwAYduAuMLVPNk+HlGzrd56wuV1KBIQZd3FxHYyRQDD44zHaFQO1Rc6KIT fYcGAWGce3GaeRosvWheg441C7NGA++AVi9HP07c8Or0JhrNBCuDRZ3z46yhpkbd0m8PHqRn hRvghE6kt2qAhJV5QCZSKRzuR3iAuhwttttttttttttttVbbS1bLbLbw1wIjJEEIQRC0lAEZ IjIEWSFtQzvzZtpIyZWSwFSK+jwU5C5oJtKM+fxoAVXQM34gEUGOKm0ol2DSuKUz8o7gxsNI UgEDYXQkZM1GWxc42SSXEooVwirywa2wvLzIgFNyx1f+8ox670JeA1dUOuDCgtKx0csIKIJS CjFFTBiQceG0KoNmDbfQv5T6TkVmqPqokXXHaeKJL3RbgNvFqDo5beSgVGoULvb2mAUJ7TJ4 d4ShppzOaw4aB22JCZlOFIxFT8WJcWj7GnQVi5AFMzDuM87bFuit6JqovDwuOu5w4wyTkIbi lHWA2zFXJC1sUpSgaAepATdjoMV2BdiE0TRoARW7JAd5sR3M7m/Mw27EY5JBPJqkOiwGmXGS oHLecYBXmpITd6d4sdmlFfT+l9T4N9x3a/30gIgqqp53Xq+1v1eXznvZMEO47cYaMV2h9ZRd nVh/cBzGdlQxa6JAKh2SI6yqt/4uPJTMswNp5QIK6sbXDDG8llwKxQWBuHxbUQBgd2t7Mr5p G/Vqr+7y52pLGsUO9sYMhHupvgHGlgq7tSD59hlJ0h5dhw270LzGTSvogosZRutRCU0XfSoK huZg+UwyRvXj6/Wjdfqivkkmg2WJJZ8vnXziPMfkXtwL228SkT7eY8OTeeX1w1f4gEN2OJC3 VfE6ujpU2RE1FmQ7sq68NMLkUDQhLyoDyiEavnDzg1rYu9kMejO0BZRnmIZulI1GwBVzVsFu UIliiYDdjgR9Z3dx1HeVfpWzZ0NI8cnt1AlfqDYYb7+a8IOdBHmg6YAWRkCBg9gXfQaSxTGs 1JGGL1ot0D/jQuOHyZRgBuVxyDqktIKo7WEF3t8wkS0n8fXFbHf0/OVP1ioaSjtHwbhn8V5L debO6B8xkYkkHl6jjsuoSdsnd3GQm8ihfMM02KJ7vKJ5vNQ934C+v5tNMelSHjIEaPrcj413 xxBTfmV6lIkvwZCORrQYojaClMD2n7T92ANlAi1g+fu8PogRxabSD6incSUCjQFQB/IPOQgK AJB0NNojPHVV1rPYgOzEGQNw+9PMUuu/VcGT95aIAGAMaA5uEd3xUj6XLvWRZ5YQBfEpmRoK GXX1yQzSS0SnKtKDWxomYVptdp7y3ZSlLUsQrC+lnuBoNxXFOlOUAwRxQGkD+eopKXhUY6AY Du2798b3L1q8Rg0zKOBjk1hhhi6AZLTQJnTKYpCMRpyHNM6Fuco2NnZ7fgSJibdtpPhdPepw yLPFuhTc70IbCU6LwdDyMnvhdhYwAL0dQqFTSinSlx9rKod18YTMt3zRFUbPud0zMykWwd6J 2fks2UggobAFsPtkpctkWG7jfChpzCMBGV4vt/KZByK/kGXbNWwOF24REKWPkW+iApgi8exG xX5PZCX6QaINhJ+JYVVcDLr2Scq5EjN5JGqy3gXBGIwUINqK6h3iL9wntEb+EG0pUpVajVuL jIyJN5ffvFibCBI4rYGhcjcbRKaSOFsC6EY4lbKwTG4VRNcgLNfkuLINm0eqmOjEwyIwOQKC KHIAQjmCo9qN6Riw15q42GmpG5EFDUn8wa2OEqGoz0pv3AcxqWYr8EXrZzUMVZQAZWgQ6ECg 0qJTAQHRH6avYPzDbMvEQHb4JIjDRfBkQoRkJVuYyh9wQ+QvBgahE7I+S06QFRXDFjdggXpY CJCefEZu6333hiLrOEHxUSXcYMeYmh4LDUbrIOCtefyeXVxZMGe/m3pbi2nMQAmZvraqAAkw NSgUgAagAYR68BeKJdq54A1ggmAOoJPgkqD3119zbcxMQUTGVGE1AGUUC7KK6fXTalF+tGKK LEvPukuPjSi1rthkCIDbcXmKMG4U+ESkcHqSt8ZhrkVdRRtrczAkzrTnB1a+9QBggyQb2d7H uaoiPhh42eSE1OnusVk+b/Eqim89Bt4cnyjkwoiL9QqHMmV12/rmbyihzgWocPcsMoyWDQdR zdLWN22MTm5UCOlcqOZkQii4mq/tqsL+vEz+tpXs30egnw3n2wk14e9lyrKJFqQEh3fZ7L17 BBZUs5L89KGwF2amuFlckQs4vad/kAYsWcWgCB+Tye/s4+Sah2i9UgBA60IyMWzIg89HIFkH nizkOmEkYWAqwNUE3HP0efSgc1l2csGHGiTlLh2iNznxqeTAvtzXZ8tObYtRoyliIddHW5Uz dvD1uqs2OvmZq05AYVBH7EL/T/v253fgILz5t9mY6k+dit7FCYM1JYhq2pjB0Vz7PDu7/Dw8 OvDh2eEbUHWM9rzU/BDoux4SBUIIiwBFngfSME8d2n4cNjJRceAvO2225S8p7BpHQZj9baH8 S8UQYSIYSIF/ZXbwBMDpTyV5JVsOsXzwEXLfgUwBipLsDVQiTDKtusnWZdiQdn5m4oxmPUuW W0OIs+ZtVzGASnkcYF0jEW/s2bNkTz0F3wuYsMagMlIAhkDIIRgTK4GuwnrBnQgXMWA6qHwZ /ux/KSwWLIYlgwlqkQUcNIg0p2e5WPPNl2IKGYL6wrIBUIpyHCH6PtrW5uMOotUcdVB/DC83 ZZH2BgomNHRutwDkDqrCQSxusSKWUdsOdiPNpjmDbmVAQKfcUmQzlm08fJq4+SfS6vk5JFe7 GktiMMEYUAb5i+3HWw6wtbMQmJw0YYbYZcoszdhcxDbT8hT0/Upwz1L1ghqFoMowLxJNtFIa /zW4cSoWZcemdhjHq+UbbbA151C+z3GKFCe0uKu6gTix8BtjbLsIYDEoROaqtf0Lyaz4YHOM 7mcLei/R8QBpMzXtwTiiyUgMCrGb0ohJsBB5Iwr0hukr39/oWz/AKo/Frs0SA2BAAJKlVitz QHmCQUiB9MaiIgKtevXruW3nWappwD1D6PYN4xFczp6OfKGRy+z4cwZHAlrSUEsY6OyJ5RSK vWVsHBucRYxXGd2Jq7lHIEH8WJRe3ydwXFwNmJtzXV5cQwsRCgzqZRLEIbhqAdCiwVYCegDE RAgMHxa9WvNr17mOTh1LvTCy0YBQLaogc6+RH9jHPZsnZu6ZhbIJ2wni8SzlBglyagVQkK2Q YQ1hTkNm9mZ0GZjTogG86OMIoRv0DUBMR57aToavvtS1azfY14Xzm5Vgd4RIaqAgyU3ezFt2 CaISmISDNItfWCiKILOzZipCMWPjXM74iptiDwKstExMToFBrhFmRVEnUg97HLmMWz2tW220 W2rbbacbe3zdO2u3OHXqydt5Xsu21WaMiwyCjFmlcjbSwQ8Cli60SF8SVKy00cNQ0j0a6zs4 7PAqvHjTlxKxiR3xeh48Ch1fTPQvREDnrKm5ZeN56HM0PHa87JCyCxRKBYdkNSw5vTJHDcwm pZDM34hcFCaoqiwjYxIJY6iwYiR5++lJ46U/Z2+p+Q/+OZX3DIkKNcqP5zZ0o1H6maAG0mTe 9sLacYs+U4fE8aGrqNOwpgaFyUmORGHQrlXGhs6VibGgzuvQTZmhgK3bC0g7STUERqvwGwxg ETSdpzrlklCQZGJqxWyijseKNxsvME5D9BIBG9Zo/qb6fWMGXEDjrXT/d7LS/4yEGAYjZ5WM hIic7b0elU03fYi4o7weWB6MSpGeCgLw/3wI8rSD5z3d+h2G1UC4HJKDpODOhxb1Ijr2YmW2 m9vyxrXFRbRF24o09m2GFyly+9BUM447vQpMpMP6ubzc2aVMzRD7IUYMhfEw7RkhuOIZUiUS 5umKchBgfICim3aexheG6KosfzQQkZfVyzqQ2kq19WwUjMD5bu8331ep42Ke+aOZuEW1+I8S QmMJsnPnSbxgvMDSokOu0zpnj5eqAdSERTxsPteFB1gjFgjFZIkSPEHQ2HgjxU4yphoUDbiE 2nmH8DwyQocLSQVGCDFFFUBYoKRnvB4C9HL3AC5gX1Ai6C9DZVohdInQZVg+IjqYdBtJzEW3 D9eEYIof1GB/RU4jOJ+ImHU0BDG0RJEUPBx+v4PD4fX+9xcnN0a9Xn8m5bG44UOyREXiJCcg oh+kgUMq4aUptk9r6v6cgsrrp9XLnxJWQe8D3g1Po7FkCpsGZg+O/epobGsWRPwxPs90Kozc AOwkMTqCjCW0Hu8F8ZDuff7s3MMAFHnPQQERFXHjqhV0VV6C5iMZaXTC6Xwu0EgpO/bASeJJ hM8vQcPOgUBiQ7lOf4OWobKptQbYE5gMw8vX39/h4dfdw5OOXSDBooxLuaOTgRVj3+YIFEr5 gwoC38gB8wtTQtJ9lYik9iAc2zXO9U/ISzSrl7HMzD0tKn3Ru2kzmMHIghZzFXXVKlKwrRis K6jYFDD7gpj2nGfmOUvQjBlDHNtmtNqUpXhGhUDJS0QjJpgiQoHdPd7Ozs7HYvDLfQ2uFTMg fhaLE9FAwjoLb4j0hp5vNe+eOlVU+McMGePLZTBJiYyiYA1cSnQ7pgOyfJvjkNCMF2pmEUB5 GZMsUUWKKKcGJlNzgbGnJmixscdTWmZPyrsYZZaSyO1yZdrO8bXXk8EnaEKfJDmIr873Gt+j OpNsbVs7+302bHXvUMqWQ6ocmBmg1BuTNN4kClUUoc9oJKiD+k/KorW4+5gQqq4kR+diFnei +/K9NkhppekFr+rMxrStM/gYjExULi4qxEAKbNkaUm0EKEiDMPEEDH/E6LS/40lv44ogVYhi 2E9jlf2CWlUgTYCp6QWNOcTHH1CNAa/a1SqDUNA2JRDgEM+xwUnXjNeo+uXPd8QJ8AwCWT80 JcDU67Oa9tPxhOKQYBmwOvXhsBKVnfvA/D0eHih6nDj4pUttsYsy0iyMrRrbYVIJ6BpglEqp QUWB9pLN4dXFZvMVFDTXOUnkBCS9oBTuHh7pEiE+5VnzSyyDQSkrfEeZiDKOW5LNYLi0syKB 7B81XqXafv36ejwIbS/XJqMQ5akP8Wakwei7WiE0I16+ZJFixVDGKwgjIIEj0zNpmKcdLEFt ZcxLWx9BQP3GXCqeemTa8kiE97vDwrOFuoLUhJvWWmOBEAeqCWSaBn0HS7zyz2SHggcNCrSo 6NEU740mWLB3DdoCcMqkmAuQFW1R3Y/J81HYXObjabV5Lsnk5fKcjwHi8VBRiIrIsgsVUcgx 6D9/2Yi4Zz/EYnSzmGDbBtZApNa5H7d3mz59e7BG2P57ANoGIYjirAumS42F367pxoDoQJNl OdCI0SKgc2yUtVkix695pz99UtRDB68KtbIRAG5XwHMHgvscZgZtAcBhpx7fZ2oPrQbjC49v usmPr80xNK9x9rI3ZxyyZ1XUfAkt7cza4opGQgaNXkQKhGMKHF2ANSkhSKiiIjPjsKAIxMLK IAjEGmDAxLUVunb3dRr3f5qthDVmZCMQNrB5HlOTGceCqqquTPpDQO0pLp6uorPDqxOIzWCA Iu5UTYSFnDvUwOCcMIGXUTJgPf3kqXcvusF4FM5YW6g4lTjx5BbjkixgPp6+cgloAz2mFRYn slC6dvLfDqxWDKMIeK6qDLhovkk6LBrvhVvi30iuIGDCQCqhKAdoSmQTYbVedwayl3ajhx4L XkZlQzqZOlNBeshDSS/CtrO3BPJZsFaPTLSlsS2Boy1xmsW6prltFGNsWbMS7lsK817xEhyX HUP9rtyl5Ug17NuC+rIvZwYl09FD14rSWQ5HDjTvNZjgynMPtpQTaGmE2mWMmIkYESCFAXHh wDDhQ69o2PAktAqEBkkclIEsgHT0HeenBgsEjKMZOECeHl/sHy15zLpGdLsqmry69GQ+Y7js Q2kEjOa7hhhM3ueHDgKqCA7WUFE2KBiReJEKHq57vvyQHP8rOlIYGukH2n1Tl8lc7p5opUM4 W0nduZTEJlJMwhUb8i3F/d8XmC0j86cQBxiQfIlWbm2hNimiaNGCaNE1hrWoHSZzqPIRjz7P Ceib963YTgvIHIzceqodW3cfqdG2OzhuEkYVaknbBn+KfPNRGXw1Ke7v3melAp4DbmJ6d6lq 0WHKc/dN6/e3s1UzwBmWpq9rGmUQr2pWygdNaBoUm1FVXMVQkThKGxNJlbEFBdtZqGtJcmXa ajHbY1ss2ByIih/7NvO4F4U3L07bOtzfiw4DbCvEtCVAqMiD71KBwIGgQw4KurDUSJQU0ZA0 TUIbmTOKgCTXeOsQ8MSwRzfuqFgTjQ70190TQuJKMywLSyHrasDq2DBQGkW+lEJIkGRHH0wD XqtWxQwRlznCWEmeeIqyBOR0FiPLrGpUy60ArJY4yMs6ICBfcb1s0L2kaFOeWXYajFCLTLDC ScwLmYLDpQ0kMZAqQUfa0YTGERYAsBB2QKSlhA2HXc2DLQKyF2sNU6NjcAZDZJICIHpc3WWc T3DKusYCuIY2r0MCdfA3eJyDPcjpbZIgPzRPHFKeQSGMh4E62VDTs4wYMtfe512CzEtRZH6V mXC2DO0DD2L0oVjq/Xfq3cBl5sZWDwskCPb1l09Paie+waWaSRRqSAVhZIJLIWUoQFeOGQk2 nMnhiZz2k0mWjYz9YEfBwng9VTcbsQN44tChcl9wHOi8Oh3YFX0IZSsPCGnOUs7+2xjIENzf SJQVmUcuH2dMLGNcoKpMEwwiS7ncR+/nVhC2s9PrVnHADkdAnXSFjhwRQJzibjhEFQwz2m5E VnX0jlcb/m/1X1WTOUNhSB+OuW8DamQ82WLpatr2ateflS7wnE3FQxOlLsaEPCCw0GOhfOOI tQcAg87C/lQopfdq4RlIbtnJiAfGqYHJIFIYFLyDJIz2xBehQkhEm92/JV33O4w2ICFEZM5e j4Mwnntg61eE2v4vvd1+d4ra+SINhhzRYpU3kEK5ugc/uxxu72QpPMvOa2am3fMnZKlg2DPN U1AulAsnii8g+OAtYHjDGsDazA24RFWVHuLz9wc2Bokg7L8yFcVaDRD7mkET9KBzqWjDUKVR pDOjpH4e4ChUauNaIZPFl3Jec9vTndMtmFy6LLURpGOo39zNivpJ47Cdqa9AneGTgdTTsgMO kKQtorGhb4LMiKoOKazBQRXKx9dKmHkGZiCIERECIPYgA0Dym7Ooq88P9E264LwwKE5ew7mu yznIc4TpBmgrYiKJsymJDQt368gQcJ5tMJ3LIckm2rSshAeg9HkDlXLfCZhjrHEUSoMOfrmc 1YFClgcXBs+LMFOGCWFhSttiMLbaD7gmuRzICyciJBQlysOSDlS8Y7HgEuDfdSasbr9mGsuz REI6LiOqodQvSQGoLK67h+mqlUSAgYiAMlAXI23pdKQ0uZEZzzkl9x2XiCyoYhkGRB2DSwSE wDMJo0iJKKAIxEwzYPETIzSV1GFS01kpywUazmHy2eU9n04yYEU8mBHHGwZRHB8Mon9pjjKM rK1k3WQSNwuj1Q6yVRE7rWlGmqPF6PVXJlEGCDKQWSw8kZ4FLsaG+uwLDMnY5GIwQgwyJhgi 2oYK5GBYXZfGVKlWoSgoVxYjWmyxmksKLqmscE/vXicFbtEVdhibGxgRF5Ss0lm/f7R0MDvx +PyUuhj6HCrriGnW4iUgILPeuM0QaNkbFPJZTaWAMO50F8AxrI5QpVqUDtEteacBrO3WlvuR CaG0FcefOrB0Ji6s2DOncJyIYygRzVigBncYFiBy7ohtmALWfSQDZewIcA/WYxoYPQ9uG7tV td+CDXdGpIGaxFczPKu1rJJBkXYu9gFzqpgQ4xC1oUNVpjSlEFGmgsonpqg8THalB3SeVDWj zl+lnvmUzdzAD4gArAGvds4/IavEW3bc75qaH3nyUpXhCgu11JLaEdjgauvcAvVyXbApfejQ YVIgNaSRX5exttuiMjqT6F0A957SwMgMuYe84gi9xdPerRgsAueNVwuMrYwSSqyQTilJKkCB EOK2oUiQ8iEYZYDvkcU7XaSzdk8JxnNNCvYs+u6hRK9xljNdIMC03Y1L5TUKJOgkHI6T3RhF 01QE8IgChEITMgvKtTYiMY4u6MbrVsxLLPVnlM1eEuFWCBNYAFbZFKhooVcvFyDSSeQaEhAs HAF8SJLSE0jQZii7WpE6uL08gejcmgzkoqLOBvkqnLW5xey04pKFhbzkzZVVVw10WR5hITGl IIaAqwJcizuUj0FAbqnbTaFkjsDzEAL3AmJpiSC7SMb5QDYXhRLMoBMQNOQm1hLrMgAuzvrn OBsMFIDYzx2CsFzNm6ZQXO5sdmgxtFbYJE1IHCbfWLw9O61hsl6nQiI8d9FOC4hvGapnBHSN kiBqnneRy71a+YyE6jBrcZznqUwmRgrDMJe04vPsPYXzRJFCQBCAMFQu37zLTWsmGltSEEMG 8QH5egEEnTZLt8g69xfuE3ppr1zLda+9axKBSsZRwv0b4RQUiyrzggu4nIrxJGoTXRpi/OAu ovw0wxhL8nxphsedIGCGASyEJDU8P3D0GQqonc7mg5h3aHEBQ+Q+BiVP7etdlAhth0pdBjt+ zaXACKo74xwqBx3o4ylIJiYgWwFiZMoV8p4TKRCi5X6vIeg2G8VaXBHRHEbKYbwbwa0HE2ng lWEZv/ysimw/OXne02sOfUYdex7ua50gbcDjaxEfxb+llMd9lfkR+MfWfDrfwQa92a3PviG2 wO8SclEKn8jBBsnD0z3m/QZPF59MiJ2loIMgBbU0sGHaB3iDCQyb8d+hm6qX1AidV4NpuoLQ okCFpHZCQDQMSCimIRl4vo+iFkZdvZBrR80bQ28p8oatg8ndJu0SpQmuX8kHc2HP/Qcl5X6H FI9raY/hBDQ4yiUwySRpoHQLWu1iyZFsJAw1dEDJIGJJvQlnAQN3QPlHZio7qzZoRCk9Atqi vVAKxVOFk+ZijnCIeYBq9cQVMOkfK+mij9enFUxxJuh5edm8Axit5Dri5mCjbShHZYKPMSeN ZAlfnOrWz8l6AY6nQ7kMshBtge6CGSk9ewnS6ODqOIj57h9EGAjogqL+weHHuyMi4HVKA5v3 IQhZjASlgzmtjI6woCqRo2MKDE+HeOgSvAhCbRPw2npoadnbItIA1cpQ1svOXdUuN9944uj4 s6yc8vsRHhOKW6mcWPfVlbhy2L1dwzY79cUxUhp0RmStTwO0pVVa3j28OylK9sI2UtwLyA3W xtRqC5WpodsGTLO1RGAxFEGDZugABnQmhjIHndIVKJxygmClgHvEOvk3mvfRxMSRoIB4nzTt 6UPZAD1jvEUBAREX1lF9wLRbRstBkQSlRWSoBb5D+y6e/TaQZEUSIIMFZGCKCCiRFBZFYiLE QVUEVQ/BQWjaViMgtoVUUValrUFBIx1JUQPYRoifPJIxAKmRdAjEMpWqEIoSfeaRQMDW3Lar NbRVirOWj7GfM/m7x2vH+j6v5Pg+D2Ph/XCEIQhCEP08vk+p03ve973ve97xa2gZOdhe5nZz LCzaUpOlrTrQSDq3jGNXRq+4ixbvS95zvvIm0pK06zWUq0le98mTre8aXlKtaOrWVBS1LLe7 5QgxrK1Y2aigve5wvNkL1vebriV5vnOlVSqg6RtSlYUx98z8HpNGnq0xa+tFVV001xSvuTnO c5znOm7rt40+fpjPVfG3nDfm39FM+fFvdqzOXsS5g7TsO0Ej/+LuSKcKEgpORksg --0OAP2g/MAC+5xKAE--