From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id kDDnFqt6ImXTxAAAG6o9tA:P1 (envelope-from ) for ; Sun, 08 Oct 2023 11:47:23 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id kDDnFqt6ImXTxAAAG6o9tA (envelope-from ) for ; Sun, 08 Oct 2023 11:47:23 +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 E1D2F4BAA1 for ; Sun, 8 Oct 2023 11:47:22 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=CZ2vX+pz; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1696758443; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=CYmMma1fnkRB1hLfUIfcnun7YW9ZnoPp6OkMeGcZAEo=; b=egs7bp6cD116Uhnh6yJJGepojtPdvnHQpBMbSs4xx8rG7GNQh14lr+iaUeVoPapezfbvOw eEw+70ZKhQGx8IMB+mUKCDKhBfD7O3PIPthcqNAwUTJIjTidVL5I2eFbEFU4nSRX3cD3ZE T3JYU1CE294YuotgdytUXiUVdqvZLAax6BsWU+EaQQ1e1sNwjSbsAsVM/CsvttD36665rw qsC7IvfE/ZttC72y7rVz0Zmye8H0blXxA31v1jqfAyn3xv52AwtDFgs82lJVtMFCvQQFsp cdvX5JLpO6IX6+5M/kcZNz2X2ZoY2ix7BqS2eAo0dmXtRIKmAZbhoLwudQawmA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=CZ2vX+pz; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1696758443; a=rsa-sha256; cv=none; b=CzAOPyYVxQEZ+CYmXYtUPIKe+MWKsUvF2Z6AFHdoysP2C6GPuibjF32wEV/J5zPGiSjGYL P1l5Kf1i2Uw8HeJXlK2bGZu2bdE6xGGQ0BKmiwD9uK2xEwqkksCgrptDWKR5tDnkz8v/hx 4ZmrKsFBnLltbD5vCwqZLWXa9bDVbNLnnmufh2eeehFFSzjcD0JiolDMyMFVaEXl/pMBZe lgYqAbhlhFKS76x/OHQNTDp/sHvK6UL3KI1qI04fnm9T9Z7Gt8G2WNSSmJcS9lgLnmgJ5S C3oZLOEDlw3fPi7GQbOuQlTcyp99zaIPqFOGFIzWbCqIXHTOQq7ng/4K21CIqg== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qpQMt-0003uQ-Ih; Sun, 08 Oct 2023 05:46:35 -0400 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 1qpQMs-0003uE-Gh for emacs-orgmode@gnu.org; Sun, 08 Oct 2023 05:46:34 -0400 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qpQMq-00022U-CZ for emacs-orgmode@gnu.org; Sun, 08 Oct 2023 05:46:34 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 20947240104 for ; Sun, 8 Oct 2023 11:46:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1696758390; bh=YVaVBI/h0/6GWMEcyR1PwWAyuWCAERc18dnhfiTf+/E=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=CZ2vX+pzQ8jQbv6AZsD2+Y5MS2qRx7+Cp7OxqW3Xr1bNskKRj3XZ1Xg7ww13Tese5 44ys5eu5346kQOBmQXNKgx67e+VkMCLd+q7CTCV2jhukfDo7eJK70ZYnGeW5+vE6Gj w7LpLE8SjyEHFnlgmXMeP/xWyzNGrDdBBG1zseE17fhdZay+OwWieR6y4iDzh2JaGr NNGj0yfWKbLzho4q1pXN6blEvr+CooPUOc2tMd+jnVRkXgAxOng0T8r7n8XdZNaK7C Ylb1qTHwRcXMDESgiMe7A27rX2s7G0JFZjRDzYT6F57YFi7Trp6+VTtfYxxcgZC5lF mchyxAj6AcBWA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4S3HP107Grz9rxQ; Sun, 8 Oct 2023 11:46:28 +0200 (CEST) From: Ihor Radchenko To: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= Cc: Max Nikulin , emacs-orgmode@gnu.org Subject: Re: Exporting elisp: and shell: links In-Reply-To: References: <87il8v2q00.fsf@riseup.net> <89434f4f-8aea-23f2-bbfc-3961c18f2154@gmail.com> <87a5u6tgb3.fsf@localhost> <878r9nofpw.fsf@localhost> <8734ztvtvk.fsf@localhost> <875y4326v2.fsf@localhost> <8734z19pwy.fsf@localhost> Date: Sun, 08 Oct 2023 09:48:07 +0000 Message-ID: <87r0m5phrc.fsf@localhost> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de 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, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Queue-Id: E1D2F4BAA1 X-Spam-Score: -9.34 X-Migadu-Spam-Score: -9.34 X-Migadu-Scanner: mx1.migadu.com X-TUID: KxNvEp3XOfC3 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Rudolf Adamkovi=C4=8D writes: >> Still, it would be nice to have _a_ variant compared to the current >> state of affairs. > > Agreed. If the link has no description, we can do a great job on > exporting it. Half of the victory, right there! > > Also, how about the following /simple/ idea for the description: > > [[elisp:(server-start)][Launch Server]] > [[elisp:(server-start)][=3DM-x server-start RET=3D]] >=20=20=20 > src_elisp[:exports code]{(server-start)} (Launch Server) > src_elisp[:exports code]{(server-start)} (=3DM-x server-start RET=3D) > > TL;DR We export the description, if any, in parentheses after the code. See the attached diff, implementing your suggestion. I am not sure if I like it. Consider the following example file: ---- #+options: toc:nil author:nil [[elisp:(message "Hello")]] [[elisp:(message "Hello")][Message Hello]] ---- Without the diff, exporting to ASCII yields ---- [Message Hello] [Message Hello] ---- with the diff: ---- `(message "Hello")' `(message "Hello")' (Message Hello) --- For markdown: without diff: --- <(message "Hello")> [Message Hello]((message "Hello")) --- with: --- `(message "Hello")` `(message "Hello")` (Message Hello) --- For html: without diff: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=html-without-diff.png Content-Transfer-Encoding: base64 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 SUVORK5CYII= --=-=-= Content-Type: text/plain with: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=html-with-diff.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAApAAAADRCAIAAAD0TBXnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg AElEQVR4nO3dX4jjWL4n+F9UVtVR39sz1sCA1XDBahiwFgashl2sCwNWw0LowoDVsGDlk9VP4X4K FQyEC/bBb+GEC1ZBQyhhwC5YCOVTOOEuoYIFu+BCOKGXUMFAuOBCqJ5CCTuEov9Zrsoq74Md/hd2 /KvIzlDW9/PQnWFJ5xxJLv10/npjNBoRAAAAPG4fvOsCAAAAwM0QsAEAABIAARsAACABELABAAAS AAEbAAAgARCwAQAAEgABGwAAIAEQsAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwAA IAEQsAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwAAIAEQsAEAABIAARsAACABELDh sQldXdjgVbv/rguSFGFL4zY2eKNNRNSvK9zGhlDpvo2cPFPYmJKr/tU9Alvhpntweju+X0b9usxt bIhWj4ioZ4krs4v9qsxtiGY7ul8mAEmDgA2PS9gyKy/jzXrLkt51UZKC5zgi4nmeiIjn5/54aLJp N5vN5t7OZnrNHoJWc5rNZnOvnGM/IqNx+XlhfEoCT8Qmf8zh5Hqrlg8/r1Ta4Y/ICyAxELDhMYna VvWLOF+1K+K7LkpycDzPEXGXAftKdAtshdvgdHe+thu3DW6Dk+t3a8YQVMM0TbNiyOveBzhJM03T NA1NvNtJLCUzPguem/zBpue3SLZsK/v6hVXz7lmVB0gSBGx4RHyn1n6dNmoV1K7vguf5aYweR+9J qEssnuc4Io6bvYOsOSVOqdaKqW9aNSf4mxYQ4F1AwIZHI+46zlfDrFHRrtSluqbAKXXPNWWB40TN 9qO+ayoCxwnKYntoHHh1Q5UEnuM4XpS1itNb7uEMu7apygLPbXCcICq65frL1bOo51Q0WeS5tanE fbdqKJLAcxscL0iqeTUfCrt1QxF5juNFxah7QdjSuA1xsXc56rWsSU68IKlGvR3cva7IC/wsoPE8 f88m8bjvVnVFEsZlUXTL9d9O73Dku5auiJcZGdV2f/mkOX52SjzHccSvewfhdcvIDF85zooedYD3 CwI2PBq9tvcNZTVDWbGN4yhoVR2+1rJ1+qJW0SsOX3Udg3/1vGpPH9VBS1f+qeZzWtVutVp1Qwrd 36mK1Z3FnbhnqVq1S4plt/ZbTs0Qg9ZTVW8Fc3n1bU39XTuSK3Wn1WrVK3LU/p2q1ecCQuga6tNn XVKsutN0aoYUur/TtMVhcn5d0z5th6JRd5yawbcruuVF4zO5FHUtVf2tG8mVeqvVsqsq9Wq/UXTn rsPtOJ5n0xjNCzzjuTvXsGO/rilPnUDQa61Wy65qfN95qmr1Ky8zP1bcq2rqU8fn9aozPunus98o 2tJJ8zzP+Ll3ELb+FYRTdDVNX3suIja890YAj8NJI88oVToYrNjW2coQpcuHg9FocFhOX/571NnO ENtsno9Go9HofL+UonRp/2x23PlhOUMsv3sySyi9lMfp/laxtNs5n35wvJMjttlcSGWnWNo5OJv7 e7NQ2DqYHXO0nSXKbh9NPxiXMrt9dJnT4Ggnx4goM9vpeCfHWH73eK4wJ408o3RpLuXbGJx29veP JsUbnBzuHxzPJ3DayDNixf35Czs4KDFiuemFOd0rMMpuzV2G0VlzM7V0IWYlzxLldo7XF+l8v8iI Fa/ezPFdLuydzopytJ0lSpX258u8cBbnxwf7hyervhfzma0sKcD75MN3/cIAMBH4/SETZWld3ZBJ inQ5Aprx4/0EgWcUxxERT3G37V2kNF2hMJy2ksuakv687XXDqiQQEcUxURz0g5gu8xENp20s5hTT MPD7EV2O3OK1elub285rdU9bOEKURUbdMIyJxsn6Xu81ZQ1DuTwbTrEs1f7tF7NjfM/7iqQdVYhm xeVVXWafdj2fdPU212yStqga4vQPSTNWDAEYvnz6s42ni5/NxnGHntsbZkxdiueunaor7Iteuxub xoP1iAee6w9TWmVWXuKUiplzPvXavdjQppdr/ix4WV+6Q4t4URRpGPgBkfBQBQV4hBCw4ZGIojAm EoT1j9xJqyjHzY2q4rhxECaifr9/QRcvnv7yxdUj+8HkWa5WjJz72aey1NY0VdM0TVXFpbZW2awU nE8+06Suqo2p0nJzbNxv2zW71fWD1xfDyw/ZrPU4DsOAmCKJc8cIkizSF9N94sDv03D47B9/8Wy5 uCwIIqIHnpiV2Sxr4izwBt3nXwTTv/p+MKRvnv/TL55fKUsYhkTiQ5Wi7wdDEpXFUeaiJBH1g35I 9xxbLogCIz/CfGx4zyFgwyMxDrvctXW5azfGYUyULjZalnxlP+GytsYpdren1OtO23v+7OXzZ8TS eaPm2JW5ECJZXk+0647ruc+++PzZJyyd06u2bamX7xKha6hPX0bZUs2xVVHgOIo8S/u0N38yMU1e LWZ4nmc0rb/GUUTEctutui4sl5e/8obwozHZdJxZTTluG625gB3HEVG23LRNcbksnPiAtdY4jiNi 4tJd5jiOp2Ec37u7nOPo8poDvMcQsOGR4CZP3XsnwAsco5gTVVW9NrDzslF3jTpFQa/rtV3H+fx3 asj5ninOyiLp1ZZepTj0u57nOvbnn2hB3OtVZSKiwLW916zQ8Fzr8pDQXwpBRHQlhMRRNJzbheeJ iBNkTX33k9g4jieKeUlTV434e8h8xqF5sS68OozfwarXI4D3D0aJwyPB8zxP893PdyVKEkcXfndx sHAcRWveAXhR0St1t9sqpS+6bndVeyonyJpZbXXb29mh3/YmA5mDfjAkUVbEWSZ+1x8uHigINAyD +ZMJfT+Y30WSJTb0e0vTweJ1xX2rJEViFPZ6wVJZHryRWZIlRkGvv5Bw0O8PiZeke1flwyAckvB2 VncDeDwQsOGxkGSRDQP/ypTc2+JUQ0vT127dnYXJuFdVBUGbrqrh25qsWN35LDiOu1xuhIiI+i1D kRfXp55MLpqOQeN5omj2IhD3HduLiObbB2RVTlEwN9Uo9m27uxDUJd2Q2dCz671ZcYKWLvHSYgH/ FgTNUFPDV3bdm5131K7IgmCsXan72jJya/YRdV1hF13HDWbpdJ3WV5TWjOsbRq4RBUFATJTffUsF wFuFJnF4LERFEeiV3/VJv1+7LK/X7WLv6UtT1XqWoXBRr+20XgZiuaaLk10kWYqrnxlaZBmqyHMU BV7L/jzKbVvT8cmSLFP/U1ONKxVN5jmKw65rt4KMUdcnNUBZ17LPPmtXrRZnirHfrtu+Xq8Ev/2s 57pdSVNkkRsv5/HyuW3oVDVkCrstx5f1XP/FXPiTLNtytWfPdDW0KpoQB92W7b6KlYap/M0bdwXT rrWUT54balSp6DIXdFtO68tQ2l6xig0RLwiMeu1aVdREIuIExdAXBw5wPM/TsOdYdiRzRMRJuqkK RCRW6jVX+9RStX7VVPg48Bz7868zpf26dt+Tjv1ub0iSuna9VID3xbueVwZwadDZyhBlV03v7Wxl pjOJ5+dJnzTyjOUbp7M9Tw8b5UI2nWKMpTK5za29o6XZuWedRnkzl0kxIrrcZWna8/lRc6uYz6QZ m+xSbnQWUhmcNMuFTIoRS2UL5b3j89HopFnKphhL53ePpzvtb29m04yxdLZQbhydnTTybH4e9mg0 Gp0fN7eL+UyKjXcr7R5cM9/4nm4zD3tc4IOdUiGbZoxYKpMvbjeP180HP+/sbGZTlw+RxTtwmViz nE9PJ46lyodzR89OOpXOFsqNwyuH38E1XxuA98vGaDR6Jy8KAFf5dVn5NDIO+617V7ceMb8q/crm d/1eFW23DydydfGpJzX6vekQQID3FPqw4RGRKzU9/Y1bex9+C7vvVk2j0pqdSd/zAhLmx6rBjxb3 arWXFxmzhp93g58A1LDhcQlbmvTbnrLnewl/BEfdivLr50G2aFm6zEU913a+iJRGr4sf+n44fl1R Pg30A9/VH3C2OMAjhYANj03o6vLTrpT80BYHnl2ttbr+168plZEUzarXTYyMejCxX1WVZ6Fx0Gsh XMNPAgI2AABAAqAPGwAAIAEQsAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwAAIAEQ sAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwAAIAEQsAEAABIAARsAACABELABAAAS AAEbAAAgARCwAQAAEgABGwAAIAEQsAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwAA IAEQsAEAABIAARsAACABELABAAASAAEbAAAgARCwAQAAEgABGwB+ciK/VVG1uv+uy/ETEHbtiqHJ wsbGBm9648/6rmXqqsRvbHCKHdwhsa6laNV2EL+NgiYBAjY8NqGrCxu8avffdUGSImxp3MYGb7SJ iPp1hdvYECrdt5GTZwobU3J1RbgLbIWb7sHp7Xs+Wft1mdvYEK0eEVHPEldmF/tVmdsQzXZ0t8Rj 3zEUvSXWWlWZyHdMTZVFflxkwbg2tcBRx6fHi7Kqma33LuD7jqEqkjA+SU6QFNVw/FttXEtQLcf1 6lpq7jPJsFttpyKxu5ZPtV0rrqtKxQ3ueuj7YQTwmJw1N1OU2tw7fdcFSY7BfpERZbY6o9FodLZX YETZneO3kdNZZ7/ZbDb3djbTRLlVeQxODpvNZrO5V84xYsWDwT0z2iswotzuyWg0Gp3s5ohYoXF6 db/j3TyjdOng7NYpD44bhTTL7RwtluywPIknLL8qn8mxna3MeK9U+fDWOSbQ+GqsOcnxxvT463a3 JBdTPGnk2bXXe53zw3KWZYrNOx+YfKhhw2MSta3qF3G+alfEd12U5OB4niPieJ6IiOd5IsYL/Gx7 YCvcBqe787XduG1wG5xcv1szhqAapmmaFUPm1+zBSZppmqZpaOLdTmIpmfFZ8NzkDzY9v0WyZVvZ 1y+smne7qnzcrRrVL/mKU1O45W2pXC5DNHzl2L3ViQWtusvlcqmVG+Fvh9ds26CXFeOn16WBgA2P iO/U2q/TRq0iveuSJArP89MYPY7ek1CXWDzPcUQcN3sHWXNKnFKtFVPftGpOcItk+3bV+ZoKlnU1 XBNxcsUqMKKvW/VVzeJxz7Z9tWrJdzmPdyAOPNvUTDd81wV5m3jNMnLDV/Vq670+zasQsOHRiLuO 89Uwa1S0K3WprilwSt1zTVngOFGz/ajvmorAcYJSac//NxsHXt1QJYHnOI4XZa3i9JYfvmHXNlVZ 4LkNjhNERbdcf7lGFfWciiaLPLc2lbjvVg1FEnhug+MFSTWv5kNht24oIs9xvKgYdS8IWxq3IS72 Lke9ljXJiRck1ajfZ0ANL/CzgMbz/GWMu6O471Z1RRLGZVF0y/Xv2Dt8S5HvWroiXmZkVNv95ZPm +Nkp8RzHEb/uHYTXLSMzfOXcoje157ReDZmyrvbPSYalp4kuPLt1peUhdGstMqqGsDrpsGtXNFkU eJ7nBUldOqXAqxuKJPC8wPOCKCma3bvcNL7oosALPM8Loqwas7zjXl1XZUkUBFEUBEFU9Go7WMh2 HJ1lcUKSFUmUdIcq9bmCXl+2h/JQuUS+WzVUSRQEgecFUdZM21vx34RsaFm66DpX79T77V23yQNc 6mxniLLbR6s2bWVYOpsrbB8c7pUylMoXCoXtg06znF3orz1tbqaJZTe3G839/f29nVIuRSy73Tmf JjQ42s4ylils7Tb39/eb411SmwvdYSeNPKN0vry719zf39/bLefTxPK7cz22Z/vFNE12aTYb28Us o1S+cTJf5OPdHCOWKWw1mvvNxlY+kyuV8owyc+d33tnOTXLa399vNrYKGUbpzb2FdG7hdK/AWGnS X3yym2Ppcmd+cyPPiBX353ttBwclRmzSSTwajUaD491CilK54s64LNubWUap/O7xql7o453smj7s 6antF9f0YQ+OdvIpYpnxTWo2tvJpolRh6aSPd3Js2k3a2cqwa3rlB4fldV3qV0u9cANmDsup9FZn NDrazhIRZbY7CyUfHG1nU5vNs9Xdu2f7pQxL5bcPTwej0Whw0ixliNLF/XHP+qCzlWWp/M7R+Ft4 ftzYTF/erLODUprSm3vH56PRaDQ46+zks7PO4fPmZqbUPBkfNzjezS/estFps5gmypb3T8epnR/t 5FNE2a25wl9ftjXu3Id9cy6368M+P9zKMsoUG0dng/HFapayjNKFxpXv4eCglCJihZ/WaBcEbHgs Thp5RqnSynFKna0MUbp8OLh8PI//PepsZ4htNiePwv1SitKl+WfR+WE5Qyw/e8h1ttJLeZzubxVL u3Mx/XgnR2yzuZDKTrG0MxvZdH64s1kobB3Mjjnazi6+a4xLmd2ejm0aHO3k2GK8ON7JMbYYEsfv CqW5lG9jcNrZ3z+aFG9wcrh/cDyfwG0C9ulegVF2a+4yjIf/LV6IWcnvHbDHd3n+MTs42s4SpUr7 82VeOIvz44P9w5P149fGma0s6fxezU229gl/GbDHF4IoVZwvztl+MT25l1dj2eCwnCHKbM8NYzvZ zTOi3Pgd77CcJlbYmxVucNxsHs8VfP4qnXea+7OXqJNOZ66wk8F305SOd7JEbOE98Xy/yGjuC35T 2da4Y8C+TS63CdiDznaGKFVcuJHjkX4rbtv4/Ss1fhD8VKBJHB6LwO8PmShL63pfmaRI48FVPF3u Jwg8oziOiIjibtu7SKm6QuFULGtKeuh73ctm8zgmioP+XBubaDhtt6rONyHHNAz8/qw5mNfqbbeu C3N/e92uo8+OEWWRURCG02R9r/easpox7SzlFMtSF2ax+J73FUmqKkSz8vKqLrPXXe9ug2k4UTUM ZVI8TtIM/eqgsOHLpz+bTcna+NlvXgzntoae2xtmVF2KZ2UhVVfYsNfuPmT7aeC5/jClVgxxVnql YubYhdeeH+u1cBa8rBva2u8FES+KIg0DP7g+6344JCKeX9OqPSZOm8WdaWOrb9e70uqObyLqtb1v iMmKPNssSiIR9XvTRuGh33anf3Cyac71hA99d9bQzaumMR3AwUmqKs5nxTGiOL5MJwzC5fPhBYEn isMwun3Z1rpwDWEFw724xxW4jZ7b/oaYrKnzd4hTdDVNw57rBYt78wLPiOIgeDv9No/Th++6AABj URTGRIKw/nE66ZjluLlRVRw3DsJE1O/3L+jixdNfvrh6ZD8gEoiI1IqRcz/7VJbamqZqmqapqrgU 3GSzUnA++UyTuqo2pkrL8S/ut+2a3er6weuLaeBjs4dTHIYBMUUS544RJFmkL6b7xIHfp+Hw2T/+ 4tlycVkQRET36IW+TmazrImzJ2rQff5FMP2r7wdD+ub5P/3i+ZWyhGFIJD5UKfp+MCRRWXyhECWJ qB/0Q7rn2HJBFBj50fVP7mj8Xsdx14/H43XLyL747OtXjt21HJWjyK23IsM11xQt7PcjoqFXEQVr 9mnMpRhRHBEJqmlk3c+++EQWXd0wDVPXZGFSBF4zjczLz188lXqOMd42/1WLA8+pO20/iMbf89Cf f8kiQRSIvg7DcPZdicbfHHHynb6xbNdeiZRu92xt+WrFXkX+7cv5mP3jcllIJyTilh8BnCiJjF71 ewEtzB2Z3MgoukMWiYeADY/EOOxe/zS9dmMcxkTpYqNlyVf2Ey5rLZxid3tKve60vefPXj5/Riyd N2qOXZkLIZLl9US77rie++yLz599wtI5vWrb1vTFP3QN9enLKFuqObYqChxHkWdpn/Zm+Y2rQUux ged5RtMRcnEUEbHcdquuC8vl5a+8IfxoTDYdx5hmFLeN1lzAjuOIKFtu2qa4XBZOfMCnYRzHETFx 6S5zHMfTcFZ1vDOOo/mq59rM6Yav0JhiWQXnd19+49rtmmqETt2TLF9dd+A425Thhi1tdeFUu+uJ 1Zrd/vLFZ69efGal86bt2obIEfG60z2UqjWn/eXnz778/Fkls2k5rbomEFHgaPLveuJWu+2O37T6 dUX+dK7tRa5UN1u//cKptTTHlHmKA69md4epQtWahNkby3Y9ThBXvD8LV95ef1wuU1E0eQQsXWqO 54goiqN48fZxRERDop/SsmcI2PBIcJOn7r0T4AWOUcyJqrr24TreTzbqrlGnKOh1vbbrOJ//Tg05 35urQnGSXm3pVYpDv+t5rmN//okWxL1eVSYiClzbe80KDc+1Lg8J/aUQRERXQkgcRXM1pPG8Yk6Q NfXdT2LjOJ4o5iVNVd5yPuPQvFgXXh3G72DV69GqvIkoJopvCtuiYem1L1+89uxWl/PtSG9dsyzA JNkouqZRRFCtVteKQ7/bduq1518+N3VR9qsSEXGiVnW1ahz2PNep1T7/4plhSr5nir5jf3nBNq2a duUdalpOs+2FmubUDaVORMTxklI7cC19+np6i7L9eA+Vy7jVLI7jpRsURzHRimkCMRER427zDvbe QB82PBI8z/NEYXjviZWiJHF04XcX+3/jyXv7igxFRa/U3W6rlL7out1V7amcIGtmtdVtb2eHftub dGoG/WBIoqyIs0z87mJrJScIAg3HnYyXQn+hk5WTZIkN/d7SdLB4XXHfKkmRGIW9XrBUlgfvHpRk iVHQ6y8kHPT7Q+Il6d5V+TAIhyTcMJVt3OdJa78P87vqlpklGr6qG5W2WKleaReeI0gSTzTs99bN L5q+tnGCrFUcz9vJ0bA/HlYxt03RrVbXLWfootvuxZMeao6/pouIKOq13EBz/P6Y32s7VX2us//G sj2Ih8pFGH8Dlh8BcdAPhsQkWVzcfXIjr79C7xsEbHgsJFlkw8C/9xxRTjW0NH3t1ufWjIh7VVUQ tOmqGr6tyYq1MIyK47jL5UaIiKjfMhR5cX3qyQTny7ZAnueJotmDP+47tjce9zZNWFblFAWeO317 iH3b7i4EdUk3ZDb07PrcYKugpUu8ZD3oOK/bEDRDTQ1f2XVvdt5RuyIL16ytfW0ZuTX7iLqusIuu M7cUdNx1Wl9RWjOubxi5RhQEATFRvr6lQhRFokmf542U8SIqF69Jr96wjI+ia2mir127vfpd06vo 86u6cJIsssnXLnJN050rDi/JIrtse+F5onjxnW9R6FaMz0JFv+a63VS2h/FQuSimnqWh3+7OJxP3 2t3XtGL2fBSGw7n++p8GNInDYyEqikCv/K5P+v3aZXm9bhd7T1+aqtazDIWLem2n9TIQyzVdnOwi yVJc/czQIstQRZ6jKPBa9udRbtuaVqIkWab+p6YaVyqazHMUh13XbgUZYzpMXNa17LPP2lWrxZli 7Lfrtq/XK8FvP+u5blfSFFnkxst5vHxuGzpVDZnCbsvxZT3XfzH3eJYs23K1Z890NbQqmhAH3Zbt voqVhrlmPPJbJJh2raV88txQo0pFl7mg23JaX4bS9opVbIh4QWDUa9eqoiYSEScohr44cIDjeZ6G PceyI5kjIk7STVUgIrFSr7nap5aq9aumwseB59iff50p7devq8ZeK/a7vSFJ6tr1UidFUlSZvXwV +MFtBtGNm8XbglXVbwgInFarb3q//eKFoVKtVlElnoujMAwCTq1oIhHFvbrlyI6pCBxR1LOd7jCt mxpPFFHk1S1Xsg2ZJ4pDz271KGOaKkek6Gr6+edf1s06byl81O+23Xaw8MYX+v2IXr8wBF+SZs3F HC9KmlmtaCJ3i7I9iIfKhVNqznZX+6xWsSXHUoTxj6pVWt+kCw1nedBfFAQhEVPUx7703MN61/PK AC6NZ1yuXCGjs5WZziSenyd90sizxaUXTg8b5UI2nWKMpTK5za29o6XZuWedRnkzl0kxIrrcZWna 8/lRc6uYz6QZm+xSbnQWUhmcNMuFTIoRS2UL5b3j89HopFnKphhLzxZYGZzsb29m04yxdLZQbhyd nTSWFk4ZjUbnx83tYj6TYuPdSrsH18w3vqdbLZwyGo0GJwc7pUI2zRixVCZf3G4er5sPft7Z2cxO F9Ve9QMOg5NmOZ+ezmNbmIE7d9KpdLZQbhxeOfwOrvnaLLmcHLy4wE2zvFnIZVJEqUyusFlqTGcT H+8U5iaHD44apcmONNm33Jze69PD3cm3iqXSmVx+s7y7P7l6J/vbxUIum57I5ks7+5ObPDje2yoW cpnJpky2UNo9PL3M/7yzW8ylp1/kzulhOU1EqUx+a7wmwOBkv7xmafO5RUuuK9vVS9TcKm7mJ7c2 lc1vFrea08t13CwvbizNNq7P5azT2CoVc2kionSuWNpqdM5O9rfLxUI2RUSpbKFU3p5NPj8/bu6U 8peXK5Pf3GrMLsmczlaGKHXT5Pv3DQI2PCLHuzlGmfd1KYTjnezCIi7wEM73i6nb/ubT2X4xddOi IQlyerCVy5UPF2Pv+fFeMU2z5YTeT+O3tMxW5/18VKyFPmx4RORKTU9/49beh9/C7rtV06jMLXXc 97yAhPmxavCjxb1a7eVFxqzd6ufdBMOub6a+slf+ukfS9G3DaPGV+lKfBS8burywwMp7KGjV3G8y Jbt273EPSfWu3xgAFrw3v4d93tnKErFscWevud9sbG9mGKUKDdSvH9Ldfw97dH64nUulk/9jyoP9 IqNU6Wpr1PlBKb20Yun7ZXC8W0ilCrtHP7Ha9WiEJnF4fM72i+n3IrQNTg93S/ls+rInfGt9nzDc w+B4J88oU75LuB6NRqPR+VGjmM0WG8vDG5LlrFlMU6qw25n18J6fdppb+RTLFPcefijE43B2uFPI 5ErN9/X8brAxGo3edSUfAOBvK+671XpktioJHmQcB2275rR7/uVy2hwvyapuWqb+8EvlPQ7duuFJ 9Zq+djGZ9xwCNgAAQAJg0BkAAEACIGADAAAkAAI2AABAAiBgAwAAJAACNgAAQAIgYAMAACQAAjYA AEACIGADAAAkAAI2AABAAiBgAwAAJAACNgAAQAIgYAMAACQAAjYAAEACIGADAD1DIEAAABSWSURB VAAkAAI2AABAAiBgAwAAJAACNgAAQAIgYAMAACQAAjYAAEACIGADAAAkAAI2AABAAiBgAwAAJAAC NgAAQAIgYAMAACQAAjYAAEACIGADAAAkAAI2AABAAiBgAwAAJAACNgAAQALcLWCHPbde0VVZEiVJ liVJFEVRUlTdtOxu9JZKeH9h16lbusRtcIod3Pogr2qosiQIgiCKgiDKmml7Qbycsm2qsiTJkigp etXtz233W6amyKIgCKIoCqKkGlbLn784/ZapKdLlDoIoa2b9Sg7rRb5raZJc9a9uivuupSuSJEuS KKum3Q1vk+ANR8V9t2ookiRJsiSKkmrU2zcUNu6366YmS+KYIEqKZlhucNszvLc47NqmLOju8u26 zT29PmW/KnPclYRn+o7Kc+rtv2YAAHc3uq3Tg61citL5rebR2WD66eD8pNPcLqRzO8e3Tulv6rCc JpZvnN52/5PdfKbUPD4f/zU4aZYyROnN5iyB88NylmVK+6eD0Wg0ON0vZ1l6c+/kcvNBKZXf6ZxO LtFZZ6eQIpbb7kyvWaeczm9Pdzg/3itmiNLF/bMby3bW2SvnMylGRNkr13tw0iikUvmdo/PRaDQ6 P9otpFh2u3N+fZI3HXW6t5miVKFxPC7ueWc7x64t7OBoN59iufL+5SUcDU47jWIms9W58fx+hMHJ wU4xm2aMiBX3B4sbb76nNyR+tJNbmfA0g0YhRcQKt/+aAQDc2S0D9nlnK8uI5XeOVz2yBofl/M7R g5ZrLuuDUm67c+/D7x6wC6WD+ZM82yswosz25PwGR9tZYoW9WYLn+8UUpUv7k3hwUMrvnswdP+ps ZYjYZvNs+ndhMdoe7+ZoMclVzju727vNzun5YTm9ImCfNTdTlNmavReMjneyxG54kbrpqOOdLFFq /oKcNzcZsaVTXEiQUbp8uPQ16Wzl3mbAPmlu7+wdHJ+dNPJsZcC+/p5eb9DZzmXS6bUBe3C8mx9v R8AGgLfpdk3ifcdqfT3MGLWazK3YzCmmpYkPWe+f8eu1dnSX1ssl3KoCX0Oy2i19/hhBkniisN8f N2v3Wu2vSdIUcboDr2oye912vfEOmuNZ0kKKsshoGPjB5G/V6dbl+R0EQWA0jILrOxV4tWpXTVXk V24NPbd7wRRNmRVd1tTM8Ku221uf5o1HhUFIxPP8bDsvCBwNg2BNa3vYD4YUx8s3TKm2LHnlAQ9C Mu16RZeFNff6pnt6nahrWT3NtiS2envs2xVXtmvKmu0AAA/lVgHbb7W+GlJaNdQ1T0ReNVSBiKJu 3VBEboNTnSDstaqGIgpaa/xsv+z3lSRJlFSjPtdV6juGIkuSLCuyJIqKPtkW9WxT1e2vht+4hiiK kmb36aakiAKvbqqyKIiSLCuKYrUXHsqxb6siL2pOf93JcvziScZxHBNxk6AV+H5ITBTFuT0ESeJp 2Ov6k+OXEojimIhxwupIS5Mgl5YUad0ON4v9bm9IorgQsiRZZBT0/LU92TcfJcoioygMZwE4CsOY mCSLq5MURIHRRbtaWejXJ06UJX6cZcvSZX5jgzc9uvzAVEVuY0Ou94ko6lZVid/Y4GSzXjU1RRJ4 juNFxWz17//adv09veZbEXmW5RvO6vdUIop7tYqr2La69uYCADyYW9TCz5qb7PYNfkfbGaJ0brO0 tdPY2y1mN/fORqPzznaWsWlX6eFWllhu52jSwtjZypUPJi3GJ408o1TpYNLAfLKbI1ro/7w2qbP9 UoZYbuvgsot4uUl8fC6UKu7f0Lk7dbKbZ5S6bNHubKWJUuXDhV2Od3JEbLO5MsnBQSlFlF3T/Do4 PdwppFPZ8sHpyu0rrGoSP9srsCst/4OD4vUNv7c46ryznWOp/E7nbNxjf7CVY6nczvqu8fPDrQwj ImLpXHGrsT8/4GHitJFni9ews50hyk2b2cdfocJ28+Cwc3TUOdjdTN+iz+Ay5fVdzVOL93Ttt+L8 oJwtNE5Go9Fpo7Ai4UFnO5ffORqMRoP9IkOTOAC8XbepYUdhOCQifn0d8QpBq7tO3apU7bopcRS4 NedrXq/VFJ6IiNcsM0dftZzuuNIkmXZNF8ZHSooi0oXfC9akfF1ScbdWffFNxrRtXVxTJRIMx2s2 mm3HuOXJ+G3Xp6xZM8bli6KYiFtqZ+d4jhHF8aoG1shzuxepzaqlLH7es8SNjY2Nn/3SaHNmy3N0 8XblWS2KYrrS/M9xHEcUr+9QuMVRvFp3HSV49utf8DzP/eyXv2lFut2ur69R8prTbe9sZtnw9Vcv n3/y9B9/IUhL4+hvR1BMU9dURVH1qm3l2dDv+j+ia2Te0j1d860I25VqaDnWuoaPcWO5U1PWfNUA AB7WbQL29DF5jyeTqBsqH/W83pCJijRNQBRFoqjfH7fWCooqTo8Yx48rvaAT1yblt7vfUErRr3uE cqJqWqYqrN9jXt+x6oFcc+uXSY7/7/ZzsLrVapsrtVqmuLRFsYPRaDQanPVs1bckUa33Hnxi3P3i 2/xRsW9raiXQ9k/O4yiKB6edutStKNf0KBCRqNW9fnTaae6WC9kUXXz98tlTRa3/iHArCPz6r8Rd XbmntOpbEbqValR1KmvDtVe9trEcAOChfXiLfQSeZ0QURSGReJ9MojAkGvZtXW5dfhRHfFrgx8Eh Djyn7rT7EXEcR1E/uCab65KKwyCg5S7ZHyH0KkYtrrS96uypzPEcUbwUCuMoHhJx3FK1M/Ztw/Qk x2vpa98POEHSqq7ti7/51KipfVsJ2/W6F8ztIZt25cZK3Lg3dmmw17inluc5oqhrV935ICvqtap2 01EUOFb1y1g/sI1xDzQnqlar1hZ/V7Vaumde99bDiapZVc1qHHg103z25ata1TWvP+RvYdU9XSFo VWpU9a68Zl2K2pbVN9sOwjUA/O3cKmDLskhfft3v9ePKuqbmmzG56nUrVx/YoWsqTz2p0fUsmSMi vyr96tm9kop9ons1A6wStCt6NTC9rrXwUBYlkZEfhhHRLDxHUUjEiwsDuGPf1o2WaHdv0djNy6rM XvS63YCUuNd6/vzr2Ta2qdQqyk1xThBFjr5cGmgeRhEREyWRKPLd1vNXw1mqOdGqatJNR/W6vSFJ k/Fil1nJikhf9rxebOq3uNacqNXbTiD95oXf9cnUbj7i7VlzT6/u51RqkdlSKQiCySdhTERx2A8C nhe4bsXyNafKTbdHk+1BEBAnPNgrIwDAnFuNEldMM8foted217RKxt1qxV2/rBYvCETDcOVUoLjn tl8zpWLerrJyXVKcIPBE4fyY5vuJfUfX61TzvCtPdlFRBBoG/WDus7DfjyilqLN5S6FnqWZXc1dF 66C7on8+jmnyqiHX+wuDDOLb1UplVWEUBAuxN/D7w3GBSbR68UKqflW6+SiKY6Ir05UmXRarL3Lf NutX1mDjJVlkd59h96CuuafLwm67+82Xn/76lzO/fvZqSMMvPvnVL3+pWN2e2/7mq8/+6X+Zbf/V J18Mafjq2a9/+Uup0n7wvg0AALrt0qSyZVdy7LVbra5egTToda+bRcwrqswo8LwVPZ+TB/81MZbN b7wuKZJVJUWvu+3eNanFQbfltK5ZtDPqVjXTU1trqsaKoWcp6HWD6Seh1+4N05qhjeuhcb9laLW4 6rUtecXQrNh3Ks5SSIt63f6QBGVucvddCZqhpoY9b+7Ue+3ua5bTjWvmP99wFC9JIg3D/sIqnuPh AtLcKIJ5ceh3e8sXN+r7/eHsjWYyqu3HzK6/oxvu6dK3gldr7sGivXKWiOW39w8OWpasVNtL2/e3 84woW947OHCrmOMFAG/HrceTnx1u59OUypX3OvMzdQZnx/u7m5nZHJmj7QzR8gJb54flDBHLlhqH x6dn5+dnpyfHnaPTwWg0Ot7NMUrltw+OT06OOweNcn5+FtR4wk1u6/D07Oz09GxwbVKTNSRZptg4 PD49Ozs9OTrYWZy5dNO0ruPdHGPZzfLWsu3m5RmdH5Yz80uTljJzS5OeH5TSLJ0vXTl+a/dwfIEO y+nc9uF02tno7GivmGEsO53YdpPVK51dXWQ0f6+lSRePOm1upilV2D26XNbz7HArxyhdWrc26fFO lmUKO/vH0+/I+dFeMcPShdnireOvCMttNTtHR0edw4O9rXzqyrSu+a/QeHm14sFN07VWT+u6+Z7e ONlv9bSuGUzrAoC37/YBezQajc6PDxpbxUIum83mcrlcLpfNZLL5QrG83Tg8HYxG50d7W5tZRpTK bpa3G535p/pZp1Eu5DIpxlgqk81vlncnUev8qFHMpRljqUy+tHNw3CwyYunc5s7h+Wi8vHWGMZbK 5Da3JzFvbVKX27JpxoilMvni1nYxO54T3DgajEajwXGjkE5l5tb+XnRYTq1+sWHzi1ueHe6W8tls LpfLZvPFnYOT6abTRn7Nkle53XF0ONnfKhZy2Uwmk81mM5lMJlco7cxW3l7r7HB3q1TcLOSzaSJi 6Vxhs1gqb+0dzYp1ftzc3sxls7lcNpsrlPeObvUKcP1Rg9OD3fLlHc9msrnNcmPudeNqYvu7W6VC PpedO2Jr+Yjzzs5mNsUYS2cLpe3Gwf7W5Cbtds6Om9Ov0FajczYaHDe3S/k0EWUK5cu3niXHza1y qbhZyGUYEaWy+cJmsVTemcxtv/me3vStQMAGgEdgYzQa/ehaOgAAALxd+D1sAACABEDABgAASAAE bAAAgARAwAYAAEgABGwAAIAEQMAGAABIAARsAACABEDABgAASAAEbAAAgARAwAYAAEgABGwAAIAE QMAGAABIAARsAACABEDABgAASICbA3bo/cXQLkTufGPjnJf+qBt/8cL57W9alT9pSsRtnEvqnyz3 zepEun+tVv4k8ecb0l/82adDQzwX9ThYeUz8pm3/xVSjjY1z08NvgAIAwE/aLX8P+wfP/OM/fT7K bP193/mYu7I5sP8oex/3PU64LpHvqtKfn9HHx/2/l8cf+H+VleFX4sdH/b9X1hwT2H+UPvneOORb 2sYtygkAAPB+umWT+Aea9VGO6Bt32I6ubv3OcX7QKh9fG61Xkf+u2/93p72/Wxet78z/q6LF4c37 AQAAJMyt+7BlrlIgunjjtJYbvWNv6NJHln6f7nBe/FDkr6s6c1er82t979a+9eN7lAIAAOCxu32U fWJYH6aJvnSGvYXPv3ftN0KFKUREI9/5kyJHknyhyBeieKHXv11b3w2GVfOPEne+If5lPsHIjy39 QhIjUbpQlAvd/n44tzXu/VVTLiTpQlYuJDFSjL/2oklqlv5n6+Vo2IsVMRKlP3vjyB2/cat/UqRI ki9E8UKzYkR0AABIojtUi3mdM7JEX3/neD/MPu0PHf+JZX44/ivyf5Bq/67vp3r+v/esDe/Tv1jt H1YnJ7J662e6uPBZ3PuLpg7c+CPX54N+qtdLuZUnbH6P4PtQ+Vmvn/J7Kd/9KHoxNKrfxkQkMrvN qYyYwvUCPuj/XOOI6E1L//NTlywv1fdTfe8jag00Y4g2cwAASJw7tWN/ZFlPGI3a9rTePOo534U6 0/nxnxuS+bOa/mTyb+WJSOT3vr91+t+3qt++ip/UWn8n86v34BTmVD/mJ//+SElR2H+zLgDH3bj2 xShf+ZkhbhARJ3EVjV57Qze4dYkAAAAeh7t1PIsG09N00R22+kREFH1ru1SxPpp2NAvKx+J07/Gn t2+Cjr5r94jJH6rXjF4TP1bmt3LXpD/qe99/QyTJTy4/2RDFD2j4vd/HJDEAAEiYD++2O/+xZQxe fPZDy/nOsj+K3GFXZrY0HTX2Q+DFdedNPyKOI4p+CIjE2ycefB8OiYQn1xwS9YdO/VsvGBFHHI36 K4asz4ThD0TkWX+Upy8U8Sid3rjDODYAAIDH4Y4BmzaUysd5Z/jKjb0a9Z0ftPpsNlfo/kV5+kZq /Nwb17n9v0i/+vZOqd9QGw9iXRn01Z/1PE7kiOhbU/iLe1OBdeffOyrmcAMAQLLdfS6WxCyN6PWb uhk79JGlTVP4oee+ec0+rJgf3bMKyz8RGFH4/bo+6dD7tndBWoWJt8tAED4gGoUhGsABACDx7jF5 +olufZQhevXyjVjh5LkN8dz/3of4RBFp6L/xgtXb47slvSGpT9JEvfZ31zacAwAAJMB9VjvhVK6S I0p/aBlP5j7ekJQP2PCNUxv6/Td+d2jba8dvr/GRVfswPfy+avzZ7b0Jw+8D/1uv98N0HrYgfyAQ efag23/T979160N/IRR/IAg07H/b9r8PgzdBRJzGVQv0+sVAt4a9/vdR9H3Y/67XvWupAAAA3r0n tVrt7kd98J+4N//Pf2R1/clcH/iG8J+f/Lz/5l/cb3/f+u4P0cZ//W8fRa03f/i3N//6/33wv304 /Of6d+3eD//zz6Mw+D76+ZN/6Mf/7f/81uuN/ueff/i3//Em/PmT//KfPvj5f/7ov0qjf+u++f0/ D//Z+fZf/B+Ef9j4w/87+rc/fBf8w4e69pEUv+m2v/v977/z/sdI+j84Ofj2//7DD90//CDrH/3D hx9Iwvfd9pv/y/m2/a/f/8f/8vH/KjxR9A+l+Id/9b6t14e//+/f/kvvhz+LH/7v8hOMOwMAgGS5 5Y9/AAAAwLuE38MGAABIgJunden6n1++/O5vUJS/pe+++w8f3nVGGwAAwLuDGjYAAEACoA8bAAAg AVDDBgAASAAEbAAAgARAwAYAAEgABGwAAIAEQMAGAABIAARsAACABEDABgAASAAEbAAAgARAwAYA AEgABGwAAIAEQMAGAABIAARsAACABEDABgAASAAEbAAAgARAwAYAAEgABGwAAIAEQMAGAABIAARs AACABEDABgAASAAEbAAAgARAwAYAAEgABGwAAIAEQMAGAABIAARsAACABEDABgAASAAEbAAAgARA wAYAAEgABGwAAIAEQMAGAABIAARsAACABEDABgAASAAEbAAAgARAwAYAAEgABGwAAIAEQMAGAABI AARsAACABEDABgAASAAEbAAAgAT4/wGM9rRicy0M5QAAAABJRU5ErkJggg== --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=code-link-export.diff diff --git a/lisp/ol.el b/lisp/ol.el index 20aab6bb8..d537709ac 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -1377,7 +1377,29 @@ (defun org-link--open-elisp (path _) (call-interactively (read path)))) (user-error "Abort"))) -(org-link-set-parameters "elisp" :follow #'org-link--open-elisp) +(defun org-link--export-code (path description _ info &optional lang) + "Export executable link with PATH and DESCRIPTION. +INFO is the current export info plist. +LANG is the language name, as in #+begin_src lang. For example, \"elisp\" +or \"shell\"." + (concat + (org-export-data + (org-element-create + 'inline-src-block + `( :language ,lang + :value ,path + :parameters ":exports code :noweb no :eval never")) + info) + (when description (format " (%s)" description)))) + +(defun org-link--export-elisp (path description _ info) + "Export elisp: link with PATH and DESCRIPTION according to INFO channel." + (org-link--export-code path description nil info "emacs-lisp")) + +(org-link-set-parameters + "elisp" + :follow #'org-link--open-elisp + :export #'org-link--export-elisp) ;;;; "file" link type (org-link-set-parameters "file" :complete #'org-link-complete-file) @@ -1435,7 +1457,14 @@ (defun org-link--open-shell (path _) clean-buffer-list-kill-buffer-names)))) (user-error "Abort"))) -(org-link-set-parameters "shell" :follow #'org-link--open-shell) +(defun org-link--export-shell (path description _ info) + "Export shell: link with PATH and DESCRIPTION according to INFO channel." + (org-link--export-code path description nil info "shell")) + +(org-link-set-parameters + "shell" + :follow #'org-link--open-shell + :export #'org-link--export-shell) ;;; Interactive Functions --=-=-= Content-Type: text/plain -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at --=-=-=--