From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id CCliFy+hrmIz0QAAbAwnHQ (envelope-from ) for ; Sun, 19 Jun 2022 06:08:15 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id +o9XFi+hrmIg3wAAG6o9tA (envelope-from ) for ; Sun, 19 Jun 2022 06:08:15 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8ED0128BD3 for ; Sun, 19 Jun 2022 06:08:14 +0200 (CEST) Received: from localhost ([::1]:45050 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o2lj7-0008Km-Kt for larch@yhetil.org; Sat, 18 Jun 2022 23:35:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32918) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o2lhp-0006ue-TE for guix-devel@gnu.org; Sat, 18 Jun 2022 23:34:33 -0400 Received: from mailout.easymail.ca ([64.68.200.34]:57082) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o2lhe-0008HS-8O; Sat, 18 Jun 2022 23:34:33 -0400 Received: from localhost (localhost [127.0.0.1]) by mailout.easymail.ca (Postfix) with ESMTP id C938AE1850; Sun, 19 Jun 2022 03:34:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bokr.com; s=easymail; t=1655609658; bh=9RkF0cWDVzk4ATaqdZrAdAQR5AYb/5tBMJdaB/NKshc=; h=From:Date:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=Ys6gIbxsHKsiggH+JDFJJKw9mPZ8Y+M63lU7NH3lnrEpingFndYaIyUY1jWH3EUNF C38xoVnVe9RplAN3NfImwpEWTbWpHcDDtslO7Yy7NsZY6MJ4kEby2cs8ujY4354qJA aCuxhTi/VIMvyFIn63yTYe9aGkkyuVmp+tPpO2HAX6/ia+p/9JxuDeWsZElYRjlV3R LiR2lP3QH6aRMWSa4mW8wzhUswILXVZbAoTPkLXJfGyeE0IbTjA0urYHxMzCQzYZyN XY9zDBk3vlWZ7u3NFEZlMPPohfuPnhGT5EiLC2uZAbQZEU0wXamokxeYVbMK9Y2/VP GOLb4BvP0P7PQ== X-Virus-Scanned: Debian amavisd-new at emo08-pco.easydns.vpn Received: from mailout.easymail.ca ([127.0.0.1]) by localhost (emo08-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gJnBeOySle4R; Sun, 19 Jun 2022 03:34:14 +0000 (UTC) Received: from localhost (m83-185-41-223.cust.tele2.se [83.185.41.223]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailout.easymail.ca (Postfix) with ESMTPSA id B64E6E16BD; Sun, 19 Jun 2022 03:34:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bokr.com; s=easymail; t=1655609654; bh=9RkF0cWDVzk4ATaqdZrAdAQR5AYb/5tBMJdaB/NKshc=; h=From:Date:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=f06Ez60UMji4TolRsoiKDwse3vwViqlh88vzMicVGPLS0pqwUjDFXiPO/IJA/chIt NYj0E5HC6j87r+oSi1m7ijkc2lgDF0JgVBAm/P26FNZaA0l8gDHvx/ynHk3SUplYB5 6WsM0KRduyb5dyoUVg4toBQ2ykv3PltDzx7qJKjXldr3H4TsVwAvb3mjeJ2Fkn1z6j 6vOzoviz6yQYkbjFq/lFYUOaxruEaXDR391imjFWaA28Dq0iArulZpPzxWgSkM4S2f AS59pi4R0psEFHhssiSmKU5wPo7thbrbMlc/IRFa8E0jTPqb3oXPEsMd+BAQwbXNp6 a0YIrsEOKXlSQ== From: bokr@bokr.com Date: Sun, 19 Jun 2022 05:33:54 +0200 To: Brian Cully Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , Josselin Poiret , zimoun , GNU Guix maintainers , guix-devel@gnu.org Subject: Further thoughts on Xorg "vs" Wayland etc -- was: Re: Release v1.4? Message-ID: <20220619033354.GA2910@LionPure> References: <86bkvckcgr.fsf@gmail.com> <87y1yditsq.fsf@gnu.org> <87edzwwmfe.fsf@jpoiret.xyz> <87letyux19.fsf@gnu.org> <87mted7zm4.fsf@jpoiret.xyz> <87bkurfgru.fsf@gnu.org> <87h74j5m17.fsf@ditto.jhoto.spork.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="45Z9DzgjV8m4Oswq" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87h74j5m17.fsf@ditto.jhoto.spork.org> User-Agent: Mutt/1.10.1 (2018-07-13) Received-SPF: pass client-ip=64.68.200.34; envelope-from=bokr@bokr.com; helo=mailout.easymail.ca X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: bokr@bokr.com Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1655611695; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=4iZlRZjh/5igmXjnM3ok8fw1u1YBmAYWJnS9BvcLQNQ=; b=qhkbnKBZo5qN5cRcBCDwRWEMOJnUlcFiqp1HaVQKUlEdeDp67le7XlknTny42bj4K2vTIk afDYBEDaEL+ulm1sit1beLxJG8dphFWKzuqiyTXpLl3x4cfJHnKorhb///o+Fy41jN8yBs JFS5TlkcP2R1bB+Ps8z5+zlWar4SqMa1adyzu6UqFolNbxhzJ99MGjcoyjap2uSo08EOAD wgXtSU+o80XVLYTD1ZLD4Tp0vKxkyu1CfwaO1xLzmOkSTDecsaPXlwh+myJgmTKRNZVKrm RJfM5CXdlo2abmilp4oaB18wN45Ka//PBIzfcyQuQbfgx7t96tfvjh5uxlwz8Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655611695; a=rsa-sha256; cv=none; b=UP93UY0Xqu9s+tjM0CQPdwgNE5Pbu0e96Ncjqd2mva6aMt8J6W+X4pmFiHYCqBkgGyKfFP QJSvx+pRQpzqCySRSUI085MPW59Vje2LPSnbQe5WrVFCSECeAwYqrPDPmv87CyrYLVuyHc LI6FuKKqMLbiC41vrZkoHp2UfqU3z421++uBbuwy3/+43jMFAexiCeQEZiUtaYCwDWy7d3 wixzOi7SD7vUBbv73YLjQTGCo3OfeMvDsppQxstRa5jQFzmRxIZalHX+Sg6XmCCrTL3ixu vlC/FOv/Yyujb28DSeukd1prTH+hHO8A9AXwlEYC40wHiHXrASMy/gcaCjp5UQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=Ys6gIbxs; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=f06Ez60U; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 5.61 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=Ys6gIbxs; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=f06Ez60U; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 8ED0128BD3 X-Spam-Score: 5.61 X-Migadu-Scanner: scn0.migadu.com X-TUID: CcceWgV62bCt --45Z9DzgjV8m4Oswq Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hi brian, et al, On +2022-06-17 11:37:18 -0400, Brian Cully via Development of GNU Guix and the GNU System distribution. wrote: > > Ludovic Courtès writes: > > > So plain ‘emacs’ package doesn’t work on Wayland? That sounds like a > > recipe for a poor user experience, no? > > The mainline Emacs is not Wayland-native, but it (along with just about > everything else) will run fine under XWayland. It's how I've been running it > for some time now. The user experience is almost indistinguishable from > either the ‘pgtk’ branch or the mainline, X-only branch. > Yes, and NB: Xwayland does not shut out native wayland. It may even share more nicely than that, depending on system. On my old Puri.sm Librem13v4 PureOS/amber-variant-of-debian system... -----------cut here---------------start------------->8--- # $ uname -rv 4.19.0-19-amd64 #1 SMP Debian 4.19.232-1 (2022-03-07) -----------cut here---------------end--------------->8--- ...I can switch back and forth between Xwayland that does all the stuff that needs X or Xorg (gnome and browsers, and Audacity and all that) and my hacky experiments with bypassing X and talking to the compositor in C. The compositor happily places my pixel buffers on the screen together with firefox or texworks or whatever else is running, so there is not necessarily a Wayland "vs" Xorg conflict. YMMV I would guess, but works for me :) This seems to me like it demonstrates an opportunity to encourage developers to get their feet wet with X-server-indepedent apps. (That doesn't mean giving up all the graphics and font software that paints pixels into buffers -- it "just" factors out the buffer compositing) My system also permits switching to a framebuffer ( /dev/fb0 ) tty3 based environemt, while leaving the gnome gui stuff running. Ctl-Alt-F3 gets me a console login prompt. Ctl-Alt-F2 switches me back, whether I logged out of the console shell or not. If you are a member of the video group, you can read and write the frame buffer as a 1920x1080x4 byte mmap whose address you can get with an ioctl. Other geometries are of course possble. I wrote some C to poke character cells from the kernel sun12x22 font. Long time ago. I have been meaning to port my pixelpoking to wayland, and have wip stuff, which I will share at some point :) The reason I was in frame buffer mode today was the gnome side got total locked, so I thought I could Ctl-Alt-F3 and kill off stuck bits. Which I did -- killed the whole GUI side, in the end. An alernative to rescue/maintenace mode, before going there, IOW. But since I was there in console fb mode, I wanted to check that my old font demo worked. It did :) BUT: Fn Prt Sc had no hook like in gnome, so I wanted to save the display. Guess what you can do? To make a screenshot: xz -kzc /dev/fb0 > some_xzss_name.xz To display such a screen-shot: xz -dc some_xzss_name.xz > /dev/fb0 This works fast, and the compression is better than the .png files from gnome's screenshots. Of course this doess not coordinate with anything else that may be painting the screen, so it will get mixed with updates in sometimes curious ways, since the compositor avoids update screen areas it thinks haven't changed. If you poke pixels there, they'll stay until the compositor gets someting new for that area, I'll try to attach one I made. It shows all the kernel sun12x22.c characters with bounding boxes in red and hex index numbers at the array edges. Maybe this dual fb0 and Xwayland capabilty could help someone? You get it all "for free" with some systems, and it doesn't demand anything. There is tricky stuff going on though. So no warranties from me on any of this info :) > > (FWIW folks like me who use exwm, ratpoison, or one of these geeky > > tiling window managers probably can’t switch.) > I don't know how much work, but I would guess they can be made to work alongside wayland, if not using wayland to best advanage. Best would be to wean emacs of X, IWT. Otherwise they can probably play nicely on the same back end, not sharing screen space maybe, but flipping between with some key hit. A quick check on if you have drm-driven displays: -----------cut here---------------start------------->8--- # $ head /sys/class/drm/*/status ==> /sys/class/drm/card0-DP-1/status <== disconnected ==> /sys/class/drm/card0-eDP-1/status <== connected ==> /sys/class/drm/card0-HDMI-A-1/status <== disconnected -----------cut here---------------end--------------->8--- BTW, if you want to hack native wayland, I recommend [0] to start with. The examples mostly worked for me. but so much is developing so fast that things like using anonymous files and mmap-ing them to pass to wayland as private buffers may show up only while your're looking for something else on stackoverflow or wikipedia or reddit or ... you may miss it. [0] https://wayland-book.com/introduction.html Sorry to interpose so much, the context for "this" (I think) was: --8<---------------cut here---------------start------------->8--- > > (FWIW folks like me who use exwm, ratpoison, or one of these geeky > > tiling window managers probably can’t switch.) --8<---------------cut here---------------end--------------->8--- Well, I think some may be able to switch, or coexist. But I've been wrong before :) > This is correct, but I don't see why this should prevent Guix offering the > option for Wayland-based compositors/window-managers out of the box as all > it does is offer more options for users. > > > I have no objection to defaulting to Wayland, but my gut feeling is that > > we have enough on our plate for 1.4 already, so I’d rather delay that > > post-release. > > Unless I'm misunderstanding something, I don't believe that setting the > ‘wayland’ flag to #t in gdm-configuration causes Wayland to be used for your > desktop environment, it merely *allows* it to be selected from the greeter. > When logging in you can select from Gnome under X, Gnome under Wayland, or > other window managers you may have installed under either environment. > Without that flag only the X11 window managers will be selectable. > I think you must be right, Brian, or we should "Make it So," as the Captain said. > -bjc > -- Regards, Bengt Richter --45Z9DzgjV8m4Oswq Content-Type: application/x-xz Content-Disposition: attachment; filename="xzss20220618_210042.xz" Content-Transfer-Encoding: base64 /Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj///gGX1dAABv/f//o7f/Rz5IFXI5YVG4kijmo4YH +e7kHoLTL8U6PAEmo3Hc38TLbWbsqVEbv4S+qW4X9RPFXdJohQUNTaC+ejHoz+v67KfH+cXO eyYuRVFcIvQQW67ZaFtG9ipCPKSQZn8gaUmCatRFopfFdyCknZ+QgNsgJ+zTWxTSsr1LRigh KSJ65GRxN3P3F11a6ZBh3N5B7XzdxrrKVXq/rxqkm9EXkb1KwvYq/+JEO7yxbiUL9q2zQUuT FqtTO4Zqadv0vp/LzrtQfuuCNWv3ypNwu3NR+sEqb667R+5lnML8O73nuSwlZ2g66quFenTm UysxsIKxzDQKfcVgsY304zQX5J09ZfgxdHWGDymARhZUkGEWmOCqYZnb87QFgzMjOIyOrqmP Qm629GSbKQJ3eYiRK9uQh7PCasUxdOWa6XfvEOlj5CDOTiUTTbAFOTSd5d56mZJR0mJziU6H TenzImD8gEew6IOuud0O+YHtNcQAcsYN/Ya8L2XfOlvu1oGKaUUH/2iblGJzpg0S0RoS2FSO +s9ud/NVsTknzuI0Mmxd9nRYq36TAgqvE1HpOdJeUf6fawKeOLSTOMYwdatmfFIkLPJn6/pZ 5HFouebFjfpTYlsGPJU8iIx4DZwyuIZ18TajCZoTiDdVEo5ASCbjSVuGKgKsvSfKWTO7pHmw sKuLPx20z57FuqwXZa9dvOqs7liCLRYV5Q6CPEF+k9L3os/S9MqcAjPleE/eRgOVBXQrlGEI tetBKjl6cwBrk3Lmj5q4HnBZRp/NsvmWuQnp0eB1oBkZnOQ8a+qIgH77N3bMnA3QZh4Enuz+ 9dVcAmjihaRrSdVu3XjJvuUvnvln9/0cTg9fbd5Zlh2KHEqwORRJDTCFj2m4U1KMrdsIsFxX VvI3JPJnxaS3ufoaE8VqcFWU82DIVXxlz0BZ1lAAeeBWXXLcdoKK3OOhf7HW4aKDpSb9bRjw tEdC7OTfNuAK0av7A3xAzuFoW8Mo7ZC3/0bDUSyyNKtuw+yDShvxw4bzfjmPDehlnVE9KYp7 VKEu0R60AXykv4bFEWkwDih/GiWi95++qBTncealChgrb/T9Z+OxSb+40qASQnZ3nF/uRZqx WPM2J7BODdsrVzs2UGoVc4qiV/IxA9k7ZKz788quIcZ2a3JPeEN+tHdW6aWy2wK6Vzc6wMrb AMH8Jl8n7tO+5czj5qsdnvFNgy89Q/pYRZhgIeAV4z2jgzA7M8dcxzSVwgA712PxzhxFN5vV /+Jb4kfYhRwI2OBpBE6RT9/MkqKocj6KwtRFSGYY3oKbQjJEQSl2LmT1Qt/TTxUEKgEE2bPK 9kFCKaEUytPTINuHz3Uw0rEz6ctNobgZdHRUvxQ1LFls69cpn3DE7x1PfcZulAlX6jGDXAV/ LcWfEvedTOaGLQUD/6ErJEf0oKDUhmod2YpX2llDS0jn8QSpk7doGaCKvW0rKNLwTU4PhS7r 8Kcv6qkLuFlykeZdvsrVsr9spUPZ1mpRpS71Vu49v9eaulWB6Cjerwk2OFivJxUNdIxED0Yy JRkmLZGCXYFdcWN+26wI8ILkbq+uP6ni6hIA9BQXq0FJKp9uEFSUBAwz/Qp206BKj/jPU3A9 UH0gA1tduUBWONv1h6vrameDcyVhHzhmKJcZ0i82GvLMwSnOu9DIG+CrwBd08P3nkJ4iw+Xr 5q0m/HMmiSQm1+OtCxbsW7HgFb7n2QVxz9hkAzKcDvZxR8aytKTc3sdA/IVzpXDF0abSpkci dBMY4s+3o09BFHaKX2chrABipiwuTyjBYdnmlt6CzaQdrCri0HuMIecCK0BfctKOsQ3X0WRp 74U+SCVUAdlAYk8hlKPOz1sfyikVlLisO+i8umYe6zSRtXONr2aReQFGppPCem+JFzUDlO00 CLm6msV/pdI3+5RAtaTWP1IFGEHH/WZ/55lflg1UMGjIvdT81xdbAVSzofFtuw5Kn63MH5eA doxpLnfFWgPwLid54gfmJd6qKQIeNH2OxHl/A6e3Yzzcpfg4/qSr7qIkeiF0/acMmttwijZz W7LChpUlSVtRje3rB89kWbpxpGhuA4T+qnfwo7IxuTQBA/ShBSkvcXPw9w36KoFER0NISMkW PzJppMpaRIt1cN0WYItYVfgI5oPhp0LL97Dsrf4gW156jqvnF8u/IspUv74AAHduMCM9U2K4 rmqnD0Y9g0i71m9/mqFViVR5gsqo1WdLBu2j+O4lUIjais8uc6/N66lQBY3ScVNeRC3bUgmY Mbh0Ud9l8sp7HFNz/JuH2qnZUYeM2pO3jR+5ABJNJXoWI2GUg0ODWet4/oKbqkr6Av6epYj4 OVMnmNqolqFrpd0/B9+w1xoymF+nWYIXY8XgTI8VMYGb+jsLcsetL6bH0HiQx2RXO/7VTyIy vW3eRXmuzOGaOm9+5PzNgovyysyCuADrjvBJt0VSrjaG2r64mPykLEQxsAvPGSmMYGl/dIbv SZBealtvY+J9vgp7FHDVFXPe8Ubxuj97HpbZ+yQrKGoHBFng8961lOIzIeAen5e0LnZ9i4Qe S8B7uJrAsG/KdWUr+edlXJKYhFnljXTRI2x8FKD8ZEazMFF8zM5fb8ED6bUuDSnv6wZ7XcZP tD7dq3ZvHJrMJKDyu1tPgRQsbrA2KtAJO/CJfkp4bXklx300NHtqIEEajPWd4LIY/TkDeTYA B22RQic0NJAUFagWe7sdjUxfBi716eO+axwv6hXUUhfoyXR+P60Mny7WV3CS5Sl4jTrkMKDn ynn0fmWWM4kBVF5nAaqJsSZUZ92GipDL5aBkRmLo6Bqoser6RaD7Z4+vEpN943+sCKMvCrHV NSYMQ8AsCaaG4xkkXISGiZqqWIyF7qCXrGWigpyyE4eWyV+htm/7WfrX+Yfodp9TcFiC8Bqj jfs6DQ/eiSJpT/AedQ9gjQ3U/a6IV2bnOSIdt+6dA/Wip5TL9wizAz3Ts8cxYjaoNnhwCFw2 w3qBrCvU7Zp0Zo+vNO0q0Q8nAX8yB0/UefTAhiA2hd+b2sIHGU0ZW3+I8cB3DTmLpWAv7hwt 24vXIG+HwiLSA8SP3a/YqZgrsLj3uyl32orHUf5slYBGix35zSLoqXoTrE3l72RHFZHRPFdm rVNM2So7NfBUafb/0IHBhbMSsASqnTsgomFTzlS4QykH6H5pdCggnaE/N+zMWvxhBGStJ3Wp Tgl6Wdl9WJiuwYDfoqSZqylhARzGLQf9B6PiMCtcAr0xBiWrdTGaSx751Glzm3kdeA97s281 meOgGXX/F6R74tmd2cbJS9rm28H8JvjgROKG5i50qa2/3wLataa5rBqn3AKWxiLbZNkWZxIQ H9WxMkQ29OMseWPv95jPmwIeAp6baGMuWr2cWKyC7UgY9skoiP9oeVmTQUA2CI2dATm9Z0Sk /ND/4E2D4m/nUhELJOAWPM6izQpQseWsqJKbuE0n2+lplNk0eEiGZEbtYvj5dUGR1POL2H57 DfmzD8kD0ObUlxMadbybSYkafRHw/1E966JQb5azMgWU6sbCdpLpbpuWTHpKFq1abcwmGzHU lKrnPRbbohguO3NU1c+rtxSNQE03yodPwLRS/CnFp57/nw7xydjnjuzTfaNYsIdE93GumAO3 XskharKTGRRMwYDx//G/OIfVel4+26azbBWSLGEp2c9yAai4Xj3LWAfj8Cn/wQ0QXa4HJOOm iAP3V7G4DG/Xs2YT5sDc7TJPCza4DJeTQ0T/E2ffCwgubxSDTe+dRgMww9+eI8zSokOlYmaF JDhX3sioK3Pyw2nAXvDCmdG+eIsB14jMhRXIs9kqrKuWfZhvJKNSLhKTZbRWWiJVG23+FGtF m5cwJ0+bxJ9rnOeFbEO2Fe7jxS7vj8WPcCQHFNl4AcjgN0KCOK2H7/KdtPxgvNcvyTl45B20 iHEX052KlyuuDX35EVilo6Fi+fUK3qvic/EaW61cXl6TQP+L+477INKV8ZFdNiVnkLFzsKD/ KTCZJSd+o04ZlamtyTyCm1b2AePIawhHNm+vHaWdnsQRKKdKxir376pF4IwvhEnPUVWE3KoC 8i1KDs5k/uYz76/x8x7Ar+Sys0O9Li5vkGsg2rQDoj4uuEfb4qHmxVfdfsTQMLkRk32JaHyq 3kOe+85pOl0Q3EdeRWS4zovVm5JK35U5KDCQ3afugHhJvOCwbhd9I/M1zkJTwyLhQu+hFKZV utGxSP93YckAAjRSEBozq/7ltk9RMao26JBlEF+q6zLOjo0TFlHGnzrMBTHlEOV6vD7/28pY yv4orzQNhk4H87UvVpHgzVCFv7B8bzdeF0G83FpTY5gf2vk/q5YwnRbZMOjNiHQaTgUWDcuf /4Hc+pxoT6a400iJWAakLAGloG8rmYal21nSrnoVcOHYWe71znVaciz2XyZla6BIzjOkY3DG AFX73bNO0zf8T6En1BTuuxvoTPJtp8/lkyy5ucndZtsyzEEFw+QW9Ypjju3t5JW4+XlgMQN4 fgqZvGorVPoJIKpQHKKdR3wA4NvxUKzPJWAOvCy101BK2mBaY3Pa27msidQUmsqTI9aoevvD 6USy+ilMlbIwzFWHkP4bH5IrdGHzoqdyDW7N1Lzy6QQfkk52IUHf2yFFb2h7Mslemspk/xhx DeWaGB0xtiAMdwmmmslzLFvgQ7MD1FxUjk4lcchTQdQJqtHF14Da3PrVVk8KLh87bqOUkSdJ V7K5dhnv+MHByglNa0wMZKihM+h6eZLLJcR+VGrAHcgqLUPDh8k4ugPDovDbRDjwBFpUqRJ2 XLSoWxFzV55brea6b67uZOADqOElBJSd6KoIqHMZoXP0LYT1JvwRsDLcjxy5FfcPenrgg7eP bWU8Xw413UfRofs3AuNPzWKr1ONdST0VmywOdFvNjyu1MtjLxlM2SB/7El5Ms/FEoTq0eqZB PH+XhpWfQ3LGkF1SSctnOmddRBjh0i53FqKUUUtYua3TBa794Njurg8WE8/jg+/fX2XdwTGY 3A2IaZbZ3CV0MGEy7r9gRU5qTeCHWgTnIL/ULr9Ke39MK69P9OhQOqk7r7Jrg+YzxXSOnS+t qfOlPGZvysw7CFKTqQyqKhPSVx38kOBW5aqkPD9bZZe0P77HtVHA8FwpvsDYl/cGjwz0KsTI orVNMitDKEwy+vrDCQg7jX6iTW9UoOTKLZy2NmvAgvrkTVJA9j9VOP9piNTZyZzO80nmU9pL EYIdAfSY3RqfVEHAhrxWnU7hms6RgMToDiR+5eiNihMyGSlJYlcK3m6KVRWSfb0tSwaArtXe zGZYDR0lL2eKGKshvBEI/pSUgVT6KtSB5wsFlTlfNHzXipq8KU6FwwwLxpLEb5HNRb2qDN+z piRbKDT/EYAJXPAVGmoznzQQ0byo49hoQgW+GB4oPFMEsEn8DpMXnnOGTvtbrNfyi043eR/b 2UmMSJYsXlHFaCiZM1CnbE6Thv8Z1WBJona5T6IURrF5xROIiNpz81AyIEjrZkZBQyg6D6Wc /MWhjPVBlChbWCmyt1Z2t7qERGJYypSfvvQafLzilACaFi2enWfGohqJ6hMSRC81QEVXP6eH np4sXHLVsFtbIK3W7OCuCIVVRga1wnKAJ+PJF6K0Z/Yfy8JP9NE0lTZAft0BXvb3jGel6Hy4 5FSlQ4U6r8Gwdwn9FLQa4/qOkCPsOKOlGeXmlaLALPstpJJDbFZhekoJiwtlRphd+BfUR6Yi GH4MYtGHBNghc8SKD+ZrsAubwB/fvcacX3fL9aMdaQcduMJ2OnbumC5cUYUkRAYRTKUfT/wS YwwblKEjvUYtzZAcSGyNG87G1qccTXWWwkLbUdSaPU8pd2VKMmVq+4mvVQkkeVSUAakJc+Xm 5RRLvtOlgr5zgxtMEaHXglFivPrLwCWL3OPmz94ezWKk/SycyWaQ9ITwUs+qyLhYlkeNc36Y go0vwqNPjAN+gwaPI3FAvrUpHZ7H161L36KntWKDfjVtvI4ayNd0LwDKc+WEnW7OA6hL581y 5cPh24s6jaN/UpYpQaZPxI6L93E+/wp/ySycSpeDxextrK22pUhMIPA5DIJit2yBjTnXfDTV bhAFjf72QcwHp455f36y/Yt/h4/D3Y0F9QC32iw34fPZC2nGbJcepbevUlHVTz+6fj86ZqG6 IC93n++UYMLyd7Ieej6cQr9MTKFLtbCwIZw+JTrgZzV5DzXunEeeq96olcijHRoCR3mCOQAh r0HwZPRjChv9O1XWTRI3C3ZdwxEj4Q52nZQLMI+CjD0CxzdiDdC6eBId3eGAIUVNQzVHz5b0 28JZXaMZpYsWPm5PBTpP87ZezyeFizaKsPua9ShxOcF5LkoE3PGC3mZGkAJ/Xjtr/z3cY2xv dDyepiQEEdCntqAreF/H6HFoRkZ1Pl16K9QTvB2JJSKOdlYmk0wGx4q/wyz74WtBmVBT2ht1 eq/PlV6qt2aRJVGOG2N3YFovHkSKoB0Ax8yfaMFamtpcrdjGgHk7O0mZWsMEH+j6ObeXmpQL dh+0gj0VEGGLo0QT6+i3mOvRCV7l7qYRy/vXFX2ox5tlwUe7R3/BTjCaWIRNzwzAc5JECqKa gs7cgQs/ZHADHm686hNZRcHIc63MH8x2Hu8VHMvmeEF0alDo6QSdJ3CFs1HIraQXvM62FuVz 7PDidlYepAeaAW7QT7J2b1FsBhgz0A13iHHn2VCIM68DVAQK0Sa4uYImEsZ/APiC6hiCjpsl rpLEMzDWwr1L/Q6zsLTLaqf4AV+KklyzQu8x3VF20TqoRotYL6fRHzgfV4WJ2Yu78uc7LMy6 bgLrdY/WU2YNmnfN9cxrDL36i+EtHdaSXzfdYQ9jxHmzfluXRC1IJmp3rGiXSdLvJI415i4n iz5/ljIGsEoKv7evKK3ggMVNgZBZCRUc0P42kE7ceUM5TE+gfxgNC0nOCv/t7yKZtsEIdEkQ TqZGhuQUTOGyevMANjcsOsRLVfH20tYoHupGOqxJP0IsA5AYFEo9rq2KM4ov1rvgNRcRZcrB Y6qARHfNjPvWVuZCj8SB4seaDq2Tzt5F+m7/zrbIZRqVpiA+XN4H31fkNi7M4d+eNcRP5qyD mpNlx+VR7nbLAeOOEahLa3iOEOfhlCJT3Cns834HjtVu9VKe1NGraz+eAi1eHT9Orwncv0pl gDZCYV0s+N8cZTyB1oDh47O5XqDLKiAtrKANfFGa/8bKEdewQk0zCBLDC7fBpQ95fMPAu9MO 080vWVsw237QP1C37UGuTlkfss9yiqo/IaRIFdZyTlbMR3KbAlpCtrpYTDSGMB5mgSPVYeWK 6mutGkNfGSCpnznZUq+8qCB9FCdWwavQdmbgi7wsQtFbtUiQ7v+7UEonLq6gCHy0oqQz0DGI jiIqYRsjqC6yWeQk420ZX23eadRS6nX2OLr+NGYh81yQ7JE1MpC2nteYQqEAD7WLEVUhm6bh v0J1oHQIGoNBiR6s1bhi72zS2UxrktcvQpKEVNo2nRy3yIDHAWXyVXDx+hSxY7axPZrM67Vv FbSmDzkgRfIqBYf212SwXgz1tkVIdRyrWU8g8coG8CoD6/W13qtkiwREsxyRg5WAqTZewi0g er81RWKCEk0lR6PdsC9d4THBitlYP+5PeaUPqrJ/sH3qiPuYtfMuffy/2ODQ8PFfEnjHqoqe pVR+3+3BCrYw2zwDKRk4rb5HHBGHyvOOoCPHeQMtj5Pri0jvNNPEBDWALnBk4dh5zMxTk24R lsTconAgYZxYEoAYNnphTuv0gs53PT5ovzmPJsNx1+aei2ZAFPUqh51Rp9oAwBDDfPVIIVe9 Mms2r76HBIw2oKEjNu/vy4YyIHNnYV43MgEbbRVe0QBjgC/p90uJKvfrQcN85BUJp2G8WMHE 6kuJY0t0Xh2y9ILhr4kGSGTozo9v0i56/nCjgJwvYdpKzkRML93mX8voROlOuyc0dI17EYU9 2ewL7bOQ65H7wtjqgGaxgZaU6/6cAScAcjHh2yl1Agw24ehQhys1/zU81WKroRSOYgt5eF80 mVqSK9x9gSK9DlL1iHyfzpUQnV5mOMB16/k78cQq5ThRO2J1Rpg0J5JxN9z43UorL1xYfGZE ObkTSg0Vfl4eEwDuwTXRpqLPd012ahdpn7B0bqSC7i5pSXUhOH5HzuXpeytCMA4XzqSH4bRp 5Yr0xNVW7URdF95nq0NPJdFiIkyrnU5bIlTjeW7bQtFKPq3LqEMFsmxQ0Hk0stP7ZqejkJt0 gZY4r6fQ1K1aJYmzs1E+iZw9YUwS5KpcbgF9W/1WfCqQZqP6J8gxTCG283JB4Emo15DCkjK6 QJ3/9cGv8hYtRAyUHNM5YlSIddVW1Ae7CcmKkyqo7QLAhP6rYPZiTIdHXCSTg+5OlcKiopss bFci0PViXFrJzPk1stmB7vLKSMcwTuR0iAmKRgvZ2YgyZWq1IaPqq73d1qkA2bslJCtvopNY 3xomEjBrosB9sNK976NxytgWMfphLItdI7ftjJ9Dp/rSi1B5BTMamJ3JIIz3PmgQWSaVaaVr GqqN0K/uGEhzXiK3MKVFIqkjlhw57byzWoyJeLYNQRe8jaQ1UIeKuTbCbjwY5Z/wWyhw4Tgz 3qS469Fs8TPDKhCKGzVzIkPNi6X4NSxwxC9lYFm8vV1lCjHFoXWkt0cDJXjt6Rogkxqp7+K0 x6C4ni6N8NIxHS+VTvX3ilXSFCjUbJ//nROqAKoZa8MlW+Uxd7ssuy6CBysP29S9qXCirUsV bf7uJhQrt9toyEa+L99NatWqu/901z8HcFW+OuoCNGqdPke1tUxVk8AVujUS12dLjbja4Os6 1bsV9EZpmshLNLSMmiaUKlggAYW64mMnZP2tYZcTIZO0FoJsve9YDoFKkQSvG+u/vF6VaEM5 ks/S3w8SSu3JD6R5KacagK8cF5WV6jRF3Eyn+UAAuPCoQvGqWfqtSl+F1yQWyOb7RZ3qgNnY u+miIyrZsZBHsQCfRofnF/Dui+EwjJWAhPU/9aEgbuxrGk6zqExoUhAKfH76JqZwHJIQiGRM r/0JELv3c+IxAeIKwRT3Cv3Qy6L85oxpsr+Vm9u5yVHYp3+dw5xI1xj+qXXSPdkIKh0DRH+g nku/W8Ufk90BM9FR7/4UoYZNzKXReNzoxucG3u4JbP7zRj7GytUfG5NAXc5Y6vZi+U9rtuAK x6v9prSrHt9cgMU/K84Spdftt7KrxnY3PXfcLgMlKt3/JfFNwsroWQPLwuUgmF68bzberALn Gpym3cVvppg2KeV4Nc9kd3kC06uZacBRUCaTMVIqRPuFFYVgW7vrSuy+yOA7i83Elh0QaDue ModtmH9J54OOYFnMViX6u17sfFFlb27yLhK+58ytj6bK0tptf279NFEaZa0vld762J4H+ogz +C3znG7Z38PcAGKsRIJevRxPO51TRvljFOFkyjqS7oSuruR0CjGevQo5kOhH3pvBqWqFR/Wy g05D4MBL4LCcSRXPmXQ1Y04+WlFehVrRbphpg4OWA7VfIpTD1g6gVOuacgOPFca7gtFZyI3M MlNyyqUMMovMUxpKCX6BeYpQuRGUGS7BTV0Fb1k5QNFjcXCTaMNnSCT4Z0z/kVrpKx/7FKEy 87qRpSwM3b5VkBOnb3KA7QH9tk7GETTjFKj0yGJRsDfY63LH1kmKgyG+lWla6NPRTtE2NTcB 3abxJFh+/6n72zmBZDx1Q+QYGybeYs372Wvg++sl6363VKuyllMTj93+V+QMmYCpeFXdRmUu aBkZXo63NwOIxxmJXsDu8xBfj8KESu2nCgrjg7LhjZGE3zR/kfgaH+pvWCXpDS2tc1Fe/KA9 4P41AJYG3EFiLNwiIH8bWc9NcNvLDe+cejSMk5kbxj0HeZFc0Uuc2AxjqMw3JLeJmgw9pfQm H4ivSQpbXcig8MP6/OmdyiYxjpgc4+FgD63fRsGZEITPxUgdHz6qrY41KI0Jz9CNzbxaDntm T6aqC2RScA0Bu8icDYimitFi+Ir4of4IoUFiUY/+YYkm9IR5/Tdvpi3TFjL3lMo2SSNiLx+R wHavziUAjIpdJgdf9TTknXbICcJ2cNmCeT2clBLxjGjEz/w1hHDaX8sV/yIxEVQyi6cLL35d qeX3m2y9zKekMKpRDppPBo329bS/2I7m6f1t4qAiZt0VkH+MfyN8NGdVwWbPu6Dc0dTsSKM3 KRa9cDlrmGlSAjR9mAmWZEBWjYouTTygWWmrNTL6RTAMyPFUlHPAsrrlXXZS8Te64OiHD3D3 q5RIo3ZKYnMMz8xHEsFPZLWyPuFK+wmQVne1HfqgBqvaoAN4apO+tFaDWXatuM8ByxcHUPXO 8Vhiq2AzA7ZROALntHDldna0jU+v+8qlZ/nOhnDVC/mBNU0kuXi27JIV0DwWJ6J2dzzdx7fN hQvO89Vok310mYNX1BThMOUONgYX0kgS1HLw/CeLZNQm5rvGCM4SzOyECrNzrWFD/dHiyYdC e4cL73vVTPWI6mZ9/RGwzfWXw3Fe9IDBF20hoWLu5BuKH4b4ScWc8AobpFSoKYM4J0e/ZWmP tqhCQhejolQ18Ws8GM3sfiY/zKMvrHLA7tmRUSQ92PeExcpjQ8pKzEhDRBcc1DFIJt75Ewvy xm9RU1jPnfMYQVYLARCieCX5iZbUMUu38dSU3PtBvBiT4VQlE56cNZ3ufbXu/fQSHPbDAKLd Um46nsVQZlwNELlB/aVTYKyRCKVsFqhva1UKFgFJ84qwoDpgsKNmYMrFQBxxSwatae2sWpmQ KrrqCQzMWJ1FWUOF27yKrDZxwNQo/mBo1+0VWXBOtzoPV1PbN5OaqsLvbC9g54OX7sxOTGv1 EXL1OFUYfXKfbAmMn0dedw0LsJ4Y33itiEyYNdrMGT9TReVrP0ZlIV/YmQ+LC2z03I5yzlpT FUJMS+iWFin+QNsrHkS4bWyltdhjMrLgJk7pMmy48ZEOGgX9qP7ZgtcFkhzmdGOpEOt0twql 6bouqv5OYceQOLf95DxfY5+knu8FxskMHWSxlWYFBChXxpntoG/mTfufJrG74z3araiMV+OP jx7s79qT7jKYzZZEG77QJkxKPYB3mqybExvDik539ULJIWPbmvHkaNl8GPhixHtM5Qah46jp Cv86x1at70H4zZpu7jgdhO+jnCUxM/zLltRsAWnxd4PUMZoOsNDhwVK0j2wRxuC1EVnHboar xhJ4knJLkPd1ZXOzTn89Rr7Cul8QMaQqO+HUiRBz92yK9nhxEOSgL0myU9dPh6aRxd02fR0o 5j1ocWfKmeVsXFXu+imBKy8An89Euz+nG/q1cWVfPBvhBcX8UpdQN5ORVmsH34m0RfMgBmU9 TvpKIf47wv/yqa6MN09en5HLA6yKaW2KMX8PjCaADNldF1kR+SaKpuAlLv5c37BawpeiJfk1 75TO8uqO2jb3lAiAILUACPzuD3sld9zu2Af17b7eOk6ROgfysfqCjVvtjT0hPiUoAnmuI01q 5vphmh6lqINbf+uA0dVzmOCGblu7yurPzKj6uvE8nShk2gki8rsoHecGasiw/EQpEzFPxqWu ToIKT3XwxeyYKky59EmuRUnAHcawyXJBHhQCQjUAWT1p7l5jWjb/pstfPpCUYeCyarAo0lp1 raBGjkYRstwJ7pdTLsaykMqXA3BvUXAAxaZSvHNsRy9HzcF7EURXW5to+2IGTQLBNIZ6oWSe A4vzwj0NsxQoZNsMJkx8fPZpSeJ/C9cxN/cOqP0MThax4TYi6FAA/XMde7ZZycMO+DdcxM7c zH34c6hPs3USrTDCt7wJW4nk/4XZth3yaMCKKfHSLuzPkx+gcCLMEDNoi//Itv5gWYKLli+Q NGWPIinyDAonYomo2Vp9Vgovm/NLaSLUCi+dFWbymxy3wvt2zlM3jDirlbRwB4p1dhpM6LX/ 6Vjiya8mJOjU1IK0+h64wlXv3Vz0KdJlQ+UHilBe+o3IFFKlM6MF6Bf9kTEmy/xbdqoM5fQ9 YRjddnRZl7fm/vaqG8VF8bb0RDAQw2yLFuEjU8W6ynY0zm1qlerE+de9/KQDAd3mizVJqotk TZJ64u8IUFwrAap0mR/GLxBI3VjzrUwsghAGLAOsWApi1cdYnGJFdXPg9u3tvquCpzMGhTTg Yitmrp44onCiqw4pxw9yf0jH40szcju6wQXiUlI7JdzQFP9FAvZ2eRoIRBrULyWaT3ye9dUU 73/aBd4VhKalnU8zhdZmIahQE48rckRqYXfot4hj+cgoR898LdVlE/9zaBPgwDnuKEWfO9xg MpUidkBcT1vqyoXj5Sn92w2JA8ZhtrdI7BrfprN7D/WvF9pNs7OPaWxEB+CUmKkXKLS/W2vC Q2+2EUgJ6tQt6ZEXkzibGLlUeFvlCpzx0eaPXycWQMeYN7WoV5P1+0HXdRP6rw59nIyqtGLh ds2v+CQ6WpoEIgz11i9Mlp1kjQ04qgenXnnTOuEQAJnMpKa9RL5/bt0elh4TEh5d4p/wn40C 4Ig6I5UpQA50iw2eH2zL+ovWzC3ueJKtVf0xEEdViRkanZmm8Gl9ZQr5cuQKVJumm9tBpsU3 J9mk7mN5ww0rkVyho/AzmtV98himjIRlf2OBIXHdg41bKGcaqD7XZ/ZRvC/+QkEg/ObjN/xT EANamuz83a5GGJYF1MmKe1M6TNrvJamX059nOW6FkrLIpk3elilXVzUd2ZVO04dHGM/S+zPg RzZJI6FmypQ1+ev0a6GLFJyohDm5+7nccD1qMLmpXEmUtovuXltNvYZ/UsgV5lf0OtPYXUt1 ormOjGiLiaCScRW1dzmcIfGR5l9em68Y3IPjB/78l5o4lLi9cebqm6tMwwEXnEWbClr+dUPi jJLtGnc5pYDOAatCjumC9ulaL0xFeRgwlRlS/YuJ4KlYnELyjnjypDkUXPRWOUpQXBo1E9H6 EBOTtd6qwok9SVMeaukMnOmiknDxF+B5tGwwGUpXriJOdh7x1kBub1ICbqkb2eMh2Hx9wMuv rFxlbE1/J+D6t1KleTBISfxddRaAbXAKDNDciLjJgxuG+zH8S2zk7nEkIaiMEelSgbv3FwLG WUby3hNPBZuP0WbWYhJmS8WvJv4W68KzJ+3r2kvL7eeUihgV5ih3nzFuR+icB8TJSguigyYW a+EAi2QDCP7QORit4wRU2YmExwbJuXBuNUFhRDGznBIf3lnsNbQBbkYGAAMcwnQ9YdfTqeLu wCFVK85U0WFSwSgx4+Mqa1F6bbumwI5A/TNtXrhKRu2dVJM9zpJshYh4zh84WoB7Gre6+ZdI hIT+kKDTtIasglYNmPvdbEYROwzwmd0py7mxPpzZfvgKp5Nv1UjxKgcJVquZKO8Av4XMmPVc y3Er0T7XweyVnFsk/+ivUAIboQQ38lWboHtzmXd/hL8UaiZju7FToakP2AHPrxmd4jzMuuaG WQUNgelIG9xxm8cyUNi8BAdDkAxDvz+luL9U3/Vi57ezcgg9M0ojfJpMt8UbKvPmWQb36zo5 8NVNznZP0KIEP3OS8HGrcM7m1BZGIo+9zyfFMiqGfHTEe8nzFwqydHrILe3eYzkOLW8chrc6 d7KaBm/w77+UBbcgN1wYyFeE/Gr8sOA6nbYTA+0QksE9wyitF3qmpYDKbOWufPA0EjvMcpbC 8T88x88xS5/gDe1ehrK56qEqefmLZfQmNcowXDcvdYMnaNmDuoQiQHt241XxJ28xBwgbodZf LWbNMlNEvdkxDzOQiAU/Hx+Ojn+hOiyaDq25wtuHwwhAXsqZgmZpiHGBj4Ux7zaUnFK3Zhff IZvfu+hnmJUgeu7t3MbWDu2+vKnE9eLjpmd2/tQk7Ww71X4BCsmk6uEby1kVzbN56v6xaPT3 7F3l/BWtzQyYq5H70itshsMZ3c2q52at6dDrnzxDQursG22WIrdlVITTbFS7VH5UNeYxJbOA ClGGvXpSmhTh+0pWLnFobXJi327GN7Kly74lUiYDKSwDsfw2H729FqXszMHtRHUIndJwNdlh g6Oy4oxz17kAjb7unX0FFbGbZ6hy1Gb7AIBXF2p3g8FcZKVehIK9U+xhJ44N62Q/s3c2Xpcv ldTUV2BXRlYgU8KRBCfsKsPe/oW63WPTwxlXAK0xl0kGgS2jHhF2gDcLLKEsq1wNU7g/P3L/ 2EQihkGEtNMhl7cx5/kGLRACrEfSewNsPIi2VUhzRR3ikbGmlUU7fI67Gk38rLvvBDkDt7B9 tpiChflLSszjZ+bxqrk44FlcKwvZjOj+vba/MNgJKvKzqzLBTeYVp+hB3R9/bXM4MaWd7sLR dPH2c2ExkfwrhzcPvkwPVuei4ciYCDfm2WRWrBLvkUQNozxx3cICMwMR/0NCFPmtk5v+vNN2 txN11OTPjSxbht3vkrG92WRa8cv1q5TAtHrIgZ7w8lpaGSpgveQtYEa+Z7R53nNZF0bdpm8m 84QDmBTqTlGg2ER0kuLGlP+lzO88Iz8/YHEMSEIXUfzRYJTyLVdgvQ4OaiYHnujjbvjkjTMU pjjXC0oRBT0K90FA0eErWZJPAMf4J4/O06ZGFqusqDs/3VmawB7UPqsJb3kBQ4QXktVZVUp+ y0OQjb3EVkc7Wl1G142eGhQkbOaEjhercSCq4lWhMGLp4ypNLx7IAWMl4IlyfOwiAKPmuu0y 1BB5ceyUhB7EAHQtDGbAbMFSp5URNg7ArTJe13GgdnEjII2n5F/LhHOv5qbsRlVYPK2ES0rH oi1Au/xZY1mQYBqTNESWgDJZItR/9rZk9Tnf6yxOYoR9y4QRRRmyrc2zuoIulxpIAGGyBalj 9O7pAbiPQYqFwdKKE3Gy91tRVlKf+WrwnS1Uz1+/E4jT3IMP6bm9UgnHl4cXG+Tu+NsKPTcm J+QgwIYLAuT64IJ1/Z9+RB1QYWJtEgsAaryK1K94tZQaTuAiB2W0Bv4RcUfue7Xf9s8wVPhX 1J5vwnnswVlrJPR68da2cUT9eKYjCAK0bf6+uzuwZhWM+idzXom7JOHQZyEavcKBy7g/SUKR gZcvcp8aPO/Sbz5KcbiVrQl+GHnShe6AKYdiFC86Zrv7LUQsSludI/i1FBPzIeTfv6xPD1hi aWLx/NjlHMWQvI0U2HCTjte6LgsaIBABQCRiAHDzcZrrRPRSQ3xVOrfnAvABgcgpMTAPbw1s Y6nZ16tpWzshcfLaA4m/PbQ2+DzPND+MUQh7Rn+yrv9SWsal9nqgBvgpedR0J4ciY/eYT2wo 1gOhWictpa8DzCJppHYaYBQQ+uTo50QIL7+SstZL522Trge+T4ubx2ntbfO92og9wQMfUAhC azUf/XqFaVwjsUuX5cIdwoskNMnOu1O0xeAWmB6kgLjZTjjChsqtWWiBzTN6BVfm9uHwDBen vu/0RMICgROnrKRHNN7sHBcE+nySeB6oJce/st0swrMu86Gdcl9mi5//GAryALFwJDptgb9b t8NICUioTcesvPNFpQALK//VWZ7Daw2icF93ZywMca79VmpFyxu3aPd8Ffnfr55N8O+avqVQ EVHTUSJl18BBnXbkx5aac+5+GZN2VCHnkJ+Xe7To+iElve3qh6hwXvqbMhyeYcP+LdPKMl3X yewuHnbU8NJuTPvfNDYFAgBC1RmzA+AFl2s/iXj/A+H4GmWE8+IstW92LMDkKC/6kD2rfkUm yI7n8+U8M+fMqBEqNhN0PA1AS+6hhikiPcRASCrefDcQSrMA2FDu9clpGwiq4gJaBvIDVH1G nXwqRVyutRioTckdz4pvVl9huhYUxWnTKihoBdmYCGxNW14VXbJX1s79LKopjopVEgjgTAj4 7/ySyHcWjOXdu8qX984dIS9VARHCdlot9KzaGLsXl9/CpWLEmAnGfo90C1zyxtjM5hxPnlmV hKVXjKsbRnpkoxmotVNpjsvbSAKOjDvZsDzmcgW928B0a46eTTzo8fMVAzpHsEotEPa4pwdf aiPqutZaMsXFKuFg+VyKoDEsGdzKnU74c7yHRe1CfMBDHY53nSrj8N3iBq+nuhAAY6dYRTTI kQ2G5unAGXNT62MQXQ+5G5Fe56WjmalYV9KrYuj9B9tCBdVrnjMZKngowhDpMjvcQlfCBoiy DhjKKl6o+ocf4/qu69Hs55DvKVXV9ufgNAETWt66IKu+7nFaS7/bE9P/BZjZ57MmSKCQjGB0 rdonHMbWdp12uNPMMuWBcbJ0e6YmjlznIM5ioB9NML1+FqLepTzT1odrBk9gV+9mxGpYWWyO heGA90H8wejNs7svHPB5WCA8ep3oqIi0CWLjZ9R8RzVQd+V8yIh7F7cRqh/LOF239wch/j0e n1cqLDo4rSfHquCC0Tu2UmWBpr7qt7YBmXwoDvJRKrzoIXeRRt4HCndzMM6Lk0eG9L2s03Iy +ByCwlHiakD5hWWYUFqGgvkZvpseZkDCsycX86zYpPqq99YAP0A9JhH90DpixC9QOgU+mlUn qQpj31icocE0lJZ1dpVM+I1IhNpMr0vg+eBNPBJXeGQI3EEmL++6FJ5M72G0aZNdInQxSJGa GhZXq4dBy+WUsXbh/xImAIPwOuPkBNgP1CSijHvuwlg8xrGzDbwR17BXBSNLPnyNbI3EgrNw KS0VKwjv2TDf8p5IOHP/Gmtghb5KkLV6+fLGIxcrmWiQ+IoxnE250VwopG7EWZD73/duDgM6 9AHfZX2oyuMSrNLZ+mRHKWg0uouP3EAUehYv00xUF6spwCAI8C7BP2okM8r6QO/4CpW9keim Nax4nLEd+I7PRN3qenCiR81e8JdaLlZfleDNuXZjqPI8i1fcoz+0wkivmw5wOQjC/J/AhT6Z +Gi4jI0gSmxxK6iL/xbTOVZxiB1SDLeGWnooyR8M0edbE2UV9CgTfrxjl+koNMb5u3DiVN6+ y4fSdkVbhSoWlkLWtcNP49pQzzVuMURjRAWHCaAlhZT1T5ApNeVpTyom7xdqigBfJa5QEplY X2WCHT17mfGBvkKW+kdUg9TmFJcW0AWHA6uV1ylUxEbfUNA0GmcVpXGYb/uRhchusHdVmpBt K475nZxvSB48uMH9KI6ACdDhpENCPxnll6uDUdfOl4Cj1ey+cTMenl1dDIbH5O5iS0NjHeMT AjLswJAIp+qde1MyuZ7VCbbD10JSkkFpIHpeGscANiqDQ3TjV5dRQ59s7oV+l4YWwhEqFWNJ nkawOfxqa67PkWgW56+rci4iABnc2uaWaY46DLDJCjUeGeBhB72U0lODrfJisEi05RXKRKbj AAyKzioZhe5Bf0qe+uQVyNV8LqdCeEt3skrDzcbY9huLYJ2mHADlpmNvV2x4iuws24s68re7 MaQN8fx0mmoNTgX0FTnOj7zHHVdFumi32Y92PcvHi9ynwp0/qMd5snv/3J7ZTWSVIOvjDqZi Wc8kRtyz3CJhyino0aVBb80t4xDYv6Vs266iit53ySPoGDVEyb/a/110Q2ZYYbrq7jBeDJ9d df0d6w4/GK5D98zZqT1rHpy0H8soaQMppog0GvZ+dVQ2cCChBbhwmmIv/6R/yTXUwnbD5CcI vpl+7veiU58rzEPrRNSnaulN8oiXruvO7vvldM8vJNvbfEHB+efgZaaOK/NK1YxWmI0uEFnB JCaggJKgs69OZAqQSQgphBGNav3KvO1qZm3mrn6pfXLinVZXIxw9556/UxNbbRAs9VyM0QTw B79v0Ewe61MNDS27bH/viaaEkvCWgQF/qTDJ6ktg9B7+5LNG1RcSuZf79udY9FXtEQxsrrgO Y03xTWHpHIDMgFG+ABT5OMiTazEChM6NOG7kyEYNBIebi2zRuJ5RXtUNhTFfZP6rWLKWfe8b CJqpy67Mf1AJuX2uGBhNE4DcF3/JBdhcp1pB8QeYUhoQupNN5YfSclxbKcQguWjsXC8DSV42 I2d3uZeI+qB0FNmf+r+hMjLfr2njzZ4QlgaU3Hx8Z65wgPBGsLHiFRFN/iDDx+2hSXORbPon 4KJBMI6vVIhITrcuEWjeotNpRoxWgzFyn0DLCIjKGXgseQiTA3WNV30cYV7p7ZcrXqAhL+V+ nWk76ReEWqW4OEIGfFN+wyRfYWYSBq6CHQjU9mWrdLzg7P6XYPftrHToDeNGA1z7uXBdS7p3 VHLvBiZ3kaNXq7al7ZcC7pl5n4abGFxVkKSM0bpSNcmEZvRDPeVlvizCxdIQvaxvqeIxDg3k rwsUAob1XHQDpf/JJzzPLu0y4Kkv7jCwZj3BqtZC5P1ENJz398Impmvc5Gu6aX7NLakspWrk juZ+5GCNSb2CzStsAjFrPd83+npbI1/uxjQC/EvpQZHhjBdcl0p3xWdcKk6pbSK6mn0PQ3L4 9ha5xj78ijcvCLmxLojUzpRhoGE6RghHpKxHxz0e6NC68WfyAMFR5kCHgvoQ2hkTcMlXkF9k Lg+q2b5ClRY2G8DOfrSb9HyCVUxUDxPzrG6LzQPws7OtIJAqdMF4/Yy+5fKHL8iAVBNtZ5wd 46On3wiB+Ie7peIQ7jQiOghdAij03IyvnoN1kmLVsoHNZIP9QHohNAmJTtyiR45qgZeYZmgy F9H7ddfzo4KgaIWcQHAd3jWzgqrJ2eud02s1lvOT5MvdZrDRXcUXLtKTxWJCss/DDhu06TJj 7D8moCjO2jacTWpTHmXh/WdstdjJYcxF1HHjqtJNy/x9hWA2TuZWnyFl9b1b1Q+QV+/z9nzN /0TgtkpsejWcPlowAe4QJ54N45HCgsBYlwNVWMpLpULu/rEesb6oNy7nMpNYnGnKkGEV1Gi4 o98OxSLT8g1zeoBmrPiLEiyySCKmq7eTymRxTW/Uax3GJL/HgadEJXph6pnsyXGb/LpCwiv7 hfpTpW1R+zb7khCXyL3ZQqu9W8tjG9eaK57y/vBf+/se9tZ8vfinRoV62MDni1qmoIFtKZQo iH/y6bBlrIIvfbsRFZXjA9ZVya0zUdn+8kb561gM6dYahNw6vkjSWpye7xarwuaSraXHWuiQ ZNu4XOjlKiM/OKBU8fdcGMPZw9sWMU6A4Qa++RSjx8X6EZUmy99frsdaobr8t49qNrkqERrj 47gqcHxkk5IQgWiSATZ+qV6Ra7TsZx/dAJ0TWyDgWCvFXlGi57vVeOX0AX3cncAGmE2Y/div 1ZAPxCVT+PWRNjEFpbDub8FwTUcM0ZERqq1gHbrOsScYXFmG5PFRmp6RZwI/AOxzU6f9vq58 MRqft40xbnCepyNf7CjLhdGVmIp+KpHyJ3X3GcAGmE2Y/div1ZAPxCVT+PWRNjEFpbDub8Fw TUcM0ZERqq1gHbrOsScYXFmG6WZSWL7pdqxZ5OVbBJcgEhe98k6nUchFHGlMEADPBjimPpVf XA4u0QOKgvxs/WiRmSoTwIX8fuwow0ktYeNGkt9KdwbJY0xKkSbOIWgMU5DWdeSy5a7jZabV eFHyBcYgokvi5gnLuZ4UAALvz51JO2A6SU8O7Ved3EuyB+5WWCbHAMjea1qR46dxAkNI/hfQ 7JeIhYNVjlg56oxIn3Pzc4ntRkWnbP5TYsEQKQeXLtdEs1pPcV+qzuDNE2IE++69DTFT/DSg 7nh1A/hZFKSQJzJQ5hJO0qJTpnw/9CU3cl+BEtGaGxN83cqVwsDnBLr5cfFVrT9+3CJWKFiZ 2QCKNsujannXVG9Vhw1SRiw0ylclC9Jx3X/A5UZw907FNBGCvXkG2Qe47g+sKXldj0COTLTV SKr0GZssCMHSLJYLtN8e79Pzmj24xPuDOlZlfkj00HRWg5wEbsy92eiKrZct/y7rmh26zrEn GFxZhulmUli+6XasWeTlWwUI+cfarfz7Uit0zR5bIEL53VM9+ClkCTuAyyps37U78MS9Ll+q Dz5LZkKQEw7/EJP4cXhZ+AvN/5UoRg+p/Hze+5owLlbAj4Xzg4HAZcQlU/j1kTYxBaWw7m/B cE1HDNGREaqtYB26zrEnGFxZhulmUhmdPKIAAAAAbcllvYHskiYAAYZ1gKD6A3H/9XmxxGf7 AgAAAAAEWVo= --45Z9DzgjV8m4Oswq--