From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id UO15APv2A2E7hQEAgWs5BA (envelope-from ) for ; Fri, 30 Jul 2021 14:56:27 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id GJDBNvr2A2FENAAAbx9fmQ (envelope-from ) for ; Fri, 30 Jul 2021 12:56:26 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8F26CDD17 for ; Fri, 30 Jul 2021 14:56:26 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id C557A291E9; Fri, 30 Jul 2021 08:56:16 -0400 (EDT) Received: from fethera.tethera.net (fethera.tethera.net [IPv6:2607:5300:60:c5::1]) by mail.notmuchmail.org (Postfix) with ESMTP id E1EAD291DC for ; Fri, 30 Jul 2021 08:56:12 -0400 (EDT) Received: by fethera.tethera.net (Postfix, from userid 1001) id D99E35FD17; Fri, 30 Jul 2021 08:56:12 -0400 (EDT) Received: (nullmailer pid 2166920 invoked by uid 1000); Fri, 30 Jul 2021 12:56:10 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 27/27] lib/parse-sexp: handle saved queries Date: Fri, 30 Jul 2021 09:56:07 -0300 Message-Id: <20210730125607.2165433-28-david@tethera.net> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210730125607.2165433-1-david@tethera.net> References: <20210730125607.2165433-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: PL2VTQS765S5A5Q2QBWPROMMJLU5NEDI X-Message-ID-Hash: PL2VTQS765S5A5Q2QBWPROMMJLU5NEDI X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1627649786; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3zcgeE2nm2jSTV6+wVbovNAZLK5flHp1Zfg0Pta9lkk=; b=Q09yihtDUkIZm7hiuks4py4TaWTv8aXfbuSzggCT3vgMFOHtH0oarx7pW2Kmo95ghk/ryD fy/81IZmZ8rHWUSYwYvjHwA1uezeR1bhkY81HuTOIQXWIZ/wONXg11ko3qgs7+JHEFhNao N6e+5kQnsV7t7Zmrr3jZjzqUrh7yl165gTXsndwvsXK4cZYfM6VDPO1ybVtHBkbByBUwWO cov+jAvdFgOFWQ2QkJ8Fa2cCBxDMyqu9D+GuKrLlDXYBbD4BIW4w+rUY71u8biEGO1ARfq It3xbRSa9sg65Wkv137pNDCPEoHXDkD3mXcTLCGla4gpk+PqRCD+QTgeraigfA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1627649786; a=rsa-sha256; cv=none; b=d0nZ/qHURit0ea3LGM8QvaGu82kLLC9HyjfNzbHTGo22lhW3s0q1yZWRUAFzTFI+wimFBU Lh0Rq6qGZrF0EbAK7O9d3baujJuYLiVX3mWnukf9He4HaapI7cBNt2CXdMGev8cySQi0KZ PGtC3hb0nfrNaABfXglcEIThOMdcLTuumfXxq2p7ZObTBoVwos2kxN7PgT4Lstx192OYo2 ntXgC3Q/Bp/czZiwp0MvQrtwtcSsg4FgHkbdMjTAFx0irA88OYrtXbrLRuga+2W6FnsTQI d0KDlkexIvEkj6T/JxxotAXsihiz2fomexCj+CdX6jKfKQ2wimZZGwANY1ypFw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 0.62 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 8F26CDD17 X-Spam-Score: 0.62 X-Migadu-Scanner: scn1.migadu.com X-TUID: tupaH9vcJIJp VGhpcyBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGFuYWxvZ291cyB0byBxdWVyeTogaW4gdGhlIFhh cGlhbg0KUXVlcnlQYXJzZXIgYmFzZWQgcGFyc2VyLiBQZXJoYXBzIGNvdW50ZXJpbnR1aXRpdmVs eSwgdGhlIHNhdmVkDQpxdWVyaWVzIGN1cnJlbnRseSBoYXZlIHRvIGJlIGluIHRoZSBvcmlnaW5h bCBxdWVyeSBzeW50YXggKGkuZS4gbm90DQpzLWV4cHJlc3Npb25zKS4NCi0tLQ0KIGRvYy9tYW43 L25vdG11Y2gtc2V4cC1xdWVyaWVzLnJzdCB8ICA2ICsrKysrKw0KIGxpYi9wYXJzZS1zZXhwLmNj ICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKysrLS0tLS0tLQ0KIHRlc3QvVDA4MS1z ZXhwci1zZWFyY2guc2ggICAgICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCiAzIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kb2MvbWFuNy9ub3RtdWNoLXNleHAtcXVlcmllcy5yc3QgYi9kb2MvbWFu Ny9ub3RtdWNoLXNleHAtcXVlcmllcy5yc3QNCmluZGV4IDQ0ZDhlYjhhLi4xOTdhOWI2MCAxMDA2 NDQNCi0tLSBhL2RvYy9tYW43L25vdG11Y2gtc2V4cC1xdWVyaWVzLnJzdA0KKysrIGIvZG9jL21h bjcvbm90bXVjaC1zZXhwLXF1ZXJpZXMucnN0DQpAQCAtMTUzLDYgKzE1MywxMiBAQCB0aGF0IGFy ZSBuZWl0aGVyIG9wZXJhdG9ycyBub3IgZmllbGRzLg0KICAgICB0aG9zZSBtYXRjaGluZyBhbGwg b2YgfHExfCAuLi4gfHFufC4gU3VwcG9ydGVkIGluIG1vc3QgdGVybSBbI25vdC1wYXRoXV8gb3IN CiAgICAgcGhyYXNlIGZpZWxkcy4gTW9zdCBjb21tb25seSB1c2VkIGluIHRoZSBgYHRocmVhZGBg IGZpZWxkLg0KIA0KK2BgKHF1ZXJ5YGAgKmF0b20qIGBgKWBgDQorICAgIEV4cGFuZCB0byB0aGUg c2F2ZWQgcXVlcnkgbmFtZWQgYnkgKmF0b20qLiBTZWUNCisgICAgOmFueTpgbm90bXVjaC1jb25m aWcoMSlgIGZvciBtb3JlLiBOb3RlIHRoYXQgdGhlIHNhdmVkIHF1ZXJ5IG11c3QNCisgICAgYmUg aW4gaW5maXggc3ludGF4ICg6YW55OmBub3RtdWNoLXNlYXJjaC10ZXJtcyg3KWApLiBOb3Qgc3Vw cG9ydGVkDQorICAgIGluc2lkZSBmaWVsZHMuDQorDQogYGAocmVnZXhgYCAqYXRvbSogYGApYGAg YGAocnhgYCAqYXRvbSogYGApYGANCiAgICAgSW50ZXJwcmV0ICphdG9tKiBhcyBhIFBPU0lYLjIg cmVndWxhciBleHByZXNzaW9uIChzZWUNCiAgICAgOm1hbnBhZ2U6YHJlZ2V4KDcpYCkuIFRoaXMg YXBwbGllcyBpbiB0ZXJtIGZpZWxkcyBhbmQgYSBzdWJzZXQgWyNub3QtcGhyYXNlXV8gb2YNCmRp ZmYgLS1naXQgYS9saWIvcGFyc2Utc2V4cC5jYyBiL2xpYi9wYXJzZS1zZXhwLmNjDQppbmRleCBh MTc4M2Y4Ni4uZTU4MmUzNTAgMTAwNjQ0DQotLS0gYS9saWIvcGFyc2Utc2V4cC5jYw0KKysrIGIv bGliL3BhcnNlLXNleHAuY2MNCkBAIC0xNyw2ICsxNyw3IEBAIHR5cGVkZWYgZW51bSB7DQogICAg IFNFWFBfRkxBR19ET19SRUdFWAk9IDEgPDwgNSwNCiAgICAgU0VYUF9GTEFHX0VYUEFORAk9IDEg PDwgNiwNCiAgICAgU0VYUF9GTEFHX0RPX0VYUEFORCA9IDEgPDwgNywNCisgICAgU0VYUF9GTEFH X09SUEhBTgk9IDEgPDwgOCwNCiB9IF9zZXhwX2ZsYWdfdDsNCiANCiAvKg0KQEAgLTU4LDcgKzU5 LDcgQEAgc3RhdGljIF9zZXhwX3ByZWZpeF90IHByZWZpeGVzW10gPQ0KICAgICB7ICJpZCIsICAg ICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX09SLCAgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6 TWF0Y2hOb3RoaW5nLA0KICAgICAgIFNFWFBfRkxBR19GSUVMRCB8IFNFWFBfRkxBR19CT09MRUFO IHwgU0VYUF9GTEFHX1dJTERDQVJEIHwgU0VYUF9GTEFHX1JFR0VYIH0sDQogICAgIHsgImluZml4 IiwgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6T1BfSU5WQUxJRCwgICAgICBYYXBpYW46OlF1ZXJ5 OjpNYXRjaEFsbCwNCi0gICAgICBTRVhQX0ZMQUdfU0lOR0xFIH0sDQorICAgICAgU0VYUF9GTEFH X1NJTkdMRSB8IFNFWFBfRkxBR19PUlBIQU4gfSwNCiAgICAgeyAiaXMiLCAgICAgICAgICAgICBY YXBpYW46OlF1ZXJ5OjpPUF9BTkQsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNoQWxsLA0K ICAgICAgIFNFWFBfRkxBR19GSUVMRCB8IFNFWFBfRkxBR19CT09MRUFOIHwgU0VYUF9GTEFHX1dJ TERDQVJEIHwgU0VYUF9GTEFHX1JFR0VYIHwgU0VYUF9GTEFHX0VYUEFORCB9LA0KICAgICB7ICJt YXRjaGluZyIsICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0FORCwgICAgICAgICAgWGFwaWFuOjpR dWVyeTo6TWF0Y2hBbGwsDQpAQCAtNzcsNiArNzgsOCBAQCBzdGF0aWMgX3NleHBfcHJlZml4X3Qg cHJlZml4ZXNbXSA9DQogICAgICAgU0VYUF9GTEFHX0ZJRUxEIHwgU0VYUF9GTEFHX0JPT0xFQU4g fCBTRVhQX0ZMQUdfV0lMRENBUkQgfCBTRVhQX0ZMQUdfUkVHRVggfSwNCiAgICAgeyAicHJvcGVy dHkiLCAgICAgICBYYXBpYW46OlF1ZXJ5OjpPUF9BTkQsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6 Ok1hdGNoQWxsLA0KICAgICAgIFNFWFBfRkxBR19GSUVMRCB8IFNFWFBfRkxBR19CT09MRUFOIHwg U0VYUF9GTEFHX1dJTERDQVJEIHwgU0VYUF9GTEFHX1JFR0VYIHwgU0VYUF9GTEFHX0VYUEFORCB9 LA0KKyAgICB7ICJxdWVyeSIsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0lOVkFMSUQsICAg ICAgWGFwaWFuOjpRdWVyeTo6TWF0Y2hOb3RoaW5nLA0KKyAgICAgIFNFWFBfRkxBR19TSU5HTEUg fCBTRVhQX0ZMQUdfT1JQSEFOIH0sDQogICAgIHsgInJlZ2V4IiwgICAgICAgICAgWGFwaWFuOjpR dWVyeTo6T1BfSU5WQUxJRCwgICAgICBYYXBpYW46OlF1ZXJ5OjpNYXRjaEFsbCwNCiAgICAgICBT RVhQX0ZMQUdfU0lOR0xFIHwgU0VYUF9GTEFHX0RPX1JFR0VYIH0sDQogICAgIHsgInJ4IiwgICAg ICAgICAgICAgWGFwaWFuOjpRdWVyeTo6T1BfSU5WQUxJRCwgICAgICBYYXBpYW46OlF1ZXJ5OjpN YXRjaEFsbCwNCkBAIC0yNDUsMTMgKzI0OCw4IEBAIF9zZXhwX2V4cGFuZF9xdWVyeSAobm90bXVj aF9kYXRhYmFzZV90ICpub3RtdWNoLA0KIH0NCiANCiBzdGF0aWMgbm90bXVjaF9zdGF0dXNfdA0K LV9zZXhwX3BhcnNlX2luZml4IChub3RtdWNoX2RhdGFiYXNlX3QgKm5vdG11Y2gsICBjb25zdCBf c2V4cF9wcmVmaXhfdCAqcGFyZW50LA0KLQkJICAgY29uc3Qgc2V4cF90ICpzeCwgWGFwaWFuOjpR dWVyeSAmb3V0cHV0KQ0KK19zZXhwX3BhcnNlX2luZml4IChub3RtdWNoX2RhdGFiYXNlX3QgKm5v dG11Y2gsIGNvbnN0IHNleHBfdCAqc3gsIFhhcGlhbjo6UXVlcnkgJm91dHB1dCkNCiB7DQotICAg IGlmIChwYXJlbnQpIHsNCi0JX25vdG11Y2hfZGF0YWJhc2VfbG9nIChub3RtdWNoLCAiJ2luZml4 JyBub3Qgc3VwcG9ydGVkIGluc2lkZSAnJXMnXG4iLCBwYXJlbnQtPm5hbWUpOw0KLQlyZXR1cm4g Tk9UTVVDSF9TVEFUVVNfQkFEX1FVRVJZX1NZTlRBWDsNCi0gICAgfQ0KICAgICB0cnkgew0KIAlv dXRwdXQgPSBub3RtdWNoLT5xdWVyeV9wYXJzZXItPnBhcnNlX3F1ZXJ5IChzeC0+dmFsLCBOT1RN VUNIX1FVRVJZX1BBUlNFUl9GTEFHUyk7DQogICAgIH0gY2F0Y2ggKGNvbnN0IFhhcGlhbjo6UXVl cnlQYXJzZXJFcnJvciAmZXJyb3IpIHsNCkBAIC0zNjEsNiArMzU5LDEyIEBAIF9zZXhwX3RvX3hh cGlhbl9xdWVyeSAobm90bXVjaF9kYXRhYmFzZV90ICpub3RtdWNoLCBjb25zdCBfc2V4cF9wcmVm aXhfdCAqcGFyZW50DQogCQlwYXJlbnQgPSBwcmVmaXg7DQogCSAgICB9DQogDQorCSAgICBpZiAo cGFyZW50ICYmIChwcmVmaXgtPmZsYWdzICYgU0VYUF9GTEFHX09SUEhBTikpIHsNCisJCV9ub3Rt dWNoX2RhdGFiYXNlX2xvZyAobm90bXVjaCwgIiclcycgbm90IHN1cHBvcnRlZCBpbnNpZGUgJyVz J1xuIiwNCisJCQkJICAgICAgIHByZWZpeC0+bmFtZSwgcGFyZW50LT5uYW1lKTsNCisJCXJldHVy biBOT1RNVUNIX1NUQVRVU19CQURfUVVFUllfU1lOVEFYOw0KKwkgICAgfQ0KKw0KIAkgICAgaWYg KChwcmVmaXgtPmZsYWdzICYgU0VYUF9GTEFHX1NJTkdMRSkgJiYNCiAJCSghIHN4LT5saXN0LT5u ZXh0IHx8IHN4LT5saXN0LT5uZXh0LT5uZXh0IHx8IHN4LT5saXN0LT5uZXh0LT50eSAhPSBTRVhQ X1ZBTFVFKSkgew0KIAkJX25vdG11Y2hfZGF0YWJhc2VfbG9nIChub3RtdWNoLCAiJyVzJyBleHBl Y3RzIHNpbmdsZSBhdG9tIGFzIGFyZ3VtZW50XG4iLA0KQEAgLTM2OSw3ICszNzMsMTEgQEAgX3Nl eHBfdG9feGFwaWFuX3F1ZXJ5IChub3RtdWNoX2RhdGFiYXNlX3QgKm5vdG11Y2gsIGNvbnN0IF9z ZXhwX3ByZWZpeF90ICpwYXJlbnQNCiAJICAgIH0NCiANCiAJICAgIGlmIChzdHJjbXAgKHByZWZp eC0+bmFtZSwgImluZml4IikgPT0gMCkgew0KLQkJcmV0dXJuIF9zZXhwX3BhcnNlX2luZml4IChu b3RtdWNoLCBwYXJlbnQsIHN4LT5saXN0LT5uZXh0LCBvdXRwdXQpOw0KKwkJcmV0dXJuIF9zZXhw X3BhcnNlX2luZml4IChub3RtdWNoLCBzeC0+bGlzdC0+bmV4dCwgb3V0cHV0KTsNCisJICAgIH0N CisNCisJICAgIGlmIChzdHJjbXAgKHByZWZpeC0+bmFtZSwgInF1ZXJ5IikgPT0gMCkgew0KKwkJ cmV0dXJuIF9ub3RtdWNoX3F1ZXJ5X25hbWVfdG9fcXVlcnkgKG5vdG11Y2gsIHN4LT5saXN0LT5u ZXh0LT52YWwsIG91dHB1dCk7DQogCSAgICB9DQogDQogCSAgICBpZiAocHJlZml4LT54YXBpYW5f b3AgPT0gWGFwaWFuOjpRdWVyeTo6T1BfV0lMRENBUkQpDQpkaWZmIC0tZ2l0IGEvdGVzdC9UMDgx LXNleHByLXNlYXJjaC5zaCBiL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCmluZGV4IDA0YWE2 MTUwLi5lYTg0OGZlMCAxMDA3NTUNCi0tLSBhL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCisr KyBiL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCkBAIC0yMjEsMTAgKzIyMSw0NiBAQCBub3Rt dWNoIHNlYXJjaCBtaW1ldHlwZTp0ZXh0L2h0bWwgPiBFWFBFQ1RFRA0KIG5vdG11Y2ggc2VhcmNo IC0tcXVlcnktc3ludGF4PXNleHAgJyhtaW1ldHlwZSB0ZXh0IGh0bWwpJyAgPiBPVVRQVVQNCiB0 ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0KIA0KK1FVRVJZU1RSPSJkYXRl OjIwMDktMTEtMTguLjIwMDktMTEtMTggYW5kIHRhZzp1bnJlYWQiDQorUVVFUllTVFIyPSJxdWVy eTp0ZXN0IGFuZCBzdWJqZWN0Ok1haWxkaXIiDQorbm90bXVjaCBjb25maWcgc2V0IC0tZGF0YWJh c2UgcXVlcnkudGVzdCAiJFFVRVJZU1RSIg0KK25vdG11Y2ggY29uZmlnIHNldCBxdWVyeS50ZXN0 MiAiJFFVRVJZU1RSMiINCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgImlsbC1mb3JtZWQgbmFtZWQg cXVlcnkgc2VhcmNoIg0KK25vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhxdWVy eSknID4gT1VUUFVUIDI+JjENCitjYXQgPDxFT0YgPiBFWFBFQ1RFRA0KK25vdG11Y2ggc2VhcmNo OiBTeW50YXggZXJyb3IgaW4gcXVlcnkNCisncXVlcnknIGV4cGVjdHMgc2luZ2xlIGF0b20gYXMg YXJndW1lbnQNCitFT0YNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0K Kw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiaWxsLWZvcm1lZCBuYW1lZCBxdWVyeSBzZWFyY2ggMiIN Citub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcodG8gKHF1ZXJ5KSknID4gT1VU UFVUIDI+JjENCitjYXQgPDxFT0YgPiBFWFBFQ1RFRA0KK25vdG11Y2ggc2VhcmNoOiBTeW50YXgg ZXJyb3IgaW4gcXVlcnkNCisnJ3F1ZXJ5JyBub3Qgc3VwcG9ydGVkIGluc2lkZSAndG8nDQorRU9G DQordGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQVVQNCisNCit0ZXN0X2JlZ2lu X3N1YnRlc3QgInNlYXJjaCBuYW1lZCBxdWVyeSINCitub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5 bnRheD1zZXhwICcocXVlcnkgdGVzdCknID4gT1VUUFVUDQorbm90bXVjaCBzZWFyY2ggJFFVRVJZ U1RSID4gRVhQRUNURUQNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0K Kw0KIHRlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdzdWJqZWN0JyAodXRmLTgsIHBocmFz ZS10b2tlbik6Ig0KIG91dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAg JyhzdWJqZWN0IHV0Zjgtc8O8YmrDqWN0KScgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSkNCiB0 ZXN0X2V4cGVjdF9lcXVhbCAiJG91dHB1dCIgInRocmVhZDpYWFggICAyMDAwLTAxLTAxIFsxLzFd IE5vdG11Y2ggVGVzdCBTdWl0ZTsgdXRmOC1zw7xiasOpY3QgKGluYm94IHVucmVhZCkiDQogDQor dGVzdF9iZWdpbl9zdWJ0ZXN0ICJzZWFyY2ggbmFtZWQgcXVlcnkgd2l0aCBvdGhlciB0ZXJtcyIN Citub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcoYW5kIChxdWVyeSB0ZXN0KSAo c3ViamVjdCBNYWlsZGlyKSknID4gT1VUUFVUDQorbm90bXVjaCBzZWFyY2ggJFFVRVJZU1RSIGFu ZCBzdWJqZWN0Ok1haWxkaXIgPiBFWFBFQ1RFRA0KK3Rlc3RfZXhwZWN0X2VxdWFsX2ZpbGUgRVhQ RUNURUQgT1VUUFVUDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJzZWFyY2ggbmVzdGVkIG5hbWVk IHF1ZXJ5Ig0KK25vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhxdWVyeSB0ZXN0 MiknID4gT1VUUFVUDQorbm90bXVjaCBzZWFyY2ggJFFVRVJZU1RSMiA+IEVYUEVDVEVEDQordGVz dF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQVVQNCisNCiB0ZXN0X2JlZ2luX3N1YnRl c3QgIlNlYXJjaCBieSAnc3ViamVjdCcgKHV0Zi04LCBxdW90ZWQgc3RyaW5nKToiDQogb3V0cHV0 PSQobm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKHN1YmplY3QgInV0Zjggc8O8 YmrDqWN0IiknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQogdGVzdF9leHBlY3RfZXF1YWwg IiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3Vp dGU7IHV0Zjgtc8O8YmrDqWN0IChpbmJveCB1bnJlYWQpIg0KLS0gDQoyLjMwLjIN