From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 0HqCN9j6SmJrwgAAgWs5BA (envelope-from ) for ; Mon, 04 Apr 2022 16:04:08 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id CLoENNj6SmJ58wAAauVa8A (envelope-from ) for ; Mon, 04 Apr 2022 16:04:08 +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 1191D1650 for ; Mon, 4 Apr 2022 16:04:08 +0200 (CEST) Received: from localhost ([::1]:36964 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nbNJO-0004PK-OI for larch@yhetil.org; Mon, 04 Apr 2022 10:04:06 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48038) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbNIp-0004Ot-G7 for emacs-orgmode@gnu.org; Mon, 04 Apr 2022 10:03:31 -0400 Received: from w4.tutanota.de ([81.3.6.165]:45008) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbNIk-00010G-Ns for emacs-orgmode@gnu.org; Mon, 04 Apr 2022 10:03:31 -0400 Received: from w3.tutanota.de (unknown [192.168.1.164]) by w4.tutanota.de (Postfix) with ESMTP id C83E2106037E; Mon, 4 Apr 2022 14:03:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1649081002; s=s1; d=vergauwen.me; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=SlTEYEI+8fXpgFgaSCX7plbkjcxX0C39x7xlXV6X4oQ=; b=qC+ypmaXGPSogMUh8x+c649gygfHy+cwTnEBVzFBjyF/2kU7MXXfvsg2OsN15fJN I/yxFnQY3mlTkBfk7LeXqIJLzJvfHx+sfdHN0wb9MEljEED2mEB7iCFqI1W19yIHhNL vs2Cv/Zp6AeoEo1ZR2f2g2fFjmGe2L7XfDrICzU+amnSnSz6kDnBxoNIfKH3oIjzEuH 2Sx65xcHwDoY8tCrPebsCSk7IbI68QeVoFQwOYEG7/DtyL4wejkum7OO99jW+BJeA74 d6hdGy/xjdiasEYsHZeKSH9Z7mPz4o4pV7R2O9aJgenkXs6UplMb2rKM3WSnLYpuNSA hUZnL/RTIQ== Date: Mon, 4 Apr 2022 16:03:22 +0200 (CEST) To: Ihor Radchenko Cc: Emacs Orgmode Message-ID: In-Reply-To: <87wng5nno3.fsf@localhost-Mzo7eKN----2> References: <87wng5nno3.fsf@localhost-Mzo7eKN----2> Subject: Re: ox-latex table tabbing support. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_846643_1816281091.1649081002565" Received-SPF: pass client-ip=81.3.6.165; envelope-from=emacs@vergauwen.me; helo=w4.tutanota.de 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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: 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" Reply-to: emacs@vergauwen.me From: emacs--- via "General discussions about Org-mode." 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=1649081048; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=SlTEYEI+8fXpgFgaSCX7plbkjcxX0C39x7xlXV6X4oQ=; b=XSm9PBqOVrjDs8kC/2H8Answs89lj44+WJ09l6dxia0yykxiu9TefoY0Qe/7ETqC7nx9u3 aaFUDxnE54HIFnZv/t6LDTZ0qdgI0431SOu3mFbu5MYuTSBD/g1Z+GL/x8a8bp5UVehEUG HWGuCNVBONtExMqroyh7i8Bo2RRDz3lnR6Ypt+16GWDtCnBrcERpIPbShrqACFy+Ms0N4T zpvwcx4aowstrI/k0VgO1YFOa6RHJ2bUDFtrJ1OCZMnSRgeVY/y7VpZkA8a26EU7UeRmC5 liCYyVQtNL7RguWJ4tHMN5LAdJAoqhyLdzO8AN2LTk0H+an/yvcCVmRHRa4asw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1649081048; a=rsa-sha256; cv=none; b=POVKVdGG2nj3Bxcs31kUHOdrXRDBGb8WYSTp5u/KMzsmo2A/e1G50Y3yEgGZu4ki9w0N6F y7IUz/+BoxO3UAu/mtxQNWfxTxm0tbC9U5TealDPkYETFF704fgDWeXttZdDmeXRHU7tCD fpyzdSUlM8vPvQLfW8VP6IFC0uugvVEJVEKIiN8Ah4hByIfK9VaFN9a6bF1+ahPy69J4yl t3pXXPDb/hejY/jYIQczHpr8u5a5phtsjdLfhjjWLNpRggNygLJTRxMEUSNURzNW9wgpus KId1SERcCRkuMtJMz4GX1FuWBoy8vhC9mckEWk+3S/XetEe1XMS9xQ9+8ThOPQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=vergauwen.me header.s=s1 header.b=qC+ypmaX; dmarc=pass (policy=none) header.from=gnu.org; 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" X-Migadu-Spam-Score: -3.38 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=vergauwen.me header.s=s1 header.b=qC+ypmaX; dmarc=pass (policy=none) header.from=gnu.org; 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" X-Migadu-Queue-Id: 1191D1650 X-Spam-Score: -3.38 X-Migadu-Scanner: scn1.migadu.com X-TUID: S9nB9gwA5+jo ------=_Part_846643_1816281091.1649081002565 Content-Type: multipart/alternative; boundary="----=_Part_846644_1579563830.1649081002565" ------=_Part_846644_1579563830.1649081002565 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Ihor, Thanks for the response.=C2=A0I updated my patched and mailed the requested= copyright form to assign@gnu.org Kind regards, Bob=C2=A0 --=20 Sent with Tutanota, the secure & ad-free mailbox.=20 Apr 4, 2022, 12:33 by yantar92@gmail.com: > emacs--- via "General discussions about Org-mode." > writes: > >> I have implemented tabbing (http://www.ctex.org/documents/latex/latex2e-= html/ltx-58.html) support for ox-latex. By setting=C2=A0#+ATTR_LATEX: :mode= tabbingthe exporter will use the tabbing environment.=C2=A0 >> >> The benefits of using tabbing over tabular: >> - Can span multiple pages (also possible with long tables). >> - Cell width is fixed and does not depend on the content. >> - Cells can overflow.=C2=A0 >> > > Looks useful. Marking your message as a patch to be tracked at > updated.orgmode.org > > Some comments are below. > >> TINYCHANGE >> > > Note that your patch >15 LOC and cannot be applied without copyright > assignment. See https://orgmode.org/worg/org-contribute.html#copyright > >> -;; `org-latex--org-table' or `org-latex--math-table' functions, >> +;; `org-latex--org-table' or `org-latex--math-table' or `org-latex--org= -tabbing' functions, >> > > We generally try to keep all the text in source files narrower than 70 > characters (default value of fill-column). You can use fill-region to > make Emacs autofill the comment lines. > >> +(defun org-latex--align-string-tabbing (table info &optional math?) >> > > It looks like math? argument is unused. Is it intentional? > >> + "Return an appropriate LaTeX alignment string, for the >> +latex tabbing environment. >> +TABLE is the considered table. INFO is a plist used as >> +a communication channel. When optional argument MATH? is >> +non-nil, TABLE is meant to be a matrix, where all cells are >> +centered." >> + (or (org-export-read-attribute :attr_latex table :align) >> + (let ((align "") >> + (count 0) >> + (separator "")) >> + (progn >> > > You do not need an extra progn inside let. > >> +(defun org-table--org-tabbing (table contenst info) >> > > ^contents > >> + "Return appropriate LaTeX code for an Org table, using the >> +latex tabbing syntax. >> +TABLE is the table type element to transcode. CONTENTS is its >> +contents, as a string. INFO is a plist used as a communication >> +channel. >> +This function assumes TABLE has `org' as its `:type' property and >> +`tabbing' as its `:mode' attribute." >> + (let ((output (format "\\begin{%s}\n%s\n%s\\end{%s}" >> + "tabbing" >> + (org-latex--align-string-tabbing table info ) >> + contenst >> > > ^contents > > > Best, > Ihor > ------=_Part_846644_1579563830.1649081002565 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Ihor,
Thanks for the response. 
I updated my patched and mailed the requested copyright= form to assign@gnu.org

Kind regards,
Bob 


--=
Sent with Tutanota, the secure & ad-free mailbox.
=



Apr 4, 2022, 12:33 = by yantar92@gmail.com:
=
emacs--- via "General discussions about Org-mode."
<e= macs-orgmode@gnu.org> writes:
I have implement= ed tabbing (http://www.ctex.org/documents/latex/latex2e-html/ltx-58.html) s= upport for ox-latex. By setting #+ATTR_LATEX: :mode tabbingthe exporte= r will use the tabbing environment. 

The = benefits of using tabbing over tabular:
- Can span multiple p= ages (also possible with long tables).
- Cell width is fixed = and does not depend on the content.
- Cells can overflow.&nbs= p;

Looks useful. Marking your mes= sage as a patch to be tracked at
updated.orgmode.org

Some comments are below.
TINYCHAN= GE

Note that your patch >15 LOC and = cannot be applied without copyright
assignment. See https://o= rgmode.org/worg/org-contribute.html#copyright
-;;= `org-latex--org-table' or `org-latex--math-table' functions,
+;; `org-latex--org-table' or `org-latex--math-table' or `org-latex--org-t= abbing' functions,

We generally t= ry to keep all the text in source files narrower than 70
char= acters (default value of fill-column). You can use fill-region to
=
make Emacs autofill the comment lines.
+(defun or= g-latex--align-string-tabbing (table info &optional math?)

It looks like math? argument is unused. Is it inten= tional?
+ "Return an appropriate LaTeX alignment= string, for the
+latex tabbing environment.
+T= ABLE is the considered table. INFO is a plist used as
+a com= munication channel. When optional argument MATH? is
+non-nil= , TABLE is meant to be a matrix, where all cells are
+centere= d."
+ (or (org-export-read-attribute :attr_latex table :al= ign)
+ (let ((align "")
+ (= count 0)
+ (separator ""))
+ = (progn

You do not need an ext= ra progn inside let.
+(defun org-table--org-tabbing (t= able contenst info)

^contents
=
+ "Return appropriate LaTeX code for an Org table, us= ing the
+latex tabbing syntax.
+TABLE is the ta= ble type element to transcode. CONTENTS is its
+contents, as= a string. INFO is a plist used as a communication
+channel.=
+This function assumes TABLE has `org' as its `:type' proper= ty and
+`tabbing' as its `:mode' attribute."
+ = (let ((output (format "\\begin{%s}\n%s\n%s\\end{%s}"
+ = "tabbing"
+ (o= rg-latex--align-string-tabbing table info )
+ = contenst

^contents
<= /div>


Best,
Ihor
<= /blockquote>

------=_Part_846644_1579563830.1649081002565-- ------=_Part_846643_1816281091.1649081002565 Content-Type: application/octet-stream; name=padding-feature.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=padding-feature.patch ZGlmZiAtLWdpdCBhL2RvYy9vcmctbWFudWFsLm9yZyBiL2RvYy9vcmctbWFudWFsLm9yZwppbmRl eCA0OWQ5MDZjMjcuLmUzYmQ2MWJjOCAxMDA2NDQKLS0tIGEvZG9jL29yZy1tYW51YWwub3JnCisr KyBiL2RvYy9vcmctbWFudWFsLm9yZwpAQCAtMTM1NDYsMTAgKzEzNTQ2LDEyIEBAIGluY2x1ZGU6 CiAgICMrdmluZGV4OiBvcmctbGF0ZXgtZGVmYXVsdC10YWJsZS1tb2RlCiAgIFRoZSBMYVRlWCBl eHBvcnQgYmFjay1lbmQgd3JhcHMgdGhlIHRhYmxlIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbgog ICB0aGUgbW9kZSBmb3IgYWNjdXJhdGUgcmVuZGVyaW5nIG9mIG1hdGggc3ltYm9scy4gIE1vZGUg aXMgZWl0aGVyCi0gID10YWJsZT0sID1tYXRoPSwgPWlubGluZS1tYXRoPSBvciA9dmVyYmF0aW09 LgorICA9dGFibGU9LCA9bWF0aD0sID1pbmxpbmUtbWF0aD0sID12ZXJiYXRpbT0gb3IgPXRhYmJp bmc9LgogCiAgIEZvciA9bWF0aD0gb3IgPWlubGluZS1tYXRoPSBtb2RlLCBMYVRlWCBleHBvcnQg YmFjay1lbmQgd3JhcHMgdGhlCiAgIHRhYmxlIGluIGEgbWF0aCBlbnZpcm9ubWVudCwgYnV0IGV2 ZXJ5IGNlbGwgaW4gaXQgaXMgZXhwb3J0ZWQgYXMtaXMuCisgIEZvciA9dGFiYmluZz0gdGhlIExh VGVYIHRhYmJpbmcgZW52aXJvbm1lbnQgaXMgdXNlZCBhbmQgdGhlIGNvcnJlY3QKKyAgdGFiYmlu ZyBkZWxpbWl0ZXJzID1cPj0gYXJlIHVzZWQuCiAgIFRoZSBMYVRlWCBleHBvcnQgYmFjay1lbmQg ZGV0ZXJtaW5lcyB0aGUgZGVmYXVsdCBtb2RlIGZyb20KICAgfm9yZy1sYXRleC1kZWZhdWx0LXRh YmxlLW1vZGV+LiAgVGhlIExhVGVYIGV4cG9ydCBiYWNrLWVuZCBtZXJnZXMKICAgY29udGlndW91 cyB0YWJsZXMgaW4gdGhlIHNhbWUgbW9kZSBpbnRvIGEgc2luZ2xlIGVudmlyb25tZW50LgpkaWZm IC0tZ2l0IGEvZXRjL09SRy1ORVdTIGIvZXRjL09SRy1ORVdTCmluZGV4IGZkMjlkMzlkNy4uOWJj YzlmYWJmIDEwMDY0NAotLS0gYS9ldGMvT1JHLU5FV1MKKysrIGIvZXRjL09SRy1ORVdTCkBAIC03 Nyw2ICs3NywxOSBAQCBJdGVtcyBpbiBhIGRlc2NyaXB0aW9uIGxpc3QgdGhhdCBiZWdpbiB3aXRo ID1GdW5jdGlvbjo9LCA9VmFyaWFibGU6PQogb3IgY2VydGFpbiByZWxhdGVkIHByZWZpeGVzIGFy ZSBjb252ZXJ0ZWQgdXNpbmcgVGV4aW5mbyBkZWZpbml0aW9uCiBjb21tYW5kcy4KIAorKioqIE5l dyBveC1sYXRleCB0YWJiaW5nIHN1cHBvcnQgZm9yIHRhYmxlcy4KKworTGF0ZXggdGFibGVzIGNh biBub3cgYmUgZXhwb3J0ZWQgdG8gdGhlIGxhdGV4IHRhYmJpbmcgZW52aXJvbm1lbnQKK1tbaHR0 cHM6Ly9sYXRleHJlZi54eXovdGFiYmluZy5odG1sXVt0YWJiaW5nIGVudmlyb25tZW50XV0uCitU aGlzIGlzIGRvbmUgYnkgYWRkaW5nID0jK0FUVFJfTEFURVg6IDptb2RlIHRhYmJpbmc9IGF0IHRo ZSB0b3AKK29mIHRoZSB0YWJsZS4KK1RoZSBkZWZhdWx0IGNvbHVtbiB3aWR0aCBpcyBzZXQgdG8g MS9uIHRpbWVzIHRoZSBsYXRleCB0ZXh0d2lkdGgsCit3aGVyZSBuIGlzIHRoZSBudW1iZXIgb2Yg Y29sdW1ucy4KK1RoaXMgYmVoYXZpb3VyIGNhbiBiZSBjaGFuZ2VkIGJ5IHN1cHBseWluZyBhID06 YWxpZ249IHBhcmFtZXRlci4KKworVGhlIHRhYmJpbmcgZW52aXJvbm1lbnQgY2FuIGJlIHVzZWZ1 bCB3aGVuIGdlbmVyYXRpbmcgc2ltcGxlIHRhYmxlcyB3aGljaAorY2FuIGJlIHNwYW4gbXVsdGlw bGUgcGFnZXMgYW5kIHdoZW4gdGFibGUgY2VsbHMgYXJlIGFsbG93ZWQgdG8gb3ZlcmZsb3cuCisK ICoqIE5ldyBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgaW4gZnVuY3Rpb24gYXJndW1lbnRzCiAKICoq KiBOZXcgZnVuY3Rpb24gfm9yZy1lbGVtZW50LWNhY2hlLW1hcH4gZm9yIHF1aWNrIG1hcHBpbmcg YWNyb3NzIE9yZyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvbGlzcC9veC1sYXRleC5lbCBiL2xpc3Av b3gtbGF0ZXguZWwKaW5kZXggMGVkYmE5ZTUyLi41MGRjNGJiMWUgMTAwNjQ0Ci0tLSBhL2xpc3Av b3gtbGF0ZXguZWwKKysrIGIvbGlzcC9veC1sYXRleC5lbApAQCAtMzE5NCw3ICszMTk0LDggQEAg Q09OVEVOVFMgaXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBvYmplY3QuIgogOzsgYG9yZy1sYXRleC10 YWJsZScgaXMgdGhlIGVudHJ5IHBvaW50IGZvciB0YWJsZSB0cmFuc2NvZGluZy4gIEl0CiA7OyB0 YWtlcyBjYXJlIG9mIHRhYmxlcyB3aXRoIGEgInZlcmJhdGltIiBtb2RlLiAgT3RoZXJ3aXNlLCBp dAogOzsgZGVsZWdhdGVzIHRoZSBqb2IgdG8gZWl0aGVyIGBvcmctbGF0ZXgtLXRhYmxlLmVsLXRh YmxlJywKLTs7IGBvcmctbGF0ZXgtLW9yZy10YWJsZScgb3IgYG9yZy1sYXRleC0tbWF0aC10YWJs ZScgZnVuY3Rpb25zLAorOzsgYG9yZy1sYXRleC0tb3JnLXRhYmxlJyBvciBgb3JnLWxhdGV4LS1t YXRoLXRhYmxlJyBvcgorOzsgYG9yZy1sYXRleC0tb3JnLXRhYmJpbmcnIGZ1bmN0aW9ucywKIDs7 IGRlcGVuZGluZyBvZiB0aGUgdHlwZSBvZiB0aGUgdGFibGUgYW5kIHRoZSBtb2RlIHJlcXVlc3Rl ZC4KIDs7CiA7OyBgb3JnLWxhdGV4LS1hbGlnbi1zdHJpbmcnIGlzIGEgc3Vicm91dGluZSB1c2Vk IHRvIGJ1aWxkIGFsaWdubWVudApAQCAtMzIxOCw4ICszMjE5LDEwIEBAIGNvbnRleHR1YWwgaW5m b3JtYXRpb24uIgogCQkJICAgYCh0YWJsZSBuaWwgLEAob3JnLWVsZW1lbnQtY29udGVudHMgdGFi bGUpKSkpKSkKICAgICAgICA7OyBDYXNlIDI6IE1hdHJpeC4KICAgICAgICAoKG9yIChzdHJpbmc9 IHR5cGUgIm1hdGgiKSAoc3RyaW5nPSB0eXBlICJpbmxpbmUtbWF0aCIpKQotCShvcmctbGF0ZXgt LW1hdGgtdGFibGUgdGFibGUgaW5mbykpCi0gICAgICAgOzsgQ2FzZSAzOiBTdGFuZGFyZCB0YWJs ZS4KKyAgICAgICAgKG9yZy1sYXRleC0tbWF0aC10YWJsZSB0YWJsZSBpbmZvKSkKKyAgICAgICA7 OyBDYXNlIDM6IFRhYmJpbmcKKyAgICAgICAoKHN0cmluZz0gdHlwZSAidGFiYmluZyIpIChvcmct dGFibGUtLW9yZy10YWJiaW5nIHRhYmxlIGNvbnRlbnRzIGluZm8pKQorICAgICAgIDs7IENhc2Ug NDogU3RhbmRhcmQgdGFibGUuCiAgICAgICAgKHQgKGNvbmNhdCAob3JnLWxhdGV4LS1vcmctdGFi bGUgdGFibGUgY29udGVudHMgaW5mbykKIAkJICA7OyBXaGVuIHRoZXJlIGFyZSBmb290bm90ZSBy ZWZlcmVuY2VzIHdpdGhpbiB0aGUKIAkJICA7OyB0YWJsZSwgaW5zZXJ0IHRoZWlyIGRlZmluaXRp b24ganVzdCBhZnRlciBpdC4KQEAgLTMyNTYsNiArMzI1OSwzNCBAQCBjZW50ZXJlZC4iCiAJICBp bmZvKQogCShhcHBseSAnY29uY2F0IChucmV2ZXJzZSBhbGlnbikpKSkpCiAKKyhkZWZ1biBvcmct bGF0ZXgtLWFsaWduLXN0cmluZy10YWJiaW5nICh0YWJsZSBpbmZvKQorICAgICJSZXR1cm4gYW4g YXBwcm9wcmlhdGUgTGFUZVggYWxpZ25tZW50IHN0cmluZywgZm9yIHRoZQorbGF0ZXggdGFiYmlu ZyBlbnZpcm9ubWVudC4KK1RBQkxFIGlzIHRoZSBjb25zaWRlcmVkIHRhYmxlLiAgSU5GTyBpcyBh IHBsaXN0IHVzZWQgYXMKK2EgY29tbXVuaWNhdGlvbiBjaGFubmVsLiIKKyAgICAob3IgKG9yZy1l eHBvcnQtcmVhZC1hdHRyaWJ1dGUgOmF0dHJfbGF0ZXggdGFibGUgOmFsaWduKQorICAgICAgICAo bGV0ICgoYWxpZ24gIiIpCisgICAgICAgICAgICAgIChjb3VudCAwKQorICAgICAgICAgICAgICAo c2VwYXJhdG9yICIiKSkKKyAgICAgICAgICAgIDs7IENvdW50IHRoZSBudW1iZXIgb2YgY2VsbHMg aW4gdGhlIGZpcnN0IHJvdy4KKyAgICAgICAgICAgIChzZXRxIGNvdW50IChsZW5ndGgKKyAgICAg ICAgICAgICAgICAgIChvcmctZWxlbWVudC1tYXAKKyAgICAgICAgICAgICAgICAgICAgICAob3Jn LWVsZW1lbnQtbWFwIHRhYmxlICd0YWJsZS1yb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIChs YW1iZGEgKHJvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZXEgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDp0eXBlIHJvdykgJ3N0YW5kYXJkKSByb3cpKQorICAgICAgICAgICAgICAg ICAgICAgICAgaW5mbyAnZmlyc3QtbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgJ3RhYmxl LWNlbGwKKyAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoY2VsbCkgY2VsbCkpKSkKKyAgICAg ICAgICAgIDs7IENhbGN1bGF0ZSB0aGUgY29sdW1uIHdpZHRoLCB1c2luZyBhIHByb3BvcnRpb24g b2YgdGhlIGRvY3VtZXRzCisgICAgICAgICAgICA7OyB0ZXh0d2lkdGguCisgICAgICAgICAgICAo c2V0cSBzZXBhcmF0b3IgKGZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxo c3BhY2V7JXNcXHRleHR3aWR0aH0gXFw9ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KC0gKC8gIDEuMCBjb3VudCkgMC4wMSkpKQorICAgICAgICAgICAgKHNldHEgYWxpZ24gKGNvbmNh dAorICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAnY29uY2F0IChtYWtlLWxpc3QgY291 bnQgc2VwYXJhdG9yKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXFxraWxsIikpKQorICAg ICAgICAgICAgKSkKKwogKGRlZnVuIG9yZy1sYXRleC0tZGVjb3JhdGUtdGFibGUgKHRhYmxlIGF0 dHJpYnV0ZXMgY2FwdGlvbiBhYm92ZT8gaW5mbykKICAgIkRlY29yYXRlIFRBQkxFIHN0cmluZyB3 aXRoIGNhcHRpb24gYW5kIGZsb2F0IGVudmlyb25tZW50LgogCkBAIC0zMzU4LDYgKzMzODksMjMg QEAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIFRBQkxFIGhhcyBgb3JnJyBhcyBpdHMgYDp0eXBlJyBw cm9wZXJ0eSBhbmQKIAkJCSAgICB0YWJsZS1lbnYpKSkKIAkob3JnLWxhdGV4LS1kZWNvcmF0ZS10 YWJsZSBvdXRwdXQgYXR0ciBjYXB0aW9uIGFib3ZlPyBpbmZvKSkpKSkpCiAKKworKGRlZnVuIG9y Zy10YWJsZS0tb3JnLXRhYmJpbmcgKHRhYmxlIGNvbnRlbnN0IGluZm8pCisgICAgICAiUmV0dXJu IGFwcHJvcHJpYXRlIExhVGVYIGNvZGUgZm9yIGFuIE9yZyB0YWJsZSwgdXNpbmcgdGhlCitsYXRl eCB0YWJiaW5nIHN5bnRheC4KK1RBQkxFIGlzIHRoZSB0YWJsZSB0eXBlIGVsZW1lbnQgdG8gdHJh bnNjb2RlLiAgQ09OVEVOVFMgaXMgaXRzCitjb250ZW50cywgYXMgYSBzdHJpbmcuICBJTkZPIGlz IGEgcGxpc3QgdXNlZCBhcyBhIGNvbW11bmljYXRpb24KK2NoYW5uZWwuCitUaGlzIGZ1bmN0aW9u IGFzc3VtZXMgVEFCTEUgaGFzIGBvcmcnIGFzIGl0cyBgOnR5cGUnIHByb3BlcnR5IGFuZAorYHRh YmJpbmcnIGFzIGl0cyBgOm1vZGUnIGF0dHJpYnV0ZS4iCisgICAgKGxldCAoKG91dHB1dCAoZm9y bWF0ICJcXGJlZ2lueyVzfVxuJXNcbiVzXFxlbmR7JXN9IgorICAgICAgICAgICAgICAgICAgICAg ICAgICAidGFiYmluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1sYXRleC0tYWxp Z24tc3RyaW5nLXRhYmJpbmcgdGFibGUgaW5mbyApCisgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRlbnN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YWJiaW5nIikpKQorICAgICAg b3V0cHV0KQorICAgICkKKwogKGRlZnVuIG9yZy1sYXRleC0tdGFibGUuZWwtdGFibGUgKHRhYmxl IGluZm8pCiAgICJSZXR1cm4gYXBwcm9wcmlhdGUgTGFUZVggY29kZSBmb3IgYSB0YWJsZS5lbCB0 YWJsZS4KIApAQCAtMzQ0MSw2ICszNDg5LDkgQEAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIFRBQkxF IGhhcyBgb3JnJyBhcyBpdHMgYDp0eXBlJyBwcm9wZXJ0eSBhbmQKICAgIlRyYW5zY29kZSBhIFRB QkxFLUNFTEwgZWxlbWVudCBmcm9tIE9yZyB0byBMYVRlWC4KIENPTlRFTlRTIGlzIHRoZSBjZWxs IGNvbnRlbnRzLiAgSU5GTyBpcyBhIHBsaXN0IHVzZWQgYXMKIGEgY29tbXVuaWNhdGlvbiBjaGFu bmVsLiIKKyAgKGxldCAoCisgICAgICAgICh0eXBlIChvcmctZXhwb3J0LXJlYWQtYXR0cmlidXRl IDphdHRyX2xhdGV4IChvcmctZXhwb3J0LWdldC1wYXJlbnQtdGFibGUgdGFibGUtY2VsbCkgOm1v ZGUpKQorICAgICAgICApCiAgIChjb25jYXQKICAgIChsZXQgKChzY2llbnRpZmljLWZvcm1hdCAo cGxpc3QtZ2V0IGluZm8gOmxhdGV4LXRhYmxlLXNjaWVudGlmaWMtbm90YXRpb24pKSkKICAgICAg KGlmIChhbmQgY29udGVudHMKQEAgLTM0NTIsNyArMzUwMywxMCBAQCBhIGNvbW11bmljYXRpb24g Y2hhbm5lbC4iCiAJCSAobWF0Y2gtc3RyaW5nIDEgY29udGVudHMpCiAJCSAobWF0Y2gtc3RyaW5n IDIgY29udGVudHMpKQogICAgICAgIGNvbnRlbnRzKSkKLSAgICh3aGVuIChvcmctZXhwb3J0LWdl dC1uZXh0LWVsZW1lbnQgdGFibGUtY2VsbCBpbmZvKSAiICYgIikpKQorICAgKHdoZW4gKG9yZy1l eHBvcnQtZ2V0LW5leHQtZWxlbWVudCB0YWJsZS1jZWxsIGluZm8pCisgICAgICAgICAoaWYgKHN0 cmluZz0gdHlwZSAidGFiYmluZyIpCisgICAgICAgICAgICAgIiBcXD4gIiAiICYgIikKKyAgICAg ICAgICkpKSkKIAogCiA7Ozs7IFRhYmxlIFJvdwo= ------=_Part_846643_1816281091.1649081002565--