From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id CJoJO+ETGmQTewAASxT56A (envelope-from ) for ; Tue, 21 Mar 2023 21:30:26 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 0D0MO+ETGmRT0AAA9RJhRA (envelope-from ) for ; Tue, 21 Mar 2023 21:30:25 +0100 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 63F7318D74 for ; Tue, 21 Mar 2023 21:30:25 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1peibq-0001y4-WC; Tue, 21 Mar 2023 16:29:31 -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 1peibp-0001xd-C7 for emacs-orgmode@gnu.org; Tue, 21 Mar 2023 16:29:29 -0400 Received: from sender4-op-o15.zoho.com ([136.143.188.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1peibn-0000CJ-H5 for emacs-orgmode@gnu.org; Tue, 21 Mar 2023 16:29:29 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1679430562; cv=none; d=zohomail.com; s=zohoarc; b=MPsiZrb+SddSStwyN+Y+39OeXA2h10Lccw2ipPGdT2nAMgjHmbFKU0HPBPgWJlnypZoD0n1WP9q5zG752FAjMf9XebSe8MAdva3vDrOgwujGExNQKQo3LZNoHDAaPxWrFxIf+4MBBAG61ttJCQHx47sPlwGiJH5KK4a7Rk2aZbU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679430562; h=Content-Type:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=sCnAb9v+Lo/H5ttp+spx/v8gqnQPkCxcCLknXU5itGM=; b=P9ugyPN/28ljWWD8RwQjOVQtk2p/3PbBn7yUq/24iy3GoNy4R0J5mRRJ4ks8xGzoJ1bABtGE1b0hKTeJgOq5c0lsoQhvmFg22LVlstxmLrr9F3pR0JGwfc93x3ffHFB3RGFWLh6jSe+oclrV5r8o2qymg3huU7CpFdnBNJ2HONs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=excalamus.com; spf=pass smtp.mailfrom=matt@excalamus.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1679430562; s=zmail; d=excalamus.com; i=matt@excalamus.com; h=Date:Date:From:From:To:To:Cc:Cc:Message-Id:Message-Id:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Reply-To; bh=sCnAb9v+Lo/H5ttp+spx/v8gqnQPkCxcCLknXU5itGM=; b=SMpJyJ42RdJQtxJImKnE/aiEl2AoudQFULZQs3mq7UPyk6zH2F7vaW9fqaxlPA1a foi4D3HgNo+DGueF0V3O39HaNtu/rZH2PAHzxT060tOlLjsWWdYhX4C/s9ZeRmBc1Gh duOCzrt1bduErgOZoE3Wv2l9KCL8pYLZwj9zxKO8= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1679430560215434.7143435925409; Tue, 21 Mar 2023 13:29:20 -0700 (PDT) Date: Tue, 21 Mar 2023 16:29:20 -0400 From: Matt To: "Ihor Radchenko" Cc: "emacs-orgmode" Message-Id: <18705dca9b8.f4f7e70c165671.6021704484862511260@excalamus.com> In-Reply-To: <873562z66c.fsf@localhost> References: <186283d230a.129f5feb61660123.3289004102603503414@excalamus.com> <87v8kd8zzw.fsf@localhost> <1863472efe9.10fdd5ba4258906.5972264927968042941@excalamus.com> <87y1p7axpe.fsf@localhost> <1863d69188f.11e078bd1228881.451172865246440158@excalamus.com> <87fsbcbf47.fsf@localhost> <186471d8980.c36aecd0374444.2548279362371712281@excalamus.com> <87sff73r0g.fsf@localhost> <18658639a30.dec640641420614.2364646537016397698@excalamus.com> <87lekwd10z.fsf@localhost> <1866bf50874.bc4ef1a92164564.1238825567948423531@excalamus.com> <87r0ukefzv.fsf@localhost> <1866fda933d.cf33745c2396994.7118762013608820270@excalamus.com> <87sfeyc7qr.fsf@localhost> <1869ff63e3e.f8c4ed671354538.4585567073216319262@excalamus.com> <87bkl96g6e.fsf@localhost> <186a89b5a24.cc4913fe1885630.21323979015166045@excalamus.com> <87ilffz95g.fsf@localhost> <186b5aa9d56.1238923db2169250.3173443400140454866@excalamus.com> <87ttywg26t.fsf@localhost> <186c771ebdb.fadb25d63466542.8590370552765842508@excalamus.com> <873562z66c.fsf@localhost> Subject: Re: [PATCH] Async evaluation in ob-shell MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_519478_211365629.1679430560184" Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail X-Zoho-Virus-Status: 1 Received-SPF: pass client-ip=136.143.188.15; envelope-from=matt@excalamus.com; helo=sender4-op-o15.zoho.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, 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.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 ARC-Seal: i=2; s=key1; d=yhetil.org; t=1679430625; a=rsa-sha256; cv=pass; b=ZYuKsdi36dP0N3FeJGcJ2tU8rI4zIZhhg2BY/nQQl8W8ON2rd5OtzEntn5OftxO8IFQ/EA /c8rHZcihnJO+a/IlwERs3XGXTDVE9XwGiDqZAHQM1ZOkmOT46bF/OzbNoKUx/WkE+9Hh1 HSVVRqqVJL1uDGIsTK3IeX4RoNrFVnlhe7/PVp6RuONy/EnWSrvfLEOP0MCMHF/Yoi3n7l koKH63sbviBT4DmCFZu724DgTWJr5qk/hg/NaIPUBqiDYOXpFSMwTpd2pW3tlxS5IXVLCv MzwBLHcap82viNYvrVwbwBZw3+C9QcQZBbywZwzPGqELZGAqI84Ww4Mb0VYsew== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=SMpJyJ42; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1"); 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=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1679430625; 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=sCnAb9v+Lo/H5ttp+spx/v8gqnQPkCxcCLknXU5itGM=; b=GTxDBaH4uj6UvN+xatMByhV0aN3fpGGNF3HhGQ7MODMJStLXOGDcBsxoyBvKDeUscB4ad0 HaMjtmZlEVe2x1TDcxBxd+AsshBDcubG0tYWb4ZpYJj2VIPC94qcQjGf8SHieGvp+ft0it U68OC0XgAKCAo96wxGnUc1OLltPLAqY+/5f6mk4HnXrAtYnpgtwbkE3KJPf2lVqtWUGspl cEGw0RavQ59hjjo2wcy6NGeWklJr6P2HRcIA5bmGRVF41Uw/uiZN/yCsJQvvyF7crLsJ5K mF6A1/+oXPSUTtpXxbKnYDbjWcL87NNdZAonEPvqoxGfjksYBd+qnpTbl9FV/A== X-Migadu-Spam-Score: -4.74 X-Spam-Score: -4.74 X-Migadu-Queue-Id: 63F7318D74 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=SMpJyJ42; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1"); 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-Scanner: scn1.migadu.com X-TUID: N3m7CmdZ0aBn ------=_Part_519478_211365629.1679430560184 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit > Matt matt@excalamus.com> writes: > > I see only two options to fix it: remove a space from the concat expression (which I did in my latest patch) or remove a space from `org-babel-sh-prompt'. Unfortunately, I was mistaken and the second option (removing the space from `org-babel-sh-prompt') doesn't fix the issue. The TLDR is that the code in `org-babel-comint-async-filter' which grabs the region between the indicators (incorrectly) fails to include the prompt's trailing space. #+begin_longwinded_explanation I'll first explain why removing the space from `org-babel-sh-prompt' doesn't fix the issue because it well also highlight the underlying problem. If we remove the space from the `org-babel-sh-prompt', then `comint-prompt-regexp' becomes "^org_babel_sh_prompt> *" (with one space). This would work if the string passed to the `ob-shell-async-chunk-callback' stayed the same. It doesn't (this is where my reasoning and testing failed). Changing the `org-babel-sh-prompt' to "org_babel_sh_prompt>" (without a space) causes the following string to be passed to the callback: "org_babel_sh_prompt>1 org_babel_sh_prompt>2 org_babel_sh_prompt" Note that the final prompt doesn't have a ">" and therefore the `comint-prompt-regexp' (which becomes "^org_babel_sh_prompt> * (with one space)) used in the callback fails to match it. When we remove the space from the `org-babel-sh-prompt', the session buffer looks like this: "sh-5.1$ PROMPT_COMMAND=;PS1="org_babel_sh_prompt>";PS2= org_babel_sh_prompt>echo 'ob_comint_async_shell_start_39610981-1020-4baf-9dfb-f96d10af1cf8' echo 1 echo 2 echo 'ob_comint_async_shell_end_39610981-1020-4baf-9dfb-f96d10af1cf8' ob_comint_async_shell_start_39610981-1020-4baf-9dfb-f96d10af1cf8 org_babel_sh_prompt>1 org_babel_sh_prompt>2 org_babel_sh_prompt>ob_comint_async_shell_end_39610981-1020-4baf-9dfb-f96d10af1cf8 org_babel_sh_prompt>" The `org-babel-comint-async-filter' is what calls the `ob-shell-async-chunk-callback' (ob-comint.el:284). It monitors for the end indicator. When that appears, it passes the region between the beginning of the end indicator **less 1** and the character after the end of the start indicator to the callback. For a clean run of `test-ob-shell/session-async-evaluation', the beginning of the end indicator is at 361 and the character after the end of the start indicator is at 298. This is the string I gave above which is missing the ">". In order to make the second option work, we'd need to change the "less 1" part of `org-babel-comint-async-filter' from (- (match-beginning 0) 1) to (match-beginning 0). It turns out that's actually all we need to do. When `org-babel-sh-prompt' is "org_babel_sh_prompt> " (with one space), then the session buffer looks like: "sh-5.1$ PROMPT_COMMAND=;PS1="org_babel_sh_prompt> ";PS2= org_babel_sh_prompt> echo 'ob_comint_async_shell_start_3270ed43-a99b-423f-a5fa-b15fb2e4ae26' echo 1 echo 2 echo 'ob_comint_async_shell_end_3270ed43-a99b-423f-a5fa-b15fb2e4ae26' ob_comint_async_shell_start_3270ed43-a99b-423f-a5fa-b15fb2e4ae26 org_babel_sh_prompt> 1 org_babel_sh_prompt> 2 org_babel_sh_prompt> ob_comint_async_shell_end_3270ed43-a99b-423f-a5fa-b15fb2e4ae26 org_babel_sh_prompt> " The region passed to the callback is then defined as 366 to 300, or "org_babel_sh_prompt> 1 org_babel_sh_prompt> 2 org_babel_sh_prompt>" (<-- no space) This looks okay at first glance. However, **the last line is not a valid prompt**. A prompt must end in a space! When the `org-babel-sh-prompt' is set to "org_babel_sh_prompt> " (with one space), the `comint-prompt-regexp' is "^org_babel_sh_prompt> *" (with two spaces). This means that the `comint-prompt-regexp' matches on a trailing space which the **region passed to the callback doesn't have**. Therefore, the match fails. Instead, if we modify the `org-babel-comint-async-filter' like modified lisp/ob-comint.el @@ -273,7 +273,7 @@ STRING contains the output originally inserted into the comint buffer." (res-str-raw (buffer-substring ;; move point to beginning of indicator - (- (match-beginning 0) 1) + (match-beginning 0) ;; find the matching start indicator (cl-loop do (re-search-backward indicator) then the region passed to the callback will be from 367 to 300, or "org_babel_sh_prompt> 1 org_babel_sh_prompt> 2 org_babel_sh_prompt> " (<-- with one space) The `comint-prompt-regexp' will now match the last prompt in the region. With this change, the `org-babel-sh-prompt' keeps the trailing space (like it should), the `comint-prompt-regexp' becomes "^org_babel_sh_prompt> *" (with two spaces, requiring a prompt to have a trailing space like it should), the `ob-shell-async-chunk-callback' can use `comint-prompt-regexp' without modification, and the tests all pass. #+end_longwinded_explanation I've attached an updated diff. If everyone is satisfied with this, I'll do a proper commit and then handle moving the uuid code like we talked about earlier in the thread. ------=_Part_519478_211365629.1679430560184 Content-Type: application/octet-stream; name=0004-ob-shell-Add-async-evaluation.diff Content-Transfer-Encoding: base64 X-ZM_AttachId: 138987233601850040 Content-Disposition: attachment; filename=0004-ob-shell-Add-async-evaluation.diff ZGlmZiAtLWdpdCBhL2xpc3Avb2ItY29taW50LmVsIGIvbGlzcC9vYi1jb21pbnQuZWwKaW5kZXgg NTRiZjUxMjdlLi44NmMyYmY3YTcgMTAwNjQ0Ci0tLSBhL2xpc3Avb2ItY29taW50LmVsCisrKyBi L2xpc3Avb2ItY29taW50LmVsCkBAIC0yNzMsNyArMjczLDcgQEAgU1RSSU5HIGNvbnRhaW5zIHRo ZSBvdXRwdXQgb3JpZ2luYWxseSBpbnNlcnRlZCBpbnRvIHRoZSBjb21pbnQgYnVmZmVyLiIKIAkJ ICAgKHJlcy1zdHItcmF3CiAJCSAgICAoYnVmZmVyLXN1YnN0cmluZwogCQkgICAgIDs7IG1vdmUg cG9pbnQgdG8gYmVnaW5uaW5nIG9mIGluZGljYXRvcgotICAgICAgICAgICAgICAgICAgICAgKC0g KG1hdGNoLWJlZ2lubmluZyAwKSAxKQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLWJlZ2lu bmluZyAwKQogCQkgICAgIDs7IGZpbmQgdGhlIG1hdGNoaW5nIHN0YXJ0IGluZGljYXRvcgogCQkg ICAgIChjbC1sb29wCiAgICAgICAgICAgICAgICAgICAgICAgZG8gKHJlLXNlYXJjaC1iYWNrd2Fy ZCBpbmRpY2F0b3IpCmRpZmYgLS1naXQgYS9saXNwL29iLXNoZWxsLmVsIGIvbGlzcC9vYi1zaGVs bC5lbAppbmRleCA5ZTdiNDVhODkuLmVhYjhlYTkzNSAxMDA2NDQKLS0tIGEvbGlzcC9vYi1zaGVs bC5lbAorKysgYi9saXNwL29iLXNoZWxsLmVsCkBAIC0yNjksMTIgKzI2OSwyMiBAQCB2YXIgb2Yg dGhlIHNhbWUgdmFsdWUuIgogCSAgICAoc2V0LW1hcmtlciBjb21pbnQtbGFzdC1vdXRwdXQtc3Rh cnQgKHBvaW50KSkKIAkgICAgKGdldC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpKSkpKQogCiso ZGVmY29uc3Qgb2Itc2hlbGwtYXN5bmMtaW5kaWNhdG9yICJlY2hvICdvYl9jb21pbnRfYXN5bmNf c2hlbGxfJXNfJXMnIgorICAiU2Vzc2lvbiBvdXRwdXQgZGVsaW1pdGVyIHRlbXBsYXRlLgorU2Vl IGBvcmctYmFiZWwtY29taW50LWFzeW5jLWluZGljYXRvcicuIikKKworKGRlZnVuIG9iLXNoZWxs LWFzeW5jLWNodW5rLWNhbGxiYWNrIChzdHJpbmcpCisgICJGaWx0ZXIgYXBwbGllZCB0byByZXN1 bHRzIGJlZm9yZSBpbnNlcnRpb24uCitTZWUgYG9yZy1iYWJlbC1jb21pbnQtYXN5bmMtY2h1bmst Y2FsbGJhY2snLiIKKyAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyBjb21pbnQtcHJvbXB0LXJl Z2V4cCAiIiBzdHJpbmcpKQorCiAoZGVmdW4gb3JnLWJhYmVsLXNoLWV2YWx1YXRlIChzZXNzaW9u IGJvZHkgJm9wdGlvbmFsIHBhcmFtcyBzdGRpbiBjbWRsaW5lKQogICAiUGFzcyBCT0RZIHRvIHRo ZSBTaGVsbCBwcm9jZXNzIGluIEJVRkZFUi4KIElmIFJFU1VMVC1UWVBFIGVxdWFscyBgb3V0cHV0 JyB0aGVuIHJldHVybiBhIGxpc3Qgb2YgdGhlIG91dHB1dHMKIG9mIHRoZSBzdGF0ZW1lbnRzIGlu IEJPRFksIGlmIFJFU1VMVC1UWVBFIGVxdWFscyBgdmFsdWUnIHRoZW4KIHJldHVybiB0aGUgdmFs dWUgb2YgdGhlIGxhc3Qgc3RhdGVtZW50IGluIEJPRFkuIgogICAobGV0KiAoKHNoZWJhbmcgKGNk ciAoYXNzcSA6c2hlYmFuZyBwYXJhbXMpKSkKKyAgICAgICAgIChhc3luYyAob3JnLWJhYmVsLWNv bWludC11c2UtYXN5bmMgcGFyYW1zKSkKIAkgKHJlc3VsdHMtcGFyYW1zIChjZHIgKGFzc3EgOnJl c3VsdC1wYXJhbXMgcGFyYW1zKSkpCiAJICh2YWx1ZS1pcy1leGl0LXN0YXR1cwogCSAgKG9yIChh bmQKQEAgLTMwNiwxOSArMzE2LDM4IEBAIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGxhc3Qgc3Rh dGVtZW50IGluIEJPRFkuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0 IChmaWxlLWxvY2FsLW5hbWUgc2NyaXB0LWZpbGUpICAiICIgY21kbGluZSkpKSkpCiAJCShidWZm ZXItc3RyaW5nKSkpKQogCSAgIChzZXNzaW9uCQkJOyBzZXNzaW9uIGV2YWx1YXRpb24KLQkgICAg KG1hcGNvbmNhdAotCSAgICAgIydvcmctYmFiZWwtc2gtc3RyaXAtd2VpcmQtbG9uZy1wcm9tcHQK LQkgICAgIChtYXBjYXIKLQkgICAgICAjJ29yZy10cmltCi0JICAgICAgKGJ1dGxhc3QgOyBSZW1v dmUgZW9lIGluZGljYXRvcgotCSAgICAgICAob3JnLWJhYmVsLWNvbWludC13aXRoLW91dHB1dAot CQkgICAoc2Vzc2lvbiBvcmctYmFiZWwtc2gtZW9lLW91dHB1dCB0IGJvZHkpCi0gICAgICAgICAg ICAgICAgIChpbnNlcnQgKG9yZy10cmltIGJvZHkpICJcbiIKLSAgICAgICAgICAgICAgICAgICAg ICAgICBvcmctYmFiZWwtc2gtZW9lLWluZGljYXRvcikKLQkJIChjb21pbnQtc2VuZC1pbnB1dCBu aWwgdCkpCi0gICAgICAgICAgICAgICA7OyBSZW1vdmUgYG9yZy1iYWJlbC1zaC1lb2UtaW5kaWNh dG9yJyBvdXRwdXQgbGluZS4KLQkgICAgICAgMSkpCi0JICAgICAiXG4iKSkKKyAgICAgICAgICAg IChpZiBhc3luYworICAgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICAgKGxl dCAoKHV1aWQgKG9yZy1pZC11dWlkKSkpCisgICAgICAgICAgICAgICAgICAgIChvcmctYmFiZWwt Y29taW50LWFzeW5jLXJlZ2lzdGVyCisgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uCisgICAg ICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAi b2JfY29taW50X2FzeW5jX3NoZWxsX1xcKC4rP1xcKV9cXCguK1xcKSIKKyAgICAgICAgICAgICAg ICAgICAgIDs7ICJvYl9jb21pbnRfYXN5bmNfc2hlbGxfXFwoLitcXClfXFwoLitcXCkiCisgICAg ICAgICAgICAgICAgICAgICAnb2Itc2hlbGwtYXN5bmMtY2h1bmstY2FsbGJhY2sKKyAgICAgICAg ICAgICAgICAgICAgIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgKG9yZy1iYWJlbC1jb21pbnQt YXN5bmMtZGVsZXRlLWRhbmdsaW5nLWFuZC1ldmFsCisgICAgICAgICAgICAgICAgICAgICAgICBz ZXNzaW9uCisgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAoZm9ybWF0IG9iLXNoZWxsLWFz eW5jLWluZGljYXRvciAic3RhcnQiIHV1aWQpKQorICAgICAgICAgICAgICAgICAgICAgIChjb21p bnQtc2VuZC1pbnB1dCBuaWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChvcmct dHJpbSBib2R5KSkKKyAgICAgICAgICAgICAgICAgICAgICAoY29taW50LXNlbmQtaW5wdXQgbmls IHQpCisgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAoZm9ybWF0IG9iLXNoZWxsLWFzeW5j LWluZGljYXRvciAiZW5kIiB1dWlkKSkKKyAgICAgICAgICAgICAgICAgICAgICAoY29taW50LXNl bmQtaW5wdXQgbmlsIHQpKQorICAgICAgICAgICAgICAgICAgICB1dWlkKSkKKwkgICAgICAobWFw Y29uY2F0CisJICAgICAgICMnb3JnLWJhYmVsLXNoLXN0cmlwLXdlaXJkLWxvbmctcHJvbXB0CisJ ICAgICAgIChtYXBjYXIKKwkgICAgICAgICMnb3JnLXRyaW0KKwkgICAgICAgIChidXRsYXN0IDsg UmVtb3ZlIGVvZSBpbmRpY2F0b3IKKwkgICAgICAgICAob3JnLWJhYmVsLWNvbWludC13aXRoLW91 dHB1dAorCQkgICAgIChzZXNzaW9uIG9yZy1iYWJlbC1zaC1lb2Utb3V0cHV0IHQgYm9keSkKKyAg ICAgICAgICAgICAgICAgICAoaW5zZXJ0IChvcmctdHJpbSBib2R5KSAiXG4iCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcmctYmFiZWwtc2gtZW9lLWluZGljYXRvcikKKwkJICAgKGNvbWlu dC1zZW5kLWlucHV0IG5pbCB0KSkKKyAgICAgICAgICAgICAgICAgOzsgUmVtb3ZlIGBvcmctYmFi ZWwtc2gtZW9lLWluZGljYXRvcicgb3V0cHV0IGxpbmUuCisJICAgICAgICAgMSkpCisJICAgICAg ICJcbiIpKSkKIAkgICA7OyBFeHRlcm5hbCBzaGVsbCBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBh IHByZWRlZmluZWQKIAkgICA7OyBzaGViYW5nLgogCSAgICgob3JnLXN0cmluZy1udy1wIHNoZWJh bmcpCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1vYi1zaGVsbC5lbCBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW9iLXNoZWxsLmVsCmluZGV4IDgzNjZmOWRiZS4uYzU2YTc2YWNmIDEwMDY0NAot LS0gYS90ZXN0aW5nL2xpc3AvdGVzdC1vYi1zaGVsbC5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVz dC1vYi1zaGVsbC5lbApAQCAtMzMsNiArMzMsOSBAQAogCiAob3JnLXRlc3QtZm9yLWV4ZWN1dGFi bGUgInNoIikKIAorKGRlZmNvbnN0IHRlc3Qtb2Itc2hlbGwvdXVpZC1yZWdleAorICAiWzAtOWEt ZkEtRl1cXHs4XFx9XFxiLVswLTlhLWZBLUZdXFx7NFxcfVxcYi1bMC05YS1mQS1GXVxcezRcXH1c XGItWzAtOWEtZkEtRl1cXHs0XFx9XFxiLVswLTlhLWZBLUZdXFx7MTJcXH0iKQorCiAMCiA7Ozsg Q29kZToKIChlcnQtZGVmdGVzdCB0ZXN0LW9iLXNoZWxsL2RvbnQtaW5zZXJ0LXNwYWNlcy1vbi1l eHBhbmRlZC1ib2RpZXMgKCkKQEAgLTc1LDYgKzc4LDU5IEBAIHRoZSBib2R5IG9mIHRoZSB0YW5n bGVkIGJsb2NrIGRvZXMuIgogICAgIChpZiAoc2hvdWxkIChlcXVhbCAnKCgxKSAoMikpIHJlc3Vs dCkpCiAgICAgICAgIChraWxsLWJ1ZmZlciBzZXNzaW9uLW5hbWUpKSkpCiAKKyhlcnQtZGVmdGVz dCB0ZXN0LW9iLXNoZWxsL3Nlc3Npb24tYXN5bmMtdmFsaWQtaGVhZGVyLWFyZy12YWx1ZXMgKCkK KyAgIlRlc3QgdGhhdCBzZXNzaW9uIHJ1bnMgYXN5bmNocm9ub3VzbHkgZm9yIGNlcnRhaW4gOmFz eW5jIHZhbHVlcy4iCisgIChsZXQgKChzZXNzaW9uLW5hbWUgInRlc3Qtb2Itc2hlbGwvc2Vzc2lv bi1hc3luYy12YWxpZC1oZWFkZXItYXJnLXZhbHVlcyIpCisgICAgICAgIChraWxsLWJ1ZmZlci1x dWVyeS1mdW5jdGlvbnMgbmlsKSkKKyAgICAoZG9saXN0IChhcmctdmFsICcoInQiICIiKSkKKyAg ICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CisgICAgICAgICAoY29uY2F0ICIjK2JlZ2luX3Ny YyBzaCA6c2Vzc2lvbiAiIHNlc3Npb24tbmFtZSAiIDphc3luYyAiIGFyZy12YWwgIgorZWNobyAx PHBvaW50PgorIytlbmRfc3JjIikKKyAgICAgICAoaWYgKHNob3VsZAorICAgICAgICAgICAgKHN0 cmluZy1tYXRjaAorICAgICAgICAgICAgIHRlc3Qtb2Itc2hlbGwvdXVpZC1yZWdleAorICAgICAg ICAgICAgIChvcmctdHJpbSAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKQorICAgICAg ICAgICAoa2lsbC1idWZmZXIgc2Vzc2lvbi1uYW1lKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0 LW9iLXNoZWxsL3Nlc3Npb24tYXN5bmMtaW5zZXJ0cy11dWlkLWJlZm9yZS1yZXN1bHRzLWFyZS1y ZXR1cm5lZCAoKQorICAiVGVzdCB0aGF0IGEgdXVpZCBwbGFjZWhvbGRlciBpcyBpbnNlcnRlZCBi ZWZvcmUgcmVzdWx0cyBhcmUgaW5zZXJ0ZWQuIgorICAobGV0ICgoc2Vzc2lvbi1uYW1lICJ0ZXN0 LW9iLXNoZWxsL3Nlc3Npb24tYXN5bmMtaW5zZXJ0cy11dWlkLWJlZm9yZS1yZXN1bHRzLWFyZS1y ZXR1cm5lZCIpCisgICAgICAgIChraWxsLWJ1ZmZlci1xdWVyeS1mdW5jdGlvbnMgbmlsKSkKKyAg ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAgKGNvbmNhdCAiIytiZWdpbl9zcmMg c2ggOnNlc3Npb24gIiBzZXNzaW9uLW5hbWUgIiA6YXN5bmMgdAorZWNobyAxPHBvaW50PgorIytl bmRfc3JjIikKKyAgICAgIChpZiAoc2hvdWxkCisgICAgICAgICAgIChzdHJpbmctbWF0Y2gKKyAg ICAgICAgICAgIHRlc3Qtb2Itc2hlbGwvdXVpZC1yZWdleAorICAgICAgICAgICAgKG9yZy10cmlt IChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2spKSkpCisgICAgICAgICAgKGtpbGwtYnVmZmVy IHNlc3Npb24tbmFtZSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iLXNoZWxsL3Nlc3Npb24t YXN5bmMtZXZhbHVhdGlvbiAoKQorICAiVGVzdCB0aGUgYXN5bmMgZXZhbHVhdGlvbiBwcm9jZXNz LiIKKyAgKGxldCogKChzZXNzaW9uLW5hbWUgInRlc3Qtb2Itc2hlbGwvc2Vzc2lvbi1hc3luYy1l dmFsdWF0aW9uIikKKyAgICAgICAgIChraWxsLWJ1ZmZlci1xdWVyeS1mdW5jdGlvbnMgbmlsKQor ICAgICAgICAgKHN0YXJ0LXRpbWUgKGN1cnJlbnQtdGltZSkpCisgICAgICAgICAod2FpdC10aW1l ICh0aW1lLWFkZCBzdGFydC10aW1lIDMpKQorICAgICAgICAgdXVpZC1wbGFjZWhvbGRlcikKKyAg ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAgKGNvbmNhdCAiIytiZWdpbl9zcmMg c2ggOnNlc3Npb24gIiBzZXNzaW9uLW5hbWUgIiA6YXN5bmMgdAorZWNobyAxCitlY2hvIDI8cG9p bnQ+CisjK2VuZF9zcmMiKQorICAgICAgKHNldHEgdXVpZC1wbGFjZWhvbGRlciAob3JnLXRyaW0g KG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKQorICAgICAgKGNhdGNoICd0b28tbG9uZwor ICAgICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCB1dWlkLXBsYWNlaG9sZGVyIChidWZmZXItc3Ry aW5nKSkKKyAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgIChzbGVlcC1mb3IgMC4wMSkKKyAg ICAgICAgICAgICh3aGVuICh0aW1lLWxlc3MtcCB3YWl0LXRpbWUgKGN1cnJlbnQtdGltZSkpCisg ICAgICAgICAgICAgICh0aHJvdyAndG9vLWxvbmcgKGVydC1mYWlsICJUb29rIHRvbyBsb25nIHRv IGdldCByZXN1bHQgZnJvbSBjYWxsYmFjayIpKSkpKSkKKyAgICAoc2VhcmNoLWZvcndhcmQgIiMr cmVzdWx0cyIpCisgICAgKGJlZ2lubmluZy1vZi1saW5lIDIpCisgICAgKGlmIChzaG91bGQgKHN0 cmluZz0gIjogMVxuOiAyXG4iIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50 KSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgIChraWxsLWJ1ZmZlciBzZXNzaW9uLW5hbWUpKSkp KQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1vYi1zaGVsbC9nZW5lcmljLXVzZXMtbm8tYXJyYXlzICgp CiAgICJUZXN0IGdlbmVyaWMgc2VyaWFsaXphdGlvbiBvZiBhcnJheSBpbnRvIGEgc2luZ2xlIHN0 cmluZy4iCiAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAo= ------=_Part_519478_211365629.1679430560184--