From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Brand new clojure support in Emacs ;-) Date: Tue, 29 Aug 2023 22:09:33 +0100 Message-ID: References: <87il9kksqz.fsf@dfreeman.email> <87a5uw9ivs.fsf@posteo.net> <87ttt42gna.fsf@dfreeman.email> <87wmy080kn.fsf@posteo.net> <83v8djcydl.fsf@gnu.org> <87350ndquw.fsf@dfreeman.email> <83350ncbns.fsf@gnu.org> <87cyzrjbd8.fsf@dfreeman.email> <83zg2vav46.fsf@gnu.org> <87o7j99304.fsf@dfreeman.email> <87zg2hsyrd.fsf@dfreeman.email> <87h6ontwfv.fsf@posteo.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000468aa606041631a1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27550"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Richard Stallman , Danny Freeman , Eli Zaretskii , emacs-devel , Manuel Uberti To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 29 23:11:40 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qb5zv-0006zf-AB for ged-emacs-devel@m.gmane-mx.org; Tue, 29 Aug 2023 23:11:39 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qb5zK-0007fW-Ey; Tue, 29 Aug 2023 17:11:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qb5vh-0005z1-65 for emacs-devel@gnu.org; Tue, 29 Aug 2023 17:07:17 -0400 Original-Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qb5vb-0002js-56; Tue, 29 Aug 2023 17:07:16 -0400 Original-Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2b9338e4695so74385861fa.2; Tue, 29 Aug 2023 14:07:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693343223; x=1693948023; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KwW8dsn+VUqLzKSNhFcDf3NYsm0R7U3w65nfJqvViXg=; b=nM43j3uhw/qHSBQF6NMrw2BPgHRkAaeCQkTcx8ZbHnm6sLqRkwviiCjF34ier2kGYF g/UIhjKjTVI8Qp3gnP/ANgUXnLViUjBh9oCzSmEsv71T6G1VFBuhyZef7Wcic1FwBQms Vdi5Cegc9UYfe7Qr92wKclrAVvw0PDb8+q0h5iW+gOP7wyEi3xQkyYxQczJ3ZtPiK51P 1eJG5IZbfmnWtZ4Xylj/aj2aJoaSCdD7xUJVq3lFwDP9YWlFsJAut7MzpUbezXsiuM+1 se0Ig1L8rSxjJoAChgzgr3qJmTqDvNsg30YPGMu/voQceIhfZnzn0AGzE10vihyZGDe0 c4EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693343223; x=1693948023; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KwW8dsn+VUqLzKSNhFcDf3NYsm0R7U3w65nfJqvViXg=; b=ag0P+X4t/Gv4HQ2YIvgw/HbtVhNjAevZ+5RojDgbVajn1c/gVI25+U+tsMGmpKvr3C 3nNpfWGNnRcaEzzSIFHia72hlehFf8Q/sBwrIcFNkUlUcX5PSmGbTvY5EI5XeFcKuRw1 irQyu0lj3IO+pUXREohWMwLDDv8qeBbi0zO9t/i7Y/Z+xASfm1vGdK3fnA4Hh52PeEQU 8bTr7s+xmU8R7ik77WqxkJQI0Ad9GHEwbdZy83Zvx0MCmEuey8rtmhuxQ8FbPVvaT67R xdkJNyWuJHAGltjuHfc6BquHkU41LEFuVxAJv6vtkFsmrfQAdVqrIsaAfcN0iI8p6HW7 lp4Q== X-Gm-Message-State: AOJu0Yz5YelSzgUq1tWolOhMn+r65a3czGO+Pu/YvZ6QcYy33tqUTBRL 85RXgQwu88PtbTfdlFmbkFx9rVTsvhUdbStBfbT3SzJx864vZg== X-Google-Smtp-Source: AGHT+IEGousoKnxliP3hwPAz+7ZerFUmmgCax+UcrtLi9wphDkvEasMpHNIUCwZksw4CjBfnGVONZul/JZUpAAgvm/Q= X-Received: by 2002:a2e:890d:0:b0:2ba:7b3b:4b7d with SMTP id d13-20020a2e890d000000b002ba7b3b4b7dmr320748lji.17.1693343222750; Tue, 29 Aug 2023 14:07:02 -0700 (PDT) In-Reply-To: <87h6ontwfv.fsf@posteo.net> Received-SPF: pass client-ip=2a00:1450:4864:20::22c; envelope-from=joaotavora@gmail.com; helo=mail-lj1-x22c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:309518 Archived-At: --000000000000468aa606041631a1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Aug 25, 2023 at 8:26=E2=80=AFAM Philip Kaludercic wrote: > > Richard Stallman writes: > > > [[[ To any NSA and FBI agents reading my email: please consider ]]] > > [[[ whether defending the US Constitution against all enemies, ]]] > > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > It appears that there is no clojure-mode command in core Emacs. > > There is a Clojure mode package, but it is in NonGNU ELPA. > > > > I think that language is important enough that, notwithstanding not > > really being similar to Lisp, we ought to have a major mode to support = it. > > Would someone please work on that? > > I had brought this up in the recent clojure-ts-mode thread, that I > assume you are referring to. Sadly, I have no experience with the > language, but one idea might be to extend lisp-data-mode by whatever the I don't know if this counts as "work on that" but here's two interesting li= nes Elisp: (define-derived-mode clojure-mode lisp-data-mode "Clojure" "Barebones Clojure") (add-to-list 'auto-mode-alist '("\\.clj" . clojure-mode)) Since it is a lisp dialect many things works here, like indentation, symbol recognition, parenthesis balancing, C-M navigation, and thing-at-poi= nt. And then there's LSP, right? So I installed clojure-lsp from here: https://aur.archlinux.org/packages/clojure-lsp-bin I created a hello world project with the "lein" tool, git init, found the src/helloworld/core.clj inside it, pressed M-x eglot and suddenly I had at-point-documentation, diagnostics, lots of refactorings, completion, etc. The thing that's a bit minimal is the syntax highlighting, but it's not that bad either IMHO. Eglot doesn't yet support LSP-mandated syntax highlighting. I have no idea what it takes to add TreeSitter support to such a bare-bones mode (but shouldn't it be really easy like mapping syntactic symbols to faces?) No idea if this works with the CIDER or SLIME backends for clojure. Don't ask me to test any more cause I've just uninstalled it all but any clojurians rading can have a go. Jo=C3=A3o --000000000000468aa606041631a1 Content-Type: image/png; name="clojure-mode-and-eglot.png" Content-Disposition: attachment; filename="clojure-mode-and-eglot.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llwsu3d40 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 VgAAAFEiKwAAgCiRFQAAQJTICgAAIEpkBQAAECWyAgAAiBJZAQAARImsAAAAokRWAAAAUSIrAACA KJEVAABAlMgKAAAgSmQFAAAQJbICAACIElkBAABEiawAAACiRFYAAABRIisAAIAokRUAAECUyAoA ACBKZAUAABAlsgIAAIgSWQEAAESJrAAAAKJEVgAAAFEiKwAAgCiRFQAAQJTICgAAIEpkBQAAECWy AgAAiBJZAQAARImsAAAAokRWAAAAUSIrAACAKJEVAABAlMgKAAAgSmQFAAAQJbICAACIElkBAABE iawAAACiRFYAAABRIisAAIAokRUAAECUyAoAACBKZAUAABAlsgIAAIgSWQEAAESJrAAAAKJEVgAA AFEiKwAAgCiRFQAAQJTICgAAIEpkBQAAECWyAgAAiBJZAQAARImsAAAAokRWAAAAUSIrAACAKJEV AABAlMgKAAAgSmQFAAAQJbICAACIElkBAABEiawAAACiRFYAAABRIisAAIAokRUAAECUyAoAACBK ZAUAABAlsgIAAIgSWQEAAESJrAAAAKJEVgAAAFEiKwAAgCiRFQAAQJTICgAAIEpkBQAAECWyAgAA iBJZAQAARImsAAAAokRWAAAAUSIrAACAKJEVAABAlMgKAAAgSmQFAAAQJbICAACIElkBAABEiawA AACiRFYAAABRIisAAIAokRUAAECUyAoAACBKZAUAABAlsgIAAIgSWQEAAESJrAAAAKJEVgAAAFEi KwAAgCiRFQAAQJTICgAAIEpkBQAAECWyAgAAiBJZAQAARImsAAAAokRWAAAAUSIrAACAKJEVAABA lMgKAAAgSmQFAAAQJbICAACIElkBAABEiawAAACiRFYAAABRIisAAIAokRUAAECUyAoAACBKZAUA ABAlsgIAAIgSWQEAAESJrAAAAKJEVgAAAFEiKwAAgCiRFQAAQJTICgAAIEpkBQAAECWyAgAAiBJZ AQAARImsAAAAokRWAAAAUSIrAACAKJEVAABAlMgKAAAgSmQFAAAQJbICAACIElkBAABEiawAAACi RFYAAABRV4qiePrpp9cuBgAAwI4ZswIAAIi6snYB+v35n/1x+e9P/uZnVizJETz50d//k89/rPj+ lz79tX//07ULA2fpz//sj13KAOB4th5Z1bogeiTtTvHSkw///KnA6eB2dCJsvKiDinfIb3mqO1Xs ZL96yzxTq5ulri79o8/96gc+Uk4fee/dr//lf/7BzydIOCvfYlR26TKvtUdpQ0vVqJ89ninA8rIi q+ZdqvpJemlEM51P/uZnNt5RW8dPv/9Hn/pMUZRDUhlrnrHaDbIYfo9ctxEmck8XbESxm3VVVKor vbT8c7PnbFfBurpQ6R3Pt7Xa6CnP5X/yB//zb/1a8X//4f/2f9y+n53oE3/7B7/+H3/tUUf2l//w 3/3T2+9Ns23t67ZmAvO1uunT/Pk/fP3Oj4ui7MoPF4mRxkmXOb5HcwiXqrfVARRbHrPKvy9O3pvk 8Gb6LmAB6bAqveG4HBM10zpW0LraBms4EVZtrahrOoVVV4riZ0O2OoVGxS//4b/9p7ffe/Dnv/j1 Iiu4imxbsc1WB8CxbSKyOvXG0tHR6R/pmYFTjqRV59c1J9d1LS2fYnrpzf/h9c9/7Mkh28ZLlbnh iHzPT2uTq36+tYlhp+bdFT6ll05bhlmzmFt8F7paTpFsM5lXs3GJj1eGVUt67/3/8t/+j8tmOZHq fLPmZLPa0rvvfvR69kBTV8qPzXB73+f+2ftas+65wz7xjz53/QMfeSKjzBOOiaX3qMj4JLHtqW5b 9yi/VCdDgnmAYhfvBjz1Kpp3hVpPsdY1SS/tUQZIn/rMJz/1te8VH/3in3z+v38yb2lRFE9+9Iuv P/d/fXrUtqNLlfbT7//Rpz7zyd/8zCc/9bXvCaj6lE2uGY2UTbFcYclYYtwwyxYCngXiukHmew6n q+UUlTYzeeLVRZNV9aNJgH/6fw4asKqpTe1b0KKtruzW/8WPf/sv/uYHxfs+96v/+COXEksHhlWt Kf/8H75+58e//Rd/84P3iuK9d7/+Fz/+7R/++LfvDIklnnjf566/7/t/mVnmytKISMq92yb2KD/l Hz6sVYCBHnwbmfO8xDiZT2KMS7y8cbb2kxJLU6Wqvz3v8QeTmks//bXf/5PPf/FPPv+lT3/t35/W +WnetplBUVe+Z/+4VETiWeTWEH31yCQtXbypBmHSqW2/luY2a8tpJt61aDL3/9O//NL/WhRFcfmf /PPRiTzxt3/wQiCsKmcGDpwKuLTauMql5NLiH77+l3+T+6hPx7af+9UifzQm1TzeyyvzJAFVa8q1 PYpv+15l6enBqjGlmlLkaVVLLbV0d0uv1Faa3KydrXKOU2snJrF0zS7gkx/94jcrR8II0hpCM0XP SeusM3W1vHSdb2o88JEn/su/+PX/Urz3y3/47375n7/wH39t8OY7CatKTzycj3eyizKnrbhHpzmK xbtfv/vugrnOIvLNl6WWWrq7pZt4zmqc9DfE2x158IwTh7OVk+tcbbfyT6/1K/528KjX7sKqovup np/XhlYWf5XfaBt5YTrAfuwgsion9dWio9bpf63/7voEYIM2OgY1VPm29KGzAfcYVqWVwVXHSyYA OIZNvMHiz//sj9M9iU9WXhvQujS97bDS/PT7f/Tpyvshnvzo73/zj//8mw/fFdFc+tjjT0NSbnXK 7s8qOeaUiul8MvLuk93qOgdzuvhHqqLIOw+majlDN4yUeYv2GFb9/B++/pfJ9yXU3o6Q/5KJWsqj HgfqvcP25zuhyB5NURsDUt5E/wjYmUsXFxdPP/1073rpp9gzn3FPJ76tJzqCb11PBFrpF6CXS1sn Dea8dT2n5Jmh4EG1vrSta53ECxsSm8+n9aSIPH9ZXad1R3rP7pzzdIPRV6JIORe0rhbS23K6sq5t mJjbPLrM+YUpiu5Xrv8s7yeDR/9ScOu7BLs3Tx/HaVtdT4K17njn69EbS1tT6Np80IYPi100m0T9 HRVtUUpij/KyHrNHvXWV/8b2Lr2l6nst/gYvaMBG5EZWa3H9mpjIaufmOyNmPdc2eCKvWKRN1cam CjPChiKrLjm/0cSu7P2sAeaz9eesmhNdXM7GE1bt34bexZJtmwVeqya3WRvHo54BWN7Wx6yYQM4c QnZl2l5jYirgJIlvuYO7WPFyZgmuYo9fXU0yQ3WOfDtlzgZkw/Z4pgDLE1kBAABEefcNAABAlMgK AAAg6kpRFH//93+/djEAAAB2zJgVAABA1LDI6lvf++ZM5YAjcaYwIc0JAHZhgt+zqt71f+Njn4on CCzG+UvVt773Tc0AAMZ5EFm1fifavL+23nHLD32xyuFl9jtX6ZvWTsDMMow+fxPrn2fXvFkh51kP J80zRcwGwOE9GrNyz4P9Wr7bWs1Op/lELFFV3X3fuwFwDrJmA8bnC5lxxDlIt/Oyo1mu1rpOIoVE vr0rJzKdSXrU4vTvdKkOdt3oHVTM3N/Ww9217dBWN6HT8a3+b2aZW4tU26n8pYn9LWuma/MDtDoA lpQVWQW/d2zet9yuOKScM6UZXbQuav4Zkch0RelSHe+6MWgHu/a3K6xKbzuo1eXvUa8yrGouShQj fax7W0J+PZ92dplzEIBz8CiyGveQRi93JiglTof5zpRayonO7sISpdpICYcafVxSMysAACAASURB VBVt7u/osCpzq8xtZ5LON91EIw249VzILBUA9FriOSsz7OGktwe8WEm2b4+10TtaEkk8HSDll2ph o8vcHFDKXBqp5z22OgC2Y4K3rvfyLSDkcKZUHaw2WmfoDd28K7jaY131lrn1Iajepel67h0a3WNN ArAdw34pGCBTc6rVioXZu1OPv/U9EMeW3uURFXLa5PSfOAqAac0eWZ1hVwBGiJwpg3qfS3Yo83ux 6Qdgjqf5RFbtk67db645YctZrM4HlTkSXLW+kPA3Pvap03+RUgFA0+C3ride3Vu9LaU7Sb4pZL8S b3zOPFO6RM6U9LZd52ZXChOeoemXvCVW2+N1I/MQNP9sXaErl+a0wKlazpKhRaLMiVOsd2lvPRfJ hrfHVgfAdly6uLi4evXq2sUAju8Ab/9j13KeywKA0TxnBSxBFxYAOLYl3g0InKfM6W2wDJP9AJiV 2YAAAABRZgMCAABEiawAAACirhRFce/evbWLAQAAsGPGrAAAAKLOIrK6e+f22kUA6Hf3zu3yv7XL sgNqaQvO8yic514vRvUyh2Xa1Y7ful6toOvPPr9iSQDi7t65PeJSNm6rdR3v6r3iHtX6Cvm5Owrn ZplrRTqXQx6j0efgMWhXNTuOrMq6641BV69lyLHi1bnMetGT5fK9V19658Xi6o3Xr71xf7lsWV3+ 1TszndVNtUfB3Mdt5SgMtcevMzYi8xjtq3qrpZ2w7TWbmYbXZVPtaseRFRzJitdQF2sAgLjHIqv0 aFrXt9pltyzxtXdknG70tpsaHIRtGh9WlSNO37j64mffefFyUdxvjD6d1rlcFMXjS6ufF/duvfx2 fYXEtts27rJTbhW/3G3qWjfJlX/QDSX9DcXcd6uE5jeptVLNdwQdhdZka4nnH4Wcb8Hy97c3tUSZ myukazJfujYya6CrSOl8y393bTj6GjuonluP0eiT9LThtKe2djUo3/LfC7SrK12LE3+2dsUSK6T/ HFToQduuOz0DzsLle7c+W9x4/eJmce/Vl9659dI79fCpuHrjtWtv1Jbev3rztYubidmAiW03bPT1 qrxBjrv19l6fVzHVlb+5YfDaPtPdKjPHoUWaNmtHYVyRps09P/FBZc75c+4CB7ftbVQztY1i7LcD q9Oucizcrq50pZLI4xRxpleYpHzpUsGRVL/IKT9ZJutQvuVo0uXHP69HTVdvvn6tyAyQatteTq68 GelrXesFPf8umN42fX1eReTq3XvHmbBg+XeryBHs3YWZ9tdRqK0WPwrjKmF01aXL3FtXkZqMHP1V 2nN6j2rFiPTpi+F355kuyBtsVzlZZxZj2m0TItfJ1nY1zXNWvbHvJLnAgaW/IZvVWvn2uPxwluBJ OhjbhsS1bqpbEUGj71bBo1B+deJoFud3FIKnf6LMo/tXx2uHwT1K1+Q2q2uD7YpimTdYbLNFApu2 n2erSq51ezfrETwlvpVvLjZss0dhrWOXKLO2lK8cXsj5HvMcQgvtahLNdnUWvxQMwBnaYPeoOe/3 8Da4v7MehUjK6fG6DdZkscnjS412taQHkVWzZqt/1pYOnRbZWzt379zumiCbKBWwXfev3nz92reL e7deeucTlwf+dFVt253YyP1pI0Mikat35I5Ty3HQhosdwXRG0z6U7yiMy2j09Oxpny2vqZU5vQvN IziuVOmC9ZZ5I+25mkJveSZvgV293GVoV2mTt6srtQXVP7syHvHoXq2UowOz1g0jZYONiJwmG833 /sO3VrS+VD29Qm1R6+bbs9ZB7L1IriJy9R59VQ/eDuJHsLUAzft0YurRtEfQUVjgKEzVQWpu21vm dF3VEh/UX4x0CHNqsvcY9bbJROJDDQotFjNV51m7WrhdXbq4uIhsvwsb+RIXgAkd49oe3IvVK2H1 AkwivRfH2Md857a/E1J1CWdSOcd/zupMDiTAWXFt3wJHAaBqiXcDrsL8QIDjcW1vWn466LkdhTPZ TcbZwtRBtuMsZgMCAADM6vizAQEAAOYmsgIAAIgSWQEAAESJrAAAAKLOIrLy2hZgF+7euV3+t3ZZ dkAtbcF5HoXz3OvFqF7msEy72vFb15d/zyzAfMb9NNAef1DoeFfvFfeo1lfIz91RODfLXCt6f3O5 /PdhjtHoc/AYtKuaHUdWZd31xqCr1zJU9V4glm+x6/w6zeV7r770zovF1RuvX3vj/nLZsrr8q3dm Oqubao+CuY/bylEYao9fZ2xE5jHaV/VWSzth22s2Mw2vy6ba1Y4jK9ij9Gm/SrfMxRoAIO6xyCo9 mtb1rXbZLUt87R0Zpxu97aYGB6F4eLJ0hU/ppbMWacyW5YjTN66++Nl3XrxcFPcbo0+ndS4XRfH4 0urnxb1bL79dXyGx7baNu+yUW8Uvd5u61k1y5R90Q0l/yzv33SqheV7XSjXfEXQUWpOtJZ5/FHJG EvL3tze1RJmbK6RrMl+6NjJroKtI6XzLf3dtOPoaO6ieW4/R6JP0tOG0p7Z2NSjf8t8LtKsrXYsT f7Z2xRIrpP8cVOhB2647PQNqNjgJcAKX7936bHHj9Yubxb1XX3rn1kvv1MOn4uqN1669UVt6/+rN 1y5uJmYDJrbdsNHXq/IGOa4N9F6fVzHVlb+5YfDaPtPdKjPHoUWaNmtHYVyRps09P/FBZc75c+4C B7ftbVQztY1i7LcDq9Oucizcrq50pZLI4xRxpleYpHzpUsG+pFvvim078V1dv3I06fLjn9ejpqs3 X79WZAZItW0vJ1fejN7Iuflh/l0wvW36+ryKyNW7944zYcHy71aRI9i7CzPtr6NQWy1+FMZVwuiq S5c58m3drFeVVdpzeo9qxYj06Yvh9+uZLsgbbFc5WWcWY9ptEyLXydZ2Nc1zVr2x7yS5AHPo/a5u HZcfzhI8SQdj25C41k11KyJo9N0qeBSuP5wD42gW53cUgqd/osyj+1fHa4fBPUrX5Dara4PtimKZ N1hss0UCm7afZ6tKrnV7N+sRPCW+lW8uNmyzR2GtY5cos7aUrxxeSM/0Kz9ZtnQr0K4m0WxXZ/FL wQCcoQ12j64v/paa1W1wf2c9CpGU0+N1G6zJYpPHlxrtakkPIqtmzVb/rC0dOi2yt3bu3rndNUE2 USpgu+5fvfn6tW8X92699M4nLg/86aratjuxkfvTRoZEIlfvyB2nluOgDRc7gumMpn0o31EYl1HO sEbmhvl6t62VOb0LzSM4rlTpgvWWeSPtuZpCb3kmb4FdvdxlaFdpk7erK7UF1T+7Mh7x6F6tlKMD s9YNI2WDxbRejKoPPiaWzidyeva4//CtFa0vVU+vUFvUuvn2zFiZSb0XyVVErt6jr+rB20H8CLYW oHmfTkw9mvYIOgoLHIWpOkjNbXvLnK6rWuKD+ouRDmFOTfYeo942mUh8qEGhxWKm6jxrVwu3q0sX FxeR7XdhI1/iAjChY1zbg3uxeiWsXoBJpPfiGPuY79z2d0KqLuFMKuf4z1mdyYEEOCuu7VvgKABU LfFuwFWYHwhwPK7tTctPBz23o3Amu8k4W5g6yHacxWxAAACAWR1/NiAAAMDcRFYAAABRIisAAIAo kRUAAEDUWURWXtsC7MLdO7fL/9YuyyYMrQf1BsCKdvzW9eXfMwswn3E/DbTHHxQ6xtV7wpqvBYT7 rZOTJY/vFtp/pAy9dXWwthGhXQ3atvz36jtybnYcWZVtpfdLSq2KTWm9XLY24yWb7hZuJJwJV++m I+1p/vGlt66qDWPC+mxe8Ld/C9Cu8qmrFe04soI9yrl9Fovf5Fx8AQCCHous0qOHXb+5XnYBEz/K HhmXHL2twVC25nSy9IYxy4dVOaVqd+W5V2/dfPHJoiiK4qdv3rjx6hs/q3xevHnj9/7Di1+++eKT Q5ZGUl7buMtOuVX8crepa93qV+/0+HDwXtaaXdeGo6XHFtJlDt6dmzvbtcLQg9v7RVJmb2SoxB4l SlW9Qlbrc1BtzHeGthYmnqZ2NSjr2ie7aFeRljOuVLXORs4h2NQdLdOjyKp2+BN/dt2rulZI/5kW 2dZgKJuS2XpXCatGblwGOb/z6hvFc6/eunnr1s3Hgpwnn7v15eLGjd+6OXRpMOWVjL5eVW+0wXy3 M6Vn9av30FtV7wrNPwelPJ901uPuzr27MN/+DupC5LeQSCFrsUTzhB19CLZMuxqR7Lgi7atdRUqV 32z260Fk1dyfxN6eIs70Cl2LBkmXCvYlM6wqHr/Izm2CsOoU0rTOLH40mvTmzd/9rZuZS2spF2/e vPFqUYZPOSmvIX2ta71PZ1Z+77bp6/Mq5rt6Z9Zkb9RUZNzLehPMT3k+QwuWuWF6FyL7W1t5UO8q cpZFDkpXHXatkNjBydvGTM1Mu8q033Y1rszpfHtLlVi6kZtX3DTPWfV+AzFJLnB4+/v+5snnbv3r P33050/XK8kGJK51kUO5g2awoMxvKOIdnb1Ilzlyd77++FSlxYzuM/SWc6092iPtKp92NZVj1OQS b7DYdQUBKVt6xml1rnVbcPfhVH6Ho1dOKFLM8C1PeYBaU571wM20R1RpV4x2gJo8i18KBuBMnO7H 1yvPSR/JKjt1vMps7lHtk4Pt7zZpV3TZddt4EFk196H6Z7Nl5IeSObVz987trunRiVLBkeyvbf/s zZs3Xv128dytWzc/Me3gdy3l+mNXG7WRO8FGvurbwtU7p5cz+l42Ycr5Jn8+J/+g1FaO729iYCE9 q3aqfmpX8zj9F6nn1kdNupbGdfWg1qJd7aVdjWs56XwHlSrnkbyhxduCRx2iZvuurlddOq6h1z4Z t23rhpGywWJaL9y1Zzer6y/TmNOl6vGzh++WKB+1mmpyYC3lncw53MJB3M41cAtX72Y3a6p7WTps myn+mbyKEi222acZ0SsYV/j0eZQ+Cgm9ezSokInE0936aetqtFkvVtpV7ycjEt9Ou0qnmV6a2KOc mtyFSxcXF2uXYXYb+RIXgEHO5Op9Jru5Lxs8KBssEkOd80E8k30//nNWZ3IgAQ7G1Zu1aHvMQbs6 B0u8G3AV5gcC7NF5Xr23OaXzrGzzEOz0URNK22xXzOcsZgMCAADM6vizAQEAAOYmsgIAAIgSWQEA AESJrAAAAKJEVqvxwh8IuXzv1Zff/snL73zi8tolYTZDr5Ouq63u3rld/rd2WZiew5rveOfCHvdo R0XNVN2jw751fS1erwmQdozr5IQ/TVPrZ0xbJ1v7CZ300e9tG7PW1dYc40zZjlXOhUEtdmgJt3Z2 U+wispqv3cyRcplgb0TuZKBmph5Da1PsSnxPl+n7V2++dnFz7VIwgutk0xnuafrS1NU2qhV1vG++ azLPlPNpPDu11gHabP95m6WKpFxduoPICs5B87yd6hqRn+zhuykAAPN5LLLKHKPv6qh1rdCbcpdy q8TmmYtqK+SknFm2xTbk2JZpDOmw6vqzzw8Iri7fe/Wld14srt54/dob99s+Of1ZPgR1v23Nb1x9 8bPvvHh5+NLWZHu3LRop3H+4ZnH1g69dy933NjlXwnOz+nWytcFPdS9rza5rw9Eid9jIPTTYnlec s3fKemiOvd9tJXoUzRWWqavgzMnePcrMfcR5lJNyazvf47nQK/Oq0ixVYoVt9p+HttgRKS+8v60f PoqsmheRrj+77lVdK6T/TCibcubMpd5C5qecNnqPio7jAQvIP5WmUZ2td/neqy+9c+uld2pR0K3P Fjdev7hZDFlaJvsgiGqTSLkMvV679saDpfdO0dckO51/FTq81a+TQ29VvSuku9qzHvpxd9jIPbQ3 37SZRuDX0lv+SVr70G17T5OpjmZT5DwK2t25kJZ/VSmG7NE2+8/pFhup1bX2t3WPrnSlm2hh1599 Pt0ER19fBumti5myTtcVTGKOnln5v1vp9DwaTWp7YqpcOuLVf13b1sfZrt58/VrRFZ4Nt/fu44Tm u0623pLTHbuuD3vvZb0J5qccMdMddmi0kOj/NVdY0RzFSB/QPZ74kSYa6RNmli0/665Fg0TOhYhB V5UJrdV/Tluy3z5rvtM8Z9XbIifJZWjK1x9ObdrdJY8zN8fFZdy3NVkqE/BaPq/GNvdD+WyfS80C cip5dKve5hGc7w7bew8dV6TelPco3aOY7yhErNVHmu882uC5MKvjtY20+fJdcn+XeIPFWudYucIe v0/ibC3fXNPTD0aqTrq7n5y5t6T7DwapHswPLBqPirF/pwZ8Ppf9yG4u9o34MQKtRI9iwtGSqeoq J+WD9ZE2eC4EnWH/eaZ8l9zfs/il4OuDnsuH9axyFav+V2z1BjOZ+1dvvn7t28W9Wy+//ZOXhVUH VDZjl31GSzSe4zWt4+0RU1mrbew63ye60qr+WVs6qPM3X+0MSnlEMe52/KB1uq5gtPlmGE+e5jDN aYErejSYdvHBf3PxwdeEVbPYwnWyWYYJ72UTphwRucMu1ndZ+NB33bsHpZA+fLWqm7AmV5/9lWPu 1j7uCO7iXEjnm76qzJfvhCtPaMJ8F97fR7MBm1eKrpxGPIzYbC6jN689RNiVcteod2bKo4vUus7B BwGYwt3KGyZKk7Sc4AnY6dHMuntFURTFvfIle9WXQ9x6+e3i/tUb37hWfHai2YD1OO3erZffPpXn xuvX3shO5MFWRdtr2ZnCFq6TzWmBU93L0mHbktf8yAk+08UhM/BI19jC9ZnOrrdHMbomI3XV2ikv l6ZTzukjZRZ7Oz2cDZ4Lg/Lt/TJoaKm21n9Ot9hgm0yXaqb9bd2jSxcXF4PKzVQOM7MZdqP3N7jY mDO5Tp7Jbk5OvbF9Wum5OYvnrDbImQaQ5joJwL6sOWbVO+t3sZIsZoOj53BeWt4Fb8BqW87wOrnK NKSdUlfsixZ7bswGBAAAiDIbEAAAIEpkBQAAECWyAgAAiBJZAQAARImsVrPKb1rDcVy+9+rLb//k 5Xc+cbl/XXZq6HXSdbXV3Tu3y//WLgvTc1jzOReY25W1C3A0I36UGuCsHOM6OeHPbc36Xuat/SxY +uj3to2zeof1Mc6U7djaucAh7SCymu9MmCPlMsHer0Oc3lS1NphJGkk65fnynd39qzdfu7i5dikY wXWy6Qz3dMSlqXi8og4/7JB5ppxP44Ht20FkBeegdmucMOxPp5z+zhgAgEyPRVaZY/RdHbWuFXpT 7lJuldg8c1FthZyUM8u22IacjxXHaQdkffneqy+982Jx9cbr19643/bJ6c/yIaj7bWt+4+qLn33n xcvDl7Ym27tt0Ujh/sM1i6sffO1a1o53yLkSnpvVr5Ot7Xmqe1lrdl0bjha5w0buocH2vOKcvVPW Q3NsNpXaJ4keRXOFZeoqOHOyd48ycx9xHuWk3NrO93gucG4eRVbNi0jXn133qq4V0n8mlE25a/2h hcxPOW30HhWVE9LIAK32Nf01pTpb7/K9V19659ZL79SioFufLW68fnGzGLK0TPZBENUmkXIZer12 7Y0HS++doq9Jdjr/KnR4q18nh96qeldId7VnPfTj7rCRe2hvvmnzDcKvYuh3UsvU1aCZk8WkTTRy HgXt7lzg3DyIrJqtJNHCrj/7fLoJjr6+DNIbO82UdbquIOJ0gxz3nWs85eVDr4cBT9sTU+XSEa/+ 69q2Ps529ebr14qu8Gw4t9vSfNfJ1k5kumPX9WHvvaw3wfyUI2a6ww6NFtIDOMVmboVzFCN9QPd4 4keaaKRPmFm2/Ky7Fg0SORegZprnrHpb5CS5DE35dLYXzgH2Y75vJWb8vqMyAa/l82psc784Npea BeRU8ugWvs0jON8dtvceOq5IvSnvUbpHMd9RiFirjzTfebTBcwFqlniDxVrnWLnCHr9PgoXNFW69 VnnmarLUx7r/YJDqwfzAovGoGPt3asnnc9mP7OZiM0qOEWglehQTjpZMVVc5KR+sj7TBc4EzdBa/ FFx+MQOcu/tXb75+7dvFvVsvv/2Tl4VVB3TqIbnsE5FoPMdrWsfbI1jRg8iqeV5V/6wtHfpo5kxn 7KCURxTjbsdPdKfrCsZZa0JIuc6M39g1pwWu6NFg2sUH/83FB18TVs1iC9fJZhkmvJdNmHJE5A67 WH964UPfde8elEL68NWqbsKaXH1mYI65W/u4I7iLc4Fz8Gg2YPNKUV2vunTEw4jNm9DozZvPTbam 3DXqnZny6CK1rmOUmV7B02SFlB/NrLtXFEVR3Ctfsld9OcStl98u7l+98Y1rxWcnmg1Yj9Pu3Xr5 7VN5brx+7Y3sRB5sVbS9lp0pbOE62ZwWONW9LB22LXnNj5zgM10cMgOPdI0tXJ/p7Hp7FKNrMlJX raF+uTSdck4fKbPY2+nhbPBc4Axduri4WLsMZ+owM5thN3p/g4uNOZPr5Jns5uTUG7A1Z/Gc1Qa5 HwCkuU4CsC9rjlmd4TsuNzh6Duel5V3wBqy25Qyvk6Yh5VNXwJaZDQgAABBlNiAAAECUyAoAACDq SlEUTz/99NrFAAAA2DFjVgAAAFGXf/EXf/EXfuEX1i5Gysefe+bpD7z/9N9f/ee/W7s4m3Tpfc98 5OKZf/zf/L//z7v/33kWYHJr7dEp3195/9MfeP/T/+0iuU+4p5rBHnPcTu5H0qxJdQtz+vhzz6zb RVy9AJM73h4t48raBejx8eee+e6bb3X9uTmX3vfMh3/ll8qBwPf+61s//Ju/+/maJZreaR+LI+7a 6sq6/f6Cdfvzd9/64V8/8+FfeebDRf2Y1o61Q59wvHM/crjTtbHNuhpaqvM+HT7+3DPlv5s35fTS xSzcYdh6/yRg0K5t5OjP6sDHegGHr72syKpZC9VPIkuH5vvdN9+qJV50n7rppSPV7r4n5T345+++ 9YO3Hq02ZcbbVu74XvT2ina3RxGtwdWjpv7Ug8/TiTSrtHmybKQPnam1kXT1v6c691dsePVAOpBU uja2eZ2csFQHCrrKXnLzXlxbIX/pMhI9jXEdu9q+NFOo9U8Oo7UX11ytXGcLR38Vuzv0vc11pj06 6plS2u6YVW+9lyu0BnLppVkSd8d9dRChV9fI1ampF+975sPPPHMKJ97LS3CV8be5HXKn2IjtxWPj 755rS4dVkyTYmsXxuoxdu3OkfWR5xztTqjYRWfUOLnV9bdZcLZ1I1lEsb2933n3wyRPve+bZhze8 /u0zUm6dW5UeDSuGTFbp/a59aGTYMviQV6RBK7z3X9+68+77T1X9F+++/589OArvf/ZXfumJjG0T AwvVFR5b9NQzH32qe2lHRY3LNy1dqnS+lRbbWVc5EqMlD+Ouzm7fuE5h7x4lzpTRbaN3adcexTu+ +S1nydro2t/S6QI4OuVxMttG4pM5zpSuK2FznWZNdp1f6TvOeiFW7Y55jJ7QaRfiYynnNhozoUSM Wj065SfF4x2/3pHDREa1zYc25q6D3ptmb5lrXdzWEYLMbdMFbg4nthY+p5YS6yTyPRObiKzSmm3r pHkGNm8DXUtTHn15/1RRFEXx1DMffqrS855mpzpVo4s7777/2coYQvXGfOl97Q/GFB339ep37UX3 tq1q39NXp8r0zp9Jl7mlVE+VgyTvL4riiaeeebZ464dvvdUsc2KP0gMLpyL19n669mh0vmnpUqXz PUnU1Ti1juDks9QibbIY2zbi+Y6Wzjc4FW10bayYcsJU16tpz5TElTAifcdhuK7b/VSRYTo8O0YI erL8jtT6e83+W+bTJV1h1ejn9pvblv/unf2YLnPvEy6JoePMRV1F6h2QTASTmcVIONKZUvMgskrP mp3b6IzSxzL9rFeqGOU39F3fxT7xcFShdemKWr/sjDw+Md8ElXrK5ahIRVdA27Ft1uNA05Z5mUdi cvb3vcVL1Vm8oigq/cWPtnUT40ewa3/TxyjzXJi82af3N55FZm2M2N/Mc3DCr5wibWO+MyWzSYxr Ob13HKYwYVgVT2fv8seOBql9Pz4ukZywKp7gJLqGBHKyTo8qzxe3tL4BoasY0+bb/DDywOd8S6/U VtqjEZMAe/a3NuXjiafaHz5Z+M7XOxHlieSXndVosLntTHImz0wu3ac/Xr6bVRmI21adrHIurGi+ /V2xJstvkcpJdPvVe8dZiTlvNcKq0lr10NsmJ3/ELi6Sb6Sea1O3FjNTvunUNrV0B7MB01rHjjOX tnv0pWPbrLw59iFH/kSUrrvy8v3adJlrr0woJv0KfK0+/WZjiflkvmUxMX91eenjsr0XCUTNt7/n 0MLzRZ427LrjrFq3OXM9zoewanW984/KiZrpSW5LSpf5u433Xc8RjSzfdNfKdyN2EFlVw9+uyZ3N f/Qu7VR54OH9p0/eqz4sFNiTaizx6BHqQII1j17jtom7cr/qIE8xQy9trT79BmMJYJvSdxw24zz7 iJNrxhLTJt7MYuOqMwBnKvNaFbKvAzGhJ/pXmd/Hn3smfXZ99823yhOmutXQSYDD/Pzdt37w1nd/ MHVf/4d//XfFU/U5coO0vkWwJYsP/NKljk/GFPgDv3SpL+uhZX40qPXWd98cUtWtpVpgkKGZ70ee +fhHhtdqPN+NDKqMLkn+Hg1tculj1HsuJEoy+Xk0ot6CtdGVYPwITihSV/OdKb1Xwnhec9xxGKi3 N0LcqcN9+i/ST0scqeYDS81P8tW2jbSQ5ranSih7uZFSpV9ZMVXDbn0YbIF8dyRrzKq1jU6ytDfT 3neb1HKpPr2XWDq7xGjMuJeA1Z7hufPXxbPd2zZ/m6hWnmLIAFEi63r3ova68Lwyj3sdSKKGc159 3rV5zx6F8x1t7vG9yfXWRvocyW/tTem6mupc6Nq2K/fRR3Da2hiUdTzlQccip65636QXP1NySjXi QBxU+hv3Bb6P7ypS6zsMmv8e1CGpfdK65pG+pA+OOSSO/rg0a0ch3WtvFn50d7Ro7EtXoNXc35wy t75pcESputLsSrlZtua2rel3bZiZb7nmYc6UmksXFxdPP/302sXodOCq9wCd8wAAAM5JREFU39DI wyrm+L0glnS847WFPVqyDFvY32NQkxuz4ovgDtZpWWB3DlZjg7Q+hXUmtXHgPd36c1aR7xg2zZ0Y qHFZgCms9YDH8TqLc9fk8WqMHMc+7lsfszqa6hSp7U/omtus0+dgL1wWYAZDe2/BpwYO3FmcdtdG T347pGMOHiQd+Ew5EVkBAABEbeLdgAAAALsmsgIAAIi6UhTFX/3VX61dDAAAgB0zZgUAABAlsgIA AIgSWQEAAESJrAAAAKJEVgAAAFEiKwAAgKj/H5WIw9il6UE1AAAAAElFTkSuQmCC --000000000000468aa606041631a1--