From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Hartwig Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] In string-split, add support for character sets and predicates. Date: Wed, 10 Oct 2012 09:37:43 +0800 Message-ID: References: <87sj9pm0oz.fsf@tines.lan> <874nm3mt92.fsf@tines.lan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001636c92cfd4be1c604cbaa80d5 X-Trace: ger.gmane.org 1349833073 25769 80.91.229.3 (10 Oct 2012 01:37:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 10 Oct 2012 01:37:53 +0000 (UTC) Cc: guile-devel@gnu.org To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Oct 10 03:37:58 2012 Return-path: Envelope-to: guile-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 1TLlFE-00069n-At for guile-devel@m.gmane.org; Wed, 10 Oct 2012 03:37:56 +0200 Original-Received: from localhost ([::1]:55815 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLlF7-0008CC-V4 for guile-devel@m.gmane.org; Tue, 09 Oct 2012 21:37:49 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:35397) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLlF4-0008Bl-St for guile-devel@gnu.org; Tue, 09 Oct 2012 21:37:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TLlF3-0006ek-SX for guile-devel@gnu.org; Tue, 09 Oct 2012 21:37:46 -0400 Original-Received: from mail-wi0-f171.google.com ([209.85.212.171]:49995) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLlF3-0006eV-IE for guile-devel@gnu.org; Tue, 09 Oct 2012 21:37:45 -0400 Original-Received: by mail-wi0-f171.google.com with SMTP id hj13so5209998wib.12 for ; Tue, 09 Oct 2012 18:37:44 -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:content-type; bh=d7gN0AGHHTLjSsEE6YpvkIVezpgLKWtq5GyClj4yogI=; b=zq2A1nICYsOutFEutZfUmiNfngd/x8SGH/I3SDLPDpRfYMH7/M4B6sjB5A4MqgFQOJ 0waQGiA55P8wnJH7NwuIo1VWHtQZ6bAbEtL/IbL86cCwJ54ga8pnCwSVK+ArR/85N1pE xGFTm2+cwk5laGRbqRoT9pREYGmxib9rVItTC+7SXTyvLosIMLI8Ugwn1uYzTUbepNtd vqDEQhoVaHdd859GUTQh4tpR9lThIuBeIPwO4oB/QPN37OQPgzuzfSxir+YUlwMiJScP S7Ym43rHzU+cVzXco8aP3XcOPVtqzYlBeCUVxeGOUrt7cPofUIGZ2U7pla+SUcQQMkrV jBog== Original-Received: by 10.216.193.136 with SMTP id k8mr12997899wen.188.1349833064177; Tue, 09 Oct 2012 18:37:44 -0700 (PDT) Original-Received: by 10.216.158.13 with HTTP; Tue, 9 Oct 2012 18:37:43 -0700 (PDT) In-Reply-To: <874nm3mt92.fsf@tines.lan> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.212.171 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14951 Archived-At: --001636c92cfd4be1c604cbaa80d5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 10 October 2012 01:48, Mark H Weaver wrote: >> + if (!SCM_CHARSETP (char_pred)) >> { >> - last_idx =3D idx; >> - while (idx > 0 && buf[idx-1] !=3D SCM_CHAR(chr)) >> - idx--; >> - if (idx >=3D 0) >> - { >> - res =3D scm_cons (scm_i_substring (str, idx, last_idx), r= es); >> - idx--; >> - } >> + SCM_ASSERT (scm_is_true (scm_procedure_p (char_pred)), >> + char_pred, SCM_ARG2, FUNC_NAME); >> + } > > Please drop the unneeded curly braces above. Are guile's macros safe to always use that way? In libguile/__scm.h the SCM_ASSERT definition is conditional on SCM_RECKLESS and appears unsafe without the block. In NEWS it is mentioned that SCM_RECKLESS has been =E2=80=9Cremoved completely=E2=80=9D between 0.6 and 0.8, so I wonder if this instance was missed. The conditional in __scm.h dates to 1996. In any case, applied your suggestions and reattached; user of -DSCM_RECKLESS beware. --001636c92cfd4be1c604cbaa80d5 Content-Type: application/octet-stream; name="0001-In-string-split-add-support-for-character-sets-and-p.patch" Content-Disposition: attachment; filename="0001-In-string-split-add-support-for-character-sets-and-p.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h83rjing0 RnJvbSA0N2I4NDM3ZmEzMmVkYWU1Mjc5MDg1MWQwNWU1ZjQwY2M3MDljNmE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgSGFydHdpZyA8bWFuZHlrZUBnbWFpbC5jb20+CkRh dGU6IE1vbiwgOCBPY3QgMjAxMiAxODozNTowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEluIHN0 cmluZy1zcGxpdCwgYWRkIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBzZXRzIGFuZAogcHJlZGljYXRl cy4KCiogbGliZ3VpbGUvc3JmaS0xMy5jIChzdHJpbmctc3BsaXQpOiBBZGQgc3VwcG9ydCBmb3Ig c3BsaXR0aW5nIG9uCiAgY2hhcmFjdGVyIHNldHMgYW5kIHByZWRpY2F0ZXMsIGxpa2Ugc3RyaW5n LWluZGV4IGFuZCBvdGhlcnMuCiogdGVzdC1zdWl0ZS90ZXN0cy9zdHJpbmdzLnRlc3QgKHN0cmlu Zy1zcGxpdCk6IEFkZCB0ZXN0cyBjb3ZlcmluZwogIHRoZSBuZXcgYXJndW1lbnQgdHlwZXMuCi0t LQogbGliZ3VpbGUvc3JmaS0xMy5jICAgICAgICAgICAgfCAgIDk3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tCiBsaWJndWlsZS9zcmZpLTEzLmggICAgICAgICAgICB8 ICAgIDIgKy0KIHRlc3Qtc3VpdGUvdGVzdHMvc3RyaW5ncy50ZXN0IHwgICA2MiArKysrKysrKysr KysrKysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDMy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmd1aWxlL3NyZmktMTMuYyBiL2xpYmd1aWxl L3NyZmktMTMuYwppbmRleCAyODM0NTUzLi42MDlhZjdkIDEwMDY0NAotLS0gYS9saWJndWlsZS9z cmZpLTEzLmMKKysrIGIvbGliZ3VpbGUvc3JmaS0xMy5jCkBAIC0yOTkzLDExICsyOTkzLDIyIEBA IFNDTV9ERUZJTkUgKHNjbV9zdHJpbmdfdG9rZW5pemUsICJzdHJpbmctdG9rZW5pemUiLCAxLCAz LCAwLAogI3VuZGVmIEZVTkNfTkFNRQogCiBTQ01fREVGSU5FIChzY21fc3RyaW5nX3NwbGl0LCAi c3RyaW5nLXNwbGl0IiwgMiwgMCwgMCwKLQkgICAgKFNDTSBzdHIsIFNDTSBjaHIpLAorCSAgICAo U0NNIHN0ciwgU0NNIGNoYXJfcHJlZCksCiAJICAgICJTcGxpdCB0aGUgc3RyaW5nIEB2YXJ7c3Ry fSBpbnRvIGEgbGlzdCBvZiB0aGUgc3Vic3RyaW5ncyBkZWxpbWl0ZWRcbiIKLQkgICAgImJ5IGFw cGVhcmFuY2VzIG9mIHRoZSBjaGFyYWN0ZXIgQHZhcntjaHJ9LiAgTm90ZSB0aGF0IGFuIGVtcHR5 IHN1YnN0cmluZ1xuIgotCSAgICAiYmV0d2VlbiBzZXBhcmF0b3IgY2hhcmFjdGVycyB3aWxsIHJl c3VsdCBpbiBhbiBlbXB0eSBzdHJpbmcgaW4gdGhlXG4iCi0JICAgICJyZXN1bHQgbGlzdC5cbiIK KwkgICAgImJ5IGFwcGVhcmFuY2VzIG9mIGNoYXJhY3RlcnMgdGhhdFxuIgorICAgICAgICAgICAg IlxuIgorICAgICAgICAgICAgIkBpdGVtaXplIEBidWxsZXRcbiIKKyAgICAgICAgICAgICJAaXRl bVxuIgorICAgICAgICAgICAgImVxdWFsIEB2YXJ7Y2hhcl9wcmVkfSwgaWYgaXQgaXMgYSBjaGFy YWN0ZXIsXG4iCisgICAgICAgICAgICAiXG4iCisgICAgICAgICAgICAiQGl0ZW1cbiIKKyAgICAg ICAgICAgICJzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgQHZhcntjaGFyX3ByZWR9LCBpZiBpdCBpcyBh IHByb2NlZHVyZSxcbiIKKyAgICAgICAgICAgICJcbiIKKyAgICAgICAgICAgICJAaXRlbVxuIgor ICAgICAgICAgICAgImFyZSBpbiB0aGUgc2V0IEB2YXJ7Y2hhcl9wcmVkfSwgaWYgaXQgaXMgYSBj aGFyYWN0ZXIgc2V0LlxuIgorICAgICAgICAgICAgIkBlbmQgaXRlbWl6ZVxuXG4iCisgICAgICAg ICAgICAiTm90ZSB0aGF0IGFuIGVtcHR5IHN1YnN0cmluZyBiZXR3ZWVuIHNlcGFyYXRvciBjaGFy YWN0ZXJzXG4iCisgICAgICAgICAgICAid2lsbCByZXN1bHQgaW4gYW4gZW1wdHkgc3RyaW5nIGlu IHRoZSByZXN1bHQgbGlzdC5cbiIKIAkgICAgIlxuIgogCSAgICAiQGxpc3BcbiIKIAkgICAgIihz dHJpbmctc3BsaXQgXCJyb290Ong6MDowOnJvb3Q6L3Jvb3Q6L2Jpbi9iYXNoXCIgI1xcOilcbiIK QEAgLTMwMTQsNDcgKzMwMjUsNzMgQEAgU0NNX0RFRklORSAoc2NtX3N0cmluZ19zcGxpdCwgInN0 cmluZy1zcGxpdCIsIDIsIDAsIDAsCiAJICAgICJAZW5kIGxpc3AiKQogI2RlZmluZSBGVU5DX05B TUUgc19zY21fc3RyaW5nX3NwbGl0CiB7Ci0gIGxvbmcgaWR4LCBsYXN0X2lkeDsKLSAgaW50IG5h cnJvdzsKICAgU0NNIHJlcyA9IFNDTV9FT0w7CiAKICAgU0NNX1ZBTElEQVRFX1NUUklORyAoMSwg c3RyKTsKLSAgU0NNX1ZBTElEQVRFX0NIQVIgKDIsIGNocik7CiAgIAotICAvKiBUaGlzIGlzIGV4 cGxpY2l0IHdpZGUvbmFycm93IGxvZ2ljIChpbnN0ZWFkIG9mIHVzaW5nCi0gICAgIHNjbV9pX3N0 cmluZ19yZWYpIGlzIGEgc3BlZWQgb3B0aW1pemF0aW9uLiAgKi8KLSAgaWR4ID0gc2NtX2lfc3Ry aW5nX2xlbmd0aCAoc3RyKTsKLSAgbmFycm93ID0gc2NtX2lfaXNfbmFycm93X3N0cmluZyAoc3Ry KTsKLSAgaWYgKG5hcnJvdykKKyAgaWYgKFNDTV9DSEFSUCAoY2hhcl9wcmVkKSkKICAgICB7Ci0g ICAgICBjb25zdCBjaGFyICpidWYgPSBzY21faV9zdHJpbmdfY2hhcnMgKHN0cik7Ci0gICAgICB3 aGlsZSAoaWR4ID49IDApCisgICAgICBsb25nIGlkeCwgbGFzdF9pZHg7CisgICAgICBpbnQgbmFy cm93OworCisgICAgICAvKiBUaGlzIGlzIGV4cGxpY2l0IHdpZGUvbmFycm93IGxvZ2ljIChpbnN0 ZWFkIG9mIHVzaW5nCisgICAgICAgICBzY21faV9zdHJpbmdfcmVmKSBpcyBhIHNwZWVkIG9wdGlt aXphdGlvbi4gICovCisgICAgICBpZHggPSBzY21faV9zdHJpbmdfbGVuZ3RoIChzdHIpOworICAg ICAgbmFycm93ID0gc2NtX2lfaXNfbmFycm93X3N0cmluZyAoc3RyKTsKKyAgICAgIGlmIChuYXJy b3cpCisgICAgICAgIHsKKyAgICAgICAgICBjb25zdCBjaGFyICpidWYgPSBzY21faV9zdHJpbmdf Y2hhcnMgKHN0cik7CisgICAgICAgICAgd2hpbGUgKGlkeCA+PSAwKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICBsYXN0X2lkeCA9IGlkeDsKKyAgICAgICAgICAgICAgd2hpbGUgKGlkeCA+ IDAgJiYgYnVmW2lkeC0xXSAhPSAoY2hhcikgU0NNX0NIQVIoY2hhcl9wcmVkKSkKKyAgICAgICAg ICAgICAgICBpZHgtLTsKKyAgICAgICAgICAgICAgaWYgKGlkeCA+PSAwKQorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgIHJlcyA9IHNjbV9jb25zIChzY21faV9zdWJzdHJpbmcg KHN0ciwgaWR4LCBsYXN0X2lkeCksIHJlcyk7CisgICAgICAgICAgICAgICAgICBpZHgtLTsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIGVsc2UKICAg ICAgICAgewotICAgICAgICAgIGxhc3RfaWR4ID0gaWR4OwotICAgICAgICAgIHdoaWxlIChpZHgg PiAwICYmIGJ1ZltpZHgtMV0gIT0gKGNoYXIpIFNDTV9DSEFSKGNocikpCi0gICAgICAgICAgICBp ZHgtLTsKLSAgICAgICAgICBpZiAoaWR4ID49IDApCisgICAgICAgICAgY29uc3Qgc2NtX3Rfd2No YXIgKmJ1ZiA9IHNjbV9pX3N0cmluZ193aWRlX2NoYXJzIChzdHIpOworICAgICAgICAgIHdoaWxl IChpZHggPj0gMCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgcmVzID0gc2NtX2NvbnMg KHNjbV9pX3N1YnN0cmluZyAoc3RyLCBpZHgsIGxhc3RfaWR4KSwgcmVzKTsKLSAgICAgICAgICAg ICAgaWR4LS07CisgICAgICAgICAgICAgIGxhc3RfaWR4ID0gaWR4OworICAgICAgICAgICAgICB3 aGlsZSAoaWR4ID4gMCAmJiBidWZbaWR4LTFdICE9IFNDTV9DSEFSKGNoYXJfcHJlZCkpCisgICAg ICAgICAgICAgICAgaWR4LS07CisgICAgICAgICAgICAgIGlmIChpZHggPj0gMCkKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICByZXMgPSBzY21fY29ucyAoc2NtX2lfc3Vic3Ry aW5nIChzdHIsIGlkeCwgbGFzdF9pZHgpLCByZXMpOworICAgICAgICAgICAgICAgICAgaWR4LS07 CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICBl bHNlCiAgICAgewotICAgICAgY29uc3Qgc2NtX3Rfd2NoYXIgKmJ1ZiA9IHNjbV9pX3N0cmluZ193 aWRlX2NoYXJzIChzdHIpOwotICAgICAgd2hpbGUgKGlkeCA+PSAwKQorICAgICAgU0NNIHNpZHgs IHNsYXN0X2lkeDsKKworICAgICAgaWYgKCFTQ01fQ0hBUlNFVFAgKGNoYXJfcHJlZCkpCisgICAg ICAgIFNDTV9BU1NFUlQgKHNjbV9pc190cnVlIChzY21fcHJvY2VkdXJlX3AgKGNoYXJfcHJlZCkp LAorICAgICAgICAgICAgICAgICAgICBjaGFyX3ByZWQsIFNDTV9BUkcyLCBGVU5DX05BTUUpOwor CisgICAgICAvKiBTdXBwb3J0aW5nIHByZWRpY2F0ZXMgYW5kIGNoYXJhY3RlciBzZXRzIGludm9s dmVzIGhhbmRsaW5nIFNDTQorICAgICAgICAgdmFsdWVzIHNvIHRoZXJlIGlzIGxlc3MgY2hhbmNl IHRvIG9wdGltaXplLiAqLworICAgICAgc2xhc3RfaWR4ID0gc2NtX3N0cmluZ19sZW5ndGggKHN0 cik7CisgICAgICBmb3IgKDs7KQogICAgICAgICB7Ci0gICAgICAgICAgbGFzdF9pZHggPSBpZHg7 Ci0gICAgICAgICAgd2hpbGUgKGlkeCA+IDAgJiYgYnVmW2lkeC0xXSAhPSBTQ01fQ0hBUihjaHIp KQotICAgICAgICAgICAgaWR4LS07Ci0gICAgICAgICAgaWYgKGlkeCA+PSAwKQotICAgICAgICAg ICAgewotICAgICAgICAgICAgICByZXMgPSBzY21fY29ucyAoc2NtX2lfc3Vic3RyaW5nIChzdHIs IGlkeCwgbGFzdF9pZHgpLCByZXMpOwotICAgICAgICAgICAgICBpZHgtLTsKLSAgICAgICAgICAg IH0KKyAgICAgICAgICBzaWR4ID0gc2NtX3N0cmluZ19pbmRleF9yaWdodCAoc3RyLCBjaGFyX3By ZWQsIFNDTV9JTlVNMCwgc2xhc3RfaWR4KTsKKyAgICAgICAgICBpZiAoc2NtX2lzX2ZhbHNlIChz aWR4KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIHJlcyA9IHNjbV9jb25zIChzY21f c3Vic3RyaW5nIChzdHIsIHNjbV9vbmVwbHVzIChzaWR4KSwgc2xhc3RfaWR4KSwgcmVzKTsKKyAg ICAgICAgICBzbGFzdF9pZHggPSBzaWR4OwogICAgICAgICB9CisKKyAgICAgIHJlcyA9IHNjbV9j b25zIChzY21fc3Vic3RyaW5nIChzdHIsIFNDTV9JTlVNMCwgc2xhc3RfaWR4KSwgcmVzKTsKICAg ICB9CisKICAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChzdHIpOwogICByZXR1cm4gcmVzOwog fQpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvc3JmaS0xMy5oIGIvbGliZ3VpbGUvc3JmaS0xMy5oCmlu ZGV4IGY2MzIzOWEuLjMyNWUyMjIgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL3NyZmktMTMuaAorKysg Yi9saWJndWlsZS9zcmZpLTEzLmgKQEAgLTExMCw3ICsxMTAsNyBAQCBTQ01fQVBJIFNDTSBzY21f eHN1YnN0cmluZyAoU0NNIHMsIFNDTSBmcm9tLCBTQ00gdG8sIFNDTSBzdGFydCwgU0NNIGVuZCk7 CiBTQ01fQVBJIFNDTSBzY21fc3RyaW5nX3hjb3B5X3ggKFNDTSB0YXJnZXQsIFNDTSB0c3RhcnQs IFNDTSBzLCBTQ00gc2Zyb20sIFNDTSBzdG8sIFNDTSBzdGFydCwgU0NNIGVuZCk7CiBTQ01fQVBJ IFNDTSBzY21fc3RyaW5nX3JlcGxhY2UgKFNDTSBzMSwgU0NNIHMyLCBTQ00gc3RhcnQxLCBTQ00g ZW5kMSwgU0NNIHN0YXJ0MiwgU0NNIGVuZDIpOwogU0NNX0FQSSBTQ00gc2NtX3N0cmluZ190b2tl bml6ZSAoU0NNIHMsIFNDTSB0b2tlbl9jaGFyLCBTQ00gc3RhcnQsIFNDTSBlbmQpOwotU0NNX0FQ SSBTQ00gc2NtX3N0cmluZ19zcGxpdCAoU0NNIHMsIFNDTSBjaHIpOworU0NNX0FQSSBTQ00gc2Nt X3N0cmluZ19zcGxpdCAoU0NNIHMsIFNDTSBjaGFyX3ByZWQpOwogU0NNX0FQSSBTQ00gc2NtX3N0 cmluZ19maWx0ZXIgKFNDTSBjaGFyX3ByZWQsIFNDTSBzLCBTQ00gc3RhcnQsIFNDTSBlbmQpOwog U0NNX0FQSSBTQ00gc2NtX3N0cmluZ19kZWxldGUgKFNDTSBjaGFyX3ByZWQsIFNDTSBzLCBTQ00g c3RhcnQsIFNDTSBlbmQpOwogCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3N0cmluZ3Mu dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3RyaW5ncy50ZXN0CmluZGV4IGQ4OTJiNzAuLjY3OWUx NzMgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3RyaW5ncy50ZXN0CisrKyBiL3Rlc3Qt c3VpdGUvdGVzdHMvc3RyaW5ncy50ZXN0CkBAIC01NTcsNyArNTU3LDY3IEBACiAgIChwYXNzLWlm ICJjaGFyIDI1NSIKICAgICAoZXF1YWw/ICcoImEiICJiIikKIAkgICAgKHN0cmluZy1zcGxpdCAo c3RyaW5nICNcYSAoaW50ZWdlci0+Y2hhciAyNTUpICNcYikKLQkJCSAgKGludGVnZXItPmNoYXIg MjU1KSkpKSkKKwkJCSAgKGludGVnZXItPmNoYXIgMjU1KSkpKQorCisgIChwYXNzLWlmICJlbXB0 eSBzdHJpbmcgLSBjaGFyIgorICAgIChlcXVhbD8gJygiIikKKyAgICAgICAgICAgIChzdHJpbmct c3BsaXQgIiIgI1w6KSkpCisKKyAgKHBhc3MtaWYgIm5vbi1lbXB0eSAtIGNoYXIgLSBubyBkZWxp bWl0ZXJzIgorICAgIChlcXVhbD8gJygiZm9vYmFyZnJvYiIpCisgICAgICAgICAgICAoc3RyaW5n LXNwbGl0ICJmb29iYXJmcm9iIiAjXDopKSkKKworICAocGFzcy1pZiAibm9uLWVtcHR5IC0gY2hh ciAtIGRlbGltaXRlcnMiCisgICAgKGVxdWFsPyAnKCJmb28iICJiYXIiICJmcm9iIikKKyAgICAg ICAgICAgIChzdHJpbmctc3BsaXQgImZvbzpiYXI6ZnJvYiIgI1w6KSkpCisKKyAgKHBhc3MtaWYg Im5vbi1lbXB0eSAtIGNoYXIgLSBsZWFkaW5nIGRlbGltaXRlcnMiCisgICAgKGVxdWFsPyAnKCIi ICIiICJmb28iICJiYXIiICJmcm9iIikKKyAgICAgICAgICAgIChzdHJpbmctc3BsaXQgIjo6Zm9v OmJhcjpmcm9iIiAjXDopKSkKKworICAocGFzcy1pZiAibm9uLWVtcHR5IC0gY2hhciAtIHRyYWls aW5nIGRlbGltaXRlcnMiCisgICAgKGVxdWFsPyAnKCJmb28iICJiYXIiICJmcm9iIiAiIiAiIikK KyAgICAgICAgICAgIChzdHJpbmctc3BsaXQgImZvbzpiYXI6ZnJvYjo6IiAjXDopKSkKKworICAo cGFzcy1pZiAiZW1wdHkgc3RyaW5nIC0gY2hhcnNldCIKKyAgICAoZXF1YWw/ICcoIiIpCisgICAg ICAgICAgICAoc3RyaW5nLXNwbGl0ICIiIChjaGFyLXNldCAjXDopKSkpCisKKyAgKHBhc3MtaWYg Im5vbi1lbXB0eSAtIGNoYXJzZXQgLSBubyBkZWxpbWl0ZXJzIgorICAgIChlcXVhbD8gJygiZm9v YmFyZnJvYiIpCisgICAgICAgICAgICAoc3RyaW5nLXNwbGl0ICJmb29iYXJmcm9iIiAoY2hhci1z ZXQgI1w6KSkpKQorCisgIChwYXNzLWlmICJub24tZW1wdHkgLSBjaGFyc2V0IC0gZGVsaW1pdGVy cyIKKyAgICAoZXF1YWw/ICcoImZvbyIgImJhciIgImZyb2IiKQorICAgICAgICAgICAgKHN0cmlu Zy1zcGxpdCAiZm9vOmJhcjpmcm9iIiAoY2hhci1zZXQgI1w6KSkpKQorCisgIChwYXNzLWlmICJu b24tZW1wdHkgLSBjaGFyc2V0IC0gbGVhZGluZyBkZWxpbWl0ZXJzIgorICAgIChlcXVhbD8gJygi IiAiIiAiZm9vIiAiYmFyIiAiZnJvYiIpCisgICAgICAgICAgICAoc3RyaW5nLXNwbGl0ICI6OmZv bzpiYXI6ZnJvYiIgKGNoYXItc2V0ICNcOikpKSkKKworICAocGFzcy1pZiAibm9uLWVtcHR5IC0g Y2hhcnNldCAtIHRyYWlsaW5nIGRlbGltaXRlcnMiCisgICAgKGVxdWFsPyAnKCJmb28iICJiYXIi ICJmcm9iIiAiIiAiIikKKyAgICAgICAgICAgIChzdHJpbmctc3BsaXQgImZvbzpiYXI6ZnJvYjo6 IiAoY2hhci1zZXQgI1w6KSkpKQorCisgIChwYXNzLWlmICJlbXB0eSBzdHJpbmcgLSBwcmVkIgor ICAgIChlcXVhbD8gJygiIikKKyAgICAgICAgICAgIChzdHJpbmctc3BsaXQgIiIgKG5lZ2F0ZSBj aGFyLWFscGhhYmV0aWM/KSkpKQorCisgIChwYXNzLWlmICJub24tZW1wdHkgLSBwcmVkIC0gbm8g ZGVsaW1pdGVycyIKKyAgICAoZXF1YWw/ICcoImZvb2JhcmZyb2IiKQorICAgICAgICAgICAgKHN0 cmluZy1zcGxpdCAiZm9vYmFyZnJvYiIgKG5lZ2F0ZSBjaGFyLWFscGhhYmV0aWM/KSkpKQorCisg IChwYXNzLWlmICJub24tZW1wdHkgLSBwcmVkIC0gZGVsaW1pdGVycyIKKyAgICAoZXF1YWw/ICco ImZvbyIgImJhciIgImZyb2IiKQorICAgICAgICAgICAgKHN0cmluZy1zcGxpdCAiZm9vOmJhcjpm cm9iIiAobmVnYXRlIGNoYXItYWxwaGFiZXRpYz8pKSkpCisKKyAgKHBhc3MtaWYgIm5vbi1lbXB0 eSAtIHByZWQgLSBsZWFkaW5nIGRlbGltaXRlcnMiCisgICAgKGVxdWFsPyAnKCIiICIiICJmb28i ICJiYXIiICJmcm9iIikKKyAgICAgICAgICAgIChzdHJpbmctc3BsaXQgIjo6Zm9vOmJhcjpmcm9i IiAobmVnYXRlIGNoYXItYWxwaGFiZXRpYz8pKSkpCisKKyAgKHBhc3MtaWYgIm5vbi1lbXB0eSAt IHByZWQgLSB0cmFpbGluZyBkZWxpbWl0ZXJzIgorICAgIChlcXVhbD8gJygiZm9vIiAiYmFyIiAi ZnJvYiIgIiIgIiIpCisgICAgICAgICAgICAoc3RyaW5nLXNwbGl0ICJmb286YmFyOmZyb2I6OiIg KG5lZ2F0ZSBjaGFyLWFscGhhYmV0aWM/KSkpKSkKIAogKHdpdGgtdGVzdC1wcmVmaXggInN1YnN0 cmluZy1tb3ZlISIKIAotLSAKMS43LjkKCg== --001636c92cfd4be1c604cbaa80d5--