From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Pogonyshev Newsgroups: gmane.emacs.devel Subject: Re: Arbitrary function: find the number(s) of expected arguments Date: Mon, 21 Mar 2016 19:36:45 +0100 Message-ID: References: <56E8906C.5050405@lanl.gov> <83y49e731p.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113dc9a2fcfd30052e936069 X-Trace: ger.gmane.org 1458585438 15637 80.91.229.3 (21 Mar 2016 18:37:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 21 Mar 2016 18:37:18 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Mar 21 19:37:17 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ai4hX-0001Iw-PW for ged-emacs-devel@m.gmane.org; Mon, 21 Mar 2016 19:37:16 +0100 Original-Received: from localhost ([::1]:59722 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ai4hX-0007UX-70 for ged-emacs-devel@m.gmane.org; Mon, 21 Mar 2016 14:37:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ai4h6-0006zz-5s for emacs-devel@gnu.org; Mon, 21 Mar 2016 14:36:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ai4h4-0003OH-Rb for emacs-devel@gnu.org; Mon, 21 Mar 2016 14:36:48 -0400 Original-Received: from mail-oi0-x22e.google.com ([2607:f8b0:4003:c06::22e]:34418) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ai4h4-0003O4-IK; Mon, 21 Mar 2016 14:36:46 -0400 Original-Received: by mail-oi0-x22e.google.com with SMTP id l76so59437687oig.1; Mon, 21 Mar 2016 11:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=S+Rb51syfzo7NfplEuT882dx6kVqkJe+9fcKtaYGP3Q=; b=uxQM17j/KsiDWz5k+ovDrXsftTwkHG8GG/cEp36g9rbMVuMgDRzVrZMtfqjl1zKHbe a7OWkvna4hVRP5x9EH/LxCXwfapIITkWAHJQCGc9yXDueozKJt7yut09+40PsVbrEyo6 NavXry1WsT+nOLRI+rmqT9NfyLGXshrBsQBxQZHmbzebDhPgG8ylcKFaWBeWKGlSRif9 orltCuCj+9RN2rxbQRszUFLToIKFkx4TeJNxO+gNDrahUjeIh9OZD5VjLkVGAkOB/VZ5 cn9cluUoxzeARKTfyrlMNolsZtvI26Q7cRNQfcS+kToNl6/nqG1J1XRL02/NVhYFgbXn +dCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=S+Rb51syfzo7NfplEuT882dx6kVqkJe+9fcKtaYGP3Q=; b=d5we2+bAQFhgN8fhvPlfgpBCYORDZ2Bjqfu0MQQHrfY9UtWqweDw0+PIkucT0b75oE TR3BZu+vwEQ1j8kydaYB9hgDAvXA0laQq8wmwVbhesRGMqM9L41E3Sreo2JC21pdmrlR JaKtKaN1T5bRyyzrO83UzUdFGvh+x3Ho51Vs+XXam89UL2R0C9kpICLDtUP5qZak7k3p V12djDzqsYSyOZDbnTq3iOuji6B8h7Qyt6X8BfMydwo3Jo37A/e3vYmJJ4nUJ8Cs2KFL VrsZ0CITTtZTnFNjEx0dOAZp6kL8nW4490X/MrhEX6u953p++QRw5DeXR85tcVpXQic8 nz9g== X-Gm-Message-State: AD7BkJLvO1AmZU7zU+8/kjZUCQQR8Bcbq1C12GdvYI/jXNJkzDfTn5SrwaLtr6ztnF94+BT6bmnrk+1QzTNHpg== X-Received: by 10.202.69.134 with SMTP id s128mr17470850oia.97.1458585405790; Mon, 21 Mar 2016 11:36:45 -0700 (PDT) Original-Received: by 10.202.71.7 with HTTP; Mon, 21 Mar 2016 11:36:45 -0700 (PDT) In-Reply-To: <83y49e731p.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4003:c06::22e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:202023 Archived-At: --001a113dc9a2fcfd30052e936069 Content-Type: multipart/alternative; boundary=001a113dc9a2fcfd29052e936067 --001a113dc9a2fcfd29052e936067 Content-Type: text/plain; charset=UTF-8 Eli Zaretskii wrote: > How about adding a few tests for this in test/ ? Done in the attached second patch version. > > +Lisp_Object > > +get_byte_code_arity (Lisp_Object args_template) > > +{ > > + if (INTEGERP (args_template)) > > It could also be a list (that was the old style). [...] Apparently no. I just based get_byte_code_arity() on what exec_byte_code() does. > We have sub-arity, so I think we should remove it and leave an alias > that will call this new function for backward compatibility. Having > both sounds redundant. Drew Adams wrote: > This sounds wrong to me. Just calling the new code (which I > have not looked at, but which I presume does for arbitrary > functions what `subr-arity' does for primitives) would NOT > provide backward compatibility, precisely because it would > (presumably) NOT have the same behavior as `subr-arity' for > non-primitives - it would not raise an error. The patch itself doesn't touch `subr-arity'. Whether to alias it to `func-arity' or not can be decided later. Paul --001a113dc9a2fcfd29052e936067 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
= Eli Zaretskii wrote:
> How about adding a few tests for this in test/ ?

Done in the attached second patch version.
=

=
> > +Lisp_O= bject
>= ; > +get_byte_code_arity (Lisp_Object args_template)
> > +{
> > +=C2=A0 if (IN= TEGERP (args_template))
>
> It could also be a list (that was the old style). [...]

Apparently no.=C2=A0 I just based get_byt= e_code_arity() on what
exec_byte_code() does.

> We have sub-arity, so I think we= should remove it and leave an alias
> that will call this new function for backw= ard compatibility.=C2=A0 Having
> both sounds redundant.

Drew Adams wrote:
> This sounds wrong to me.=C2=A0 Just calling = the new code (which I
> have not looked at, but which I presume does for arbitrar= y
> fu= nctions what `subr-arity' does for primitives) would NOT
> provide backward c= ompatibility, precisely because it would
> (presumably) NOT have the same behavio= r as `subr-arity' for
> non-primitives - it would not raise an error.<= span style=3D"font-size:12px">
<= span style=3D"font-size:12px">
<= span style=3D"font-size:12px">The patch itself doesn't touch `subr-arit= y'. Whether to alias
it to `func-arity' or not can be decided later.

Paul
--001a113dc9a2fcfd29052e936067-- --001a113dc9a2fcfd30052e936069 Content-Type: text/plain; charset=US-ASCII; name="func-arity.diff" Content-Disposition: attachment; filename="func-arity.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_im2c259y0 ZGlmZiAtLWdpdCBhL3NyYy9ieXRlY29kZS5jIGIvc3JjL2J5dGVjb2RlLmMKaW5kZXggOWFlMmU4 Mi4uY2EwNGMyOCAxMDA2NDQKLS0tIGEvc3JjL2J5dGVjb2RlLmMKKysrIGIvc3JjL2J5dGVjb2Rl LmMKQEAgLTE5ODcsNiArMTk4NywyMiBAQCBleGVjX2J5dGVfY29kZSAoTGlzcF9PYmplY3QgYnl0 ZXN0ciwgTGlzcF9PYmplY3QgdmVjdG9yLCBMaXNwX09iamVjdCBtYXhkZXB0aCwKICAgcmV0dXJu IHJlc3VsdDsKIH0KIAorTGlzcF9PYmplY3QKK2dldF9ieXRlX2NvZGVfYXJpdHkgKExpc3BfT2Jq ZWN0IGFyZ3NfdGVtcGxhdGUpCit7CisgIGlmIChJTlRFR0VSUCAoYXJnc190ZW1wbGF0ZSkpCisg ICAgeworICAgICAgcHRyZGlmZl90IGF0ID0gWElOVCAoYXJnc190ZW1wbGF0ZSk7CisgICAgICBi b29sIHJlc3QgPSAoYXQgJiAxMjgpICE9IDA7CisgICAgICBpbnQgbWFuZGF0b3J5ID0gYXQgJiAx Mjc7CisgICAgICBwdHJkaWZmX3Qgbm9ucmVzdCA9IGF0ID4+IDg7CisKKyAgICAgIHJldHVybiBG Y29ucyAobWFrZV9udW1iZXIgKG1hbmRhdG9yeSksIHJlc3QgPyBRbWFueSA6IG1ha2VfbnVtYmVy IChub25yZXN0KSk7CisgICAgfQorICBlbHNlCisgICAgZXJyb3IgKCJVbmtub3duIGFyZ3MgdGVt cGxhdGUhIik7Cit9CisKIHZvaWQKIHN5bXNfb2ZfYnl0ZWNvZGUgKHZvaWQpCiB7CmRpZmYgLS1n aXQgYS9zcmMvZXZhbC5jIGIvc3JjL2V2YWwuYwppbmRleCA3NGIzMGU2Li40MGVkMjRjIDEwMDY0 NAotLS0gYS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMKQEAgLTkwLDYgKzkwLDcgQEAgdW5p b24gc3BlY2JpbmRpbmcgKmJhY2t0cmFjZV90b3AgKHZvaWQpIEVYVEVSTkFMTFlfVklTSUJMRTsK IAogc3RhdGljIExpc3BfT2JqZWN0IGZ1bmNhbGxfbGFtYmRhIChMaXNwX09iamVjdCwgcHRyZGlm Zl90LCBMaXNwX09iamVjdCAqKTsKIHN0YXRpYyBMaXNwX09iamVjdCBhcHBseV9sYW1iZGEgKExp c3BfT2JqZWN0LCBMaXNwX09iamVjdCwgcHRyZGlmZl90KTsKK3N0YXRpYyBMaXNwX09iamVjdCBs YW1iZGFfYXJpdHkgKExpc3BfT2JqZWN0KTsKIAogc3RhdGljIExpc3BfT2JqZWN0CiBzcGVjcGRs X3N5bWJvbCAodW5pb24gc3BlY2JpbmRpbmcgKnBkbCkKQEAgLTI5MzQsNiArMjkzNSwxMjIgQEAg ZnVuY2FsbF9sYW1iZGEgKExpc3BfT2JqZWN0IGZ1biwgcHRyZGlmZl90IG5hcmdzLAogICByZXR1 cm4gdW5iaW5kX3RvIChjb3VudCwgdmFsKTsKIH0KIAorREVGVU4gKCJmdW5jLWFyaXR5IiwgRmZ1 bmNfYXJpdHksIFNmdW5jX2FyaXR5LCAxLCAxLCAwLAorICAgICAgIGRvYzogLyogUmV0dXJuIG1p bmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIGFyZ3MgYWxsb3dlZCBmb3IgRlVOQ1RJT04uCitG VU5DVElPTiBtdXN0IGJlIGEgZnVuY3Rpb24gb2Ygc29tZSBraW5kLgorVGhlIHJldHVybmVkIHZh bHVlIGlzIGEgcGFpciAoTUlOIC4gTUFYKS4gIE1JTiBpcyB0aGUgbWluaW11bSBudW1iZXIKK29m IGFyZ3MuICBNQVggaXMgdGhlIG1heGltdW0gbnVtYmVyIG9yIHRoZSBzeW1ib2wgYG1hbnknLCBm b3IgYQorZnVuY3Rpb24gd2l0aCBgJnJlc3QnIGFyZ3MsIG9yIGB1bmV2YWxsZWQnIGZvciBhIHNw ZWNpYWwgZm9ybS4gICovKQorICAoTGlzcF9PYmplY3QgZnVuY3Rpb24pCit7CisgIExpc3BfT2Jq ZWN0IG9yaWdpbmFsOworICBMaXNwX09iamVjdCBmdW5jYXI7CisgIExpc3BfT2JqZWN0IHJlc3Vs dDsKKyAgc2hvcnQgbWluYXJncywgbWF4YXJnczsKKworICBvcmlnaW5hbCA9IGZ1bmN0aW9uOwor CisgcmV0cnk6CisKKyAgLyogT3B0aW1pemUgZm9yIG5vIGluZGlyZWN0aW9uLiAgKi8KKyAgZnVu Y3Rpb24gPSBvcmlnaW5hbDsKKyAgaWYgKFNZTUJPTFAgKGZ1bmN0aW9uKSAmJiAhTklMUCAoZnVu Y3Rpb24pCisgICAgICAmJiAoZnVuY3Rpb24gPSBYU1lNQk9MIChmdW5jdGlvbiktPmZ1bmN0aW9u LCBTWU1CT0xQIChmdW5jdGlvbikpKQorICAgIGZ1bmN0aW9uID0gaW5kaXJlY3RfZnVuY3Rpb24g KGZ1bmN0aW9uKTsKKworICBpZiAoU1VCUlAgKGZ1bmN0aW9uKSkKKyAgICB7CisgICAgICBtaW5h cmdzID0gWFNVQlIgKGZ1bmN0aW9uKS0+bWluX2FyZ3M7CisgICAgICBtYXhhcmdzID0gWFNVQlIg KGZ1bmN0aW9uKS0+bWF4X2FyZ3M7CisgICAgICByZXN1bHQgID0gRmNvbnMgKG1ha2VfbnVtYmVy IChtaW5hcmdzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbWF4YXJncyA9PSBNQU5ZID8gICAg ICAgIFFtYW55CisgICAgICAgICAgICAgICAgICAgICAgIDogbWF4YXJncyA9PSBVTkVWQUxMRUQg PyBRdW5ldmFsbGVkCisgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAg ICAgICBtYWtlX251bWJlciAobWF4YXJncykpOworICAgIH0KKyAgZWxzZSBpZiAoQ09NUElMRURQ IChmdW5jdGlvbikpCisgICAgcmVzdWx0ID0gbGFtYmRhX2FyaXR5IChmdW5jdGlvbik7CisgIGVs c2UKKyAgICB7CisgICAgICBpZiAoTklMUCAoZnVuY3Rpb24pKQorCXhzaWduYWwxIChRdm9pZF9m dW5jdGlvbiwgb3JpZ2luYWwpOworICAgICAgaWYgKCFDT05TUCAoZnVuY3Rpb24pKQorCXhzaWdu YWwxIChRaW52YWxpZF9mdW5jdGlvbiwgb3JpZ2luYWwpOworICAgICAgZnVuY2FyID0gWENBUiAo ZnVuY3Rpb24pOworICAgICAgaWYgKCFTWU1CT0xQIChmdW5jYXIpKQorCXhzaWduYWwxIChRaW52 YWxpZF9mdW5jdGlvbiwgb3JpZ2luYWwpOworICAgICAgaWYgKEVRIChmdW5jYXIsIFFsYW1iZGEp CisJICB8fCBFUSAoZnVuY2FyLCBRY2xvc3VyZSkpCisJcmVzdWx0ID0gbGFtYmRhX2FyaXR5IChm dW5jdGlvbik7CisgICAgICBlbHNlIGlmIChFUSAoZnVuY2FyLCBRYXV0b2xvYWQpKQorCXsKKwkg IEZhdXRvbG9hZF9kb19sb2FkIChmdW5jdGlvbiwgb3JpZ2luYWwsIFFuaWwpOworCSAgZ290byBy ZXRyeTsKKwl9CisgICAgICBlbHNlCisJeHNpZ25hbDEgKFFpbnZhbGlkX2Z1bmN0aW9uLCBvcmln aW5hbCk7CisgICAgfQorICByZXR1cm4gcmVzdWx0OworfQorCisvKiBGVU4gbXVzdCBiZSBlaXRo ZXIgYSBsYW1iZGEtZXhwcmVzc2lvbiBvciBhIGNvbXBpbGVkLWNvZGUgb2JqZWN0LiAgKi8KK3N0 YXRpYyBMaXNwX09iamVjdAorbGFtYmRhX2FyaXR5IChMaXNwX09iamVjdCBmdW4pCit7CisgIExp c3BfT2JqZWN0IHZhbCwgc3ltc19sZWZ0LCBuZXh0OworICBwdHJkaWZmX3QgbWluYXJncywgbWF4 YXJnczsKKyAgYm9vbCBvcHRpb25hbDsKKworICBpZiAoQ09OU1AgKGZ1bikpCisgICAgeworICAg ICAgaWYgKEVRIChYQ0FSIChmdW4pLCBRY2xvc3VyZSkpCisJeworCSAgZnVuID0gWENEUiAoZnVu KTsJLyogRHJvcCBgY2xvc3VyZScuICAqLworCSAgQ0hFQ0tfTElTVF9DT05TIChmdW4sIGZ1bik7 CisJfQorICAgICAgc3ltc19sZWZ0ID0gWENEUiAoZnVuKTsKKyAgICAgIGlmIChDT05TUCAoc3lt c19sZWZ0KSkKKwlzeW1zX2xlZnQgPSBYQ0FSIChzeW1zX2xlZnQpOworICAgICAgZWxzZQorCXhz aWduYWwxIChRaW52YWxpZF9mdW5jdGlvbiwgZnVuKTsKKyAgICB9CisgIGVsc2UgaWYgKENPTVBJ TEVEUCAoZnVuKSkKKyAgICB7CisgICAgICBwdHJkaWZmX3Qgc2l6ZSA9IEFTSVpFIChmdW4pICYg UFNFVURPVkVDVE9SX1NJWkVfTUFTSzsKKyAgICAgIGlmIChzaXplIDw9IENPTVBJTEVEX1NUQUNL X0RFUFRIKQorCXhzaWduYWwxIChRaW52YWxpZF9mdW5jdGlvbiwgZnVuKTsKKyAgICAgIHN5bXNf bGVmdCA9IEFSRUYgKGZ1biwgQ09NUElMRURfQVJHTElTVCk7CisgICAgICBpZiAoSU5URUdFUlAg KHN5bXNfbGVmdCkpCisgICAgICAgIHJldHVybiBnZXRfYnl0ZV9jb2RlX2FyaXR5IChzeW1zX2xl ZnQpOworICAgIH0KKyAgZWxzZQorICAgIGVtYWNzX2Fib3J0ICgpOworCisgIG1pbmFyZ3MgPSBt YXhhcmdzID0gb3B0aW9uYWwgPSAwOworICBmb3IgKDsgQ09OU1AgKHN5bXNfbGVmdCk7IHN5bXNf bGVmdCA9IFhDRFIgKHN5bXNfbGVmdCkpCisgICAgeworICAgICAgbmV4dCA9IFhDQVIgKHN5bXNf bGVmdCk7CisgICAgICBpZiAoIVNZTUJPTFAgKG5leHQpKQorCXhzaWduYWwxIChRaW52YWxpZF9m dW5jdGlvbiwgZnVuKTsKKworICAgICAgaWYgKEVRIChuZXh0LCBRYW5kX3Jlc3QpKQorCXJldHVy biBGY29ucyAobWFrZV9udW1iZXIgKG1pbmFyZ3MpLCBRbWFueSk7CisgICAgICBlbHNlIGlmIChF USAobmV4dCwgUWFuZF9vcHRpb25hbCkpCisJb3B0aW9uYWwgPSAxOworICAgICAgZWxzZQorCXsK KyAgICAgICAgICBpZiAoIW9wdGlvbmFsKQorICAgICAgICAgICAgbWluYXJncysrOworICAgICAg ICAgIG1heGFyZ3MrKzsKKyAgICAgICAgfQorICAgIH0KKworICBpZiAoIU5JTFAgKHN5bXNfbGVm dCkpCisgICAgeHNpZ25hbDEgKFFpbnZhbGlkX2Z1bmN0aW9uLCBmdW4pOworCisgIHJldHVybiBG Y29ucyAobWFrZV9udW1iZXIgKG1pbmFyZ3MpLCBtYWtlX251bWJlciAobWF4YXJncykpOworfQor CisKIERFRlVOICgiZmV0Y2gtYnl0ZWNvZGUiLCBGZmV0Y2hfYnl0ZWNvZGUsIFNmZXRjaF9ieXRl Y29kZSwKICAgICAgICAxLCAxLCAwLAogICAgICAgIGRvYzogLyogSWYgYnl0ZS1jb21waWxlZCBP QkpFQ1QgaXMgbGF6eS1sb2FkZWQsIGZldGNoIGl0IG5vdy4gICovKQpAQCAtMzgwOCw2ICszOTI1 LDcgQEAgYWxpc3Qgb2YgYWN0aXZlIGxleGljYWwgYmluZGluZ3MuICAqLyk7CiAgIGRlZnN1YnIg KCZTZXZhbCk7CiAgIGRlZnN1YnIgKCZTYXBwbHkpOwogICBkZWZzdWJyICgmU2Z1bmNhbGwpOwor ICBkZWZzdWJyICgmU2Z1bmNfYXJpdHkpOwogICBkZWZzdWJyICgmU3J1bl9ob29rcyk7CiAgIGRl ZnN1YnIgKCZTcnVuX2hvb2tfd2l0aF9hcmdzKTsKICAgZGVmc3ViciAoJlNydW5faG9va193aXRo X2FyZ3NfdW50aWxfc3VjY2Vzcyk7CmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3Au aAppbmRleCBkMGFiYjI0Li5jZDBjMGZjIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3Ny Yy9saXNwLmgKQEAgLTQyMTQsNiArNDIxNCw3IEBAIGV4dGVybiBzdHJ1Y3QgYnl0ZV9zdGFjayAq Ynl0ZV9zdGFja19saXN0OwogZXh0ZXJuIHZvaWQgcmVsb2NhdGVfYnl0ZV9zdGFjayAodm9pZCk7 CiBleHRlcm4gTGlzcF9PYmplY3QgZXhlY19ieXRlX2NvZGUgKExpc3BfT2JqZWN0LCBMaXNwX09i amVjdCwgTGlzcF9PYmplY3QsCiAJCQkJICAgTGlzcF9PYmplY3QsIHB0cmRpZmZfdCwgTGlzcF9P YmplY3QgKik7CitleHRlcm4gTGlzcF9PYmplY3QgZ2V0X2J5dGVfY29kZV9hcml0eSAoTGlzcF9P YmplY3QpOwogCiAvKiBEZWZpbmVkIGluIG1hY3Jvcy5jLiAgKi8KIGV4dGVybiB2b2lkIGluaXRf bWFjcm9zICh2b2lkKTsKZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL2Zucy10ZXN0cy5lbCBiL3Rlc3Qv c3JjL2Zucy10ZXN0cy5lbAppbmRleCA4NjE3MzY5Li44OWVlZDk2IDEwMDY0NAotLS0gYS90ZXN0 L3NyYy9mbnMtdGVzdHMuZWwKKysrIGIvdGVzdC9zcmMvZm5zLXRlc3RzLmVsCkBAIC0yMDgsMyAr MjA4LDEyIEBACiAgIChzaG91bGQgKHN0cmluZy12ZXJzaW9uLWxlc3NwICJmb28xLjI1LjUucG5n IiAiZm9vMS4xMjUuNSIpKQogICAoc2hvdWxkIChzdHJpbmctdmVyc2lvbi1sZXNzcCAiMiIgIjEy NDUiKSkKICAgKHNob3VsZCAobm90IChzdHJpbmctdmVyc2lvbi1sZXNzcCAiMTI0NSIgIjIiKSkp KQorCisoZXJ0LWRlZnRlc3QgZm5zLXRlc3RzLWZ1bmMtYXJpdHkgKCkKKyAgKHNob3VsZCAoZXF1 YWwgKGZ1bmMtYXJpdHkgJ2NhcikgJygxIC4gMSkpKQorICAoc2hvdWxkIChlcXVhbCAoZnVuYy1h cml0eSAnY2FhcikgJygxIC4gMSkpKQorICAoc2hvdWxkIChlcXVhbCAoZnVuYy1hcml0eSAnZm9y bWF0KSAnKDEgLiBtYW55KSkpCisgIChzaG91bGQgKGVxdWFsIChmdW5jLWFyaXR5ICdJbmZvLWdv dG8tbm9kZSkgJygxIC4gMykpKQorICAoc2hvdWxkIChlcXVhbCAoZnVuYy1hcml0eSAobGFtYmRh ICgmcmVzdCB4KSkpICcoMCAuIG1hbnkpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGZ1bmMtYXJpdHkg KGV2YWwgKGxhbWJkYSAoeCAmb3B0aW9uYWwgeSkpIG5pbCkpICcoMSAuIDIpKSkKKyAgKHNob3Vs ZCAoZXF1YWwgKGZ1bmMtYXJpdHkgKGV2YWwgKGxhbWJkYSAoeCAmb3B0aW9uYWwgeSkpIHQpKSAn KDEgLiAyKSkpKQo= --001a113dc9a2fcfd30052e936069--