From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id UM5MNRmtXGHk9gAAgWs5BA (envelope-from ) for ; Tue, 05 Oct 2021 21:52:57 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id UNrlMBmtXGGafgAA1q6Kng (envelope-from ) for ; Tue, 05 Oct 2021 19:52:57 +0000 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 1E4342BF26 for ; Tue, 5 Oct 2021 21:52:57 +0200 (CEST) Received: from localhost ([::1]:40384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXqUi-0007WN-2A for larch@yhetil.org; Tue, 05 Oct 2021 15:52:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXqSY-0006Zi-15 for emacs-orgmode@gnu.org; Tue, 05 Oct 2021 15:50:42 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]:35714) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mXqSV-0004Lg-R4 for emacs-orgmode@gnu.org; Tue, 05 Oct 2021 15:50:41 -0400 Received: by mail-pl1-x632.google.com with SMTP id w14so205166pll.2 for ; Tue, 05 Oct 2021 12:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=1LNpFh9p7r9gGj8F0fpNOBBi1P3ksIRVDtV+aRWd/Vc=; b=c//J6xEj3IUdEvHNwSeLLumHvhAKyojHLfeUwg8/5IjxtujhN5HpgeFCwz56HUPqtD 1OMnzdG+9rP1O1NmJfIVKovspOwkacwztfP8ocXL8NvuXTId0VUt0ZOiwpMdDiSt5BXS 8FKAVVG8cRfwdq1zCB3X/8m2YDnJhcOv84uPjGcBawEYhx4AdtecWITMek2H8IFJJHJ0 UowrHlFPGhC1JL09T1Nd5Dh1s4heivSPDbIhrnqS5SwGYt4oxtm0A8QE/ZQ63U6t+e+v JdIdNoXxdLzTd02XeReO8quDAYuL8xTQ4zPkWg0c2qmixHeO6CJeW2fwH8qTjBwtwMzT LQ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=1LNpFh9p7r9gGj8F0fpNOBBi1P3ksIRVDtV+aRWd/Vc=; b=yu7GD/og1IRvUV5vJbeKBhfBjeeZgy8l45JWmHrvlmniFQeiC7Orh7wCAZJlv+lHe5 DG5CiYKeBzsskwI3jAoC1N3EtRM6x225KTHuDkrV3v6g+G9vZ9La8oo0k9Wfuf9XtO+D GAFZ2l5Ll3aEOr4fibR7kXy+x4VTiI+BbY1DPwbLIt4vhtPv5hYzsRiLsu1IkYq+6uUb 8MfwqAwRYNU2f5G5kh9wiLvmk3bdbryRwlqBttlulWOk0XINGxs0t3sm54mEMHyWYU73 ApmJ001W3mj5w9EuDbcintpv1qw7/KySFp96FcUVUbBRqkp8h8iPiEr1Z5O0F5/0tasy FFOg== X-Gm-Message-State: AOAM533T8Onf1jEUYssE+LXn3IrfRNeI2AD4+p4AUWZaCEHGa4AVygpL /lpL3hJN2fEOO5TSiX4inPKO9y6NiKQ= X-Google-Smtp-Source: ABdhPJwUdL6+ckRGaemjEsxN+vM2gWL2HqL5xGUOmdq3V3p6HxyiEKdfcGZgLmVFRH9UgdDhyfD72Q== X-Received: by 2002:a17:902:a3c1:b0:13a:47a:1c5a with SMTP id q1-20020a170902a3c100b0013a047a1c5amr6924080plb.13.1633463437757; Tue, 05 Oct 2021 12:50:37 -0700 (PDT) Received: from [192.168.1.124] (c-71-59-145-34.hsd1.or.comcast.net. [71.59.145.34]) by smtp.gmail.com with ESMTPSA id i15sm18352697pgo.4.2021.10.05.12.50.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 05 Oct 2021 12:50:37 -0700 (PDT) Subject: Re: Best way to include METAPOST in ConTeXt exporter From: Jason Ross To: Ihor Radchenko References: <87wnmtb2sb.fsf@localhost> <87o884buwf.fsf@localhost> Message-ID: Date: Tue, 5 Oct 2021 12:50:35 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------3CC8F14990FB33CD6ADACFD3" Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=jasonross1024@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, NICE_REPLY_A=-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-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1633463577; 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=1LNpFh9p7r9gGj8F0fpNOBBi1P3ksIRVDtV+aRWd/Vc=; b=UqzP691OVL5TqOvYr8vIhDvdYLckGrgX7D63Ni155HGQmFJJz7KKF4DbkEyHyqaRyUHmnt d4n4RDuWH16uBsHjvApCE0ySCYQWkPVDXfdq6QRNEHh2WCkRMJLtaizlPAwpWJDE1pNtF/ ZwWrnJiyl8UB4hQUoCjc3jUtjc71SNuDUp8A7ILQAwCs7WJ+P00XiJDk9c91Ge1Sg4E5lM e/FO8jXuGp1Z/261rEGwtWf4PYEwp/OMTU+0awKvd30A/+Sbn0p9Acxr3Kw4xvQdoNL7sQ fXDzdi56MfSxwgVWlMxfKAE8XDICW0DbP4AXU7lyAvkU64QzI+oSJmWhxcmaNA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1633463577; a=rsa-sha256; cv=none; b=Hd0hJ7jugYULB3SVoCyAb4E1wMlA2UC2pawd+s8S5oSepvJc7/KT2SSfxvGfnJhaQa4Rfl BRRyTCf0uJmNEV875oTy+Bgg7b8b8YSrtq9mJHN6BwPFFWhN7+cIXhoJBML38oyLCus/qh 85QJgLayiyJkIhxSsGNHA3qoaXSvbQh1/+cH2FSl6bYnhWGl6ud4a9PMWXMIIeI1+iZefT aJtBQ3BmYz+zPI09dnjaCxxJ7NAbKPScg6ujHqtiROEDy/WnnGEKPnqS4l0I71o0gL+asr EYs+apMaXgtGq0VS/kKcyITslz3jlLALbBGv8b3vUeZ8uvZ4LxzOAKYvA7wQew== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="c//J6xEj"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: -1.01 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="c//J6xEj"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 1E4342BF26 X-Spam-Score: -1.01 X-Migadu-Scanner: scn0.migadu.com X-TUID: awQpwedslAv6 This is a multi-part message in MIME format. --------------3CC8F14990FB33CD6ADACFD3 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Here's a hook that modifies the source blocks to wrap their output in #+BEGIN/END_METAPOST tags if the ConTeXt backend is used, before Org Babel gets to them, but otherwise leaves them alone. I wonder if anyone has any better ideas of how to do this. I'm modifying the Org source with the hook before the document gets parsed so that it can be more backend-agnostic but it seems like it would be better if there was a way to modify the document parse tree directly instead. I don't like that I'm effectively parsing and rebuilding (hopefully) the same string in order to change the :result type. I also don't like that I don't really have a clean way of turning the hook on and off with document keywords. This is kind of a nasty thing to do to a document and users should probably have to explicitly opt in. I also found an old answer that describes how to add captions to figures generated by source blocks: https://www.mail-archive.com/emacs-orgmode@gnu.org/msg68100.html Probably not news to many other people on this list but myself :) --------------3CC8F14990FB33CD6ADACFD3 Content-Type: text/plain; charset=UTF-8; name="metapost-handler.org" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="metapost-handler.org" IytUSVRMRTogTWV0YXBvc3QgSGFuZGxlcgoKVGhpcyBpcyBhIGJhc2ljIGhhbmRsZXIgZm9y IE1FVEFQT1NUIHRoYXQgZXhwb3J0cyBhcyByYXcgY29kZQp3aGVuIHRoZSBDb25UZVh0IGV4 cG9ydGVyIGlzIHVzZWQgYnV0IG90aGVyd2lzZSBkb2VzIHdoYXRldmVyIHlvdQp0ZWxsIGl0 IHRvLgoKIytOQU1FOiBob29rcwojK0JFR0lOX1NSQyBlbWFjcy1saXNwIDpleHBvcnRzIG5v bmUgOnJlc3VsdHMgbm9uZQooZGVmdW4gZm9ybWF0LXNyYy1ibG9jay1hcmd1bWVudHMgKGFy Z3VtZW50cykKICAiUmV0dXJucyBhIGZvcm1hdHRlZCBwbGlzdCBvZiBoZWFkZXIgYXJndW1l bnRzIgogIChtYXBjb25jYXQKICAgKGxhbWJkYSAoYXJndW1lbnQpCiAgICAgKGxldCAoKGt3 IChjYXIgYXJndW1lbnQpKQogICAgICAgICAgICh2YWxzIChjZHIgYXJndW1lbnQpKSkKICAg ICAgIChjb25jYXQgKGZvcm1hdCAiJXMiIGt3KQogICAgICAgICAgICAgICAiICIKICAgICAg ICAgICAgICAgKGZvcm1hdCAiJXMiIHZhbHMpKSkpCiAgIGFyZ3VtZW50cwogICAiICIpKQoo ZGVmdW4gbWV0YXBvc3QtcHJvY2Vzcy1ob29rIChiYWNrZW5kKQogICJJZiBCQUNLRU5EIGlz IGBjb250ZXh0JywgY2hhbmdlIG1ldGFwb3N0IGNvZGUgYmxvY2tzIHRvIG91dHB1dApyYXcg Y29kZSB3cmFwcGVkIGluICMrQkVHSU5fTUVUQVBPU1QvIytFTkRfTUVUQVBPU1QgdGFncy4i CiAgOzsgVE9ETyBUaGlzIHNob3VsZCBiZSBjb250cm9sbGVkIGJ5IGEgZmxhZy4KICA7OyBU T0RPIENoZWNrIGJ1ZmZlciBpbmZvIHRvIHNlZSBpZiB3ZSBhcmUgYWxsb3dlZCB0byBkbyB0 aGlzLgogICh3aGVuIChzdHJpbmc9IGJhY2tlbmQgImNvbnRleHQiKQogICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpCiAgICAgICAg ICA7OyBTZWFyY2ggZm9yIHNvdXJjZSBjb2RlIHdpdGggYSByZWdleAogICAgICAgICAgKHJl Z2V4cCAiXlsgXHRdKiNcXCtCRUdJTl9TUkMiKSkKICAgICAgKHdoaWxlIChyZS1zZWFyY2gt Zm9yd2FyZCByZWdleHAgbmlsIHQpCiAgICAgICAgKGxldCogKChvYmplY3RwIChtYXRjaC1l bmQgMSkpCiAgICAgICAgICAgICAgICh0cmVlIChvcmctZWxlbWVudC1wYXJzZS1idWZmZXIp KQogICAgICAgICAgICAgICA7OyBHZXQgdGhlIGJ1ZmZlciBpbmZvIHBsaXN0IChuZWVkIHRo aXMgdG8gZXhwb3J0IGEgY2FwdGlvbikKICAgICAgICAgICAgICAgKGluZm8gKG9yZy1jb21i aW5lLXBsaXN0cwogICAgICAgICAgICAgICAgICAgICAob3JnLWV4cG9ydC0tZ2V0LWV4cG9y dC1hdHRyaWJ1dGVzKQogICAgICAgICAgICAgICAgICAgICAob3JnLWV4cG9ydC1nZXQtZW52 aXJvbm1lbnQpKSkKICAgICAgICAgICAgICAgKGluZm8gKHByb2duCiAgICAgICAgICAgICAg ICAgICAgICAob3JnLWV4cG9ydC0tcHJ1bmUtdHJlZSB0cmVlIGluZm8pCiAgICAgICAgICAg ICAgICAgICAgICAob3JnLWV4cG9ydC0tcmVtb3ZlLXVuaW50ZXJwcmV0ZWQtZGF0YSB0cmVl IGluZm8pCiAgICAgICAgICAgICAgICAgICAgICAob3JnLWNvbWJpbmUtcGxpc3RzIGluZm8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1leHBvcnQt LWNvbGxlY3QtdHJlZS1wcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmVlIGluZm8pKSkpCiAgICAgICAgICAgICAgIDs7IEdldCBhIGNv ZGUgZWxlbWVudAogICAgICAgICAgICAgICAoZWxlbWVudAogICAgICAgICAgICAgICAgKHNh dmUtbWF0Y2gtZGF0YQogICAgICAgICAgICAgICAgICAoaWYgb2JqZWN0cCAob3JnLWVsZW1l bnQtY29udGV4dCkgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpKQogICAgICAgICAgICAgICAo Y2FwdGlvbiAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNhcHRpb24gZWxlbWVudCkpCiAgICAg ICAgICAgICAgICh0eXBlIChvcmctZWxlbWVudC10eXBlIGVsZW1lbnQpKQogICAgICAgICAg ICAgICAoYmVnaW4gKGNvcHktbWFya2VyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4g ZWxlbWVudCkpKQogICAgICAgICAgICAgICAoZW5kIChjb3B5LW1hcmtlcgogICAgICAgICAg ICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAgICAgICAgICAgICAgICAoZ290 by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQpKQogICAgICAgICAg ICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHJcdFxuIikKICAgICAgICAg ICAgICAgICAgICAgICAocG9pbnQpKSkpCiAgICAgICAgICAgICAgIChibG9jay1pbmZvIChv cmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvIHQpKQogICAgICAgICAgICAgICAobGFuZ3Vh Z2UgKG50aCAwIGJsb2NrLWluZm8pKQogICAgICAgICAgICAgICAoYm9keSAobnRoIDEgYmxv Y2staW5mbykpCiAgICAgICAgICAgICAgIChhcmd1bWVudHMgKG50aCAyIGJsb2NrLWluZm8p KQogICAgICAgICAgICAgICAoYXJndW1lbnRzIChkZWxxIChhc3NvYyA6ZmlsZSBhcmd1bWVu dHMpIGFyZ3VtZW50cykpCiAgICAgICAgICAgICAgIChzd2l0Y2hlcyAobnRoIDMgYmxvY2st aW5mbykpCiAgICAgICAgICAgICAgIChuYW1lIChudGggNCBibG9jay1pbmZvKSkKICAgICAg ICAgICAgICAgKHN0YXJ0IChudGggNSBibG9jay1pbmZvKSkKICAgICAgICAgICAgICAgKGNv ZGVyZWYgKG50aCA2IGJsb2NrLWluZm8pKSkKCiAgICAgICAgICAod2hlbiAob3IgdCAoc3Ry aW5nPSAoZG93bmNhc2UgbGFuZ3VhZ2UpICJtZXRhcG9zdCIpKQogICAgICAgICAgICA7OyBS ZW1vdmUgImZpbGUiIGZyb20gYHJlc3VsdHMnIHNldHRpbmcKICAgICAgICAgICAgKHNldGYg KGFsaXN0LWdldCA6cmVzdWx0cyBhcmd1bWVudHMpCiAgICAgICAgICAgICAgICAgIChtYXBj b25jYXQKICAgICAgICAgICAgICAgICAgICMnaWRlbnRpdHkKICAgICAgICAgICAgICAgICAg IChzZXEtZmlsdGVyCiAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoYSkgKG5vdCAoc3Ry aW5nPSBhICJmaWxlIikpICkKICAgICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nIChh bGlzdC1nZXQgOnJlc3VsdHMgYXJndW1lbnRzKSkpCiAgICAgICAgICAgICAgICAgICAiICIp KQogICAgICAgICAgICA7OyBBZGQgYSB3cmFwIGFyZ3VtZW50IHRvIHdyYXAgaW4gYSBNRVRB UE9TVCBzcGVjaWFsIGJsb2NrCiAgICAgICAgICAgIChzZXRmIChhbGlzdC1nZXQgOndyYXAg YXJndW1lbnRzKSAiTUVUQVBPU1QiKQogICAgICAgICAgICAocGNhc2UgdHlwZQogICAgICAg ICAgICAgIChgc3JjLWJsb2NrCiAgICAgICAgICAgICAgIChwcm9nbgogICAgICAgICAgICAg ICAgIChkZWxldGUtcmVnaW9uIGJlZ2luIGVuZCkKICAgICAgICAgICAgICAgICAoZ290by1j aGFyIGJlZ2luKQogICAgICAgICAgICAgICAgIChpbnNlcnQKICAgICAgICAgICAgICAgICAg KGNvbmNhdAogICAgICAgICAgICAgICAgICAgOzsgQ2FwdGlvbnMgYW5kIG5hbWVzIGdvdCBk ZWxldGVkOyBhZGQgdGhlbSBiYWNrCiAgICAgICAgICAgICAgICAgICAod2hlbiAob3JnLXN0 cmluZy1udy1wIG5hbWUpCiAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiMrTkFNRTog JXMgXG4iIG5hbWUpKQogICAgICAgICAgICAgICAgICAgKHdoZW4gY2FwdGlvbgogICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0ICIjK0NBUFRJT046ICVzXG4iCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG9yZy1zdHJpbmctbnctcAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAob3JnLXRyaW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmct ZXhwb3J0LWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1leHBvcnQtZ2V0LWNhcHRpb24gZWxl bWVudCB0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWV4cG9ydC1n ZXQtY2FwdGlvbiBlbGVtZW50KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmZvKSkpKSkKICAgICAgICAgICAgICAgICAgIDs7IEFkZCB0aGUgKG1vZGlmaWVkKSBoZWFk ZXIgYXJndW1lbnRzIGJhY2sKICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiMrQkVHSU5f U1JDIG1ldGFwb3N0ICVzXG4lc1xuIytFTkRfU1JDIgogICAgICAgICAgICAgICAgICAgICAg ICAgICAoZm9ybWF0LXNyYy1ibG9jay1hcmd1bWVudHMgYXJndW1lbnRzKQogICAgICAgICAg ICAgICAgICAgICAgICAgICBib2R5KQogICAgICAgICAgICAgICAgICAgIlxuIikpKSkpKSkp CiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkpCgoocmVtb3ZlLWhvb2sgJ29yZy1l eHBvcnQtYmVmb3JlLXByb2Nlc3NpbmctaG9vayAnbWV0YXBvc3QtcHJvY2Vzcy1ob29rKQoo YWRkLWhvb2sgJ29yZy1leHBvcnQtYmVmb3JlLXByb2Nlc3NpbmctaG9vayAnbWV0YXBvc3Qt cHJvY2Vzcy1ob29rKQojK0VORF9TUkMKCiMrTkFNRTogbWV0YXBvc3QtZXhwb3J0CiMrQkVH SU5fU1JDIGVtYWNzLWxpc3AgOmV4cG9ydHMgbm9uZSA6cmVzdWx0cyBub25lCihkZWZ1biBv cmctYmFiZWwtZXhlY3V0ZTptZXRhcG9zdCAoYm9keSBwYXJhbXMpCiAgIkV4ZWN1dGUgYSBi bG9jayBvZiBtZXRhcG9zdCBjb2RlIHdpdGggb3JnLWJhYmVsLgpUaGlzIGZ1bmN0aW9uIGlz IGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrJy4iCiAgKGlmIChjZHIg KGFzc3EgOmZpbGUgcGFyYW1zKSkKICAgICAgKGxldCogKChvdXQtZmlsZSAoY2RyIChhc3Nx IDpmaWxlIHBhcmFtcykpKQogICAgICAgICAgICAgKGNtZGxpbmUgKG9yIChjZHIgKGFzc3Eg OmNtZGxpbmUgcGFyYW1zKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIt VCVzIiAoZmlsZS1uYW1lLWV4dGVuc2lvbiBvdXQtZmlsZSkpKSkKICAgICAgICAgICAgIChj bWQgKG9yIChjZHIgKGFzc3EgOmNtZCBwYXJhbXMpKSAibXBvc3QiKSkKICAgICAgICAgICAg IChjb2Rpbmctc3lzdGVtLWZvci1yZWFkICd1dGYtOCkgO3VzZSB1dGYtOCB3aXRoIHN1Yi1w cm9jZXNzZXMKICAgICAgICAgICAgIChjb2Rpbmctc3lzdGVtLWZvci13cml0ZSAndXRmLTgp CiAgICAgICAgICAgICAoaW4tZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAibWV0YXBvc3Qt IikpKQogICAgICAgICh3aXRoLXRlbXAtZmlsZSBpbi1maWxlCiAgICAgICAgICAoaW5zZXJ0 IChvcmctYmFiZWwtZXhwYW5kLWJvZHk6Z2VuZXJpYyBib2R5IHBhcmFtcykpKQogICAgICAg IChvcmctYmFiZWwtZXZhbAogICAgICAgICAoY29uY2F0IGNtZAogICAgICAgICAgICAgICAg ICIgLXMgJ291dHB1dGZvcm1hdD1cInN2Z1wiJyIKICAgICAgICAgICAgICAgICAoZm9ybWF0 ICIgLXMgJ291dHB1dHRlbXBsYXRlPVwiJXNcIiciIChvcmctYmFiZWwtcHJvY2Vzcy1maWxl LW5hbWUgb3V0LWZpbGUpKQogICAgICAgICAgICAgICAgICIgIiAob3JnLWJhYmVsLXByb2Nl c3MtZmlsZS1uYW1lIGluLWZpbGUpKSAiIikKICAgICAgICBuaWwpCiAgICBib2R5KSkKIytF TkRfU1JDCgoKIytOQU1FOiBzb21lLW5hbWUKIytCRUdJTl9TUkMgbWV0YXBvc3QgOnJlc3Vs dHMgZmlsZSA6ZmlsZSBmb28uc3ZnIDpleHBvcnRzIHJlc3VsdHMKYmVnaW5maWcoMSk7CmRy YXcgb3JpZ2luLS0oMTAwLDEwMCktLSgyMDAsMCktLWN5Y2xlOwplbmRmaWc7CmVuZDsKIytF TkRfU1JDCgojK0NBUFRJT046IFNvbWUgY2FwdGlvbgojK1JFU1VMVFM6IHNvbWUtbmFtZQpb W2ZpbGU6Zm9vLnN2Z11dCgoK --------------3CC8F14990FB33CD6ADACFD3--