From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id Bq3WFJ3Cl1/ROQAA0tVLHw (envelope-from ) for ; Tue, 27 Oct 2020 06:47:57 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id KHs4EJ3Cl18HZQAA1q6Kng (envelope-from ) for ; Tue, 27 Oct 2020 06:47:57 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8620F9400BF for ; Tue, 27 Oct 2020 06:47:56 +0000 (UTC) Received: from localhost ([::1]:38400 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kXIlu-0003LX-Jx for larch@yhetil.org; Tue, 27 Oct 2020 02:47:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXIlH-0003L9-7T for help-guix@gnu.org; Tue, 27 Oct 2020 02:47:16 -0400 Received: from mx1.dismail.de ([78.46.223.134]:38106) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXIlA-0006jU-Kw for help-guix@gnu.org; Tue, 27 Oct 2020 02:47:14 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id f6e9b1e3 for ; Tue, 27 Oct 2020 07:47:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=date :message-id:from:to:subject; s=20190914; bh=+pyt4SjTkZRqpyA8uEuL hdRk1SIYAPlJJlpDra9sq+U=; b=rxXCWxvHW5wpIJaKmNDDbqKqbOTPuZuXGtBu L4vshKwgHGv4kScpsfgTQnWM/KAw1jbC/0AXzjcnXqHwOGWjZLuf2jjkOwLzlH0l NNwxKTe27Qn8sB+kjDlelwvRcizZTUpTuR4BfhqyI6sfpnaCBb441LktTOxIeAu8 a1v5RTF/FWCfXzJs8H2ROYgXRrC79Aq8XhsmLwvhUOGO/Ol19NRS1RRj5qzRUwes pLCNG1MJSvJ2MbX/erVdWBEMPerJt5M1b3jWBwhAK/WvukPGEIdAShcUq8jyjVkX bUZ7MZisZWWyiOpgOfp50f0N5KywlFd9jmGzEGH2lG7F+3EJKA== Received: from smtp1.dismail.de ( [10.240.26.11]) by mx1.dismail.de (OpenSMTPD) with ESMTP id f044a10a for ; Tue, 27 Oct 2020 07:47:03 +0100 (CET) Received: from smtp1.dismail.de (localhost [127.0.0.1]) by smtp1.dismail.de (OpenSMTPD) with ESMTP id 70d655ed for ; Tue, 27 Oct 2020 07:47:03 +0100 (CET) Received: by dismail.de (OpenSMTPD) with ESMTPSA id 81610f19 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO) for ; Tue, 27 Oct 2020 07:47:00 +0100 (CET) Date: Tue, 27 Oct 2020 02:46:58 -0400 Message-Id: <875z6w88t9.fsf@dismail.de> To: help-guix@gnu.org Subject: Troubles with opensmtpd Received-SPF: pass client-ip=78.46.223.134; envelope-from=jbranso@dismail.de; helo=mx1.dismail.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/27 02:47:04 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_DISCARD=1.8, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, PP_MIME_FAKE_ASCII_TEXT=0.444, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" Reply-to: Joshua Branson From: Joshua Branson via X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (body hash did not verify) header.d=dismail.de header.s=20190914 header.b=rxXCWxvH; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: 2.49 X-TUID: ++GRKdI1d+h2 Hello! I am trying to set up opensmtpd (and dovecot and eventually a spam filtering program) to host my own email server. It turns out this is fairly difficult. I can currently, receive mail for joshua@gnucode.me, but I do not appear to be able to send email. Also, dovecot doesn't seem to serve my email. I can currently check my email, via ssh-ing into my remote server, and cat-ing the maildirs like so: #+BEGIN_SRC sh cd ~/Maildir/new; cat * #+END_SRC Lots of HTML output Here's the relevant configuration all of which can be found at my current config here: https://notabug.org/jbranso/linode-guix-system-configuration/src/master/linode-locke-lamora-current-config.scm I am also attaching a screen shot of my DNS settings. This is my main smtpd configuration. #+BEGIN_SRC scheme (define-module (mail) #:use-module (guix gexp) #:export ( creds vdoms vusers %smtpd.conf )) ;; to create credentials for now, I need to do the following: ;; find /gnu/store -name '*encrypt*' | grep opensmtpd ;; /gnu/store/blah/opensmtpd/encrypt (define creds (plain-file "creds" ;; easy password ;; "joshua $6$aCjVjpgo34rxEwog$EX1UTwnTIMAzjvJhNQv7iJm4C6Ite.L6t7hTRQtGRNpc/mVf3dQoPDwjQQwXNXyaa/9TTLwlej5rS9guXktMg0" ;; regular user password "joshua $6$xq9.AgTUy9KfVeVB$vgscAWjsNYnRoZo2bMrJTcV/dVTl48rbR6llIMInYCzFMkQaNtrb9gOkwRbzw7mm2sMCD22isWxXPjyUXNTWK1" )) (define vdoms (plain-file "vdoms" "gnucode.me gnu-hurd.com")) (define vusers (plain-file "vusers" "joshua@gnucode.me joshua jbranso@gnucode.me joshua postmaster@gnucode.me joshua") ) (define %smtpd.conf (mixed-text-file "smtpd.conf" " # This is the smtpd server system-wide configuration file. # See smtpd.conf(5) for more information. # borrowed from the archlinux guix # https://wiki.archlinux.org/index.php/OpenSMTPD#Simple_OpenSMTPD/mbox_configuration # My TLS certificate and key table aliases file:/etc/aliases pki mail.gnucode.me cert \"/etc/letsencrypt/live/gnucode.me/fullchain.pem\" pki mail.gnucode.me key \"/etc/letsencrypt/live/gnucode.me/privkey.pem\" # for now I am NOT using the virtual credentials #table creds \"" creds "\" table vdoms \"" vdoms "\" table vusers \"" vusers "\" # listen on eth0, fairly explainatory listen on eth0 tls pki mail.gnucode.me # if I uncomment this next line, smtpd will break...what's wrong with it? listen on eth0 port 465 smtps pki mail.gnucode.me # auth listen on eth0 port 587 tls-require pki mail.gnucode.me # auth action \"receive\" maildir virtual action \"send\" relay match from any for domain action \"receive\" match for any action \"send\"")) #+END_SRC I define the opensmtpd service this way: #+BEGIN_SRC scheme (service mail-aliases-service-type '(("webmaster" "root") ("postmaster" "root") ("abuse" "root"))) ;; I can test send an email from my ssh machine via: ;; cat test-email.txt | msmtp -- jbranso@dismail.de (service opensmtpd-service-type (opensmtpd-configuration (config-file %smtpd.conf))) #+END_SRC Currently when I try to send an email, via msmtp, I get this error: #+BEGIN_SRC sh :results output :exports both cat testmail.txt | msmtp -- jbranso@dismail.de #+END_SRC #+RESULTS: : msmtp: the server does not support authentication : msmtp: could not send mail (account default from /home/joshua/.msmtprc) My .msmtprc looks like: #+BEGIN_SRC sh :results output :exports both cat .msmtprc #+END_SRC #+RESULTS: #+begin_example # Example for a user configuration file ~/.msmtprc # # This file focusses on TLS and authentication. Features not used here include # logging, timeouts, SOCKS proxies, TLS parameters, Delivery Status Notification # (DSN) settings, and more. # Set default values for all following accounts. defaults # Use the mail submission port 587 instead of the SMTP port 25. port 587 # Always use TLS. tls on # Set a list of trusted CAs for TLS. The default is to use system settings, but # you can select your own file. #tls_trust_file /etc/ssl/certs/ca-certificates.crt # If you select your own file, you should also use the tls_crl_file command to # check for revoked certificates, but unfortunately getting revocation lists and # keeping them up to date is not straightforward. #tls_crl_file ~/.tls-crls # A dismail service account gnucode # Host name of the SMTP server host mail.gnucode.me # As an alternative to tls_trust_file/tls_crl_file, you can use tls_fingerprint # to pin a single certificate. You have to update the fingerprint when the # server certificate changes, but an attacker cannot trick you into accepting # a fraudulent certificate. Get the fingerprint with # $ msmtp --serverinfo --tls --tls-certcheck=off --host=smtp.dismail.example #tls_fingerprint 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33 # Envelope-from address from joshua@gnucode.me # Authentication. The password is given using one of five methods, see below. auth on user joshua # Password method 1: Add the password to the system keyring, and let msmtp get # it automatically. To set the keyring password using Gnome's libsecret: # $ secret-tool store --label=msmtp \ # host smtp.dismail.example \ # service smtp \ # user joe.smith # Password method 2: Store the password in an encrypted file, and tell msmtp # which command to use to decrypt it. This is usually used with GnuPG, as in # this example. Usually gpg-agent will ask once for the decryption password. # passwordeval gpg --quiet --decrypt --for-your-eyes-only --no-tty -q -d ~/.msmtp-password.gpg # Password method 3: Store the password directly in this file. Usually it is not # a good idea to store passwords in plain text files. If you do it anyway, at # least make sure that this file can only be read by yourself. password someCrazySecretUngessablePassword # Password method 4: Store the password in ~/.netrc. This method is probably not # relevant anymore. # Password method 5: Do not specify a password. Msmtp will then prompt you for # it. This means you need to be able to type into a terminal when msmtp runs. # A second mail address at the same dismail service #account dismail2 : dismail #from joey@dismail.example # The SMTP server of your ISP # account isp # host smtp.dismail.de # from jbranso@dismail.de # auth on # user 12345 # Set a default account account default : gnucode #+end_example Any help would be awesome! Thanks, Joshua ===File /home/joshua/Downloads/gnucodeDNS.png=============== PNG  JfXF#.oY+V0y'Ju= 3f0;C:袋. s=3hҤIʲ,3i$ν˜|ɦSNi12Q]f~g>`c-[SPP`*Wlcs)SV gjM̛$e"￷'Yf ƍں6ol^}UsʈZ$`Zli 3{PF[Rqr"kUϣޠYʻDZζuSzuT uaǠPrU.$* G]5v[0dR>%ûJU<0m LFҥKl aQ#US L&j /b4^uUWf͚%- q.'/ r%=~%@W^m_mҝ?p; 9$)e]%gilIW2w;+Ǜ5Z6QW}ɬ;& W(͍ɻD?{l[SEBtm̙3# UBTts/;^8>%VT |y;̓O>WlAEAoB?,E_m?>UntĊ"B J y2K/:+Uߋ ` jMy^7Jb7S7%-q: ]qۗXE%ԺNɭl꼨RI~sJu.P+yuf S^ϦVXA MOHfesKm"Ktb>3mpY{G2. IW_}.\J].:t`T*Uîiٲm>}b UTӧOBy[QpYgǦ@E}_;ʼ%鎩ZȨK z v޲xbU8T?LڵSSߠA-ĺt8AǨ;mRW/wF?rMSE?.Pˑ wu3ˬY]zuqnC݀\u?](ϛ7/ :uj|^owxR7^n[ufs>'3uHeԨQL({q# /믿>m+ux7JjvIuoWK=ӛPa󰿕0ߧ3w.~ՕZRe]a?IuL%}Μ9%$Kdl(:5u #sh?QX׾nɶϿ}ZꜮzjBK^ݨz5]7f(j"Kξ~ǽB ,Qb.(I,)׉,SpGnLB馛̭jʁh%^J %Q֡X)V}Wa{*J;6 -OheE(Z:j9/-iӦ6 ,\sK̤It}W]uU,oQw{8>Q2w}1~i?qېN }V:xZ(3 %~O+o>.tNut_]ا+3t%\vɒTFImSq8z̓xenϺQZE΃m{ {N~y$~oM@g]Q#ɤ;MdF@ ƍg{+ʈr_i%'O7DxI[ nELuxe٧1cڴick2%ZjeJ¹$)xJ\-hXySlzPjmAo9RjYuc<ͰDYN$n%`t$(_t_e+/a١ܺ2wU9UrW#߱<.j ]I-=Tt;g/gmJ~8*ދ/(Tz?L2Q?# .ԽI߇ZJHVm2އCna]X뱄@ߡKdE\ӭ3h wO]l4Yv-5^ҽ}J{紐>ht]o72٦ Q(:G7ۯVƳ%-L0TWBX]·lW.J0{H({l+q`ԱPdfrg]}̕t)^>%Ե߽=(AU-SKrr95kr*QoP׬KfDk JQ;{wis]cJ %aס;odn}/ĕG1^;l|t4]&ׯoh$ *jd>#ۊL.Y&- 6'@E.5.Ptq4=!I4E%}yYU2ya1]1.Dw].~FjqJ:j1?o+ʶGiIᥖLjѡrʻmAT-R}OwDZjŘjq߭L~ݽ޴JodMAaIwo_-H#GöJ}Ȋ9NZk4\3ٮ(Ǒ0|mD],](UayA&?"_ bmS^={B ~w[3d츘vUlz`"KO'<7ޟa%u"K'f5WCwZ#+")ԝKj|u9=Y%aq7'<)}%VS%ָ^t(^{=Y"K:ŤZ)4O"4(њJmo~?XtC]zɦ8 )Qet݅ .nߊQw#orO?;sMΠ}2h JdyscŽZ4k,ᷕL,HoD&uJ50zxv4 =0o*wRt'Օ-r s~1,O?s^DUt8wY2K&zDxÚ5Pds"+( 3+YJdM=l0fXqVV xBUxja~R7 /ЎԂGtRrCʒ, Y><*WB#jpZT^w-d4UT/Dku̽2ZᄆF|Jk?Z=Cv`v8,}W\qE{mϯn6uq]uƭ+YH]4.' nO7~~}>P"qq1iْ/Oe b_kIoWN.&* ɬSF PDN gؖY*&kvҔ*;2s]VZғ]n gO=RJrṋ*+Cîû.vdU{u/O*UT9TާEId*dXeNg)D*3½'ja Uca}jޯdJd)i@YoaYP;)tBH|mQRFaY֯1M k%p\k0.ݶtҼp( ]Dh[ԝ;ť{YQ-:JZZW ɓ'ۋqn5.z8߈~Z.gբA%aŨZzj׮m/*0ՠa+!̾Q~S_|~+aϠe_ :NZx!֧jvldoTDtKJ樥O0(c`ةzɪ۲RKzꆪ|.^ktnwt}\mi̯ۊDʍ?dVXN3L-͓c?4e0Fqi(V" @nKו I ܤH"+uZk*-q^i~oJ2Iٟ Ų Lʕ{a.3eʔ .LeyfW_Ž'Y[M:n )~]w#8VI%2M:ub][{ꕴ0dRnnz~-Se{1~n C>}\CIP"Ks=k׮VΝm %(̝;VZd<7ߴdI0dRۿ m>K J\ܻhv\[*6=EVi]0ےYySt: heΜ9%_}W kN䷛ov+p&N5w=IIMO oXq[FT\U2UԠMLr`JVTɾ%z'N^ Kf)0U:{2VVGN޼ysǝfϞm[_9nffΜYۇ*/]vywɓmeF<Ќ;7;@Z?ڕW^i}$ 3+YJdM=l0fXqVRPkzTRŞt[ǯ͛>eۊ0zնIaZyi,VUTaoFe,%d$%ٴZ wPM}.ZQGet~a ̤I:|ɦSNi12Q]f~g>`c-[ͣJʕ{a.3eʔՌ3b LbΞkKd9g϶Fi։ov33gΌ\.4Uy̻k&OlOn+3xfرe('S~ӯ_RMR% '`|ǵT( \б304h~^mڴ,ܕ+WbѢE׆n;ߵj2?xrW^yygnk&Hd@jΣQW =zt͛!uP tӕj`Z3)GgS+ '$9%6%~g͛7N;<#tR:^H:O֭<{لf9ŋ;8%uV]Ӕ:V뙺 r)S*Ul+Y7ew'7]{L Ne˖9cHӶKEXaqݱ Lru~ꫯ^Ob~~jաCۅ%*}~V^j)h$ N1N [%bkv?i%t[ #8VI%2m"uիW2,IAn&s뭷L5bEu5טK.Ď5|w" aks^-DSbw82zޓb<7ߴɒNaɤ\?AI&),,eE/{Jc"Q$ 2+'YV/-}uͺdVNdYj@X:u8MG-&߫.2mtɒ%6%(«^zn>j_s\TnW҉t]YQv2YFr갼{4hP}ĉ/bѩowzMFx*uBc"_ Ny6XCt 9s=gN?lj|uQ?;D}$ dX]nܸqpVSPE*5LUoAѱe1{񧆻d6lYb8t TN%o-:ھ֙7o/1q]wEb߯0e(ᢣFQ .q3J0Grlb/t۶mkź>D*KRFnO74Ջ/KʛoۀСC죏>0qrc$Y&g@\jy^{Ӵqv"36m=.tsR >3^gAR9>z|vJ~RzLӟlV nGPw)~aɎd0evM!:R0KY6$g#ބNEzZR'9{']]dAZ>4voUN.l\g{^< u2r=tGYe=#]vA٠hxe55 |gWuE@$ "#K# gtgw̙1ǐzh.}ꩧt:d]DfGVl$hh3Y0F=Ct qT/Avlu7%\BBp Ov'-.ôkR= d9v5/ ŌKONH7;L;i}3jҨ`YJO,=/ޟat KR֝rdQ`WPI2%V#GC0jhh^@EPWոwq_NwErǔh!vkH2EШFp9=5 +ǩmAD\i2cJ Y'7)eԋ%h?;[@^ژ,+L ?En).MVo-uߍH{ |ikٲe8o9w]yHJS K$5j fiY|YGߦ+YI isQ?)ܤ꒯j h`/EM֮rDSoXwڣo@zX%{:?zΤTA"3KCLUt]8% >鎌;G;J/=EQz Km#IatG7Y K խPm)R Id>wiQnTMꅥ "5ZE2e1\rI6(x#5uBgy^d m֭5O /Ж?p*t'[ xl_w] KtHzO]{ؤ[Ku=sN5%5T\2t>0~# pT z~E9}E=':.}8Be*`w\%ֱ2(6 :3Y}'o)ޱ}sQRP]@%r[;yK%a~ɾKIԮ I:u"O,M,QGu޻>' [Fz<:!1!w7ar->2,3{Ɣ۷`VX*ژSGY"l $Q4:vtC@CGez:<СCF>T Ƨ{+;wK/}ݑy@u]I՛[[0}#w} U;=쳙%R;w_~ϙ36JLPc>}ey{󉺙' S0Bs)؞M^__#G gWw{9AǣIj*S-C b7x#.]AT>t fʥQS =zYz:a5_bw?0l f@ˑ%h8FAfرQiYݱqkz0xҝk߾v&A/%WwޱñƏS3^ x8Bv1wa|AA& q۠ nۆxt矣\Z80{>R dR> SOjbvX =6<:*a{zR!D ?/ M{en`Aٳ0\ d߾jrT4:ݷ/rc܀40DPQc|j H-7ܱ=:Zv_M fXX{Rl^xbʎ͛7+ѢExgipus_w읞eYg֬Yv~ L׮]cuR-wӦM6s9s=gv̀E]d=Ps5ט9s$W dviO?5k׮L[nMX^uksqǙ~|7fȐ!c5}[fu)N:[oEI щ3dxaF!b4h`C=dT͚53˗/7>~믷4{5rK,YC)MO qgF8$[>} *|}[fu)7ȟ'{˷~kT^Ǐ dGySnݺJ;W_cFAv-{=Ѝt N:)soEA_ތzO =(@Uk@֒lϫxG=.UYIp fʥQS =zYz:a5_bw?0l f@ڥIr( ʖTY˥;#GڡTJ?vX6|F~ ]Wftu֭[g*T`GJn!^k}W&, H-7ܱ=:Zv_M fXX{R駟L&MYge;0SJӵkE<Ќ?>f];c^/Bpy7Oݺu#eөP6ol . bWf٦%V dm۶nf3erJӽ{ws'W_}.* *ؠW;rʙs9۷/jyuG< kڵQq@ >.{n/, mСe*.d{G˫{1`Yƍ d &ػi~S]y䑦GN0+V479c\wEwex6PZreT@5}R7l`x {#0wqJwݦMsq͚5mQ/Iֱ׮]W~йꭷ2g}R]V-7Do׮}Ϛ_Z53bĈ|yKN.]_l'< 棏>/3_|ݏ+nsU֭iȑv=9pkQKk\ ܖexb=j(qY2Z> d#KtDwMzSi| ujԨaz꩘T בM6ٻ73g ;ԫWyS $k@$ d[Aڵ 44mԯ_ L` s~1$||ݑ :7_x/Ivǩk\`ex.H*y: fʥQS =zYz:a5_bw?0l f@ˑh8FAfرQiYݱqkz0xҝk߾n&AfPl7yLԨRSK*߹z!j;vHSdi_PIC6hn?D,we~e7׀9uTY f)7iٹ#Z'oآl:.=kyjrܨZzu'\y6Ҩ^M.nRYZFeƓO>i~Y%G]0p=aFR d)7V꿻2C^ysM7ehR Բ֭WTYc`oٲeQ$ +!:N?vջK|B y۷o2:2$< ڵM\.|:(wSVyD A ?`UbUruwޕ u9e˖r"eMʣ wKWJdys^zw;zUKL8>9駟|” c@l0FA,g׋L^mL#}.?1 (" 5ɣ (YqƦf͚6i8z5hРw W@Bzb*Gkh_ӦM  S^Ϧ^XA, fesKJU KwK4pȐ!;ud "ԩSm6t2Ao[dãaU=cQqJz]|ő7md˷z+ZVLZmYd6mژs=6Nk֬i{ozGyڵP7:oX8f|Mvڙ+ժU3#F{ϞC 80f;]t1+W6~=&w<Üp v79c\O| p}# G˜qf -!(8ΣFè fg:t|5h盇zȖ̓>hk d}WRH6>[yܹ\zHw%}W%޲Y3=XLŦug;=쳙+='0lc׮]fvzSNG/F#uu*-~*_ѣGۤߺqK&%GQK}z+7rv{YdRw{]2;ЍO+CO1Zl-GO&{QsC%{W+%r ٞY*fROECzy{!FwNţD4K. \gϞW\޲KGһ=]Y0ۣ2X";7ڢE SBS|ys 7>,g϶2 mU|5PK9HyԀRCTXd~j;?WܦVh;Z^^lTYa ===File /home/joshua/Downloads/gnucodeDNS.png=============== PNG  JfXF#.oY+V0y'Ju= 3f0;C:袋. s=3hҤIʲ,3i$ν˜|ɦSNi12Q]f~g>`c-[SPP`*Wlcs)SV gjM̛$e"￷'Yf ƍں6ol^}UsʈZ$`Zli 3{PF[Rqr"kUϣޠYʻDZζuSzuT uaǠPrU.$* G]5v[0dR>%ûJU<0m LFҥKl aQ#US L&j /b4^uUWf͚%- q.'/ r%=~%@W^m_mҝ?p; 9$)e]%gilIW2w;+Ǜ5Z6QW}ɬ;& W(͍ɻD?{l[SEBtm̙3# UBTts/;^8>%VT |y;̓O>WlAEAoB?,E_m?>UntĊ"B J y2K/:+Uߋ ` jMy^7Jb7S7%-q: ]qۗXE%ԺNɭl꼨RI~sJu.P+yuf S^ϦVXA MOHfesKm"Ktb>3mpY{G2. IW_}.\J].:t`T*Uîiٲm>}b UTӧOBy[QpYgǦ@E}_;ʼ%鎩ZȨK z v޲xbU8T?LڵSSߠA-ĺt8AǨ;mRW/wF?rMSE?.Pˑ wu3ˬY]zuqnC݀\u?](ϛ7/ :uj|^owxR7^n[ufs>'3uHeԨQL({q# /믿>m+ux7JjvIuoWK=ӛPa󰿕0ߧ3w.~ՕZRe]a?IuL%}Μ9%$Kdl(:5u #sh?QX׾nɶϿ}ZꜮzjBK^ݨz5]7f(j"Kξ~ǽB ,Qb.(I,)׉,SpGnLB馛̭jʁh%^J %Q֡X)V}Wa{*J;6 -OheE(Z:j9/-iӦ6 ,\sK̤It}W]uU,oQw{8>Q2w}1~i?qېN }V:xZ(3 %~O+o>.tNut_]ا+3t%\vɒTFImSq8z̓xenϺQZE΃m{ {N~y$~oM@g]Q#ɤ;MdF@ ƍg{+ʈr_i%'O7DxI[ nELuxe٧1cڴick2%ZjeJ¹$)xJ\-hXySlzPjmAo9RjYuc<ͰDYN$n%`t$(_t_e+/a١ܺ2wU9UrW#߱<.j ]I-=Tt;g/gmJ~8*ދ/(Tz?L2Q?# .ԽI߇ZJHVm2އCna]X뱄@ߡKdE\ӭ3h wO]l4Yv-5^ҽ}J{紐>ht]o72٦ Q(:G7ۯVƳ%-L0TWBX]·lW.J0{H({l+q`ԱPdfrg]}̕t)^>%Ե߽=(AU-SKrr95kr*QoP׬KfDk JQ;{wis]cJ %aס;odn}/ĕG1^;l|t4]&ׯoh$ *jd>#ۊL.Y&- 6'@E.5.Ptq4=!I4E%}yYU2ya1]1.Dw].~FjqJ:j1?o+ʶGiIᥖLjѡrʻmAT-R}OwDZjŘjq߭L~ݽ޴JodMAaIwo_-H#GöJ}Ȋ9NZk4\3ٮ(Ǒ0|mD],](UayA&?"_ bmS^={B ~w[3d츘vUlz`"KO'<7ޟa%u"K'f5WCwZ#+")ԝKj|u9=Y%aq7'<)}%VS%ָ^t(^{=Y"K:ŤZ)4O"4(њJmo~?XtC]zɦ8 )Qet݅ .nߊQw#orO?;sMΠ}2h JdyscŽZ4k,ᷕL,HoD&uJ50zxv4 =0o*wRt'Օ-r s~1,O?s^DUt8wY2K&zDxÚ5Pds"+( 3+YJdM=l0fXqVV xBUxja~R7 /ЎԂGtRrCʒ, Y><*WB#jpZT^w-d4UT/Dku̽2ZᄆF|Jk?Z=Cv`v8,}W\qE{mϯn6uq]uƭ+YH]4.' nO7~~}>P"qq1iْ/Oe b_kIoWN.&* ɬSF PDN gؖY*&kvҔ*;2s]VZғ]n gO=RJrṋ*+Cîû.vdU{u/O*UT9TާEId*dXeNg)D*3½'ja Uca}jޯdJd)i@YoaYP;)tBH|mQRFaY֯1M k%p\k0.ݶtҼp( ]Dh[ԝ;ť{YQ-:JZZW ɓ'ۋqn5.z8߈~Z.gբA%aŨZzj׮m/*0ՠa+!̾Q~S_|~+aϠe_ :NZx!֧jvldoTDtKJ樥O0(c`ةzɪ۲RKzꆪ|.^ktnwt}\mi̯ۊDʍ?dVXN3L-͓c?4e0Fqi(V" @nKו I ܤH"+uZk*-q^i~oJ2Iٟ Ų Lʕ{a.3eʔ .LeyfW_Ž'Y[M:n )~]w#8VI%2M:ub][{ꕴ0dRnnz~-Se{1~n C>}\CIP"Ks=k׮VΝm %(̝;VZd<7ߴdI0dRۿ m>K J\ܻhv\[*6=EVi]0ےYySt: heΜ9%_}W kN䷛ov+p&N5w=IIMO oXq[FT\U2UԠMLr`JVTɾ%z'N^ Kf)0U:{2VVGN޼ysǝfϞm[_9nffΜYۇ*/]vywɓmeF<Ќ;7;@Z?ڕW^i}$ 3+YJdM=l0fXqVRPkzTRŞt[ǯ͛>eۊ0zնIaZyi,VUTaoFe,%d$%ٴZ wPM}.ZQGet~a ̤I:|ɦSNi12Q]f~g>`c-[ͣJʕ{a.3eʔՌ3b LbΞkKd9g϶Fi։ov33gΌ\.4Uy̻k&OlOn+3xfرe('S~ӯ_RMR% '`|ǵT( \б304h~^mڴ,ܕ+WbѢE׆n;ߵj2?xrW^yygnk&Hd@jΣQW =zt͛!uP tӕj`Z3)GgS+ '$9%6%~g͛7N;<#tR:^H:O֭<{لf9ŋ;8%uV]Ӕ:V뙺 r)S*Ul+Y7ew'7]{L Ne˖9cHӶKEXaqݱ Lru~ꫯ^Ob~~jաCۅ%*}~V^j)h$ N1N [%bkv?i%t[ #8VI%2m"uիW2,IAn&s뭷L5bEu5טK.Ď5|w" aks^-DSbw82zޓb<7ߴɒNaɤ\?AI&),,eE/{Jc"Q$ 2+'YV/-}uͺdVNdYj@X:u8MG-&߫.2mtɒ%6%(«^zn>j_s\TnW҉t]YQv2YFr갼{4hP}ĉ/bѩowzMFx*uBc"_ Ny6XCt 9s=gN?lj|uQ?;D}$ dX]nܸqpVSPE*5LUoAѱe1{񧆻d6lYb8t TN%o-:ھ֙7o/1q]wEb߯0e(ᢣFQ .q3J0Grlb/t۶mkź>D*KRFnO74Ջ/KʛoۀСC죏>0qrc$Y&g@\jy^{Ӵqv"36m=.tsR >3^gAR9>z|vJ~RzLӟlV nGPw)~aɎd0evM!:R0KY6$g#ބNEzZR'9{']]dAZ>4voUN.l\g{^< u2r=tGYe=#]vA٠hxe55 |gWuE@$ "#K# gtgw̙1ǐzh.}ꩧt:d]DfGVl$hh3Y0F=Ct qT/Avlu7%\BBp Ov'-.ôkR= d9v5/ ŌKONH7;L;i}3jҨ`YJO,=/ޟat KR֝rdQ`WPI2%V#GC0jhh^@EPWոwq_NwErǔh!vkH2EШFp9=5 +ǩmAD\i2cJ Y'7)eԋ%h?;[@^ژ,+L ?En).MVo-uߍH{ |ikٲe8o9w]yHJS K$5j fiY|YGߦ+YI isQ?)ܤ꒯j h`/EM֮rDSoXwڣo@zX%{:?zΤTA"3KCLUt]8% >鎌;G;J/=EQz Km#IatG7Y K խPm)R Id>wiQnTMꅥ "5ZE2e1\rI6(x#5uBgy^d m֭5O /Ж?p*t'[ xl_w] KtHzO]{ؤ[Ku=sN5%5T\2t>0~# pT z~E9}E=':.}8Be*`w\%ֱ2(6 :3Y}'o)ޱ}sQRP]@%r[;yK%a~ɾKIԮ I:u"O,M,QGu޻>' [Fz<:!1!w7ar->2,3{Ɣ۷`VX*ژSGY"l $Q4:vtC@CGez:<СCF>T Ƨ{+;wK/}ݑy@u]I՛[[0}#w} U;=쳙%R;w_~ϙ36JLPc>}ey{󉺙' S0Bs)؞M^__#G gWw{9AǣIj*S-C b7x#.]AT>t fʥQS =zYz:a5_bw?0l f@ˑ%h8FAfرQiYݱqkz0xҝk߾v&A/%WwޱñƏS3^ x8Bv1wa|AA& q۠ nۆxt矣\Z80{>R dR> SOjbvX =6<:*a{zR!D ?/ M{en`Aٳ0\ d߾jrT4:ݷ/rc܀40DPQc|j H-7ܱ=:Zv_M fXX{Rl^xbʎ͛7+ѢExgipus_w읞eYg֬Yv~ L׮]cuR-wӦM6s9s=gv̀E]d=Ps5ט9s$W dviO?5k׮L[nMX^uksqǙ~|7fȐ!c5}[fu)N:[oEI щ3dxaF!b4h`C=dT͚53˗/7>~믷4{5rK,YC)MO qgF8$[>} *|}[fu)7ȟ'{˷~kT^Ǐ dGySnݺJ;W_cFAv-{=Ѝt N:)soEA_ތzO =(@Uk@֒lϫxG=.UYIp fʥQS =zYz:a5_bw?0l f@ڥIr( ʖTY˥;#GڡTJ?vX6|F~ ]Wftu֭[g*T`GJn!^k}W&, H-7ܱ=:Zv_M fXX{R駟L&MYge;0SJӵkE<Ќ?>f];c^/Bpy7Oݺu#eөP6ol . bWf٦%V dm۶nf3erJӽ{ws'W_}.* *ؠW;rʙs9۷/jyuG< kڵQq@ >.{n/, mСe*.d{G˫{1`Yƍ d &ػi~S]y䑦GN0+V479c\wEwex6PZreT@5}R7l`x {#0wqJwݦMsq͚5mQ/Iֱ׮]W~йꭷ2g}R]V-7Do׮}Ϛ_Z53bĈ|yKN.]_l'< 棏>/3_|ݏ+nsU֭iȑv=9pkQKk\ ܖexb=j(qY2Z> d#KtDwMzSi| ujԨaz꩘T בM6ٻ73g ;ԫWyS $k@$ d[Aڵ 44mԯ_ L` s~1$||ݑ :7_x/Ivǩk\`ex.H*y: fʥQS =zYz:a5_bw?0l f@ˑh8FAfرQiYݱqkz0xҝk߾n&AfPl7yLԨRSK*߹z!j;vHSdi_PIC6hn?D,we~e7׀9uTY f)7iٹ#Z'oآl:.=kyjrܨZzu'\y6Ҩ^M.nRYZFeƓO>i~Y%G]0p=aFR d)7V꿻2C^ysM7ehR Բ֭WTYc`oٲeQ$ +!:N?vջK|B y۷o2:2$< ڵM\.|:(wSVyD A ?`UbUruwޕ u9e˖r"eMʣ wKWJdys^zw;zUKL8>9駟|” c@l0FA,g׋L^mL#}.?1 (" 5ɣ (YqƦf͚6i8z5hРw W@Bzb*Gkh_ӦM  S^Ϧ^XA, fesKJU KwK4pȐ!;ud "ԩSm6t2Ao[dãaU=cQqJz]|ő7md˷z+ZVLZmYd6mژs=6Nk֬i{ozGyڵP7:oX8f|Mvڙ+ժU3#F{ϞC 80f;]t1+W6~=&w<Üp v79c\O| p}# G˜qf -!(8ΣFè fg:t|5h盇zȖ̓>hk d}WRH6>[yܹ\zHw%}W%޲Y3=XLŦug;=쳙+='0lc׮]fvzSNG/F#uu*-~*_ѣGۤߺqK&%GQK}z+7rv{YdRw{]2;ЍO+CO1Zl-GO&{QsC%{W+%r ٞY*fROECzy{!FwNţD4K. \gϞW\޲KGһ=]Y0ۣ2X";7ڢE SBS|ys 7>,g϶2 mU|5PK9HyԀRCTXd~j;?WܦVh;Z^^lTYa