Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 39B2F431FBF for ; Tue, 1 Jul 2014 08:55:31 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KV6OIYpEI0+l for ; Tue, 1 Jul 2014 08:55:27 -0700 (PDT) Received: from mx.xen14.node3324.gplhost.com (gitolite.debian.net [87.98.215.224]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 35C43431FBC for ; Tue, 1 Jul 2014 08:55:27 -0700 (PDT) Received: from remotemail by mx.xen14.node3324.gplhost.com with local (Exim 4.72) (envelope-from ) id 1X20O6-0005or-I2; Tue, 01 Jul 2014 15:54:30 +0000 Received: (nullmailer pid 17142 invoked by uid 1000); Tue, 01 Jul 2014 10:55:58 -0000 From: David Bremner To: Jameson Graef Rollins , Notmuch Mail Subject: Re: [PATCH 1/2] cli: S/MIME verification/decryption support In-Reply-To: <1395031944-15557-2-git-send-email-jrollins@finestructure.net> References: <1340995101-9616-1-git-send-email-jrollins@finestructure.net> <1395031944-15557-1-git-send-email-jrollins@finestructure.net> <1395031944-15557-2-git-send-email-jrollins@finestructure.net> User-Agent: Notmuch/0.18.1+22~gbf82697 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Tue, 01 Jul 2014 07:55:57 -0300 Message-ID: <87wqbxic02.fsf@maritornes.cs.unb.ca> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2014 15:55:31 -0000 --=-=-= Content-Type: text/plain Jameson Graef Rollins writes: > The notmuch-show flags --decrypt and --verify will now also process > S/MIME multiparts if encountered. Requires gmime-2.6 and gpgsm. I was trying to figure out how to test this. I tried a few couple signed messages, but I got "bad" signature status in both cases. An example message is attached. http://mid.gmane.org/4F1423A1.90909@cms.hu-berlin.de Are we missing the signature between bad and untrusted signatures, or does that distinction not exist for S/MIME? --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename="1326721985.H673045P22490.tesseract.cs.unb.ca:2,S" Content-Transfer-Encoding: base64 UmV0dXJuLXBhdGg6IDxvcGVuc3luYy11c2Vycy1ib3VuY2VzQGxpc3RzLnNvdXJjZWZvcmdlLm5l dD4KRW52ZWxvcGUtdG86IGJyZW1uZXJAdGVzc2VyYWN0LmNzLnVuYi5jYQpEZWxpdmVyeS1kYXRl OiBNb24sIDE2IEphbiAyMDEyIDA5OjUzOjA1IC0wNDAwClJlY2VpdmVkOiBmcm9tIGZpZXJvLml0 cy51bmIuY2EgKFsxMzEuMjAyLjEuMTBdKQoJYnkgdGVzc2VyYWN0LmNzLnVuYi5jYSB3aXRoIGVz bXRwcyAoVExTMS4wOkRIRV9SU0FfQUVTXzI1Nl9DQkNfU0hBMTozMikKCShFeGltIDQuNzIpCgko ZW52ZWxvcGUtZnJvbSA8b3BlbnN5bmMtdXNlcnMtYm91bmNlc0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQ+KQoJaWQgMVJtbXplLTAwMDVxZy1DegoJZm9yIGJyZW1uZXJAdGVzc2VyYWN0LmNzLnVuYi5j YTsgTW9uLCAxNiBKYW4gMjAxMiAwOTo1MzowNSAtMDQwMApSZWNlaXZlZDogZnJvbSBteDIubmJw ZWktZWNuLmNhIChteDIubmJwZWktZWNuLmNhIFsxOTguMTY0LjE2My4xOTVdKQoJYnkgZmllcm8u aXRzLnVuYi5jYSAoOC4xMy44LzguMTMuOCkgd2l0aCBFU01UUCBpZCBxMEdEcXVjVzAyNjcwNgoJ Zm9yIDxicmVtbmVyQHVuYi5jYT47IE1vbiwgMTYgSmFuIDIwMTIgMDk6NTI6NTYgLTA0MDAKUmVj ZWl2ZWQ6IGZyb20gbXgyLm5icGVpLWVjbi5jYSAobG9jYWxob3N0LmxvY2FsZG9tYWluIFsxMjcu MC4wLjFdKQoJYnkgbG9jYWxob3N0IChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDI4OEE1MzQzQTcK CWZvciA8YnJlbW5lckB1bmIuY2E+OyBNb24sIDE2IEphbiAyMDEyIDA5OjUyOjU2IC0wNDAwIChB U1QpClJlY2VpdmVkOiBmcm9tIGxpc3RzLnNvdXJjZWZvcmdlLm5ldCAobGlzdHMuc291cmNlZm9y Z2UubmV0IFsyMTYuMzQuMTgxLjg4XSkKCWJ5IG14Mi5uYnBlaS1lY24uY2EgKFBvc3RmaXgpIHdp dGggRVNNVFAgaWQgNTA0RjQ1MzQzQjAKCWZvciA8YnJlbW5lckB1bmIuY2E+OyBNb24sIDE2IEph biAyMDEyIDA5OjUyOjU2IC0wNDAwIChBU1QpClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAoWzEy Ny4wLjAuMV0gaGVsbz1zZnMtbWwtNC52MjkuY2gzLnNvdXJjZWZvcmdlLmNvbSkKCWJ5IHNmcy1t bC00LnYyOS5jaDMuc291cmNlZm9yZ2UuY29tIHdpdGggZXNtdHAgKEV4aW0gNC43NikKCShlbnZl bG9wZS1mcm9tIDxvcGVuc3luYy11c2Vycy1ib3VuY2VzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4p CglpZCAxUm1telgtMDAwMHRJLTVEOyBNb24sIDE2IEphbiAyMDEyIDEzOjUyOjU1ICswMDAwClJl Y2VpdmVkOiBmcm9tIHNvZy1teC0zLnY0My5jaDMuc291cmNlZm9yZ2UuY29tIChbMTcyLjI5LjQz LjE5M10KCWhlbG89bXguc291cmNlZm9yZ2UubmV0KQoJYnkgc2ZzLW1sLTQudjI5LmNoMy5zb3Vy Y2Vmb3JnZS5jb20gd2l0aCBlc210cCAoRXhpbSA0Ljc2KQoJKGVudmVsb3BlLWZyb20gPG1pY2hh ZWwuYmVsbEBjbXMuaHUtYmVybGluLmRlPikgaWQgMVJtbXpXLTAwMDB0Qy1NMwoJZm9yIG9wZW5z eW5jLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldDsKCU1vbiwgMTYgSmFuIDIwMTIgMTM6NTI6 NTQgKzAwMDAKWC1BQ0wtV2FybjogClJlY2VpdmVkOiBmcm9tIGlyMS5jbXMuaHUtYmVybGluLmRl IChbMTQxLjIwLjEuMTQ2XSkKCWJ5IHNvZy1teC0zLnY0My5jaDMuc291cmNlZm9yZ2UuY29tIHdp dGggZXNtdHAgKEV4aW0gNC43NikKCWlkIDFSbW16US0wMDA0bHctNG0gZm9yIG9wZW5zeW5jLXVz ZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldDsKCU1vbiwgMTYgSmFuIDIwMTIgMTM6NTI6NTQgKzAw MDAKWC1Jcm9uUG9ydC1BVjogRT1Tb3Bob3M7aT0iNC43MSw1MTgsMTMyMDYyMDQwMCI7IAoJZD0i cDdzJz9zY2FuJzIwOCI7YT0iODcyNjM2MzEiClJlY2VpdmVkOiBmcm9tIGJlbGx1cy5jbXMuaHUt YmVybGluLmRlIChIRUxPIFsxNDEuMjAuMy4zNF0pIChbMTQxLjIwLjMuMzRdKQoJYnkgaXIxLXJl bGF5LmNtcy5odS1iZXJsaW4uZGUgd2l0aCBFU01UUC9UTFMvREhFLVJTQS1DQU1FTExJQTI1Ni1T SEE7CgkxNiBKYW4gMjAxMiAxNDoxODoyNiArMDEwMApNZXNzYWdlLUlEOiA8NEYxNDIzQTEuOTA5 MDlAY21zLmh1LWJlcmxpbi5kZT4KRGF0ZTogTW9uLCAxNiBKYW4gMjAxMiAxNDoxODoyNSArMDEw MApGcm9tOiBNaWNoYWVsIEJlbGwgPG1pY2hhZWwuYmVsbEBjbXMuaHUtYmVybGluLmRlPgpVc2Vy LUFnZW50OiBNb3ppbGxhLzUuMCAoWDExOyBMaW51eCBpNjg2OwoJcnY6OS4wKSBHZWNrby8yMDEx MTIyMiBUaHVuZGVyYmlyZC85LjAuMQpNSU1FLVZlcnNpb246IDEuMApUbzogb3BlbnN5bmMtdXNl cnNAbGlzdHMuc291cmNlZm9yZ2UubmV0ClJlZmVyZW5jZXM6IDxsb29tLjIwMTIwMTE2VDExNTc1 Mi05MTNAcG9zdC5nbWFuZS5vcmc+CkluLVJlcGx5LVRvOiA8bG9vbS4yMDEyMDExNlQxMTU3NTIt OTEzQHBvc3QuZ21hbmUub3JnPgpYLUVuaWdtYWlsLVZlcnNpb246IDEuMy40ClgtU3BhbS1TY29y ZTogLTAuMCAoLykKWC1TcGFtLVJlcG9ydDogU3BhbSBGaWx0ZXJpbmcgcGVyZm9ybWVkIGJ5IG14 LnNvdXJjZWZvcmdlLm5ldC4KCVNlZSBodHRwOi8vc3BhbWFzc2Fzc2luLm9yZy90YWcvIGZvciBt b3JlIGRldGFpbHMuCgktMC4wIFRfUlBfTUFUQ0hFU19SQ1ZEIEVudmVsb3BlIHNlbmRlciBkb21h aW4gbWF0Y2hlcyBoYW5kb3ZlciByZWxheQoJZG9tYWluClgtSGVhZGVycy1FbmQ6IDFSbW16US0w MDA0bHctNG0KU3ViamVjdDogUmU6IFtPcGVuc3luYy11c2Vyc10gVHJvdWJsZSB3aXRoIGxpYndi eG1sIGluc3RhbGxhdGlvbgpYLUJlZW5UaGVyZTogb3BlbnN5bmMtdXNlcnNAbGlzdHMuc291cmNl Zm9yZ2UubmV0ClgtTWFpbG1hbi1WZXJzaW9uOiAyLjEuOQpQcmVjZWRlbmNlOiBsaXN0Ckxpc3Qt SWQ6IDxvcGVuc3luYy11c2Vycy5saXN0cy5zb3VyY2Vmb3JnZS5uZXQ+Ckxpc3QtVW5zdWJzY3Jp YmU6IDxodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9vcGVuc3lu Yy11c2Vycz4sIAoJPG1haWx0bzpvcGVuc3luYy11c2Vycy1yZXF1ZXN0QGxpc3RzLnNvdXJjZWZv cmdlLm5ldD9zdWJqZWN0PXVuc3Vic2NyaWJlPgpMaXN0LUFyY2hpdmU6IDxodHRwOi8vc291cmNl Zm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD9mb3J1bV9uYW1lPW9wZW5zeW5jLXVzZXJz PgpMaXN0LVBvc3Q6IDxtYWlsdG86b3BlbnN5bmMtdXNlcnNAbGlzdHMuc291cmNlZm9yZ2UubmV0 PgpMaXN0LUhlbHA6IDxtYWlsdG86b3BlbnN5bmMtdXNlcnMtcmVxdWVzdEBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQ/c3ViamVjdD1oZWxwPgpMaXN0LVN1YnNjcmliZTogPGh0dHBzOi8vbGlzdHMuc291 cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL29wZW5zeW5jLXVzZXJzPiwgCgk8bWFpbHRvOm9w ZW5zeW5jLXVzZXJzLXJlcXVlc3RAbGlzdHMuc291cmNlZm9yZ2UubmV0P3N1YmplY3Q9c3Vic2Ny aWJlPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9Ij09PT09PT09PT09 PT09PTA5MzkwODMyMjQ2OTM2Mjk1ODk9PSIKRXJyb3JzLVRvOiBvcGVuc3luYy11c2Vycy1ib3Vu Y2VzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApYLVBNWC1WZXJzaW9uOiA1LjYuMS4yMDY1NDM5LCBB bnRpc3BhbS1FbmdpbmU6IDIuNy4yLjM3NjM3OSwgQW50aXNwYW0tRGF0YTogMjAxMi4xLjE2LjEz NDIxNApYLVBlcmxNeC1TcGFtOiBHYXVnZT1YLCBQcm9iYWJpbGl0eT0xMCUsIFJlcG9ydD0nCiBU T19JTl9TVUJKRUNUIDAuNSwgQk9EWVRFWFRQX1NJWkVfMzAwMF9MRVNTIDAsIF9fQU5ZX1VSSSAw LCBfX0JPVU5DRV9DSEFMTEVOR0VfU1VCSiAwLCBfX0JPVU5DRV9ORFJfU1VCSl9FWEVNUFQgMCwg X19DUF9VUklfSU5fQk9EWSAwLCBfX0NUIDAsIF9fQ1RZUEVfSEFTX0JPVU5EQVJZIDAsIF9fQ1RZ UEVfTVVMVElQQVJUIDAsIF9fQ1RZUEVfTVVMVElQQVJUX01JWEVEIDAsIF9fSEFTX0xJU1RfSEVB REVSIDAsIF9fSEFTX0xJU1RfSEVMUCAwLCBfX0hBU19MSVNUX1NVQlNDUklCRSAwLCBfX0hBU19M SVNUX1VOU1VCU0NSSUJFIDAsIF9fSEFTX01TR0lEIDAsIF9fSU5UX1BST0RfQ09NUCAwLCBfX0xJ TkVTX09GX1lFTExJTkcgMCwgX19NSU1FX1ZFUlNJT04gMCwgX19NT1pJTExBX01TR0lEIDAsIF9f T0VNX1BSSUNFIDAsIF9fU0FORV9NU0dJRCAwLCBfX1NUT0NLX1BIUkFTRV83IDAsIF9fVE9fTUFM Rk9STUVEXzIgMCwgX19UT19OT19OQU1FIDAsIF9fVVJJX05PX1dXVyAwLCBfX1VSSV9OUyAsIF9f VVNFUl9BR0VOVCAwJwpYLVNwYW0tU2NvcmU6IC0xLjYKWC1TcGFtX2JhcjogLQoKRGllcyBpc3Qg ZWluZSBrcnlwdG9ncmFmaXNjaCB1bnRlcnplaWNobmV0ZSBOYWNocmljaHQgaW0gTUlNRS1Gb3Jt YXQuCgotLT09PT09PT09PT09PT09PTA5MzkwODMyMjQ2OTM2Mjk1ODk9PQpDb250ZW50LVR5cGU6 IG11bHRpcGFydC9zaWduZWQ7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1cmUi OwoJbWljYWxnPXNoYTE7IGJvdW5kYXJ5PSItLS0tLS0tLS0tLS1tczAzMDUwODA0MDEwNTAwMDQw NzA1MDAwOCIKCkRpZXMgaXN0IGVpbmUga3J5cHRvZ3JhZmlzY2ggdW50ZXJ6ZWljaG5ldGUgTmFj aHJpY2h0IGltIE1JTUUtRm9ybWF0LgoKLS0tLS0tLS0tLS0tLS1tczAzMDUwODA0MDEwNTAwMDQw NzA1MDAwOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQpDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaSwKCmNhbiB5b3UgcGxl YXNlIHNlbmQgdGhlIGNvbXBsZXRlIG91dHB1dCBpbmNsdWRpbmcgdGhlIGNvbW1hbmQgbGluZSBp bnB1dAp3aGljaCB5b3UgdXNlZCB0byBzdGFydCBjbWFrZT8KCkJUVyBkaWQgeW91IGluc3RhbGwg bGliZXhwYXQxLWRldj8gKEkgdXNlIERlYmlhbiBzaWQuKQoKQmVzdCByZWdhcmRzCgpNaWNoYWVs CgpBbSAwMS8xNi8xMiAxMjowOCwgc2NocmllYiBOaWtpdGFoIEJvYmhhdGU6Cj4gSGVsbG8KPj0y MAo+IEkgYW0gdHJ5aW5nIHRvIGluc3RhbGwgbGlid2J4bWwgaW4gVWJ1bnR1IDExLjEwIHdpdGgg Y21ha2UuIEkgaGF2ZT0yMAo+IGluc3RhbGxlZCBjbWFrZSBhbmQgZXhwYXQuIEhvd2V2ZXIgd2hl biBJIHJ1biB0aGUgY29tbWFuZHMgaW4gdGhlPTIwCj4gSW5zdGFsbCB0ZXh0IGZpbGUsIEkgZ2V0 IHRoZSBmb2xsb3dpbmcgZXJyb3I6Cj49MjAKPiAqKioqKioqKioqCj49MjAKPiBDTWFrZSBFcnJv cjogVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHVzZWQgaW4gdGhpcyBwcm9qZWN0LCBidXQ9 MjAKPiB0aGV5IGFyZSBzZXQgdG8gTk9URk9VTkQuCj4gUGxlYXNlIHNldCB0aGVtIG9yIG1ha2Ug c3VyZSB0aGV5IGFyZSBzZXQgYW5kIHRlc3RlZCBjb3JyZWN0bHkgaW49MjAKPiB0aGUgQ01ha2Ug ZmlsZXM6Cj4gRVhQQVRfSU5DTFVERV9ESVJTIChBRFZBTkNFRCkKPiAgICAgdXNlZCBhcyBpbmNs dWRlIGRpcmVjdG9yeSBpbiBkaXJlY3RvcnkgL2hvbWUvLS0tL2xpYndieG1sLTAuMTEuMC9zcj0K Ywo+ICAgICB1c2VkIGFzIGluY2x1ZGUgZGlyZWN0b3J5IGluIGRpcmVjdG9yeSAvaG9tZS8tLS0v bGlid2J4bWwtMC4xMS4wL3RvPQpvbHMKPiBFWFBBVF9MSUJSQVJJRVMgKEFEVkFOQ0VEKQo+ICAg ICBsaW5rZWQgYnkgdGFyZ2V0ICJ3YnhtbDIiIGluIGRpcmVjdG9yeSAvaG9tZS8tLS0vbGlid2J4 bWwtMC4xMS4wL3NyPQpjCj49MjAKPiAtLSBDb25maWd1cmF0aW9uIGluY29tcGxldGUsIGVycm9y cyBvY2N1cmVkIQo+PTIwCj4gKioqKioqKioqKgo+PTIwCj4gSSB3b3VsZCBhcHByZWNpYXRlIGFu eSBoZWxwIHRyb3VibGVzaG9vdGluZyB0aGlzIQo+IFRoYW5rcyEKPj0yMAo+PTIwCj4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS09Ci0tLS0tLS0KPiBSU0EoUikgQ29uZmVyZW5jZSAyMDEyCj4gTWFyIDI3IC0gRmVi IDIKPiBTYXZlICQ0MDAgYnkgSmFuLiAyNwo+IFJlZ2lzdGVyIG5vdyEKPiBodHRwOi8vcC5zZi5u ZXQvc2Z1L3JzYS1zZmRldjJkZXYyCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBPcGVuc3luYy11c2VycyBtYWlsaW5nIGxpc3QKPiBPcGVuc3luYy11 c2Vyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5l dC9saXN0cy9saXN0aW5mby9vcGVuc3luYy11c2VycwoKCi0tPTIwCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCk1pY2hh ZWwgQmVsbCAgICAgICAgICAgICAgICAgICAgICAgIEh1bWJvbGR0LVVuaXZlcnNpdGFldCB6dSBC ZXJsaW4KClRlbC46ICs0OSAoMCkzMC0yMDkzIDcwMTQzICAgICAgICAgIFpFIENvbXB1dGVyLSB1 bmQgTWVkaWVuc2VydmljZQpGYXg6ICArNDkgKDApMzAtMjA5MyA3MDEzNSAgICAgICAgICBVbnRl ciBkZW4gTGluZGVuIDYKbWljaGFlbC5iZWxsQGNtcy5odS1iZXJsaW4uZGUgICAgICAgRC0xMDA5 OSBCZXJsaW4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwoKUEdQIEZpbmdlcnByaW50OiAwOUU0IDNEMjkgNDE1NiAyNzc0 IDBGMkMgIEM2NDMgRDhCRCAxOTE4IDIwMzAgNUFBQgoKCi0tLS0tLS0tLS0tLS0tbXMwMzA1MDgw NDAxMDUwMDA0MDcwNTAwMDgKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1 cmU7IG5hbWU9InNtaW1lLnA3cyIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CkNv bnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJzbWltZS5wN3MiCkNvbnRl bnQtRGVzY3JpcHRpb246IFMvTUlNRSBLcnlwdG9ncmFmaXNjaGUgVW50ZXJzY2hyaWZ0CgpNSUFH Q1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4Q3pBSkJnVXJEZ01DR2dVQU1JQUdDU3FHU0liM0RRRUhB UUFBb0lJT2d6Q0MKQkNFd2dnTUpvQU1DQVFJQ0FnREhNQTBHQ1NxR1NJYjNEUUVCQlFVQU1IRXhD ekFKQmdOVkJBWVRBa1JGTVJ3d0dnWURWUVFLCkV4TkVaWFYwYzJOb1pTQlVaV3hsYTI5dElFRkhN Ujh3SFFZRFZRUUxFeFpVTFZSbGJHVlRaV01nVkhKMWMzUWdRMlZ1ZEdWeQpNU013SVFZRFZRUURF eHBFWlhWMGMyTm9aU0JVWld4bGEyOXRJRkp2YjNRZ1EwRWdNakFlRncwd05qRXlNVGt4TURJNU1E QmEKRncweE9UQTJNekF5TXpVNU1EQmFNRm94Q3pBSkJnTlZCQVlUQWtSRk1STXdFUVlEVlFRS0V3 cEVSazR0Vm1WeVpXbHVNUkF3CkRnWURWUVFMRXdkRVJrNHRVRXRKTVNRd0lnWURWUVFERXh0RVJr NHRWbVZ5WldsdUlGQkRRU0JIYkc5aVlXd2dMU0JITURFdwpnZ0VpTUEwR0NTcUdTSWIzRFFFQkFR VUFBNElCRHdBd2dnRUtBb0lCQVFEcG04Tm5oZmtOcnZXTlZNT1dVRFU5WXVsdVRPMlUKMXdCYmxT SjAxQ0RyTkkvVzdNQXhCQXVaZ2VLbUZOSlNvQ2dqaEl0MGlRUmVXK0RpZU1GNHl4YkxLRFU1ZXky UVJkRHRvQUI2CmZMOUtEaHNBdzRicFhDc3hFWHNNODRJa1E0d2NPSXRxYUFDYTd0eFBlS3ZTeGhP YmRxM3UzaWJvN3dHdmRBL0JDYUwyYTg2OQowODBVTUUvMTVlT2t5R0tiZ2hvREp6QU5BbVZnVGUz UkNTTXFsalZZSjlOMnhuRzJrQjNFN2Y4MWhuMXZNN1BiRDhVUndvcUQKb1pSZFFXdlkwaEQxVFAz S1Vhelp2ZStTZzd2YTY0c1dWbFpEeitIVkV6Mm1IeWN3elVsVTI4a1ROSnB4ZGNWczZxY0xtUGto Cm5TZXZQcU01T1VocWpLM0ptZnZERXZLOUFnTUJBQUdqZ2Rrd2dkWXdjQVlEVlIwZkJHa3daekJs b0dPZ1lZWmZhSFIwY0RvdgpMM0JyYVM1MFpXeGxjMlZqTG1SbEwyTm5hUzFpYVc0dmMyVnlkbWxq WlM5aFpsOUViM2R1Ykc5aFpFRlNUQzVqY213L0xXTnkKYkY5bWIzSnRZWFE5V0Y4MU1Ea21MV2x6 YzNWbGNqMUVWRjlTVDA5VVgwTkJYekl3SFFZRFZSME9CQllFRkVtM3hzL29QUjkvCjZrUjdFeW4z OFFwd1B0NWtNQjhHQTFVZEl3UVlNQmFBRkRIRGVSdTY5VlBYRitDSmVpMFhiQXF6SzUwek1BNEdB MVVkRHdFQgovd1FFQXdJQkJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUNNQTBHQ1NxR1NJYjNE UUVCQlFVQUE0SUJBUUE3NFZwM3dFZ1gKM0trWTdJR3ZXb253dlNpU3BzcFpHQkp3N0NqeTU2NS9s aXpuOGwwWk1mWVRLM1M5dllDeXVmZG55VG1pZVR2aEVSSHVhM2lSCk0zNDdYeVluZFZObGpqTmo3 czl6dzdDU0kwa2hVSFVqb1I4WTRwU0ZQVDh6NlhjZ2phSzk1cUdGS1VEMlAzTXlXQTBKYTZiYQpo V3pBUDd1TlptUldKRTZ1RFQ4eU5RRmI2WXlDMlhKWlQ3R0doZkYwaFZibHcvaGM4NDN1UjdOVEJY RG41VTJLYVlNbzRSTUoKaHA1ZXlPcFlIZ3dmK2FUVVdnUm8vU2craXdLMldMWDJvU3czVndCbnF5 Tm9qV09sNzVsclhQMUxWdmFyUUljMDFCR1NiT3lICnhRb0xCek55dEc4TUhWUXMyRkhIekw4dzAw Tnk4VEsvak01Slk2Z0E5L0ljTUlJRTlEQ0NBOXlnQXdJQkFnSUVDMkkwanpBTgpCZ2txaGtpRzl3 MEJBUVVGQURCYU1Rc3dDUVlEVlFRR0V3SkVSVEVUTUJFR0ExVUVDaE1LUkVaT0xWWmxjbVZwYmpF UU1BNEcKQTFVRUN4TUhSRVpPTFZCTFNURWtNQ0lHQTFVRUF4TWJSRVpPTFZabGNtVnBiaUJRUTBF Z1IyeHZZbUZzSUMwZ1J6QXhNQjRYCkRUQTNNVEV5TURFd01qa3lNVm9YRFRFNU1EWXpNREF3TURB d01Gb3dhREVMTUFrR0ExVUVCaE1DUkVVeEtEQW1CZ05WQkFvVApIMGgxYldKdmJHUjBMVlZ1YVha bGNuTnBkR0ZsZENCNmRTQkNaWEpzYVc0eERqQU1CZ05WQkFNVEJVaFZMVU5CTVI4d0hRWUoKS29a SWh2Y05BUWtCRmhCd2EybEFhSFV0WW1WeWJHbHVMbVJsTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVG QUFPQ0FROEFNSUlCCkNnS0NBUUVBNnd4QjE3QW9qQUJ2UjdyRWtSOHYzd2ZxdUoxUkFHQng5Qmh2 MHBRaXM5OGtDSmFhWVlPMWNzcGMwem5mRUFPYwpCazlsQmhiL3NXZlYxM0tGS0RjaWI3V2xZMXNG QkhDSkFiR2twY05UZnFwL2VuVHREWk96WEZVelhPajUrbGNhSHduNnF0MkgKUTdvYWZtOHdmUHA5 ZWZkM3lrUnpDV2hiWjdLM28va0NDTUh3NUR4ZTluYTRPZFFDWHF3cDZIaHBteDlDR0hxMlNQV3hy UlpxCmRaSnptZmhtRFYzeVZZZ2hJdXlITi9qRFRvcnNoa2kzcFdGM09GSHBvazF3MDlMS1BEVVpS ZEhaelV0N1pJWllFd2R2alZBSwpKQXNIeUtqenJBU1JmSEpnWHZKUUxFTmNCSndQR1hmSkdNU1hq M0FjUzlDandRZHRNbHlEc1U0RDVSVjRCUUlEQVFBQm80SUIKc2pDQ0FhNHdFZ1lEVlIwVEFRSC9C QWd3QmdFQi93SUJBVEFMQmdOVkhROEVCQU1DQVFZd0hRWURWUjBPQkJZRUZCLzFMRDczClFLc3Vr S0JxMCtKNVh2SjJ6WU4wTUI4R0ExVWRJd1FZTUJhQUZFbTN4cy9vUFI5LzZrUjdFeW4zOFFwd1B0 NWtNQnNHQTFVZApFUVFVTUJLQkVIQnJhVUJvZFMxaVpYSnNhVzR1WkdVd2dZZ0dBMVVkSHdTQmdE QitNRDJnTzZBNWhqZG9kSFJ3T2k4dlkyUncKTVM1d1kyRXVaR1p1TG1SbEwyZHNiMkpoYkMxeWIy OTBMV05oTDNCMVlpOWpjbXd2WTJGamNtd3VZM0pzTUQyZ082QTVoamRvCmRIUndPaTh2WTJSd01p NXdZMkV1WkdadUxtUmxMMmRzYjJKaGJDMXliMjkwTFdOaEwzQjFZaTlqY213dlkyRmpjbXd1WTNK cwpNSUdpQmdnckJnRUZCUWNCQVFTQmxUQ0JrakJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDJO a2NERXVjR05oTG1SbWJpNWsKWlM5bmJHOWlZV3d0Y205dmRDMWpZUzl3ZFdJdlkyRmpaWEowTDJO aFkyVnlkQzVqY25Rd1J3WUlLd1lCQlFVSE1BS0dPMmgwCmRIQTZMeTlqWkhBeUxuQmpZUzVrWm00 dVpHVXZaMnh2WW1Gc0xYSnZiM1F0WTJFdmNIVmlMMk5oWTJWeWRDOWpZV05sY25RdQpZM0owTUEw R0NTcUdTSWIzRFFFQkJRVUFBNElCQVFCTzNBT3pZTit6VkVQSkxKSFAxMitPYTd3emhDMmFqaTFT R0xrUEhxWW4KbDI3ZDIrRnhYZ09vMjRwK3JDN3ZTNTN0TEdqRTQxRWZrd0VnTytjeTRKOW1VcHRU bERxYTNndnprUjhDOTVZbDQzZm1ZZDVICkpyWitXcVFUVmRkd2h4bk9CQ1kwZitvVytSbWV5YlI2 VFlEQVErQnlLNnJ1NkRGUEJSUXBJZWp1bnk3NWpqbTBFWnpjUHdaWgpKK2d4T2JRNjdSdE14aUZr NklvNmpXUmRweTQwbURKMzlORjF0SnFBRnhvKzNoU0tWUlRWczFsL01MMTJsTG1UcSt0Z3JpOWIK TEJFUUx3Tm9hQ2pHaG4yYU9NWUpCMFJkNWEzMXBiaVhFWkxWNElCeWxXZDUveTNOZmI5cTN4K2kx bFhJMDV1K29KM3E5b3g0ClBidXVLVTNWV0luZ01JSUZZakNDQkVxZ0F3SUJBZ0lFRHl0T3JEQU5C Z2txaGtpRzl3MEJBUVVGQURCb01Rc3dDUVlEVlFRRwpFd0pFUlRFb01DWUdBMVVFQ2hNZlNIVnRZ bTlzWkhRdFZXNXBkbVZ5YzJsMFlXVjBJSHAxSUVKbGNteHBiakVPTUF3R0ExVUUKQXhNRlNGVXRR MEV4SHpBZEJna3Foa2lHOXcwQkNRRVdFSEJyYVVCb2RTMWlaWEpzYVc0dVpHVXdIaGNOTURreE1U STBNVEl5Ck56QTVXaGNOTVRJeE1USXpNVEl5TnpBNVdqQ0JvVEVMTUFrR0ExVUVCaE1DUkVVeEtE QW1CZ05WQkFvVEgwaDFiV0p2YkdSMApMVlZ1YVhabGNuTnBkR0ZsZENCNmRTQkNaWEpzYVc0eE56 QTFCZ05WQkFzVExscGxiblJ5WVd4bGFXNXlhV05vZEhWdVp5QkQKYjIxd2RYUmxjaTBnZFc1a0lF MWxaR2xsYm5ObGNuWnBZMlV4R0RBV0Jnb0praWFKay9Jc1pBRUJFd2hpWld4c2JXbGphREVWCk1C TUdBMVVFQXhNTVRXbGphR0ZsYkNCQ1pXeHNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4 QU1JSUJDZ0tDQVFFQQp4N2VET1lNQ2J3ektybm9EeUNCOXZIelg5bVFIMG4wSW42bUl4WmJMTDd3 K2E3d0VzYXdLNlc1UUgyWURJSk8rc0VOWnVWOFYKeGZQNjBRL000bFRETnRVdGpBN014QVpIbTMy bERxR2lpa0pxM0Q5ZFExWjNiQUN5WDJVWlZBUFdaRE5Pd1EvOW8zZVJzb1BFCjNQVkx0UXd5MUxq ZU1VaEw0TUFGL0EwMWxvYUp2alVsMkxrUGJ5by9NTXBxdmYzSk5aVnBzcjZZVEFrVVdQVnBoLy9Z YW1abgp0UEtlRS9iNXpCdUVVNjFNME0zb2hEYjdWWG4xZHo0dmtrQjBWNkZiNWJoSWE1dTBzcnVi Z1ZTNXBsZTZUbDFFQk5CbUNnb1gKUkFFcGwxMm9DZ01lQzM4aUdHaTdDZERCdkNoSDZ0b0tXKzlm N1lwZGZMODVvL25MQS81bnpRSURBUUFCbzRJQjJEQ0NBZFF3CkNRWURWUjBUQkFJd0FEQUxCZ05W SFE4RUJBTUNCZUF3S1FZRFZSMGxCQ0l3SUFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNRQpCZ29y QmdFRUFZSTNGQUlDTUIwR0ExVWREZ1FXQkJTMnVqRnRuemNhb0ZyRDFKcmYzZUd1SFlNK0R6QWZC Z05WSFNNRUdEQVcKZ0JRZjlTdys5MENyTHBDZ2F0UGllVjd5ZHMyRGREQW9CZ05WSFJFRUlUQWZn UjF0YVdOb1lXVnNMbUpsYkd4QVkyMXpMbWgxCkxXSmxjbXhwYmk1a1pUQ0Jnd1lEVlIwZkJId3dl akE3b0RtZ040WTFhSFIwY0RvdkwyTmtjREV1Y0dOaExtUm1iaTVrWlM5bwpkUzFpWlhKc2FXNHRZ MkV2Y0hWaUwyTnliQzlqWVdOeWJDNWpjbXd3TzZBNW9EZUdOV2gwZEhBNkx5OWpaSEF5TG5CallT NWsKWm00dVpHVXZhSFV0WW1WeWJHbHVMV05oTDNCMVlpOWpjbXd2WTJGamNtd3VZM0pzTUlHZUJn Z3JCZ0VGQlFjQkFRU0JrVENCCmpqQkZCZ2dyQmdFRkJRY3dBb1k1YUhSMGNEb3ZMMk5rY0RFdWNH TmhMbVJtYmk1a1pTOW9kUzFpWlhKc2FXNHRZMkV2Y0hWaQpMMk5oWTJWeWRDOWpZV05sY25RdVkz SjBNRVVHQ0NzR0FRVUZCekFDaGpsb2RIUndPaTh2WTJSd01pNXdZMkV1WkdadUxtUmwKTDJoMUxX SmxjbXhwYmkxallTOXdkV0l2WTJGalpYSjBMMk5oWTJWeWRDNWpjblF3RFFZSktvWklodmNOQVFF RkJRQURnZ0VCCkFBTjlYS0hTbnFKam5aUkZlN0xSMkdaWWtmRmtSV29Fb1JSQlRXMW9RTWVLYUZt RnBtdnF0NFZKeW54TyszczZaK0d2K0x1eQp2Q2tZWDU4YytITThpdkZoUmFmVE5UT3R4SlRCUC9P aml5Z3dtbWVBcnlxVm1meGtaTTlJMmV5aGRFMFdkUmIvZldrS0pzSDQKSm9WNmdXQU96VnlKZjhw ZmJIYmdUNEJVRUVka0I0Mm15K1c2OXIzWUozM1d2NUZHTTBlbG51UzkwdlQzYlR2Yk1BekpHOVhR CnN1aU1MWjNFaktIRFh3Q3NDUURCU09aYWttQU42TXZhQ3lqMUJDTkhiL2lyU2FpY1kvVm5HdEFZ dDJTRzI3K0JFY2pReExnbwpMWFJyUmNlUXdvWUxlYjh6cDgxM3B5WGtmYWpZbnhXSEFBSXRNVlZE UG9ZbEM2SnFKaDFRdlhReGdnTmVNSUlEV2dJQkFUQncKTUdneEN6QUpCZ05WQkFZVEFrUkZNU2d3 SmdZRFZRUUtFeDlJZFcxaWIyeGtkQzFWYm1sMlpYSnphWFJoWlhRZ2VuVWdRbVZ5CmJHbHVNUTR3 REFZRFZRUURFd1ZJVlMxRFFURWZNQjBHQ1NxR1NJYjNEUUVKQVJZUWNHdHBRR2gxTFdKbGNteHBi aTVrWlFJRQpEeXRPckRBSkJnVXJEZ01DR2dVQW9JSUJ3ekFZQmdrcWhraUc5dzBCQ1FNeEN3WUpL b1pJaHZjTkFRY0JNQndHQ1NxR1NJYjMKRFFFSkJURVBGdzB4TWpBeE1UWXhNekU0TWpWYU1DTUdD U3FHU0liM0RRRUpCREVXQkJSMmF5K1d3dzZTVEI0RjBqeG9QQTl0CjVqdmxWREJmQmdrcWhraUc5 dzBCQ1E4eFVqQlFNQXNHQ1dDR1NBRmxBd1FCQWpBS0JnZ3Foa2lHOXcwREJ6QU9CZ2dxaGtpRwo5 dzBEQWdJQ0FJQXdEUVlJS29aSWh2Y05Bd0lDQVVBd0J3WUZLdzREQWdjd0RRWUlLb1pJaHZjTkF3 SUNBU2d3ZndZSkt3WUIKQkFHQ054QUVNWEl3Y0RCb01Rc3dDUVlEVlFRR0V3SkVSVEVvTUNZR0Ex VUVDaE1mU0hWdFltOXNaSFF0Vlc1cGRtVnljMmwwCllXVjBJSHAxSUVKbGNteHBiakVPTUF3R0Ex VUVBeE1GU0ZVdFEwRXhIekFkQmdrcWhraUc5dzBCQ1FFV0VIQnJhVUJvZFMxaQpaWEpzYVc0dVpH VUNCQThyVHF3d2dZRUdDeXFHU0liM0RRRUpFQUlMTVhLZ2NEQm9NUXN3Q1FZRFZRUUdFd0pFUlRF b01DWUcKQTFVRUNoTWZTSFZ0WW05c1pIUXRWVzVwZG1WeWMybDBZV1YwSUhwMUlFSmxjbXhwYmpF T01Bd0dBMVVFQXhNRlNGVXRRMEV4Ckh6QWRCZ2txaGtpRzl3MEJDUUVXRUhCcmFVQm9kUzFpWlhK c2FXNHVaR1VDQkE4clRxd3dEUVlKS29aSWh2Y05BUUVCQlFBRQpnZ0VBcVJMTEVVL0c5RDJadnh0 WlVnQlNSeVVQSlBpR05oS1JTZlFxdVR1YzkzSGJnLy9ZOGc0bVB2K1BkU0t0SFg4NER4eGUKdUZZ MUNSZVZwUnpBTGt3RFIxa1NrRUNrc25sMkg4aldRc1Fkby84bys3QkxXcWVCNDNNWXlCYm5FSmZY QXA5Wk5rdUxpaFVOCmdMRGpOUFB0MFlPNW8rUkdWek53Y1F1ak1Nc1JsSTBxdkM5eEZzNnJZbklh UW84Y0x4am9GdTZFZHIzS280alNVZlhMUDRPNQo3U1piNVpIQk05VVIzTjJ1ZFE5RGt1OGQxSUtR Qk5zcW1YM1ViZmg2ZS9vREtHMHM2VmVQVTlRLzR5ekU2MWR4Qmgxd3lFRzUKSnhHTlA0U1lmZ3k5 R1M1SWR4amlmWXlaVG5tdVJyNGwyNVltN3R3dENldjVJazlTRW1oQkxRUTJVQUFBQUFBQUFBPT0K LS0tLS0tLS0tLS0tLS1tczAzMDUwODA0MDEwNTAwMDQwNzA1MDAwOC0tCgoKLS09PT09PT09PT09 PT09PT0wOTM5MDgzMjI0NjkzNjI5NTg5PT0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PSJ1cy1hc2NpaSIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogN2JpdApDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpSU0EoUikgQ29uZmVyZW5jZSAyMDEyCk1hciAyNyAtIEZlYiAyClNhdmUgJDQwMCBieSBKYW4u IDI3ClJlZ2lzdGVyIG5vdyEKaHR0cDovL3Auc2YubmV0L3NmdS9yc2Etc2ZkZXYyZGV2MgotLT09 PT09PT09PT09PT09PTA5MzkwODMyMjQ2OTM2Mjk1ODk9PQpDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9InVzLWFzY2lpIgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA3Yml0CkNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KT3BlbnN5bmMtdXNlcnMgbWFpbGlu ZyBsaXN0Ck9wZW5zeW5jLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3Rz LnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9vcGVuc3luYy11c2VycwoKLS09PT09PT09 PT09PT09PT0wOTM5MDgzMjI0NjkzNjI5NTg5PT0tLQoK --=-=-=--