From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Freja Nordsiek Newsgroups: gmane.lisp.guile.devel Subject: [PATCH] Adding SRFI-97 support Date: Tue, 28 Mar 2017 02:15:24 +0200 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=94eb2c13dca43fce4f054bbf5b58 X-Trace: blaine.gmane.org 1490660139 14768 195.159.176.226 (28 Mar 2017 00:15:39 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 28 Mar 2017 00:15:39 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Mar 28 02:15:34 2017 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csenL-0003Ay-Lt for guile-devel@m.gmane.org; Tue, 28 Mar 2017 02:15:31 +0200 Original-Received: from localhost ([::1]:49337 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1csenR-0008JY-MX for guile-devel@m.gmane.org; Mon, 27 Mar 2017 20:15:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33965) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1csenJ-0008JT-Da for guile-devel@gnu.org; Mon, 27 Mar 2017 20:15:31 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1csenH-0004qz-4i for guile-devel@gnu.org; Mon, 27 Mar 2017 20:15:29 -0400 Original-Received: from mail-pg0-x22f.google.com ([2607:f8b0:400e:c05::22f]:33895) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1csenG-0004qm-Rp for guile-devel@gnu.org; Mon, 27 Mar 2017 20:15:27 -0400 Original-Received: by mail-pg0-x22f.google.com with SMTP id 21so55382610pgg.1 for ; Mon, 27 Mar 2017 17:15:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=LhxmeD1gq1UJ1UrVKuDG0wB4AEoeJ+P59UtDhqMW4GA=; b=e7p/RumDSFvRMXg7PacNcmiGure2hczgGdOTywg0EhdfZcd6MPdDXx8w4iQZ5t8Nwz xrh2WY3P2f8JPY5Pww7pB1EMAuKNlowdhVjJW3zfYXuVjQlz4yzTjzot/a5Z+d8rHwUJ YfzKu2awqKiKkerjlfiIqA6ZiVkGPLWe1ox2YM66KmKhbwr9T6tCklueHbGBOynS15O4 f2HMK4Xg8y29jOPa9KLLar+XJLHWoY/6gB3u1cufuHNQ8QnV8LM08I9/Qan2OSJ0UBWq ieOFhYB3ZdpSCYKjX/+nb6xhx4zYmmvn4bY9psxnEEVRI61jKVJ/IvXmjwegkQ2j5ycS Yi4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LhxmeD1gq1UJ1UrVKuDG0wB4AEoeJ+P59UtDhqMW4GA=; b=t9a2RbH51aKqZxVefksMrOBMj71mcKmoLGC4/bpEVYnHtUHzgdocy6CmhDF61FFuou FxPabTo2CzWQP2UkWL/rreIqT6HcHtHdH+Q3JXTjEJdaP+3akzyZOd/DnP525EcxsEnH nFKFmg5TozZ4m5fzV2hh4nIv8YyWpWjy9fkLf7yiu9jSgBoAXcXcfP67uiK1kBc6Paux mvBLKApbAPSaKfeuTeXHF3dqqFLbKTHe2rQFl7GqIy5DSiZj5pyNIFewTrri2OeeC7Nw S2CRObtS81Y+VVrZDwYp5E+R1Ws8P9poY6aaTZlf5VqLoxEQmu7HFbvu39Sz4A/sSlOp YlHw== X-Gm-Message-State: AFeK/H0gm92OfmMiykwzvOCz7f6QN3wmJLlXSIqD4Y2pLKkeJLoPxCFMcASxsYFqVUqSNtmGc0wv10SCRqDiEw== X-Received: by 10.84.171.228 with SMTP id l91mr31817260plb.84.1490660125287; Mon, 27 Mar 2017 17:15:25 -0700 (PDT) Original-Received: by 10.100.151.164 with HTTP; Mon, 27 Mar 2017 17:15:24 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c05::22f X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.lisp.guile.devel:19075 Archived-At: --94eb2c13dca43fce4f054bbf5b58 Content-Type: text/plain; charset=UTF-8 Wrote a patch to add SRFI-97 ( https://srfi.schemers.org/srfi-97/srfi-97.html ) support, which allows SRFIs to be imported as (use-modules ((srfi :XX))) (import (srfi :XX)) in addition to (use-modules ((srfi srfi-XX))) (import (srfi srfi-XX)) The SRFI is meant as a way to provide a portable way to import SRFI libraries. There is one problem, though. If the scheme reader option keywords is set to 'prefix, SRFI libraries cannot be imported in SRFI-97 style till it is turned off or to 'postfix. This happens because SRFI-97 isn't implemented as a macro. Instead it is implemented inside the resolve-module procedure. Patch includes tests as well as documentation (including the note that setting the keywords option to 'prefix prevents it from working). Freja Nordsiek --94eb2c13dca43fce4f054bbf5b58 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Added-SRFI-97.patch" Content-Disposition: attachment; filename="0001-Added-SRFI-97.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j0ss8mi00 RnJvbSA0YzUyMWNiZDNlODA1ZWJiOTNlNTIxZWJlYTcyMzRkNzk3MTUyYTUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVqYSBOb3Jkc2llayA8Zm5vcmRzaWVAZ21haWwuY29tPgpE YXRlOiBUdWUsIDI4IE1hciAyMDE3IDAxOjU2OjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQWRk ZWQgU1JGSS05Ny4KCiogbW9kdWxlL2ljZS05L2Jvb3QtOS5zY20gKHJlc29sdmUtbW9kdWxlKTog QWRkZWQgU1JGSS05NyBsaWJyYXJ5IG5hbWUKICBhbGlhc2luZy4KKiBtb2R1bGUvaWNlLTkvYm9v dC05LnNjbSAoJWNvbmQtZXhwYW5kLWZlYXR1cmVzKTogQWRkZWQgU1JGSS05NwoqIHRlc3Qtc3Vp dGUvdGVzdHMvc3JmaS05Ny50ZXN0OiBBZGRlZCB0ZXN0cyBmb3IgU1JGSS05NwoqIHRlc3Qtc3Vp dGUvTWFrZWZpbGU6IEluY2x1ZGVkIG5ldyB0ZXN0cy4KKiBkb2MvcmVmL3NyZmktbW9kdWxlcy50 ZXhpOiBBZGRlZCBTUkZJLTk3IGRvY3VtZW50YXRpb24KKiBkb2MvcmVmL2FwaS1tb2R1bGVzLnRl eGk6IEFkZGVkIFNSRkktOTcgaW5mb3JtYXRpb24gdG8gbW9kdWxlIGltcG9ydAogIGRvY3VtZW50 YXRpb24KKiBkb2MvcmVmL2FwaS1kYXRhLnRleGk6IEFkZGVkIG5vdGUgdGhhdCBrZXl3b3JkcyAn cHJlZml4IGFuZCBTUkZJLTk3IGRvIG5vdAogIHdvcmsgdG9nZXRoZXIuCiogZG9jL3JlZi9hcGkt ZXZhbHVhdGlvbi50ZXhpOiBBZGRlZCBub3RlIHRoYXQga2V5d29yZHMgJ3ByZWZpeCBhbmQgU1JG SS05NyBkbwogIG5vdCB3b3JrIHRvZ2V0aGVyLgotLS0KIGRvYy9yZWYvYXBpLWRhdGEudGV4aSAg ICAgICAgIHwgIDQgKysrLQogZG9jL3JlZi9hcGktZXZhbHVhdGlvbi50ZXhpICAgfCAgNCArKyst CiBkb2MvcmVmL2FwaS1tb2R1bGVzLnRleGkgICAgICB8ICA4ICsrKysrKystCiBkb2MvcmVmL3Ny ZmktbW9kdWxlcy50ZXhpICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIG1vZHVsZS9pY2UtOS9ib290LTkuc2NtICAgICAgIHwgMjEgKysrKysrKysrKysrKysr KysrKy0tCiB0ZXN0LXN1aXRlL01ha2VmaWxlLmFtICAgICAgICB8ICAxICsKIHRlc3Qtc3VpdGUv dGVzdHMvc3JmaS05Ny50ZXN0IHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNyBm aWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS05Ny50ZXN0CgpkaWZmIC0tZ2l0IGEvZG9j L3JlZi9hcGktZGF0YS50ZXhpIGIvZG9jL3JlZi9hcGktZGF0YS50ZXhpCmluZGV4IDIxNGM2ZTIu LjMzYjExYjAgMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvYXBpLWRhdGEudGV4aQorKysgYi9kb2MvcmVm L2FwaS1kYXRhLnRleGkKQEAgLTU0MTAsNyArNTQxMCw5IEBAIGtleXdvcmRzIGFyZSBzZWxmLXF1 b3Rpbmcgb2JqZWN0cy4KIAogSWYgdGhlIEBjb2Rle2tleXdvcmRzfSByZWFkIG9wdGlvbiBpcyBz ZXQgdG8gQGNvZGV7J3ByZWZpeH0sIEd1aWxlIGFsc28KIHJlY29nbml6ZXMgdGhlIGFsdGVybmF0 aXZlIHJlYWQgc3ludGF4IEBjb2RlezpOQU1FfS4gIE90aGVyd2lzZSwgdG9rZW5zCi1vZiB0aGUg Zm9ybSBAY29kZXs6TkFNRX0gYXJlIHJlYWQgYXMgc3ltYm9scywgYXMgcmVxdWlyZWQgYnkgUjVS Uy4KK29mIHRoZSBmb3JtIEBjb2RlezpOQU1FfSBhcmUgcmVhZCBhcyBzeW1ib2xzLCBhcyByZXF1 aXJlZCBieSBSNVJTLiAgTm90ZQordGhhdCB0aGlzIG9wdGlvbiBwcmV2ZW50cyBTUkZJLTk3IHN0 eWxlIFNSRkkgbGlicmFyeSByZWZlcmVuY2VzIGZyb20KK3dvcmtpbmcgKEBweHJlZntTUkZJLTk3 fSkuCiAKIEBjaW5kZXggU1JGSS04OCBrZXl3b3JkIHN5bnRheAogCmRpZmYgLS1naXQgYS9kb2Mv cmVmL2FwaS1ldmFsdWF0aW9uLnRleGkgYi9kb2MvcmVmL2FwaS1ldmFsdWF0aW9uLnRleGkKaW5k ZXggMjAyZWJkYy4uZjM5N2U0YiAxMDA2NDQKLS0tIGEvZG9jL3JlZi9hcGktZXZhbHVhdGlvbi50 ZXhpCisrKyBiL2RvYy9yZWYvYXBpLWV2YWx1YXRpb24udGV4aQpAQCAtMzU1LDcgKzM1NSw5IEBA IFNpbWlsYXJseSwgdGhlIEBjb2RleyMhY3VybHktaW5maXh9IHJlYWRlciBkaXJlY3RpdmUgc2V0 cyB0aGUKIEBjb2Rle2N1cmx5LWluZml4fSByZWFkIG9wdGlvbiBvbiB0aGUgcG9ydCwgYW5kCiBA Y29kZXsjIWN1cmx5LWluZml4LWFuZC1icmFja2V0LWxpc3RzfSBzZXRzIEBjb2Rle2N1cmx5LWlu Zml4fSBhbmQKIHVuc2V0cyBAY29kZXtzcXVhcmUtYnJhY2tldHN9IG9uIHRoZSBwb3J0IChAcHhy ZWZ7U1JGSS0xMDV9KS4gIFRoZXJlIGlzCi1jdXJyZW50bHkgbm8gb3RoZXIgd2F5IHRvIGFjY2Vz cyBvciBzZXQgdGhlIHBlci1wb3J0IHJlYWQgb3B0aW9ucy4KK2N1cnJlbnRseSBubyBvdGhlciB3 YXkgdG8gYWNjZXNzIG9yIHNldCB0aGUgcGVyLXBvcnQgcmVhZCBvcHRpb25zLiAgTm90ZQordGhh dCBzZXR0aW5nIEBjb2Rle2tleXdvcmRzfSB0byBAY29kZXsncHJlZml4fSBwcmV2ZW50cyBTUkZJ LTk3IHN0eWxlIFNSRkkKK2xpYnJhcnkgcmVmZXJlbmNlcyBmcm9tIHdvcmtpbmcgKEBweHJlZntT UkZJLTk3fSkuCiAKIFRoZSBib29sZWFuIG9wdGlvbnMgbWF5IGJlIHRvZ2dsZWQgd2l0aCBAY29k ZXtyZWFkLWVuYWJsZX0gYW5kCiBAY29kZXtyZWFkLWRpc2FibGV9LiBUaGUgbm9uLWJvb2xlYW4g QGNvZGV7a2V5d29yZHN9IG9wdGlvbiBtdXN0IGJlIHNldApkaWZmIC0tZ2l0IGEvZG9jL3JlZi9h cGktbW9kdWxlcy50ZXhpIGIvZG9jL3JlZi9hcGktbW9kdWxlcy50ZXhpCmluZGV4IDhmMThiMWUu LmFlYTc1YTggMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvYXBpLW1vZHVsZXMudGV4aQorKysgYi9kb2Mv cmVmL2FwaS1tb2R1bGVzLnRleGkKQEAgLTE3NCw2ICsxNzQsMTAgQEAgTm90ZSB0aGF0IGp1c3Qg YXMgd2l0aCBhIEBjb2Rle3VzZS1tb2R1bGVzfSBzdGF0ZW1lbnQsIGFueSBtb2R1bGUgdGhhdAog aGFzIG5vdCB5ZXQgYmVlbiBsb2FkZWQgd2lsbCBiZSBsb2FkZWQgd2hlbiByZWZlcmVuY2VkIGJ5 IGEgQGNvZGV7QEB9IG9yCiBAY29kZXtAQEBAfSBmb3JtLgogCitOb3RlIHRoYXQgU1JGSSBsaWJy YXJpZXMgY2FuIGJlIHJlZmVycmVkIHRvIGFzIEBjb2RleyhzcmZpIHNyZmktQHZhcntudW1iZXJ9 KX0KK29yIEBjb2RleyhzcmZpIDpAdmFye251bWJlcn0pfSwgd2hlcmUgQHZhcntudW1iZXJ9IGlz IHRoZSBudW1iZXIgb2YgdGhlIFNSRkkKK25lZWRlZC4gIEB4cmVme1NSRkktOTd9LCBmb3IgZG9j dW1lbnRhdGlvbiBvZiB0aGUgbGF0dGVyIGZvcm0uCisKIFlvdSBjYW4gYWxzbyB1c2UgdGhlIEBj b2Rle0BAfSBhbmQgQGNvZGV7QEBAQH0gc3ludGF4ZXMgYXMgdGhlIHRhcmdldAogb2YgYSBAY29k ZXtzZXQhfSB3aGVuIHRoZSBiaW5kaW5nIHJlZmVycyB0byBhIHZhcmlhYmxlLgogCkBAIC04NDYs NyArODUwLDkgQEAgYmVlbiBkZWZpbmVkIGFuZCBAdmFye2F1dG9sb2FkfSBpcyB0cnVlLCB0cnkg dG8gYXV0by1sb2FkIGl0LiAgV2hlbiBpdAogY2FuJ3QgYmUgZm91bmQgdGhhdCB3YXkgZWl0aGVy LCBjcmVhdGUgYW4gZW1wdHkgbW9kdWxlIGlmIEB2YXJ7ZW5zdXJlfQogaXMgdHJ1ZSwgb3RoZXJ3 aXNlIHJldHVybiBAY29kZXsjZn0uICBJZiBAdmFye3ZlcnNpb259IGlzIHRydWUsIGVuc3VyZQog dGhhdCB0aGUgcmVzdWx0aW5nIG1vZHVsZSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGdpdmVuIHZl cnNpb24gcmVmZXJlbmNlCi0oQHB4cmVme1I2UlMgVmVyc2lvbiBSZWZlcmVuY2VzfSkuICBUaGUg bmFtZSBpcyBhIGxpc3Qgb2Ygc3ltYm9scy4KKyhAcHhyZWZ7UjZSUyBWZXJzaW9uIFJlZmVyZW5j ZXN9KS4gIFRoZSBuYW1lIGlzIGEgbGlzdCBvZiBzeW1ib2xzLiAgTm90ZQordGhhdCB0aGlzIHBy b2NlZHVyZSBhbGxvd3MgdGhlIHVzYWdlIG9mIFNSRkktOTcgc3R5bGUgU1JGSSByZWZlcmVuY2Vz CisoQHB4cmVme1NSRkktOTd9KS4KIEBlbmQgZGVmZm4KIAogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSByZXNvbHZlLWludGVyZmFjZSBuYW1lIFsjOnNlbGVjdD0jZl0gQApkaWZmIC0tZ2l0IGEv ZG9jL3JlZi9zcmZpLW1vZHVsZXMudGV4aSBiL2RvYy9yZWYvc3JmaS1tb2R1bGVzLnRleGkKaW5k ZXggZjcxMjk0NC4uMTZlOWY2NSAxMDA2NDQKLS0tIGEvZG9jL3JlZi9zcmZpLW1vZHVsZXMudGV4 aQorKysgYi9kb2MvcmVmL3NyZmktbW9kdWxlcy50ZXhpCkBAIC02MCw2ICs2MCw3IEBAIGdldCB0 aGUgcmVsZXZhbnQgU1JGSSBkb2N1bWVudHMgZnJvbSB0aGUgU1JGSSBob21lIHBhZ2UKICogU1JG SS02OTo6ICAgICAgICAgICAgICAgICAgICAgQmFzaWMgaGFzaCB0YWJsZXMuCiAqIFNSRkktODc6 OiAgICAgICAgICAgICAgICAgICAgID0+IGluIGNhc2UgY2xhdXNlcy4KICogU1JGSS04ODo6ICAg ICAgICAgICAgICAgICAgICAgS2V5d29yZCBvYmplY3RzLgorKiBTUkZJLTk3OjogICAgICAgICAg ICAgICAgICAgICBTdGFuZGFyZGl6ZWQgd2F5IHRvIHJlZmVyZW5jZSBTUkZJIGxpYnJhcmllcy4K ICogU1JGSS05ODo6ICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaW5nIGVudmlyb25tZW50IHZh cmlhYmxlcy4KICogU1JGSS0xMDU6OiAgICAgICAgICAgICAgICAgICAgQ3VybHktaW5maXggZXhw cmVzc2lvbnMuCiAqIFNSRkktMTExOjogICAgICAgICAgICAgICAgICAgIEJveGVzLgpAQCAtODEs OCArODIsMTEgQEAgVGhlcmUgYXJlIHNldmVyYWwgcmVhc29ucyBmb3IgdGhpcyBpbmNvbnNpc3Rl bmN5LiAgRmlyc3QsIHRoZSBmZWF0dXJlCiBjaGVja2luZyBzeW50YWN0aWMgZm9ybSBAY29kZXtj b25kLWV4cGFuZH0gKEBweHJlZntTUkZJLTB9KSBtdXN0IGJlCiBhdmFpbGFibGUgaW1tZWRpYXRl bHksIGJlY2F1c2UgaXQgbXVzdCBiZSB0aGVyZSB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvCiBjaGVj ayBmb3IgdGhlIFNjaGVtZSBpbXBsZW1lbnRhdGlvbiwgdGhhdCBpcywgYmVmb3JlIHNoZSBjYW4g a25vdyB0aGF0Ci1pdCBpcyBzYWZlIHRvIHVzZSBAY29kZXt1c2UtbW9kdWxlc30gdG8gbG9hZCBT UkZJIHN1cHBvcnQgbW9kdWxlcy4gIFRoZQotc2Vjb25kIHJlYXNvbiBpcyB0aGF0IHNvbWUgZmVh dHVyZXMgZGVmaW5lZCBpbiBTUkZJcyBoYWQgYmVlbgoraXQgaXMgc2FmZSB0byB1c2UgQGNvZGV7 dXNlLW1vZHVsZXN9IHRvIGxvYWQgU1JGSSBzdXBwb3J0IG1vZHVsZXMuCitTZWNvbmQsIHRoZSBm ZWF0dXJlIHRvIHJlZmVyZW5jZSBTUkZJIGxpYnJhcmllcyB1c2luZyB0aGUgc3ludGF4CitAY29k ZXsoc3JmaSA6QHZhcntudW1iZXJ9KX0gbmVlZHMgdG8gYmUgaW1tZWRpYXRlbHkgYXZhaWxhYmxl IHRvCitmYWNpbGl0YXRlIGltcG9ydGluZyBTUkZJIG1vZHVsZXMgdXNpbmcgaXQgKEBweHJlZntT UkZJLTk3fSkuICBUaGUKK3RoaXJkIHJlYXNvbiBpcyB0aGF0IHNvbWUgZmVhdHVyZXMgZGVmaW5l ZCBpbiBTUkZJcyBoYWQgYmVlbgogaW1wbGVtZW50ZWQgaW4gR3VpbGUgYmVmb3JlIHRoZSBkZXZl bG9wZXJzIHN0YXJ0ZWQgdG8gYWRkIFNSRkkKIGltcGxlbWVudGF0aW9ucyBhcyBtb2R1bGVzIChm b3IgZXhhbXBsZSBTUkZJLTEzIChAcHhyZWZ7U1JGSS0xM30pKS4gIEluCiB0aGUgZnV0dXJlLCBp dCBpcyBwb3NzaWJsZSB0aGF0IFNSRklzIGluIHRoZSBjb3JlIGxpYnJhcnkgbWlnaHQgYmUKQEAg LTk0LDcgKzk4LDggQEAgeW91IHdhbnQsIHlvdSBjYW4gZG8gdGhhdCBhbHJlYWR5LiAgV2UgaGF2 ZSBpbmNsdWRlZCB0aGUgbW9kdWxlCiBidXQgZW5zdXJlcyB0aGF0IHlvdSBjYW4gd3JpdGUgZnV0 dXJlLXNhZmUgY29kZS4KIAogR2VuZXJhbGx5LCBzdXBwb3J0IGZvciBhIHNwZWNpZmljIFNSRkkg aXMgbWFkZSBhdmFpbGFibGUgYnkgdXNpbmcKLW1vZHVsZXMgbmFtZWQgQGNvZGV7KHNyZmkgc3Jm aS1AdmFye251bWJlcn0pfSwgd2hlcmUgQHZhcntudW1iZXJ9IGlzIHRoZQorbW9kdWxlcyBuYW1l ZCBAY29kZXsoc3JmaSBzcmZpLUB2YXJ7bnVtYmVyfSl9IG9yCitAY29kZXsoc3JmaSA6QHZhcntu dW1iZXJ9KX0sIHdoZXJlIEB2YXJ7bnVtYmVyfSBpcyB0aGUKIG51bWJlciBvZiB0aGUgU1JGSSBu ZWVkZWQuICBBbm90aGVyIHBvc3NpYmlsaXR5IGlzIHRvIHVzZSB0aGUgY29tbWFuZAogbGluZSBv cHRpb24gQGNvZGV7LS11c2Utc3JmaX0sIHdoaWNoIHdpbGwgbG9hZCB0aGUgbmVjZXNzYXJ5IG1v ZHVsZXMKIGF1dG9tYXRpY2FsbHkgKEBweHJlZntJbnZva2luZyBHdWlsZX0pLgpAQCAtMTY1LDYg KzE3MCw3IEBAIHNyZmktNTUKIHNyZmktNjEKIHNyZmktNjIKIHNyZmktODcKK3NyZmktOTcKIHNy ZmktMTA1CiBAZW5kIGV4YW1wbGUKIApAQCAtNTQ1Nyw2ICs1NDYzLDMxIEBAIFJldHVybiB0aGUg a2V5d29yZCBvYmplY3Qgd2hvc2UgbmFtZSBpcyBAdmFye3N0cn0uCiBAZW5kIGV4YW1wbGUKIEBl bmQgZGVmZm4KIAorQG5vZGUgU1JGSS05NworQHN1YnNlY3Rpb24gU1JGSS05NyAtIEFsdGVybmF0 aXZlIHdheSB0byBpbXBvcnQgU1JGSSBsaWJyYXJpZXMKK0BjaW5kZXggU1JGSS05NworCitUaGlz IFNSRkkgbGV0cyBhIFNjaGVtZSBwcm9ncmFtIGltcG9ydCBTUkZJIGxpYnJhcmllcyBpbiBhIHBv cnRhYmxlIGZhc2hpb24KK2Fjcm9zcyBpbXBsZW1lbnRhdGlvbnMgYnkgcmVmZXJlbmNpbmcgdGhl bSBsaWtlIEBjb2RleyhzcmZpIDpAdmFye251bWJlcn0pfSwKK3doZXJlIEB2YXJ7bnVtYmVyfSBp cyB0aGUgbnVtYmVyIG9mIHRoZSBTUkZJIG5lZWRlZC4gIFRvIGltcG9ydCBTUkZJLTEKK3RoaXMg d2F5LAorCitAZXhhbXBsZQorKHVzZS1tb2R1bGVzICgoc3JmaSA6MSkpKQorQGVuZCBleGFtcGxl CisKK29yCisKK0BleGFtcGxlCisoaW1wb3J0IChzcmZpIDoxKSkKK0BlbmQgZXhhbXBsZQorCitU aGlzIG1vZHVsZSBpcyBsb2FkZWQgYnkgZGVmYXVsdC4KKworTm90ZSB0aGF0IHRoaXMgc3ludGF4 IGZvciByZWZlcnJpbmcgdG8gU1JGSSBsaWJyYXJpZXMgZG9lcyBub3Qgd29yayBpZiB0aGUKK0Bj b2Rle2tleXdvcmRzfSByZWFkIG9wdGlvbiBpcyBzZXQgdG8gQGNvZGV7J3ByZWZpeH0KKyhAcHhy ZWZ7S2V5d29yZCBSZWFkIFN5bnRheH0pLgorCiBAbm9kZSBTUkZJLTk4CiBAc3Vic2VjdGlvbiBT UkZJLTk4IEFjY2Vzc2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCiBAY2luZGV4IFNSRkktOTgK ZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9ib290LTkuc2NtIGIvbW9kdWxlL2ljZS05L2Jvb3Qt OS5zY20KaW5kZXggMjc3NzY3Mi4uZGY1ZWMyNiAxMDA2NDQKLS0tIGEvbW9kdWxlL2ljZS05L2Jv b3QtOS5zY20KKysrIGIvbW9kdWxlL2ljZS05L2Jvb3QtOS5zY20KQEAgLTI2OTYsOCArMjY5Niwy NCBAQCBkZXRlcm1pbmlzdGljLiIKICAgICA7OyBEZWZpbmUgdGhlLXJvb3QtbW9kdWxlIGFzICco Z3VpbGUpLgogICAgIChtb2R1bGUtZGVmaW5lLXN1Ym1vZHVsZSEgcm9vdCAnZ3VpbGUgdGhlLXJv b3QtbW9kdWxlKQogCi0gICAgKGxhbWJkYSogKG5hbWUgIzpvcHRpb25hbCAoYXV0b2xvYWQgI3Qp ICh2ZXJzaW9uICNmKSAjOmtleSAoZW5zdXJlICN0KSkKLSAgICAgIChsZXQgKChhbHJlYWR5IChu ZXN0ZWQtcmVmLW1vZHVsZSByb290IG5hbWUpKSkKKyAgICAobGFtYmRhKiAobmFtZS11bnByb2Mg IzpvcHRpb25hbCAoYXV0b2xvYWQgI3QpICh2ZXJzaW9uICNmKSAjOmtleSAoZW5zdXJlICN0KSkK KyAgICAgIDs7IEltcGxlbWVudCBTUkZJLTk3IGJ5IGZpcnN0IGNvbnZlcnRpbmcgbW9kdWxlIG5h bWVzIG9mIHRoZSBmb3JtCisgICAgICA7OyAoJ3NyZmkgJzpYWFhYWCAuLi4pIHRvICgnc3JmaSAn c3JmaS1YWFhYWCkgd2hlcmUgWCBhcmUgYmFzZSAxMCBkaWdpdHMuCisgICAgICAobGV0KiAoKG5h bWUgKGlmIChhbmQgKGxpc3Q/IG5hbWUtdW5wcm9jKSAobm90IChudWxsPyBuYW1lLXVucHJvYykp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAobnVsbD8gKGNkciBuYW1lLXVucHJv YykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbD8gJ3NyZmkgKGNhciBuYW1l LXVucHJvYykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHMgKHN5bWJvbC0+ c3RyaW5nIChjYWRyIG5hbWUtdW5wcm9jKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGRpZ2l0cyAoc3RyaW5nLT5jaGFyLXNldCAiMDEyMzQ1Njc4OSIpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmluZy1wcmVmaXg/ICI6IiBzKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiAoc3RyaW5nLWxlbmd0aCBzKSAxKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWV2ZXJ5IChsYW1iZGEgKGMp IChjaGFyLXNldC1jb250YWlucz8gZGlnaXRzIGMpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgcyAxKSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKGxpc3QgJ3NyZmkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZy0+c3ltYm9sIChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInNyZmktIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgKHN5bWJvbC0+c3RyaW5nIChjYWRyIG5hbWUtdW5w cm9jKSkgMSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZS11bnByb2MpKQorICAgICAg ICAgICAgIChhbHJlYWR5IChuZXN0ZWQtcmVmLW1vZHVsZSByb290IG5hbWUpKSkKICAgICAgICAg KGNvbmQKICAgICAgICAgICgoYW5kIGFscmVhZHkKICAgICAgICAgICAgICAgIChvciAobm90IGF1 dG9sb2FkKSAobW9kdWxlLXB1YmxpYy1pbnRlcmZhY2UgYWxyZWFkeSkpKQpAQCAtMzg5NSw2ICsz OTExLDcgQEAgd2hlbiBub25lIGlzIGF2YWlsYWJsZSwgcmVhZGluZyBGSUxFLU5BTUUgd2l0aCBS RUFERVIuIgogICAgIHNyZmktNjEgIDs7IGdlbmVyYWwgY29uZCBjbGF1c2UKICAgICBzcmZpLTYy ICA7OyBzLWV4cHJlc3Npb24gY29tbWVudHMKICAgICBzcmZpLTg3ICA7OyA9PiBpbiBjYXNlIGNs YXVzZXMKKyAgICBzcmZpLTk3ICA7OyBhbGxvdyBTUkZJIGxpYnJhcnkgcmVmZXJlbmNlcyB0byB0 YWtlIHRoZSBmb3JtIChzcmZpIDpYWFhYKQogICAgIHNyZmktMTA1IDs7IGN1cmx5IGluZml4IGV4 cHJlc3Npb25zCiAgICAgKSkKIApkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBi L3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KaW5kZXggM2NlOTA3MC4uNzkzYWY1MiAxMDA2NDQKLS0t IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQorKysgYi90ZXN0LXN1aXRlL01ha2VmaWxlLmFtCkBA IC0xNTYsNiArMTU2LDcgQEAgU0NNX1RFU1RTID0gdGVzdHMvMDAtaW5pdGlhbC1lbnYudGVzdAkJ XAogCSAgICB0ZXN0cy9zcmZpLTY3LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktNjkudGVzdAkJ CVwKIAkgICAgdGVzdHMvc3JmaS04OC50ZXN0CQkJXAorCSAgICB0ZXN0cy9zcmZpLTk3LnRlc3QJ CQlcCiAJICAgIHRlc3RzL3NyZmktOTgudGVzdAkJCVwKIAkgICAgdGVzdHMvc3JmaS0xMDUudGVz dAkJCVwKIAkgICAgdGVzdHMvc3JmaS0xMTEudGVzdAkJCVwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3Vp dGUvdGVzdHMvc3JmaS05Ny50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTk3LnRlc3QKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljY2YwMAotLS0gL2Rldi9udWxsCisr KyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS05Ny50ZXN0CkBAIC0wLDAgKzEsMjggQEAKKzs7Ozsg c3JmaS05Ny50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBpbXBvcnRpbmcgU1JGSXMgdXNpbmcgKHNy ZmkgOm51bWJlcikKKzs7OzsKKzs7OzsgQ29weXJpZ2h0IChDKSAyMDE3IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorOzs7OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7 IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKzs7OzsKKzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7 Ozs7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7 Cis7Ozs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB CisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LXNyZmktOTcpCisgICM6dXNlLW1vZHVsZSAodGVzdC1z dWl0ZSBsaWIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpKQorCisoZGVmaW5lICh0by1i b29sIHgpIChpZiB4ICN0ICNmKSkKKworKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktOTciCisgIChw YXNzLWlmICJpbiBjb25kLWV4cGFuZCIgKHRvLWJvb2wgKGZpbmQgKGxhbWJkYSAoeCkgKGVxPyAn c3JmaS05NyB4KSkgJWNvbmQtZXhwYW5kLWZlYXR1cmVzKSkpCisgIChwYXNzLWlmICJ1c2UtbW9k dWxlcyIgKHRvLWJvb2wgKGFuZCAodXNlLW1vZHVsZXMgKChzcmZpIDoxOSkpKSAoY3VycmVudC10 aW1lIHRpbWUtdXRjKSkpKQorICAocGFzcy1pZiAiaW1wb3J0IiAodG8tYm9vbCAoYW5kIChpbXBv cnQgKHNyZmkgOjYwKSkgKGJpdHdpc2Utbm90IDIpKSkpKQotLSAKMi45LjMKCg== --94eb2c13dca43fce4f054bbf5b58--