From 8fadbd63ca8fd2c1d9175d6bb4346e212d761ce9 Mon Sep 17 00:00:00 2001 From: Jon Fincher Date: Mon, 6 Apr 2026 08:54:58 -0500 Subject: [PATCH 1/2] Support code checkin --- python-email/README.md | 1 + python-email/address-email.py | 23 +++ python-email/attachment-email.py | 28 +++ python-email/contacts.csv | 4 + python-email/html-email.py | 37 ++++ python-email/multiple_recipients.py | 22 +++ python-email/plain-text-email.py | 17 ++ python-email/pyproject.toml | 17 ++ python-email/reply-to-email.py | 19 ++ python-email/requirements.txt | 10 + python-email/send_msg.py | 23 +++ python-email/smiley-small.jpg | Bin 0 -> 5470 bytes python-email/smiley.jpg | Bin 0 -> 95144 bytes python-email/uv.lock | 275 ++++++++++++++++++++++++++++ 14 files changed, 476 insertions(+) create mode 100644 python-email/README.md create mode 100644 python-email/address-email.py create mode 100644 python-email/attachment-email.py create mode 100644 python-email/contacts.csv create mode 100644 python-email/html-email.py create mode 100644 python-email/multiple_recipients.py create mode 100644 python-email/plain-text-email.py create mode 100644 python-email/pyproject.toml create mode 100644 python-email/reply-to-email.py create mode 100644 python-email/requirements.txt create mode 100644 python-email/send_msg.py create mode 100644 python-email/smiley-small.jpg create mode 100644 python-email/smiley.jpg create mode 100644 python-email/uv.lock diff --git a/python-email/README.md b/python-email/README.md new file mode 100644 index 0000000000..96bad5e3f8 --- /dev/null +++ b/python-email/README.md @@ -0,0 +1 @@ +Source files supporting [Sending Emails with Python](https://realpython.com/python-send-email/) article on [Real Python](https://realpython.com) diff --git a/python-email/address-email.py b/python-email/address-email.py new file mode 100644 index 0000000000..920de080ca --- /dev/null +++ b/python-email/address-email.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +import csv + +from send_msg import send +from email.message import EmailMessage +from email.headerregistry import Address + +sender_email = "my@gmail.com" +sender = Address(display_name="Me", addr_spec=sender_email) + +with open("contacts.csv") as file: + reader = csv.reader(file) + next(reader) # Skip header row + for name, email, grade in reader: + recipient = Address(display_name=name, addr_spec=email) + msg = EmailMessage() + msg["to"] = recipient + msg["from"] = sender + msg["Subject"] = "Your grade" + msg.set_content(f"Congratulations, {name}, you got a {grade}.") + + send(msg, sender_email) diff --git a/python-email/attachment-email.py b/python-email/attachment-email.py new file mode 100644 index 0000000000..25e3fc0d3c --- /dev/null +++ b/python-email/attachment-email.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +from send_msg import send +from email.message import EmailMessage +from os.path import basename + +sender_email = "my@gmail.com" +receiver_email = "your@gmail.com" + +# Build Email Message +msg = EmailMessage() +msg["to"] = receiver_email +msg["from"] = sender_email +msg["subject"] = "Attachment Test Message" + +text = "Please find a JPG attached." +msg.add_alternative(text, subtype="plain") + +attachment_filename = "smiley-small.jpg" +with open("smiley-small.jpg", "rb") as attachment: + attachment_data = attachment.read() + attachment_file = basename(attachment_filename) + msg.add_attachment( + attachment_data, maintype="image", subtype="jpeg", filename=attachment_file + ) + +# Send message +send(msg, sender_email) diff --git a/python-email/contacts.csv b/python-email/contacts.csv new file mode 100644 index 0000000000..120d90e506 --- /dev/null +++ b/python-email/contacts.csv @@ -0,0 +1,4 @@ +name,email,grade +Ron Obvious,my+obvious@gmail.com,B+ +Killer Rabbit,my+rabbit@gmail.com,A +Brian,my+brian@gmail.com,C diff --git a/python-email/html-email.py b/python-email/html-email.py new file mode 100644 index 0000000000..b59c5707b6 --- /dev/null +++ b/python-email/html-email.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +from send_msg import send +from email.message import EmailMessage + +sender_email = "my@gmail.com" +receiver_email = "your@gmail.com" + +# Build Email Message +msg = EmailMessage() +msg["to"] = receiver_email +msg["from"] = sender_email +msg["subject"] = "HTML Test Message" + +text = """\ +Hi, +How are you? +Real Python has many great tutorials: +www.realpython.com""" + +html = """\ + + +

Hi,
+ How are you?
+ Real Python + has many great tutorials. +

+ + +""" + +msg.set_content(text) +msg.add_alternative(html, subtype="html") + +# Send message +send(msg, sender_email) diff --git a/python-email/multiple_recipients.py b/python-email/multiple_recipients.py new file mode 100644 index 0000000000..bce520e3ae --- /dev/null +++ b/python-email/multiple_recipients.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +from send_msg import send +from email.message import EmailMessage + +sender_email = "my@gmail.com" +receiver_email_1 = "your@gmail.com" +receiver_email_2 = "your_other@gmail.com" +cc_receiver_email = "cc-you@gmail.com" +bcc_receiver_email = "bcc-you@gmail.com" + +# Build Email Message +msg = EmailMessage() +msg["to"] = [receiver_email_1, receiver_email_2] +msg["cc"] = cc_receiver_email +msg["bcc"] = bcc_receiver_email +msg["from"] = sender_email +msg["subject"] = "Test Message" +msg.set_content("This is a test message") + +# Send message +send(msg, sender_email) diff --git a/python-email/plain-text-email.py b/python-email/plain-text-email.py new file mode 100644 index 0000000000..f2a7267a65 --- /dev/null +++ b/python-email/plain-text-email.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +from send_msg import send +from email.message import EmailMessage + +sender_email = "my@gmail.com" +receiver_email = "your@gmail.com" + +# Build Email Message +msg = EmailMessage() +msg["to"] = receiver_email +msg["from"] = sender_email +msg["subject"] = "Test Message" +msg.set_content("This is a test message") + +# Send message +send(msg, sender_email) diff --git a/python-email/pyproject.toml b/python-email/pyproject.toml new file mode 100644 index 0000000000..3ba90e2432 --- /dev/null +++ b/python-email/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "python-email" +version = "0.1.0" +description = "Source files supporting 'Sending Emails with Python' article on RealPython" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "aiosmtpd>=1.4.6", + "ruff>=0.15.9", +] + +[dependency-groups] +dev = [ + "black>=26.3.1", + "flake8>=7.3.0", + "rope>=1.14.0", +] diff --git a/python-email/reply-to-email.py b/python-email/reply-to-email.py new file mode 100644 index 0000000000..72e5677b66 --- /dev/null +++ b/python-email/reply-to-email.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 + +from send_msg import send +from email.message import EmailMessage + +sender_email = "my@gmail.com" +reply_email = "my.different@gmail.com" +receiver_email = "your@gmail.com" + +# Build Email Message +msg = EmailMessage() +msg["to"] = receiver_email +msg["from"] = sender_email +msg["reply-to"] = reply_email +msg["subject"] = "Reply Please" +msg.set_content("Replies go to a different mailbox.") + +# Send message +send(msg, sender_email) diff --git a/python-email/requirements.txt b/python-email/requirements.txt new file mode 100644 index 0000000000..e6ba47e071 --- /dev/null +++ b/python-email/requirements.txt @@ -0,0 +1,10 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile pyproject.toml -o requirements.txt +aiosmtpd==1.4.6 + # via python-email (pyproject.toml) +atpublic==7.0.0 + # via aiosmtpd +attrs==26.1.0 + # via aiosmtpd +ruff==0.15.9 + # via python-email (pyproject.toml) diff --git a/python-email/send_msg.py b/python-email/send_msg.py new file mode 100644 index 0000000000..e0f07c99ae --- /dev/null +++ b/python-email/send_msg.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +import smtplib +import ssl +from getpass import getpass + + +def send(msg, sender_email, debug=True): + if debug: + port = 8025 + smtp_server = "localhost" + with smtplib.SMTP(smtp_server, port) as server: + server.send_message(msg) + + else: + port = 465 + smtp_server = "smtp.gmail.com" + password = getpass("Type your password and press enter: ") + + context = ssl.create_default_context() + with smtplib.SMTP_SSL(smtp_server, port, context=context) as server: + server.login(sender_email, password) + server.send_message(msg) diff --git a/python-email/smiley-small.jpg b/python-email/smiley-small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3954d7d04d430754a80bf2f2a5267f79c07397b GIT binary patch literal 5470 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 Tt5Tp{UI5}4{m5ZjV$<#a3mw&I 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%0DIY7A++<=4{$t_yA%)b*GpuZS*5c0h-eYvy z_o35%f^T+aablT!nGHL+TXJ^nXJOa9VT&sG(vyxY{vu!QulmCrf$82tz9s5~W4A;gA zxIQUxTXJ@Sz+#%Cj}*?vbF{+EbvmJw%Fbk~_BYo)b~`*fD<{lFD@$@G(umzL(bH+_ z$#s+cJrW%!KAnz)cRtU>cpr@DzNdmODncXN`{}mCULV=f!?TkygF(&Xl>1Z2iCz*X zUSi*5S~F`DENj!xpJb*KPUf?mAG7RVs7Z1X1m4iP#5?=5qCGyz&6E4wGEwE6HF%X~ zm;Wp*o;vwQt0&Qjj-Q>tHR!g5ZRwr&CMN$a`zJI7^HO~`jv+s^&Xdm0eUFLRB``fL zuY0GEt7YjbxX#W8oFc)IeB!y-9WIXH6D>O+!;q{P@_7oyLO0;DN97dx)ySTchkelu}TK^k%A|(Y) z6n_Dme}}V%vRsBV)=7SnT>v*s)PEaW%lgkJ(VskUQ5dcAbyG-?$M`4l$ij&JNnP6R z?v|)tjoR0chG}MrhOm}QQkqIb>m~<2%{~3(&eiQ5#hgOMRa0Gq6fZ!eK%BSpyRtaT z$cb|y1D|c;6KH)tiF088^+xh*bxp^KbJ55R^;1Z=M>^@#T;BUVJ%dKb#Y4Lr-KUVV z^a2thAk|Ln3A#Mdn$2F?=$ZA$!%s`Re^T)&9rRu|K{H~$?6$ZbpobuREkTtN%CBLo zuzaY;2NT%)?5!H=lnHy9N(bqE#8+-TmJ*|^#q?G?tj(yhZ#+R1aY_EyZesl!pxE2NtSk%u;YuHS_*w zEx{WpH{64cvafZ|UC+ENO3+s9?oZUn53qiBfF6rySUh5Bf1(C_T6&@UV(;il?cv`( zjsBNUTvV4V0&M>9lAOEX>w!Xb)v?$&<#T8GjuhUAev8~jSW(9DbLPg}dwtT~Wf1p- zG-sCYNf1zK@v_Y=J9KL9YETnVGET^A#rM=VcOJTVf4zq)!)VXkSrqPN?PISQS8I=( zJI{BdsP#WCHOiSn^oQrJ2fG{A{za_S;u@sysB!KrzY8R~`yBO->YlqPWVpXAD`8-q ztv7cy-;p8~)e{r)-13GyY3|JGd&g*RBmy40;pfit9Vx1|s8a07;(0cAJ(!-dO7;E< zhJf04R5*7QUZ;s5lfJT3y>qvOFp|Ll^os2Ejx={Y-%i1p(}&j?zKcCP{1158t2aQ9Vt8>E+fPmoMry2xij;geG^kt9~)YH`zxB)+{Hdm!Bln*P6Ulm zs!xzUPx|;gX%X^(v98@GE*JkX^52KVwewsx>RB$2%jYh;mYD1#%vv1q*GD6{cwE0m z*2`vz#zy?ySDs7Bqv{kvaTvLV$vlSvV-rGF~oj^mi*mbx6Xi&->ih z)uN9TaYAD9tz)qd1)i7kieN^jkn#x}Xkj9656@)dVtDvSyll-SyU)aYr&W6@Az(#KxvukNLh-;&i?Wb$#VuULsLkDy1-prg8Nmj@f}Q$B9DgI7C9yL z>*F;EOz+pP=Bxq|)Z}-MSmaD5H+RI%WaC;E`_Sk4HLe7YDMWZ76ExVK{Pq^uwd+5V zW9~awkQ4L3#Dcg}8h6`Hx0LdRvIvtdt)r12N^E7F6Ud)Jj!n}4ak~nfLE!E)NPGgj zyM8au;Vt)H!XuLHqozi;7dH$mWc zn0B>lbY0LmU9X;nh@ES2@-fD(aG65Zy&fVVh(S50Aa8hIOz{g`y8Az|QP_oJ#WXE; zwK(^VQ)oM9ygZ{uyo(3=Tipw|dTRnkB<^VNzQF$zTo@ia6!+8}trdh3DuLpBD#T2vT&dwf~xBfmiH5?}6sJ=^4;^O1?%c106)HA@r9A;q9PNhVmIx z$hK~c(feG(gT3RInG&TQ0%^>0FuG3T&mlPhHQhE%U?SN0XM8>#$SLXwc-n>nh>L$0^r8gXFVEc-zk6WrM_3k7z1X4J2`ed$0cXODTeu{Abaa0XGP2v4?vv~j;?eMKF#m=&9!Th`Lkv6wtG7r>TN5XGIjBp%SI)23 zyXG}Xqjt>FX1u@6>jGkEaC({cdXZ_KqN)qq7kyZZ>dHTZ>a#~N#WwYzM9+1(amc)5 z2zR`Yp}vfN0%pUiI+T-!kC$Bs1N#^vkW4<%uQ4>){qoEvzhgj3!nZ!F2%T7X1U3w4 zg(Vn@crG88PxYiQEO#Lz$@=suBnft5P~>FK+$^7OM>u#i=dm%e0LDZv`SuiII;^|l zrJCRu6@C)I+r@}(xdFyJaoqC5KvbCZnp9a|5sdVngmTOiRf%(xPFNo*bHShlAzX^*-2Z+o|OikSBpHdgPlf)wf zTx$xsUKDf;Hu}$k@vA}JfF3e24Yzulb zh^M5$Vdqx)@q^It2+oLVJ^#4oaiPbnP@pk*5`w)1Q&19ZWtu7M-7fUNrfBr`E4Dp5 zrCXy6UYX#^9Bf~2X>}wuMmzOtxG6J>=0J-xxZl($HKFj z-&hNv(cW097$p;ygbrjrN+McIbCu>BB-n2I;b|O_pd_BrCtk)Z9uG)l3#>*2jyPv2 zj_+j>i$-t;6PoYz;6@ zON37(-&Q$y3&9+z2;{3Pl38ugEwlFak2VKI5Rnbe>Ziw5Q$~FL$pHJlElm43Exae_ zf!F8?6GThsQF^N8Lz~8GckwAu2WrTE6l83xu|_q;(=DHsO5C&b=_!cg4Ig0Q;>x0meTuz( z-sx*ElZlf`6ik!k?2|`G2tRa2a8>*g{C40qf}uP%@!j%q<5{SOH@;1+`akp9`*cYo zSvR~7_ABb?A;wA93C2%*l*6tYJkL%&Wt>xMK-fv*z1H87)>xKWgtCQiTt|B(mc3P% zc%`18&7-a8Aa#jqQ%Okg*|E&#QN8^VX+u6?l8JGhoyN)W*c)S}!@LLE>yVROtoVVJ zDn@w4#KOd#G6rFKLXVC0c5c%|_+c>kut*9UY6var21ir_|Xgg@wD>DJ>7{G$KSA7Wo4;ahWxaWc6M=*D;~| z=QsKQ$-aseUa*A)Ja8FZ50~bcUbbbjEG>T2M#g?QLsl!NqtG$r_ID5`*J;5PyRz>+FISlR&wFC+W>Q1FPa? z{q29wIBkE26_q(!MrQnzedK*FS7Kfl>1H#6I`=g=uX z8R~Y!6#i9_{sf1EjCH>=%4(*NC#)TRF-!26mtMHbqseeYOdseg8;+b8&emGMgK!_5 zu6dC#B6QwQFBD1DqXx%!lSg|segtu9JUoA}oQvveR_5akr-Z!d*0_JjPAD!82-iyA zCjEqRSZ9;H?5@s2JM*0~2kXKN4~%%UioTdavQ$Ln!vnuPHhg%UmOq&NdCt0*C%WbA z40D#IH*QqArgLah#nsv+GSxQ}405;YiSPt23s@E)zvr!nJiT`~cK;jpLkv;sHDf9I(1|a99xW=jmwaXVVVy}8LQ2goH1F>&TB){pK0Ke<+u?K5L^8ZrBJ&yf(bhC_cnx;O&zlsF27Q>H) zTv^Ndm=0egwlGRJq2-C-f@_dfd&MvLY!f-|J&5^^`&?$MS44bi&JPWc*4uXaLF zc!+Fgp-b3M-5up+q03B{w|Iqu+~HO|+UtDePtrI0#x1$lK{0HLb5H-n()J2xc@@Ll zB^#9jbq*;hn7Lc&G|~2}R7bm4+bb!poWE1be}RbkuIq53;?5vyP3&cMZG#2@6o%JL zVC=YCs~!YG!^%-Mok_dXS&^-2P%exZ0|Y`OK_OqM?fNS#D%F<{%O4n`G_V9xRKqh7 zWNWtf4W>MK{AC*}Xn4SWv+V&T8R`#p#{RMaYXhJyx|^c&iU{K7s><-SroiWwqpTd` zqY_h_yq`39P@0P#=B3R0b|;YsYjPA9D^tb=Ha;u6;!(qUwo;}7<%~-Lb&SNHr}u8j zR97_fsJ7p%MYVZO;x|r8s4!g?Xww6oZ799|*I07Dy5%$T{Bn4K!-1i(`^gj{H)^@l zv#M$IVqvGh$oV*7JP4n0+)FTm+jd+Z!7Zj)CXExL!RG27dk2gjn0NaVX{^)%?1-Zf;ynR>ZyKX+7}?3dj|cQ~OWZ7yzG| zZd_I;9EW`KIx0jEQjA)i=}CJz-cNTSR{xYrs9kn7-R?-iNQEt-!m&G0A-yd(HAJP* z8jna{*H1|d)V4wgRGn)$R(FW^#dxd!sQ4B*IpJ+gcGmz)YuJpt!!mk##@^uD56F%fG2MiNU#q6m4uA zkD!uL33XRui&;edP)C(PuX2c-PQKhwi%Ho1c7sHgcf;8iKItm*Z%0=wtNY%buE|+@ z!s@5ejcsBf$&*&MUQumz8iCJLL<8NTBdU<36r(P6HGi}A5)4L5lHhQx&Nv5{j=46I znM?PnW377_YuU@PeeoM~YT?~pW@#aiaGtwQ>|1s+Z9*WONj5F-APFOU2=|6IPd3it zcjAJ2_55;%5s|^Z-sfGGHL*|-IBsL9CGHt+cd>UY7+lyea(Z}RvvDkX2QR0ry-}|*YMu-P$XkaT28{CTX@hf{0iQ7zjH8hCs zIOBRd=H8I^sz;;uez(R%MXz|xSq}T`*EsiZ{A@?d=o|TniP+kT^x#TDicR8~Lw1H> zfl(5XDGt1!>k_`!xuo#tmJ^8`Rc^qLm7`L!3!b@@l`&2UtV{Cba_Ww~i?tY5@9h_}@(9aIwQD@~ z9lb$*o-gCKlv+)wE*O}!h<(6_?PPb4l`3EMhYkfDfU%5HNTnogg417tana|4?h8 za&cYB6k^7{J5cse)A#LAN3_Q z)(lJ4Tz7BJ;6Hb6JIbA+g$^G#_q@~Ep-LbFhlgxjPVIod7SpN&W)UZ?Ig&w9(8d>@ z@<%}sj7_Gtw{(rl+8aDeJN$SCjsI}RT-tkdPqjnU(h}E#iuQK$@?;MQ3-6QfO2p*` zlf^j`Eh_qWphB{EF3_uNb?y)Kryis~7Q~YDIV8IN^!9`^QogQ#o(bB?ougjfDZQX%$^c&fe(G3c|)OZh%lityoWH`yvH zD7X$fhD(SSjP?J~O{O%oUYoF_4Q^FPlDQ9}-6K0I5E7D<6jC={Y)rqWbnR!YEA#L? zJUoIjdIsg$pt`OHR~sz<=OqzC$rLTpnYa`_K3~ZVHx0r#VD~8j`-fxjP@+R6?0mU_ zre8h7j|{Ma#!ZvG%k1x!?%$V}-n-AvB+ub{7I}mtv|S0`YOB(I@23(^m!BH`fW6yU z;M}dLc|Bz1KnUE@s}g~7!9WmEb?T+llVreN5C=#7fyONj z_IN|Y7fvT#U=o*oBobJhT)TcrvvnmZV-D4!EY7i{`Tq5XBR&Gp%Wk-z>lyJ}5fxP% za;-m z4pcO*yPssg*(R5edYEdvXPZGBwVz40Ni*z@7dC=VgJ~ z>G^VW=dgAZ(Ixp|4Q>waBn}K;Yj{`c6dtbH;58 ztpyeL&0GuG>lIwHUDfst`}{F-qU^C(=3*sE(kXa@f5|lk<9a7T?dBazq>U9p`xgpD zBsn0W@5v!x2gAd+p1z^p0&K+wEBzyWE+}6FYVJa9T?b48J4@~qSA_(-=-zRze!`H@ zt}N+y3JE42@QAFd4?{V}_b3$52AAYg>e7eWtA7F{pHOh5I0jTuTnqXQnYhv(+^W$@ zS5OM231F+RUvf>y&L$TutcnJAr41Fg3!RBWNT&g8s0F=%SsLXf$8LaVoslOSWZ)M(6hI$9<u8jkf0}0LC1x&v4cAybVJ~Sclh5j;9?4F!1G^ESRw+O+H8RWw!~|){ zP-&q!$&~d#49IDK7ZAM!k0tSQ>kA8KTWwz-uAfj5Aa~uMUs*q;#Y8E}x``;eE3vV& z*ywDl#>BHSm%>*aP4)E3!qR=emI9lrPmIsNe;*|y$Wg4#Uz*fP1;?coD4qi@Sg2XZ zsgALB<930!Z%}M^&0Vn6JzeVn@_)Vk<|CDa)M<%L>W9anz}}Gf8MMUVg?IAs1PI?+ zA9g=r8A{0EgrdM**Y#5!iUKg>!LUx2Ga_1yC!ICu4O%swhnEh?(6{$*W#Vw%nE zW!c-W%vAM_JBU8VE-N}MR$gkWyc8%}4w#zVsF&a@7pf}ElZ5_9d_X*?Sl zgk_MvM{ec}0Uv(v(H}acE-N~M2yINgFX!kOMG3g5dhc##+K`XOGxEXyEd`l-0n^fi z9~w7;E|A_B8MfU}>WrZjpBBlO8^tloGS&PQAk%~skeEi{{PV&c2jUxp>FqY@uOsj!sVou-sp zDwmjcsLHU21pbBZy-7EZ=buLs}B zWvT6k>A`X7b$c~K`J^#N5e!Nbw-90J^)mbf2ZJi03M*Je97MrJi~^nV!tF%sD;L}y z=T@mkHI02rg&DT)kuMJs_t~Lhs`b+={|Z_zNuf0fn!x9x&R3r}`3O!>FRacEQ*;Wr z*KVH%>N&&b%0#um;t)7e2q?Ht3f}0~3!SeA?go9y6d{fzhwv{z?yNTz-nrpO7*N@~EcID;h`GD8*Yf94H4BZLoSaLc8^OmIw^x4&pR^zd zny|kGD$v6m=I1szpXjf@WM|m^4lOQ-WS<6uI2?!=K@Kmk7k9XQGTJlT>PmFAh%%qY7$ z5hEe$MnLW9Qa16@{HLX`+w=s%`iHES#Nc@rZNvK~+&$)RP~mT!tyL5tvLOuzTY@Hx z>eVHz#&wfBx~kJmU=dEb{VaUn@if_REmOHGB31Z*L8<_$FB1GfXwBZkeo+xlVMny1 zVVd12q&~7$rjMCjv+vTNWq6h~ds`l)Mp$e8dF&Dl{S~S0{DRy=MzW)fC)2vEsyj{iPs@;xfy zXFQNa5%|kem*)qYRYl*hQIx6LTId%g^{AkY%nL8#<v+YA-HGJM!Ban~yB8Z)$$ zZZ_V`%a8@srQ|$|*G@scPeA+#9)=HDlY;>Exc45lfwNDRf*x-3Ah^;g+^R$|uUx9RbdNc;#NSlZVE2_Dv4b*949S}ojmU~=@ay3yhBb*bnNUEQ(E z2;X-w=UK+VTtgIXdB=V+(vO3stK$&)X0dZ;%1c+n|>z z6+L)#%;NIf5_q%NhHwQROcK-+SY%MVomnHI8Mb)+9?dnkF8K*k=1sbo z4NU^RJmEft@LCQ{`dAE=DW}o2{t&WB0r#`n`#KbFkc3~NYaQ07%tW09u25017vFK^+!8Zz|?=39fr7-kgXjOvdqWM^9 z$@2^4MSX&5-6TS4nG)g8oY+JH6*e*|3!JUI_ZrR!MvrK`mwG0z5IwseezC%l+T}=R zPFh}X{EZ!JdvBao76kviy`$n9Ov!^H2L5?FO%k=WWqAzz3EFsI)Bk#cyoVUr1vero zM3TgE8%W~gB}wZ+(7_`7z(f#9VH3>yggSmikB6kk1M1y}UjF~U|9cqVg5RjzAc$Zw zSRQWpkxKLzDdEB_!XiT4Jo9)3x%eax{|B%4oA6?hIQUgc^xR7f7MVgiu2ivOVP|j_ z3&SQ`Kcl)AT~EzWiG1Py&^^g*GS}&X`jLZo;@2}?2VHdjarcj=KOV1b5R=}OmM>}Krq^Q($|INSc zb#}!?rh#0ulNR>=^{yG(Tc0kvy{j(teWhsC z)^}do?SndwO4algQ%H6}-nY}XXD zG8ezYOE|2w2UnHdNLD2rQIJGdt%9GuS|z!1x#q8T>VmaU5aDC6cjK>jYL^=*z_n}b z+BJgP=55-=wY7>tUcO{9O`*<}bzl!>ksvoT45c^U$beFLYl8Q#2|fhHZ)7Ma+^+cP z>eWlz{QS5DxAET^i!L@jtZ3QM7?%9VnU4=6h%8zJgS%+C!6IlCitSw!3STBxc63PG!QL~~c2uciT~;B@g|t=h%H(45~q zfcD5XXm!Odf<-Lkzg%sJAI1jGcbqUE9O>4Mr+4#<0dx_aq?j?Nwh1x}-q{;P`2 z&5})jarC*LZCuh|{1A^I=Mld1BotSY$a`4bpezc2rr?nyoOY+1bzOZy1h>9kKYY-$ z-N;JeHtZN8A?LBH0Mp2PC?Yi?w0F(r`GObTw|7>EPx2z4n%Z?e>#bABpblkIwbJ@H zDD^kOjRz!YB0?Ccz4CXpg7?B8pl!exbZ@7io9~dh?UP=gMb!-N)r-mz%umqA|3lYX z$3@k3?c;=`(jn5_pdg(R0z)@Qh!RQ--QC^Y(xnK}k|H79J#>d4-E#l-a6ixczTZE7 zhx3^kX7*ltt+m&#>)PiWcwrboMIRx}Fgf5rU{Sbq06KL5dOl8wPS(av;FSwMRko%7 zAn+jqJUuOVO;9++FO=Vx|V^fJ)#6;uBFA z1|-s|(Y^{tLZ=JBNl_?0xf{5W5WJ{L3dV$A(+qt5AfMH!Gyx=~4xmSmqkR=XkApUX z64QJB{K#6FO>FXv*^U+Nm@p)2pg6)KwBLBraO0$d{PBT_q&!~hqT-+113sjGwaq$W zR$ckuw3x^jVfpCP;YbgH1J%*iCvHlLrtXn*K3@HH4J#eZeGm&&!9>0U+WuQUx=4mN zwruGOw`Jc+q14Km4b=@*1ZinRT)1J(I7=d+bUbQle|*$vQXca=+Ul%z_94+rwLSNd zAF6qh!I)u0pn)<2sU8>wGGV}eWc4y+nIhT1nGx2trmKW=(U|(osAF zOhRT4ynJ+CR@zsS{$-k_Cq9al{Pe?rw>9=$Hw1`CqcNjpf~7H|;pv_Mkvx`KtjS=P zgvh5a0XeqD;E|fA1B>1=RWRPjB;EdZ~9V7DMZieTVNgLOXJotV$ z9$-IkS7?65gE{g=>IE{up+0^Uf;m5ZU=iIP1>1Z7$M}f<8XwO4U^?9Rk|JKTdV;dk z^^^ZNlVnnki#p=LnM$NQis5C?o~ae|-DD`JdcLh1X?qX1mz7=phfp4(kh0-l@!-uAG8w~ z`S@$S=85kpIj9&^`iGwE5w1DaA`gTfo{$?fX6585w06}(@3ci#a7!b?w345v@*D7X-!@XF-5 z5P@-b8H=UmN%;X`4}IAqTto3mC`g$A;fCu9;bscFsJ*a%=7}McDR>j`uiS^G;|~Nw z?<0#J1oun#OZO%~L`cPLWj=~^etDUA9*iyVh$IdOhMy=+wx?tdN#p7Nla@a5((bR< zXRh-*o97f!w@CiE5~$oDDL!Zzy3|$rw#TsIzJK-T1&`DOy;*{J;-you?f%UO|1Clc zB1jwM|40sx2DBrTDt&0f6-WIXdkQ3;KK&WKDR@hO@Ib_!w3CPax{3}liC3fZfd1i$ zDLQCP7+~5;4IhD)XQ55d`niWJAWuA_bOMAaz!#Zu@W%0cNF&p`N&?jLza0fANdg}Q zv!Q2OySw!`AmU^JD)m;@@s7Mr=FGF<_5m1g12(GMev;X@8HQ{wkzNT zoUYHf6{DiUxw#)IFu^>-H_)%={Wr?G(i)YPj$CulJL2O%l9K~v2W8@af5`K1PH6oh zJQp1utzuL-s8hISGMJ9eWGwcDYIyDtBuZX^o)FkbPmfM3DXG-__5b8voZ%acii%2) z2W|pBO_Uzv0ryeDi1=yjZKAei6o7@S^w5pccLfCj@5=9Ix*9sq@WC~PE;`Q`z#4md zd;8L#J;MiP0~fPrFx{q>PG|3=YH z%lm6yG&_>P-Bm}$P_Nol&s*O`1dgLc;Y^z?*#FTW6WZWtv!Bhc)UX=ev)^{?tmA&Y z^!xnS_>D{HMC;Jb@C^^=Zy$EE0Wrw zQ4iY$4Fnj_39Y|J5H34p+8QOjv}$;Mbap5_`SQ2zstsrJ^!&hfUrl!Mq6#AjuKN%0 z7v+7|h8=6Mqj%rhgY)cjKINGB;_>!QM%CgP9Vyx*MNl1zOnTDYjV@vht( z=^)DE%E^rEQuYmAQg%PPwH^_deevsq?w^v`822kZou|7^1H`^Kjf%DtVrhO8*n zTe-XX&rhP>^XfG zJvje&arRHF^+mx)7o7|K(|V{<(Y6SObQ7>Q zbJ|%GMsP1Ps zi)djp%Y=u@WnIq9-q)U*oPI9vuTu42YHCG=XN#i_6mUZCS~5THl3teGWy(8y)9Ig! zCq#fJ_Q*}u+{?2`sEqSIYELw0xskD$yjRLI+a*c&WgO!^bAL8)%@-{eJ1yRK7S&3H zFMHz6v`bPgp1A8P*X@7zNx?&g9%ti5&O=<&muVdD%t0vrUa5d?m!$C@1jaGEv#2Gi zzFK-wIyI?lKL5}{%PU_7qTJP8()E(NB<+aZ8=2PKPaE?_CA*~ig}#Yq-p}Qx776ZB z^CpnTU;4zJ7z7sV(i;mIS#d3g4ZwJF8pnmFE^3Wr$LpA+4qQhHE)<%u2)_RP>>->o z(;PY56LYKgIB!>PJ@29+QzkzDe0tDTw>49IQg~tsP5qtqaLg@j?FXvyx+U_zxt@Vz z2G+~YO^+Q!6J2i$7L>-<8(Ilf=KEjVCzshR+qQ|~3};WmRKAKvy43yBuNX1OpgJ(S z@>SS#x>@Vt!afNhDrg-rg7C+mDO z9t}BTPEY5Fa*x{5D_{INxHM^4qDZlMUgcWS*hWzTy@X8&7%5J9S>9Ijw0zD;mGmRTQDw&3>ChS8xuqZS`(C`hDq`dG4}Iv1(%*YDVS)yCoII z*q!f0J109H;Wl(H6r9WM`DuJ*JE?!%y>^*t|9#X$imtDP>?WX=4`-ro_{m?!d+ZCB zfzBG}ekZD+`wr))O5~Akck2?&8pgWKILv3| zOa;<+p7>x*pB(1cXPzdR3BRsCXwwyGr#XIqLt-Faru-}iZSb0)?|H~_tXs3-YPEh% z(uaeSyX8G`{yvfIXFV5(BcUJl1=p6JP!;7n{DYu5Bk0?!LVvUz2wgjBzN~#qQEFR8 z*s*!de}gl0qJrhW=yKy`O*!`dMMcAa7xIr2D(swrzZx$(&YRvcbzKp3uC|eVZ(W9w z-_ji&X!sZ*v{7aHrrj;mH`&JQU2b<$_tr;RFU}b3woxG*;e?$|2)cf@GHCd5M}O7y z{rb|VTI`vPSryr$il4hL@}0{aY$dgG_0Rpq)|=Q+OJTZ=MKQz`O0=*OqJooU?Gf%> zY?bhh3@-xdHZWk|IFpgB7C48DA6DYPv)dk#T^T*ep~7yka(0fXIyx{hfj}p`kZ`Dv zaMF(Z9Cm(9o%`szi7_R3VdT3xfvH~BCK;^uEt%POPxr>>p^B77U9g*jhNFf)5iv6E z1&$vJL;Xi{9Ql3KAu#B~3Ms08t{WxY5ABEnQ4{e29JH<@^CLIL@KyL+(KE5Zk$jO-&`E>^;QB7A{vJYwHbj;`Ka@m~#{z)Ctzn`TJ2T^oEm>HA#7 z!N6K&gHmOL5R3QYm>hE~U8mxsyREtyTHuBfDSZZgfu8a$ucWa#wyF8sYS2%Y)2f4d*t>wox$cAl82+89uq7lB9vGJ zGT~rKW}O22Ucc->(dz8+mdv#g25HfJ?8V<{+g*R332i4{#tG?TOc$PUYtQ@(CkcxmsC4A-#@#5R9k`8JPJs7|XJ?dO@VQXgYn?PyPKeE}nkF?pk zh91rF6DTH_ahx4?;)Ne|uHJeajHbY#P4D3IWM&6JavWwU+Wxzp_1)uKbYh6az9U_D#u|$3DdxuD#23hf!4nKrbDcJKe~J05RRF>|3$P>jliR!RG#`iB!fF;~s& zGPe^T$L1bv#|oira_9ZxVA8QMwgML2`ATw$(g_Mc5Lkdb{SMRl-mI}cv1fhhs^_S| z2U}fqEQa|CL&1zvj0{@sOkBK#edv*`LQy@RT|M7PN2~8@=x7ZzY7wK-BKvj2}f zJspPg^}a9KWG@FAMMzTt>_I=q6ae=>e2%`#h#nV5y$9uLHEg^#hjz{9{FYARsJ{l& zVYoT)6+|YOQd;+GEWX`8A6~t-Zm`j_ReDAMpVC9WQG;ccWUzDup#UMXg8(^Vp@Z7~ zc4ALapDFW^r2!m0C{rttDFmhIL+k0`tD;xEw&Io~zj0D#F7fKUJNZBv%adST1+AfD zU1(e77jN`s$42|$sSyU&Szvw&7IL@}VDSxr49U>Ab@qWHHwjQgN5%UD5J|us`DlQp z@IdlG8AgHD@HJ^rP=k)C>vQuvf7shym+eMw8?X}k??UVll-0DwX73rW@O7u}1ZG$` z-?8eK91H6|^$_qf51V}Ng zX=@g&^}z8V{q4a;e8f+8(2ETC!z9Nf?=ruOvJ(KIAwmkaF}byHkfx%As}-oPOqK#L zC;-CHWV6cH0oH2xj}#pFOq}?TSH_yt^F3$AntxaT^ZxH*Y6}L9nAY#8Xr7)HPCtT% zbU=#-!75$hgN)KO67zo`9{^Ed5(-d~dNKr|`CTA)6!et!hW%@<2rwAHHKa@{U`0#} zR<*A(7M7-*r{}zo^n`t#N<8(9e1*Ja4j=rxIK%He<1Exv;LB^|Db(rHcg4dw2TiqH zNrxAxoC$41gySusIsx1?nkV%`8x1+d?4E8W7F-Ndp&!>@)KLI{q#_wmtDs(aSw#ps zp-sk;U|}2=m-60kA!hVEW$8}O)zD)2j|1gJwb*8LwyNd-+Uqw|C*!{G)q82U;P6z< zsxnd*dbr>c>GvbSbdFK_sP8*`og4Zu%EtOHh9wn~#B(UaY$r(B;sxqgUMP_^4h|E6 zTDH`*1YlX28~(K`($yn5;#r`CN$URL81L}NU0jaZ_cykV*S_wvoR?Lt2WOt6yO-gV ze;5|GHCmJ#JV?G?9Jl`YK(YP7aOA^nvfy0?*~c>+^Esclrf^@R^Yg)+&{tGf0E!4l z-H1rxLEe)z0T5H53aEM>^JylWY%>sYysYq$1E^gzX{!I~5zP9jq8y~b5kJ`~Xa2m> zQg;Do?OhcqTb(Et%v8#{w|5}K6t;Q=B8d=Sl$z%DxInU0*rb*G?s4ymC(X*(+N)`k z)U7x6a94+ck}O{xNob>fI|{h#$A%~336FUI`tXUhGD)C1Y9Tt01Q>A413L(Pn3S6R zZA0OB3Bd^8ACUuD!Qbt?2f{pa)-DPs?;H#&&8ojnRND-kh)p_(w!8!w%SgyzI!7Cs z&npCQ#St8-MpOguxoix5RcWdSD|Vu3U@9R|hVkT-zUvGN*E}3q8a}uI^qMYkMZq>z zslm}UWDyRQV4PzM%Nf_}6Tn>c>wHQqxDPNz^Q3BXVlA)U!m65|`;Uuqe*~&6V>N^B zb+;W?5Ma^>C~znpZX=Q(GE?7??hAwmKgRm6i~$f!#xs8H#TLM~vET?D=nEytInj@x zV1BSTRDTD$RT%UN3mduW2ak%XvfN$>2`kn%xy<{%n&;>P0!F#7N( zf9Shb!vM1WUy)(dG3v+ABUteR3z*rziKiK^wQpHIKh=mV*2eN@31=4UVFGd(Sb7LHi$AT0776GUbhMz`s|J7}I zI2D5$7t;?9;er1E)d4m|34MUSgCTUolWXHh7M@#9UeqVVwFJ&x{mZ<7S1!#kh`IrN zI|sv02%;tb8MWcst`z_g(>{4%!0^H&3SXD8 zLhKTZ0ul`96Ocxq!l@)c*}(}DI446QLa7wj1*9M#tYDJInv3M1=YxuSgvZ>^9b+G7 z@DO9zs~y1Dp0x8+N)+3RD0w2PC5)_L3tWnA*ucvU`Xz zfZ1=QbDAZ>Wk$eBMR0WESptGnAqmctmI1+_061;gC=UaY*?`9I1MDez;6w$L(|^8O z2W%lYa+xua7tmK?&{u%c@LEmsXl0*~clMA55fdR7NI<3tKcL!$aM7Q;A7n$^;N-9+ zL@x-6hgUxacq8Bq;9$HCvuouHK<&W~W=y0|ze`#H+AtvMfoVwF5|pth8H87VH+>i& zQhO!{$l#&)U#=N&!xazh<>5>Eiuy6Y-98jRn1BZt`^e-;C1kZKA08-h$GlP{_dhhX zd;P$z0q(*0-TU-iFBb#AEC4SRCV(Pf(1#Zw_FonkxaNO~0P>-DkOyKKiI#6O!-Tyhu;UBc>KmYGH z;3o)!d01EkB6=7sbyM&|D%=X-C|j87%*=y#IWjtbov0fYqS7oXi-J4KnLMZKw)p zNbu-HK=+rABS-9|Jd$M#AYuib!4nW0YT@BAOlYxVvxAM@faaE;deFEK5W<$g*>JA| z#{Hp^^H~sWkX1HsltsDVR5hTiaRoFR-y(R9kr(|eEDglRLuG`wLKCqRVTeiXTsVe4 zpxpm|-B71*sSUh6ncPYlf+qKl=Lp_@Xla=dafw(J`~=_Lv^-@^C^R;X2Td;=y=TEj zC3-BarFs%HIcOQ1y7oN$1Kesr@=qqicRtJ~$jK}a=X974@?n9nzyo()2#du`San0Z zLv-WBFDxTT%SQ)cOQ!y!XZOq7sP4__w0U?Sz@>l>|85e1OH6>!;J$FjCXik^396`- z8O6s#RM$+!a7aC(Z+VJgmrO^1kN*&uG6Jo_5n}=sqRjf1+8`Tn*TV@K+~DB;TNP+R#v)G>gYw^B&l@s6pWc%-r|4rKtgo3P}9z@07`NBp2H_fNJe-O68 z9%Bxm0|?)L5Z3>IEj&872#83?$f)QT7^ujoU@H&&-$y8T2&gn@_*@cd?{NvJX?5y6O0THvAxq zgAG3i407YIYJ93LBYF2rme`lSesZf8egB6TO`>uJL9RRu+2ZH;G>T!Q1&FTcxAl~7e@bdxWj^1^ZH}0^VVrnr(DUZi5}_}b#e8@{sqCDjuh6_x zi=uI`w`$To(uCGZ>2}$7Q=H%eV)tVes=?f4T-=T?FXxbN?@J5|z!RD5 z@%KFw>JSerO054uXgLlv372oDhLU8Ur)diCCgBGj57&O{M}s*hei>!Qv9J6&o>q=( z3>y}+jCp^_nu3W4p$^QAlARW2XA-@{pBFVNrT2m|hn7l3c$;WIN-r}WiP1P4DjB~tN9Qf6{OBrR)m6MUsO2egw@UPSj?o2{T~D^l!Uyj z1We@sE-GF89nvdJN!+|G?ecpy4Rfcd7pnVCd-|bVV!xG2@U+P7LM2Y$JS$nUv~JMK z*_&MZYnD)OT!|>;K`|dttwB#OQJu@RFCDC z^No>KQ=Cgb(k*=&A00Dar^%5joexIwq0&*m!qY7c;`5fDGU{iwo-Kbz(?487u@$>X zG7lwFJ%dPn+?wCQ2@yNBwkph~pFPJ~VC(_MuL^dx=#%3ze|H#D|&4r-1MneWLXu zTvH*ZYKv~kUTj~fz%t=aV69ir_eNVGsD?&FOoFxdb0t0xiubc02?qit z+iOPE?U>c>;(uJLXnfUMqIq&rI-NZqS`8D*IYgc~+!uo>ZuZ2*V`9Z-7zt9Y7tEQv zGB5Nc{A`a{)QmMB7vl?wvKGeNGqk?$rM|r{-%QxcQ??(8&9KU{YS|%9@0og1Dp}>s zzZu`E=RHlIjIUWxB#ZBHxNlRxZ*zvip-({^7Gwtmq&vCy(t94@Pm!h9{i3@X8e_XC zk+{-BGL5?8A74F<&ogOdqAGW{ZmY<9OMoi|El|ZiHz!UXgh*zs(Toh%sj{@}@)gHa zv9p5)@;?Wx5hYX~)=@nGeczL$Z!ZvB7$;k+Cqx`QNU*B7vyOsX0L#6Fa%M1A#iBfy z&(PuRSV}yXb3aj7m-3sRs^Q@;iI%<DkP{6P;QaqOwQr>N0 z_J+lU9_PDDD$-r&5gsZAx_6`~p8>t;isCK|eUXHllHBuiCL6nE=(epQmvOh?@n9HI zdFb266fjxW$uEQzU->wGWL#rKX%{r=30Y-Ln09uUuO+zmQ^^5z2AcL*r%ITkq4?5H zC#jH`1C!aFu}mHEi1OI1Arp(gd@PR(0({^%vBW+pW#JwiN~&9~ov1218O~P zp^uH}1QUH(Q(W?@csi9#O)8vMe%xGww1fDoHT%khI;~&lAOEXJ28+iMn3BQjxt8d{ zIFqLIc?^YPS8IY_0s~yX>>bt`44vYUuIk-Q?#Rn@MQc~0wq@EHvq24?m}W~f9Un=b zrm2m!GO1nZVVnO53vv_`B1{ZOaACH*3CBQ@=Rw9-_G2f=Mq}2}%CpxC+3=}XPtwlU ztRpRxo=ot(CT%7vpFG^0Iw>MT z#u^rG$JdXdS)@m6sfC55ZFYk`+Q9$W<*?7QsX8IIwzQ}#qv+LW0RJ54mV{Cg{-1;e zNC)fe)2csp_M~EYGz>2`uZoQApx-vX{6-pc487_N%;;B%c+ZsaY4Xpe&bP_Ky~BZs zck6vFXp-dP;5j6khcznosp-1*MG<)xypO0#nJr%O@VIc9bicsq)O0XC zHw+m~G=GnWSuxD#Rmk?9qD>Li=?UWF7y%9w+$mq8H&%KnYY_`-9x4R(YFe#@NsuHyHzL!HbwHU!Z80ZX-(FCDv44$5PPH@wIW+of;=`X zRRR|-6b0s@jYkH%*59=v1w?kPtDJF)uJj2sG`^gX3cRQ%&n721dOw@x@kD@Y^;glq zl1?cle(XJ{5}MU%AGRf(?|}y5V2&G>R*$aq_jR*T=;y?*ltvd3;G&{zI zNTn>q?3b(Hj;$jS$d^yDr_bgUWuzeH`}K`f2aLr2W;E{ZOK&={i=YAf8N__r{@FuGV{L4#&U6C@3j()Ea{8 z8R8@UmVH~(t`tSqak~?KvnfwK75)!G_ZRDP@qZ8uWywrBLfI%OyhDB!bbjV2DwcdAjwLW-~;l=C%K=e_fp$IVEe{afst_IF`)LQS}>h(_^M0?`!32%0OXi6*>J zYj1RZ<8FlP=2?zv-8k#H2(=P_Z75&DpXpPR|C<-TM(9-b?Q^Sms6`9Wr-aqyTdB@p zr4|Ywbv)W1TapUD2Ho6w!}}a*Da=9lA`}`a^BN5|!q>F^BMe)AwW8^oKUzFXe)XOB zkU@Yi+VagP`)`dy>9#N1*=p)j%Tv4KGZRaPsX7Ll`GTD6pO8Jm!jwD840o%w<7(py zOOX<|9#M`VhL5s;80+R>yI}Sx$}5xAYi(-qAhRvuyJ2ry?&D%Tu6VLz?3`<%Qlou1 z=0^U!?`W@3Q*JxHh{IfbD1W{cr=}`-wbICiXlqSZ+iHlJ1rv;5<0z#)Rl|h#l;u6~ z^QiA=3?se9iW4+lvi)osM`XL3Nv}W0l-Ew8`k~qFYu2~r)r@C?p|PUQ19@Zi82h9Q zjZjj{5aVso=M&M~qcDHA_iq^jv#v=WXM`@^c^n8MgTc<$6-5-ee3|73YPOc~YH282 z5#&_sU}kQk-)vZV^%tcHhR}2cx*B-5=okdXrT3!`bC*?F+pP;^ z26mK)Kds$qJCodGG3sxzD~zO9Hi|ZlS$~VVxcA-t{hM(urdyn;MQdC>&lhz4YcaH8 zv~FXfoDvUuv260c2lRrN!qzrFJ0Sc6SEB42Rn=uB*_QVo3f^Z#m`;@>5P!0%{P;m} z+!PcP^($7OG_Y`pq!M?(UZB#HnnsQ!XqP ze|k)9SggbH{Z7Puw%`u`*)Kns?<p}UIALthST2xQIo2#R_6>e)*zR@BddLkhD$3||2Y+bc%hRQr?s&z* zSSAp_N7;Wo7OfEHWgsx(lGD^fxq3BUGLBZ76Xe8HdT{pjvzt>9)|aUrjqc|*<|iu6 zI3LZ(fLzdNCUjbG?nB`PpJzo5`Q&tyDhdV~m;BCX~oQ>Eu%!Wn1R8u`Oal zFvlcsohwh@;5^yVP9>;&#O%dp%oE|D6pFqP6Y8td?&s9=!zn@tQFJ;qw1;MEj%tg8 z`F@Rq!)_~|kHT^`HIr%OGZAK?CX^&r`igLl{mWR|x9;rp8+Gq1PfwPvSNuqUBN1BK z;sY|`1S(PleiPQo8>`AchqhT_v+7jMxT|Q_BttW*6UeL&?cW{N?M7=v8AP^Yu!MHe zavB%Obj8=wi0E4ghZ$B6xXa(Gx4lH2f1C0y3ztK6Zzu#SQkjvBQ;`vm%SuS|c38-J zUk!}K(ZzOb*b*}BPgX{Y4fRbu)n8XPyF`dV+FtV1$1-{TD7`m*RWo? z7I|_*sLF9=_l|b=%ha<2f`1U6=+n=fD@hc8FnyV79{)V+L+3X0sz)@!ipea_Pk|UJq?{s)Yd)b_?^#lJLLV?kz0fLTKhug*ro}`Z$P&oK3-nAIJ30V za#B(TW`@RG?xWA@uJd7^vkd?0DLTMxz@v1-o|S9KB$eI6xSTkw7FB7{l>+t(32zl}> zc+`nM39=%@N>1V7Pi3jPZH24{gtlcT;P09$8k*NqhuqIssdUZmgI;V0!U>^HWlXZy z5dMoF(fK1WYmij?g$HBke8|~nLxSR?Wyqw`YRf6w2MxCZ9b-yfYAg&nLJUc-$wCBP zr$j-*9#UJzC>JCP)T-a?20{Zi_1`L3m9TP8LP);PY)2hQyT^s;f@CtFU^5A+H{<4iP{=O*ButH2$hBzpmL; zCpb7*$wpr^8E*H-%WLjun(8ze-Ha@& zRpewUSrtF##q6mFcr&EGKjn(DSLuE&lHWk?+^NMPy-S~y-eVwD!J*VN9{|&X$R`wL z1fX}}T60GuMJ9SKBi;Sr)itln@G5#T+AVu`hQsdOnZ56T1F!~^;NVb6c6N3F6^*jo z2{RR{sJ`G|5ry%=DYj3>l6}_}CGzt!Rj-rcN5tGa`^XP7j!oxJJC;7z;dT9zBA?OI zQs8>R9CcwRSL{HDD$Eo0iZ9MgZ&&JVI%Z>aLDwKPv4jgg3pG(~lLg5X=4oQgABjoz zWoCJrCAH6GDujRLWvK9CO})gRM7UV`m}{_G=B-$7wjDt+B^$5)E9Ig0x%$VrKeoQo zGPv>d^H=DdV`gjT7~PJ%XiW{j7yHO%SMf@RtG)-_qRNQ|BVS!8X!ws(Zb^c9a>tO_ zA6i;`hJx35(?b$eX*1?ez8bjc_w-5;gx~~>P^ z4Rzq;81mAG3{ykZPSkl5ExxM$37WqgCer<$+1*vASCpbLWKsAR+_oX+u<-j}1V5vO z>*@MNI9I}J_9+EF`?tJ#h9c^dgkljFOrt)CJi!r+Ve&r>ZZWq$`Tq{FdQpWT(3rp1 zv#}yZe}k2ky>ajBMNSu!D*5?GT*c!kr;s$2x^Bki&*ovXsRgtP8e?kMEZa+O%2U>Z z%H)~e(9e{8W_D*vRLsv_|A^m}t~ez<_4?`+l6J+udEQ5NG0^|-^*i_?9a<}1FJq@a z%JRa*(}XfPEN=UD?%4|pwU4tcV{3H}tf`xjsSHbkow2WZxA}@Rywf5>EjfvP{AQQL zKgBM=tzVE+*W|~w+F?g;2$g?tj8T4y^zPt}uC;u1>zrMs+az-!XlbZkFzh3QJZs0M-U-&afYIA60`pcwY(7 zm#C_b8f&RoEvl(Msb56Ty6ef$A8b7c#v3Y&plYe|reCNwdiK(7ERB&O-0m;2s7JGig?^#wlm1EX?Q)hr=aXgy9p2D9M#U1H7=@@t*%SU9ag^-N$uXRO z{^dYM$V(N-&Mkla0CnHK&o zHXt^4av-`TmZJ!zq?NJYsM?ssl7>>MRDJ?XO?$R`Bs&5F$ol^ITu!9I5U!GBJd4~OrS$#RIIFhI^Iqjo2}WWal0FogSyiv`av^jt+qb1| z2!5JI(dRg#D1JW7i1nw4KKedsk~_s>M3}R6-JY69#4!+kY8ruNBCYNkR;=&QJ~Q={ zuODkFh592at1ZG5KPwHw9fub40sYNu4eJb}XO<{B1Pp03$d)Y>rZ{eUMf=z8#kE^M z6$Yt2fhW6KHCX)=b%vlm%VkHR_K;Vmlk6)^$+>S-1aC*%O0p=jd*Y|uj!jC@@H-cGx zqB-HW!>r3fw_ts~(2^M0j*IT2MTYmN%4wQnir)w-l%Ho4yxlTP8)8N|NWdl}Po2T0 z#s5+K=!_|Fgl5k?H6TN0iNx#G?~j4KYs}^)HF{KT>qls#xB;ohpHp*1u{>olBm#xQoa|-+7RFd%_BiA5kQ8;6Ta`%zQYlC)}%^W>A!6$|Gm~ zLhNc2J{`;PnbFkh?&F<}Ygv9u{$ASJLph#+Twx#0!||uspS&kLQd}$@ijB$O-uI|| zdg`?R_``Lj>>djfQ1z-S>&B^O7H^up!AH6@{9ZScf%!ve)iBU&mj%1f?^`Ql1X*`6 zzw(jd;pAfVWWN^vZ+dz2S0fg$d5KQ7HtF{%AXmL1?`iZwXY*J=vDROUqdP9C5X&@C zfj7}BN6scd(u)<7obz4nj)B#7l(*LO%Sm;9#9dyaC+TF}NYh?Ry8@-F8LUOGnviHU zF3m$d<2*8|0ZLg#LZK)o@v1B>C=j3!~DbU0xAY`Is|D zmDSlcKD!i|5K_5|@^bOiyp+^DhZ;uX3U+=(w{icC3Xxg2KqYCnB8ogRkA%wChi_Gj ze``y*Xp11QYds$#WR1{~Gh>PpS9m!d_4>tc9t8`JXJ;%W>AJ&`FkKdPP3$;{yjo>> z?m#MPbhY@dL^9fNE%Ob6a>25%b$pid4H3Wt?!t{o&U_{jEtk3c&j^Df1iDBiUi{8j z!y+`$oiC?i8eOn1vQCV|E=4@kL<;T7>AsTQ;{9PMFz&w)W4pOy0bNPz>D_*@8=0*5 z#(>9^`!2b5XGnFyg+i80iCe7_M!WtwPTsgsypr9cN4ZuHjZ=nQ2`c2d0+5F9Wq<`x*4{ zy3%B}v$HSQx|}8nwOcRUi{_5G(Wlp$M|M1-JU2Hg?>RT;102L` zNn3h!tu3dEC@>^tSk79IYi~VTI&9 z!jr^N5+1->kyAGa_&&;p>c~Hoo13@xj0r{P+i$sTidX%dT^X2vdTH>GnNn*>f`ZM} zSR`Gt8Kl>W$RS-fR1rBm33l#}ZCA6z8@?Gx=kSgda@WS3KUp50#gR5N_-r`C`FA_C zOiAZ?S}j6EkXyvZ+Je&SUXdv*p|Cc0>U4X@6feF%ZPn>sH_wr|DR zj2p3kRu0PF>qxGiLlydPu7-vgxGl7aEsUE{rWgFRUY0%tTU~_Dn>haD%kku+mTQtN zYLo6-oCH7D(!||#G0pLV&1QK^4WIFh#tc`eXoYq^kf0o=m ztLIu+3aUnmLqa7JoLHEK)FEg(5Vw=GMyqc3zyyT|IlZ^)j>hW=IEmQFPjG!B@>Dcg z#}&#LgPJd0Fur@`ppYBzu+fIgO+&_unAeKf@a@II)) zEGhn3_~cBp+Vy!@((t>v*yQfq1_Ctvpr(N^p`>Iatn@Jb)2t*JhTx0}9hY}C-7`uw zYgiWFIl&`}Dz*C4ShYME@YKULc5GOx{i=BLeB>w2;^cOi8ZzE36#r4k|B%R}L>3%m zp(5ZqhA;|cdaPuk-L=g6&6i2y-8X7~Jssj!G~Vq*O+LP$k8B=L>L%_Gdj1avU0>C( zMKsyD9W^wH+#j48cOO%^<{p~bqevJ40b^g0$2V#!o&Tj7f&^OKu*fdgL>V$~ap4*SD zz9#ilM*d9mg|^kiQ#67{(+ig~(yMy`T1_)DTO8qw*Y?dLZkhS8AQoEfpFKU3tjA;q z`99GB>iBW^Nq+co%m^e1sDGqWrbAJan3+AXtjQ&{d6-eK*Vtw=BqVwFo3!rA=uYd! zA`_MbQ2PHoY9h7Zuv4@97EN;z?Y#Aclwxg;xrNn%R=RZH8%a}K8ovnbQ-K4syEW8} z#!RC|UJh5AqXEV*u{3xzvroh36lc_o+O3-gCM9j=>C{E8GQ- zTGG71i}Q}YZ~j9ummJ6ITq>=L2m^|_$-1!^_2uuE5!|YEn#II|wX)p&D23Hk!lxC< zjVPu4`DPj}p$U57n!=&2&+GmFY7f-X_G68?uNDYVGU9<}SSa+&Iogf!bMlxdJFJe2 z?m6jmY9I;h^6-3T8jgwyCH#ZM(e1?{?k?wW@wQQp?}*J>~PItsLT<%`OI>r!% zANQEuF#O+VCjLa^$Cq9O9H5L`W;KeiuF zWAgr>U+E@?_Ki0z;6s}{akbbO^2trfy6KB%wXDEPZBK%10ZH+Ye%ab&s&cPgp|OgF z6wy_t)88u3#KMbd5HT*PecCl=e=l49?BU;QO!norxOQO@bEQ-{mZNeB1fpnmwl0e5 zG#X2Nyu;TS?LSXs-KPCLJy(|QXF=2Fy$Ft-`Np93{PVQE=|2cuHzh+^WnwjtsR(nr z)aZW`mrpwr5gdbWbLvGuEKp%y&_*@7FvzaHR|0(C_U4uMuAQ&M@7FXr!nl<`V2I}` z_sc>5AOKRM{%e;y-s!#GKM1ujoN^D9+_FmXTcX*BpKam;Mi-gy&sDO;1B<`>gAf3| z>}=x8GxD#e(men4^Kf1KVrn*`_FEmj7l%Y<&EBWKtvKH~sdhxeO6j0A2D-EPEC=G6 z=Q-3j6#_m8z^K8!~S>Jb#pd1SKSFu%DD5-3#Zz( zIGoB2-v9=zwiM&9XIBX{l%e6T3hasg&X2F?A?HXG3pR}x1{Vg?ykcQR z%?%8rj;6k--`}{AIbUt9LESu=F2~gxcHU-Dg>l3EA-yM_W)V&K+zrvGvCcMzq%GuFuiGm&*fa~-HzO-k+CSHjjT3n4VcP7Dd?3 zZZ>6cndctL?fIJ1I`*MgKUZ>Uc`VmmE5Fq2{GS35cO%iCmJifFKG$O<0@payT zgFeRXbrB!87$&M8pj@OKl;{JAUSKKa`?)eEC!;UR-ImU=b~1|Nr?jP83tgzma`|Xw zC|f#fi{lT74IW+S$%?KaXsf2_f|fdj9};kJRAQM=lzXOc?w$wltC8faW~N-URv`EH zOMhx=vr{TTQ<_WFrSP<4UKC4QyMo-Rx(ljyqjWRJS)4l+W6Frp$Mt!}eaf*o34E`g zPy1#A66LFrNBS2i`c0s4aQwRckxZ5NudfNhz}ONdf}>oBTU}D1VhV^ zKQrbyQUdr1!=Dq8@V|lLX&&f@%9iH#JRU|VHOL|upK&>)6&7S0zi9YG5J9G;oa_}0 z9@?ZUHRMh3>hCWeE8b85T}sl@)LtiL)rdzO69)*Zq$obOjg*aQSOp8Zj0Z=$v-)af zxB1fyMJB|UA>r0tnW#ishNncQZAGIh%U`ImV>>&th3|1Gk8F_H(%5|AV2}~}`TGY! z(cJCb5;<*Igmkvp)fiQRxgV(y9%%QoLdwm61di`|>z!U?wzNPd__NwW$rvJDM%J!u zzW@1v|D&u&UnjTm>Wi`{NWTD%F;ceqo5_Lko%}MU&Z+xu=Ahh>9PF=*n#XcI!lJu* zl13W-SYic1i6iEvDF!ll!}cPzE>5hVv_N%Theal|8Bq`=Y)P=p_F-sKx5qqk@z_Xl5=1jLXp7p9R zeI2hzyVYH}LhAKKo1)0GlqG^8M-#&Cp!fXme2A#xmDLC`-MK4dG&Y4nWYT)W0!$2= zDa->ctz&zdS$#jyz?=spH82S`z$eWmYpC>LQUu0PTY767<5Xy#0zJh^1cb)CJ`&Db zXVoUQG^I3~IOK0<%9@Qe%XPz|!SwdjQ{T3ynd{qO4SCPrZa&oZUM6x;a-}*Is@rxZ zibhJyP@o7%LFru<<+ zs`}kR*xLnIDc&e6icWP$y=*~Kw>CsQA5>O?0L?akB;(P3z1N4v@N~c z>=ncZdxw>|P6QU3f^gq`_c3I5{q2MK2$P;RkHQq~80WM-XV5Yx1AD`g93F&P3k?6} zS&oC23!8N5h>wlJC8;5M0eij{7!FJpP7$Xv#ty7I>Vv=>H4Ewr@;pfbj9Im@ebs~) zYd@|=d1^tAe#j5$QkR6$5lZ&4_5(eOlKs-}07){&k@Uo3_-KD;X3QpgYuwdnLsW^( zyIz01`(raOxwJtR8uO9kJ-3hVWtKPn<;S!p1#Obus?)Fe6NIEW^vsBJcq9dor9bh@}R2Hl#J)7ZN}@?EOI%}6`>Q1h-N+~k!4 z_GiEG_DbrqiSmk*tY6;h)8*%=oN1{Q+`gNz{WBDQyW4`a{NV2skOxf_0dod%LHw41~sZlFE zP9nU~imI^S;KC10=mDbsy_nuL{ka#>MmH|+xG%YZPSCqz-!F#-R-^WALQKgL_w;B< z&%M(^f;VllM}uwSD~5X)v3NzXbc%32g_oNEz|cRK2wg~ATroC+GqTin@*!Fx}=h2jjN9_I6UnO_X-=mFsCw!B@L?L349fP zu$-9v(lQMLrp<_Wl8cjyaco66MnyPeWd+j;7L~JoW)mSaC?q4= zQC~oaO7)qBT^xOqmC^@Fm+Ra1**p`3TeK)Yb7@%UT=zX;GhXbHUIzA_D^`3W_P ziAaxk!!*yY>acy>o1OO)cJ0w+nWhvP%N~QjD_fL6_z1p=<|E4GwEsrT`t$l{Q7>#0 zE71kPsjkjEkRm#bQ_I~6&cp($L_T1`SS{nYIb)l2fZLVK#67cJe%_~V$L^s1YJNqq z3n|`p`QEg- z8~dCi?mKgARw|bHxc;YJr*E3&5iqPnxF7;}Nn*Gj-+5fnw(FocgRazHAa-Iuwf9UL z$*H0r4Blds^6y$3^io+i{#*>utK#iB=(iFeR|r+6Ba(0-Ul28_DCN^*em%)JjY=@Z zt;YXWvtAH69rHQXdST+BGFVf5awzlF-6w(*4V)IG;?LW%J+e*K#lnl@O1EZwONOcK z>FC}CZiXLu6m3?Xsk6z`n@g2)1sK1xB9%J&R8ODI!E)Ab^_kzdW=ar|{B^8mPtmRQ z#fk{$lw66<-6x9^7o3*X;_jWk{=ODlXxqlPmiTm05@+rh^>$r`hn(uxnk+B9h*`OD z6^w!Uy&Ck6rDf{A0yS&fRv}bv3lF@3JN{vSqqE!^C!r7-7d;R*LS>k@r06h+SH&KnP>fb>@C0>bMOPwD!tUXnZyK3vGKgDqehFSXY5rHf!ek*)}# zOy$d_wWF<19;YY?u43l>y%;lrunuwfx)v^8d+YNTI#!UpK97Q-u!OJxBq4~blpKE( z?b}t7A(v7-?FMEF>JS<0j^x({&?BhhtEe=0-Ej7ov%x;2uwTdcS(Sy+^TW@jtz)y- zVA;!+d|tm(i4I^H%=6gEN)ywi8s!}x<$a_SbanJunEcOstUGdEz0AI^Wbyi4Ml{u$ zR9l%xj|(k{PcZa8&|qX`^_qntPc@x%H1o6g6J`l`)sM2^qu=@OUF}LkS9Smlzop`>}rVg7UVo$x+Q2aATpBMDS6cJk2 zWP-ghZzr=3m6?q^39=~bfYk|X?5rbWUt`+2plqY~_p-TS(j}B!pxu;eE>oG1SrN&G zsiSf8V*C~lX*K9K4oVIRU+qmyY;R$yIj-%P4R$*wgF2Sxa-&%Wt^}6y_)u#fL7kz}T$&%T{ z+YOpYsET1}4JQ2o@seTk`*c)KYGu;|gJb;2t7zhk*&w3I)~FIQ1Wp43i;j{1q$G@zJyT^G}mvEPO&+L((Rm!H-+kBjEQ4Rc_g5P zDrfi+m!u-2r0{~_gp^U5lDd|#9@RH1!1`=97!;WG_`#qAtmghO@_TtSPRIFXPCvB7 z4IztOIFDYAH&5%`2>g&fDVp8F9$Vt-rv(N9Tz{)bZHo!z!VsBZE{@U}sSAbNPrUHf zcO8DJQ#Qa08fzXCz``*5PH?M=dIzekVVFQHBM4oM=~?%?2Lu>1IJzP ztnW~nbI!-Y*hzoBZVizQmjg|LNG7~Z#(bD6ueom1hTWGamp}6;C!PuSbkYn}IgB71 zMOcbL`!gXMhvDTI9SrmnLED3aamO?iAM#0;WI z{=55K>4lWd@|rhCn&V6#DM%M#1j0tvo1e=I{p}1WaYvvPvlvqreN1C1x#tU^n}I3_ z#SFAj&w?;PSfkz;Lw!wPOcK3~d_mEIyQK^d(yO}mUT|EJdO;EiID;4FJ@gJyyJ?Q= zgietT$E9JK-k@<<2dX6yARu%{J`_t4QN{d<6HCBkHhwEVUTtgm)m}tLv(LzM{~)kx z3HLdM8Zh7ceyS2I81rhSshkII4&`M+dp)fknBe%bdvp8CRxNU@rQNjuD2wuz3fwF7EPlTiXU;jdRxT;LnO zDb?O8-JY0Uc+`&)<*r$nY)$cYUFfJS$z-;qCBgbje3Ng~p|L}K@TtZ1iQHPuH$0l1 zn!+f_0*{->UG6C*lCOH4qz&1K)mR2ESbpeu5c}AXjEyibYq9mzsDCIDvW4omxy7%8 zwl(S^eAcTfSIy%RVhzN4O~K(hI~@m&H1K%-A$aUG!(p>wZBs}G;SUz>wn13^{mh`| z?9&OzU0MG6)0$rMiGu@{%u(WCH8)+i9L<>z(FtusHmDA@S)m|Eu{G!ovQ@{kw;O7V ziIX1sr0}`U*ZYmawigkgbrFZom^4kd2Qd^Eu{3Oc;0Zx^}F za~N|cYDM%qEqdK*`4l?1&Q;OuSoE6$A;q{Kh@UDN<_5l!cC2nLJrv(ZB$_58?ZXuB zZc84Qx%|17T`NSS9n@ak$*$4xG? zjLODfHHQ{L5bZLDo^&?11t3n&FdmeI(1r>v& z4=bhF09d3Pb73TG#rAwPGWI$SmkenKL6z>R%w{GIc~-Mq26uny0x@c%orJT!YE9%D ze#S&Ob^b@{zWy%d@GPY%e@kn{zNO0@+p}^vakuE;cS3lrIKte-zyM;V?kkr2iOOQNa{7h}HuQH*7CImo-EBHUZ? z7FegSq$Lygi2(3c0Rp)cvf}nyY{nWn~p!bmMlVRJ)=6%`dL*;Vq{VqmE#+7! zmPM|vJhl({0l!7OQ;gY*jQQzOFcq`1q>>_J_lAK7q1dbe6Yfl6*T0gZW^>U8&0%*& zbIT5qMLF483h>DGw<`M+qO(=l4~9!`zIQx0le3j9$cPLwhzu{uUOiMuH!@|VK?RPB zZx?-pKK1X$nuM_k9_z^dVA7Kp{Vtccxpp6$Edv?R9LH+~_=bk*fF8VJ6l8oq9D#Y~VoX>L!| zn(`~-QgY!74KGSCkP^4`FWp#th+3rA`~uAsz>bl*~&hVzn*G`M4=(9nAiHKqjR^3}D4F`V>jT%obQgr`KYrm|t3A3o)XW!`I}3;(fG$tSdUnLCT_vlmz)^ zg0y8sb+*s~I=~3FDA~^~_UI!&Itwa$OBZ;t#y7r180)ChgBycWi}$G4<*rO71A)9TB>gpC^`22@^E>#jCe-IzGVd7R>Gyui?GF|#V& z9uLlN$jIC5xJ-G$w6||xKDBn0aMVUX82Cn?YH6~#F7=Yi4+~5J1*Zy>i5sp@G_h|s*OJ9#nm2zK1vcaN!XiJyg3%0K7O#5vt=%L z>X9&ZMqb=pSO^&fag7q~q)(BM)aYpD+6^mqXC!9p=II4!3&gT}bLgHho~&6jQ8U(* z#MpEPC;O!q$RN^~+NJ<5d&pFm-Q6E7C+XLelYTKE-PeTaMrobJY%i`kBUc41(zAW} zD}}z(Fkgt--#o@&(hO#R$@AF#Bkq@jDmELi$!M5gjCuPbrRKWmv%&mDyS(Iq)iloH z@zYf1m4dL_CIWdRaNj)75th$t$$S?$B}Mpi(m|99pDG)zP-4wkiphWxQWTj6#3N-S z@4Mj&-&(t-N_>_aDNQk!t+pt%QURer+%+|*A%cG58Q;aq_%GQaetuh>F-w-IQBHlZ z!ly3q`)~@zHPg-rES-A6x%|v8pJwf5Aec-GY%}yC&ZA6xX~}pWT0A4jyjg(>XPMG# zuQ4jciFB;aod8k63(oC>gBxR(I*sI0cu^BOIC*1!3vARd!=FkQi5ifl8j*PZ&pxc# znU)*o;+UI799cD}VbS(>%JE@vJ2WO6s|nzNY?Vspf*G7*c3>n;TTKeVns)kQ2hGW& zc5i(dt@Scbv0Dkw{)FJjbb{iV+f9XB@$)wA(Tk(ems!er7qoBZv!69W&6NrGppv)~ zl(=8K6|{-SnSz`t{FG*Roaivld3~AA&cvxj9{Cekr$fS$sdB&T=oQ(1GNV8 zOT-WTGLbj1OOk4-!5&kgHmDEZtZVDJ5>KT2n1s@`wQF0B*4VD9_=cEj!F&$BkdXZN zM{;3IrqpVPz30O5Uh(q*6sRn4MUK`!O+umTwZc5&O3$j0^I!nNF?mf^AC zDzC86IYtcpU^DHc?IRD->1y7K({OdhLML}CN6AiWTH=e1JV|kxG1jcwH5NWxyBvS- zD7iDt)tI3+8V

uVzHfyTYH0m}cFui|q*#^KF5B`!F*U!C;grYHihyvDn+B4 z9a3AXnm$mGx!=5p`G%{Uqrt_hZ;*$>l_Qcp z+N!K)vmIz!FRb5pdFC6ZkGz#5dkc79d9EmWu3AXB@28)T_XUf?#-u3~PF9Z$wu*%EEd0djl|lT7ovkvG87lv7*gD`Oe>_x zlX94w%SO{p1xb;2Gl} zAu3t1s5q9rCvignR&Ekr*-I6CITDYfpFm3~UlbWGd=(lKcV~J|TflATn!FWdI+)#$ z>4cE#PiBb>?y$#D)fl?5u?QWuJkTc7_CQ{_Se3B*SWA~q#uIDxngiGaAk6T##oG$U z#G}7LS{o9q#2=n^E4DilVjZ18;7WQNOwg;K$fZooE^}+M`>SuSPBXM=3235$0h?#q zkYY^`5(uuMOxG3If<5H>j(CQQQhQAQvy$YLhDXMSa7R1}p-&AwIt|B6K1~#bgCS%@ zCOqD{x22f0$)dA)A}xpCoxHI42SczhuvuU0x3=ns>7+1rYIH=(+q3;5p-UjR(7tfS zDsru*v?1y=WY6?w*bM!aE?h`$b@tPQT#~YUe@u_JKv(l*Fil%J*;*c05wgsjj>-15 zq$+02>tmrTdAIFZ+5{gTe)Pb4$M#8+nrk9ySo&yyN^Yy9#U*zdCCkFpVaDmIzSm?e zQUrX>{uRfglvaM<5z%myT5nD5B`$AnvnKsTPx>0#!ogvG<4tPLl>=QvwP13eYDk(+qzze0)MeD3f>d>SQ3%=Fp`Ha}N<2kW z1lW2a@63Yoo69w-X7Oja;;@+ntIrR_o`G08PW(+dipDC4tV$D7Ut)xq;@CD}1}rcy ztcD|zflhf*!DV!teYLO%71msp?~w8Q#e_6DCT?H@4BS9k&b|mA1)W~u`t9Ad3R)2j zm+`#Ejy_Fo@hwmE@AY43KkQi=bTL$FTs{e567|G5$#f(yM;f_9l{67>Yc7WPNagB2 zraZD>C_J>&I)-cym+5pflVm+u+@rfJG z<{*g*I$LjV*s~`fx2>3ku7SnbnXYvyY>5ePFiix3=cG?$=77**P-6i3nl(|I|JVcs zh^H~b&$w6Mlet>)aNg>Tt7*zj&QadlQ72K(mG)*k2aiSMN`oRBbRScBF(^BLX9tT2c?0GJ%o1b*PT)5VOGTs71x$8&pneuC=Vjk4M|Z~p z#_SJdoHL~pk=+qhx3_6t9YnbA=G;|b9a^kCLQ&fd!b$e}6CU$$su5$6-w|Bf7_7i* zkwP_(#E1?ZcO08e!P(PBkfO5CCYek0~+y5cj{ zf#wo3v)98aK64(EPqqv7uG-xMet%&)ysg^Z_JfvCWphI-PTrh-w+Vc0H}U;bNm~u z+q}0Z0t=Hon?0;{-DL9xpJXJXqRt_)ftmcJ1@FHNlspJ72tFmjCO{|R3}*4T_T>vE z2etXfHNKZyTGG7n@YEyEV-BT@(^l!8gXrG6_-thN8=qip8XOLN@wn`5jNJS7b1# z`j;(@?pKvoI*r!#0)rl6}ecA=anxZFPgR#!}B{ zg#uV`vkqNm-4qrH^}FqI+|hYdR*KgQe=#>SY${uhelj1k-rOfM>D^moR@Mx{1BR#= zsDan&3-I}X73oYyX(~!8=+P^FyT=C3&=SyyQN^r8N_@{-wS-bP}HLRxxerP=!i~ z1%XV_>cRdSla`qZWjSnwcBYhC-+i)K=&Rjwu1KX{6@pXH+OW*UPgvsD1Cq0oX=5i^ zm_h9;ipw?*WRB5a!Un2tG-l)u^=m@acdrg@=C#|UBzLJ@33gMcarYYd3nYJwIRok9)T9>uC2t|3H@Ee* z5dT=Om^+^39YnEKI6;kofiq0)Oa6XQyqo@MJ+If&GaZD{COx!Kj81Z^T6B!ihAGet zq!=VD)&YEZE12vpN{Or47z}e{XKzYw)|b{yilX0xCNYIo1hELMqaPAan;~sT zkuym!F>d;r2+x~zX!aQKhDDv{ydyHS{sN`_lqi{olj3eoJS3gPB;5)`Z1}NdSJ&q4 zFqL3uV+BqRK$GztF8>SU&zQs0+~51+%+HuUMooWoqrO%%j;j08K0X=F(<;#;gGTDa zb&&!g=x9vR4o5m-ZKqB#bQWWrT)g}(302JIBEQ0k#dN8scZ+Voi;u4$^IxhU@7vKQ zRU6NgpWA$(S8=ouMuN%?3jXNE6u4amClTV^Srj7J8sJ?5eB~M6ylMN!(J1Kl89fy@ z7AZ+yqnT~Sv{1=>*1Uh>^VM}3S4vSWq`1I5cGP5J~>aa+8 zkXB(yl0AXq~%g%;1RUFC`NUO+i>*KR0QaTqE+f6J~!`MxIY;C3U zJ4{|G{w!GGWBSdWSzUYFNP?-_sMrI>gLjss$Qe=PQhcTcdBt-hl&mrPv+k6jM_Y2uv zJo_=`6ub$Y$ZFVn;q;9zyL*Y8ivYg^E}h?IhG6YRV&ej#ZcCoctGa6U-UPp-i_vE+ zswM@d1U&L}6L6CcX_28m&gW|Ek>O)R(`C#?>OH9-;0ee0;G9*m--cz;lqBmnQhWd- ze6%#ZMq0b0+qOn#_TzA@M%>MLTZmqI$LZ!9XXxUY| zZFJxr4sS51PDOK$A+&TgZIsX6KzutXbg%~oto8uJtICqFL}bBk+_F8S_~|nNM2`W2 z*IXZLSh!MED^S6@e5KCT##`{ZV2&LZ5eN1XvfCCbfC~%xL}t4_J$<g`XbT1*RR-)a@?kajXQL z#5(pmzYTb_e(R55eB=AtO94;&W}*zyiksShz$fol+HgaD!Qzpu`y&l6i%bkoVqZf3 zH}RYkqk~m`ndeq2$Sm@~Fn!Gk>?POCgX{9XeZdP2lnpU4WbHC&&c`l2Jsfr_(%tEU zQlDExm}lZwW)vG>MhBQJ#1OF;^l z<^^5uz|4nk`^r%sJ>pS>N@R_&eyA;#C%MQwCFN7hBWZ=)(N01Y@j*(Xz`8}oRI73^ z*#30c;Pp^0dtE@Eu<_%e32S4Pg@EI$XPfS#kybM|5B*^;etl8|B}-0-VOFPBBwnpC zaS_ULg9pXb;NPry7-sO}Vqyh_8xtriYa+($HwO@TQq0!k1TPlA^+wxEO>K=2d0U?K#zjrM3EoGGQM+@(7SxY4O-#PnTz-k zA@j6g9YTsF#Gl88N0S`V>#n|j;P23BF(Ozc|D_2b&=i{NK2B1+7kE;*S|=u zx~-_S%!zU+wXu$uEAiR=YH@M|o7OLMbBeB-+b7p81(Wf z)vKMolCyj?jmeOvNoMmbO4=FZFDWxv1M`Nwqu!g5TEZ%_&eX|1ACQJkHiyS=)hy*K zC1@?qVJ0xY{6}09w8W6s%1-JEdCVEXVDo1yLSL$Vo3IDEsTrsdKFEFu0@?oxcDSCI zhN0V-#Yop87%pJ!Wk|jX7KGX8_}|Olzi&Igdb>{kIY*!?{j@HvxG6MMut>HTEm{4L zk&K_iEU_hr*MEK(6-1))t|NA>OrgQlN*Z+G9cMe`9OVZjAA zGY5D^27A{M1VMZ4b2!S0-xMvCEL9@oeMc4k@&R}!)@d=cD}c6P@kgYX%z&PE`e zz&orkl@k3e6tX|ZKxirXnDmS4yM1GDGQL_EoLcwBBA>!1ApD8pQ_R3v6kLnHluqGO zf3tX9st>ob+i()ETh2yTX!1s5$FixBrVk>RB1a#MqY!9FF4Cgb49rRC@{7jJiHfuU z!7;pHH!_@+snz59p~VhNdIgpZ9wQPY57L|(i&S|s70r;n4MywpvQa-YhV45UmnC)* zwpUc@ZuFDbOayroC;Zp(Ex?Q8jD>IB-L_o$zkUV=Q`!@Skb#xlYhP>{R2}UmJtD#c zKPU?pv`|p&PMkR)(HLVk@nO;*Ga3GhD3y=EDOpuCwk6QkWkFeEvn}1p*`-jpS9-uq zo0?fJ1A>x9D~F+o9L{4)0_&fIao+;+RkU)|jOEQKAI;=6iu^kxu z|5t!?10UyDG^M4q$5EAC=of#~n`YvDHIhNS_!jVOU{tz+B;1~N%AG;*{bP|GfWKUt zNb(u)(I%zek`y(HKd)G{ZhfC^Vl0Pn$4U%+H7M2G;BbWnMC3h*@Mt#n%HJ==oQuzx z^y!cVPhAWoUC9FsNHafap4?KQpPTio^^2492Xdv$?4m(iwik)Dn)aw1U-hyoMWx57 zJYHAkhCA2eEoHgeYL@;!KDoL+$-{7<;L^mYqZA$Y1+p5G|ihJ#L%4tK>pMmY8dL&X+uX_R5%=Lo6m#Q`ECe>9s(C@TSf>0!kL zZEvD*{7KQ#dR)c}Zrs8eQD`=f$Z*d@&6TI%txTJDZHW0LzcL<9Xed;Wff}fW*yVyR zcW+yok`Fxacd$0Oh&%{gjdpzlgEtC4M^E@S`I7X^s3_Y^?!vU!mfs6kokU)Exs$aG ztgusY>Cun?J&1!E$?I%(w0`mggHWLdF3p99vBW8OhhmzBb)ceSt&5j!Y%a6QHl!Ob z)Ear&*I}BZi(~|bp3p56By>*JppC{@svVg^ayL1}Q^bJSw0ukNsO0$P@rLi_eF{G| z=2=3|8cfv8aw$78L#{pU|L&U6ffAXKYuwFdeH{V4k5 zkURDF;qXfiY(a$|?P9(C4m)<Ie4ljMyKy)EeEk=wreTghEW?ta{xaST|M%xq6}t(o|$yYH#?Q-*t!K?c1}uFg8Vt0%2vYgesC#O|4tMTy9?$Ltq3j8zlmMCjYWxcagT-L&v?i@MRI4PXnaJ zuMm4(dZQKb(Nl6-*eXhn0I%XDr8)9WF z5wThIb4El=D>8jAnTjYkQr?&e3@=Y`t*|bh>5(nyF5`F>a!N>)-8)l-tD<-2&Adf!BRcqlxM5G43$+C;Q`@JB{-&9<2i8Og+5FhG6 zFr`eW;m-zF029FsUxPoXU7WVBt!?@}M`jPrqCqoUNP6AVl+|?)V^Y6JPCDgn*k2;# z4_BCeS>4K4KM2s3i4*zxgR7$>8=&RSRjR3qKTVz}5~a#$)}u^lP84Quo$A?x#uN)Z zF_2XSv1fhODTq!!M1)b;U||<0R`(gHpQb;X^@Iv_EvqPzPmCB;2uoIQuG%{tq@aiXa>y}ruCrM!1?>g?AxLwRTMv@^sDi>7mVqQ zD5?4JFz+sS&S`okBEfhK80oJ3$=5xZxwlpOgW(KYNJ3BSj@COi7bWK-w) zbnsdfIm)?~zo)aQ))$=T(V!AKKu8=>iVNV z!#(gPtLr@fKY#l3KZ~DB#*X=&Y;K+|04 zPX9H9pNQ;8VBzmhRN(c8KmaBI#sxitgNH|ehl2yb!vR1T5FG9^5F!!+4jw!*^&3t} zO=o${d5in>GQ(f~hIlX9A z(cvg%@r%$VZFyCYbaiq2?z8yjReRFp$#WTwJ(EC~hwraX%~~sJ@`3Xs!b|aB4pHy( zt-%D!e@}|g!2;LmT_eY>{r0Hhp{*BttN!Zse6wEo2B|-Nqg?*`-hVU&|4u*)!RF_Z z=$67t4v_&#pv1gsEl^vHjbkH8`qbl&Lw`}B97n*c?}{E1!^%$rVu?d&er zJ#`qEeRwK>wQ*SI9{PkV@{Wvj#sRecW8$A|pORXC(){wI4bX&0_kLF1jkUKJIlR6U z?=0NPGjY9Ce9{MSK9Z6$f13d0{ZByw^{1jRGBP3oz?uIDy?&mK!wF_J5AvPI$i3?c zQS~1t69B%64Ej@yv;U6+0E7NE;vZX{{t=8@VI^aGBA#OWP=1`Y%44Sal*WG~fs*!L zkN@Mv|C|5_(EkzY=qWpPvB4(Ot`t)q)+QqWko8|8D*H#3Ao&UQ0?=B#&!3$7kG%Q! zLJGk^rQ+QQAu!^;a^N42Qd5JTSYImJN(`IH ziov)j05u68pF~~@qG}10AK+t&i02tloKVSVJxFFJh|M1CfoMUo=0M)D=1;i;NG*hC zD%}j%c&4cIf1qnXzC{49EDA6717J8(97RqFZH=WwZBYM>dQ z@4$ON=)ePzSx*G35$-?Qv7vynLV`*~oEH-Q*1XW&IG8l!|`c~A7qw&>WpiumjAJYeD1fcw<^3nkrgHZYaO~mys zF#8lxI_d#w0ER~Lg!X)fBJQ~8K2Y};XnkqSN-IkkpfvvRZ>%g((kFCS+Tmq-FrY-M zl?bt*e-a?8$)cU<1GCokM^vBB-|J}Qo=A-UsUwmg5OVNuhPEdq>3>8rL}A0b#A)&{ z5N?<|CTDEoiFf$VgZz_?=<_4mCw|<&0uR6-#oufhzUtgKy)%7VKI;u&OaFO(e_Tk3 z{&Q|1k~;X0Nlyn%fGGI@T5v_@JN)i?^sQoc!(!igMlE-N#I;~E zwtRp}(G%?vGvYJ{xW!hFB~?)!s$B-89!Hh--DQybg~#Z{zQ*X^#?06fl7`6_0a=k@ zO99rD>6YuUbls%N`Oy z{GYwz4!CnK4!@cBc)6t8%X;<%`Q+o z&jPEid6fVT?>|Bdcu3*E(23|UqJHJXz^-&0utxGftt0T_+``{uBr7q>|0}Xj3L#+@ z`S)O<5_yfM`=ty2ZH@t&9FElLW6EmX6KVP%!BeBEVFe9~rArKBPXnd>k3C#~LF^}g zfrM_kfo9DD5KHir4!&#_Z$M|dUc%bv_&cvT+sDMGQvYcpV++lhGll?GCt?@!o!ZGF z&=PVdaYLYB#i5}TTBV}vbGBgaYdkm6i2b-QGy)U=$k#WZ1-!+7u#@b!5(7@2e=7kx z%G!|FV$~@6Wb4U$+V=N}_gI06dF9NS`A<;45yqz$YDiJ>4;a+=%;}8m%;Bl|eXuhAHmX`z0$?jZ^M+#%w2QH!MKpl?foD40@;~-EbvF%L{Ow6V z`zeVhh_X_V!f{B*>)(MbUYh|m1vP+6r~!ljZmOPIt8T<507cz=!M}X&&@}v1UO*tR zK#51RA%N{l^uIS=0-d+q_&?kE`ouVDj z-ppO9EZ*k>B?t!m{l6r|p;PU@lCk=?HvM~+14l8fZ)L$g1fs1XG4OsaR^RucM0xp!9BRU2X}XOcX#p+=e+m( z-*xY|?ySA1XU$AkSG7!cJ=NVc6l+lr`~gb;1P}kIVgD1L8UR@;)BXC9zrNLV)Xw#( z%cuh&^M8f;&sC%C&QK!7f5ZYVNg2d7|7}D6IR~?_yycCa7t&hU_z}N8V~Zzz<{L-< zL#q4js@v}$N(`F+Tk!wL_CMj9kWF4e$QI=S<;mK}8~oltS^bxUfaAQkV{a(&e z85zAbx&Is>x)|-TOURSfwHaI9lDzw}lnSVV*I3I(ey{)O!)|J+!Y?-EFU%(r@83RjU7u z#eb;2wSjtBcRQF`)mPZgzYt3!j=tv|CuvjDw(wz*8=Jp8BgHOmns6M^|E-&A|1Igj zKMlw-Wt9}Q!&7=B;wAExklpr%aCaGqiCr(9cNv|c2Y5~RuXgr!-A;#x@=%sAbP{{+ zub0RuH)u)ZZ&a&M`WHeVCo5*Y{{Qvt6=BUO-)ne*Hg=ijLtsfscFvy>KnHhua98Z((B=R zjeBP=m4lV0wH)0e51Bm&uaAWDX8eq51&6ZdPgcc`F1_W~y8MJW2X}%h_s$&UlULzt z&oYb40vUFvM0r0o1=5wRpZSrp(XPw(4kI^B*pvBHCQ>iq^A8+vPk@Dj?VE7D4%+d{ z9x9u+t54T%{vIz}vN)|C_?J)jKFwA|*CqLi_e~Zu+@24ocN%GZH_V!WIkOK}sTmi| zI)&Hi<%;Dq&t@2xGY$_9P0J}{FXpt2VQrczS`vgu8 zqkPVQ49tlxh`h91>6>IA5Zqp=3(Pfm3o8S24OaxWvzxUhufzUAd2 z*M(!%mn!D9#(Ke8lS#+}Ez5-BtlN@$Y+27;b&t?G$Fx1(nZ6UpCy9fkw$PJx6|GZO zM46O%wnaB1U-!p@+Z?UR30GsgYXgrGxRZ_LP{9hv)rpPtmA3H`UNIn!-%G;~QPWwJ zx-qi0AM+FV0cuj=3H(ASLzpysV8*s)RX68_w6WmfR$r%sw7v4WW>q7Qma#9e8mnkN zcNVqClP0KnaD8zke#h@wta$71I45+lGFU%!>bQ8bv8+K<=6Kk*v0Oa26jW{E!E=(8 zDzF-=Vlj8-P8&k6UHmq_JkX;@Q3wX6|?<*SO!bLe%K3)55a!A?I*Bfc*RU znALzs3B$sn+Dr8jBOS-f#xkAV42I(q{`v6PEA0{7No)CZ^^w|B!_8jS+?xFO0G;&o zMKhL2R=ZAl)T-xhq;&S=W88*Y-OK8#fdCFcsA7KJA+7}nx8C_Fp~xMSUu5!^F+$W^6%I0|?FA;62wM+o1#o8R*IOB(dRo}kQv>cm zjMV|^{2C3jkwt9?$mHjT*Hy#D6N%}RVb@LCIJ?rjZ3QLJV}}a_zil25$YMG!t>6QE zKUcaM3F_AG^Rc?8^e~o3sOuA{jFohIu%92)askd*JFkpe)cMKPPB6^`13+HWhYBFe zw#>4Xg;ss4>S6cyJ33Ga7v_!5IwhRaI>|3P;AX>so(;Q3?Q--)pT}8vS=sy}?we@$ zBf~1G7^%vzNZEq(_IZYca`D>55=>-7@f^zj=a>Z#CSEs#o05>R>4OL4cz5YfgSvw7 zJ0Vv__ldiV;cCaT(pY|biH3rxkH1!uKi#x#%=bSIkhL%!*AT(i=6voG5W64RR*u}N zE0*=&(hmKaX6C@1oVS*m!0;m(OU01moaLVfy7Cb{1Oz7uV@wR4<4AmUyCv~Xr|D5dj z&a*sy$T>$0>}^3^un0Hgp?3lr9JUao1$t{(`ZxnA3F&+Be7T9l2$H08O`q3 z5x(ztA2I}yOAW;=*k<@_m^3=BZbi5NB!C|ySU$%7~2`C~KI-drk6Di_4S(K@A=FAH|fhFcpA`na!)M>f=A3ewxs264LC-8BSt z^;<-UqZh8D;baLz+q^{YE9Xz$EfSW*iWg-1^u?=F^#V2nqvoBFE+fYITZ zcEVFkH?`u;1**P#VE@GYLz=(-{cEH+)tdmn-UOJ)QKR54nt~$~(Y;ae(f&bJ_vQN3 zgD)dLDeRQ{{1o;Sp?WLrhE?FV>~v#HjPwY3)1$Hewxa+hJYw6L$Z|wC?f`SEOmg5K zzP@n)eY~60rajGgFV&@6uK}p{Kn|Pm5&)2rP>vcVZ_&i5AS6(<(tB@E=fmpQ9xpAT zuTUl)vZa889wLfoh1tnp2(jbW5b2ZLw(5IX?~6X0R>Cky0GSHtT0-i5BlJO=Zq7`i z^Lh2`DEHrLU3Kf$x;kdJURk0jI}QOzvW(RI$t2Xj=_&H`S$j17v0469Z^bzTgxtHIcZ%W> z-GHiVplYA9eQTLM*3r83e7C-OGWB~!5T?y%?R)PVw)pFIYtv)`9Z*2Up0MXkI6RS! z4vwESF03vz&Mofw(>M<91>p&~%>nEbLJlv|o;M9h{Nv})@T!M!^EF>U2Qzxc^ZeFc z1%L?mttr1(IM?sqb@Mdblq6wUt*{?Pu`lfG_+v)c1p{rNwt#Jz^+ zx8oI#6;4^ByLt^e)dC<9bSTJm{^`hfRBy^YBiGAncVRo`lEsu;-J6cE)(NON=bX*< zZ`zL0t%H77jXDJ2WW0g!{R+~NeZgBKo>sh7w3!3*rG+U#1Npsr(%!PV-GH4(d1mqmEehyv4I?#@E}*wLK}0u=(7$GqSLr4;{37=%(f zu2mt^mKwMYh|>IjBfK%UdQ$gHIC~_P10DGF!%s*Bka?ZXAMgNK;injJo+FF7_tOVx zZUEGS_?D0VBnT80$I`i#p+%LtwM-&lg2=17)cJ!IlN(PKBdwCvxX$yW0OT7W#J`%M zMLWlm#eMyTSmxts*B)=^)Dk=bj{-#o4w10+DBQ4aOY zZrOqgA_tMh<&^d~v^LM`Rr{P<)ZgG)JRDp%@sWxwjbKERB@B>*EL*THFq$-gh6wb0 zrlpT9Xevvk+LSZyju?%P6-0T9957St6lT;MYdxYmjR zQan81X_!-iKD<3DUUIqJ^k_|o;iFJ>>Gs<6MZ*s2()AO847A)>^31S!)M`D@^}s{m zp(d{ak;T7#FJA?KPe;R>{qSGY;PYRIvH$uHJ-7e=|Ni^svFH1Ljf;Re46r>(|AqLh z1DILAqCh~td-nkb9uDfmI|%6aKwEkD{sRgG6frZZki4#qcQhIai?E!+_pHi}3G~mT zU-YbPePYg;SgSfGF+{RAJ}Hus>)T~sK#ThR#}fNq5U|8`@Z$m+m6IWTB-!CPnC=V=^5Q zYF!4dKuW6WLu5Fqe1}KJ6%j5txQW2q6xE)emab1iQt;-NbJun<^ ztD;nj;4)9M?UTBv+AXfK%<`ppQpAL$N;`cwt+4mmUG|c&nVjV4my$LSLuZ1b%yME6_&{x%_wt zr#13w4!nT)ftoRDNOKR8wZx#gdDR22mJrWuNYznZu8LlwkWg$ z9F8Qu7?T=g?iaKq?jJY$cp3w$`qvZn3n{rJkG#K)}k3^C) zBIll9Iw+KR3N2H}*f7^P%Lm16u+)^ekr6q`Sqob=#O?M~Xoyd>`kNPA#ebitKh876 z(p#aHWyf0`ay?)bP}HF5v=D9k?xDBy*gEd>~&}1AAOLMqG&NDF#eV zR>o6!p5W?2SyB;`;;^9m=>7PP6<^8wtyQTchl1&jY+EeN=~ltWXeuK?D^MFxTG4bc zmSIprq+gVbFSP~30+T>5-rPPmu(9Mq#i+|k3lfd+Xuas-U>V}d3fy5qX#2xY9Ab}V zs%m3SVskFwae8Ca^UuuCR9p0o%QX@{p=qg1mtzsrb}ZoM{VLYfQJZJKTY+goRo&KC z(7_tReNs7~&D4Ttq^q8tbc-TkbTiV}|HfI$U)*TYCRsL9wzC}3zp&Ow(8J!Pk%Spr zKRpGbMAJbk$|1x$YZ-2&7gxdJPWC+{n{QL&h^%WFK}}={MNH{Hb&puex4mk1awnmn z>|{B0Sg8OeL&=68By^Vjdz$S~X3=AkGy|-XozHD;S2a1T?B)3r0D<`OdGQpaW(pq#~{pt!!x$<$Yi{0dINmYJgu&*%bYMeuEh{^hR=hcqA3yBBCmj989pMqDom^n zUsv}BSKmr9a%0`+B?i6RNT^G%KY8eer%P+!& zg%sL5Bl>}0qD-&3v8iN4l4eFASe3Td-#Rd8l&5vDb0*v}vPcaEM;&H9SId}hX8((<=*f%VA>&^R2j*{sko96s(Hsi zA9Ha~#XAWMp9}4Rp^f$F5+Wj*Rl7h03l?| z(cwqQMLWo_Ns6kJZ{L2~+QeTFEwYd0!dd8=kkeqH7(&LP+~WCWj6EQ_n8fE&Q+(ed z+#)WDTSu0>B|}h~wlQhB0phwj1c6bynJJmDn|}yIiz$e+^Ux zf9hq<-6q9qi25)x4V%gbnbgo2pJb9p1vr)xzjT#GQE4Fv1j98&=rM#DmJ>#EVRNk}PcT{{+HMc!tgg?46ZVO*R$?Ftc9py6gK{Dt zmb$OPzr*+3&@HNiFVFDjGsOStv`mer(d>87@ntZ!5n`v! zY>-X(1@PV*59`Aqu%2}oP`cJs2FE)S&EHUnqROWo1V)Yc!vYzk;6dkEpbfiL@vU$m zjT>1$2W2?$7Z?@ejx=ib4q`?rW=cV050lJT#ria-lA&-;30$i!y9PL&W{4*-O{`dC z1#Ns@_F5H@G@bZ)1tVpXyDezTFYpzDX*?hH%B6+0N3BwSK&;eInoCM~drjb%R5XVE z#x4eFn4Vm}#Bw3B26GdKK~|?YTlz)R^||mU>Zg$@J-~TeVC|#*GAN0a+tuj#{eg@B z_X2b7pk74m()mvDo9^?8Sgyg?pp%2SSQ%6l?Uw|_^?(3O*%E>FZ4t3Wn z{LC$My#{?)-Z```@vmDnvXA^+muj8DL{jDofoM#(?J_B0C#(m}=Ztx`7(O*OyWB#3 z;`|9YzEv_xtshPpJ18Bd##GDhKc$&2Rx-vL7XX%wl~_3I^PFC^Wq}ECPEhR zc~(O3$+ke}{WjMV>>3)eqFA$Zw=i6<6J>|gW;F7h3Z<0X2h)WpV9~$@K~x(m13^dm zkWn1QDs#@TA6y+zV^b7GK`!TMI*@`5y97@1^MOi7`LMv6V*uHjlhrOF;S^P0EK#?O zLlI{EeV&-E${nkdGT5<+P3NDL^cbj8muq(G9ITbs(=SeUF5y zYJC>Sb`|I;UleRZY{Dw#*MZ$9o$O~Q%VRC)&Ek2nom1Naa&Y{t>bFfuiF5aUyZDnl z+_foh4%=h2o|hv8Nb^Rn*LgdK(B*GRzxM6TkND+a{919ELDl2O{k5EE)C#)Oa$VS(Euy zyNigIW~{rRKeKtYTmOZa(&NOE&9r}^=`P!`=mA|PgOhPbDecT3p~KTBD~lVsOZz}i zL6-?F!CMD-c%9Az*fsgp5}=m&a#Djw3Fzl5`B5(LQX#KO(K~A+!5@LL_K6cf)TH*%1Pc<*;8=VtVE;4XOieo zEBn0S%q42#n@J)gNqOH<%5%J?x27{a@Z6?NuwV5pgWckPDZvMvTngHHIj)Age1H^2 zNOf}s_F^4ke@d`LB1SkHQ4yB< zL_N8foTAWB536#&&ETaw29QDnP&mUXlP0;VA7{o@Fl<57CTGkVh;UZbG42tShy`av z*n*r`Wg{Nw%b#NrV%waT&VR2~Gf0#a<4}M6Beccn$__u8B?;cv(^L#3aVk8cG|5we zryueAs!#gyL}`CXPf}9mC(JW(2RTGms!Y7O>@JhvT* zBzO+X{gj)8o)khMfY{*OCz+lS$1#@esioE+l#I7Zxzlc%-(Tra+<-vQ(J8;44?4x1 zgf4|N#j9@Ffrsf#2}qIg>hvy!q?LJ}dOh#332vqZC~_yyaw#X1^6JhVAs3$6#0#TlVFqX1|=v*Gj` zr-@(UzF%{RVH=Q}WxTpAwlM)urpmg|<0b{L-JL$aod;TSdieDTwN+_Y-Wg2LL!#j) zm0j0a$~YK;%>q)|Q88>~3>!MW#P2Dwvi2`3V4xSssr)iEd? zxDsB*nF(t00@0Ma!(&-55}GUtpy~e_}!2{|UzRl9dk$ zB=nbX=k|M@3MH&R4lu}ohb(LoeXsPk-^Nw39W^p*I^;^!$O9oorXuA~lmTJ|> z|H8Jf=#P=(*rDWZdGxia`@M_}l8c7HX46u{R_DlE^oMr6&c7#`(C-hehB=@$%@PT2^Sj9~d<=+R7_z zkP!?1;*jaA7R53S0rhJ7z_sAuk;=#Q`W7O3V11#0 zNTsuAL1%MFTzlDJ2GC;qWJYV3j}FVKhO0)N^v3r4tVvQgeGhQlJYz zIQP9-5$sGSf6Uxh%|LIZuE_5Mb&tP~;10R_I$XVo`wFXL!?15 za;#Xa2Pc7SFHQ_Ho_lzT**?B z(h$Ck+UN$=ajE}ohM9P`6pNZGE;StnC70h2iAYxw)J`KK67|Z;WL~%zhw8T~yYc`< zP)5QOag%$Fw(5~H<3#)L&W{ds4aYk*EZDs@;HeG;A@oZyY(%E}Sg~lGwB?DkY(qjX zU2(J+){K?%tT_6PW`X)IL?w+Z7|Thx9=D3v>(LZXwE4i8Oms%}v?PUVfDZ%VrT0Qo zYNfHp8q6ihN4&`zQQqxew6H>?R7GYTp9!dED4M+NXBx6l*a3F&YPYsS@dm#<&GfOj zaakgbjigvH#~tFKvQ$v+X6~bIzSFZ)5)Jgo_B>k+(ePtlrn`ulDQ~~bvmi+>n{hd$ zyNXXSy!u-@2>0=WWHp}}seAE}*s}d8Ht9%WARDg#LcE{~D!5HmMO_4~V5@7&$Qc7; z#`Zs^1W=X*#H6@k{y65C>*BbLhwI_*Zp@;lB(?|`+Nx?(jhjCYb6YYL+aVDsKwqaQ zl#;eRe(8k>e0iUA4(XMQqjuTlKeHZ(YBe&J@&o9_Sr$(>-@Bkl>FfFYYzzu@ux|ZG|CUhtORjI%kL5B ztJ7GIK1}`=T$AbX!d2S(3o-vjKi_mu>J`1X1y1C*Zh%tDAu(z3$H|(|UsAr*{obTE zIB7B23E6q5*)}P%6qYk~@PmtjlKWp*0pOPg@z|LQv)%v60`T)iUkYCAUeh%p{4!sX%bNaTQ8rn__E>2FVBeTuBB z6}TdfVcR$I_PnCqUn~8PQnUK%6?ke30mi;3>a0p?Pa`Bb&N?;eS0i z3DWr^s3I&(>z{5b=hdsVdQh61xvH(~T`72$#l;?Kw#UH}S8jigq4Y2$e@w6fyC%|j zk$;_G{}eCtXE4Sy4{bb^3VM0BaWQs7+GBFzTQ5|?Lusa0(7w!(V)OC$V!c3{yKl{W z0S|-kf4qx)Tw-XLmN_#IVirxC})q!>xf4QiQ!?adNe z_o@BCL0RPHVcEBOufQ{Ky05)QxRmo0lmPhP;==HPDZ6!ZCjWU^(FDOQv zZ~j6Ilk0QhUNaivW4Md7Xe8K&7UTa35|Rx2@-21n8L?1V$qg!&0b9 zIiEj_Ah?@V!bIdS25jF*&)%8N(8h<8OU-qh?OVmpjt=gTRbJ`5etFzWP%aeyA6;;l zga@PFVR=(>BI=N1!uqr@|3jRQf_+3(8S!+@KSS48(J!6#NTDf`gp_La!5(1*3M2x){TKA1bjwZ3&NS(O}|Qf~}{n3mcgw_J`&$1-)_3 zvib5b=lqImzgF~uTErt^(EZGM`o!*op@9ZymAQoo3$JWMyK%c#nz}bDz|+i)e0+_j zNGtwiK!2zG+4#txj7n7uP3=qFeM>Mci+{+`;T4+NpGG7rk{`oa9p~dFxm0<=qBtn2 z_8!u5QlbMa@42&0=P~E8yxEQAH=Iof^-Slnh&a8;_T(%1J(Ot3MTavqnB@_x7;U~- zuzi%2Y=AZ2H`TI`R37|5V6VhG^g|^}j2EHR&ep@)jDx#Pwwn=mYGL<*?tAc;RY6a~ z(AO->q-(Fi90aM}i_q$lmFuOY^ z2^jij+uy9=Civ*4r;9Hzg+<|`+>H2Emi(ucA+(7&Qx2El($5JU8+Zz~R9fqHxYV_A zR3H!wDKP8ZYIRS}{s^{K21 z1M-s|cD6p6LYPg3$o_)I>4B#elJ4;8%I$FN^XNcDR%*aVx!Zr~YPU++zIex6+2Yt^ zq^p>6UxGg<#v6jG{(-M(|U zpN(%H2=~IAB}<4}E*cbl(??7MKq}N9P>OpGISCK~m)1*U#pMeYb~#mr%Ls-NIPfLp zbD|fZ8i|~-?}pEu7X(^vBj)4Gy7#W@COoC0!yfdrr%-Kc z9JzF{)5SR4yY3}`!^y%Ak#O5I+zfa~x8sXrP^FtMfSRp%vog~2rNLbLfd~uR4D*oN zePyB&e|(Lkk2N2)R@2U8e|2{u!rm%T-z7F&{S>F>p*bhm+k8I!@|A&Vntm>2j{Y}1 zLl2dD_0P0-Q*-obC@Z=ssL^Ip(f7*hg%&q66`Pvo1CpPCF(pPSE(w}zz`cQ7i?h)c z>LDB^MLaA@94sG zkI>9fn+VqSDUs++GFH%0!{NYg$Ra|XU~>2+lKYSGvISi97=RJo{YEud$s`U)A*Bw# z;wzOlwXt9xv?bQv2Yc=Hh3l^i7mPSF)^mw-?sYZhD6M9m7$ zSvIk%2-SKPF{z5^WKCSbR}@k)<%_bebn5Dj76;c`*h`r3fY~uq-rmaHdJSRB@KDSw zHH>vjHd}%jw)GBmgrKnrP7(s?Z(-ym{Rr2Vg?@uC;y;>v%cR=~DNtpE-A-xR zt<61U)FQ6^F`nek6mAk?MtI?0nw{IG(cof~)(XP8+y~%_ zJ~6JU+N45pgB{Ab_I%}$I?;qI0PfR%C!!)IPXM>gbE+;mZbKlxNFRtk*&PQ|9OH6s zrJlU)#aO*500FrW-^7(JO(moIioa?VQ_{=Ck2?B{L=qwBuO%TX>RzbF^4XP*V4cqp z!3)lHG?Kl+DDEf_>LVIO1h~@F1x&F`nVf;w2v$+WywJ%(KxQepf3`>r_!ZAXqBwa_Znsc#y9;|v@V=_8H`b&u;M%?~P=bgfB zyDTUnk;=^Ed5f{87^8%w*r)quGc}SwFv-+w?IeP`sfOWUb)$X!BCBj;BS$VVTascA zQZdu@Y@a1Cm($zKsBY&s&lAr>pV^W>{Dk^xuiu|@XAmj=(uC1V)T~A3;nHuca3ld` z!U`QeJD$~{H>Ecfb&s!YhLOu{xRJR98WcFmxiJvZ-7sm`lp7Q{ZqBlrwSf!}`+XHm zO8rz9rX01AARZeoLH$%cVp$l#fTyV(B%`>_eB38NqNP}tN?tOYp>t^>f?nC~dfboY zA-;mT-(RwhIgWSHCeh7jIVX$|RO9+|qbcc83MWHONqpLGGNOx=xWFn^=NpE2O(S7dr`=f)w9VMv zc`}>_s2BgSZ>WnVu8hZRO4%Yk=g-ZkiPs}BP?&O~G9FfgvNgU4i^fEMWT;)M^P8RF>sgaj*h#7 zA0a;c%}L>(@0a5m;kgky^3V8-o+6}Vd0CA`7v_j>D{R@U1#Vmdod^5?kb`Xn0f)SYBYi^o!$(FQPrG=KKa7hS$S-T$8rG ziN}*91#VCySH?aq5*=#dqu$-%)AjmR3qJBqoB(B`B}v!XpF^-wy*33ql#Iy`NlgJ< zzfA1*h1O`(y&^51y=i~E2z=zKJkValAK1)q+2d~FS$3z{SZ>tU?RLQB{`fd=4YB~% z*xp45T?!NHMP_dnC;fU7%oqC;9NIFgx2PyfMi19Q)Ox$#+-;-P5EG+hT~_#HYofl<>%AU)fY5Qxt>^fI1elw&F8L#7j?#)hpERnYlZGb zGxw6ckTl~0!pPI`pxuB6Ohz6XTID{D2w^7MfDl%*kTRnTkrT502wC#i~pjdtR zm(0gr=fP1K!A6(ijv6f&Au1Vxjkw*MnWA$vHWmgM&BIeHL_WVALregoUM3xpY&ks1 zu`bC=@Qd*#o@AtO8&b#XLwYs=>x$ZV@xtO)u$;>}XQ=fP%x0bd*oEExw2dND@+yAYO|yW;4Q-=>_$1 zw}>9>5td9tNV<&AXsBA@$wHC(<)rj(NG8uLbAFBCqQau=-r);;;lQ%Db~P3qt4al( zabMeq7t|>YWt*r*KON`9o2zFn_jK@WZwfj;Al_5@4j1H!oJvrQh|@CR*?wys=`Ihv zU&|l!FTq{j{DjVIh||%cK!ao{@@@Ch23UJjY^NYD5ocsTje$i;Vl?E!wWorm)mR9x zQrp;-Nv1z&7wd90Uo2$N$aVV_bl)ESNcC)%Hy5Xrb4MIyv`sxVq{mk{0oW4Uq|d+Y z@ij@&s;XtW8l8x{7tV$9e`Mi6@dDnXBk@Ny;u_YoBN}_I+sW3HRQRayty|Om9(UAK z!5V+>_lt9U+46Nnu~Bx~M4PLZb&I3%_Wj|Y6zuZSUh!?{n33z3nHUAdfIWVd!|pT< z_v^Ztyr{U)fhK=DqYwR>n!TO~8JNR0WW$TH#La4A6a>vPoqW?y@{*M_d)EXz(jRAfT2m&_N0ZJL(Z~b~yy<`Ec zn9wseYZ`NwDJF}A#aC>GSq!VLSgvG&Ei__P%#q;FmJ}5*6KOw?Y})ch=N1X}J`n5M zBGte1Vu-v|X3^xuciU{~78!WiCj~G~jbw8cDs^PN*%VEw<)}$fDvr06xiaH?vTfjH z1|@nxvLHVmf3hIavD2c^UkCj_!gW$ za-xy22;|knx7Yd`Oi|84VRn4Ou4--UmO}IB!BKhf^Hx%gMMGQ35uJR$wNTX&+O7Rc2~M6qbg5n9&duxnQXRPUz3?uN-m4z4j@8A)t{; zplG-(?a(~iEL-EkN--#r;GLsVYOf;F#nLb|Lb7N zjU7!~jrwNOEu(uDgc0j6nW6O_#e@e?NFBwsx#oK3EM0}cAG>sQ)x-vI#a`C@!M(!` z<8XVFu4TnHqlv$aYw0{UHl!x8{08I(!_N=vi~K1>B_9XmqtMt&NgC+l!irZTnq3QR zg54BgP6g15GjlaeFzn*nRJ0cJ?&acLnKD#mgj^%MZ>iBR*hE~>4Y$(VwZMB>6h^P& zt^&kN$HBl1kzN^HanpH&ikZ%s88{B>B2=6l&lEy~4k&eUF!|=6!tXmG zSaZ0Yh^?w&N+s8e5Ke*2GT4sUMV7zU>jSS^3OpSb@l@7Qj5=G*^JYQWloKym8c5IrrP;JNRP_Q>X|21RU zE1XvLMG)|ffD3lfc#OQr{jtF{{}|~&v?Y)R5@0jc*qbRN?Vc=?T%+!B|KkX!4A=?{ z2*@SclzjCs7lrM~oaNwQHanEJrnufUX3v-tT%rfL{_vOCPPeJmeqRM(7EM_rs6L zv+VD0zM*-k&eOplYmlb7Z4i{JHZMp-MUO#8Vm8@U0=|ErqL@>lJ`)=y47g~I!5s2W z<>}(E<(^XYhu##u!~nHvYCxmO&s@sM_h)P`-_~)Mn(SA#65Sz2c*H(j84{`+txsxB z7=zteaUKf;(Q>9KNYuE9DGa$Hj-qw=IEt;j4E##PdfV@R!Eq(F9yOP}&4G2jmrP}i|7D6D-3Hu^Mp8qVH#Y>|A2-)U%ZH?#QoDXjVc70c<8J07>qMTlMOfY{^8O4# z2F;MfsxFc+r{`a&!gi0Z7bzs5<_rQI^^427@X&l3Nkk8a9!XT-E+&xDA_5&&7eyh> z?<-1hb>fM&D*1#w=gXB$)f>K6L%~0kWpU?Q4jn+ughTPze+SHfMH0OFAZd|9en$rd z8oH4^^j3Ul6p|OlyrKTsNKJP6Y-I+akJn zey3s6g6iY+v)ZY5@^^pD8%qte5x!4WWSpY;{Axz#PLm;@XhBm?hMq^d2|7W`)4YSc z_E0#9$Fu(i2Zs|R81kP9&v}|-h}Ry9$7wXZdp>z|Pt^RsmA*Xx2HnRqWC<*SWzL!K z#*iKPxE{@COs0Eprq7k1 zlvAoAL>kl`$Z0{*_(fu~3iOp^JT?33EkD#hOA55w@@G!gO59o3iB!OebCK19 zOKDZYVcS-fU2DA{F^T!e4G1YeP{XE{)wWB$-e{U=3?|<`S5902TMlv~ZTy&C zFXcd)QaMtokZ=96LHp@~8w$tUfTcf1e9|`cg~znU)E!H)L&dh*QGQ-US|$u5|LpjB zwiS&ARLLW8UmkCl#RDSQ}C_<{9#MV|5~dXlYF zy(NeJtlB215bwUY`H1w>H@u4}?#PKEYw4byQ)k=3xxFp~Kvr?o@IUfQm!5RG+`(M2 z`P7Gm8^&J>+o8#9au~Zds{BwtMq@Vt8%5ym|A^b5I>xnyV+K=xJX_%`rZCu^a=H7| zqX#$D;*^%SdC~SZP;}v>{WFw#3aDmy+51HPj==K|%_(wy?+7FR%QNYsrryh^T9swL6Kv-V{_c7wG04sG(# zn;rC!;&{pr6Ty0C*LH*v|EIIBj*IH~{$4~<8kFu>LOP_ocIobtkflMoRcdKix?=%p zffZ>9r5gk(l?DZ*MB3-#=kxvkUa#l({Pi4`TW8LhIkS83oS8f4J?|;O^tnI~LMjT+ zRD&|YMPyiBS9*UqWC#F}t-)aVfC8MzR z10#^k-ShS5l=|M}WG}O>^wDeLBELd!Jf%{!4UG766!k|M#d+)+#!-XIgaPx{>krs{ zSaB&5uy^#$1K$|SNzaqPp6JrTc~}mrwvMm@+XZ#lRiUz=r*u23>pJ1b_Xdn7-N`&j z^_kv8^BVyJ!(OFtM!J14a3>~RQ1MC9FYYILHZWT-eokG}{9flebR?y(0K<{RK__|> zRPmI9f{=k*Y+(6yq=t4}kK`wdN=u>G7y5-R71GRg2QLN&RLdx^CGAa`C}%ma9(?xz+L5u@@2GWQY zp|hT7;>t3tibTU+mbIDq&kPtC?6l)qpJ&1jsii*ms1T}u2IoCCocgMSQ}uA@itC7u zEdHf*ei>MryJXxrJGnVM-Y(XxTT3ixYW-df=651bw*^4fxgzD00i zerOwyT`8K0&NG7*eYl$gZFfV8+03eHiy(MOS8#ajUD$_K<%amT&9QpphNnKib(oY{ z7p~ZEReF>86edy0UbzOSt9D!xkywKU!^$E=IuIBk{#xnH_;=%mJ?6!iiJN{lfS0SF67tfhe4xWVMXjcfMZ!Z~IPtGY2&YWL)OkYZ{_H{3K^0^1OJMD?Udv-MZ^(y8 zyl-@i2JVO1pesQwdxm*uO>Sy3i6jfAnG3fvQ-?w-!`d)s!c~T8e#Cow*o6j*oddhT zA5c&6_0zC#e?Y@|0`gE4t|6fZh1Il*E0>BW1S<5}PcxBzESNBo1iZ1&*js5?FWX_}ifPgS9HXuw3 z9UTMh9|9s8LBwe2_d)kCh#2@}t+hQ!9+Ht3{SCkZ@G|e9FgLP5GS-UCQY}}WB5T|q z*@PL8R@WpSVqAZOm+D|Awlvf54sOi}aFXss;%F2d20KL~sK~ zY>9~iTO7*<`?p@Rz75>+lm7|=+#wbK5r{)b1NZKR6-DF2(}zh#98d3(M)B2>A~ zk(P>~`X`My%K@Nf8OQ?IvB8Bj-d4_m6ViB^T4})*sr<0JEF*HUYhbYH7L`q0?@v`Q;9RB#_GVxW7Q$r?+IX8 zS^Gu?rUnKEWmX+f4y3-msS?>fVuKT3%zxVA4-(+vzVD0OyX5I3WK+C7y#xoV@J=>oYH4|3m*u0}7tEjkXkQ z(H!I%3l@y7j!3)QSShZekTUQ^mK{SR3^N=r-20Wt=gfwAWBym@^7Ysddo zMTyU`N2etZIpp6e2>x4n|7?8fnq9Q??oojufEA_|k1{d=LjV&>bbVP=eCjnv9`jHC zCo@x1D}uYc*x)6;jeIxK;$RCvqYlj53O5H3f!qllC*Sb!(3{*TGu1cMKO8Dy(gg&T zy@qsdXdI~B>)Lo?sIY<@H#YDTp zNXfr(>K5sPaLJ^z&`4e~F|jh~>VkVr2S1*?SugR6#DMA-v7^aHy;{e|00LKum~a)R zNLNP^E4TR@xA*!PN=d@5;(?QTJQqvIr*5`E>EMGNtA#&Nc+F~0E2MR%}UHwh!Kl~%!<=qnWY(b_O`mPkB_ zUYVLdIx=N1GEG95`7yNj{QkvO{kON$rgcxVX{{|9I zY&q$qQ7nw)E~JlgUWEo2l_iDkI?(T`_%3yk^>_G+)kkLgRYd#k+R^T=Tby&5WOO(K zD-!h%f1P;|Hr4ebvm)~Ss$I@eOF3e7%rcj=P}zP(UHqD>w(Bcpl>6%FcN56zvtOR{ zq-lG7LtR6n(NtgUQyRF1&yY$far$3I9b1rEDPElZ z@xqnIKV6p&cvsr!WEn!jdpekG24ckGhh#Z2tJ zQElRVL@^S^YB~mvd0B{XKzvZv8fxNLqt+T~++E`awqKZLwT6!2t4r6V;5Dl2Qsy=4 z>r&RW$9JdP$m>G(E~Zb{xsSUT%dT^Ix|o=5HL|UU@BJKVGV+f%1y0&O*c@D^J9GQR z^sZcp$p0jcYL#J2@r&uVxZuji${XuFbnUW5aANDsX7GhF%1dc_Xe%{}pIm()sa7xXd<2tJ^XtkHAG1QUJY^h%7 zZf(B`@W0~M4L&o}990bcVlY7)=hwWMBwVAi-#%{P{qC22`QARa1MSggKfTthq$X1E zxIJ?3gUWubs^0+LcV5@IFV2Q^unD0bNuAZ)0E`#I@8kig<&pjcc=}f3bn{bY-?=89 z3p|OT<*tRt&aRUi7w}ZKcH>bKcUMETF1bwZc9f>B$e=(pZE9 z6->A8VC>nce1RX$wv31Ohy%GyAath8I~}kVFT3JB*yqMzhS{k~T?;=45pqsmd9&|b zR^*K2*^XXc?FQSK2a}i`ueK6XSyWRRY0MsPX&9wAb2E?1C+Ce!rO87-O--RNiBff| zw*_gnG;aCewC&*J)MsfAV3`Xh#cT;;2Kn6zmLc3OcT#X9EN}rEHo+t}besfcX~p9+yO9{A@$S!!x8vYTjy;v$J{x#G#gv4Ztn&qMJ_$j6lQ z?FNB&wY(0YQhHAxKQ34=p8Sqkk(Vz!`Q2NR)XS-zn8EfJ8+;pZZG1)qR0@>fU?-=J z=m7EYffcvU0gv*(cuNpW-aXf;HG91!dD;b;o0qJ+OMCt26_I7grHu3)2B?N^rXq5W zmQBv5wni16yefh7J=F)CXeoC=ZRSM7Gpy^B%Obsb8%@ruSXTBE62~O6ldZhG0gga? z&=O2k8+J>g60#ij;I=EfWLr*P^f9%BvmiSAw`_k4T)R|Er>6znOfiVe_4*b7e$P@` z<}Uy7IN)%7mMB|)_(ZvoDr`JOTK#4)g+B-J+0>$u-e*EBF1uv(m0nV| z+Hl8!=bR@0&Na7&GvD&YUagqea$l3bNfJHfqUOW0vWkKb0P`{-cevfC-06qi(|lX_ zyWHW0tR`mL&Ic>+nL}+xtCKv1J_H+7wj6`+d9HZxhBiF9|6#*&p>6(1OKG!Fsg>Gm zH(Pz!L1yj`$n3`bS0-O;`shk#J9BWN;nRlL=9PhL5iln#HTMTeYHk-x9mXCVdBcS5 zLun>v(SFaRBqb5Bh_X`I`mww7Z5ycne(h{4Xno7lU-8h?MLLcJaC`9j0G1p&y1&!KQ7R( zfmtdw#rB`70m$cBev$Szbu!l$!?mc(fvm(-*T1e-Z_p!3eB~@+A@rw*(g3E~J_r2w@O$6=?N6^1zsxk09VTX>>q7QPv_Q1P1A+`y@57h8A_Aw?AS`ni>U>}Qv5^B(C!Pie)K8+HfWHBdp9)L1yUh7L zSEWyxrRwW+46fAiHL)w_VxJ!IDDf;lAw-E{PIb;B$0u*^=jm*!q_?=CM}+XVct8e4 zx1tXfP(NI!8Vy%E+|YlZb$E!MW?vTe5%jYRHSy^Oj=(x)iGvrI zR;x4&XouZ2%!!KIn@+xkJ&EhJ?^K39Z&R#;K;p6>EDD+=NJ_Feec$++kL#R(@0S3q zQS|Ix!i{uqiKNwNPw__u&%m~M-w4A&JDsf8IV*~{Jbw9Ro_VEOzhpsxx1|kuQFW*D zjZl>4$@zjfQ&Xyg-%8tdqq|0lKjGSTcs^C?oIxeM%|hKKjYk3L`NHG@OUYZQnrinO zu!BT~FGLc2OxmwwmiNV^b?`ms)$)*7h8JXACKXY<)-ZSMYoD9%`W5u);A`r0o-H}I z4Ver&XSYV5Y-g`IJJ&FqZE@~-=zDOe<#pL{5~EBu>7?3zwi|T0(SC*}TYs2M?e-7o z>JR8AuuunZbV|5_kn8{zznqzhAo*!hZA9cXf^fE5RGrISm8=-{ZY!nm})*){OukMSmr|ja8-NRx; z&pam*ligs%Lc^y=1uB5|hHPzV)G0p zt00fevXODGVHE0O1HR%jVj>3U=oOmVh!ub1> zYA=g}WGQU)G5G2m^p2u)t3r6;K4=3Xy6TVjlciSEY@GY=DTZg_E962jsSJlWq7hB3 z^2v5ZDw=uE?MQK-)Qt2}y1}!5uDy^~R9E0CuZ-4fs$o1KSyKA~`MxkQ`wdOH&dug64-ycvmVCOvGWI80R6-DUA2l3@s#;NsTq zPeL;)^kuH$3~nb>1Cf79;_foi(w9K_SPgm59y+*XQ(m85I=T^F%mmaA8j@M())?+2)Sos@$QFLYhOIA zjh}RE?IwhY+To<828Er{AuB!>7|MVggww$}#-8zLwMG<+=&}g>aEG&7jni0v_1~WS z)mF_x$`|Es*w`fq0t!Yl=R9*nQm^pnBA;~P2-{vnTab#rD|Y)Lvay-_`Y7|dQo+Vp)MmH8>9{_9PKmZ z)%yG;g4yx~?=ReqJatCof^54;*^xL`;TG9qtUgO1sA8h$9X z-@bWf*Or?8pxCNHKjGWtc3fCXXP(3#P|abcu5Ph6*Xj3^ax4j$#@oH5upd&avuRby z<>Yo3bODoH)zAgHn@Lb|d63#*V?Dbb7l)yj(RcDcARRp%d3jwH%n+^b#LVV+9B+Yj zZR5XH%-hRc;K0yuiY8W1M_ma+cNhk@Hi0=Bv%SVjDdt+Tt_e&SYn>PE^10AO=@s;; zd?pc%pe7(@>{F;!!Ap#L_;`=Vc~LXMLp~iH5he+`^fFe^_ zd5<0G>_-SxVenM3QYot5?I7Z_xZ>pez}4v7C!_&}WLRA!1`;{hW7CV+T+JpsdBJp# zgd~R`a(AiSQI|FAlzVia>n2mdC7;vLc|8ji*Ib)+eJaY$$`pI}M`u?fLcFBubG8*e*CAL!T9aD7DfSp=eIxKFOMRtk%wYRZo>MI3|w`4i- zO~sDrdI39~t3BVm`qQVxA518tzh)Qhk&o3-HkxV@G_X3~8B34GczBYI8jn~_idII| zlG#QXHojb~Z1HwiK4OY}f0B+nOTuX_lAI#fs|e0RPmzr{dC}_~zxYt=(yOcjcZ~F; zXVGcRA*lG7HI&XmKa^3q;+j~2kSUgL%{SZ#C9pZu7<7IJyakU+@$!k6tb*`;uPOxq zAR^f!VnXQsYUn$qlb4pjuh2dFA83+!iD@YhZdIRiQjqFI)3rDyA%6%7(iFe@I8SHp zitkimqP^blB%}C>|AErT9Nl3iDU8kb-nz(PND`cvg4TQ23cC+evaLVi<{iPh16@=m6UPKJKQg8|iUta3i1X)R1 zE^wD*-S`L{86c2oI*}q60nsA@oP~UU8{J}F^4=HA-rglzR zmyw4Qsl7HNd-=5Hr4!GZm#XZ*b8gXx!$7D#q4F`}D`JmNtm+nvAuZq_)kH-a?E1^k zqRq_O&!T$+S)ackS}Vs4K=D&}NNA-Dh6R;nPWz{)r9QPow7G&`ECKORbJzKVvMmqxwHP`I>@U8l{1~mr_$s#l$ zCPQsbw-v`jdkt5UPrC%6)2cqG3@<7GyH?9rE}z!Dh}6P-a~vJ2h5#C3<{qT?s|l~> zb_e*yS~#5Iaf@CQbq2g$x$4_=U~s=$V=tB;<^u?%_+{^2j!g^4W<)v3^gX@khlC}@ zv2u`Gc$OLt5F}f=?gZ-(=YY@sBy zqv^0E$j>1G)x%xM&sgtIQr&35xpcNH>WOJ#1JYJv%*OtwrMKc8U0%v9N3`sJK#BFd zDXGE(Nl?~HpMc=_lp4uEoj)L2ODi#^^8qAKsEL@1p(lg{h}(gzAwhX9k6oF)7hf-i z1nue20d{jC4MK!?bvoq5dg`-F&t)wL5MR&S&N7xNMu!;t0|E(Xem>lls-NW=U>TYg zOGGSss$`3?O?)T)I_=B>P98F}fc&IoYwVryRYN5QBb&y}VSkRqgo88R?pr`69=LUndt- z>)Z^ALNH@LH}KG=jjF{C7dW9M;Bh0J)yPh zbH_n$=?i=Lq(AT%yn9 zHRtZW)Vi&BS#nu%ko!-cy!l}-xu&erz+@)P%s(2{PhQZ&CNHEBar|Ykfp^2pwV8Cq z_o6h=pYyiI)kXpPfvR@#C?gK15Rtiw&Oie)(4Xz*#DskVjPOm_?t)QeRk`mi%E`Sx z9~IFi;tZ7#7b$nD{ypOU`XbP7iLjz;|M;m+iAP04u?N>28YyKknjqCP+)haeDx-T( z<;_+i9(oZAO6KUwQOKIgM==NID7?Zw_jP?|{Yi#0w9gmA;Ao*Sb#-7pxbegLl%ccF znMV@eOraWhkLGke_8ytz_R(YGl2UrJsP_c))@u>;c-k;i0Ks%cU%5p|uT{pi8dtTB z>8bZ==&+h#;(|I_c)yzGQRLN`A7mY zeB|p%IUjo!y1#nyku2KoIU;19PwZ)#(R1AXfP&vGBrx=L=7N=LU>RH9PhWOs-&^g^ z-J4Cr;~f?;XP5E&19}3?t}A{y5($2z>%fI}*4r@fIEorf!|-}^{*9#vi>xY0+r7<* ztnL|m#vBBSYMB8fl6q0zNy^nCT%_x^-Z=UR8w!N1FfX)+P&v&Si|FGs@&^6 zvScMitR)mzq5<9$NspH$kjlM>L>TIr)Hn|ZLa-q^MMMBTgkIW)12c5dXd<-mpkm?# zD2OwjH8-PtG)Dx>>*f38^Uin@0ym!mLalqgK5i!BtdFlYoQMH#f>VaD7a%y5oXwCm zY+))FcR_kVOVtHz7j&j}poV6goLph;Zu%_tP0?^!StK3TJaY38-z;Bp?J(= zY_p)ph00PJMCD~<=)klqGGP{}mz&`=_gPr9LtqCY%Wv2V^O^uR6)#vC^_!(5j`PkN zG-@m-=T}!`os9&ulp)hOlPl&0)v@d~YgmON8sj+rfWFpqcMB|7Rm77xc+I7>vsIp7 zHZJ$=0t>z($w&~MwCQ}6u}>L!*`~e3O*P8o3-!nNXj2w`&&Zjn$9{>Fn4w0V)dhF%P15>3}ELA7f@YKk&QT zyH3@mf+r*6(cL|QQ0Vr~*;)MX{Pqg!YM5$g!;3?mezKaZJDA*QMaNh15T^X>ZRxz_ z9C{`o$*tJV>BJaU(h;OfuB8)~Ij|M^GwzS}5?x;^xTJ zHwGXgv1`?k!r%TF@1wQ!XG77mpI`bG?^;G(JLg3`@v2T4qG&z9V@oJTE$SpkN>$|| zPSzJW1s;ZvH`W{VpZHBR3PCFCY$nA78=bqS&$C+1|A6?)KiSKxp#HjU^VI1hN52x! z!n!X99aaNdLv7qSoutY{?|N1l_s70(pMR4}dsxWMrK3|hYB*DBpd=|%_i5?-KYg4? zh-K$nW`mId$*>l+m(%L~-y|^c=oVgKy?MgYoC_5oD*OJ{{B640=R*Z}>hda2{v zFWFwyz}NmPYnY5ICx%euk>oj*xkfrpjNX&DnWOb3Gi8`SgqYVat#_mfe$2*K@+*Qm zg|1qbZdwx&tf&Rmaic%}rt@f4PvhA>rFB}b zkyx#$!&FIGbrtp$l#CGH@6-1S!RW9{@e@_J_hUjDn_08HSxH7L4>_tY8$x;&>Cdj6 zLQ16E@1IHnGD-GAZRK|@t=uyPYkhFGh*RFprd86F2c7DlyzQVRpqQbY}aXJH* zLTuABxQvEdHj5@n?y{idoA49{7E$3tP#cnOmuknL!?f3c*Ct;t*BDaV z-yB^)Z}MSEF`#e#AUaZ(uSQqOMihD3XC5#3b@!%^_BMGS4EguaJRW?%(AW@%?#)rr zJ$e~$(W=*lGBxY%%oEu1?k1>^qPzMeMT!f##Qxqoj>N!?AuRV_6E)Mc#6YZ^N9*{{ z0Y8p!$ZTvMzkD71Cjr3l$%95A$0zIOAnUNa>DtJYNGS#TP>4^odxkr?U`euhy_uOjA}Z%@k8Su)1O0Lhd033tdAVV zbfp*(XED|{U0W0zAvOhnK*rA5QLS0ey6#S2oLyzvg_IBh!(Sg$dmWs^?>caG{(4wB z>KNtI>OJF?HiE+4^7#g3Mp7JzKOjr(^zvzUEU~f|f&ty~c?Mm-yU9Qepg(;~6tB?kBe}{kL$d}#ljS3^A8ZW^Cb`LRy4JvBR_3s z>aGmU8KF4(geeQ)L=MbYQowDe-WU}zYvZ<@uYYRdN~`C`uJBI#czBvLJU6%FB=Yf? z^0QJdrD34A8?89)mFsGuH%t@cxH3{2$!0y+PY~E^$cErYEIB$;U&t@FI3*@?Gzn$P zJ`rX8iY5;eq~ylOw|!tR_=ye(H$pnQjIn9sj}!9a80V<>tGL#d{=1mhCb09iJ#WI;wNC*bjF5_x)j_>lCY^qh~y@7(>wYsW)mos z^9VOuhpbOiKeyLg=YFCmxB_S;xhr{yNI-{!#445xl=`{ds}GBARj04cz;iUu9Z!!o zbS&QuoM<5h+Bhxw#XV3+4Ml8wA(0NoXLe{m3B*v4?<7-=s?i9uRWMB8FzVrNwf=jr zpLI_r0QYj;XdhqMT?Ew8#`ZE=mQblBh!r^`**DyfFlvX*x859osa&%*x!1O_f) literal 0 HcmV?d00001 diff --git a/python-email/uv.lock b/python-email/uv.lock new file mode 100644 index 0000000000..286734705b --- /dev/null +++ b/python-email/uv.lock @@ -0,0 +1,275 @@ +version = 1 +requires-python = ">=3.12" + +[[package]] +name = "aiosmtpd" +version = "1.4.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "atpublic" }, + { name = "attrs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/ca/b2b7cc880403ef24be77383edaadfcf0098f5d7b9ddbf3e2c17ef0a6af0d/aiosmtpd-1.4.6.tar.gz", hash = "sha256:5a811826e1a5a06c25ebc3e6c4a704613eb9a1bcf6b78428fbe865f4f6c9a4b8", size = 152775 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/39/d401756df60a8344848477d54fdf4ce0f50531f6149f3b8eaae9c06ae3dc/aiosmtpd-1.4.6-py3-none-any.whl", hash = "sha256:72c99179ba5aa9ae0abbda6994668239b64a5ce054471955fe75f581d2592475", size = 154263 }, +] + +[[package]] +name = "atpublic" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/05/e2e131a0debaf0f01b8a1b586f5f11713f6affc3e711b406f15f11eafc92/atpublic-7.0.0.tar.gz", hash = "sha256:466ef10d0c8bbd14fd02a5fbd5a8b6af6a846373d91106d3a07c16d72d96b63e", size = 17801 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/c0/271f3e1e3502a8decb8ee5c680dbed2d8dc2cd504f5e20f7ed491d5f37e1/atpublic-7.0.0-py3-none-any.whl", hash = "sha256:6702bd9e7245eb4e8220a3e222afcef7f87412154732271ee7deee4433b72b4b", size = 6421 }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615 }, +] + +[[package]] +name = "black" +version = "26.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "mypy-extensions" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, + { name = "pytokens" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e1/c5/61175d618685d42b005847464b8fb4743a67b1b8fdb75e50e5a96c31a27a/black-26.3.1.tar.gz", hash = "sha256:2c50f5063a9641c7eed7795014ba37b0f5fa227f3d408b968936e24bc0566b07", size = 666155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/f8/da5eae4fc75e78e6dceb60624e1b9662ab00d6b452996046dfa9b8a6025b/black-26.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e6f89631eb88a7302d416594a32faeee9fb8fb848290da9d0a5f2903519fc1", size = 1895920 }, + { url = "https://files.pythonhosted.org/packages/2c/9f/04e6f26534da2e1629b2b48255c264cabf5eedc5141d04516d9d68a24111/black-26.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cd2012d35b47d589cb8a16faf8a32ef7a336f56356babd9fcf70939ad1897f", size = 1718499 }, + { url = "https://files.pythonhosted.org/packages/04/91/a5935b2a63e31b331060c4a9fdb5a6c725840858c599032a6f3aac94055f/black-26.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f76ff19ec5297dd8e66eb64deda23631e642c9393ab592826fd4bdc97a4bce7", size = 1794994 }, + { url = "https://files.pythonhosted.org/packages/e7/0a/86e462cdd311a3c2a8ece708d22aba17d0b2a0d5348ca34b40cdcbea512e/black-26.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ddb113db38838eb9f043623ba274cfaf7d51d5b0c22ecb30afe58b1bb8322983", size = 1420867 }, + { url = "https://files.pythonhosted.org/packages/5b/e5/22515a19cb7eaee3440325a6b0d95d2c0e88dd180cb011b12ae488e031d1/black-26.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:dfdd51fc3e64ea4f35873d1b3fb25326773d55d2329ff8449139ebaad7357efb", size = 1230124 }, + { url = "https://files.pythonhosted.org/packages/f5/77/5728052a3c0450c53d9bb3945c4c46b91baa62b2cafab6801411b6271e45/black-26.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:855822d90f884905362f602880ed8b5df1b7e3ee7d0db2502d4388a954cc8c54", size = 1895034 }, + { url = "https://files.pythonhosted.org/packages/52/73/7cae55fdfdfbe9d19e9a8d25d145018965fe2079fa908101c3733b0c55a0/black-26.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8a33d657f3276328ce00e4d37fe70361e1ec7614da5d7b6e78de5426cb56332f", size = 1718503 }, + { url = "https://files.pythonhosted.org/packages/e1/87/af89ad449e8254fdbc74654e6467e3c9381b61472cc532ee350d28cfdafb/black-26.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f1cd08e99d2f9317292a311dfe578fd2a24b15dbce97792f9c4d752275c1fa56", size = 1793557 }, + { url = "https://files.pythonhosted.org/packages/43/10/d6c06a791d8124b843bf325ab4ac7d2f5b98731dff84d6064eafd687ded1/black-26.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:c7e72339f841b5a237ff14f7d3880ddd0fc7f98a1199e8c4327f9a4f478c1839", size = 1422766 }, + { url = "https://files.pythonhosted.org/packages/59/4f/40a582c015f2d841ac24fed6390bd68f0fc896069ff3a886317959c9daf8/black-26.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:afc622538b430aa4c8c853f7f63bc582b3b8030fd8c80b70fb5fa5b834e575c2", size = 1232140 }, + { url = "https://files.pythonhosted.org/packages/d5/da/e36e27c9cebc1311b7579210df6f1c86e50f2d7143ae4fcf8a5017dc8809/black-26.3.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2d6bfaf7fd0993b420bed691f20f9492d53ce9a2bcccea4b797d34e947318a78", size = 1889234 }, + { url = "https://files.pythonhosted.org/packages/0e/7b/9871acf393f64a5fa33668c19350ca87177b181f44bb3d0c33b2d534f22c/black-26.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f89f2ab047c76a9c03f78d0d66ca519e389519902fa27e7a91117ef7611c0568", size = 1720522 }, + { url = "https://files.pythonhosted.org/packages/03/87/e766c7f2e90c07fb7586cc787c9ae6462b1eedab390191f2b7fc7f6170a9/black-26.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b07fc0dab849d24a80a29cfab8d8a19187d1c4685d8a5e6385a5ce323c1f015f", size = 1787824 }, + { url = "https://files.pythonhosted.org/packages/ac/94/2424338fb2d1875e9e83eed4c8e9c67f6905ec25afd826a911aea2b02535/black-26.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:0126ae5b7c09957da2bdbd91a9ba1207453feada9e9fe51992848658c6c8e01c", size = 1445855 }, + { url = "https://files.pythonhosted.org/packages/86/43/0c3338bd928afb8ee7471f1a4eec3bdbe2245ccb4a646092a222e8669840/black-26.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:92c0ec1f2cc149551a2b7b47efc32c866406b6891b0ee4625e95967c8f4acfb1", size = 1258109 }, + { url = "https://files.pythonhosted.org/packages/8e/0d/52d98722666d6fc6c3dd4c76df339501d6efd40e0ff95e6186a7b7f0befd/black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b", size = 207542 }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "flake8" +version = "7.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mccabe" }, + { name = "pycodestyle" }, + { name = "pyflakes" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/af/fbfe3c4b5a657d79e5c47a2827a362f9e1b763336a52f926126aa6dc7123/flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872", size = 48326 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/56/13ab06b4f93ca7cac71078fbe37fcea175d3216f31f85c3168a6bbd0bb9a/flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e", size = 57922 }, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350 }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366 }, +] + +[[package]] +name = "pathspec" +version = "1.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206 }, +] + +[[package]] +name = "platformdirs" +version = "4.9.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216 }, +] + +[[package]] +name = "pycodestyle" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594 }, +] + +[[package]] +name = "pyflakes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/dc/fd034dc20b4b264b3d015808458391acbf9df40b1e54750ef175d39180b1/pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58", size = 64669 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/2f/81d580a0fb83baeb066698975cb14a618bdbed7720678566f1b046a95fe8/pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f", size = 63551 }, +] + +[[package]] +name = "python-email" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "aiosmtpd" }, + { name = "ruff" }, +] + +[package.dev-dependencies] +dev = [ + { name = "black" }, + { name = "flake8" }, + { name = "rope" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiosmtpd", specifier = ">=1.4.6" }, + { name = "ruff", specifier = ">=0.15.9" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "black", specifier = ">=26.3.1" }, + { name = "flake8", specifier = ">=7.3.0" }, + { name = "rope", specifier = ">=1.14.0" }, +] + +[[package]] +name = "pytokens" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz", hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a", size = 23015 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083", size = 160663 }, + { url = "https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1", size = 255626 }, + { url = "https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1", size = 269779 }, + { url = "https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9", size = 268076 }, + { url = "https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68", size = 103552 }, + { url = "https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b", size = 160720 }, + { url = "https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f", size = 254204 }, + { url = "https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1", size = 268423 }, + { url = "https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4", size = 266859 }, + { url = "https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78", size = 103520 }, + { url = "https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321", size = 160821 }, + { url = "https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa", size = 254263 }, + { url = "https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d", size = 268071 }, + { url = "https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324", size = 271716 }, + { url = "https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9", size = 104539 }, + { url = "https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb", size = 168474 }, + { url = "https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3", size = 290473 }, + { url = "https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975", size = 303485 }, + { url = "https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a", size = 306698 }, + { url = "https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918", size = 116287 }, + { url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de", size = 13729 }, +] + +[[package]] +name = "pytoolconfig" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/dc/abf70d2c2bcac20e8c71a7cdf6d44e4ddba4edf65acb179248d554d743db/pytoolconfig-1.3.1.tar.gz", hash = "sha256:51e6bd1a6f108238ae6aab6a65e5eed5e75d456be1c2bf29b04e5c1e7d7adbae", size = 16655 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/44/da239917f5711ca7105f7d7f9e2765716dd883b241529beafc0f28504725/pytoolconfig-1.3.1-py3-none-any.whl", hash = "sha256:5d8cea8ae1996938ec3eaf44567bbc5ef1bc900742190c439a44a704d6e1b62b", size = 17022 }, +] + +[package.optional-dependencies] +global = [ + { name = "platformdirs" }, +] + +[[package]] +name = "rope" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytoolconfig", extra = ["global"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/3a/85e60d154f26ecdc1d47a63ac58bd9f32a5a9f3f771f6672197f02a00ade/rope-1.14.0.tar.gz", hash = "sha256:8803e3b667315044f6270b0c69a10c0679f9f322ed8efe6245a93ceb7658da69", size = 296801 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/35/130469d1901da2b3a5a377539b4ffcd8a5c983f1c9e3ba5ffdd8d71ae314/rope-1.14.0-py3-none-any.whl", hash = "sha256:00a7ea8c0c376fc0b053b2f2f8ef3bfb8b50fecf1ebf3eb80e4f8bd7f1941918", size = 207143 }, +] + +[[package]] +name = "ruff" +version = "0.15.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/97/e9f1ca355108ef7194e38c812ef40ba98c7208f47b13ad78d023caa583da/ruff-0.15.9.tar.gz", hash = "sha256:29cbb1255a9797903f6dde5ba0188c707907ff44a9006eb273b5a17bfa0739a2", size = 4617361 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/1f/9cdfd0ac4b9d1e5a6cf09bedabdf0b56306ab5e333c85c87281273e7b041/ruff-0.15.9-py3-none-linux_armv6l.whl", hash = "sha256:6efbe303983441c51975c243e26dff328aca11f94b70992f35b093c2e71801e1", size = 10511206 }, + { url = "https://files.pythonhosted.org/packages/3d/f6/32bfe3e9c136b35f02e489778d94384118bb80fd92c6d92e7ccd97db12ce/ruff-0.15.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:4965bac6ac9ea86772f4e23587746f0b7a395eccabb823eb8bfacc3fa06069f7", size = 10923307 }, + { url = "https://files.pythonhosted.org/packages/ca/25/de55f52ab5535d12e7aaba1de37a84be6179fb20bddcbe71ec091b4a3243/ruff-0.15.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:eaf05aad70ca5b5a0a4b0e080df3a6b699803916d88f006efd1f5b46302daab8", size = 10316722 }, + { url = "https://files.pythonhosted.org/packages/48/11/690d75f3fd6278fe55fff7c9eb429c92d207e14b25d1cae4064a32677029/ruff-0.15.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9439a342adb8725f32f92732e2bafb6d5246bd7a5021101166b223d312e8fc59", size = 10623674 }, + { url = "https://files.pythonhosted.org/packages/bd/ec/176f6987be248fc5404199255522f57af1b4a5a1b57727e942479fec98ad/ruff-0.15.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5e6faf9d97c8edc43877c3f406f47446fc48c40e1442d58cfcdaba2acea745", size = 10351516 }, + { url = "https://files.pythonhosted.org/packages/b2/fc/51cffbd2b3f240accc380171d51446a32aa2ea43a40d4a45ada67368fbd2/ruff-0.15.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b34a9766aeec27a222373d0b055722900fbc0582b24f39661aa96f3fe6ad901", size = 11150202 }, + { url = "https://files.pythonhosted.org/packages/d6/d4/25292a6dfc125f6b6528fe6af31f5e996e19bf73ca8e3ce6eb7fa5b95885/ruff-0.15.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89dd695bc72ae76ff484ae54b7e8b0f6b50f49046e198355e44ea656e521fef9", size = 11988891 }, + { url = "https://files.pythonhosted.org/packages/13/e1/1eebcb885c10e19f969dcb93d8413dfee8172578709d7ee933640f5e7147/ruff-0.15.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce187224ef1de1bd225bc9a152ac7102a6171107f026e81f317e4257052916d5", size = 11480576 }, + { url = "https://files.pythonhosted.org/packages/ff/6b/a1548ac378a78332a4c3dcf4a134c2475a36d2a22ddfa272acd574140b50/ruff-0.15.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b0c7c341f68adb01c488c3b7d4b49aa8ea97409eae6462d860a79cf55f431b6", size = 11254525 }, + { url = "https://files.pythonhosted.org/packages/42/aa/4bb3af8e61acd9b1281db2ab77e8b2c3c5e5599bf2a29d4a942f1c62b8d6/ruff-0.15.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:55cc15eee27dc0eebdfcb0d185a6153420efbedc15eb1d38fe5e685657b0f840", size = 11204072 }, + { url = "https://files.pythonhosted.org/packages/69/48/d550dc2aa6e423ea0bcc1d0ff0699325ffe8a811e2dba156bd80750b86dc/ruff-0.15.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a6537f6eed5cda688c81073d46ffdfb962a5f29ecb6f7e770b2dc920598997ed", size = 10594998 }, + { url = "https://files.pythonhosted.org/packages/63/47/321167e17f5344ed5ec6b0aa2cff64efef5f9e985af8f5622cfa6536043f/ruff-0.15.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:6d3fcbca7388b066139c523bda744c822258ebdcfbba7d24410c3f454cc9af71", size = 10359769 }, + { url = "https://files.pythonhosted.org/packages/67/5e/074f00b9785d1d2c6f8c22a21e023d0c2c1817838cfca4c8243200a1fa87/ruff-0.15.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:058d8e99e1bfe79d8a0def0b481c56059ee6716214f7e425d8e737e412d69677", size = 10850236 }, + { url = "https://files.pythonhosted.org/packages/76/37/804c4135a2a2caf042925d30d5f68181bdbd4461fd0d7739da28305df593/ruff-0.15.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8e1ddb11dbd61d5983fa2d7d6370ef3eb210951e443cace19594c01c72abab4c", size = 11358343 }, + { url = "https://files.pythonhosted.org/packages/88/3d/1364fcde8656962782aa9ea93c92d98682b1ecec2f184e625a965ad3b4a6/ruff-0.15.9-py3-none-win32.whl", hash = "sha256:bde6ff36eaf72b700f32b7196088970bf8fdb2b917b7accd8c371bfc0fd573ec", size = 10583382 }, + { url = "https://files.pythonhosted.org/packages/4c/56/5c7084299bd2cacaa07ae63a91c6f4ba66edc08bf28f356b24f6b717c799/ruff-0.15.9-py3-none-win_amd64.whl", hash = "sha256:45a70921b80e1c10cf0b734ef09421f71b5aa11d27404edc89d7e8a69505e43d", size = 11744969 }, + { url = "https://files.pythonhosted.org/packages/03/36/76704c4f312257d6dbaae3c959add2a622f63fcca9d864659ce6d8d97d3d/ruff-0.15.9-py3-none-win_arm64.whl", hash = "sha256:0694e601c028fd97dc5c6ee244675bc241aeefced7ef80cd9c6935a871078f53", size = 11005870 }, +] From fb1310c659bfd3c51fbedd6ea3a96d9be9fbb2fb Mon Sep 17 00:00:00 2001 From: Jon Fincher Date: Mon, 6 Apr 2026 09:34:47 -0500 Subject: [PATCH 2/2] Updating to reflect Ruby linter changes --- python-email/html-email.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python-email/html-email.py b/python-email/html-email.py index b59c5707b6..7dc9daf844 100644 --- a/python-email/html-email.py +++ b/python-email/html-email.py @@ -16,14 +16,14 @@ Hi, How are you? Real Python has many great tutorials: -www.realpython.com""" +realpython.com""" html = """\

Hi,
How are you?
- Real Python + Real Python has many great tutorials.