From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jonas Bernoulli Newsgroups: gmane.emacs.devel Subject: Re: size hints and tiling window managers Date: Sun, 09 Dec 2012 20:23:30 +0100 Message-ID: <87boe3t4gd.fsf@bernoul.li> References: <87zk1r104d.fsf@bernoul.li>, <50C1C678.5040805@gmx.at>, , <838v98nci1.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1355081026 8844 80.91.229.3 (9 Dec 2012 19:23:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 9 Dec 2012 19:23:46 +0000 (UTC) Cc: rudalics@gmx.at, James Cloos , emacs-devel@gnu.org To: "Eli Zaretskii" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 09 20:23:57 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ThmTk-0003Q5-S5 for ged-emacs-devel@m.gmane.org; Sun, 09 Dec 2012 20:23:57 +0100 Original-Received: from localhost ([::1]:43773 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ThmTY-00086s-F7 for ged-emacs-devel@m.gmane.org; Sun, 09 Dec 2012 14:23:44 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:45196) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ThmTS-00086M-4b for emacs-devel@gnu.org; Sun, 09 Dec 2012 14:23:41 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ThmTP-00085n-2N for emacs-devel@gnu.org; Sun, 09 Dec 2012 14:23:38 -0500 Original-Received: from mail-ee0-f41.google.com ([74.125.83.41]:56777) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ThmTO-00085Z-L5; Sun, 09 Dec 2012 14:23:34 -0500 Original-Received: by mail-ee0-f41.google.com with SMTP id d41so1302223eek.0 for ; Sun, 09 Dec 2012 11:23:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:user-agent:in-reply-to:date :message-id:mime-version:content-type; bh=1gKCIMMaUSlVDXnIGp9LWtteYqTVIllpazoPXePws70=; b=XON++3Z+mj6TRAPETvMVUmHC5gHfFmvW8ibqdVGUIi5Uwx8GBr1mbiKFkn0y1zHYay sXXojFGBFYO2Yz6Ox/Bis03UT+AHzKkmP8ZTbURgAq6zwdXrdaAAuPXTq83laB09plzP b+3rexAz8gxU8FTwKNZODova7yRlLGIQAk8C2zCGFBt4u2nFABaNUqmKbUz3Ia7BsD7Y 42zQr/G0Pjk+H/IaAZ+67CmwEZzq8uRQJ04uL/052zXlerC4QYmAAt/dCoh+XLVgaAjK RIgvBe8b81DG4GkqWcExGaWGqkPH9DYRgs6R/pfU/sOFpfBFLnWrrvDjiyCeZSmi7kiF z29g== Original-Received: by 10.14.219.3 with SMTP id l3mr41145213eep.5.1355081013209; Sun, 09 Dec 2012 11:23:33 -0800 (PST) Original-Received: from lem (178-83-201-90.dynamic.hispeed.ch. [178.83.201.90]) by mx.google.com with ESMTPS id r1sm38654261eeo.2.2012.12.09.11.23.31 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 09 Dec 2012 11:23:31 -0800 (PST) User-agent: mu4e 0.9.9.5-dev4; emacs 24.3.50.1 In-reply-to: <838v98nci1.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 74.125.83.41 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:155403 Archived-At: --=-=-= Content-Type: text/plain Eli Zaretskii writes: > I'd prefer we fix this particular problem: > >> Emacs does the same thing: it paints the extra space using the >> background color of the default face. The problem is that Emacs frames >> may also have fringes which usually don't have the same background >> color. As a result Emacs draws a "line" with the same color as *the* >> background color to the right of the right fringe (and below the echo >> area). > > Can you show a screenshot of this? --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=ignored-size-hints.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAQ0AAAFRCAYAAABuXviEAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AwJEQIrkr6G+gAAIABJREFUeNrsnXd4VFX6xz/3Tp/0 3qkJoQcE6b1aQFBEEevPsrq6dteyrmvXte3a69pWRVZQQVFE6UUR6YSaQnpPZiaZTJ87vz9SINSZ mEDA83keHs3MmXPPee893/Oe997zXgnwIRAIBH4iCxMIBAIhGgKBQIiGQCAQoiEQCIRoCAQCIRoC gUAgREMgELQWtXhKQyAQBCYaC4QRBAKBWJ4IBAIhGgKBQIiGQCAQoiEQnI30LO5Jn8I+whBCNAQd mURTItetvo4BeQNOe1t6lPQg0ZR4ytqs9qrpXNUZvUvf4c6LWlyaZzdqRc3sX2YT5AhCQsKms1ER WsHmbpsxBZs6dNuD7cFoPVrC68PPGHu3VZsj6iOYun0qXw/5GofWIURDcOqQfBIh9hC2dt1KXmwe RoeRgXkDmbZ1GguHLcSutXfYth9IPIAp2IQpyHTG2PtMbLMQDcExseqtVIVUQQiYQkxcsf4KkmqS yI7Pbijgg75FfelT2IdgRzC1hloyO2WyN2nvUXWN2j+K1JJUVvZfSUFUQcBtUSkqhmYPpUt5F4xu Ix6VB7PRzJJBS/DIHrRuLdetua65/MHYg/zU/6ej6jk351wGHhx41OdLBy6lMKow4H6djARTAlev vRqdR4fZaGZT2qbm/gfS5i4VXQhyBCEjUxNUw2+pv1EcWdxc5uq1V2NwGQC4eNPFzZ/vS9zH2t5r /bKhv+jcOqZvnk6wMxi1V02tsZYt3baQE5dz3DYL0fgD4lK5Gi50r/bQhZF7Ln0K+/Bb99+oCqki wZTAqL2jcKqd5Mbltvh9SmUKWq+WxJrEVonGoIODSCtNY33P9dQaatF4NYTXhzdf7G6Nmy+GfwHA +N3jj1vPrk67yIrPah5EU3dOxS27KQ8vb1W/ToZNZ2Nz980okkLfwr5M2jGJeaPn4dA4/G5zQk0C HpWHFf1XgA/6F/Rn6o6pzB8xH5vOBsDiwYuJskYxeedkfur/U7PX4tK4/Lah39eCxsX2btux6qzg g/TSdCbsmoDJaKImpOaYbRai8QfD6DRybs65eFQe8qPym2ebjLwM1vZey4GEAwCUh5cTWxtLz5Ke Rw2uVX1WkVKdQmanzNa1wWHEoXFQHFHcvF4viShp/t6HD3OQGQCP6viDwKFx4NA0/H7MnjFo3BqW DF3SLIqB9utkWIwW8mLyAKgJrmHu+rmkVKWQlZDld5ubvL4mT6g6pJqr1l1FkimpWQBrjbXoPLrm sk31BmJDf/HhIzsuu/nvivAKUstSSTQnNovGkW0WovEHYdS+UYzaNwrZJ2PVW/l+4PfU6+sBiK6L RvbJjNk7htF7Rzf/RvbJ1BnqjqqrLKKMsoiyVrdla7etTN0xlbkb5nIw5iAHEg+0cM8DpUdpD3qW 9uT7Ad9Ta6ht/jzQfgW63PPKXoJcQb+rHpvOhlvtJsgedFpsqPVoGZIzhJTKFHQeHTatDcknofVo RUzjj87WblvJjculd1FvupV1axGok5CaPYjq4OoWv1Nkpc3bUmuoZeGwhaRUpZBWlsb5286nNKKU nzJ+avYSDp8JT0SoPZSR+0ayvfN2iqKKWnzX3v3yyl5kRT7m7B3obC8f8fTDyeoIxIYnYsrOKYTZ wvilxy+YjWZ0Hh3nbT9PBEIFYNPaMBvNbEzbSFJNEsOyhrGm9xoAqkKqUCSFWEtsiwDY8Yg3xZNS ncKuTrtafTvQh4+C6AIKogsI6xbG7F9mk16czq5Ou1quudWuZlf9GJUwLnMctcZaNnfffNTXgfar zWJGJ2qzn7jVbgD0bv3vtuEJz6U5nu2dt5Mbe2ip5pW8QjQEh82wksKvab9y3vbz2Ju8l4rQChwa Bzs77SQjPwONV0NhVCFe2UuoLZS82DysemuLOsbvHk+IIwSVT8XGtI0BtyEjLwOP2oMpyIRH5SHW HIvsk5sDgS0GfmgVAw8OJL0kHafGiazIzbGIniU9ibfEs7r3asJth56LqNfV41Q7A+5XW3GiNgey /HFoHAw8OLDBY1IanrlpqicQG56IipCGGEZVaBVWnRW1V43KpxKiIWhJQVQBZWFlDMkawpJBSwDY lLoJq95K7+LepJWm4ZW91BpqKYk8OrhWGFNIaklqqwJvACqfip4FPQlyBIHUMEA2pW06pjeQmZJJ VF0Uo/aNwqvysjdxb/PA6V7eHYBxe8a1+M36XuvZk7Qn4H61FSdqcyBLn5V9VzJi/wimbJ+CW+1u UU8gNjwRP2X8xPADwxm9dzQ6tw6P2oNVZ8VisBz3NxJfiDQ8AoHAf8TeE4FAIERDIBAI0RAIBB0E KeCbyoKOzZE5X2cLkwjaFvUdd94hrHCGsGPHjpOWWXPbmhZ/jx03loyMDGE8QduJxooVK4QVzhDy 8vIYPHhwQL/JyMhAnGNBWyJiGgKBQIiGQCAQotH+hjBGc87wHnQzSsIY4rwIToC6ravrdtUdfDIn suXHSg5/nfMhP9tAjhrMex/PpNMv87n82UxqFEAKYuoLD3BHwX+Y9WoBDmQ6XXo7n18Xc9QRKr56 k8s/KMEFSPo4pl57ITdO6UaCzoc5ZzfzP1jCvB1WvAG2XJc2keceTuCTm18j1+YVV0ZrB3l4Hx57 cRYT4rVI+KgvL2LjinW8u3AvRa7Ab9SJ83LWi4aXom8/5ur1OhKnzuW5C8y8+OASdtoclB6xGdI4 /AKu753NS5mO49/zdWfz/EM/kNn8Wx9uSzVuADmE8ff+iUfOKePzNz9kbYWejIsu5Jan/w/tnW/z fo5bnN3TgSaIlHgt+z/4iJezZJJ6Z3DlFXP5b8ZSrn9kA3kuYaKzRzRUoZx76QXcNqMPaaESrqoC ln62mNeWl2P3e4Lw4bJUk2uR8VS7wWujOK+MnCNz1ypO9h9QM+2WoSy8aw15x5tAPA6K84/xe0CT eA43DFfx20vzeXNVHQqw84CZ8Hf+zNwrurPw6X1Y/Gm3viuP/vcGphgb/rz5nce5ufGrgk9f4Zr5 lbgBObw7V1w9kvEZSXSNCUKvAry1rHz6df6xydYgfP7YsE3s3NFRsBQWsmuXk127sli7s55PXpjM XSN2cc/qWhRAHXcOTz59IaPidciArSSbbz5ezDsbTLgCOC9/DHt2RNGQdAy46SZenlzPgvc+5eUi H51GTuSuO/8PdcW/eXaHs22fAPO52LNgGeX3TOfW4Vt4cH2gtUuEpqXThTLm7bTSnE7FWcGq36zM GdmLTtp97HL6UZWziNfveoUv+lzAG3fG8M3jn7KoXGkQQHMNTYnb1NE9mD01FdO33/Pstkqq7WAI NWDLbvSU/LHhqbZzh8CH7cAmvi4cwZ8mphCyZjcWH3gthSz5eAELq6w41OEMuvgibn7wckpvfJeF 5Yp/5+UPac8OIhpydH9uvcDIumff4tVfbCjA9r3VBPW/mxvOT+HlHdnY2vjAXvM+3vlqNB9dM4LU TT8fu5ChL68seOrQ36593HvVp2y0yYTEB4GjjAqbr8XyqKbQCiERRGgAf0TD56a6pBJbjAMvHmpK KskrPp7rY2fvmi0s33f00scfGzpOg507BF4rueVeVHFRhMlg8YLPUcmGdZWNBYrYVxHCxCHnM7yT hoXlTr/Oi/xHtWdHEA1dUne6yjr6PPw31h01E4dhkMHW1lnffB7yv/+RNTMu44Zzd7DKn5iG4qDE 0TEN6Y8NfafDzh0J6dAdEHVUGlfeNJGLBsQTawSrxU0oMlat3KY2P6vteTpFQwIkaln89Cd8cYSa +5y1mNvJ8L66HD76tpb3rxhIljuQmIZCXbkN9GHEGiUOCxgQmRIMdcWYPKd4PPhhQ91psvNpRxVM 11gVSlU1FgVQR3PZP67lT+F7eOvVZfxW5kSb0J+/PzSqzW0uaCfRcJYeJJ++DOjq4+VfKjh1AW4P +UtXsOXiS7lYJ4PfyY181GbtI5/xTO4fzNLGQCi6WMYPDsa5bx8FzgAFzO3ChYZQQ+ueB/DHhqfP zqcXfffBXNzJy7aF+dT5AG00Q7pC7kfLmP9zNR5AqorBFOB5+aPas0OIhrdyJ2//MJaX597Iy+Gr WLy5Agt64pP1HPhhM3ts/oaTJLRhkSRH6EiM0oDKSFKXeLrbHJQWmo/pKirmA3y8wsY700MxB9Bw d/E2Ptg4msdvm8OfpVWsrdCScdE05sRU8vHT2f7dOTkMV3kB+cogpl01mgPfFWHVhxNv3883m2vx x2nxx4ZtZ+eOjkxYSjJ9rBJxPXoz5+ohRO/9gfvXN4q728TOYrjhwvHMLN7Cnmo36tgEwoCaQM7L H8aeHVA0UOz89tZb3FV2HjdNm8w/LlADbmpydvLvNVsCML6K5OnXHvZwVzj3vfCXFg93HWO4su+b deyffiFxgbRcqWXFi++hu2E6N/zlOuZqfVjy9/KfR77lv9mBP6OhVO/g+de78I/rJvDoYAmcJjbO K2DJ5lo/K/DDhm1m5w6M20ZRuZsJ1/8f7wK2ikI2LvqcpxbsoaDJFXBX8OlTXxByywRu+NsAQlWA 14W5LJ+fTV7/z8sfwZ4dMTTVp08fYdkzBH92uR65Nf6O9XeIXa6CNvYjBQKBQIiGQCBot5hGXl6e sMIZQqAJeKAh25c4x4I2FY3WXIiC9mHNv1898ffA2LvvaNM6AXwD+5+0zLhx48QJEjSIhjDBmcWg mhpmFRfTz2JB4/ORHRzM+126sC0i4nfVeyJRWL16tTC8oBkR0zjDeGnXLkbU1BDi9aJXFPrW1vL8 rl2k1dUJ4wiEaAiOMetHR3PjOecwafRo5gwZwtroaDQ+H3MKC4VxBEI0BEfzWJ8+ZIeE4JFlygwG XkxLA6Bvba0wjuCUIGIaZ5LCe71cVljI5PJyku12DMqh5/IjXB1j54Wki2Ds7ElcOTqJWJ2PuqIc vpm3ki/32JpTMPpTxp/5LqJXBnOn92dkzwiCJBeVB3P55vPVLMlyNOdYkYMTmH7leC4ZEku4SsGc l82ieatYfMCO3/vZVEH0nTCMyyam0S9ej4ybqtyD/PDlGr7eXd+8zUDbZSxvPzaQqBY/rue7Jz7k 3VzP2XMdiqF45vDCy//i1txc0urrWwgGgNbXAR7slQ0Muu4y7p6URKy6nuIKNyHJqVx5/8VckqTy v4w/h4royX33jWVK7wgMtjpMbi0x3XpywwMXMj6y8bJWhXH+nbO5fngs4S4LBRVuwrv04LoHZzA9 XhWAEmpJG9mXjGgfVaXVlFg1RHfrwVX3XsikaPmw7hsxAFgr2LW7gB27C9ixM4+8+rProWvhaZxB XPvtNwA8k57Oz1FR1KvVBHk8LPn5544xA0WkcflwA7gKeP1vi/ipWkOvy+fyz/NiuOi8eL55vxi3 H2WaNijLxmSuvGcal3Z1s/HTL3lxlZmmXUWKaT+vvxdM/6pdLM+2oxhS+PM/ZzE1LJnx3bSsqHGg ie/FtDQZ7Fk8+dfv2Vyvoc9V1/DMxHhmTIpm6aflzTtjT3QsPCYWP/smS1xu3D7A2IUH/zWT4fpw uoaroKpBwNUGI3qg+ucVPDGv/KzddSs8jTMIqdGbqFercahUxDkc3HfgQIdpnz6xC50B556dlIy+ gi9emUzcjr0UA6GpiUSr/SvThCa5F1NT9aAKYdj4zkS0uFq9lG7cxLJse/OSRpYAHJRbGj6RNDr0 AF43Lq8PfC5ytzUM5qhu0QTJ/h4LFKeXkEETeexvc3jj+ZkM10P5xnV8neduHkrB0QZkQA6NZ0Dv WOIMZ+fwEp7GGcTSkaO48oelPL17d/Nn66KiOoqkoQszogMqS2xoo0LQhfoIcWRh9kFSUCghKgnb SctAU5DAVZjJkv1dubSLm19X5GE6XhBCG8GkGy9gcii49v7MgtyGgewqy2aTeSDnhffmyedi2Vfu wRgXjxZArW5x8ftzLENcEgN7HHo9hzHESJBaAo8PkAmNNTTEl4aN5+FhDQK257ulPPdl/lmVEEiI xhnE7Q88RMzWLQytqUH2+VgXHc2raWn8sH59B2uph90f/Zebv/ZS4UhheOOnvgDL+OylzH/2Xeaf MIwSzyV3zeLqdA3evM088UYmZU2uh6OED15YhnLNcCamR9Mz1E1Ttki3qbZFfpeTH0uh+Lv/MnOZ luiu6Vz154mM6zOau6Yc5J5vanDjIWfBJ1z7nY7QqEh6ZPRn7vSu9L5wGrflfMCzWwMIvArRELQV prAwnunV66jPx40d2wFa58NpseEEwpKC0HgqKKsGTWIU4RJgtWD1+FMmAN9GF8ul983myu4qrDvX 8Pc3t3PQ4WvZpuK9vPPsXt4BVFF9eey5SfRX+8jaXIG9Nb30uKjM2sOX6wYxbkY4yelhaKjBDXid DsxOB2aThYLsEqoTbuSxwRrSB4Sj2WrHeZZchyKmIWgzHCUHKQC0vc9hZIwMkpbUcX1JAmqzS6ny +lemWRQM8cx54CYWvH0t944OQ9PiaBrSZ03jyu4q3FlrefD1bUcIxuHqoiGu90DufmgS/dVAzU4+ 3WxrMfOf8FiyjvhYPc33W9Qh9OsdCoClvDGmIqsJ1h2WklBjJDmyYU521rk5m9KVCk9D0GYopmz+ t3Ekfx+Wwm3P3cgsk4b4KA1QyTfLyhpmWn/KNIUqUvoxrVcQWoIYM7kLn2zYQUXT6NPFM210w8D1 BXXjpju7HFr4VB/gvf9mUupR0+3iS/j7eYlE6Rq/rM3hnZfWs+eINymd6FiqiJ488Px4OtVZKDG5 0EbFEB8E+CpYsqISJ6BJGspLTw7CUGGixgEhcVFE6wBvCd+sM+EWoiEQHEs17Gz+cAGv2icyd1Qi 8VE+rEXZfPP5Sr5qyhbuT5lGXEV7WJabyqVd3GxaXdAiOCnpgmmMO6JNTCYj8fB1XDXzGn1odVAI EWoXlXklbN+cyeLlORQewyM54bFkJ3szKwnpHk2nTlLDqzT2ZrHkyw0sbWyzLLs4mFdPRqcousqA u56D2/axaOGvrC07u95BK40dO1ak++sg+LON/WRb449M90fqjpOv0wf2P+kuV7E1XiBiGgKBQIiG QCAQMQ3BKUIk2hEI0RAA8NCC+Sct8zc/yowYMUIYUyBE44/CqlWrhBEEbYaIaQgEAiEaAoEAkHV0 6teLadPOYUB42w11IRoCwdmKJo4r7rqIv1x5LhkhkhANQdsihcbSfWp34sIOv7hUhA5LJ31ICP7m uZKCwkgc0ZnOIzuTmKyhoTYJXdfOpA6NQNviipPQdu1C+pRkgjpCdE0yMu6xB/jh87t4oLfmFBxQ Tefz5rD48wf44cOZDNCL5YngD7jaNXSNQldWSuFOG7puUehVIAVFENcFajLNuJQGsdBEGdGpwWvz 4HO68fokNGFG9NrTIRY6ek8bxYXpWqryrUAt2XVG+o4fyuQAUhAGaquo4Rfw/LWd0Z1hZ1ncPRG0 YpBpCO3fifhYL6bNhVSaDu2tUBllvFVeFLcbRaNHpdIS3jcSKb8AU1OuTJWOyH4phOs82Co8KEhE DU0jOETCnplDQfGpTcIrB3fhystHMkg9nPJCFyg6Jj10CzdFQM3yQta+X0bYqPN4+LIepMXokN1m Mve7SOkdS5irimVvf8Grv9bhNabx/PuX0J8K3r7zYxZVaBj68J083lei4PP3uPWbmkNJiJPP5ZHb ehHmdIJOdwwdi2TMpRO5akI3Uozgqill3fcreGdpMbUBb5kN59In7uEKvYyrupAf5i3lvZ8PbaI7 +bEkIodeyLM39CAlRCM8DUFrRpmGoCg1kqwjOELF4Qsad72COlKHJliP2u1GSowjSmWmLM91KMGO 10H5uhzyNlfiNOhR6fVIZaUUbsihsOTUZ+32uctZ8O5KPlmyF2ucHuRQIst28MWCVXz0qxUFieDk TqTH6KgrrMKqCadv32hsBSbc+mimXjWIzgGsZiRDEtfdO46eSj5vv76D0qPsG8KE26/hoWndSPFU sjerEntkAhOvmss/JoW3aqbXKFZKqj1oo1K46PaZzEhQBXAsH456Beot5GQVCdEQtAKvnapdldTk llNa4D4s25aCM6cKW3giXfrpsRV6CO+qwpxZg/PI2VFRUEVFEK63UnnQjbFLKFrFy1FJ1VUqZLXc /E+S2kE0HGZ2bMrDmpJKd62V7Tkuwnp1I6Z8P6syaw/b1l7Hyrf/x0s7FaCceS8u4P0CICySCL+D Pjp6X3YRl8R72PLB9/xQfvQOWG2XIVw/SAeWTJ58YiHPvLKQ+9/IwoZM30npxKkOxYRkWUZ12D/5 mCPazOePvcv1d33IRyUAsYztHYQcwLFsmd9z890fcM+zX4nliaBVwwx3ZQ2VlccagLWU/VxLmaQm dGAXosqroUcX0sLAnldKaU5D0hpJYyAkXovzYCmmQjXahCRCYzVYDvdIkDH2705KbJNSuKhcl0eN ra03ZkvoU3oxta8OJWstb34UwuNPD2P4uDTif91MYQvnx4vN6gZUGNUuauyAWntEgPf4aDsP5e7z QvHlruCNdbV4E4+OdUSkdmp4d0pYXx55se8RK40IwtRQ7AU5agCvvT6F7od9bV03j6veLGxOa9gC j5WsEjckagiO0qPC6uex1CSPnsT912TQI1jENATNo90HSI3/GgelJNHaiV0dF0dMcB0VVSHEh5so +AXih8cSXJyPxQE+Vz3l63KQfQo+XJRvyMHnOcodwZlVSGFBYyt8Ci6nr11E0J69jjvvOkgvuYSC SjWPPZNF3Z4Sao6RCsOn+GiRzbTZ/fGhKICsQqc6dgix67h+JAN0m8gHn0489JU+nX9+eB2v/+UT tqga66vazsuf5mI5vA1OMwXu1vfT0xCJbvZIZD+OpYrL4IFbM0ijjg1fbhCiIWha17vxokIXLINF aY5d6A2gVHmOSAosoY6JICJcoe6gBYfniIGsDSG2pw7rznJckSkotQ7cDh92VzhajQRNSXB8SnMa vKMFo3Fet9qxWU+R91RVyM5GbyJ/V8lxyrnZ+cYrnPcGIBkY00LjnFTagOAweqfokEuVo45RX5TH 5l3BzbewJWMUA7qHAE5ytxdQ5lIwHSzDQgxh0Ukk1a/lp8wG70zWBxGq2LA2VqtUb+O2K7b9jj77 dyxdeAyxAKYsFny7Q4iGoGlWqcdihtie8UQpNdQ7ZAxJMYRrvViKnS1zXKoMxPSLIVQDwV4bebmH LSkkFcE9Y9FXlZFn8iAbvEhhaiSVgkblxeo+i3M+OStZu9PJ5BE6ht59Cx+X2THESy2WNkXLv+Pv yw8LUKaM4d3nh5PgyOPdV1ay3QFk/cx/M3txe98YZj98B9OrTZjkIOIjJDY88zpP7Wq71zA5/DiW u6KQg54MBkScwz//GSsCoYJmVwPz9iKqazRE9Euh85AkoqO8mHcXUlFzxIypuKmv8YDiwmryHuaF SKgiY4iLsFGx34biA29FFRZVFMmDY5BLq7A6z2YbOtjy4ULe/7USK1pi4sMI9jqpzD/IpnyH/8mF vWa+f/FDnv56PweqXeijIkiI0GArL6XMJ7ftoPXjWIppLy/8+xd+LXagjU8W6f46Eu2R7u+hbQ+J Xa6CNkV4GgKBQIiGQCBoP0Qg9A9Adna2MIJAiIbAP56dPQdmzzlhmZPFSQQCsTwRCARCNAQCgRAN wSm7CoykTryIORMTaPd0FnIYg666hfvndEF7tps1uAsTLp/JpBTNWdUvEdMQgBxMzwljGVe2n8Ur Stv5WDoSeqXRrWwVqrPerN2ZMGU4Fbt/YHnhqX0FtBw1gkeen0Wnxr/tm97i3neycQrREAgEx0Ix b+fNf+ShV0cy5rb/Y3h7LE9kQww9B/Yi2SD/rupCB8zlxfee4r4J0WeIIp2JbRYIToLXRmVxCYXF FVja2MlpHiOaLlO5/S9JfPfwSxTZlVZWJ6GLiSdCNiAlGM+QgMmpbLOELr4/02ZPYlS/REJVbmoL D7D+20Us3lLTomR2aMOZTq09dethTeo0HnzpBpLDVTgr9rFi/gIW7zA3p6hTRQ/hz/fNJCNGhww4 KrJYu/ALvtxyKI0dkoaYjAlccuG5ZHSLQAd468v57dN3eH+T5Rj7L1REnHs5f7+lD4WfvMzrqysb 6tJEMuiiWVwyvifxBsBjo7Ioh1UffsqyooajyaFpTL14LIN6dSIxKgidDCgWfnv9Rd7ZYWvYE6OJ YtCMWcwan06c3os5dxtLP1/MylxbQ1s0SVz29D0M3/UqD36SjxNQx0/ksaenUPHvR3k10wFyGAOv mMsl56QQH65DRqG+aDdLP1vAsgP1zX2SDUmMvWI2Fw1PIVR2UV1URxhQEfBl4ocNT9Yvv0/6yes5 0s5tPLF6qVzxFg8fCMVWXI7rzJDkU9Zmdfxo7nxsBmmVW1n80Q/k1WuJTU0n2SBx5Aag1FoN2aFu skPdp044ZDt7l87jq0oVXcZN56I7bsH3xEt8ld8gYEpdPuu++owVNXU4VOH0njqLS/58NZUPvsbK KgVQET3qWh67rhe2nav56r2DlNV50UWEQ179MS5mNTHDLueBG3pSNO913lzTKBiykb5X3cGto5xs XPgJ8/PtaJKGc92cXqSHq5tFQx3Rm4lj0qlbuYiPMiuxOHzogg048h0N9pSD6H/1Hdw6vJ4NX3zE vAoD6ZMv4oqHYlE98gbLyvxMLSjrSOqdSqJ1Nf/5+ABWTQwDps/g0juh9IH/st2qgBzG4Btv46p+ 1ayZ/xHbzQY6D5rARcmBngQ/bNhm/fKvniPtrEbXnZteupVhhoZ6Zj39HLMa6yxb9DyPfluOxw9V l/wJvPip2H7NMkGdmXjFxZx3bgrhasDroPrAKl57ZTn+xpzktmzzSQ8WxtCrLyTduoHnn/2a/U3Z p3YcPx/CqRYO94EVLF6+HzuwY7+Z8GdvZcLULnz/bhYOwOcsZ8em8sbSBeRXh3JuxkVkJGpZWeUA fRdmXNoLKXMeT7+2BfOJjCMZ6XLejdw6K5r8HpTTAAAgAElEQVSdH7zMh79UN3srckQGM0eFULTg DT74oRIvoK5JpnZOr2NUVM/Bjb+xKedouZcjBzJzZDD581/l45+q8QK7s8xE/PNmLrygM6s/yAko MOiuOsD2nfuxs5/91VEMeGQIQ1M0bN/rRBWVwQUDtOR+8gGfrjahAHuKQxg6dEpgJ8EPG7ZVvwKr 55Cd1bgKWfDk8yzvMYP7r4tl7asfsKZSAXy4LQ0V+aPqPtM23ng4F60mknG338CIViu2P7OMjtTL bmDOgGK+ef9tMqvcqIIjSAyzYPYGECxqqzb7c4JC0xnXU03h/DVknSRdXdPS5MjPTuVSBUcpO4t9 jElJIlSVhcMLqvB0zp9zHmN6JxJh8GGrcxOMCpumYVGnjuxGt2CF3LV7TywYgCbjCu7L8LL7/ed4 /xdzC/HVxKaRiImVe0x4f0cXtLHdiaeGFfsszfX4bEVsLVAY3iWFMFVO4EuHRjzmUkzoCTeoGtvc jVhMLM+pQ/kdbfbHhn71y9tG9vEeK6bhc2EuL8ceaUPBjaW8gpLjujfHV3UUO1VldlAr1Lpbr9h+ zTKSiuAIA1hL2Ls7m5x6H5DHgYBDzG3TZr8uhogEIrGxO//3XVSnNtrjO5TVTh3D5Dv/xMWhO/ny 4yXsrnCiiR3IDbeOO8yejSkD/Ui2oBRuZpN0LsOunMPkog/5scDZ/DNJlgEF7ykxlA+vD2SVTEA5 IhozIPukln//7rzHAdjw9N06OM0crdgNs8yuE80yPjuZC75hh3YcD7zyCH+76XxG9whDI52eNvt1 jSk+Gvy3k5Naq2n+d/hnp1QwgjpxTopMfV5hQ95ITSx9kqH4x+9YtiWH/MIicg4UU9vCLnnk1Ut0 G53OyV4d6q3ewafP/pv52Ulc9uCNTE3RNQ84T00RJiLo2TX4d12gropsyoikb8+ww9LrJXNOp8P6 5bVTY4PgxBiM8u87VimRZPSL/F2BQn9s6Fe/Dl14uL2gNWqPsmVA9Rzr7kl7zFOtUWz/ZhkfrsJ1 vHb/TrqeM4iRo4Zw5QOTmLVzES++vZ6iViefbV2b/Qq31lZgwUhKUhDyAZdf3sapvoOiiUqlXx8F mzGBgVPPZ7ixgC++b7ijgLuKrHKYMX4K48t/JdfsRhWVSDBgaV7S5LF4UTaDrryKv9+RzA8bcymr 86IOiSC0bg/rdx9x98RRwk9vvIHylzuYe98V1D7xCT9Xe/GUb+WnA5O5+qrruVKznB1mHUkDziEu wDsRSs12Fm2Ywp2X3ci10jK2VOpImzSd4YbD+qXUsffXEpg9jWune1l5oBZVUjLBAR9rG4s2TOGu WbfwZ+0PrMuyQHxSwPX4ZUN/+tV84VkpKnWiypjI+cMkcgltXT3HEg2f24UHLcG/9x1xigenG3RB WtQQ8BNoDbNMn4ZZpsh8wsHl81jI3bSS3E2r+Sr9Ih67fxqze23h39ttp7TNfh2iNptNhXD51FF0 /WUJOQ5fxxEMxUnpvnyqh4zj5nsmAG5qsrfy6bNLWNO0VPVU8MPrn2K8cirTbx1EsApQXNRV5rGz eUryULHqfR6rncglF5zLrJvGoQWU+kr2/JDPL7uPccvVVcaqdz4k/rFbuP4v4yl8djmFrhrWvvEO hmtmcf6V1zIOF9UlVsCHzxfAhKDUs/OTV3mrfjaXzryakToftflbmf/cIlY0L8E9lC3/kLfC53DZ eXO56yLA58JckkWOJZAAmY1d/32F100zuWT8bG6fLgNuLCVZZAdSjz829KtfzSrE/oVfsj5uJhfe dD24TexenNeKeo4hGp6qPEqVoYy6eDwFKwuw6SOJsu9h7S5LYMEopZ78AhvysClMHw17HaFE2Pew LtO/evyaZSQDPS+eTr/aLPbkV2NTdMT3SSQIF2ZbK97Q9Tvb7J+rUc26z1Yz9sFx3P9gMIt/3Em+ BUKTutHV+xsLVpQdtUQ5ZSgWtnzyKls+OYl3V7aN+S9tY/4Ji7ko27yUNzcvPc4JrmDJw/eypIX5 s/jsr/fy2eGfWXNZ+uYLNNWiTb2U5x7qTaXtkOy48hdz3w2LTxKMqmbz/95m8/9OOFOxef6bbD5e x47VZstvPHXDb0fVs+3rD9j29e8Ns5zEhv72q6lZlVv48LEtfNjKeo60c7NoKOZtfPzfbtw0ayo3 3SmBs4bMb/NYH6ho4CT76wWsTJzFpOuuZ7LHzO5FeWzwdwAqfswykhqtFEb/6XM5L7hhpeasKWDr F+/zRXZrnrT4nW32M+Bmz1rCM8+YmH3pGC68YTB6wFmdx+Zl21BLCJonBT1dxw6jk7WM8loXqvBO DJsxlNDq9fxa7Bb2Od2n50xILNw0y/z61LPMP3j2XjTtkViY1B2/u85TjiqSUTfewOzB8QTLDevy kt2/sfjzZWypcCMyYZ9eOt5WCzHLCLw1rH/nBda/I0whRMMfZCNJ6edySYtZZg1vfb6MPJc4YQKB EA0xywgEZxQic5dAIBCiIRAIhGgIBAIhGgKB4ExE3R5Vpsx6gMfOq+LVO95hh10YGdo30atAcMZ7 Gl63Al43nnZrdRhjHnmJ95+aSHyj7Bl6zeW195/h5l66DmnohkSvL/HYEx+ysvrk5ZuS7wgEfwDR 8OKsc6I4rTi97dRqVQjxIUDCIAZGqwAdXUb1woiGmCh9x1xzBZjotWnviRAOQcdcnqjC6HP+DGZP 6k9KiITHlMeGxQv53/pSmnaZ+5XEFQAfdpMVl9WE7VipytogTR/qYOL1VWw/GMTQcyL5aWUYI9Pt 7MxWiI8LQkXDbsqTJsL1J5WfP4ln8TPpboCcljyhAsFJRUPS02POX7hnpJUV/3ufeaUQf+5U5l53 C3LVs3y8tyGd30mTuB6Gs2ADXy81UXXUaGmbNH2yLoRQtZ1fVxVz3uS+JOXHk27dzNclw5gdYWj2 NE6aCLeNUvn5dawA6BDp/gSC44mGHDmQy8YFsf2tV5i/1YoCHMipwtDzQWaMS2H+3oaksg2cIN3f 4Z54zW6Wrz/GF22Upk82hmOQvNQe+IW9l8xm5gwt9b++S1nIEPQxxuacGCdNhNvI703lRwDHEgjO eNHQxKaSIOvoetvjvHfkt44I9DI42ipXY1Oavrtn8sArA8n59TfWrfmZjVkW3AFsXVTpQzHIXly2 AtbvNfDX4XUs+KAa9wgFWW9E05D866SJcI9Fa1L5QeuOdbJ4xuFeh/AyBB1GNCRJRsLCmjf+w/Ky luqguCzUtmly17ZJ0yfpQ9Djwas4yfr8NZ5Y5qGswkukW0HSGdBK+JcI95hNPDKVnx+JZ1t7LD+X KUIwBB1KNBoSovanRwrM31p2Sl5w9HvT9Kn0RjSKA68PvPUV5NcDqPB5vEgaAzqJQ4lwF37Hsi1V eAHJHNsiEa5ftEg8exDXsUQ0kGOdINGrEAzBGSEaSs02vlozkXsuupV7Qn5iza4y6jASnaCnYM1G cu1tmPKkTdL0yWiMGiSlriHb+2FejNfjA60RjQr/EuH6gz+JZwM51gkSvR5viSIQdCjRQLGx+7OX ealqOpdMOJ8bx2sAD7UFW5m38dc2Fo22SdOnMWiQFC/eI0RD8SjIWiNa8DMRrj/4kXg2oGMdP9Gr QHAmcEak+/ujINL9Cc4ExIY1gUAQ2PJkxIgRwgodhBELTvhyAH7++WdhJMHpF41Vq1YJK5whZGdn 06dPH2EIgVieCAQCIRoCgUCIhkAgELRx5i45rhNpAwzH/tJRQ966SpxKB7OALozO4+LRVpRwcHsd Hh+AitBhqcRaC8jNtKOI60QgaB/RUKpLOfizjISEJimRpBQ35b9VYPcCivfYj2B3FJcrNpao8HrK TUIiBAL/REPWEpIaR3SKEa3ah8dSR82+csxmxf93Z3rcuOoAJHxOX8M+izrn0Rm8tEYi0yIIiTSg NaiQJcDnoW5bHiWVjYUlNUFdY4npHIJOCz6HHUt2ORXFzkPt8aeMP/gUHBaJsF7hmDbWHFPcJEMo iYPjCDLKSIBis2HOKqOq7LB3i/rTL3/KHOdctNs7otVRnDs+lbpt29hf5RLvShX4IRqSiuA+KSQm KFj2l1BhkzF0jiV2iBZpQwE19W17GUn6YCKSg/EWlFNe5cbj9SFrVHhrm9RFhaFnJ5KTvJj2F1Nu BV18FLF9k5EceZRVe/0s47ePhONgFZ5+McTG1lJUdnR/fS4HlqxSzA4PXlmDsUscMf0TcVvyMdv9 7ZcfZU5wLrrmZLePl6WLpsfImUyYcwmVmb/w44/rWL+3ukN7hoLTLRr6UKIS1Tj25VKe3zBz1ps8 qEcnE9lVjynTfmj2UamQpcOS+3mVpt3kAeLFXlJLreUYV6Y+hJgUFdbt+VRWePEBdrMLObIr0Sk6 KqptKP6UCaQ5zjqqDkbSuUc4ukrzMZrrwlrWtD/GgcOuJmRMDMHBKsx2r3/98qvvxz8X3c8Jp6Ss 7S8CpX4/nz32CEu69WfsxFFMv+dvXFGdxZqf1rB8/X7K7EI9BEeIhmw0oMONqcZzSBw8dqx1PsLC DKgle2OSHBlj/+6kxDY5yi4q1+VRY2tjT8RoRCfJyANT6XHUeNMgS+Dzo4wS2BoFZ2EldZ3jiY6u o+7INumMRPaMISxKh1oNiktBhYRdbtu+n/BcxIRDWXtdCh4suVv5JncrSz6No/+UGVw/50bGj1zM g0+spVLohuComAb4sZZVcGYVUlggNccCXM62XwFLEkh4MG8rwnxEig2f143HB7IfZQLGXU9NgZfO qaEts5XJWiIGpRCtraNydwU2mw/JGELCgMh2OzG+03Q5hHbuy5iJo5kwsgtB5lzWrM7BKoIcgiNF Q7HZcBJCcKSa6rrGwJ7aQHCIhLfS3mIAeq12bNb2bVRTe4whUFFx7KCmP2VaM1RdhVXUd04gQgXN 7oasJSgYXAcqMZU32sehaZf3upzoXLhyzYChHa6CMNKGj2LyxBEMStFRvfcXlr7yP9ZnViBWJoJj exqOOqpLokhKTyZeqqLWJmPsHEuYxk7lQcepn/UcdVQVRpGc2okUXRXmSideVGiCVDiKzDg8fpZp jWy46qkp9dKpk5rmSIXXjc0G0Z2iCLdZsDt9SHo9KsDbDn0/3rnYu9WMITGh7T07fTKTp/dDv/17 /vXmZvZWOMWzKYKTiIbPi3V3ASWueKJTEwlVgbe2lopNFZjrT4Nv6vNSvzefQnsM0Z1iSEiRAB+e uloqSmkQBH/KtG6ux5FXg6NTLM25s3xOaraVoOoVTVRGGCq5YWnmtdmxtvXy7ATn4qBJoXdiO5jb uoe3H9gdYAxI8EdFGjZsmLhUzhD82eUqkvAI2hux90QgEAjREAgE7RjTyM7OFlY4QxAJeAQdQjTE hdhxOFli4TWI+INALE8EAoEQDYFAIERDIBAIhGgIBILWoBYmEJzqeSokbQSzLhnL4LRIDJIHc+42 vvt0EavzHW36+Lo27XJefLA7qx59nq+Lmh4R1pNx35PcYfyK+576hT92ojY1STPv54npUS0/Vg7w 6h3vsMMuREPQIa7TWEZfMZmupeuZ/0YhdbpkRs8+nyvv8lD4wEKyXMJEpw4v5Svf49EtOqJHXcft 4018+vzXZNvsVDqFpyE44UD2I91fW6UE9JTxw9NP8oPX0+hV7CfbnUrGrV1JjVCRVe499f3XRDFo xixmjU8nTu/FnLuNpZ8vZmWuDQUdfW5/nLuD53P3P7dTd1jH1YlTeOLxDNY/8i++L/OCKow+589g 9qT+pIRIeEx5bFi8kP+tL8XpkwgZdBMv3hrPqiefZX6eu7EWA/1ufYS7uvzM4w8vocDNSepp9NdC 05h68VgG9epEYlQQOhlQLPz2+ou8s8Pm5/nx4amtpKhWhcfiAq+NiqISCh1ieSI42YLBj3R/bZkS UPF6Wi5X4kKQndWU1p+GtYIcRP+r7+DW4fVs+OIj5lUYSJ98EVc8FIvqkTdYVubFWlGPLzYcgwz1 6jCiQ73UVFmRgyIIUmyU13lB0tNjzl+4Z6SVFf97n3mlEH/uVOZedwty1bN8vNdBffYWcpW59M+I ZGFeeUNqBX0yw3rqMG/cSZkbv+rxAeqI3kwck07dykV8lFmJxeFDF2zAkd/+u9KFaAj8SvfXPikB JfRdJ3DjjGhyvvyYzHbJ9hPFtMefY9qRH+c3akbkQGaODCZ//qt8/FM1XmB3lpmIf97MhRd0ZvUH B7GU1MGwaILVMr4xN/HspbW8ee9/2Bcahb6+HJOnoZ7LxgWx/a1XmL/VigIcyKnC0PNBZoxLYf7e LBx12azP8nH9uX2J/q6cMg8Yug2hf5CZdRtKcOFnPc2dqOfgxt/YlHNq13RCNARN6wY/0v21ZUpA maC0Sdx1zxQMa//Dc8sr2iWpEdSy/p2PWVneVLuW9Gtu4/LG5HPa2O7EU8OKfZbm3Cg+WxFbCxSG d0khTJWDpaIShzGaCF0YnYbEgTqSoV2DKE0IBfM2zG7QxKaSIOvoetvjvHdkExwR6GVwKHXsWp2F 5+ZBnBO9hu/LtaSO7Y2xbA3rixva5189p3k1KwaL4PDL4eTp/toiJaBMcK9p3H/PKJQf3+HZL7Ow tttAcGMuKSL/sLsn4XYFjAHUUFNItTSCpE796B+dy5J1EYwZ2ZUEKQh7UTlWBWRJRsLCmjf+w/Ky lp1RXBZqFQCFut3r2eW8ntFDo1m+Kp7JGTryF26hrLF5kl/1CNEQnParwI90f22YElAVPYRbbh+N vPxdnvsyi+OHMlRE9B/DpO52tvy4idx2iHm4KrIpoz99e4axqLBheSIZkzmnk0z99kIsXlBqiym2 hzFw0gjCsr9l1YpkBv91MmOdWqq/qW7wkCqyKaU/PVJg/tYyjrdg8NVns2yjlQfHjGaQO4leyj7e 3mRqvtXs8rMeIRqC04o/6f7aLiWgjrQZF9LLvYP/bKonMimRhvTMPtx11ZSbD7szo+vCpX+axjAD DHDn8uiStl/CKDXbWbRhCndediPXSsvYUqkjbdJ0hhsK+OL7fJwA7ir2V2kZ1i+In1/MwVxSwXrz FC5NqmVlceOrMmq28dWaidxz0a3cE/ITa3aVUYeR6AQ9BWs2kmtv6pWTg8vXUzr2PG6cBeZVr5F5 mPug+F1Pm5x51KHRxIfpiA7TgspIbHIitTY7lWWm4y6DhGgI/Er312YpAdUR9OhmhOCB3Pj3gS2+ sq57jb9+lHdodnVXs2tPLUMzbOw8UEu73IxV6tn5yau8VT+bS2dezUidj9r8rcx/bhErmtYMio2C LAuEbGN5jgO8Tjb+dJBLrnKxt+JQmd2fvcxLVdO5ZML53DheA3ioLdjKvI2/thjsnrKNfJM5iZv7 lrJ0WSEtHokIoJ7fj4q4CTfxePPDXRFc9dC9J324Sxo7dqxI99dBONnWeDj51niR7k/Q3oi9JwKB QIiGQCAQoiEQCDoIIhDagWiP2MJDC+afvNCIEcL4AiEagkOsWrVKGEEglicCgUCIRqtYvWYNq9es EWdSIBCiIRAIToikIf2ya1n0+T28enkiBunUHFbENM5Utff5mFlczJTycjrZbMjA3pAQ/rEZlgxu xfUXGku34SFYN+ZSbml63k9F6LBUEpQSsjfVBfhEpoS2a2e6pnkoWllEvae1ZU6BLSN68ehzFzE0 pPEDxUlpVjY/fL2Gr3bU4e6wohFEn8Hx6IEegzsRtbCEIq8QDcGxLnJF4Z+ZmQwxmVp8PtBi4dvn QfritF7JaKIMyBY7HpsHn9ON1yehCTOgsttwuPwtcyoNqic6BEChIr8KT1Qsiel9+L8HU4h89D+8 daCDyoZi4ad3lxE5NpzStdspOUVJz84a0dB6vfwlJ4cxlZVoFYUtERG8nppKuV5/1onGrOJihphM 2GSZ97p2ZV1MDGaNhh51dUzWbD8lbnFo/07Ex3oxbS6k0nTY1arSEdkvhXCdB1uFBwWJqKFpBIdI 2DNzKCj2+FfmtFDMe0/NY50thIkP/om/9gtlzOgYPjhQghOQdJGMuXQiV03oRooRXDWlrPt+Be8s LW6xZV02pnDtg5dweTcXP384n2dXmAL2VuSQZGZeM56LBycSo2/wfiqyd/P6S8vZVAuR465h3s3x h34wLIj8278j8/BUfZKBMY/ewd/Sj6zdzo+Pvc2/9jeos7/9OutE4+F9+xhbVdX89+jqatLr6rh+ 8GCsGs1ZJRpTyssBeCM1le8SEpo/3xMWxlu3nYqZWUNQlBpJVhMcoaLK5D20M9XroHxdDuZwI2Hp CRj1ClJhKYU77dib1h/+lDm9UzgeT0OPZJXUNIqZcPs1/HWQDmor2ZsFiWkJTLxqLnHu93jwR3Pz Dlxtp76cn6YH9IyY3JXIVSbKA9kSLAcx+tbL+dMANdhq2Lffjjosim7JwXjdPkDCXV3Ipj0ujIYo +nYNOnY9PoWaAzns9GoACWNiCqnhADbK670B9+usE40edXXckZHBgZAQ0uvqeGjfPuKdTuYWFvJu t25nlWik2Bu2H66Lijo9DfDaqdpViSdcoa7AfXROSkVBFRVBuN5K5UEN0V1CsZZZsfkCLAOgUiFL hz70eRV87bbFMpFr77+KKyLj6RalAmpZs6YSJ6DtMoTrB+nAksmTT67jgAOMvSbx79vS6DspnbgV v1LcOA6d+TtYvLc7c7q6+WVZLjWB5hBQBZOWoga87Jq3kL+tNOH2gUqvRXIC+KjbtZJ/7AJN53G8 /8+hxB6zIieZ8xZyf2Pc5m8vppCKlz2fLWJBY/AjkH6ddaLxamoqO8PDAdgRHs5rqak8vXs3I6qr zzrROP34cFfWUFl5vNWLgZB4Lc6DpZgK1WgTkgiN1WDJO5Qrw58yIGPs352U2KbbAi4q1+VRY2sv 1VCRnJbU7MKveeUz3t3vAmQiUjsRBRDWl0de7NvyZ+ERhKlpHlw+ewmfPfE6n7W2Ge4aVq+tYNbF sfS78U8snF7AuvW7WPLjHvY5WtOtMCbfcj6jjFD36xKe+r6qMf1AYP0660SjSTCa2B4WBkCC3X7W DdlCg4G0+npGVVfz/WHLk9+nAw1ub8O/xkEpSbTmLp7PVU/5uhxkn4IPF+UbcvB5lIDLgIIzq5DC AqnZ3XY52zOTQyFP/2kRnuv/xKPDDJwzKAbjplpqlcOWKVXbefnTXCyHDySnueHVA22Gm+wFn3L9 vv5cNKE3Y87txKRZnZg0rS9vPbSAxaXeFgJ+YovIJEy4kL/010D1dp75z/4Wnk9r+iWe0zgDWRYX B8BtOTnMKC4myulErSj0qq3lqxdaqRluN15U6ILlFrELvQEUu+eIC1NCHRNJTFo4erV03PV007V5 tBj4X8ZrtWOrtjX8q3Hgae87BD4bmz5fw24vhIyawMwUFaBgOliGBSA6iaT6IjZtzuKXzVn8mlnC 3v1VLXKcSoZErvz7bXzz4U08OC6cgCNqsoa4lGBqM7fwzsufcNV17/LqHi/oOnPRiMgW9fmcDuwA xjDiDQ2ir9apmsVeHZfBvdekoMHMwldWsb1FMtfA+nXWeRr9zWZ+iY5u/nuAxQJAqcFw1onGV0lJ DKupYbDZzN3Z2dydnf37K3XWYzFDbM94opQa6h0yhqQYwrVeLMVHpPZTGYjpF0OoBoK9NvJyXZxN mZy8Fbt578dhvHx+JJdclsY3L+3DnPUz/83sxe19Y5j98B1MrzZhkoOIj5DY8MzrPLXr0H1iXecM ZvQJRguMO68bH67dGlggVJPAdY9ewXi9g8oSCyavjpTOKsBLWamtxfMyHlMhO03QJSKF+/51C3Pr dURZf+HWh3+l2BfMmP8bT1814PXR67KLecYH4OHgkqX8Z6cNRwD9Ous8jTuys+lvNqP3eskwm7m9 cSD9fLqChe2IIsvc368fb3brRnZQEE5JwibLbAsLY/r9rZ1h3Zi3F1FdoyGiXwqdhyQRHeXFvLuQ iiMjeYqb+hoPKC6sh985OWtwkfXDJg4A+nOGMzFWBq+Z71/8kKe/3s+Bahf6qAgSIjTYyksp88kt BpKzIJOl2U5Q6ti4Ii/wQCg2tq/L5aBFTUxyHD06h+GrLGb5Z1/wwsb6lgLuLOWTV9aysdQN+lAS Q13k5tY3CIs6hLSURr9EFUGfvl0Y2K8LA/ul0j+20V8IoF/NntSZnu6vad/J2uhoxhx2yxWgQqs9 K2+5nogj0/09tO0hsctV0KacNcuTp3v2pDY7mzFVVaibHu7q3v0PJRgCgRANPxg3dmzz/7+Yns6L 6enirAoE7SkaR2WvFpx1ZLdFoFQgaETiC8QrDM5mxCsMBG2+PJktjHBWskCYQNBeoiEuLoFAEADi iVCBQCBEQyAQCNEQCARCNAQCgRANgUAgREMgEAiEaAgEAiEaAoFAiIZAIBCiIRAIhGgIBAIhGgKB QCBEQyAQCNEQCARCNAQCgRANgUBwNqEWJji7Ean8BMLTEAgEQjQEAsGZtDwRiYXPLkTOV0F7i0Z2 zuazsmM33HDvGdfmNf9+9aRlThajEO+xEYjliUAg6GDLE8FZjfA8BKfE01DMO/nkmRf5eJ/zd1Xe VvUIBIIO7ml4a7bw6Qdf0XnUn7m2p67VlbdVPYJWIALcArE8EQSEuIsiOJXLE4FAIDihaCjW/Xz2 wDUMSx9MauooJt2+iIIjS/qcFK54lztnTaNf6mBSUwfTc/Bl3PtdBd7GIm1VT5uVEQgE7bA88Vby /b038eiaZOY8/DwT46zs/uFjXt1/eDEPRQvvZ9pDGwgdfzX3vZRB10g1tvJy6BuOCmizetqsjEAg aBfR8BT/xNsr7Ax48l88fkU8KmBUWjXffvveoVL1O3jluQ0oY55g4dsXEHeMUdlW9bRZGYFA0D7L E2fBdvJJYPjAyOPO0O7SbWw3ywy4bNRxB2hb1dNWZQQdG4OsZ0LYGCLVEe1+rKHBg9iWsZpb4q8T hm+TmIYkIQGK7wSlJBmp4T8nKNNW9WQblb4AACAASURBVLRRGcFRzIi8gOxzNhOiCj7m90naBF7o 8jib+v/ErgHr+bbXPC6LmtkubUnVd+P/2zvv8CiLtQ/f27LZ9N4oAQKE0EILglJFQLrSRJFyUBFi Q+ATjooN8RyUolLVg6ICKk0UkA4GwVCkBUIgCSEJIWSTkJ5t2X33+yOFAAlsZCOgc18X10V2J8/7 zmzmNzPPzvzez0MWUMchsNbrXVcdhKvChUbqBvfE51DXIYgFDd7nj/A9xLb5nW3N1zLad/j9IxqO wR0IIZ19+9MpqaaQKqA1rdwlTqyLJrOaLKO94tirjOAaES7t8FC6oS3JRC/pKbQU0VQTQl110HUd 68dm39BC04wP0hYyOWkam67+gqfK/b6v/4armxl6fixvX/rvXb+Xeg51+LHZN7R2bs6bqXMYmziZ NVnr76+chiKoD1OGfcEzH0Xyon4SI9r7wcXz5ALB5aWcw3n51Q5sf+cNhk6M47kh7WjoqcSUm8FV r64M7+KL3eLYqYzgGnOD38JX5cO23N3kmQv4qvEiurp1Zrn2K+ZdXgLA63VeRbJaGRk/gSJLMQAH Cg5fF2db87X8UXSSWakfVLyW2O4P5qQt4KvMNQCo5Q78X9BL9PV4GB+VF3rJwEVjCqPjn8cgle4M PtRqJz4qLwB+bPZNRax1V3/i3ymzS0czmZzIgAk84f043ipP4nQJLLyytOKemmtCmd9wNvUd6pJq SuNAwSEGez2KQTIyM+U9oguP4qZw5Xj4vor423P38uLF125qn6lBkUQGTLjp9QmJL7O/4PfSyS0y xviOZKzfEwSqArhkSmNl5vd8n72xRp/Fv+tOQUJi6LlxFFgKAThWdOq6Mq4KF6YETiLCtS1BDgG4 yl0plopZmL6Mb7PW2tQ+tn5e0+u8wKMevfBV+aBESYwuloXpyzhSdPyme3+3/gyGePZHidyd7rNX ssx/HgtWvc+kxRKgxrdxR9r5lu/9UhE8eiGbvb9i/vItfDR1FQZA7l6fLs+15LEuvijsFcdOZQTX GBA3ijBNU14Nmoy/ypcNVzfzYfoi4vWJZfkFDQ+7d2VpxpcVgvFneSnwOR7zGsDbl/5LqjENZ4UT IY4NKgQD4In4ZwhzasLihh/y4sXXSNAnAVR0IoApgZN41v9pPk5fToIhiaHeA1kRsoih58cSqztH gIMfTRwbMSr+WQZ59eVp3xH8K/ElHvPqz+z6/+aR2KEUScX0PVs67f8o+L1q7/mrzDX8lPMLAA4y B5aHzEcv6TlefK0zvxo0mTG+I1mQvpRY3Tk6urTnvXozKbAU8kvurhrkcbqyJGPFdXW9ES+lJ+P8 RrEmawPz85dQLOlwU7iRYky1uX1snoU6t6PAXMRbqf9FI3dktO9wvmmylKfiJ3K8OOa6st1dH8JF 4Vy2I9QhiN5TF9B76q3yCBoa9YtkSb/I6svYK469yggA0EsGwp1bEu7cgtlp85gSOIlf8nZhsUoV uQylTMn5MhG5E/xVfuRZ8oguPEqOObd0ZlF4vf1CivESbgpXAC4bM7hgSL6p0zznP4ZlGV/xubZ0 JvJr/kG2hn3PtKBIJiReswc4UXQaF4Uzo31G8EfRSZQoGe49GLXcAaNkqohtsBqqvedccx655jwA /hM8Cxe5M2MSJlcIqIfSjYn+Y3k99X02Xt0CwPHiGNq4tGSkzxCbRaOOQ1CN2nl3flTFTOfPto8t pJsy+L3wSEWcbc3X8kLgszxzQ5z/S3mbbm6dxY7QfwKOcjXDvAexNONLVmevJ9WUxiDPvtf0t5K4 3Cmfpn9OidVMVMvNzG/wHg+5daxxjOZOTVHJVBV/yABWrEQXHqW1U8ubykvW0uy7QibHKisVQsWf OCHxuNcAhnsPZkryG6Qa0ypeb+HUDKVMyZz6b3C27e8V/3q6daWeQx2b48sq1aUyLwdOZHvztbXW PjXBgoUDhYcIryLO0aITzE9fKs6e/BMwSEaGnhuHxWpBQuLp+EkUS7qK96+UaJGsEqGaxlWObOWY rWbUModbXuuS6TID4kbR3e1Bhnj1Z0XIpxwuPM4LF//vuqXPjR3nTpCsEharhPUWIW93vfrqurxb fwafZXzNbwXRN3T20u4+Pfltzunjr3uvxGq2+T4vmzKwWCWaOoawi18rXlfL1NV+o3Un2PJ5VSkc Vgsma/Un08VM4x+CyWrCUrbBvrJgABRZijlSdJx/+T2Js9yp2hhaUxaNHINt6sT78g8w5eLr9Isb SSe39ozwHnJdmWKpVEA8lR43/f5ZXTwl1hIedO14Xcd90K0jMbozN5U/UHiI0BMdMVlN1d5ToaUI d6VrNTMAGR8Fv0uKMY2F6ctuej9Wdx6z1Uwb55ZcMCRf96/yjOR26CQd0UVHeMp32C3b+XbY2j62 fl438oBr+yqXUBEubZkWFClmGoJS5qQtYG3oCjY1W8UX2m+4XJJOkCoQH5U3yzK+BGBb3m7mBr/N 1KBIoguPopE73hRnov9YdJKBREMSeklPW+fWKFCQWZJ9/ahrzCDXnEdkwATkMhly5Khlarbl7SbH nMsX2m+ZFDAek1RCguECj3sNpJG6AdOT3/pT9TujiyMyYALDvQeTZ85HJVOxLW83ACO8h9DeJZwZ Ke8SomlwrdOVZJFvLiDXnMcK7Wqe8x+Ds8KJqPzfMVlNBKvrsTNvH+mmDJvvY+7lT1nbdAVrQ79k 0ZUvuGrOve6atmBr+9jyeQFEuLZhrO8TpJmuMMDzEZprQhmTNvmmch8Fv0tddZAQDUEpcfp4hp0f z9SgSGbWfQW1TE26KYOfc7dVlNl4dQs+Ki/G+T7JJP/x6K0G4nTxXDSmVJRRyVSM93uMAJU/Vqyk mzL4KH0RW3N33jTzmZo8i1l1p/NZyAIKzcX8kP1jRUdemL6MAksh//J7Ei+lJ+f0CYyKf7ZG3wxU 5uvM7wnTNOXdejMxWo3XXWuAZ5/SDh389nW/89al/7AmawMA89IXk27K4CnfYTzm1R+jZCLVmEZ0 4dGatbMunpHxzzA1MJL/Br+FRuGI1pTF7rz9NYpjS/vY8nkB6C0GRvuOoJ46iMvGDCZdmFZlvaIK DzJE2R9ZYuIf1r9jJxDGwgLB7fmh6QqySq5WuX+lRjkNYfcnEAhqJBrlNn0HM813FNxecQQCwb2D yGkIBP9gnoh/RoiG4AaEwbCgNmYaUtF5vps9h0WbzpJtcaROqDeZVDpoBqX2enu/Zt7Sn9l7KgM9 oPRoxIB3F/PhAD8UdoxjjzKCMk6cum0R8WR5Qc1EQ9j9CQSCmoiGsPsTCAQ1Qdj9CQSCGi5PhN2f QGBzd/GNGMC4oRGE+mmQm3VkJR3nu+WbOJV/v+6RdKDx+Df5d1fnileyf5nPmxuqd+BTltr07WHf /nSmhDVAVUWhcnu9neuiyezVF78qRnd7xbFXGYHtREWV7iLt3r37nQVSN6fv3FmEam5+K+fHqazZ fgXpfp6W+3Ri4vPd8DmxleXfJFMo1+DtJSdD9zfYVJ2+jTkLj5AjWbHoi6sVDBB2f4Iypk2bxvz5 8+0jHkDRxTPkVthzmMjVGrjfu5bKO5hAWRa7ftzPsfS/14ZFq8VAfl4BeTaourD7EwAwb9485s2b x/Tp0+0gHlrivp1L9OWqOpYcx4YPE9H7IRo0aYSnW5nfg6Qj9/AS1n9zHL1kSxmQaRrSYugYIh4I w1VtxZB+ktifV3LoRPlT9myLc/sZVAjPzY+kU9kMavDsuQwuDUTsJ7NYEFOqjgqfjkye/hjhvmrk gCEzgf3r17LhWA4VLSFT4Rv+MEMHRBDeyBM1YCnWcnTVZ6w4kl86E1O406LfEEY80pp6rjLMuckc /Gk9Pxy4grGy8so96Pz8y0wI17F7wWLWxteOMMs1DRnefyDDw4LxUyHs/gS1KR5V/gni3Gogbdv7 3/CyE46WIsySjWWUgbR5+T26NlKClEdetgqPoLa0nxSCy9LX2HkqH6tN17IB0yXWzf6Q3U2H8Np4 P/Z/+iVRWRJgQZ99zcNDKkzht42r2ZNTiEHhQfO+wxg6eQxZMxexN1sCFPh0Gcc748PQxfzKxi8u klFoQe3pAcnFpYIhc6TpqBeZ+lARe35YwZorEBDRl6fGT0Ke/R++jqskDCpvWrZwR65yp3VTNzbE G7D7/EfmQo9hE4lsogJDFnFXisWOUIFt4lEz4fAn4q1viSj/sXAv617/gis3eORIcZ/y1aJDFFus yBxc0Cj1N62lqyvjEDKUiEZKMJ1g56z5nMtT4jvwA54cFETo4904cmYzuZaaXav6ubuJPK0WvZcO iRLytZmkZ9zcPa1GLaeOaMt+SiXlqhsR4YMJD3Jgb7YBHBswZHgYsjNrmLPoWJVLAblXW0b2cObk sk/4/ngREhB/IRtNs5kM6VGP7+MSqFj1GVPY8PkW8hvr+WNfNrWyYFK409RXBZg5tWsF/3csW4iG oGrudKZRnBpHnqF0TJTyUjBKVfXFYkos1rL/F6Ez2VpGiXOjRjgC1qRfSc6zABZyTv5BwaDBuPm3 xlO9mVxdza51x/3LI5R+ox6lW/MgPDVWdIUluKBApyr9mk/p1YhGLhJJ++OqzR2o/BoTKFfT8IV3 +eLGNw2eOMrBUPG7ZnJi9rE2phb/EMxZ7I1J54luQYQPmsnmLheEaAjsKxblOY2zKz+oJqdhl7Rd 1X6gsnI3z1v7hdYKSl96vzKRx91i2PD1FmIzjaj82vJMZI9K0x0rIONWiQeZTI6MfKKW/I/dGdcr i2TKp+Av//rJRPzexYxO7sjjHdrRMyxEiIbAnmLxV2Gh+EIiBoJwbNCNeu5/kFCgxrdjR1wB0k+T Y/qLb0nlR4u6cHn9VnYcy8YCyPL8KKg8aOclk1wso23XUDxOnqhytmHKTOQKrWlaD74/nsGtq6HA s3U3HgnRc2znEZKKa0FRZGoC/F0puHiAJRcOsFTpI0RDUErN8xa3zmmEjZlBQKUnIliy9rLvu2gK 7fR3XXJxE0cuPEi3kPb0+88SHsx3xN3LEcgnblMUBX/14zpLsknQwpCefeipPUxSXgkK7yBcgPyK 5UUyP21KpP3op3nz5bpsP5RERqEFpasnboVnORCbj5Rzgo1RvZg6OJKprruIOp1BIU74BDqSGnWI JH2laYq6AcMnDqSTBtqUJPH2lkz75zVUdXl2wmQeUenQZueQZ3USoiGonZmFS8OWXGfK730OlRzs trvLfIVTi97CMnw8HR5oirsXmLQniflxJYdPF/71e0LMmWxfvAqn0X0ZFNkeFwUgmSjMSiYm31KR g8jct4J3CnoxtH8Ew57rgQMgFWdxdnsK0bH5SJKO2NUfMz97EEMf7sezPUuTkAWpx1lz6PD1olFy ldNnC3ggXEdMfAG1opPWIk6cPEfD5o0J8auLP9aqPUKlvBhWL92JNPQlxjVT/+nr2SvOn0F4hJbR WByNF9yK0m3kMxvsZMZ7B7hqg6gLuz+BQIBM4Yi7hxseHq64qm99qEssTwQCAQT1442P+gE2HFgT rSUQ/JMxkbjyLZ5ZaftvyKHUpm/1jLF0Cu1A48ZdeOSlTaTeWNJq5NKez3ll2EBaNe5A48YdaNZh JNO2ZlYkYOwVx25lBAKB3RF2fwKBoGaiIez+BAJBTRB2fwKBoIbLE2H3J/h7j4u4tRnFWy80J+O7 j/l4by2dBq3Upf5+loA31FDY/Qn+0i7s3pbIt56krUfZhybp0CbEsGv9VqKSdLVgByhD7RuAp1yD LNCJ2h5n/taWgGUoprz+3juB6Vv46n/bOCe5oinJJSXmIFujUggYMpZBwQ7g4Esz51OsWrmKn0/r UMhMFGReJuHUUY5m+RBW3xmFS13sEUdupzKbf955330YKY/2u22ZBju23TpGx5TrX/CafMcx7dqF XRrx6KDm5Hy/mE82HOLo2Ryc2/RiYE9vLu6PQWv3g2ZWdMknOXLyD3ZHp6Or5VOiDvW6MqyLkr1L v2PfxatczcoiLTWTYulvoxnC7k9wN7Ci02ZwKdUAqakk64NpN70ODd0UxBSVLh5ssc6TOwfT68nH eTSiHh5KwGLgavw+Fn2ym0slIPd+kFkfDqN+WXn9kWVM+ywR401KZoMF3+24Vy0Bb4WqDiPnTKXz 6U+Z+W0KRkAZ0It35vQhc+HbfHrGUGU7C7s/wd1DpsDJpyEPPdIEh/RoTmZfyzbc3jpPTeORzzCq zWV+XrGcM9klKFw8CXLPJ69so46Ue4IlbyThoPKix0vP8GDVk+3bW/DZwr1qCXjH3NzOYkeo4K4k J1u8MocV5T9a0tjy4a9cqrQ0ua11nkyBi6cGitKJi03kQrEVSCa+8mUkPdkZelBKFFS3J9oGCz7b Jk/3qCWgHYT9xnYWoiG4K8uTpDWL+SbejNrNl5DOfRg+40VUcxexLrF0lLyddR5WPWfW/cypVx9j xidtuXD4KL9F/c6hhHxKajDM2mLBZ9ck4l9uCXinH9XN7SxEQ3BXREOflcGlSwYgjcTzWpwaT6P3 o8H8vPg8Blus87BiuvQbi16LoWG79jzUpSOjZzzCsJhNzFt+gLQqF/aym1+ywYLPfhnEe80S0IrF CnKF/BaXu7mdhWgI7oHcBshlgCSVD6W3tc6r+JM255N0ZC9JR35lY+hg3nltICPCjrHwZCVXYcmM sQTUzg4o4bpEqC0WfHbjrlgC3gKLnhwduAT54iS/iOkWda/czkI0BHdFJTQ+fgQEmFC7+RLWYyD9 fYqJ/vZyaYe2xTpPpqHZ44NoVZDA2ZSr6CQ1AS2CcMZEnu6GXIJUTEqqDnmnPgzqCnEGNzz1Z/nt TD4WWyz47FXtu2EJeCukQuIOp8OIgYwbZGFvfAGKOnVxATJv0c5CNAR/LWY9OQUy2ox+hTkAViM5 qfH8smwrW2J1pdNkW6zzZEocZO60HvQUj7qU5gOMOakcX7uCtYk3jr1GEn9cx96gYTwyfgK9zXnE bkrm4Jl8LLZY8Nmt7nfBEvDWN0TG7q9Y5jGKkY8+xZTBlCZ00xO4cIt2FnZ/9xDC7k9wPyDs/gQC wZ2LhkAgEAjREAgE9hMNYfcnEAhsRdj9CQSCmomGsPsTCAQ1Wp4Iuz+BQFCznIaw+xMIBDURjVKb vnT27a/+iUrl9non1kWTWU2W0V5x7FVGIBDUDsLu7x7in2D3J7j/EXZ/AoGgRlR59uTvgDh7UoY4 eyKwd05DNIFAIBCiIRAIhGgIBAIhGgKBQIiGQCAQoiEQCAS3Ew0pL4ZvP5jH1+eMdxTcXnEEAsE9 LhrC7k8gEIjliUAgEKIhEAjukmgIuz+BQGArwu5PIBDUTDSE3Z9AIKjR8kTY/QkEf8ee7YRX2IO0 6t2Hum727SRKYfcnEPwlvRiXh95jwtiQSjPmKNbPXE66qRYup2pAxPMvEarRcvTsXtIK7lwqfCMG MG5oBMpSm7497NufzpSwBqiqun6Zvd7OddFk9uqLXxXCZa849iojsJ2oqFIPju7du99ZIHVz+s6d Rajm5rdyfpzKmu1X7Pcw5XsSFW6tBvLggF40bOiNCglj5nku/PodB/YlYs6JIylOj0pTh3oNPO8v yfPpxMTnu+FzYitKRVAfpgz7gmc+iuRF/SRGtPeDi+fJBYLLf8M5nJdf7cD2d95g6MQ4nhvSjoae Sky5GVz16srwLr7YLY6dyghqxrRp05g/f759xAMouniGXEP5TyZytQasf+sWVOLebTpPjW5dOmAa c8kvVuLiF0aTJq4c2GvFELeaLXGgqPcUY98chOv9JIfewQTKstj1435h9ycoZd68ecybN4/p06fb QTy0xH07l+jLVe8EljmH0uaJ0bRp2wRXB0DSUXjxAPuWf01yQdlcRKbGPXwgDz7akwYNvcs64lXS oxbz88ZzmKxyXNpPZsiTEXi5qpEBxqw44n/5kgPRaZRYAWUdwie8QNumgbi4OiJHwnAlhrObV3Lo uBZzmYrJHAJpMmgsD3Rtg6cGLHmJJO7+lqjd8RhsVDqZRyd6PtEaFSYu/zibrTsSMVhB5uCJm2Oh zXGUTZ7nX9N7oNFHs3Hmp6QZQBkykX+91hNN4V7Wvf4FVyTb6lWKP+1mfEWEWoklJ47YjZ/x21Gt 7dsS1CE8Nz+STmWzx8Gz51Lamx2C6D11Ab2n3qpVNDTqF8mSfpHVl7FXHHuVEdxl8ahqnutOkwmv 07WlA+iuoE0tROYWhG+QJ1KJVDFqez08gydHhpUm1fXZ5OYZkDt74WgqxmIFkDAVW0CfSVaWHqtT EP4BYbQaNwPz5Wn8lmIChTsBzRvipgFTZgr5+OIb2IZ2E2fjvHQ6O08VYJV70fTZ9+kb7gQFqWRk yHFv2JjQ4bNwLZnOxl+1Niyp5DiH9aa+EtD+xL7diRUiYTXlkl+DnIU57RDpxh6EaJrSwE9FWqqE c6PGaICShMNcNQFqG+pVKabCkkd+rjvuXmG0fnYqBalvcFxr49EO0yXWzf6Q3U2H8Np4P/Z/+iVK 0U0EtohHzYTDn4i3viWi/MfyEdIEKDzxC3IAzFzeOJdNB7RYrCB3UFP+7AuZczgPDQlDgYnL699h 856LmMonIFDRIUznlrN6lhyFxgW1SkPQkx/Qv50P9Zt5I0+pnD/Rcmr5m0SnO1DniXkM6+lJ6MBO RJ/eia7eQLqEO0FBFL8sWI/WCA5NxjF8QgeCekTg9tsW8m47LCtxqusDQEl6PEVl/VHm6IdPoBty Uw456Tmls5/bYUjiXHwJIa28adjSj+hLBfi2DALMXDl68YbHg1Rfr4JKZY7Om0601o+IWfPpHFCf pqHunNBetW25aDWRp9Wi99IhUUK+NlOIhqBq7nSmUZwaR17ZcCvlpWAs78ElV4g/lELb/sHUefpj nu97loRDvxKz/3e0ZSOywq8VfmpA/weHf7smGFQSDHDAs/N4+o7oiZ/zDetvJxWyKjuADu3ho+h6 9sHJLxR31R5o2BxnALfu9H/nhnq6BKJRYINoWMFadpOVvj5U1hvB0OldUOds4bu3VpNVYksnLeLy bzGUtGqPZ0R73KISaVRfAdbznE8qrrqj31SvyqJRPoXJRZthhAA1ak9n5Fz90zunhWgI7CoW5aPb 2ZUfVJPTMJL589t8k9CD1l270KRNc8IGNSesT3f2z/kvJytPm8u+Wq9yQeDbk77je+JHDombN5B4 xYxH1/F0CtPc+tYs5rIZiAwrIFOUXSFnN3vWnkJfuVcaM8m1paNjoTgjD/BBFVAfjTz2OqGrGVaM CbtJ1renSVA3Qpt7UMcJSD5AWr5kc72qiiuVWMqb9c5Svvej1b/gXhULW3IajrgFuWM4t4Pfzu7g gMqfFi/P4+GmLWjdMYDTm9OwZJ0lq6Qvzo4d6NQjhMydF67NVMrWJwq34NJvH/KPcmznXrQmFX4N R1YjGrLS30OJW/NWuADkJFFotlCcmoSe+mi8muGhX0fcuQIkQObogUbKtzGBKaE//ztZNMa3zmAe aHOEPcevVl+8RIcZQOOHm0ZOusmKwkGBZDJjBay6OE4eyaNJ9zp0GOWPHNAePEmR1dZ61e50QMw0 BAB/Im9x65xG2JgZBBgqDYRZe9n3XTSFqkZ0nj6LUHUxhRmZ6CVnPOoqATMFGYVIgLXoJL9vSaT+ 440JfPx9nh+QS36uAdTuOGZ+zaqF+9FdPUu2uSf13PsydFYD0rV6HOp5V3M/fkTM/JQmuXLc/dxL 8yl7D1NoASlpE4fOPUjPZnVp/+pntM7NQCd3x81dRtLHkWyN09tUYyk7iqhdvRneO5Bmzy8mJDcD ncIXdVWTgtxzpBeCp2sYfWYv4oFiNU66TXz3QXn+xEjmrzvJ6T4SLxclSPGcOZNTxQyi+noJ0RDU KrUxs3Bp2LJ05CvH+xwqOWAtIO3QSbzbtcAnqCGuWDFejefcvh84cCy/rGOYyN7xPqu0g+n8aHca NPDG3R+QdOQmO6CUgzUvmp3Lg+g1rA/BgaEE+wFWI/qsS1xO193QwawU54KLnzsyo5bkXSvYfTCr dDpv0XJmyUz0/UbRoVM4fl4BuCNhzDpHvlVxXeL11qsKHekb3mZ97mge6vUAgd4BuAOWwitknL6A oXICwRjP7yt+xHXMQOp7e+GuKiAroRhrpbWYJeNX/jg3lD7NlJSc2UJSrlTlkqPaetUisu7du1tF t7k3EE9YszMVO1S1HH1verX7Ru5FZE7N6T5rFq29cjn94VT2XTDcM/USMw2B4J5BjkvnGQzr74XM rS5ujmCKWc2RJMM9dZdCNASCe6g7Ovm74+xXFyV6co9vZOe30RRb77W7FAj+rhjPsmPKk+y4b27Y ROammSzddG/XSxwuFwgEQjQEAoEQDYFAIERDIBDUXs92omnvxxjdOwgHO4cWiVCBoAbdpdzyLtRP g9ysIyvpON8t38Sp/HvsKw65C017dKVrRhwbdwnRENzXKAjoP405w/xveidnx0JeX5tGyT1655Ut 75Z/k0yhXIO3l5wM3T9rf6QQDcHdwZzANx/+TFKFQY2VkoIs7uU9m5Ut746l/3OfTyxEQ3B3sOjI vJzOpWo2Oyp8OjJ5+mOE+6qRA4bMBPavX8uGYznXhEWmwjf8YYYOiCC8kSdqwFKs5eiqz1hxJL/0 DIbCnRb9hjDikdbUc5Vhzk3m4E/r+eHAFYy2ThCqsLwbDIBE7CezWBBjKFcV2g8ZxrCeofg7WshL OsG2735ib5Ku4jyI3K0JfR/vTvuw+gR5O6OWA1I+RxfP47NTOtt9VG2pO6Bq/TRzP3fCWSFRlBbL 9lVr2ZFw7X5saecb71mIhuCeRCpM4beNq9mTU4hB4UHzvsMYOnkMWTMXsTdbAhT4dBnHO+PD0MX8 ysYvLpJRaEHt6QHJxaWdQuZI01EvMvWhIvb8sII1VyAgoi9PjZ+EPPs/fB1no9lxFZZ3UVkSYEGf XTZVkjvTeszLRHYu5uDalazJ6c2qfwAABThJREFU1BDaezBP/tsPxawl7Mgo7YJKz+b06hZK4d5N rDyTRb7BitpFgyGlJsbLNtS9nMyTbNwYS5bFkzaDH2P4y8NIm7mK02XbTG/fzjffsxANwd1BHc70 JfMrdcxYFk79kjNlJ9GtRi2njmjL3kwl5aobEeGDCQ9yYG+2ARwbMGR4GLIza5iz6Bh5VRztlHu1 ZWQPZ04u+4TvjxchAfEXstE0m8mQHvX4Pi4Bm051VGF5l55hvulajz3kQsr3n/L1rlJXrNiEPDz/ +zwD+gfz65cXMFaULubioaMcufAnH3hiQ93LKck4w+Fj59EDCfkBtHuzHQ/UUXE63mRbO1dxz0I0 BPdGTsOiJ9NYaSz1CKXfqEfp1jwIT40VXWEJLijQqUp3CSi9GtHIRSJpf1y1nUbl15hAuZqGL7zL Fze+afDEUQ4GO50jd/ALIYAc9pzLr7DRs+rSOJ4q0blBPdwVF8i005PJbal7lU2em04eD+HlrLC5 nUVOQ3B/5DSUvvR+ZSKPu8Ww4estxGYaUfm15ZnIHpXWL1ZAdkuzC5lMjox8opb8j90Z1/cuyZRP wf365CYb6l71jEnCigzkMtvbuaqPZ8WK+X/Lv0lhY3gfo/KjRV24vH4rO45lYwFkeX7XmeWa85JJ LpbRtmsoHidPVDnimjITuUJrmtaD749nYKrFWzZlJpJBa1o2c2fTpdLlicypLu3qyyk+eYl8i/2u ZUvd7dXOYqYhuD8oySZBC0N69qGn9jBJeSUovINwAfIrlhfJ/LQpkfajn+bNl+uy/VASGYUWlK6e uBWe5UBsPlLOCTZG9WLq4Eimuu4i6nQGhTjhE+hIatQhkvT2218h5Zxk08E+vDLyWcbJdnAsS02T RwbRWZPK2l9SKuUz7IAtdbdXOwvRENwf+Y5Mti9ehdPovgyKbI+LApBMFGYlE1MxZJvJ3LeCdwp6 MbR/BMOe64EDIBVncXZ7CtGx+UiSjtjVHzM/exBDH+7Hsz1VgJmC1OOsOXTYrqKBVEzMt5+yrHgE wx8bw0NqKwUpx/l+7ib2ZNh7T4cNdbdbO1ex7EtM/OOmlpPyYli9dCfS0JcY10z959vRTnH+KcsT YfcnuB+oMkVqyTnGqi83cjDzzhTSXnEEAsE9LhoCgUAgREMgENhPNKSi86yeMZZOoR1o3LgLj7y0 idQbS1qNXNrzOa8MG0irxh1o3LgDzTqMZNrWzIrNLPaKY7cyAoHA7iixZPHLtOd4O6ouo974kF7+ RcRu/5pPz1cuZiZt/WsM/PdB3HqOYfr8cBp6KdFptdDSAwVgtzh2KyMQCGpFNMyXd7F8j542sxfw 7pMBKIAuTa6yeXOljbfFp/hk7kGkbu+xfnl//KvolfaKY7cyAoGgdpYnxtSTpBBI57Ze1Y7QJVdO cDJPTpuRXartoPaKY68yAoGgtnIaMhkyyrazV4dMjozbPKLebnHsVEYgENSOaDgGdyCEdPbtT6/W Zk0V0JpW7hIn1kVXe1LPXnHsVUYgENQOiimvv/dOYPoWvvrfNs5JrmhKckmJOcjWqBQChoxlULAD OPjSzPkUq1au4ufTOhQyEwWZl0k4dZSjWT6E1XdG4VIXe8SR26nM5p933ncfRsqj/W5bpsGObbeO 0THl+he8Jt9xTIGgMkrk7nSfvZJl/vNYsOp9Ji2WADW+jTvSzrf8aIqK4NEL2ez9FfOXb+Gjqasw AHL3+nR5riWPdfFFYa84diojEAhqhyrPnvwdEGdPyhBnTwT2zmmIJhAIBEI0BAJBrfH/vs+YsmVL Q3sAAAAASUVORK5CYII= --=-=-= Content-Type: text/plain I have attached a screenshot that shows parts of four Emacs frames. The green areas are the X11 window borders and window titles drawn by the window manager. The cyan areas are the fringes. In the upper left window I have marked what I have called the "extra space" in my initial report. a. is the extra space between the fringe (and header-line) and the window border drawn by the wm. I have also called this "extra line". b. is the extra space drawn below the minibuffer/echo area and above the window border drawn by the wm. c. is both next to the fringe as well as below the minibuffer. It's a corner case :-) > Also, what would be a good solution to this problem? make the right > fringe wider? something else? I suggested that all "extra space" be painted using a color that can be set independent of the background color of the default face. (I did so mostly because I think that it would be fairly easy do do; not because that would solve the problem best.) This way I could use cyan (or whatever color I use for the fringe) as the "extra area color" to make (a) look as if it were part of the right fringe. (b) and (c) would still look wrong, as would the space next to a header-line. Making the right (or both) fringe wider is also something that I considered. >> 2. However I think it would be better if Emacs would just use any window >> size without having to paint some extra space to the right and below >> of the "actual" content. One way of doing that could be to >> dynamically adjust the width of the fringes (and the height of the >> minibuffer/echo area). > > Changing the width of the fringes dynamically is easy, actually, > because we already do so, albeit triggered by user commands. I actually tried that approach. I calculated the width of (a) and then adjusted the width of the fringes accordingly. ,---- | (let ((d (- (frame-pixel-width) | (* (frame-width) | (frame-char-width))))) | (set-frame-parameter (selected-frame) 'left-fringe | (/ d 2)) | (set-frame-parameter (selected-frame) 'right-fringe | (+ (/ d 2) (% d 2)))) `---- The result were wider fringes but the "extra space" did not go away, it just changed it's width. The size hint provided to the wm is still "make the width of the window be a multitude of w" (w being the width of the default face). The wm still ignore the hint and Emacs still paint the resulting extra space using the background color of the default face. The width of the extra space is likely different but it becoming 0 would be a coincidence. So adjusting the width of the fringes can be part of the solution but then Emacs would have to also detect that the fringes' pixel width isn't a multitude of the character width and act accordingly: ,---- | (if (= (% (- (frame-pixel-width) | (frame-parameter (selected-frame) 'left-fringe) | (frame-parameter (selected-frame) 'right-fringe)) | (frame-char-width)) | 0) | dont-paint-extra-space | paint-extra-space) ; or better adjust fringe width here `---- It appears that Emacs currently does something like this instead: ,---- | (if (= (% (frame-pixel-width) | (frame-char-width)) | 0) | dont-paint-extra-space | ;; for each window in frame and for simplicity pretending | ;; each window uses full width of frame and has fringes: | (let ((d (- (frame-width) | (window-width window) | (truncate (frame-parameter (selected-frame) 'left-fringe)) | (truncate (frame-parameter (selected-frame) 'right-fringe))))) | (unless (= d 0) | (grow-or-shrink-window window d))) ; text area | paint-extra-space) `---- > Echo area is harder, because it's just a window, so its size must > currently be a multiple of the default font's size. Perhaps we could > modify the mode-line width instead, by changing the line-with > attribute of the mode-line face. Can you try that? Adjusting the mode-line height would very likely result in the same problem as adjusting the fringe width. > It should be clear that the device-independent stage _must_ produce a > glyph for every character, even if that character is only partially > visible. And since the number of glyphs is always integer, you get > the limitation of the integral multiple of frame font's size. IOW, > the issue here is _not_ that we cannot draw partially visible > character -- we can -- but that the glyph matrix _dimensions_ must be > integers. The current limitation exists because asking the wm to > observe the same restrictions was the easiest way of reconciling an > internal requirement of integer dimensions of the glyph matrices with > the fact that GUI frames are drawn and sized in pixels. I understand why the width of the text area has to be an integer and am aware that it partially visible characters can be drawn; and why that is a good thing. But the width of the fringes could still be dynamically adjusted to make up for extra pixels when frame-pixel-width / frame-char-width isn't an integer. On my system the default font width is 9. Therefor X11 windows can be at most 8 pixels to width to be a multitude of frame-pixel-width. Since I use both fringes each fringe (having a integer width of 1) should be dynamcically adjusted to have a pixel width of between 9 and 13 pixels. If I understood you correctly you agree that could be an option; but as I have tried to explain above that cannot be done from elisp at the moment because Emacs ignores the pixel width of the fringes when setting the character width of the text area. >> From: James Cloos >> Doesn't it just require not setting the .width_inc and .height_inc >> members of the size_hints struct in src/xterm.c and src/gtkutil.c, >> and editing the .min_width and .min_height code to account for that? > Maybe I'm missing something, but all your changes do is refrain from > setting the width_inc and height_inc members of the XSizeHints > structure. Can you explain how does this solve the problem? It seems that you think the above was written by the same person as the original report. It is not. I agree with you that all this does is to not provide size hints and that as a result the display problems that are now limited to wms that ignore size hints would instead affect all wms. Best, Jonas --=-=-=--