From 88a6088e367756b71dc1570ab95ece93782d66e5 Mon Sep 17 00:00:00 2001 From: john525 Date: Wed, 7 Aug 2019 16:00:15 -0400 Subject: [PATCH 01/18] add __init__.py --- bpeng/pna/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bpeng/pna/__init__.py diff --git a/bpeng/pna/__init__.py b/bpeng/pna/__init__.py new file mode 100644 index 0000000..e69de29 -- GitLab From dcd0dcc867f98b0a3272504c43b3425ef62b86f8 Mon Sep 17 00:00:00 2001 From: john525 Date: Wed, 7 Aug 2019 17:40:45 -0400 Subject: [PATCH 02/18] add pptx to requirements --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index c1bedd9..21af863 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ oplus==4.6.0 pvlib==0.4.4 requests==2.12.4 xlrd==1.0.0 +python-pptx==0.6.18 \ No newline at end of file -- GitLab From 2aa08888dfa942e73d966f36a24d931c5ac06b5a Mon Sep 17 00:00:00 2001 From: john525 Date: Wed, 7 Aug 2019 18:32:23 -0400 Subject: [PATCH 03/18] populate title slide correctly, and added a basic manual tester --- bpeng/pna/constants.py | 1 + bpeng/pna/pna.py | 43 +++++++++++++++++++++++++++++++++++++++++ bpeng/pna/slides.py | 25 ++++++++++++++++++++++++ tests/pna/test_basic.py | 20 +++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 bpeng/pna/constants.py create mode 100644 bpeng/pna/pna.py create mode 100644 bpeng/pna/slides.py create mode 100644 tests/pna/test_basic.py diff --git a/bpeng/pna/constants.py b/bpeng/pna/constants.py new file mode 100644 index 0000000..946a218 --- /dev/null +++ b/bpeng/pna/constants.py @@ -0,0 +1 @@ +ASHP='ASHP' \ No newline at end of file diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py new file mode 100644 index 0000000..e4407c1 --- /dev/null +++ b/bpeng/pna/pna.py @@ -0,0 +1,43 @@ +from .constants import ASHP +from .slides import * + +from pptx import Presentation +import os +from datetime import date + +def load_ashp_template(): + """ + TODO: load a PPTX from a stable, versioned link + """ + pna = Presentation("./dev-templates/ashp.pptx") + return pna + +def export_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info): + """ + TODO: write documentation + building_info - dict containing these keys: + - address (string) + - owner (string) + hvac - dict containing these keys (engineering-related data): + - boiler_type + - dhw_age + cost_estimates - dict with these keys: + - project_high + - project_low + scores - dict with scoring metrics + contact_info - dict with contact info of bizdev member + """ + pna = load_ashp_template() + + addr = building_info['address'] + owner = building_info['owner'] + creation_date = date.today().strftime("%d/%m/%Y") + + populate_title(pna.slides[0], addr, owner, creation_date) + + save_to = '/tmp/bpeng/PNS {}.pptx'.format(addr) + if not os.path.exists('/tmp/bpeng'): + os.makedirs('/tmp/bpeng') + pna.save(save_to) + f = open(save_to) + return f diff --git a/bpeng/pna/slides.py b/bpeng/pna/slides.py new file mode 100644 index 0000000..d41b783 --- /dev/null +++ b/bpeng/pna/slides.py @@ -0,0 +1,25 @@ +from pptx import Presentation + +def populate_title(slide, addr, owner, creation_date): + for shape in slide.shapes: + print('%s' % (shape.name)) + if shape.has_text_frame: + print(shape.text) + #print(type(shape.txt)) + shape.text = shape.text.replace( + '___ADDRESS___', + str(addr) + ).replace( + '___CLIENT___', + str(owner) + ).replace( + '___DATE___', + str(creation_date) + ) + print(shape.text) + # if shape.text.find('___ADDRESS___') != -1: + # shape.text = str(addr) + # elif shape.text.find('___OWNER___') != -1: + # shape.text = 'Created for:' + str(owner) + # elif shape.text.find('___DATE_CREATED___') != -1: + # shape.text = str(creation_date) \ No newline at end of file diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py new file mode 100644 index 0000000..768bdf0 --- /dev/null +++ b/tests/pna/test_basic.py @@ -0,0 +1,20 @@ +from bpeng.pna.pna import export_ashp_pna + +def test(): + building_info = { + 'address': '81 Prospect Street', + 'owner': 'Onyema Osugawa', + } + hvac = { + + } + cost_estimates = { + + } + scores = { + + } + contact_info = { + + } + print(export_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info)) -- GitLab From c5c648991009c72d12e4af361433563b5a1aa298 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 00:16:49 -0400 Subject: [PATCH 04/18] add framework for reformatting and substitutions, but cant make substitution to be stable --- bpeng/pna/field_format.py | 16 +++++ bpeng/pna/pna.py | 77 +++++++++++++++++++----- bpeng/pna/slides.py | 25 -------- bpeng/pna/template.py | 123 ++++++++++++++++++++++++++++++++++++++ dev-templates/ashp.pptx | Bin 0 -> 248454 bytes 5 files changed, 202 insertions(+), 39 deletions(-) create mode 100644 bpeng/pna/field_format.py delete mode 100644 bpeng/pna/slides.py create mode 100644 bpeng/pna/template.py create mode 100644 dev-templates/ashp.pptx diff --git a/bpeng/pna/field_format.py b/bpeng/pna/field_format.py new file mode 100644 index 0000000..3a02344 --- /dev/null +++ b/bpeng/pna/field_format.py @@ -0,0 +1,16 @@ +from datetime import date + +def format_usd(val): + """ + Format an integer as a string representation of US Dollars. + """ + return '${:,}'.format(val) + +def format_bool(val): + if b: + return 'Yes' + else: + return 'No' + +def format_date(val): + return val.strftime("%d/%m/%Y") \ No newline at end of file diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index e4407c1..850ef4e 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -1,18 +1,21 @@ -from .constants import ASHP -from .slides import * - from pptx import Presentation import os from datetime import date +import uuid + +from .template import * +from .field_format import * -def load_ashp_template(): +def load_ashp_template_v1(): """ TODO: load a PPTX from a stable, versioned link + (or at the very least, something that's in SCM) """ pna = Presentation("./dev-templates/ashp.pptx") return pna -def export_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info): +def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, + external=False): """ TODO: write documentation building_info - dict containing these keys: @@ -26,18 +29,64 @@ def export_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info): - project_low scores - dict with scoring metrics contact_info - dict with contact info of bizdev member + external - whether report was generated by an external user + (as opposed to a member of the bizdev team) + + Returns a Python open file object, referring to a PDF or PPT + depending on whether external=True or false. """ - pna = load_ashp_template() + v1_template = load_ashp_template_v1() + pna_generator = TemplateInstantiator(v1_template) addr = building_info['address'] owner = building_info['owner'] - creation_date = date.today().strftime("%d/%m/%Y") + creation_date = date.today() + + # Provide template with address, client name, and date for title page + addr_sub = Substitution( + 'ADDRESS', + addr, + font_size=24 + ) + client_sub = Substitution( + 'CLIENT', + owner, + font_size=18 + ) + date_sub = Substitution( + 'DATE', + creation_date, + formatter=format_date, + font_size=18 + ) + title_slide = pna_generator.templateSlideNumber(0) + title_slide.add_substitutions( + addr_sub, + client_sub, + date_sub + ) - populate_title(pna.slides[0], addr, owner, creation_date) + # Fill in HVAC Fields + addr_sub_2 = Substitution( + 'ADDRESS', + addr + ) + heating_system_sub = Substitution( + 'HEATING_SYSTEM', + hvac['heating_system'] + ) + # hvac_slide = pna_generator.templateSlideNumber(3) + # hvac_slide.add_substitutions( + # addr_sub_2, + # heating_system_sub + # ) - save_to = '/tmp/bpeng/PNS {}.pptx'.format(addr) - if not os.path.exists('/tmp/bpeng'): - os.makedirs('/tmp/bpeng') - pna.save(save_to) - f = open(save_to) - return f + # Save PPT to a temporary file, and pass a reference to BlocLink + tmp_dir = '/tmp/bpeng/{}'.format(uuid.uuid4()) + escaped_addr = addr.replace(' ', '_') # TODO: replace special characters + save_to = '{}/PNS_{}.pptx'.format(tmp_dir, escaped_addr) + if not os.path.exists(tmp_dir): + os.makedirs(tmp_dir) + pna_generator.export(save_to) + + return open(save_to) diff --git a/bpeng/pna/slides.py b/bpeng/pna/slides.py deleted file mode 100644 index d41b783..0000000 --- a/bpeng/pna/slides.py +++ /dev/null @@ -1,25 +0,0 @@ -from pptx import Presentation - -def populate_title(slide, addr, owner, creation_date): - for shape in slide.shapes: - print('%s' % (shape.name)) - if shape.has_text_frame: - print(shape.text) - #print(type(shape.txt)) - shape.text = shape.text.replace( - '___ADDRESS___', - str(addr) - ).replace( - '___CLIENT___', - str(owner) - ).replace( - '___DATE___', - str(creation_date) - ) - print(shape.text) - # if shape.text.find('___ADDRESS___') != -1: - # shape.text = str(addr) - # elif shape.text.find('___OWNER___') != -1: - # shape.text = 'Created for:' + str(owner) - # elif shape.text.find('___DATE_CREATED___') != -1: - # shape.text = str(creation_date) \ No newline at end of file diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py new file mode 100644 index 0000000..cc86d89 --- /dev/null +++ b/bpeng/pna/template.py @@ -0,0 +1,123 @@ +from pptx import Presentation +from pptx.dml.color import RGBColor +from pptx.enum.text import ( # pylint: disable=no-name-in-module + MSO_ANCHOR, + PP_ALIGN +) +from pptx.util import Inches, Pt + +from .field_format import * + +class TemplateInstantiator(): + """ + Creates a PNA from a template + """ + def __init__(self, presentation): + self.presentation = presentation + self.slideInstantiator = [TemplateSlideInstantiator() for slide in presentation.slides] + + def templateSlideNumber(self, index): + return self.slideInstantiator[index] + + def export(self, path): + i=0 + for slide in self.presentation.slides: + slide = self.slideInstantiator[i].render(slide) + print(i) + i=i+1 + + self.presentation.save(path) + +class TemplateSlideInstantiator(): + def __init__(self): + self.substitutions = [] + self.extra_functions = [] + + def add_substitutions(self, *subs): + for sub in subs: + self.substitutions.append(sub) + + def add_function(self, fun): + self.extra_functions.append(fun) + + def render(self, slide): + for sub in self.substitutions: + #print(sub.name_in_ppt) + #print(sub.value) + slide = sub.render(slide) + + for function in self.extra_functions: + slide = function(slide) + + return slide + +class Substitution(): + """ + Represents a single text-based substitution of a value from a database field + into a template. + """ + def __init__(self, name_in_ppt, value, external_value=None, + font='Trebuchet MS', font_size=16, color=(0,0,0), formatter=None): + """ + We use 3 underscores to denote a field in the powerpoint template. + These fields are filled in using substitutions. + + name_in_ppt - the name (without the added triple underscores) in PPT + template that we are looking to replace + value - the value to replace it with + external_value - if user is external, we can optionally replace the + PPT template name with a different value + Font size - in Pt. + Color - an RGB tuple + formatter - a lambda function, or a function from field_format.py, + to format the string for better presentation form + """ + self.name_in_ppt = '___{}___'.format(name_in_ppt) + self.value = value + self.font = font + self.font_size = font_size + self.color = color + + if formatter is None: + self.formatter = lambda x: x + else: + self.formatter = formatter + + if external_value is None: + self.exteternal_value = external_value + else: + self.exteternal_value = value + + def render(self, slide): + if slide is None: + return + for shape in slide.shapes: + if shape is None: + continue + if shape.has_text_frame and shape.text.find(self.name_in_ppt) != -1: + new_text = shape.text + new_text = new_text.replace( + self.name_in_ppt, # underscores from constructor + self.formatter(self.value) + ) + print(new_text) + shape.text = new_text + + for p in shape.text_frame.paragraphs: + p.font.size = Pt(self.font_size) + p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + + # if shape.has_table: + # for r in range(shape.table.rows): + # for c in range(shape.table.cols): + # cell = shape.table.cell(r,c) + # if cell.has_text_frame and cell.text.find(self.name_in_ppt) != -1: + # cell.text = cell.text.replace( + # self.name_in_ppt, # underscores from constructor + # self.formatter(self.value) + # ) + + # for p in cell.text_frame.paragraphs: + # p.font.size = Pt(self.font_size) + # p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + \ No newline at end of file diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b3883f01e5d73cb675dfc5d4a9559756beb8c9c1 GIT binary patch literal 248454 zcmeFZMQ|kBwj?TMW@ctq3QEjWq7pMRGcz+YGqY4;sl<#WW@cvUy63!a|Fzv?eXalC zPr7rEF^I@Py7_kZz1LbHFAWNY1_S{F1q1{{4CDZpApQ;v1oRCV2nZDj3Pe-b*2c-$ z#z|M%-Okuio59W6il_h#gengRnOUS` ztHKl&WIEE`iZes{un^?lteb&FlUDIAJKe&Y7?d-;e2Of>hc7y&cv-*x$Y-G#m(pFl z%Z7m*>xqN1Or8K&y8_2-{>}2E(GN>FQD&a8_YBi)eAdo+siH>QV^<1@On+V;YV0EPje?C^N%r2 z)2gdIxbkR3@Q6COEjxL&&iU0if3#?oQ?3%|S)zu?7J1rEb4 z4)*vNh+FA=y)b{k0s(z}fda|@Poi;WIU9WQXC)~7(FE8(qM_?xY~{$v@UQRxD;EC; zE5v{M>s1NUQlQL8p;rM{NQax**5JtIEttq2sOp4z5++~UHY{X?O}4gZBA6B@eTEc0 zFSnC%7ne-m53`jB4D0G@EST`L?hTLWJDXxFd6?9x-7*aHV8y5EENg08rg`I2N_e9Z zWb=cp^yQO12hJgKs8tmJNtp~K=}mY_u|k*09z(L)TL!O_ekOfvp0>mnAMk09R9?_L zE*rNC*cA2>s6! zc6LsTj#lPI#*TkqnEz$0=jv-VYXBr~UA-^=nfXiM%1m-io9uqs-6nwy9EDfB85CpK zVk!p74woLE(4u|m-6CiUtH5e_wN7|()=<{aqL0Uoh5|FeAUaD9yZ5D>K&bK4PNRAM zy91N^iX)cHm|utP{{MJTYrfY`Z0+7$v)#3ar+ZZ9Q}%#nOHd^pFTu8&dq$ z;nKk@Yw6Y=jVnjr8dlD|Vw={wdpA7FAE$6!x2l;eKHAI9sL4m#o+zR=ucJdfa1_U% z9u)WTwisTFv%QnU7PpHpo8&kf=uz7DS&LNg?#EyDOO%rU*E)rzgXQX>(asM1%04JA z1u@{nVf}#HMD1k{otYC4c)ac-S5#X}wDlvQ3Rp!|2~~&~zc8lHZBbM#+<2ZH;T5@1 zOV9P+8km*w|hJqiHsK6b2D(m7iSp39Xsp zU4GjzW%tG=K2Je_I$43=L!f$YY`69BTKoEsJpilay%jvA6RENGmW7xFzP&Dgum7yv8ccHg{AY!VC;B%Y48Me!|jqu7)YnuAA4qB zGHAd0V2N6G-zVD4@Sq&}N~JNr8C?!%vd%YR-661IeG@lvV`062WEH;3n?T}#ET@t* z=)t{U5yl$sdXW9r)Gw|BfMT4%R{?lc@b5Y7S+;L=ar1r!yeP(yUx>b2xjBADX+Hbg zEKE;a8~KJ%hK^tB%)s-^G7rX5e||~bC<)e)aM4)IE}i&zyxhE>9+H!FQlICdy{0}M zUd2R3d{6V$!OElwvmud_#bjJ*dQtEpEpYDb^!=0l|6RTcyW3U%Y!QH32>w~VSpJr; zGn+LIv`>D$D}iHI!xs{s7R^$LwPO0X7Qt*jAXx3w!B&)&E zIg=BhQmQzKBsVuV2ErcUvFRLL^n|LmdZ9}7g)=A8e)Rcr`Em98llOf+Jmj-7sq%%0 z=>qoF*}FnrUw0L`Y8mJ#6&EQ}g-b22Xv1*_9r?9ca@Cnsb0vAmSQG5h5S@VELPH-m zu4tIbWn~1m-Nv0$EPc%!m&^LQnkGY3;bCufD;N>2wGRPPKYVIUux& zH-52gl^C7`v$s^dXTWluuO>5p_o#kQblBbS%pm(dzB43@C$_!_>m6+0yJGELu@X!! z6`1_L^g)nIUX9r`_>xyMQnMLfNEv!idzB2yz?v4sB^LW
    ~H==xB5-FUh7wY;S?Jp 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ⅅuzjI?;6B92#`N+?|^dG6Xi!R>O7g!SV(LBK z$%f-kr&QaMq_Jqm12P))&$YEBNqZNg8SoxBdE(jT=9ln2A3a%}cavj9rMT84s>a(p z4zZRl*$+&VyulfeL_`qC}e-|@+>6qb~;f*GA{DV++t(T^KOAa{QH~!)vv#{Cz$Y*$e zd;8nJ+qwF-+pZ~$TB$f|qeBg})L!%ccU)6Tzn5S3=J&&~WzG;Us815%SR~*yF+u?ZalvKg(n~U`Hz3_@1J<+z8@Xg{bFBdyK{Vug0EnU275J53P@ao-U7Ni zMgkg~q>n()4sCF-IpCYGpJ`8<(!A}X}Eg?@iwWO@#_Rrl@UAr9S2gM_Uj~6yPsQAaV!9)_g*>L6^ zRk!ac;JoLlHchNFPcApPY879h8YBe)8jAJXaL&Q>KFAZ4-4TgUk^Ev%pyJbw*T3rD zKl|ZNe&RhJ`QX3abmLVuRaG3h$(V$DH$n#d#F6+k8V>Z`QIxElqMY0^gV{u^HvV5I zqJqqd!)>$KbMwn>8QEYC09?W2ZccQeg=Py9h^P!8aOdKjWf#=nw7hIH*s_2}9Xb8{ z$VBg4kBemWZMpm5zkU1jcmL{FpD2ghc{@8H!f5Q-U;Yy9VAp)>i9g`qp8x6V!X9<} zw|D&x{<`stf5i)b_QD_FO7Ds9edB>nIBC{Diknot`KM3*?Cv}7{=vQ1&Pj02-o>*u zI_%8sO>epL^Y6cmKB>LwV|T)FZN*$*<>uxkl}RexWn6z-k^eLXT!Aw{;MCEBPyG4! z_y6DUp~U9c?O5K*Zc}dOya4$Rlb5boGDK z7cQv_%%H?@c}KTz`)M$UH9`|}#EME`FbTyVD82nhlSSN|6G8<7r68Ho+;7}D?<7x{ z1p)Fn$A}ep^VlqzS8l%Pj(30MOP~1ZhEJ>2^vN{79=!NeUk;?>!$4{gIu*ta zgb1f|hxDDSEPKJ+$#7WLtzB`;4Of5g{cpbeKR*7MJ3n~s)tBbwWZCUD6|;)MImqY* zFsNqc3&{;t8m8toLtt&>7nG|eJ7@*90JzS16Y&-F`k_KDKFb#j_<`8i?fG_lb|^S= zmaZ^;3J-9CQjc?X9db*Q=dZYA)orUPE_Hdw4z@n?^2vw#MqB69Q<&5Uf^xUqbUBlZ z!a}y<;Bn&Mv-r=Aue&Upez#_2O*OOm;A2R$R=sYEsOYhJ%Qg7dL(d)>FwFW#{T`Ry zw8=VWw`V)ytc_mK9pU1P49b?790%+SA=4$aC{$*OGZ~RS2D8q>{{er%H9j`b-Ld1b z2k!gY7k}~PFFgFKpTGRf;~mW>eO@p;#!BK!4qT#X1&0?;xCT$3-pz$c*$%3CQkgXCzha?e!WGBqEaMA>xl&L zy=iwi-tw*wWT2A?)wePPCzUbmMoixUY!hJuCxV?qpG>VH68HfVD3u$4c-6|^rmcAOC0*|eHQyYW z`HqYn_=2=}iTcWQWaLggD{pLzI~KRC8$$54Owa zuodXFB;q<^Nq=(;d768Vn$`{7wIpdgOa!Sr>pBgIH@J|o8x;D3KcQF{zv0odKPktK z{?qB~p(Pfe0LC~{&?pD;oV^#gcswrfK93(pF}t%qj_~@A**)crLI@x;fT;zu7vR3vXOcTUMa8GwZ42c<dG#>WcBNpm2C6{yuhF!&jeVgR+eA9qWt2boEpeK zF-wPXGs=w$R+Q3B?vZxhB8*T217l~o#9D}+fQA82=#K-(_uwZR3o8t>{&BA7i;Kf= z4bFxhPE8T_EogXn1jjIXxaR6s!vD_B*pPC;>uo&N@c18p^P6wq`}=Qy zOgcxQiy~2l2xn!#LDCSBe;{U&O@96K+_(lINoHp!27o}t(Ya5TXPg6p#m^i()i4}K zvhCA*dwQM+p>3d(NtmG;*W~8|S+No@yihIh#TWm_hY_&QK2S`|rF33En_|=-Uh)RT z=W}!YwFNXOahIZM8jBRkBi0CT(k@NO$jrEM%dK~P{0CQWxj8E%7uTDxD#ZGUvAv(D z?51RA=U#aA6$VpqSjF7O%yD9MP>}%mf-Q!!1?mxEie^&$xkh)H(N$-hTn*nRkeev@j{q!C0yW!fc)s@BB z*%?M73LP@kX>o>?Jf#;sz6Fd+W;2FAMJTM1+Z8T9Fc}qP3n#g=0+{P4-cWOOS^f&3 zOi(fJ(}X6MAv+t1ES(dbeG2E zY~dr#rJXQI7igsH8Mcf}P(+Kb%q;xD?y#Y(tqV}(?HTt2n&ceqZ*AH|+6s&$iQglm z-qz3F6lSDQnj_$WVNR7L54eI=Dq0<3{01X!?o0_AjI}ju{^O(Hf8&ks%goG1YQ_Ew zkt&N96AUqfX&zty>Nofb-5SI%a(?AlZUMr6i}q-!oEtEM^PYKPl?gNNRT6!&D`eJ# zRDyac4tN<;+Kwe~==x}^{RN_{#bUhR{B{5K(RbYQ#ee(Ahu-?yTd&=;ad~!5mYzF; z^BRf0hq=5w5{ZCngj5s4V3^3~p7|`X%|x(FV2(kpCpLY6RjoL?)@nK@9kN<7b2CaH zMIk&9SW|vhIas1XUzxVNSrT1XOpc=LT1qe|jwm3iyXj*$0;%!-`6E}o?bBcW^xLlb z$b(^5uYTvZ-cbwwd|!F{+dlpEFMs&Tw?Wo%%c@U&?l!c|&icnWnqb}Xv3oB=GUeU= zl{an06y{ss^p)*EJZsrJnD;~U@mC&By9eV38p^rBMu<`d-& z(Vdvm@59Chs``Q6j)S{jc;ZjL`Q3lt``yp~zsG<7tDcq?zt0^Ada+g&8Kl4+IaS1} za}KGd9zFUXL^H-yppAA`rsnxHDUxD7aGED7Zmk;C+PaD@7j0a>Vb$98E7opUv4*}@ zufy-_Hm*AVf(-xvWv*MbB`3d(QxZ_T zQLGN5A&{v+$djwi1kQVtYgBKM0m|lrJ{`^9@WqOCXbgEv;-ihk5n{A#W7Uti+y`+k zEh)b0@(bVl&NqJI-`@S7cisNBx7<=)UBTs7X?$RN3_Tk?q4lsa4mps=(nMgYIKb@v zXHElAD`b*VO-56ey`VgA?YXWRa(2FOG1flZu~ez4`-zIuf>{p`tKeeT9BwIa<$R_&^5-tn!!{{HiNo{HHT zJ>#~k-}!^jT~+{{g!ru!1G5$2;$Ag3x1`7PB}ZgohvA~>BqLFjCK{liEWC=@FVW`- z47=*FeY@}f;WvNrr7zt7{ck_=+xw2byu;-jO@mr@6O)5o?T5s+EEQezo7`MzD0$v( z#OcVvFIc~#x~QZ8tHlt{!w=a*m1aDOPewyYSz%pWHJ44A9{^Ebg%3CGf8{S=*F_CR z+z#dWgN?DeIlLladoJSTA@>8y+oU|V>*0Sq_3H`e@YpCQN<;EG8mVTae9*VJshxrs0)I|Fn+*Xg zdg}#p(CCz~4JF}dvj4R3qDBVF)^$n{!M{!*RZ(baw!MAO-GF+#Om4@CF6eCs!Dg`d4%ugm2+-FJ9f;{I5I32^zoB#oH=oO@E`X#HMb57j0_A8JDuYgGsGboxVf^UIBRfq6&KZ2XJDso zK65@PiBDh}276#ZS=qAH>&k2D@{7xI3JamGG->swD%V@b0$$YFNN+mVvqJ(6 zdaaQ+N~~Viq+G_l@S0yWoQgKH0G*$wC?!dyPSq?{%Xt@YF0peSJW??Duk1YrrJrIq zRU5`jM7<@j@=nz!efoKq11oP}KP9bw) z3FL>sD%EU#Bx*J#TRzV4HA&K#sqKHu1wbLHyIc6)~3?+0czIzG6s<>6DkJLcKE zvt3qKbkPO1x8`S;TCG--X+D`JV%V6JxYgw3`0-;e=VWJ@&1Ucj>g^laz5C$4R}Q;e z5NQSD?x!7v^xZ;P#ViY~J5wpe=9~a20R>5)Y}X=Ba4l%E+E$*w`Mk@nDyyhM%@l>s z-~s>>mtqX!Ie{=i8&O&mD2Usj=8^f}Gf#hep#P-MnMG-pn0g)ai}sB42Jsk5pnFCL zY-49DEQB@REo*w?LV8xkuLM({O2N=T_-9UT?#k7*vyTF%eZWN;JbJika$-DIc+URN z5ZWe7*6ZK!U#h~!e=!ZiD`6~f3N2A8g^QdDk>}(UIvkV^K^_Z0fV2(4sX9_%COj8*!AdNpZFE%zo1smV1H-8Kcns&shNlskj5Py&_L~^1TzhO zhZ?jQf;O!9L?R#O;3vf#bFUOeX_nCyL2;}pq;5~^J86}RiwjmPUsh9HQBss&SdeeA zf?Fdyzl79(EF~wE`YlzbbYj|FRN0#9)OXZ)!FbZ(?`Ac)%L#Y zE$+Qx12!=>gqnmT5CSBWkU$^_AqgRs&{DntfdC-{`02eE4DQ|QU2iX1_1-mo?){&0 z&U;5A?XIL5jrv^6+L3h2d(Yd>bINlDhX)3SySn;LpJ_jPwk4hbrlNj!h8rObx&Nd~ zd@j#hmglIbhm>2Fb`J#{Wh3zy1WPMxsv4RaHg0a*yxkX&s%Q?fAOG-gl1Zc-OMR)#BrcO4E`+l3;;Je{5`n|ONW_!3U=<^JafOQRa>*4d*)ay3Y$o#@1EJ1 zk+XTMF_pBQy!QG(XlUHShHq{QZAUrNF4icNA`we~U*0Q~&G@|F8u;>!T;%pw#dYJ%~%h7$;7iJ#y@H zdt3MD=mdfQ(e)A!JWsejmqsq$Ib!!^^BaQ`W|Zcw1*HZVMzT6+7Bux*!_DAf{027>n#U4$&VVwGb_D50dxajPFkiFib(*|BZ&zRR{F z{mJWd`Q2W!G4l#X(jki<{lxZG$8N>fiUjjssoan61-c_Dp1V9%wVNppiFChYf6w`7 zcw8CMxkGcoQ?JYt;*OFazk-sQq7sUO$4^!=(bIVX^-t%bK#C`7cx1GqvaxC1X8b5< zY9c(=(tGG|`;SJ$y;)1E&{wgu?zRmz2ZMgXQ536|&yt#hG|#u3?C))bsRc4)9X92| zmk^;To*7ckl8DTVM1Qg! zcA2~Qps}Ih8#gD_OPS5W21dv`rmgYC}%g*A(Gi}%=Bzte#FYn-YA}p_!tZp z7nM}2dmf7LV%Ueuk$Uq?NjL1>Nzkv0k5 z3)rm49l_d?LLJJx<6sbp-$?I{$#81*d%8{9);m+5iG|zg*c5A~-9OaxssH=Co_=1V zRn9Zul-1kSr^kJIqCm4etGi(CRH>yL46>n9kwgAJ*1yl|i~K0dg2>>MH8%>o;tvUAMs>KpHbI)Q;Io zF#^es%abrQ7e!mjT9;G6&(?c-UU=Z=|H}LmSsk`sSQ6N}bz>^fZrZ4z)x@&;d;8C~ zbY>mx!Rw6tN4K-PG;4x#?^unn^q{WSxonf@>Ex6gY-kb9Zh=hZ9%CjfzM593YxUEX z$*csM(~AlU0$X=(Lf0_Uzq+-f$jO2ZcaV1Ug;V2W5uFCZ++RFr4Xvoybn|WRCRaBN zZS-Nz)RJ65DToMx9IkL=_zPcnTRfgi`lH-Pk?a5}>w;$oTSqV^3(A@rw*-9!)z$SV zX3xv3*42A{Y{N3nq9Q24odv*mFYQfYqczIX25DJ;EYJLI|dHuoQAzFEvYnBjcyAH%JItvMhUlXzLK!59`Rydo!Lk>|`&A~P?GUg8yZ{K+UKc>(W zLjQV(&zd?oj7X9lbqE{FrE6#~tdc$wx4#ou zPHdK}0o85Tv}N~Y&D(bS3krOJAXzS14o(uUvXSx6uyhDy$Wq-@Veq=~^PhdBx98YA z1Z(fuwKZ5sgtwv)q~D5T8pQ0XwYPP4w)Z$VIpb#Yors;@ZrAKEMuLMb#kA|ywI=wc zsIa3U^=fXNmc&y|uf$gPg`<&Y0U< z=kzSyxa(zq6AYs2OlsEW=KeW?QZ&>k>j66GXFvD5(db-vo!q>{obDo4QVN;mE!!?D zseHxVZ{E52O1Py^JBW+Wt1idOgu~-~gWccx=@(D69!moP6o>>%&zv5(rcUCCQdm&@ z8!vz7*7dttVoFzHO=qTchwaKv(1wCivOH3MrGp%rmh4jGsi>S*5=$sI0h@7eKiQ>* z#sRE4EJLY|PLhX^XE8dgRW&wu$lK@$hIgt|vy#_?Vtdn1~pH?@B_> z2v=!9Qz}YrwRUy7Vv%mdb=-ay6hs&c_w3rz*jNoKGPs_3`*COtmGxK55KFOcuGWrO zmhXiT0@DR19YTzhy`#GBDcO(*Jb# z*vV-8l9i+IEY#txF5J{yaiFqjUC>|R_rb41M;=Gbr6X`o%efOB?Pp3$O9Fm>7A~oj z#>S5$LO)~^@rrFGEo&kKBo#l~()#@K$IqN=gCE0L({L)A0pzk(u~MasjcRhF@CLu5 zVVd9x@C1uC@40N-o_!_Nbpl14-Ia4oDCA&XOE*I)V|cXfCqMXGFn?za$=n{-W&3vl z;uxBFX(&bg9gV~fJ$p=sL8kr4`ic&EQR{qCPf+YI?^pz`ge(+}6x(YUjSQo5p#uU+ z!7G&s^T9HQQluRrnQi_0CRwnR4UGRqEKke1_JO`(?j6cj%83l;xUi&7!@wx5Sa-)A ze>Q35&-50TI6pT~N^CqFH>dsAXWtkOk-V1G!5cL#CvMZVXU8?y9enXs2XA$|VP{}x zBwM6JKX*(VwDn_sJ>PcX(dT{+)&VHi;t;I zjv6Nj7^zy{)X=o9!R_LNTxGvg{pYyq$epWfd--XztQN!tXpDnlX#SBCk|!10{?)@U zNMsan^pQoT5^T5hpTt_x@97uQ+lG5kuzSjalKywLe#zXF5{v@b1kBH=bPfBZKqnI) z8yz1V8{fU>%97FwK~vDSfu?XoW06pFbS%{0H`X#Z(KZ_C4aY{3Hr1JR8At#uDD+j8 z1sf|1n+pRKL0_@g<40zcfT%oZW zS!&|a-VlkzTH89#pYQDG?CI$085tgPAh|fKR{UzEylxWKDA0n%LO;oLQ8r2Xxv-?P zZvDo_&D$z!>&t6uK(?;z70$jq#~z$^8cWhXa^!nQ4t*c{Y9^Rr%AE>|g4=g&Qaen_ zndqFNiY~AQf*wBn?D0qhnm{%O)C{dnw~40P@u!RBU0f{C{(&(41_jr-auJ@i@&o*M zTuo7|ATO`a1A5+ILBQ*w>SytIa(rx}x3?b&jUq=8>C#Lx-bLD=oIB7ngnpBgT zKXf6PEv@9kPyXnaPy7Jx4yrWZm_5|6NGS+n$8fwXD)i)n*GXMFYns*}6NRFxl>Sh1)c9(G4YO&Fax zhyYe?38=+mnJvk=ANOw>{Cz024cF*!h(W>2X?NejHCC3M%!uUI3szfpt2Wyy} zq)NbS$p$ro+l2BD%>iYj2tlPl6bCyjmDVtqS6?pYfN}AuCm!(oy+wrx?aRK3@f2em z54coHMp~dzYM~Q|WsZ-9o;`H*$)}$O(|RI7-9EVkUu>bA+@LT1*X1HrwSP%-Qcaz) z%^1wpAA)SHP*QJI3d)?WO%VbYYFa%nEOWYSp-+-wF?Waz+9_t(Im5G9Md%?#dLvMp1^DRa#-U2wJA}SP0tofzWtc%f#gKx=v&RF*isFi@b(^v!zArvchUZLw$)P)CAsH`L5)}O2&tV z2a+~8^y7oWeWCE!*u-!sG=Zu_p)kCiBcaGdJWlZ;j{iiVE;e+K<#sh?WU<6WJo3i8 zT2pa|%z9zw!NQg#?pX>g=AbFOiIS>?}6himl$g$&~Y)RhxqU1Z?s7PgW>(%#%pXwKt!Xha3 z^N;KtnS@eMW5OT)fVE{4hU-vNyW*SUSj8z@0fX1%&|99ysG$Qm^?x_}wv{r@qP1TJ z`CJdoj(9u~2I;}bD8AR!G;Q0lPw9jVoCH$|h`JC;5x`@v^E`-}tHgQNJodsfJw0uH zpRcI6DC-odxj*qzXQmVbK7sZN^mRv9@0l~_5eL}YH#9gnM3fb36&3wC6*!m5p?5Nl z=HH+tyMtJv+2JCFU*5P&Dyo{cY(pGic~xy`RSk@zj+;v`4x=i%OsRexuB$!%@aI}u z9+T}i>)ivl-??jZu)s(8ORUqStCtSMq8=L`3m<#obe58n{*(^x((F;CPKdsj3iwku z$2)^rseuxHn1v!Ums^%lO1W4qy+FsKxu5b!W)fhXol*g>z5cBYjeC)Om)Z4~K08-X ziUt#>nbFYt_`kk#IrOnif!Dn3E%&|T_j#&MX2fKOqp(oY^^=i%YVpX->X|xQ^xCdo zq~V=DaqiHO6HmpGQC@?%b{HM2knv33n%<2`QEACy@SRa#%slQHu8CC|2N@msp>`~6 zM20-!5qx$-+e`Um(tKCSRhFxHwVdxW*%6M1D&Y5Cb@^piUbUyZtdz|8u&qKVL;w@* zju`xGCRn24B+FTn`L?A?fGoGX&T2iqfj@k&o?z60xeoY|WC|FHiNg|S#sB8L@$2@R zR9Gg7G4=-!hkn!!i-rTGe)%uEMmi_&Y}=u~{eZS<9i>xQ+KYY^J~JAFGUd_@*qq#W zBqMz+&)|#v^$ouF@AGg4IAFNh$67hPhb`GDh+96atg=e zM-HEO>e-{G&z_?b$o~Z9Au=Bj*`32kmRem`LC1-GH}yvHBfqlUv~A~sn{I2~DjCtv zM4;liY_p_)jETs|55Mz17@8qku91?hR%q+NBH#8Mn_;C;GcHZIs)fAcx18(j>lw&S z@-m-^4TmzJv_xyt4kOS=Xoyo8_38JvESPdOkh?7tiw)gj9#D!GSVUH>TRs7P*~xop zt|C2#HY&5Sdh;!}ynBuj;B#qf&Y%<{bB-Oi?azD;%o8JXdHlkigT@pFO5gT|zdpG8 zMzzC}N|^He(hfYwr}M(9wC?mhmA6lx7|yQhL=LMPPj0tP$nDf8Qkgb3*I0024Gi~z zg#GB5=UzDV6xmlZot<-hnWZ=_UF{H|@#>u81Yb!z6$UV{?ZrYyoLx`Js9`6V+{@AQ zcr7DalIqs9h>X>=5vF&wyqEfJ*~p1+Zm!?Fsj0rUs;aW0q_jxsFDVhSh^C|&O#ZYK zV<`X3WiJ5^gCdKS>#N^(edT+^cPZEjswPsI*f&LE%H@iD^HX*ZmQ}G-TW@n2caEk(Db0v{;_u?6CFE?<^e>%>|K-yW@|JQnaC~F)EVNoIr>;`3{hb#D z3f+KJ26+nRy2ekg*o6L)RJRv&Z=igOL}PB3d)qJN_~dD9P1p<_ti>KG z_~U(pT@2IG${Wm02+Qy+K~u^r<$O;6<&;%A6_c03sA?REIMvFYf(JY`bg+RS{V5(c zBV$N^q8M&QRT6O^j}q4kcM}a%e7JCBUWUTEWRs=sW5&70P_pt!JbIL(iVB-A11SW;@>N|5o)Fl?^u(kn@V`L@nO0%BuIr+J}a)Y;{G z&xiC#lm=D;aeerQp%m6X6+{R@J|GF8YO&G1gyn3h;aE-*%2+ z=}V1AE%b@M*9rd~ib{Gs@@lvLp#dEukb+n~`JqOEdP7wk{ht#W=|JMMhAr)HF0S^8At0 zCr_Rp93De4N`Ua``mLX>67O5d$kC?@ilOK*u&Z8Gr@NJ5sf$jZ*h5s*QfNFam}Yi@Z{4wOPA zEavK(>w)X|xqwp5xaMM9UUR+G8a>Z(nbP>X<+gWMR&G(8%oiF9GL%rRpj2ui&>;Eg z&;IrJiJvRvFb!K|*uKn8C+iUTV*|e6Km5g)t1GBdB+t9-=T~M8$lckY=*06U9{AdbiUAN&{n^jXGEKqO45!@eo1a!vM*MB*?1*uLp<)QC#G_&**B|IaBHfeBvu ztmM}p|IZy`J*mH9+E4uFzp&;?!#ir(zy7n((ILyliUf~l)S9AyFzQiv20>!~cD3h< zN}=`?8#CqsVzDx?1@JZGo+8#h(Dp^(iijpqvOS5nnB<&DF@3GzPF&!o3j`5&lVQ?- zU=i?vh6w+I^3dg8VrNuNUZ2Puld)I=n{``z*V9iQJ$mc}LRZBa#l#E*Bp6ZfutXJD zUYtcT7ebVrG-~m0qFzL|Jzl@Z7chL|?&7eg03ZW)lvK`wWKoeESQG*e#7>duB%R1|D(ZuI)RDb~PPG~U+MF*q>F?yuZwdJNL^G2QOqDo9EPr~CoM50>6SZ&GV? z(L!igbFAJ=yY#qiX9lIj;bv&a8f(tus4NG#C`mY))?IncwMg0J!{L?5@}{^!uE@}x z7SQZCbm#}adg#9x#nTj^c4pncIbWDEX;hTgeDK|$tFEY>jJwO>1e$%`2ud!kbljurXizOIRw-Z`CVkE;xG-7~!50oFyqLOkO zDx=TBHgsw4E_ObtprRZDVn;;$l+jpU+fZNA*jUrpP*Yg}<|R5=7L2tske0T8*22?O z9s!%KX_h8!_gBB|`R)(ljG`nHaziO7Md?!Hn@ZY&K=jl9tW{%7PVNc+cRK#@BQesA zEX`xZzx34Sw~kLjDXqXi@!>yLdGM@xe)5I*$6ttIwiEdTP5wzJh53NrSNOG0UhCgl zMBIK91W2usFu)8pBJnK#5JkQ`IzY0G zFXf5Ks9)yQngzO;H*0p{NYQBxpu4AMpuM9TUu|vOon76MQ^a*Bb3Tmd;pLJ_4SWZc@BE)eKMoPfx^Lg`8_D@&ypCf#)DiwUt%=yl|qnodx0v4_a( z5wk@{MzKS_kJ=xQJ_N!li4+AMR z+A`R|vUv-24d$`S?RoFpKDuwmb!-Vz%HvA3`lP}PkVExPpZa4&n#@BmE9p|MxF|4GQ8l@|Mq{soA@=75=iX+9W9YwBBUhgULkmH(74P@}nVogW^D#26;S4(mD@f2JG zR-5^ad69X_D~0|_cSB{-BlBy{!dxw3_%s-l9gqeaSs2tZ4fOr|k>k%FKGD3IzSA5z1yg z<$+3J%V}QW6*dvpN_Vcn_at43bIPG1-T$Eb%ijQL7ypjJ`H0vh1*IsqkNi~OFMh(V zsX)wAdYPHWdy*e|Hl{4Kn*GT`U)?j>krGGzvOVEfycBqiX^l9?QP)24eB|GcCot5x z$l?^Q6zsyJxf^<2!1&K=y)}NK3bkMi2a-z7jLe0d!c^0?mCWz7Mz2U=D%z-LRW?_Y zkSLE->Hg`;n97}&1zGAZA(Lt>93C7TK6Lox;UmXU7e)Rk@MA^2^vv3rupEi%Cv-F{ z1F~{TiX<^58g9)~X!*;@TLoGuuK6y+bkjMGWcH9+ zzqtsMa#$!lhTdcl1K=#;;XjX9TGu6$=Pz~x2TGwv@Oom8%paLc0KrTe;Jox4@2XhOhQsx8um%se4!-s#sYTd#?DV|?!{!stu)?0q-uWz~L5GNVb5MVGUwhT`3hoqp~=zx?6M@33T7@WLr{4=gga?8vgJ z)>e_H8n|qrW7wEX8p(*Bh-$I0D<0BpC`*&embmd#cfiPp)}%~-{3s`kS-p3v`<6@& zvp-l3;mK7owP!e103{@O8HC4FSC`k;Ry8%$u3z5>?mbc(ks;!^p)T>nNl~n-4SRO^ z=FiBb1UPyJmJZSzrFa8MZyHIEwO+4 zbK>43g=%ulKi8l9+h^mVbK%ba_`ou%uvcH+;fpvb&zVpXWL&*h& zAIT7mOF4GR&=E>TJ0&V;?kd;*>Y%?q2$E|`9%o;-a8am*DVNg8-)pT(AkAXy7z9+n z8U=_s{uXB|oHXz1Jw1Kr&UbWlbR!zDv%4o6jXV3}MMNoEq9xue=+<5RQ9y z)|O;>g0r&Ft$-nG6@SQ@3a+b zE+pu)#;*)3yom7>n#2VQs+gu0=#H+IfBMXyWGSGfxJ;HyUN1P0g2NwV1alfLQOe3X zgVl%jnj~?ThljwtN1Ww2lY2#C_A**)mf~&a`%HmT(DmSpW6D^ykBFf_M?4IQ=YqEU z;DMcc_U>@Ic-YRvd@|qm=C5C?5`gucC$B-#dpu?hD{lVp*If_%${@yb_@dy7q6+04 z<^vuWR;Yw_!cNBD|Bl2BSHW7s6{RMR?ojf*kH<+7f#RuKe|!ALyP3gHl$h}C*T(kl zW>=G1i}_6LgU?KS^$Zm~V_-)76H?rOh$xtymzPFuXfi5++-4$ARW?g*h4k1 zfR42~2=ecpLkSQAJGpP!mS~(g+w#N{hfkh58;v605U?uE8pzs*VggUm)TxSptH8_W zSf@#wwUE71P@#ECY~)$tXD3&KK?%u0A_gf+h1on9^DMA|n|dOl*=Nb+PG%imTP}Hk zg`&wtO}Z!xg)%d1+Hj^&3J)a56zI2%P1!5`IUK(${Z@fs`Q0yLF9kvSd8t(k1*O8_ zk*|F9PsYavL9xcM^b2_K0;75Tg=J+mtbOum6R*@I0{kSM1|H^sKj8SZG?(f2z$8Kh zfC1>QL4RR+S#^0?O?`RO`gJ?R@yxadfl}gZSvXCfB4vbE;F%X5`ocFpzJL~bt7m25lt z3tcZMD%i4R!{&|as;bJ$OH2Jek1}&9WS?J2mq8bG6%l7_AQ#o7CJ zjQ1*Iu%?CXx;3`0o|gkwqsY>Llqlq5*)RP;s69+`2Y-^fQuv+@r2wpl+bq|lU<^KhV70QM&TzrlDb@)NeRLx7 zL_?i6^iw_`2^>koTu#iOJfH7}?YX&r%l1wCwr;$vzPcHFy8;u~B$Clgn5!VTLG&h= zwE%2DlfR$(-wz!>`}|z5Tn^_c&_rRDjtPdC_YyHJ88uP*DLMg-1^`=pe&YN~Z3gKJ z&-9q-NZaFEvmbJYv^`(z*i zij(89*VpfT;8(8ue?>kXB0WdJD5)Gptj8SP2TdV<1fm7)oyn8gJU>x~j@_laY-T(}h{OGmvNg)HN;v6}cf&a5NexginIk$Hphl zo@qUOrnRScuy0^sVtj%lJsiQUqM!{Y!icp3veDN2}D&m7y zHd`^h3hmj#45^d_eblzQ*cUd_lek~e$Oa~KoQkEKuG94)%kIfk!^uObT=p;eV*mbM z-?H^K_DRuhk@ejd2ujhqFfrc$xzE1^`zrCVEWjb~h|D!$zpbqEdiEaO7g~k@g(I}arUG2&hDo+MTc-L#(BcF zhVFe4h_h+gkP18$GU&Fnn67zrJNA}G62I(>!_@^VH3elOZz?UoPqHga#KM!kOb16r zbAk3(`+bdt36L}|Z(-+KX@$d~0095=Nklm!sr9#oQAOHAYPM&&L76AuP$w10<0A1wuBt`?@y}p9-@*0kyr9*5Q zq_wAMW=vlERgKgz=cQbzsuRm1XaWbPpxy5B-PZ}k; zSOgQx2t1asvLSnxYF-#zN0L&BcSCRKALA6J@Ca?Sz?T`7+p^rK4J z$jw*Ulpm-jfMSK^TyzMlWh8Om{h=5*(AhkLwol2GqNG>$N>NTM0V>=G49uI0j4P_$ zcQm*wedK2|sjak$vJANYSZ>VpG&N!&ZKkKK`LbB^4kVRwoI_0O&I+Lx1^JmfTDnWw z8dF=N3<$a-U9NVb)E+Z!NTv-KPT?2!oxHUr^O?K&S4^%3>e;*u$Ry z^6M_I<|(jzMY@Un47Eu$aI`)M@GC z@`Q^M`f=ZJPrx??77CMWL5@At*#dekZ6LF-CRJV&d03nBiJo&EN;92j+rB{QU3dSD zX>$1YJb=lfgXu|^HSvG7QXT2A$r{dzmvXWvTsGU1D)>Kz=Gp0v6<-BeA8!o;CSa)U~ zU5am`#g8}^csf(n6`DBsK;9JwLkfEvyqhx&W703t=b@LIq~eRpMav3Sdm2)3%}{+) zVj`ClocE-w8C0lW5zz~+x?IbdJ`v7RiQEz#BiKRaE2qHAiiH-2L&jLh80a^To^U_+ zycUZ{%_xcAV^Tf|O8to6yFAekzt`HjQ4$-z*%JHLqqtJ?u_=%0TO~)D z%`mqBjiXXgXlU$_BgvmU;rqScuxl!ZuG%HEGJFo34wf#k!?zK%fO&>OY%OM$_?#LJ(Vi-yiP3oE@BZVR z!y{z4$i9cO9T}m~Hqgex>^#3KfoLkR$4!2rT!g@iWtbbsBv zo3bo#FvSp<>SPB@t!u2?ciHxxJGXe;F2B#m8l6(H7;Z0N$1Y20uKY$R1B7k`$PokI z3R@abVOrSjXgVddWCFh-1cGq_9h*LYESx@2gbzG94?l!qFlZ-tXbt-M0$}SPw z(#_6pJsvVUyIeipdV9Bqf^MONg}DvIpPohR5t%?Kdh_s~zSX+?00Nc80`=kus(x8-B9Ra0iouah~@0@fcb(h-+x@^B;Z!9vl7VF!}+*Mw?#KTJ-#UgT4 zt%9BWiC08g?I@-k*yA2TW1Q zivex}KtzQ~f$ngizg_g18;J(8?VWp(qJg>b#7_v{8qRmoXWQ%23*1(zJLz^4*abnN zW9VA>(<%Q3mym$+Xi2Py!%C4zB%{&j$jI1fBqNKQmnd7zd`yd;5#tUs77jLm-1O zFinyR1Em;DNKvHG;qI?|{XMZLiUiRpSBAAq54+5I+R&@3*TFHxN@?~|$mpSBS(ZsF zJ_rfMz-N!!yKUp1?VAql*toBxxLkRscpsh}O34jH&C#{<9j89`wT}*t^zu`d%9%@j z=DaOqJSag?Eg3OMzlsHpe*e)t8Y^bkk zY^-f;sKJMVpijkXNdHbb<~4P5*82R7aw-8>LJLi=*Fc62rw;+`5Naae#N~|uNC;W6 zCx^bv38bA9bvXaVLW&SEHjwd@(vcW<5fbCvB=HLo#zG<@gB$^4jMnJ>#PkrunGC>i zEf;zsO9yz!iDu6Ns`7Z~m*OZ1hqP#z3?PKdq%ah2LKqHT&`GFOq@u&~Os$%uR|=fy ziThq2fA!1AB2LpoAC4wo^NT1$8&&6^!ifBT-Y5Mi+M@ObvGLl8M~}yT_LP=L_&)sS z!`JMYiM5H~uc8r`(rTooi zkU%PCWSVM0x`-2vHaa@q-qG9M-qprm6BC$y?CvHHjad6ugEcSR;U)`-gAW-Z8MdcD zbAbjhpu2;X=@o@7Jq|Z>1x4bmk-PvxKaiwP;-ic97(1E+x>ko2D#z!Xl~+mve#xJ` zE&HsV{Ip7w07i@J*4zH5qH+`4xU-k)!aymBL#6Ra_Phrl{QR?rze5B|)L0(eIqJ;f zl8QjEnC6P(0m;#gXSxk9VNQ`ReieQ?qbi!kzWs{P45UWSm6?t$>QDFT$%$djt!W(_j-uBCf^8%*eRQMlDS;Xi;qk zCt-tY@TtfkiGEZi&-jKCCAb9bUmS@sZ+;*U@NL`HeBi*|n#!`&?!-Ay&MGU5@1z)L zGt1dbSe#eQKV=RQ2%c&y*tiij?KB`F_?Ou4go;Z{#vp`uKvS?2V`eCnMQ$MiTEv4V zza(e`1EeZ+tA2x&BmyA}W`ys799)E#2=~CL#bw**KD0!En4GW{PGT6wJ}q)~;WILp zINbu5(4b_JJ!$~1v*Sh*&L`VU;QAzLKT{kcBQ)SBGULkK@H4xrW(e?0UUyaGoxjV` zW~|%U#>uhdyC03C1%x#~=&2daTIloUV;*q*iB&-ojSM~h*a_?Y=d5U0f5pqf@A~bT z)IDk+sZJ9K?X3@opC6pNSBhpP2gs4{3SM<;0!VTQpU~n4$ijGx5fRM5_$}{h3~d0e z6xtz-gwq(av1wX&J5Y@<6~QK^zF_#pFNfPw#IKx>je!W034_7KgkLj!;%p~;CYKaH z591E@LVgPFsgl0Ptwz8UzsEiCkA=G>EVH>V6ofxCf2?*1D4l^`ldHxGVb;{G7Qd1V z5KLtxRvkKg{KScK6QPMvD4O6EY0+%Z3)ma1f3U(S=4i5gU=35ak;Nk#6!~+!TA)Pp zmFR|-SaUIJ7*u7p6?23y*U22UwXPHqz{Ot?3n)=fVCD4cdXq^GLOwBz06$(f8I5fh zlY9P{mju|FU|)63?=-Kwng>Dl5?vrDrJNExxUtd4zw_O{>1aR9-c@A$E%qRnURkluq}d=U>pa9Tx2MZlyj%&KaGX-o0C`(B3dyv_{6$PxQJ{2V(~dpc zuiCPHCrVePKT2Z5=$>@87D+@OedebRJ^6#dp?)x5IcKtaXCAZ00co_>rk?JEr8#~Q zhPcXJ#ktm&ZN|s+(5Pue4Ztbeg8g*bG1+$_lSS%)Ogd|>=durtFrZ4?m3~nxp2`4r zhL~DLH5;tuyZ3C{w4te}upkihbNO-cO-;I=Qn#4a5=U0qPu;n`TK>F+mH=TRN>HLz zz%YI9{vZezd~be}xotBhjsZwQo+83IWR@Tw4|$m=8!Ab~nAqt=bPM>UK{0-WlgJIF zaFIBj*yAKFDRv&A3@+V4{8u=EeOAKsfWPs{djCd?zSHUN3bm0Xj5{&*3;kw1;B%taxJo-q<^TPxJYi7D-K|=Lf70 zJQbs*&am9LPS+arvCk(SawAqo^^uwu{e8A~U`$KIt#u8_SH5(n06*tSG#zN_eUC>T z?oBcj;rvnt89y#OEUce&pd{uMtgK38-Ta4;=()*ylrlhnY0lK}2P#l<$a6 zfaj4}!Fpl3NPLFR!#xS}klFtR0DTqan;D^%CVMh~RseZ$*Dyde^zu~7a z#FF+fz`|AdgPU4Hi}pa&J~5owTWKGtAj>7Ec`-7}AFELUX;4ZjACp+hG4fvc-k9(c zp~%?S#M!fLhYp`OcdpHGlw4@^RNI%@)%YQ5gL71us2iAajFBvrw z_zLT>FqvyOZbhNQG=Q*J@>{&;OcHMi8cvNf!9{|1i;99ZHPsEZRn6<`o7dI*{a%hA zm_oQWpV_#0ubY2T4keIA+6MQI@3n8$C&sZ+dk*Y%-*lt7eTz|ALe3n5E{t#p*8t^zTn@*3{#Gkp0*ts6-vV6P=UY3@wY0al_jY#o z4GsYrFaoDBL+MpY1)v}4Dv71w9WtdDtXO%7W<)uYwl`qA3v^cywSZ9?m{u%KA`_pt z6I`M`kz^?IiHyz^fn{|jwK2&!V`X9H=@zhIL!xx9&ZIsn=ydLfME%&>b_x*AAM=!e zjNtVfuDXjhiW<+fpn z>y5dt9B7nUeH>$|h{~C>?DC@RII|?k8OD>-244S^&PO{vdA%^5Dg7Hn$3}S6jE)#~ zTvgk5p3}NS2-77dcKqN3H~Q-#x#9i|IVEoFF&xmsi}@^y;H@VJ_4mH=Q+Le zm#;7hDDpjG#Wg#6-M{+|&>xWMY$D>yWg{DadR+X3ErFZN?im>u}ACTP>O(40`b0Zyv2z_ z3n)oX#$R@K!5@hI>CfY2R0nFT0+Uea1uKq2NrU~pr-xq4$Dh0PmE@Bmfl>YoIh`6OCY5(F+-%J z4Jm`_=-9+F&m4LDsl&q~6Nv<<6(nszjEn5v<)vpR+rzm^k7#7-vz1na?a8%3)u z7hK$IaY?g$lQExugO~zNdn6g^T3a#^!b;A-Z02kZEVy3VXm;scmOaM0YzBvT4sCrK zMG566b_SBW*r~GXAW`bJ+y7(*Kq;o1B!lYt^Ur_(2Y+vYxF7{BCWq*pWRmh0czyoz ziUwSxJlcvcZg~x@bpN}ACd!m$7Y9$^G)oWb3le1~f6i!vT~c~7-itjv=3oQnSca<;F6En0E?dgj-C1)kdo-KnYZ0 z_nEr@mt+RzAG+8Qm{d)8i|5$>$tlSBjU%I@Lqnt8UA-qywH!ZjHV#7%saxW45tHxo zQn#{|p`+n&ng)BK9K8%i4UcYmGo6sXOtIpmCT2<2H{!ZmTtK5uDQavWTG zsrGOvkZlJjTG)P8*dvOB%#3e~X zwzK2dPk;9D(Xl?p`J%OFG#-?4UsO^>gcDPRx%}p~1o+WjrrtB%8O6p0c0ti^m03hq ztK4mVWK`lCCgXZCV#H%cEQI2@CP(=y6<=pv#nE60DKU+bLbJA7uc**VO7)_E?(>1iT=%#w4|IOqY^qmE zDE?sfm>-l9(ulc2DPs8(c8XN4)MS94Bvz4!$xhho)QpQwlVU1garV{K&p5dUFX|)Oxd4(#_J%?AIju9xOYa49coySsh5Za8V zUZ%Z z!G&#P9^8fV?S$oYy@WoiN_Fs1vl*O7mSOLWnvr26JYrf2?7XWU5zR8%S*PRRW+c56 z@v-4{>z7@&ovaBFP4D zQpq&@8&G`G5>8$cq9icfrqq98jy5RBF5BZaD$31*fL>5&mle72-A#dVP+zFXD>Q9_ zH%Th&OK2yKA18CAIL|6YRzYFC4>Pt? zJc}I%tAt_2F^52qL3gH;wZtvgMqhQWW`bHO2|vm}*era<`}|k!PW<+-<9+yf^twN4 zOMdw@tyHq&Iw(AvCyrs?#^K!8aU9y#3Kw%P1x^(Uw!_ zjw%x6G7;QNItg>%F*zPFMl3+Cl*wd(!pKKnGD?mD@F9{h^gVigC=wrvYv9Znjl?FB z`cN#60U~UE7$6kG&QumislsO|IYp>k#t|WO!kX9&aYKBkA2sckdVPO6>%c78{DPL* zxXGV=X$f$`f^q2i;}1XbOiN2A3O+E&FawW_tl}$N$ZntQuhawOC=5&P>O2_@o%8{3LP6kDFRwdUqJ2# zCOrTqp((;0I>|0n@aZ~J`h^~v8y|@6Z3^qQVy6@CRI@i zynhl9NM0h&vILt2d)(tYw#8q1d!o6S7h+mqVoCkTpl9o!|5@3|V~M~1qvQ=&Q1Nb_ zUq5ZPzI>W)%>aqe+RYQE|8M{Se$&C!`P=R*s;f|m-Sdef0!eyYd!Re{+2gVPC_Fi2 zyyJ*V!W*22#9R)XRW!->kYm~jpeCtarG?{Kdnn!;u|f$A)sLZffsmT}oWc$P@6ZZx zWdMDVBa;~d$-&73hwu`giO=)_oT^l@mj{>pk_-6Kz|r*UYV2!j$W2P>0Xl&4r}9T$ z0`r!DFo#PJjctb_k-q++o}QtH9(|&-6Et>fMZrk-WWht_3TSXud5df}iboA6wQhC@ zNErx@P@cEk?QK>zl;T)2Y!Jyvcv>5g|!zo`>s8^O7 zJ}-P!T;w-rP)Z2XncSS{`=}sY z`#$*ovKJ29jdih4{ex8q^C^;~kt>z_>S^4Cc=xE01Pppxc_Nilu$NQ|&81x%)6G58rp#fyzM?l*JgHl`zrZ;3iGZ5(t zkx7dO1=aSYoG4SOSJ7_(rI~F45Q;ok?0w>a99w1wK8-D5+TW2-+AKuMNO*X%H71|24=KsL4Y z=+WXf0L$tiN{jXKN-k8DBPa#!2vCV!QYbMDb_j~^<0`{MdJf-qvZ^Nf>n}?-G-+NJ zSu0sl$FrfzkH%cj4q%SCF8}NIl^%VbXwVPrihcA0tk7G(Xt)3GEHO-QG!U7|?iqag zwF6J6oQt%+AGz=K$3z2?+!=_nbU{w#mJvCg=jpcEH!Bs{goL%XvYJ^70+kN|6Cq`whDAV4MT#P)aycBD0`k8vs} zrAr|o`Dn+}&z$%LMLxGBv@oVJEKfNMo?0X*MLQUFfVigPErO<2tvnm3hJ|fmHEBmV zgi=eOSWB20c4xqPs1?Cr$-x6J|D88{>ScF*;EKzCy}o9L%k5<|B({`PncB%Y4RUIZ z8_yqU5}@@Bd#hC(Ea%)a@li?84ZHi)PRj1tHF-G71cOQy5t~~2^Lj>pHf1jXPQPPp z5DZF|C%bf{Y7-Zu>`z75~T+4NM5=?B9;UJAY{camHJ}lJ&w6c z*>B&8o5>Ky1BV6?k>68AWhEQFL_V|3ghHP`a8YGdJekH63yh$eQy4HS z3Fa@#OCU`GTt7}?g(%opY>~{~&qj|mb8tS2giQ&h4($MtMOCm?*f@-OQ}c3R&iUke zF2&d*M?MTsVOu|+)Z&IV43|22-LN22apJrK;}V@>zTquzUyA+`GoVuWN$WRU#U(Wj z4ZC-4zvYU9_ck^iC@ZVOj$*o8Kvt&9gR>3Og`LIa@&*eERdP_iUzHvpW&?d)?Y8pb z8qRg3a+%7eo4&wh9V)XFqa>Hl6ekqfc0t;#xtaRvQb#VIo4?n}lz@bWDUQ*Z*BN&E zk|7V+;oJ9X;SdcpHr|cn$fz4qcX2YO7mbk_- zngc=J)=3?wHWPC{V;qV=p{B@fnYDr#DdB4(Re=94E^NiLN82dp*O1DD>EcQj`tACr z$ZfYpUU9dzcduPpK}H*P;)sEUq6~;q!8$)?bcReO!m!sp_F!PJk3tgRd^vK=zU~UU zu<-C;vUP&41H~M%Y-rlegGU-eC<#jGJd6X>SKt0?+#V_i#d^v-_HS;d9BR7(HHZuB zcIGX0#;TBw+w`2aj8)gkgK11@ zNeIWr&U8M{9DBMJ(5+E&@6Zq8d8ZgTp%~5X5DGtD7m8e(M?u-_?ltu)HYO?5r|Tiz zZm0DhA?ftMh^8Sfx`0=1iD;ygl}45I%jBZj^SwuELEgFNrJN6z{o5=7?L;PT536e; zk%%Uf@kA_ww~Qsiot?)|p82KRWIk`6Ni&x9xoR)u$+~mn6<6+j3Csr+DCy8qi?c-ZQH?2~7f^v& z9K|Q>6hb>8EEE*)r?}W8T8l2BI={?dfrKM-=)q4peQPC-w zQP}^%<$Xb(PVv8#@i{8h!t<7~F&T!M9tv48&aul4#L>ZXVn zNiqOZ`~9;&xnk&;Nl%@;F&U>K{Pay6`%%bBcOlKqe*)rVaE}_q8aDL z(BW2381zVq;kYpzr*O;j6LAw*8L4e-geLKG<`TtO(!!#+B@og>k(wN>$ua2m|DFqv zL=h{aK(Z(-_zOqwF+mA)V92;&9!FZGD8P@Q6+eOl{3Ohe8T@b>LOY4gkM2NGpE#K$ zhVRT;@q62ib%jhGri$TRa=FWFsOMLVyac97fRZwFZ9Jq!kSdiuNLbloWmOAnhk2s? z>Bmo^<~T8=)0B(rb_*6>VmwdiNvzsTu$Hy%!3Ho|6E(X|H;Qu@Q-);%ZDz0(N+vsP z6GhkA5W|hdb4{(lwi?)&q)hd+xTo8PR$>=Yzp>%))vx_Dy-xOBqb)}$#oH_y_9ka0 z?Hvq)ZSDCZ-#vNyLEd87Ot|I`#e~kI+T(KHbK4&l_=+aWM6C3|o}>QFL#Z4Ia!uTZ zN%_btL$gXz-Cpv=u?w+xhlv+PN4+n9vlfj)wPs=kX3!DN34%io&xA`TC{#X`LB)Kz zND0spX~&ct#i}%&2EtMyN#}A^l32xD>J;j%+2sXBVNfqB17xDed}7{1wMe4cBc=%0 ziY3m_i8-`AUh=iz*M1)ijJDqkhH%U0x8T<*EJ_rY*d@i5*T-HF-e`E|mhF4Ge}mO1 zNC=^24|kh`QTB)NJ74$dk2D^Bioh3xE3DLsU%T_Gx4iP9F4pepuJqe?9sl}{k@M5} zf>DU}UGEm35Q3H^$}jiBj`kCxb*6T3T&8%y_?@ZHFS9bTn}^U3{RbhAMD>KNjUx{N z0<@4DMn(edxF`Fv7)=up5`J?g zA`uT57Zg@3Bus|R!$DOUR>Xb8fj$Lp34>puOMA~{rdN^n@j$$^V=C{J%Kgw*q*ORs)rl+!&q9JM))lgd=|u*fYhfGW^_XdE=LJ8O$wWc#y!thtK`{FYBSW7} zd}#~z0@PXm@@ME9t>N&>I`*|ppn#E*WrIBxI&9ysjxbi-p1428&|E>8W52e=p z5Xe9PDg9FE)-!K@99=H!6NQid>ECG&KS8=OTtpIj1#rY(DPkC4Kb6iuGL;{xxrB~L zDHd*Y{!yGAbUyNp#An4=i%}Vu`i0d{H%kM0Ss|V^bl)4;%fb*P5^;sc0i`UkFBO8I z*CVz}UO&Y%%f1*6HsRlMAqs_@B)*@b*!ZOsbpiRZ2wzS$U6F5#95`JQ`XfDXkco{C zM{@s5t=`?Jx6uB>w<&fa zx+RCv<@_KWP}W9rMM1b6xI)c$Krp>NVizgykKU4S5os9!w_>oxh2#Mu#~wjGaBL9Q z6~s<~F>nQ<-5nFjdwv!{ncayP@TL?y9ghgM-(21bJ z@pQ6JjLP+bJcG~|zKB2lu143bbyPH(o+p7j5+{0zBk!2X`QTbRH_SsRnqZW-sGaJ3 z{;?B36t^*jInyG6)x*~NG@HnH62v5gVB+j66EKwGpgW^V*K!A?c=b=(QB!N-Di>r& zQsi&Eprcxh!>wJCFseOlC0rc`qg>tn>eu`Sy>j+lv;4d|vbXc%PCKqr0XXuUi74#x z@Q5JcJVH=FN_04EhTDQOl4jFJM@lr=3hEQuTX0WK~#Ib9Goamt0_`V&1wih=mTI0p_UErf?K5j;5D-FObG`lfm7 z&%WVHgnMd3#%dIn3_%eS&k0rG}=gQH#|#{b|7Dbmsmq2 z@Iwfdc<|6$Fw+uvp~MIXg8~$(BRKz(ld5c!s2|7~gf>&-ZL23l&?sPNrAYW?HOOf$ zNnAELw1KJS`Gd+DlWr%ZN?t}{nBYEV|0jDJNo)`}pM%fDPLUuk5^H^dadi!~hy8(q zm1h#6;3($5$RBwLvn}^7jkVkHp*o4fT`DT z;9V~HENBTC(t)FR8$j!cV8YR`v4kWzMgyCf1?nD-DR7PjTAk-Fqq*Jzax{wyt9X-~ z7n|L34Dg#l2-sNuzi<61nFx8~pHFDxTt&Uo&f_s*dtAOP>kl?mZz3P?j1~m8Q`43{ zHWEg)PmZlu$^gge(A{`9mJIyKW6PGUexF~3nqD9!E*-5U63OGojv>4ycT%K81+UB8 zSP3SQ4CXO|av1!{HXJOe@DT$%gWd+_z<@o^OK^+W+dp&S{7j{Oe`n=?=!WV+Lm>8RA zx``(n&JT+EB0m)+>8Pw4W=jVWsVvm1irM%{+W*KM_gcXcD(}QGX&E&*gU%BZG($7~ zqQ&9S9^>qY!~qI8K?Ps)z|X&R@PY46xif1OFKpWJ`Mcg4hf|L6+dtj^F@F+C%~Rsf zVl{Q4-}x;kvX1xkT<9MeyyiSlWp@|T&+1=3ll-?Akg`oaJ@}?ZVoA^&3h?HISJ*5F zjZu;uTzL2e;3tK3N)cf?*-hLX@OVkC6gepo@rk9(O}SR8t`zQ5=>yw@`HBrDR>rvx z0ErL(&@=J96~^s#E^u-Hti!*i!X0^&<@aIexZ?U^o?V&0d`1b-px_wa@xk86#Q4ls zCsreHE}~$~SkgF+B5TY1P)Q}M`Eb!ZrkoK)2(#N2EOfg9?!Mvnqvs!w#iN&6rl`aZ zE@-v15WD=v)WY*$3`TPn18FhXtEebnwXK!S$R{)NOHJQ zd+&Q$m^jUHbBN=7eU?hDu)Zl6D8g-L)1 z0}W|l8aCZ?bUS%qEHf7Oe)q@b(~sMRJM!|o5(loB7J)X)CPk%fX`^&SW3I3NQ2)$V z>{yt0SqjaIn;--ywHY28_+{wVfK~8ZV0gNLFm&4kEgJFYXcvAa4O&&^#Vt9y55IA5 zZ?uEpBBx1-2jQx*>t7tJtl=RozgQ3_gD4aDPQiS<84pFxueZ8g1QP)JXel7;t8F)* zIP{XQeljH}v3ZcFHR~(4|Hf0huLe4V6Y8Ts`Vc2zO2Zv;NDe6+L7R$xf{PZ)6aVE(>{c%K*|_TuK5=r{zb&gz zyvE`^Wr36VP}Wei?LcE;m7kpT4zvsCMxCMOInWM1LW;0z9WKI>b^ zS(+b|;xInyJF>&+lpjT%LlBQqqRO-6rojy8PTFy^(X=QAA_L@?!J947shsVF(jHe| zdDZWbMCM_$%cvul=ylT`J25fh{G`Cb(zj`uwSa6M3PzD7WtQj;YCMPj5bv?M_p0Wr zU$S-m?rOJN>=P;xn;ct`50d_+LV)-doOqvhP*@88$o35WHz!{L?Z~nv;Yqa6&FPDR zU_{H1>=04z^2b`00J&dPkQ)XBJGpt3dw=n$@1H+mKK?jH2{W@1Rdz-~5;Yb;AnA2Q zUvp3VCtr+z?q6bm`L5)BFG=j&VnV+LKZG48mIz|ilfXYt9-_)onht&fj(IcTz_5~F zM3;Wy}BHElU6t$o{0T3y;jC&vc*2d0rsFPI?598Iec-#iB zAe=SM7Zp_E$T^31cSX)sE=Qrapq3U_TBa-}aw}PtepgLE_mi%o-0FZR2@2L@kDf(w zk}3$4S8|B}1*}QfE{f~Zjex1`EY#$dk{vLjWN!;hEfeu1(0Fw{j)Gc|p2caim34)?uW!ELRr@Z#V_Q*WfXnHLMPw$!EIV~Lk+F$W z8#xY~NYXR5c#*o!Pof*ltlG^sq}aBH%?+g}x+spAvuR}Im<9?EHXPHd4aQM(w_VTn z{N?g@u7~a}P%)YFXw?dXQYkHgCha^BlLh~3!^3GZWcffVt=BHzYc zH8;I{&-$I^fdUE@p+!W}45wn2L?WKL^(DH3R7$3vnj_ws{WKM;$R=x8b~0FvCGd&; znVg?7yI^J$T>kGXSOSi_L-a!vPFdshDc|3H%>Auznf(Kl1VgikDxHd*Ka&F^jjok~ zJ_(m$ZC-ERc75WVzZ3hn4~2jEf6@Q`XyWZ}PQ3g@)@3{Fjm=hFtyW%Y`U1!%BGg3q zigafh+$hLOeg<0)xQ*s2_nu~>ri2u82Slmu6o4ugn~db0!=%sTbtcc{d}JoZr4PxY zBgROKQ*;o*Yw4)9%MB-FGy&=ej#^B8k-A05%I!`@?t0`KUfV8?PvBG-Jqc1WVwA6V zRTWW!Q=$;f*%dcYDHd8#t)`7803zXiwBcM5(tE(kfLp5#nDqfOKp}eUN&;81WI)MJ zDA?fA%Dj4Qz}{G-?=Ca%s5joY&HS5#zW=$w^_5#Ze|x$24clBd)tNg>?IOTxG6qoo zmU2dAHef08nYaPXq=(SF_VhsV9gjr5csf21!3vL%QQ|3~L$JqKU1yu0&+K!8UCrdY^XUl8V*@oQRGem+nc0gMLpGSe05cE&5W_gjM(y1m)`=*p56Qip z%{6_&wT%+fE)@iaavZDgK*__Z`M=c)3-B8s>-+J~KB6|C<;R&Z|NfZ&9oP-TGu;{W zGhj~HyCp)D>%H*vosii?JUQ4kcIx@A@EAC_rqB70e)N-9U3IM!;5Q}AkK^j;UMj#Z zl(PUo4q4WaDD{cg)j~~UCasJP(p=oz?lGHh%tP^v1h>jg=C~9l7y#gjPI&(P^X{|f zhyd0gP6VPIrvN-Xe9yg!1D9nMhC!(^PM{TsaIk~IsimacqGA%HY(ltl;L*_%Nx(VH zO6WtQ#=xKvi5T5|=E$HsJZe`5O}Cdgt;G(>8C?to)fC5viOa8#Hf_Q$$#Jw`W+q}Y z0M;SQ7we6>zj~G^G(cm=;nvt?Q5~47t8jRl^`1|>V{**U34jXp22yJF`HlM?y!=IP z`^mp?$SuE;bA;}>D|z{q@`BEKG`qU8e8wldO1zMgSpM{h$l*aMrRBUIzX-!8=|2pX za2%Dxtea|#YQI@mU~ey`ge7otc$qvO)uK=XkC`o;6`ihyHvnEh05p!!ro1c)`=Qm4 zA3b-r4uO0hcslw_KP}s2D5sr(lKTqX+8Z`|U(|s6A@DHH86Wxl)M(jv&29?AJ1L)1&ET771JSWVI|b_4;|p4>#(utr4PeRgN_&`oX@k zDey3$>y7vo7BQH&Brdq~@uBof6FD6o`G;bg*(Hz%DyqVM1P#%yn zv>er8PEmN%Oi+CF)GxO0FadK{v!5%=rHAwF$VvjV4RH(ud3uQ2l{S%R z%=4}91^(zS-N#N4s*${6-mYlC5Za<*ixk$Dc5vxi_B&A69eP?P&d~u&S?kS0RE8Y4!IIKK`RCsFg$X6fKk1}Ve zCDhRQm?~!#D{rVAho-w8?xupaF{%knzfHiKh5$eQ4Bt{5UOA5kX+6x-Cn;Vo{D&{{ z%NXXKmP0oj{yEKH#Pz`|1w4tkK;TJe?B&(W2hQ||3&eyz>#NS|1aS}%M3KU~(89H19(La4M z`b=NUqIf@aJ`H`EM>6vB$J&+vlTi^Bf-H2isjakjum(ZFWDDd?n(emy_(|nRDZsSq zvx-1}H1w*blAYH#-}c)5`)=7#R33D>ysG7CbS}-DT{^}cs5jcKla)hJYen=HhdRl z%y(~ldEP6P;aFJlr_;dUXgLB%FyDux?jy(C|L==NEJ6$jCh!b2ep3CJMvp5#xy{Hu zcPIDnr%1CYyO;9%vQB{PCgO@EaE8=m016&y6oE?FLmUB;ptvbB7SY0EL^CivrrS|t ze9VZ)jq#8k3kwYv?^E9SFzP{Vb(^{+$j;u zJUwE4vz3DVhzf(YUKI+H-mrK7?+1!PeFLtVcJI?fk z{_rhUBU~XX^^moXU5NT$JQaOm=#rju!Y~vGO5Migt9XSHjf*=SPA8nwSf~}b^tzxC za9Q;M(rFqBObQxg?pme0JEH`(dP)CM;{(}pi+C|7EgtrA4F|NtPfcpR%$2Z+noyu@K7i7P2$K`lWmXA z?5?0_XK1IQK);A=@rAjSRg~ya;oeLyrZ@J~~95nyS3< z7D8+q28u+0vQL(n)qA*HfjeIE{(@j7$s;oskSRi0VNl9W#=r5MKO=V|X*Ua`Fs$BD zli`~o{D|`+xWWq62c@|eo``px8EiS)`}TLd`_->{4NYt1@R<&!pdkzokKTLVUCiJ& z_xYHPou*$U{4$#=JRb*?n)@wTgK&%vwr9t^#=0BwqbI}Ru(D5gpcK7@dA8O4sV^Gm zTi_lcl5x|GT$XewMJlS{L0D6C-yXZ7+?<%;x{Dlfg%ihz?RdhZL?GnnTPAd z!D}PyHW5J{1$Qk}Pf^0SZ4SkgpFM6MjY~|-Q1?0YaJs(n&Tsx>)o4GPt5dOQ1Q~e; zCvBX{N-?o7pl{L8UwCompRkN2 zKx+V@srZqvCfXmJnb$kz#e_GuHQ{~hQZV@Od=Q5iq$l;NGTgig+l?DTZ1ZPuYKTta2Nvg7gOOI~{0`1p86?SB31e&fzNU(9oS zN(vS)Z9=_f6u$7!X1IIqlmN0IvJK7lZY47GjF4DH?a!aQ3?-m^1s&b)Z~nmi#X~e6 z5FrKAy6GmZQ+c9NUMbQ;0go&fg3{DyoKL1p{1Pq!A`l?_MDbfL7kmM-;jnLjO1o0r zHSw+Uenpxn=LoUlk%}=@Mp`ir@`d9=x)^Qorblk!nJfnr2X2TquNQX+xgIjH zGR(cR`2LAg!^Yu3-hL%|QPYkM3)|k5r~cuO{ZBGt@(Tt@B3rBtaR?JT5e~ipcI7i*Uu)7UfL_AmLy)$1X(l18JUiS zw}du0k{hcrQb5UX? zb~?Lbr9mmp{^|W685!+E->>dI&aOLidlf@gNqEK}<8s|f-=QR>?Hdlf`mVP*K_gfn z(rZP_&PPmHWb)@g_vo+Fw{p)}0ju*Y;qKg+>LoxI1^`oD4Tm7@$YVz-s8iuV$ zDsPLGT%Okh<}SUJa;Brj%GeP_Qj|^|q}%Qv-EV&Se~C|;l0wWRtm+iV2c8KAR0NX< zEHOX=fHJAL6VAbRMo`H7LBRlECyVRnqB;sCmk^Y4QxXj4Na0yzs1+Me%E7>Few;;R zC*d?=UO+MSaloO39g=QKsxCkodAZ11D&*rL{EL{4_(IwD$8LCWqP#|;0hO<40s0JC zO&r`$&*j2%co%q-^#3}RY!9=T(~dX(>hs&WNLxZ0CPy7o^y1GC-tpwF8zdg`r9b-O z_ES%bpP6l+Bm}FtF!YyyYWw`znaM6p;1L0*+Lijz>7uE?f#odcU-)5~L{oQ|)>O_k zP$}sje$F~J#3`N9QL4L~JFydr$BkqDR%1cfm$?;c$)yOu1To4Z?g*L=-Aiyg1zggQ zk(;Z4B=vl@9PywaJytRRDQk*>J}!`0K=Lc{aFidXDvi`2ViZwE0X{*uQBdbyyWDj_ zKG|ui=w_+6%&rF)VA$qwxlj@i8wo~Dpy!9~(dVWv02g~G&o&IDC(n+&?PI5N)U5O= zJPq+UK3!*aklz7bD8I3OPkr+)6ylpSHl(iPYuJJyN{r|~ImA*z6$2=RsEABTOR4pq zw>AX$fp%gBd?yQwlcvQBMw?}a=+W4+oQP{>`s1880ao;?cD=0^axgI6g+h9B)Kkmu zHh8hkn{GUC#p|W!@_gPjdl0rXQi0>q3x0bVCeCPBnue@}rxFvF(3+4#eA4wv%Mof# zj)60p^(vZ!(;TCdbA1241L?B5P}jMLBo+VJMP;nkhYLA7XYP^72C-I`3A9@aUA=nV zk@IjkDW04=3@zaIxc?#VTmIDb@h@m`U>U(D6vQWP71k9U!yN4zP!M2$r|-g`uL2w- zFOYec1T@Kyq{k{{oox(%o(i4#&_P{6nuYB_k~f1$ma2T1<1yWNM}=`{2gF=x=z@fN5TYz&39zkN3TUq?ZhPV)?f{%Axf2O5uyY0j-#J0^d^N|XRI zKMA$>>^MqZ5X&WJOy=};)%MN{HOHq-`u?R|l!xdKdN=Q@zxvm<-}I^j&AX~udr_u< zbWFllF|L>`tGz7Zxjc9Sp%j%&OZ2k%q+PLD;0^Cw&N-Nx9Z7ARE~KCb71qbEFTdlx zOkGfE8$l<^QP?I{?}4|gZP??yBN5DJedKmPXWfjsUWg%47z77AE!4Rk-E(b0{yawl zeFL3{V4}&bmZNmhhz>+wS6_W~`YN02RVm*ec?nDzctR(|mKLrqdgh$(egEkB+fQm| z+ZYmYiVy!ii(^iPfGqBt`6WET9G?_SYJnj8jX72vzrxq&PsS-?(y&2FSTHhzEFlA|e^j>ELJ=+SbLb6?Y`~!d%S#*- zH<=%}YL19#E^mF&TZwXY(bWvT9f^g;pEngy7M{x_#De!$6owoex)Q$#&w+&zU2cNC zUw^FM{?IeYpLW<237Tu1o=-|F1}1X$<|5ntIe7`pTLO+ni*BS?cO=D07_nyRgA0-Eo7wZa1YAjWg&9)0G}x7Z?@Td!+Q zyJ!vE3@Yg#zV<^^m35BpHidRV;1j!~?b~j@X#$D+b3N?WzwS5hyz`|OJze?Zb**Xi zzr5DKTyHt`ylBPk(UL3jpe{S0BT)6Hn*#csWK4w%!)DK6!Y$UUJ9T$L>4%3nW4@ zY!&7LZ6r|qrI-E*FcY@z-}=}01ja_F1{GmK(hP9M$*Zqy+p{f|b|p`o`;beuFm)9r ztU;aPLsq2X;$qS%485>0hz~B8D;T5?Gvnmci%Dd>aK!fWBb+XD(Z@4Nu;ngvNa{xu}XgBjMkP} zUvBOvPy@r7eO^g#&KEjsEUx!x`o@{&mtuZJHrttmmPCj(ivHnnNNJ{eB53`EI$dBJ z^;BqzmPe($Ww7?n`7M^wiDebdx8MFgwm{;&=e1tV7m6*mRBSC6tl-3hJdRpy*-v{O zM&G%PV@%#P=}DGz#4b)DNbGSxu>ar^w>AIxwITuXk|dGh^uOPBzxEIHpZ=293fi&A zJcrt;yhn)FD*aF)d^~Jt5!IBx&vx>HiJc!zL;%oe!yAD;IL}Io!7ij*YU<7LEP9+P z7B*2`*h1CV$*;aZVG@<42xkJIN{J;C(P%C^M5$_UOu@W@>l26$i|gPxM5tfV8mR&) z1;&RhJF#8XAg3B1r@yI^s>m zA70SOY!l~NUv4|T9*!yITL$qv^6V(aZ^eEgGLZYuqBuY;L0NbW@-FDr*dn)QmIYy7P5g{AoDCMOu zi?+}^2NmbQTGhtU8L+v5VM$7CbDHI}0Yrt?gSHMFMMyUVO_djH6_2*Evh@mL&wJlA z-|&{VuOvy4wqUiKe}dJcB{M3lB#A9#TLb=r9UGAfCFR>D=ck1HIls{B>+2qT@WDug zGSjCXGON?)HcjI_d-iVHwB=$Ar!)CkT5VNgPTlfr;s*DU*qRLuYZqAakJe zkBr4&Zcm*fANZCc{Tz-fwWm3*Sg{oH43JnVvcM*bNnaDoM#=dN#E-in=e3 zlyrwu`fsGcj*XTLBNy!R2(m+{T`U@nM5AM4V?#s3eSLi$?VYWyt!-`X{R0E1tnwJw zOQ0llx`pme#&7IDLOGUP2AuYCm!5EYPi(y0cDYLW`*uC@Q?6`G6=tbI6){*C$8Ww? z0!v8zDtI^ptwZu3gnEN}LuHVu&(qf^_Fr<3ksihey=Xj!BNC2=!;$gviP4eK!NKAF z{=uG}zRu3>uFmekfuYe+fU%y+W+F_X$Wpv~hH-j0$>53x95d>3Qk;y! z74^l)l-`iuf)l`a^oym!7>H^Q_gE;lTp2L^u!FC3AKY4BP3Q9dYVUSUoHC=`bGbm~ zW!GTr`;X5(s6vUQtVAc2kWBE+>^r z_?(#&bx!XxkCW`Et&d&=)y#NHSsK|`0a#QvCHg>iiBuxEp3toJq#kA$9i{1VE(Wc3 zL=`l-L&z%S)r|(;=7edM`{?4bp2sUMlS`fLl>Xhc>4wr$)G*|2UE-6oJysf&!Vc~B zoILZ8l}s#L980#sTwB-ioHO?CxCUyH6v<9IWJD^ZsIs#1jyvuwFDpB9_H-x|O6iMSaXU?1%=svrrs>iV7*=^Q&D79KgDy6CX{2}v~kI~2@mRD>d zgc=asKq($vg@?%ZNV(@YJqJqB9!rRbw-Z)(X?YQhB+yGL_#hgM_F{ojauYhAmE;A0 zQYxNG`0r?^q`i)QqH4DIDN$Ml?mpY=V}(40KX~pg;N7Ywzjq>F(;qkG(y8gM&k(BV(b7a4Zp%vYU`Wn^iPwd(bk(dl7YntxdQ*FY9_* z1PLDovZZLpGTf)v?@79STb_Ef=Hy{S{8Qu~#oAD9rHRtwjy*f%U9pM3>!5b;)1e9hDZDR2KsvYA(q~r-k$E>fq{Wg2tKeF+;MJVh|n8@cB#)e zG0a1cKqXm;8JkO$vX%5DEhl0XZoi8oOqtzUQsLmUvRcNCB9GlvC?hg|tZoS`4wOpC zkjez8VMSHJ8CTd^d0p}D8=5!mZ>-%^9xU`ZOYvmnl1ygj$_zL%7NYY6q8MRYqZ%<8 z&Jk7kfP>MdLMgtH!*7Hb#G1{}k*p~wMJu>DGTJpd+C5JYxpcj`N}deWCzgm@vFlck z$1~Nlbm0r?et&TH?!B*k#jCHn>gu}s23!jjjc2stg?8pGP4jdpl`^YCJNftj_~c`c zK78o#b0b|R@4K!z>w%w#QmbSLUho<;nD*>QTz60(8Q0H)XF{xR1cnItGj zhf=>!IiQ#?fj1tauvC?Kl~+pnsZw`SZmV=ak`wVtT)f1i2##`ishGId?Tc>S7209?BDiM*Q+<^mz5I_VHRU@>H0ALdi?8?q~CCu*4=Xn+CN@WA3c)=CWq?b!=PMH-;Q|-GA1*w*ZjYsVuK3y)$bCgbZybHYRNB4UHxD<| z3Ori@W6f!zq>DO-6PQQ>w81|Z3Wq1g$MncZqdnw-yHEF6C{;!{ien4K&ABqaVDP4n z1x1Ulmw5D7Z8UDG(@MOg?5eoQ71WFQre-67MS)W6LQ%dHLk|@CYByBuzkSQPT{WfE zg?=Asf|TQB1>u0KpcL0`=U5Ah11e3e!;G!SScUS5mVMsRVsaiug0tUA`PkDIDYjul zY}JNV$gvx=tmFP{1IcD2te9(r*AQ>HW9OX}l^bMaVTVlZZrQ!bN~4`%jiREgIp8l* zVWHW*cmAsROMph8@!(V69}f-Bd^1kNNH=NIR*U1_dtdpf|NQU&{`~*^+rR(kJ@?$_ z_IhPTU*h0pgt9A~6jKL$&Hq*McUUbFAfqKH5D)=pU3q!pQ~!|s{of+;6WKQ|dd!-M zGwTTpCOc6{Io*e&rToG1%Pt?f^`40&zwrE_ zBZm$h2CYI{YX`EPfUKM#6P|kfvXhZ8Vgy!u>vTd3Hgzfj55JzQ(Z&&U12lzLJ$%6T zQ^9I3l11JZ!*o-Ynqm49k)r-?SYhDDA+Cu8;GLz%@gdpQjIj08;}%S;xxaBL7DkpY z>Ni>9c-4b0gK!+;7u#TUU1y!xmu#u9CrB3HgLEoKt;7%Thk8uiXXTlbrZ!V^u zCTv9+7x^PEfgDMIJyHk-uG><6?Y+CMzGvso>zcel3LC&Y;~XI72Pccu3gb7=LO@DG zk~JpnAVP^)Qft+*@`^=JKo=~D7csOk$*oasY9+#gPPO6KAii|FT^6#){1UbjQW$~D z<*BRN%c)^(3Paok701i|SczUK>hpo2wz08pHbOWaPY(UeUK05$Gn4=U8H_&5DlRN* zs9v86T$aiX={Iu%l~wLLt7>GQCc}xL2LlCgRb6-8b+3EvZ|vT+x3I9Fp}w)Uwk~xC zF_<`Bsd3!9qS$rswN*$Lnavw^@mI=wr84a56?D3UC-C-xeb(c)_iRhtc)312>gw!a zFAuwzICw8bDM6|q#qx11on%0993cA(By$ShAo5u`*)1@~OD0vCBZ~}wG*Siev&iTd zQcGIRh_nbfo*_aUIJtYNJJ3o-blQL+mOp5fRz=sX5AQq>-gSARtlIFR8ZRXX6Un#Y zJ*TOZdL$l#$pRM>$RT=q`;h6>dcJ+2e-LSkppJkOm^TxNh3AkN6^bR!pvic8X)|Fs z@lkPuWhgkl;?zy(mm$m5k_^Hn1rr~6(rmpZF?MC74X!g0ChAFngkrF)$=B9X|I8Cy z23dIe=tHEa;LI)HoRH;XMXltHd=#Q0>4;C0v=iofr-48LG+d>(z>YN7{nge`(2k?x zEo$e&y94ncK#qjO^@~Yl7YY0$=p|=z!V=Z?rAoW(7A506#idH-Qf6QLXt|aiJ@s;_ zu`GX*4^#qx=8$P^DK_qHwzrp>D4fOJM#ar&WU^ao1uY!;re-C9d3vRs)RigApkvcv z1p~FmE9y(u@2t7(#*KBGD!hJ=34gAvRJ{BU<%FzaTy1@2j5&xcs%c}>@u3 z8(FDxPzkjTVyx{BTSNZ1Q(KFJ^{`EFeMMfiWpCnT-PTJ@ql_g<1*lZHUgzT38nSZ# zE^4a|wX<}~jyp|6TdTcLtd-dhpA`qC_-$P z*A;pV|2sz@%>jtwjYSD+hA4HqX@6kA5u|vjtfbY3Mps{3WW3L z+d$#n*VjKhJQA7!d`fZ?(++;3`cnHx`d^(tInSGZx!5*RvUY9-%7JI%<+v><`Ivav z_G-!7Lua7ggS`(TVpYc&Ei5m2?8(CRRuYtaQJ|mIddMd3&iWl zRKSE16yx(0e${lZmMFHzs;$AML{Dw9--pl~9$1L55l%cO>QCW!f=|4>iXDKUJ^w~% zQOFtqy@231p?(_F!kGe2ONv~;ioC`v*6UYS*##bIGU;r>KP0nnh3K?PHD*@JbLRo29_#1r8%u+-GO*@P>H~g5 zm7rbv#(njd-?6=Zb7gU5f$64FP-;e{#5Z-IWupx&MNiO6Mm0TiD8*V9%N!G~R5lM+ zo3@6x?~QJ|EY`RoQC6Y5fh)MWt&MgxdO89O5BH#7=u z7*!F@D)@>%Fw;6!@FHkLjwwO?&V{KvO!;rYNQ^c&6FYBwKj+;(MCMST&O zW_kTwO#_Ue)VK|%@(k5?k+yRHOJJ#C1{-h>!yO{>Fl zjJRsGYh|ZLEsFt|VIydRCNq=!+UtMMZG!nWD-H5u57i$ybSlHfEa~Y2o5-qb96kQC zW5<80*n4S!rN&YnK))A~R6?#=8M$m0H5wBq(?$rbtGl8x+E&NWPCAc=Jtk-WiB zu$66gbhic-x{9rRBwsv%2I%1x>$DmCFxR&l8o^s%B!b*P9iovin! z;{7vGEeThk1T8YOxE8GoY?g@W(`~nloLWE>e!uMn-GIv~2*BxN6_!GGu!F@6rf4lw zWJ+owBO3$Y#bm8tlX+kV4+M^SDZXoc}5nY-|+O- zWWm?M>k|ZCiM6-bivHj5*S#RFBLTr#MekvcMq~f?P+9|N`ybl8{<+`02TsBi@LYrj zFZm;w`j1B`JDM~kkBJ*gsY^}+CD~N7W4bS?n<2yRa{F|DA(BhOng=UxgsAZ;u96eg z=oUaWsCbMYm8yH`S7o;#&Ll@7x{O#r(pFXEcOgKCe7O|&NA=j(1&wR#v??!OMw1F- z6;lF#lDahcV+~0_s-NS9eZAlJj6OH}oAYqQw`Wd`zx5L*BuhoAJ9xbA!g62ThO*j? zl_t@$kiCl?v>cMfQL?k&e4QZ4NuJ}m9?VxxlbdZP8@Rd@@K`&hI#UzD z6hfO1m2RJ2p9XwGw71z*PP@s_+!8DyUaU2gbT0gl4Gnv*z2U7Y19`5(pXI!j2Bm1U zD6Y5g#K2E~`H6Tm!gEX%`y5Fnf15c-K$UrO($XRRTd#cC4OiYp)wNk6n8Q6Tatc=G zK~%088WIr2nuX{WdShdw%k8E}S1W8h_s&_hgiAFb52do}nw51G4G&5Sf;+?oO_2gg zB;%AUc1hz@i|21XVj!prP85Xssj@fGC80s@&VJeeSG5FrZu7@llE6Hn6pv)x6LfFg-%z)S81z90;207p zhjNk?z|kgF3#PK|9!(pftw6Bo+>R+wN?&hiG2LoUkR3%VZ{i)6P}`{r7%NLCRG}Fg z$t*}u#ab*p6RQTK&OwN>q+WgXo7SyAz{4+ROV)}D@N-lU1TeU~1B2(sC;B;zht-=r zmYTz0%H1hsN9FijB$fu&s9;qpv-_3dn$Ori4ZVW8nJCS;-7!wpRq;g}jf66W|PTp~gRuV8; zI?Py<=#I$g#Hu9xMHtmwc{;v*hgDabp4vp?QNGx~Dylz?b|>UctbES+R%es{mW+U@ z36P>CkabH=qhB)05nm*12wbXo64yzLMIx7hOBJeUk!? z?2cPIE4kovg`=q7WHFV#l&DY#S*k9VpUDM@@5y)^1(UnFdxuAcF;3hblm&LvXmpaP z=VH==#LtWx6A22?=I~Y0X`M_ha;>^``-*Dq_BuO=PtM?%I}^HNZA=#Hj7LoVf|V@+ zWzTd?oHC=`b9xnybM71p{qk72d1v*O%Nw^IY$~n_Vw~~3r)5&{cS|16RBDD5G{#b> zZ_=*CdxIj8o6xlgJEb$8HN4%hWzgzRBAtSF4O#o?W@^b`a#!9(c)t)6OrxQBDXmgA z7g=a7k=Q<`&RiKM(I6%36G;GuQ@8)%6|XT31d~&ATdrPV#X+f*9!>+Hthn)9>*K;< zsK!yQ1e3qdY!Z-ZD3TY9gzvorUC+MoOB9eUDk$-IylQo%sjK|Yjt)A*rfUn7nzqC^ zP>M{a^wssftoQ9al$xz?SH<5&D^>ca+GON6Nkg^32J{C>3+^0%s2s2Sl1xA|Vm{z$y{49NrOQYsrADfQgwy+XS{FOxkFR9!RwNo5 z8y)ZI?g4Eh)1!ccf>NbYJ)c@mr;k-Oah)C0#}bMjkV{1|0fw%-jbvk?epi#-Pyo-A zEaz%kDbP3B^sLw8MH!v>hb)K$GK5l&1t_BXhiYrf>I(fp=ag~EA+Amf)n{i#SdfM< z{7o@4)QX)7t|9BNqrNkg%5Z(A+6s)ED2~q#bF>4SVjTO1C}ku_E|NhinE+Ip(jY}H zK;9~uzf<-QL0+r*AQ{WX%1%yA+q>`O)zw@1rD>JR)w{1aD3$)=y2l#~O$-i?cG2+6 zoltTm+%T_>ow1rGd--!;~5RQsPliYTBQ1YxYVh zhio27t)bDiFt17xsu)!T!Q|Bk6Wh0%r%!8<32ZZ#n-cjcd*3jvZ95WmwK-gHFa0V~ zaGfT~z`)>{(`P$6x`qaaqtTd?Ka;aXe__N)DmiC1=o?(4a0XbM#;H2>Z1z9OVb zA*0L%-;@grf*naFj-8E`m!G`v_Vc%11%Kdb-_I9Hh+zawimR0lGU>66|aTwsMYm^ z455_s@*@fD`C;aURPK^hrM)>Zwkl3a*-4b$L+s9m1}b9YIHnmp<}ffMjgbv09BIMJ zX3FW6!bfx`R>uf9!AVU83Mw_N1hx_4ujBaiwR1?+v-1A=1Ep77^?HL`QpDqz!<~J_ zmMlOU>$dz()_zKEl_FuO8?$yF+x9bdpE6ww38yi<1cGqbzpmHwm>`RZ8!&?$PDnxJ+}U6voiB z)^YuFXT&PX(XD9=rOW@VXKi76jyKOK3T-YfE+{G~f-N`^PxSQ;gj*uokmNpPcA)e* z@F!1lndujYQdo*90+?8iEv-b?Yd9j9tSxNI&g_{h`fT2VNMMLwvo~+O^}vDGupsEy zYdOF#ty4)lme*HgC1V5q=hr~U=Q1A9DrcIfHTjj9gV)v*R-$jX^My0dJo?;EyZhU# z%4)qX9~jSO)J^kVsb$>JtEFkY&Cni4c~G>$Xqv~XZET8PeU;hTu8ohGTp~BNeT&5b zehc^Bi9~W}aOBwW6Ft4XJ#0RxH;0)f}AvD&EA9snM%~-H5r+8h?j575m~@d8Kq?IBGvP1WiFDLM`Y5yZEwA zxuJO8=z#*?_U)UiYAOnf{DGjapfFfbUfO?lz=mTgGYrYuJ~GKww0Zi=P4P+*OAXi2 z(BOcnXBG;!Z4nS#TlNqMgQ9&D`B7J2_j?|%k7WpN)tb(gN*g+A6Sm7rn>xFX#-a$$ zArWyH!)hUVS^Q-nt0$_pLyGRGU6*%q(UQnsZTAm#K7HiD=Z-&ouKid+ps=Kt1v0wUElGx`;GMQZ${Gm|5Z3Vh~Bz3c1kLoyYzSbcsk z+s()0kG}M9*hV4pZWTHuD z7>SAGXg5?=2OMScK2vd&Gvn!z5#u3~BJ<0cm~tcR{9Obx(Ko9oShjt` zz70(~8f!KNgGEko3f5T)@EaZ;nKsBV=<@-7`4O}@5+E%zmhe9ENV2LbxnqkknP+iG zq(|!DeNzW&f;!vZH-JGt{e;}D>{+xnf5}>qfCOU~76dCRE6Xd&TrN1Dv_k`C&~0xl zBFg<~;XgUlHr9f8*VH>^8sNt)YNX7Ef?NNuy|lIUDe_n=!_kzba>a>p=bkNrfL|1x zXatHVq8zC9HQ*xEdQUrO`f1u&=lHQ7pUPqKAqT8cCCwnJX?Rs-G5b7RGW*tUgRDtnRbGarjT+J21_uGdi%~Qz|DWkr!p_lpqcM&sa}d6 zjYT?o&m1}R#6!>isH3Z;qO98M34(UC z7L|qR9jLlH9b8yIN@YylKA5gBo{0CK=+7aPqRKRyp3oA?XN5;MqZF?b6R@JCJCDW_ z)fr&~Yx9;{)@`_I;XuJkhEg;wQDq3pWG>{=l@v8}_8yN$N1fWuxpdymqbu{5PM3h< zfszO-MEls<;Ar>LFZ}AcV-KBfITDJ5JZ?X#o=)4s^8tSOk+f(M;D8el&L*i~t_oVq z=HZj2MQp97yZ7ALmiG2ec%{Vfe<420tF75cIe$%d65w#m(b3WV-u_THS`hTR!Ao(0 z)gV76vy<-HxGEzkr9cI)Nq8zoORuk~-rm~!WHK2S>WP&sF}tR=0_>ztT=t~(P52Gc zUrnN^65(X;i2=uBl9N{_2Os4@Vs|k$qfxg}LW;l~2kKsAx5>#vm;Fr$N9hHH6*u1a zheQ~;V8bk9{*YxPIdTZIznIXJ?s9u>z5cC*!78=_&~KJeQ}azplK@qbFxWGN6i9>> z^EwJxH8wtcw(Z!D9{isdPCQM4tSj5$pYQS&Edd&Th>%d_b@^);^DFQ99h6!E8mVaXJO?}Tzm=8u0-~|x!AE%i;T=(wU^o;t+m6U@H0;z zI(70)I2@5lOlE&604yBSQ;)@e(fkwFngjsgoh4VTy-W&XSV^s;qx;!s51l@B)*?&S z^kW5Wri@nX2#jk(64P4i~v?%k6QKZUJykSVnpErt7Zz zJu00-`j1qZ!nYMBCF~R6$)r~!Aj511if)I4{CF~@O&<`WCC1t&px!~P$-aYNhNg=# z^q_qqBMZ-9ioYt&F2NiZqE2zdtYkeuLjkc&@Zy9diCDrmO3NBHZ@o?S+6-@&!Rf0> z#58V7iW{!J{ME?4<1)|0WrAtRUl|BxiB5%CL9HNc(XdS0ba?_*Ra?LrDmt2w6AI8; z@`J4|Y-6V&-7NF+=kyk|KqM2%#5aEQneYGVOD9_nAtZnR^Tqc2Io&XSQeFZ%m4KR{ z42>`yFeN}jdHmSP=bt~4NF;LlsQk_H5?DwH=z9M^|8vhC>S*sIJRp{`G@P)I&t9qb z1`t*IA8l3mAC&SOX`z{*sDu54Faj+OEYSQR65wic__v~Z%eB}2E~-f*m3CuIy#TqGfy4wJlZQ)YaL`CG;+-4mo>-*4EOM zh$R^CWIwYYKSrKJYymeHZ8HU$QR7-`C3vR~6hL&=mIbeG*mzAzd9xJcA$r3FJ61I9 z#5AcW8gxjlymW)x?dj@0!C_)V#-8j`q)9t?-MsvfyDVo-s;k^sSz4!LN_Qn{nq)F@vh`3b5y3KB?A0%?F?EV6%*Gaw z3~WsL>T}rOoOOTxMk`hVGMuoX9y@k?aB!Gbafwr9;y(Fne#ouZ?p=EghYuy092^{k z`Mj*G43%*51Nc&d0Q@wV=Hc|It;>#w=)O(+&g2wmyV3niOX1f^t9O4OOAm6bL6y@h>! zXAwy11W7KG5OX_h(OS3Ld&PlQ*VXN${2|S*tlZSobvzOsTW%$@TrSToH@>Z|X2-~A zXEci1-MKl^p_IzbCkL%{vh`_DsAG!{xXdeRDXS{G=jEYPc5=&KHG>2Y$k*21apvsV z1Y#~I)|kTPWjzu#RE`yib`P|9>BU=o|@zRFMvikDHY}*1qYaURl z^jgU$lI$p;ilUO5!h-6ap5wNKpy(Af%+yQR{e45GX%rR)r;1%%B1oOH!Qk52(T9)L z2$Q2_tHbbCLVF9tjP>Ly|opz>J zH2Q^i{pVBPd?Xf$(yvm}Kb=#C_pp)fp=ZAHn8)v_-?>ga2a-Xxl7~+AP-?W~`jo8L z$V8rllCt{BiVf%6o`ry6Glfn}3eQYIbIU|{lbtv^GB!9c;P(YU83zT3sKYEfk+4RF z$4(wUGdeQPnJBtGOr%{*yO;gJv3!V~11Ow&uHQT!TPQ>FA8p!sY87s=o@)$6br%vfc?A0zVuDj*B zw-uLEPqWGd10`@(_4J(Knr}-(qpTz*a?|aK%FS2o|8=;~$N*rt8tQk~*X-yYI3JCT zaU(f!oJOzYG-V*|DNxGkB!*JY#^S_;R*;8M%VX^3TOksN$K$PS?ecjIn*;O1VYNv> zE%qE$4tqguZB4q1b+x_i+}}rPBkDw8`|ZE|zr#O%N~XSY2+XKjoOvy`i z;?J_tL+1YS>1WOdN?kX3BQd{%MpD-bf|d1kyUw>h0dgsD{2^pbOwB9kNW|^F{=wd! zf!?0M{@$VPu70FZp(F-O5@OG%cO43mLCOADQDRz{9%cR5uBzN} z@bcH1fU}D=bh1e`Sr`fA{H~aO#EDl}RCUV@f6!3Bm#McY>t?ZJJIfoXVb2BC$j@V% z>(^az<8^QH1yN?37C)T*^b#kIHH z^tOF_?kOm&B#*ru>WZBAZ~lgP2`nQC$R?KG%$8A?);8YeVx>r)xaOX?@8hH)Gs6Yji zR@m5MPGfj3twcN#jYQ+II0B<&0;RxC4qnMf63Ypa$_t3TZ@K8TOFg17eu@g~uDSk= zNIzLj`jS-)r9_Lz(x!Pl1y^4F+WmW9X6SB;T9wGUr9LpQO7`z7*l2 zkMs}z@MGUV-Ib(-iWqizwHI69Y*31V)qnN*pB(wo6I5p|e~1J)>4Ku8iN(q&2o~LR z%OBO&T}AJL_t9l2d&dj5_knQdp;1U%T_R8~?DW z;b3ZNUAT7WI^5jkz`E+-s|x~UOEM2QHry~x*EI)!%OIE}MbM}S9cPUK08*(qax|O9 z)-5;RdCPk)+k3Y!P`rrac}WD5e`sC;O5My0A}@heDuKmQN|wI>$$Dtp4}Sg^V?*OG zh$5=Qp? zv^k4)tlnHH8L`Y*AfTPyQ@*D9ef~i4_;`OLHYW5FSQMG}L<()^GRKkUl6)zIOrNBZ zHv=OCAMV|C*Us&?dp(7U7IUWQK&^GV{mtvH?jLNK2o0(kB=_fAGi=OR$ShA#3I}Jm zJ2lwtE4ccK*Hu?-VZlF(4k z^eHvsDcU?)SGBPUWaxClq&Q&7J4LxtVQfN09+066RLF;EF#nt%)G^fC`xBrju;}HWQb`GL{U;WigcS{ z8XEH{Mr>4SwwH>~3S!7k7g}~Jj?5Kj7AQD6%bu#VNvM;Xx7@mI`|a=yr|5GQ?FCn_ zS8A#V*^^F@bQpRYnl8WPrg!b#{W6M617!ju8(#Mi&kAHU4?Dp{`b{Pg#lSIhAU;#f zq08{>*?rfGZhCuT(>|;oHuGZ6@o>3ZH(dSO4YfOD`f#mlAt_<6aSqpFjy)8>iFc|DJ$1-H-#sB7yyae(R$V(tEfxHA3R|5KD-*}MrDBEb>TJp+w?WkUl3}<2$ zfP3n;*KgQ%MFlI)37r_FXd7j9H^KHp{%9f|&^Z3c;ej@oU5272fjd5a_*e7Ni zdvlxNvQ>-WQZM!r)tVCH*pDPcxDY)2wWO4C(QzJBZG8;b)q9mkGS zN1&`ZM@Cb##fi^se|44XE6Pwe3Sya@7mC3TrYTJ;M2TJ@L(l3(^IoaB^?&}Xxk>FB$|D2F0i5 z9Ytle{?2m~@hB8t+Ta9GrF;_{a-pMsQg|e^`!-|*Ve8|qc2>P{d5xJId8MYl6e%#G zNs~Cpvg$T{8#mqH@di;T6x8Cp?~4dC<_BID@>5=^Y&95p2fwEK*de3z)@AW#^J@g9 zkf3M1UT;Npsn_R@L`mOE_fuWu{*+^4R8+3N{K_|g=30%K`L!d9tJjKGibcZ&bg8&f zFeG>iH*C1#wwvF6&E>BzFW=zt7O>+ucU~!WS~IxOecmD}y?n*%?zr{c8#i3*@!?rY z_>?i2aZsmaxZLYETy_1`zgt{V15Y@=AeR})WhN^Ys)XNPym!~H9o+YtK%iJf5Rzwl zW;Yt%NwU;{xF{u;Q5l0gLk|Ya&2hsVaJf3&W}j(I=z7G|fd^sKlQ>1*xXA=%2z#hH z7;vWY$nqwgX5Y@nl`wzX9ir8O_{PG%V~Q3IQ9ZIr&< zvh9}JZu{fX(k6~-Aze;@`S>j!ZS0ap92RM7FNOQvSHo9!eCV-HXezL z=4K$WJHMiQ9TK8;?YeVg^Hqh#)smIP@zM-_$WoO#r69-iAwUi|r@851NnurY?^%m# zgy*uj0QP_l%~xM}@HLf{8?X^L*iV9)*}!(GLvRzFC;aKO)1dVS5NiprYF$ZAJ}N$t<}|yAl+4VLLeo!9O4)BkK3bfxvZkB z#(((@s#HO1Tv_92LA+9vA|OW}TUJRf6ujg07p-4^ zmCsky*>zOODrdRjizxYAc%}3L&Gw}Q=47V~E#gbh@+eym7W%gD*jQXrApC~-a(m3; zqT;?j@B&Pl)TiAi7_7YM=69NIH+vC8vtEK(w058rO-D8EE{qJLB@TGlTT)uTzWIu# z#(m}GO<<=mO%LMAs4T3&9%VP0-l-f7%~?F${XTzDd3keP?XJz6uG_uyC7Uc=RyiE z4RX@^82sT~lA0?He)d;v-F}lBEmsob5C%Gh!Wd=>VdY)Jc{O>4guK$%NN-2i*`s_D z*-l6-^k=CbZ|QaQ&6U-4s%;97>CjfsJbffF95o_lkzpR#lqHTrQ}R%1`K+I-qa}GL zwL1DS{}vaOKpsjlWgqYInm#@_`h$P|CQ1gu)Ogt~RfQ#f6-Y64Cs#YYp#e%YY$$Fy zKAemvI3J4BKLl1WQoshd|L&`44_3chLBnuCpp=r1vKNb_SbHGZA$-y-uh>vmyE_sY z8yoFrsZ+wW#l17Bn5d>LJ7E$?fD3b&zRxR$D5&Xvib7J6PxDbEmqthus>A`Xx?WaU zvT1X(%MHc|l^?}Xp5TghBZp;d6v0bknpY86;t(k)s=4WwcLahZtYtb{^->rl))bVQ z>v-{a0!2ktRh3(tn+|N*crCtas0r|eFdP@#EFA8nN7bsb`?uw$K+JXMliDU$73=@1f23Csn zk;JpC)r47Fk^KqKrSu^|K=S~6K}`z?9Cs|$*|%tEu4GmTVlJqut88B1Xb|z9P^ZbE zQea#zcV933x=QDikWQQk9sB0n{)iIz8D@(!Lw#QK7s^Aai;A3L(%6$jz8%B#0`-=a zt!t>?-PE{$)5hykUz_oH!?gfW^>y3J%NqlMa!>`b?@Cp(CE5m>H>!&lrhnxb4B0fh zxTt>9x+|O39Z2+tM*F)ZSqWdT*`$V`IF!V5&RI;l9yZKTmjU*TG1G`rdkHw%R!`g6 z)?-hO4D^=PG`hV=>62(g+!6c7C0(vFzh?jW<3l~|YVco-x;+o27G|8}@48SD$U~`x zl5GCI%RmBoC`B1Lr1ZIU+j{EzkDPt{q!_+;UR^mWlw$m4l-2qA+d?D#k#r~}v3|)! zeBGYr@}_DD0$c_iKKCXp4U~cgBE-MNC3Vf4t_k|f`g%^mdQ8w%^lUn2gSc~l%bcHy zWV#_v^uYO>@lq%(#b-*WdUSj|-#&O84c6DakBZ0%5Ev+KEj1AA!quf?=`Hn4(`P?T20b zX$RG&WpqJ@#P5m!hJDRa#8!DE$qAE53opE|3|;v85pt29U_AbLJ?^Zv4w;asj#@gSOg^nn-X_OsqAe*&u~P^+L&OH_;3 z6WqMz=DY9t+g-cwMkW*P65LVM;;)9)#JVFrkC!x z`eqxf4{=kE80NTXj3IK*rH_N-K{rD#J!KpevK1(8brrg;hEC6JduUIKXu zBUF#& zrZ67N_OMZQ)N;lg!7NmdrGuC1<9K*WsL)SAWg=bgq2M zBU3=prhV66bJuTpy*?*jOAS%}2Y*j{BO17AjaC96cNe_|SH{5V)qeb$pMB}$k9_;T zM|wKw4VmX${Bmr5Ye>@)F2PATNQu1o9GCz7pWTeXZrt zS!MlZBjZ4Cc=i^PffAdaSybkBl*Gx4M0-p`6DTm{XdScPa?PIsWyNH=Dy2f;M<^;N zE3|9xJ$Jt3Z!W*$H$2`FmeOQ-8z(nOehCZlLSYZ7^u&EF>W%1=N-<+tK$%^vs%75> zz7G#drUF}mL&C1Dt)#}Q%zKE0P%$j{>TPIlP+CeX7Uj1CC8qz{Yu~(m`<<+gg6Cc?xkMDPg;Do-FH+ZDD&8le@zCh_(&&IoE7zPqUDpeO zCC!_zyZ06UbnUgjUsbii?FK)CIEMtfP=PP1{ZDd4%Ec4M~Cvztm!OpHe%J&^U?aKl?08xK&T z-10k?W1E(rlvZ$y#DrE--EjSVZz?LT5crNL1%t{6&Rk}9`dc$&I&B7s7vyoSpFe)+ zp|AhP!{7cwI2;l(c(x-@;Oo?jDTsmE0Tcx$KJrTCkGur(639y+FM+%SR)7SYfGxZ8 zSSzW1RBxB;=^dvhQ1Ni)7jU9kE?G+!CnV#^SSY$wu}LeS12SkLWsZ{z(b5{%U3T*= z?|#`m|FHM6m%CgZN~01>FIjwv-8h50W^$?lQZ7_=;lv((h6@?&<&_(5zvF!`dhz>q z?|X&Y9YB#C{E=|<+CA*f&OQsus1zNYdPoOxjU2P9tEZxJ+l%gae|gnrayn&C-n@Xa z)*m=@Y5{Mbzx7f}fR_$pcL2yqCZdNQ{87sb&p1w1sVg;CTNu~9U_itbs(20H?E%2d zFw1J2*6+EZapO+dUMSmY${L|UUvWV!68gpeelik5w$-H$`@q#VZ`*Sq?axHr5s$@w z@bxc@j}D;$H6_}c@5tUgAFa4OT5`q8i!EO2v6O%QMJ0gg5RFEkd-i!{`CP+>#{39b zbrRrugiJ_ln&$okm*M-Wd&jxFkbo)s)4%(%(@&jLTP8<#y!wx}m(`+F>ZSKH-eIvS zL_^8Xe&D(EeFrziHU@!$U-vEl^(V~-H|1(qLgnj=>og$*C zrbt>Fl}9x?y9OI;Z(6_cdcs@m-KAp9b5&Xw@8$Aj=!+-orFv3|7sWK(H5<0MOufIO zg?9#rK#!*5?D4j$E*0~)GG&CSD9HD>Lt{f-r(fu8ZwVHa`uss=E0yuCaFqOzh(%97 z_b6ObGe{#(hQ3roCI8&)B#r)&v>4LrS1%El<~z-k_&`6IZrzc00$;NIy$7hFm<@7dig;z_cFcBCWI$H(u7*1f@)5l}yn+a|PH|#OPhNjdZ!)Ma3o6we{;aZrOX_ z%3JQdd*|N$#U z^VD+#9HvF-^Sq_9rY9*NYJa4AMJE!!_zEnT(`|@JB-Zo(*?zPo>%b*6)G%DdrL{Hn zTMLV;Ty7uvyPN}tp45^0C9`Mq8|IH?BY}pd^)I^X<$w0!kG<@buLsJSxm^|*{3c`F zR$@PjTB!AO_Z@!jg^u>_csv2W6BN;CEZ*MQ^W5;j9G(f5=>6}C~0yMP@aTMB> z_ew3BX|zZUA%2KJVNrQqbAS6eP@}NV6bmZTMr4ciDe_N9YY;?kThWQJ&QpiGThAc0 zpr{NaE!cCwDNisg7M_4tYUT&!y;6%b7V?kDkp%KysT>J1f1Bkffi>Zkq9QlQfZ`Af zF+3787$v+Is3yXR8_B5kqksLjsw2ut@%TR$vc^V|P1}pqr3|Au;7S?JLGjday8nBh zK0DGMr@|%aq_tcIhZ91qqSDg6cV9mDczYQr;)yCMsV=K%^mxIqK;ic|5{X1S5yMwB z9*M@nu{g9-`bs3@ux0{KO_uTD`((ZKFURq^!rO!x+UAX$uf6H^K(L^_^&CD=e$uyrb*Pv3M+E6VQkAh>U94HH$r36!b?afova1YDR2)xa;h( zmZMJ>SJrxiB_=(<9_#M}Sw$X7WhdwSRm)QXc__6!`z7D1oJe3zKq*%1kWfsj8vs;1 zsfVL_GzNDM5iHv#=+@31I`#Co9+QA7fFA?ki>u)bbcH-#qoUq#nv}c3oP4lQQUFG1 zVxsHZxsIa)?PsX;2&c@aZL(ZPgh87YPgvLg#w{7CjC`qHSX@n(`$-TLkHjKlp@DNf z&%Mz0z_Vw6@XXooJ$?4O&$aycX#20u^*qx%(h`o2yA3be@4zU9`tpD(C-WsIHxWSP z_4!X8JA6^nV;$AAN}TZ`M(|}9^)`znIEUXsfo#U``HHT)_V>5#ywmL|5D%}D3bx$e zEl)d{q*0y+jjI^A_5X;DJ!b>P3&_;Wv;7VTw7KH zXHXm{Di#SR@gb2!)JJctefUA5&1L)gnir{Y`VF;sNMs13e#mU$8;V|%~Ae~cG|hq zC;#i;{t1|T`V+mH-t1^nlf+(&)~?(m5&AkU;5N!YA_`DB&`_bgYx!Nw=PS z0P`G7mUSlC%i@z-lvwgiL9e{?as#?9)!*uVQV=Zl0@Gh)p2I^TkEgDdQv{WMe@B%3 zy9;YEO=&p?VrOKry7-%LC$cvfl;u)kDw#a~#4pY~_b^ssf<051_vUU1kYI6DqSrxX zRK1FxMlz>62a3xJipqLhPtBNIn}<^K9EJJI7gYjzD7C2K&OdBXC9ry-6!T2T4o9w{ z7f!jq_I<6h$J)Ey+P}-HtucxMmfNF`j@xx8$;fnLFhO#x(LhJs_XDylbny#Yy!!h;6KyH0dG0#8&dfoi{VIy|nxw)*R~)n8jtR1cOv zctS{N%{I<|PLIr=l(_`Xo;v>TANde^d5Zq%({!dOVZ|I7?81~n-#BPA^T*`=3Z-rH z08i=W%6O1c(F=l=%^NP?yyaG}x4_q zy6TCO?Ch-6vNUHAsDe`BXq$R#VxZ<1lKvqRh@8WO{BVKOUqKDyGW7D2qN>uu0>3w< zh$9rYb6})va3mZ>CK*(A_|3_iOe#Erd$pt#yu*LE3+fve6$Fa|{vy986pIZ_L`FtK z9L-BCIrJoipD|%5OPAe#l;ML6G?zic3qBTdtaI~teR5dlSawXJNaP3b$fH;qZl#tn zc^4dMyxJE2%GC!Z4}%Z^?jh&WD>xu%vL$>K+Jlvdl2eNc0sxi)zi&Jgj>eOrXj~$g zNfL4oYN(7YadBR8sw5>;mG+oM zO=)3yNx`Wj&;0M_{u6`{@FrQB$rq>rkS>Zv`J9JRiz4RyLvkd6Je10jAoI6bh7wq{ zP>Q!jpEl1*1^x~H~$v)7Fn z#XOqILWB!`$-}?=+1J1H+4RTwi;Im-W@vnbwOout6^1IhpI|9v;l^lPxPru&es!qs z3@pU&B=!TIG{pa(KotNO0(S4cZ^Nc*3>%fWSmS4Pow&*_oofP$bjo04tOZ>hC~F4b zXz3tS6J3@o0;!6}cpD__R*XU}W*9Wu{ zjmD6!==FHqrV;Ra0eb>IkJs(;y4~z@5Ivr|Q9)38<4`m>ly*{s|XAd=qJ zOMv7R~A~qt(Ct=xR;aFGyaNp>dW5U57-E=W`O~B^{cq2nQb&mS%?xnu4|gQN_srZsFflm*DJcS1O}G8tp9~JRoIUkOYs;go9E$2M0b~SPSQ8gze!9lEpiNEP zoC~K3)idV>N-&zOS66M`vi-J-%8foxp*V*L@lax-oQ9XVr1B}A19mexVPKbbMUe7O zzGM~+XPeCQ;-v8lfKli{#D>XFYsCyr!mV4n1{Ct)#sQhQOvCE}BmgilU4(GtUZSZ> zJMf(g3km#i{uie;dqr4c+^N(qw8OHx2S<8GLgS$*nPadP_}opEB~_)wdn1yO|0P_P ze;{DcKQeK$qYv@M1P*lD>v9(ad^KeSWrYRga+9S@5RlWb@ksJ?NB0;#NVOc`uQ=$h zDJ>~2pi+ALYX>hQdDNg07ll(if`a3*gr!YHqT)7{7l+>q;3(knz=s351iU~^2Jnw0 z9VsuJNP=+;wMO8MG)gV3G@6}$VLT`yiVCt{h4D6gaPvZgMcjEkg}3=a)__TT=wy|qP+{H3sDpdI-Vy)(`B z{NI+D1oBX7nRQ6MIXRTTs)bU#P22k6c{|MFk7*WVj|{XP0bL?0To zhsTVnibQp}GEAo{VZ5iaw!<+ia0^8y5)&gMt;eE+z%wckD-}MN+KCO1r)1Ls+bHkr z80tLHIe5Nzpsg=78j6gE#s|jt+`0e054?Wn&SPE2tZg82GxA5pqHX<0A3pwn^TAQ_ zM4+kbw!OBYVmnN%FcP!!Go#*_!%>#M)f^-MD!&iC{~cqaBXX{MljKR`GEq96zG%tIP8nH6~sOw&O%Lt^7tI99W@^XHu&@Mv)w3}`s-Yof-g_VM0iDVM)rg%JA zSrT+;4$%xjWn^MOIXMM()HCr*8&Prz+d{FqfX6T)x)jdQkkx5p+AA=rU>rR+9ElH& zj+t&(alq$uyK#}c5ST!53&CmpzVv88ehwIO9xT8Imn4$7k02WnQR=h8$BwM{rHyzz z4p74{|G$qOJ$&fW9=WtOF386`lv)t6=5M+{639cT1rlujw#z^Q zs~Ji`yuP>mS?o=(vPz4+Z~tK8b00~Tm%6|4W8+g_)Ymn_8D&?O$KU)qj@_T4+fmR5 z?UvB{Mz!ea(e~D%_E9?y^$5FYg6!9+un~%1p+F}tP({CoqEuX0Qnh(o%)8a48wps6 ziRurklVzB?+wYyB)2TBM+E-dvSX3eTQA1-rzdZW+j=^l=`YwD>ec85aw!XTuxDf#? ztSu~o{=E#w{PJzW13&%2x4-&D=@QC7 zzVlu0@_D`FzGjC7Uz3W~6OsY}A$og9XY2XaiHT4_K@fp$)O8G>)SuO?<0XfwU?xJL zmUHL3ySm}$LR1||4dxWXKzv=$=aDBeNT5d|_U-)nHasGpNE8+oQmX}kaV8a9K!^eK z0TA(>`A$d&9XoU8{J_8@#F{;ah4c_W-sV1a^{j11LH<^0rz=#YWIAzU&zIOGrb;VMf#e@b^K zAyKQ6NefMCYip0jVrUgDkqn!p?auoMkVMy+JNF!b3xS&Xi}27@@Q6Ga`YPze{3~2a07n z6@A`FoHOhRf04VSJ{YX@c?&%*A9Ng2Ik2HqXcH?eun+r!-e9?}tiHHneQ{xxU$@81 z#Ca__jLq0EixB@~dUV6(aq9nK|KKe73ls+3aFJk|Bo-D|^aQDsic#GN&j|lzOWoyeQW zjvggiiEV^N&5<4>GM;q#G!sq>{28HR@;)kzP@?EKY|H}gGDrH1(H=OwEDw-^%7tQa z;2QF*2o@D(nA}g12|U6Kk6?0YF2YAL_4&JUhyepCcN1M|o3DEHtC0Z}1k|~3(mKCE zrp>9-X8{k${u+yoj*j^KemGtx_4}#B2>>m_!y_%N=aC+SOUA~=BatuwSjx_kx==m< zp0%``p9qD~$WSOeJUkRED4_eNjlmS?V#H!~_w=;2b-8IZp0OoW;=xE$b z`jHU77mc28ZABF@{1T~00AK;ZA>4p8pU>ovIOl9j3kopf5qO1oA|CJ~DO0(pxM_l^ z=nHp%GpfC#V_;wi=f`64zW#n-R3BkHhgd>6?xe%0-yqV{XU;?;QCtq>84iU3*e2ag zjwdQ52E1=~cXwA;4>O-82ZshBQuKu);CI?2m`YwM6bj)HkT7UG(2tN6`r7UGI3Rh- zH0L2{4GxbQ9>2>Q=38k=YyFc?4`=%?cNYpraHu2`y8$bS)p0wg` zdY#_Zj=vhc1JFM$pI5X^gHp?BUj@W56D@k|1w)GpDHslH#3t}Zfv2D(P+0AU->9sy zsBB$PSrfh&mo*j_*AxWHe4Zd>P>5o~YF-$SOtbrJJ*ew`ifJKDl@$xldl&Ur4s7Vy zolDAUg|!bZsh;6;kDdB@(z-+mS2o^yT~KrieeNK#+VKlS<;*;)M?yW-MH>qJ70^TS zj;ZCg0-#eoUhmQ8pOq=Ockh)1)vdT54QXya>HS0}rnya@zo@FFYV(H8H*Vf?V^Kj3 zv1N20PEZoxj=&;LTjC#-b4BT_r0DYbplTs682ch5DUenP(`$GN z0>vc-Ra@%!UAgU!9h+{dY`UztsK)dJCHjj8J;5k;J>j~fIofYd3=x%qZJCjA8+j=p zLno#=@;%{Uc!=c8Q0Y@Ef%EmyFvc;RA04Nu0suy;irf|x$Ar#BClkIywqw*i)T6~h z;1|~u5hEJ5JzjbW2Xf)2PSSjhpvf1dJ1I}={f)&{R(V}A~mrzbNiWy4iYkx zQP*I%{>-z7s4*_rrj6^pUgca)$4Gqx{XN~iP~6i;6^-P_aCL$5%ooV93%dmzUPp)lD+sIeP{W%h|Inz&7da$7iqC zvwr=0zfVai^}hH3#B%O@D_WIu>{H(uT0vpK`gP5z_e!-5m$aO38%6r*RJ??aXliOI zE}AYSfoiAEoCW#E)Q-@B*3fqX!2W;s{sTa+tGpYBr}vrdU8~iq_iEXeyJc)kHnI$M z4A_R?Kw==@3-|>Bc|*!eNlf4kge3eS!5DA>%LU6#u5y!XRjW&@vb);e%goMBFW>KZ z&YjuWHf48acXoBJN9!r)p7NY?&w1+aiS00M>FDg}>gs`2YUmbT0p;Z-g#}3JH|#g06fzCc7R<nS zyjG3pIJ0Vecn^Q%+4oQ2^oh+=nEAyuOf-_dLU;!GVktxF!jN_i9R0Nn4~W1LayN=O zKG0#XVPzFdv^oP=6qjf4{nL-1Yx`iF!79!AoT8knlH7SY<`USv5NB;4>}c<+?Xov| z{LVNeT3B-V)ywX+ne)Jn2-YPTddg*{h5{XJE&uZO-(Z_z_`bjXj+#LrIdD%Evg8D< zg=BjnqY#jtg=-9c45|BDL+*iKDB$rq+xnV1?TzjIO#m!mLn|eZj&z>=vv|?+gU`}^ z1UG<}FsamqT}QayU^NyLE-ousRAMT!DB-?GIm$$B^n@tY0b5bfU{QzQz$$&mOfm!; zr@F6`*h_}T;ATjY3&FycQ_7|vUVGFM$yDKhPuthdQWeUPw15HP8G&dN%qa(Yb_m*Q z28AcxKb}K8LXKYbU_U>iVn{;qp$u6If~Fh+$v}95Y|J7`g#wzsHboF@ys*I0Q;z?I z)Y@Qfse&SjM6V>T9ioNHp>g&=`%Iz~kB_9Ova;g*y!_~s1Kz#0wXLt;K7!pB zW}Q<}0fYl_3%-H%22ON7-`HvrK$n*k6&Dv5iQ7@ErM1OwAN#3BncSS5va%A`j-oC0 z_4T*4wNcWl;a5}utEeb1EXWtz7DxdpqP49J_N5WRRrKy0o3*U06w*j!?v=3Hw6wIt zfHU5M0V?5&RTs5E7HsbvuRP3Orp%v)jpDH|CX_Ys1{Z^d}}4jrQC7o0?i7O|ge7 z`GI3)*?YS7y!CQlR~rlQ<6^3e*UE&xpTVLOhzU_D5L7N)Sj7-ClJaLlbeN8tcoT)O zw6n9zNTSr#%=mPSG<|K#qEz~5Dc6*36qvoD6xbkG;9+cH0f#uP_AW(fk@EOy)zKRD zp=0oy^8Wbm!xlK>Ne4BKNw0U%96E$pY-Tao$BEg!sFw$qmHtFoDG7!vVhf0wV@c~T zRi-qBbZdfYYotBqMk5z=%{YQ9t5)I-bT_?@_ML|w_V@?JTrnnn&dRDA@UoeT`~eSm zXmUMNYrE}@AJx8kq4l75{M=KBz_@+gH%jv6!mB1?nCgE1!5hB2cX(6Q>Wx=#zUPZy z*t*m4h*Y8&P+<^cf4ZJKvDPaZGsDQEtK}BOSS=36M zKDS(NE7a?(COEC?&B}mJHPEH<37%Q9WwBf&nQTKQTfm$P2Ubxb2|FH0ApLAV36gn= zmw7b4fJ7H-k-}gkk2=yyE7WcWj91|3Aw01)iDInS36{NJ)f%6z2!V#edywr+ewCw( zjCH~{kWEQst72RR62%ObkQG`ILXTr1OQG@%sGWUq%$1ZM5epP=4Qvv#6b21e#+_%r z2!4YDJ@7M>JOd$02`i9bsS67WyE;iKfEf`Uzh2L{wqvo11z3X5>m^S!lgaJI7Q-#a zIL-;{jrfbpY&N@HF0kw>wHm&K@iiXc^&uB>wThC`(yp$q5l>IlG!#|;z_y0+s22Xm zG~VHP&4`XM<3)eq76?#xrxS)e8h&42-)PZss8JRv&?_>F5s-r#VmKM2#=k^!IW}8w zFC;n@BEir-41c^k#E7T~pO46YXM#uPDgR@96;^V;JRO9*OoUR#c09A8i6X zvD$2)z|gMEvm*Ft_n`CL*PiccYl_jXrM`uwaK{W5rG!-q=FfF&SMy4lB12vZ)J>vj zcTZnqbCXG@u$pCkWMX>BqEuoU$t7kg1!k=%C8^p;B~NN@W&p`ATaA#Y-ahryJ5?>+ z{vUjU;k?3wgM&3^FTV2HyG!O<@84F;$0%o5VXgTnvyCJmMO6JUyxH(&Ago$Lwkmv7 zhXaNiaE3EeIOGU|X#giX1o2WOsX?l}`@NnW$${-txSG8rwxFr`pLMXA+WzObfQ6b4PV-koG7*PnJ3?Q?M1A-`~Uj?u)i6tVaB+I?|`B;Ph>Wnu3D z%C)lBuj+BSAlLvoq0FcoW)0v<*#?EDi60a^Wg6r8&OQV{px%XL#cH3E62`KeM13c_ z6Tma*vyiB;_#GidhkY==xHL~4RC*x-FrW*kg(W{ca{QA7LwkZeD66d`sUcSC!7qJTNH}6f;i&f8M}K$p*s+TjFD_cRDEd8q67NUs8tCZD zFTcEZ&j+{#9DII$K9!IrOj;!3Mxovi#;8C3@u{TA!M+mq$IY9 z5jP5B6ei*ifBfS|M~lcf`(!JSQ7XJ~ZD{i*Y~{^OZ98Ay{pQ>Iic2f+ zzxTek-`>A&g@Ka92<#@o?u@-nO5bujV;=-$8xS!V!k3EG<6(7KSY?m^0b=fhi;cxv zsM8xc7~6BY`JEmo^qXT}FggvmdmXOMqjhhbX?h=mQ~zK`o~1P3T8`Ol>pkBy&>Uy6 z>D0!Gf@ON0F=CZ+)x7lE-PGF6|M#(P-MMMgrt7yoaC5<)KfKqW=s(`E=$>thh-YM_#?4P^`Y|E7u?bDEX^<*S9|RAIF0%Iz9WXZ8U(7mmk})`{Kpjdv%-dT|YA5 zA^Dn7a>Biew$lI6lT6@b#x*$LICgkH{Op#lT&LAYz+)67MZo+d3>^7z&yf%JHk~df|^xG@h+#JacN@s+DX@5}0`60irtT7U@Z$ zuNrGF?0IdMB`?1u$D#@mo*vf&f2dA<;nazJZ@<-4b6OqnR8~|-50rTN z1kW#`5IHuCElr^h-hBP^p@U6lPL>tr<=S%Ci%9Ad*H4}2H*B_6s5+V&-r4nHL(OSV zfA``A3s@Z^LE#CgJh3H2_5)E>EI3iy+6SOVk%_MT7`RGSKkCqFA(J zVzZM-Hde`K`IyB&YzVPU$Bs8Ta6#DUsK@AiWcVX@&Eb1!oKZ`HNrW`fE=Bt=iq2Az z5p;_ZFt)AO`HIpmb}JZB`7rVho5q;_(E}g_S!uMoYj3=D<8>d?s^AbPd?)2=Yzhc? zmtm7P^GG#A&1q>PG=mjk9z%Ag{pAl|EGsD^&W67g$Vc)eQ$VJ`45vUu#*w5L8cp=s zM%=-k4-Wl*|Gne&cRpIb{>q2{`CmSJ-)E|-s#dI7^X6V4`bM|~(woJEA`fl+5|<}< z)$s`>*i5NDegmcrj#7lO8+#WvA3#9CYCu*(xSRz1y>S!r0+*_}`}Cm;FLyf{(E&uT zSPc0(jS=@c-FWr&tJM)`hfuD=dibl`Hm$_9Y1>zS zeXv{l{@72~({~R(-_m{X*AHHg59_ag@Ua@)7WusC-tWED5^ZLjdSLoldDYimZQvt-T5rCAAuy)khpl2jDov1x%yq6WVed?B|IVe%yAUs{3EFC4BU*Gr+^2 zH}QlG8_@{)Lev)_Ol0^`K}|Ho1QCT|WF`6}9Ze*MZX40^=T>O{1ItV75s+2zV*3S$&1Q`Xq6}=*cz@#jfS(|&I2Kkged)S5{9O@tvJcY8YT@Ch z(^613tWp5tbGjpf%J{7#@V+!};razzFJE-WWeaaF%$eKSUw^vsJs?lS@A9CxFA(&P z4vvVq%iHqS&fWZ3S5ZOHUEX64-+jlo9^c(vz2*M_3!@f!MlE1Q?apHrx-ZC<7?k~iVH{TX(``w|2I!o%r z(+YQ5;cP1Y=H*u?%tc|s+>|ew0<)I_Ax%SD-LGE!5BtDCRcUo}oJfW!8>MFNtji<2 zbSV&Z_h1e+ym)anw1;^)x%d$5@9uwK^T7Z8N~r!^X-R4I{FU`hfIee;6nI%F;3Qq7 z11i~|fB_uVCE}G8S{-norOOv&=!>`)a3B0kaS|*{KKzoM5I*9^FMkVaY&ng{Nj^8`ObHK^5io=xLV=c z`@KgXY(%e(|L_cc{D)uu_#XPI^|2g*(?btEbk9bvZuMvJ{-IB;u_ep|?c&+z~TU@{Wx9hLF@x|R80iaW`50U^M zOWQ^M^KJsS9$u}GYNBpLNtz&Fyy|u|oohKz+jh9y-h{f#@)s|zxDr8Ai8?%>(#Y-;TFxhQx}k*D$;TG8yxC)k~`x zt-@ALa*4R=j_raVrC73kqZIAEbfb{7b{`+p3YSc~+~&9z3p75M_7a6dU1SPk-mHU-|#+u0BEw zQiaV1i}2CrCm=E3#7^v#L6GGy`9YYrIh7lhDUdt`MsT8fo$m6DYxnIx0BOnl@(#|T z1Cz8`m0P%U>7vfw;Ki0f&Mt$;Jbll&2to-BaAf>QP&Di&fWV24NUJs`932u4*S8;i z_vGX6oqTfdnWvk(&)7_btEz6SDqgJy4D|SyMx`Ga7A_SQ)}S9gbPtOrH3L2g2z{Xb zEPc^)aK|Ik^(u*03PpWuVn@W7j!5+s>Z1Vbg-h8Eb-ZOLmTGkQMD13HN^p&bNu6rL z35h?dK-yYxy9Nc1C6Y%|L!%M&QtzL9$7CoVi&B%J-fX{j2%bU;SsdadmCEaH-M;RM z8-Uf$aG4s$)}$BXQpoFSjI|*YpSY%7j1fJ_9=UGXA0%~1ja7`bYaeht{?>23$c#tO z8?@dB-JDW=C_X%qG$o9=^b|znS*Lw`atCAz$P`FSftV9dv0=^f*I#?1zp>8q(O$#N zcbgvm{jq;~^{;3-nd1!R^tX;R4rhf@Hq z+$%S1y6R)w^ag0KAVlFDpj2y&capwH+*w5SsN!?lZSkT5f^V2b1fKX%kf{^&K)S%^ z_de5Q=XBci+OR#K9`_vAUlv&Uas z|CcxYd;KTA_58E1)hwDh;z=^}TOCwx=Z~Rw@Y^N%frFc~GjS<{*Px ztlqqFxJV{hmy&I_V(S;SM1;Snl-Bb6_kMJ+{_GyeQIP>8ZaD5B;^kpYdT5ErWbg0i z14@BR&63)Blnpac9rEvKrhqI;rJ10YPIVk|tEgVI;^sT=RqOPWVw&8U7&uY}OTTp1 z!K@f5@FcKkckF(muI(K8>#$LYjE7-mM_)%uLu|5NZ0T>HXM+^h>2v-`sS|QxnF2Be zCP4u;rvlw_^EHPL96H}*f9PM|I#t`j*h{M0uSb|ncAmP&yMjFtO zMj=QwKFXa+DLP>?DzXiwjvO`6ut8^;Q@C_t*~U#vK6%}Wdx1Q0&GJuGmB6o0gN(f$ z{dIw0Jg&dcQl-)8M2gFCE=e#@9DigN+j*9L_Q&^wFvov%$EJI~`S8Qvy!VDXzQ1Gl zo^C~o$$KO9eE&XF^SuYJzxQXY3f+>ge_Mhu*I5ZI5MbyJUVqnJcYSY%=eE8UBzjp5x2EFdu4Hda&BTl{Rue)~t(Qa6Y(s|-Z-W(xC zXrzOmFc7(2PVq*g(H7gP^_sEs;sVDUzI=x-?CR*R&$W~+t-Na0yv@}mt05iMwSRQ@ z!Yl2)wQ=YR6IPL}TC33yxjRNnmlsAQqlhfk`h2}}Y-VrRHCkKKK6R(IZCg`KZMRd~ zwrxypJ+*Dyw(Y4-fA7hAa*{9k{@&R;*|&0EYprXo$Ybmx`R*egdEWc|Hx4zLnC^cs z`|Vog&0cS_%f4i!x%PqtLrHbSkAS7`Co!E}5tDkp507TuE#lOc?WcLZ-DYe9RC?2^ z^^d@@0c+P4%129lkEch8?oJbP zl>NrIfPqz~T3u-*GEiC>oQpp`ru3Ib$r3RUJA!Qxv5zMO-Tm7E0Uej?&BGKil--ug z)lV)C;jK?=6`1teVH~%RCL50nzj@;Rn!i0+bL)UDPT9jn^yPL;k2 zg_}FP?bDI&Usz`(^Q}vTpuh-c%iZ+J;akqsw3?Q19&*mMmu3U5^vRCBQcX(TKKwb?nbO>6H0yF82sBfKK^3$`~A#Jpv9n5 zpm}60KAt$3BaM>x?$${KtT*5anX+GV?GG`wa5{K@bzr9ihd`+YN=&cFuoS2*ee-&^ z!=#G8AV^7*<4o=IM&hGR=nzSYuH{&L(s722tjB}G<$b%q|CYdt4Z+0&^uGJ13VP*c z!^wPWlQ7VXlY!Y@LGBA;`T+m^gX3#$YaKCh_h|jPx)SQ&G7$d$am({sr$rDcAyucz z=kZLE`0zG#V|)8+!*SYQr*@Urb=%w3YYk@T?qs$=A_lKNGZ_9@&-1d;EzvIf{fMLc zFhc~H_eSvjE3oMVCdhFXzIz^pbw@G^PK!SSwpHF|vr6s#= zXkw5U4AOqdi+V@uW>%e5`N0(mi^#4*TuknO_rFexk3v|}3I6y=KGdhp>l53nKcuVz zj8aCol3>n}H;n*)5k!K361X5ROwaS$2Us+PuK(^KX@3A94A2XjcJeZ*Q#I`h+pCMw z@}~7JA9u`0>5^D&pLcAV$NyHS(JLIJ?N(rodCe^{2-X5fixr9j)c%ei8bb@9SBftNr~YBv-+OWYsDA2#H_H^@^s#@w{l_8C-sPBg zNeGk*3@hEwbZFiNh*I3{f!NYUA=Rwj#z3uJ@NgIGtu=r2W z!I;})G2(US?Oysa0pH6)Hx#cN_wh^R`JYyl2k0!m7jdO_QS1#)(mmOpxVBsi00sFQ zA=A_^N|ZaU4mjsV;otl?wNMnaNy*tiCs!&7k9U}{E8%6TDS^sGmf{MF0edtPL)xqm ziOS6VQfl)Ke4`3I*Uz1|WAO21c|6AB2Fy;G0nBxjY>=W|5E&poIdMQg!HrvXS@b?!Gn1SH#`f6<z3~3T$(W%4CG!nmS#LUhc2asv^>@nM1|?8ac7$aMsBl*`N*?69p8l%Efgn z=M2|Qh)8j384Lr}C`6kb?V|run zpM$@o7`Sr|KoZjVHtTbrcXWVoKW&EN+hPetYXk8)aZ=vH8x0iD46V&uiP6Rf<^0HD zue+J(%~9zevfyBYS-|jkBYMXz$>X=cj3b*IOrxf@Wy*pfA2Nh8q^hzJ zP#y)vBCFKbF7I-ai6AxaQ?q{QVRBrbhHF4C`oSNYsToh=FfVt$K$9d^w(y61J3b7o zvPg%J=$Al?OsMm&)&kPme~*Lxy_2{sx1ZEkq@* z%Q?S6q*hY_U81FcjlzYdICpi12pS>${~m|C0LrxA(f#nT&OY`UuYIpSOZeTcIldO= z?KF*;cWxz=jqk(d%u?5nZ``3fY}&U?o)OnJh2&A}aN+V_QpG8tT7_A ztL9Qr+6}rT!KIGXM_7j`hJVJ4fyx+_+8nOyL3|%^m#)7KtyRP<7161aekrZCY7%@L z`a-i|t6+)9RvYv-p4!MPEgl>a6h z3sM*^TB(5KS+}T9ziCRNtIgu|j%z#xGev2Qw2nSF@RH3Nkzx%u_WQKIHs{(}_2@X> z%UjCedpzE@jqqN)`qKpy6b>G3HG)%?&UBP4>K!KWVk74D-XNY>+ueO`_@P1c3)HvI zV#;6WkI|z}q)fG#YUu$5axf-_ZJX7W&i9X39%=jg(BE8{Br4w-X9XlMe4L*4zdbu3 zWLnW>fq9f{1bx>%vdpg`0|1Z&T2TrYXPDjG*|h$)EEKU@C^2QTm*6KT?WFG*7x`#?6v$H_rsQMrl=h3CVQbFuJ zK2o4i#;lIjY^u%R#w>g4Y?@eBb}Q_w$1#8pTt@Mi6?e3kTO1q9tSS9eR{7-aWEZ*< zgi%a(uTXSzKCB}9?(0ruqm~%0_D0hr!R|O+kqG_kdB#L{5r46f+M9AvP9Y7dk(5Ds zc<{ET;5P+UC!}cjn_EoSppmI^t`75+EPhu}_os#&Xza3M?h$x+vXppJs3-CZF1q_` zREylg&%-qPltxMV0^%e~mdcZ#7h?|GBb$leb52MENl1*i*3R&k5A!b3ChmYNBywkj z5;eRf1f}Ts5QXw-lyDr$=p#Ig>Xgih122v$*m$TR#*P*qH2AKJ>mRBx5~oG|sxdpZ z<&@XKV+&*k0R&OOY?38amR5s<_v4c#CO^=0YMADJX$7H(yHTnN46S&M-(z>>wz1l4!BEyHmjzW-Ygqv!xV z0TeEd03uvAtULAYK18@2$WW+I0dRPbgo63Isp7y*4n&T+gOQ~T0is?&d?A7^`wt=; zypJxB1@!EChknH@;3Gk{svKE~4@%b>szZda{2O?$vzX(Xr%Q^6NNkv)?BJh{hnFA~ z$TmOWgsg;C+#=V#WY8D6$OFESRYRN?86N3 zvnpIX1J`vu4|de#8&xFz!SoLwC3OXA5XNinlg!%Mkcj21HLiT+iSAItcm{T_I|z%s zgDt5o3pJq=*ecn=LE5 zAIH~uBxnxiJqxuo9JwN%2ni6MWfs15Y5))?RyM$zAX69)CS1#)mx>381&C#74C=oG zza+?7<2k`cAaS9W4eOujDJL@U&&GHcF)gH0B?M;$BksiU8hl-JQlw(_3R;G! z$dnS8I5SE%6dE+_(oom1k5rJMdHU<-+hc<1T5mQ5^gxNlhk@p5)8>S(yCByip%ToZ zdK0u~%6!sn8>`2`UhqILZT7f$TStz2o=o)Rf*cSW7VF_fNHv|DU2c|RS+ep zH$6|R$u#${|I5hN^L6*f_1A!*Unz~>o4C{T`TcA_LJe*1Hx^^kOFHpMFG-JB@0)uE zGh7UEsz0`*i&V<=LZ6$U%>VWT?|0;5Z5MLn93~7u+0)_?M9x zxRmI|!iiPdfQn?NpFnJ1DT~U%G%5eiT5>cVaW^1jXJD6Ua z_|B#cX=WL^=VBwnUiN(CnsNQXq6vQ=3R z$cVr=oYYZkyD5(-AD13i!$4=48qc&Gr>fV4pM7jZqaaci!7n0 zMrkkVmiJd5_i{d;Qwd%s8NNE(>wgL-{Y6xo6;+yd z_6-BTpUG}^15j{3XpM*sGbmZD7a4KO0#HPkx!KIP6US_=D2$4Mk;VLx?` z)QYX$Wo7#D2soU$c+M%UtC_86CJb=NS}*F1fPl*Zaa)fmv1-b#izM!Xr7W|c_;Mh1 zvzvkLY2Eu+W08ub%#j|u*{n)3yv@7Y=%H(pP7|5!stRP}60S@IUC|=xmZYh|lMDXW zH%S9j^VPCG4cOc|ci;jC6(EAW3)UJSgIAodt2V?H zlNRyx)w7hDf6bU@5crx9@Hsx$>-b9aegCL|#`_q-HznkXV0v?_6Mt6qlBjF;G6985 zl8C{NbrCTa!uNh~ebG{gYyO6xUibiqu9s_zTU+5A%etPAeZlaj>QOY5`_(0X*FX`b zzacN7UkSkQR9%nOiVED!1#o09euK%Nq$@&Z3$1ec5c2hC#F5*Fslo+`=lfvQSQPPW=?V=JGJV96RL@SQs@02H}y)K=x@ z67KfQRviC*OPoHIF#FtN;1|$MrKAtuGd#J*we6T)SjdNQXVX1c5mMkX${o}q+C|K? z(Qfk)kv#-xoj$+nx<5V3Nf6l3Ppa^`Sq3DMBeiw}b9g#3Ob2m8i(I*&Ja^b!S`4jY zsj2uUq%k0&WX!>jk6Ow3C4P&;=T{aC7icPvqU_>WpL+ejymq%K4W+S_f)}J49pn@b zn`i_SH5H&76!18-O2Z7W!C7pD0R_jPmg1MUh@Wo50-hg|X9+uf1@Jbfj#~KY%C%1F ziV4q2q0LEKwT5>{9QHz%@ zYj2)fnU;`-K2J_o7M{X;5CVY)jC1;FC>}k)KLtS$;AB6%!Y3&%>&cUT zy-d&4OR%`bm`H_8>uYs@a2q2kt)MHkzDs-hNqY*zdCs_WjqeDXR@u4T_6?d8C37Pp zFhYS25Cx}*x5>OQs&(84W3CXEcI?OSyqF)ptnbDa$I((+uvKz897z8DjmBT4U2FIm z@Ot}-WWTRv+sVdxB0R~l*|2H|nz7e{c{+pQ==u46I?qO_tixx!Sgw-q;}O<7l20XGO%$)W%1f?UuQs&*^(QR$;rwPTYpo-1)raiAleZ7d}p})$PHi9uJ}B z>-!xx!UxT~Zk5u0-Nobcr#34FpU>l9gsDTL#qP6lS$DiZ4k-2ce?`(r|2lTa05gWa zu{5U>k|d2LtI_XGft?=d*6DGG4#V)1(tZ9H$5eJ?sQpG?et1X-R3!>Zd4B%;l9p|_ z$-YU2a=r@r*Ix`cJFwqdrUxy74Jb~gYKF|jXREXbd^3;4-PT6OgL<701kh7nSi){U zaBELUrM4+g-OP|X`AdGviVw5^YCyyImTNlg6;~5}1g{_!acX*U4oR}P@L8aHu`KA* z>BA>t`2G_oT_*k3$p{Wnf_(9TGNK_7BPT6iVms|(vmdIvEoVfj6Em7C4C`xh6F5JC zhd?YCx3)F~d`q|AwL5Ax=}h6f3OK3WQ~fc^+0~;=>xImiOA(>iJ~JM0dJH)MYo;}( zdflIkE}KS(Ap-2@x+gPT>jj?8YV9@huBQ5oh1biNZO&p>kx%;sf4xsP=Y2iyM-tzr zI_>grJJ+5HHUobJes;z6)ksW|w|wFtkdqjO5ZViI$;I@D^9=^1N8zD_Fal3xB4GNz zu+ro5I1zew!+Z#|+zz6nOe7`o@XXnDrEdAqXU-A#pkM-KM;cx@`W8e-jv#DeBJo~s zkl86ooKXW47|DlN#0M*}<69EFL=P?3sJ^+?d49-LQD|iYsux{dyVLb~NXSiqm%YCk#}@6#p{)LW?_dXW%tG`HSOaNr zx9D5wfWAD_3HUDF7SNiktc}~TsFy9PrZBC$dqwv>8j4UL%5B}@0V(|?8LeF^GiW`2 z9g$Q(4~Rbsq+-M&|I;zNZ!gLt$#U}d% zW0VC8brndW!OcLV5UxOJcZjeDO#^N969~j&Hb^996|Dd9Qeoz?Io*8bYv22zSyH`@ z49!;9rF7<$q=JEk>z5n&8q8ft0pebTpFMAWTOn6QR1l?FrAD+DIdkTu$qwK9FtBrH zp`wmve#+JS{J>I!|C*gQQPd1+FOa@sE{j1F9_1SDr2$6hvmxB?8@7cS>5Fx&>rXzt zRHR;^+_5Bz#NbobfI~m^>|R&92W@@Z_Y}|D@lDj^b!u0d zU0jZj3YF6kdQB)lOwvudXvx#`0bY9f`M>b~l+DA?&&oh9=bh>`c2d zz?b;cAZ?-@nw_Q%Yg^y@5zE+)yYc2ToO2y&QJq9m=vN8I8yiGY@V>v`szhB%p$j0k zWIII6Z95!PykT?Bv%iugkvM+DL4Oi25|TL=bZZ9+S2?|9TSV&V7%!(j>YDSMAww_P zkrs9|0`x?=Y2aA%pJ!$DbLp}2s}SHe7&B-eKW@i^3+UIMHguW&- z#t@7r>m{A2?4xhYM@YD=bY06V&*nA9u zGHS>2BG5?nGT1WwL$PlI&Eg)wZ$aLxmiKC(y`@0V#KA(gQ>+oo1XB=Lwrutw6zul8 zSHpR{^f(9<0ws-w#s&Vzt$iK=uO?fdJmHMoZ4(r(0Hc66|1uB7-`Aao@hIgHzes6B zLgBjfv^fpNDD;e%@RSdd&O#5$z`S{vxV$iX)I{eKnJYXhg7PIf|FqC1u)7p;i9 z+K|P+d!R2gy0`c3k>ef%7_3g2u{`?1^+nrJypDbDCb}QEJcd!~PQ5^-*c7by(zF%W zzox6Zmo3K9Cu-@4z(R$;ZrW`rE{H}Y%WpQ9y-Yv)5J5*gX_?|_B7`6JK9Bi%8#&5# zf9jy)1T@2W*v@6xYPTe_Hf3Q6a!Z)}u>g!3Gd>K!JFH2^*`AZZhS2i?r;0P0jM{Oh zvS?`;)?P+`Rq_#uO$V_BCj5$w)-t%<%eCokn6ySk+&AwR|1~v{cjM=|lN`v^srmCY^y?YT)rNtdT6l;b!ZbnNal-k} z97ShA$TnMWT82X<*Whcg<2a2PAek1p5)sc}pU}&DdTF+_L=K4-jP3|mKEx}T7HP1K z)IPM>y!iFh_;m}(o5)r6nugrF1c)|{aFs=^$#pv($fVDa$x;lshougrIE$5T^)QmF zSt%!!h;O8;%*yGOOq)GWiEorqyh@Yxe*xTZwRs211#z!MI8r(&5iZG6bCVHA$EW6y zyq(Ht+DUd^KR|bTo^w=X(=}ixxayMMDU*pITpS4T!z$0{Q=@n3+da>gY+m_~zR;2` z+O5Hjrj$0sGka2J00p!7L|O_xiGxZb?&{FTQ&m-`sAxne1(*>f)fkT=e6Z0g>HqW< zIp1)1Qc*M)HW*6D>0%d)m}a9Xr5>P~xY-{Xx+F#dFlR*r)biB9>^Y%sYwK(7w{za4 zIm+}_XQL9g^y{(CEB(@xX7+rI31`^>N2E~F(#d-=X z_~OI7eP}!^-DR~3YhbA?$we=*6Wtzui))PG21-D9ns()9cxJ4xPZdLxU(thwJkCyG zbE4!z!K>6IL{YJc=9BJh$n!h6L3W4R0>jhC#j$(rba|;2niiap%R(%~GZQbh>_`~8LzXweFfyE1YW+o@ z2@5xpul%h}MRyhtEEHzUUg4}l>MAn4!^(jjAGV3c_k=|yWCCf-YM=s9$|+!;?$Cu@BV_mMW}zJL}> zRkiMD^Qf1r!VC|A%wbBd9J)}axT7?NlO=!zX_c}u#`k>Q=>h53fTM=P2842yD7*aq zArfWo9+c$hnUJ5_r;g7~AHL)BJ{k%3&(d*~W%t##CHr@=Tab)SST&xdiJq^%G) zZ9-IcE+})W7arY{Y2zgXR*^r|3}~BMP<$HrEXUV%-xK?F^ZE69xvuwhxsJ^D`uXMV z^VNU-9Xsf>|5sN6m$~`Pi!thVOYy`*i7WN4qK1+Z?E$4m22NsAp$tM>{aSc9wAX) zeXk>(8LXcnf|TqWJsb_TbS0%mWD?Pa0yUp(wV4Cef2uC#U!X$)@U3l`-qk`4DoQ%# zb13ymM|9cxsD#ocKOk^N$vUoEy|1!8bKJiMc! zt@5b=5i`>TwhBdPX}FgtGYg-?kzjgU&@iU1Zety7H=Z7_9)|1`OHuPBGwwI9J>FS8 zotf^-jXY?n0~H=sFdGqh-zkZL5i8(J4yVm!U>V0=Nt;e?2*9d@iY%X~1dCg|P`#1WXEkVRT zcwM;8p)lWed`R-ub$#KO?TyHvLxBP_BI~k5FZdg;Hu)ZRvUBEr^f$B6Cnan%5pkBE=MSf7A&j= zTMq&$f`1j~`6vb_T<~7R4TZc~wE*G!jSf#;KW7e4b`I1OL6p2khIscS|BZt@o>;74 z+W9(tTEpu87|Ni{`*U=}CLWsFDt?fWnD>pIlZg~vQ2*vCA*PlfdMc~B2HSXzS?Jz- z1Rr2o9Y1#cY3ugUIUmdBy6pCGRa&oC_dI@>kn0y$d|(LyNoZturWHe~M0t#%ya}{n zX*UW>G&q4VRupx(F`A_N2=)5?&3ZOgH?k9#if1XK`78KQ*|}3v9JRQiTS*?^$ITCv zL!RGTL87dJ_#lJO7+~V|L&pbpx^bR4JJv8-$Y#|g^!1J`i~g@V#;=Iv;2G*8jLXHM z!6I-F#c~Y8rmMq1sx7DXr?1h1@T`{GSGa{b&>F&=ASqw8BwSX+=W}Au_h(HE*S zumL(@Eb>X8d&Hb$pLc)NC7ea15JHtQgU2$<#yruWGGI`C#$7T;tYm6NpA4Zu@h?fA zJdb9KpD`7oR5|?h3mPwe5kr|(gfbBis!Habb$>*CJnP;OKfr?Gk=j&@yl6HuNxnBW zq>L(_ETnutM#_RXoJL?xv?x!MBZ`u20QWhI6ZAxkX4pR_+?^;H>=jBNM5@G-OnH zKwa7satlUIp)J^#FjfCEN^?`81txUwl#4Ws0RTHJG9%yFVM}p9`3J+0o#zjlod0uH zd3ur^L{auC=0oF?c26ye=#Xv#IAoa!{j^|CeMQmnds)cGn}tiK&%r1r^7~Qj_2>G& z?Z^3kyYIt_7P7$YQmh{DjR3w(eX*Tj_P)h=#kq46H=nm8DD4y>k@l=sp7p*h*D+yu z-=3GW_}sx8)focEFY)CNcW`bPa9ptzJ=)CPH9l>K%`8dd$dOk=uiGOxN$4Jv&>%dy zwnX!>*A!9)AHg7Ewk{C)ONUZ6g6TqVDIfa$52^h7AD!V3j57Ux^KjSD`-S3C4nT+6 zvOoD__&*DOwP8H86K@(y=7O$>+ZKhcsXek5B<6zk2I)1ft z%DG-dLQq+aJYd%F)O2Yvij=+%BIiit>sq+NbX&On^y;G@(aVU|T$j0YPaLNCtv?4K zEW}RToSm1l_`1sitx0{^fKxO2Fd-OG)hWuOV% zFL(CaWBEJ_pR(`ihPgd6|3S5Z2@wccF;0VfYkvvKtDh^TZH{Rl_rlk7dfbGkBE5eG zBm3TdhG$ptJzhxp{{f2)x`*yHBK>qga+k6o&!bMqhFFqR?`JY^A@@HJGGzi)qda`Z zVzS?B0DBX1i?U~^WhMJsd_kQB>e=Tgv$R^0F5pTtHjPH?d%Yx-CcGG%$r1Inh!=hu z9}(XvlZULJqb`&h^o8rmwpk@he{Cg&;{?Bc+bD?M9Qylh^RGC!JQYceDdtzi702j$ zRSnMuSU|!Bdlkil6{<)Ly=M=Ro2jc59xqxb=d_+W26F|IPNOK`ACxh%I}=sxK)Yr3 zU>=^l#;!Do`P|;B1Q_BXBORs@h?9(s$i#U=c;=~ATzB8zLvl$n3Q8OgKEY3B|Jvag zc^SOt%xI%bHJb=kk#>+tGk8dCr}?jp3_}!RTAAlvu?_vKn?l)AS-yE+y>CA|+qO36 zp4sxLYk!lKx9!}Vow2>PYi-xQvS}XQy>ET@N!>n%gMj+*30+?2J2}H~Di9R${Ss^c z*_?H8!9TO~WMf29{tu11(w2M0uIKdhSX5*loVQmM-T6y!JMo(TOp04gbcr7GVoEM{ z->Kg}@ObM=32!;+xy(VQ3%GuM|F554YMXqOYo!NE%A|MUm_*{cCCw&wf;mukc`znp zbJ&IVZOgaI^}Tg%DG`60@P67j3hY!pKr+HQ7A3leC^#VoK?bdRrvua_Ix2%C15*jn zB*H9EikU8q2US|6R;7s7Zj>@v*;jHP_!=%SB5r@|W!dfry$08>1qxZ$ADiL4(SbwAgy|!tD(@~O(f0Buu)ybe-ls3J3GI;evRXo4AZy27DX1;KKk)s zVhFtA`~rO%rXYyo{k>&o`zq{T8`i`@s3-`;Mph5VBea{w4b^*u?mQUdZ#v&pu%v|u z*7x}72$%1{bCC!ifyt2Gp5-a_b{F1OFgH4Ib7JHiuDyf_pf!nw&_E-qu}=qM`3vTD zx0xO7Q$u0AP#W*7^W!NLOs>0o{<3WaIj{81SnarXsR{h@=QS&PXSABgeMRFVgI>#x zgEgHl!=kQR)z#kB&{1<{2BG(*?K$VlnooZFo0F}rNOwX1CH~DDcpl*e&WfD{Pb`yK zYL>4$lw>5`Lv*aJvnO8%GR5GjX)fkzS%S`yaOiZmckyX1{OtY&WxbN@#l(dMraNrB zc-^S}Fom`T`|XVyZNyBkFo^IjaQWKeg8#WUJvC?Ze!Sp#%f5w&uggDfu81k9!NcxN z*S2TZAL6H7i}w>}O>TmfUtdr#R;v^O&&6X)r%!t(PGi9zc@SHu8Gqnf1sg;o)XQl5 zEuv4vHksZ?*=#85zg%g|FugQrNp!;w%9`0=fW-lIaz>1A%@WoE78s65oJE)nS?qR< zB19j3GVJ*elC#KpUjPO;as{s@-x1iA*638Q(z%514IHKRmVSpu|BQCmr=T0ke6%7Z z8$VM7rO^M-e^W(qdIbM}`fr|g?0T)SqO%jtwz~7_?7QuKjyn9>8XHOAaRI4Ov)=oS zJzFmI|KtDQ-~6HZbAYA`ORKA|V>C7Sw*T>eGZtb2scxNX&9>X8^JWT1P3ui5NlBzu zgEr0IF`;OG(xb%tpDtaoqK9tJFiC}j|4%tPZrA_H*-=O-QN|2wC$f1;fVm(RFg45b zbBHeZppf~Am=$N+C1TWJE$G#jNw2^ z@yii)5V;b^GiyI}xgOeZ`LDl!{|*&n6zCeTl@#x%uQb3x!@779k?nqiC*d6U))zJ? zf4n3f{UT(-Sx;OS6UI!Qtv?+>9_vEv-;us=4xwK+AE3wq2}Bz57B&rR&h9-Uhe^IOhs(1hEUky$#9_z^nhQ^!oeHQ6msgsqJ^cE`xug`17?7?K-g9q0 zlRp?18?rF`%Z#jB(XLR!nJ!S#u>p=EU|0$eeWKN+@8n(5rP#R5GTJ|E7l;)ico{+tyXI9X9) zOWiOj#R>A=D($t-e-i^nP9)WC*Jp7E762AkVBEiu7D;p_G^vjWmpJ=y-0WlUx}mZ^ zBId<-4@!!)(Ut;FxA}|qWng{o^@Nxfo}LZAAGMmYoOX->y@WX8`t#&h&NdoXQK5@O ztZ>ELc_Wl*P;mfSLeBq`u5&V=9$PABC-djE&o8{dxgd1YO&A-u2Q>aIj{Vxv+3VAx zxUqfLrY9YJaXzVHr#ca{GO0BNhK6i`WtWt6(SULpGt9K&j%YNFUS3%tlT{PTRG)tl zY`*S;YYaB(x2urJ97mcJ060k!6yd^za9)HxM1dpY9W=wBx708K9F<-yvq_+^Rar!5 zDwqYhZft(R=JqD!gBvkHU@TBarjAMcLWjwPvD#T3zYlhrY<#OfOIR#b0ztt`_9Y_A zK3pb-T)%IOVwTK4SGt~ES0oY7`QWKg6PrnImVPvUAxQ0RVKeL)atLCj>jr8Fv81A= z_DwYF=n-c=E1>8c)2h?{F-Na`Z{D(8K-D}mQ`R-pLmsik;|CL)bd1BorTazZvu?K! zS@q-c_Tyrx>msS79{T#<{VLnJXk>om{k^p1+8l?;eN4&X=kPH+&$Kl`ns&ps+0OG` zQmqu5*e9ml+>mF9Fr_-b4D*!SrFpD}kadP`k&-2H`|8B~$?-QmLPrJd7g8&C&O<0Z zzib7jyPFXi_4br09ik5q^D3d`(MZNMiiDUxxPq-pmEM1JG=!*fHQL{V=aLfPSQFJd zc;}6ofBIOenIT1Ol=j7_Y?kw{bDt+fxrW8U3QXbKLWD=er|$RNDHLtQ_-v~DTxm6u z($HC?TTHKF2f0-fT(z&ofO6bBhYHytuY$Z8)2cKr``5L@=Ssa>?8c#GO!q%qcCv3T0RE#goq)>78KyAn(Si(U>gV)Dx>?IT%y5~&37n~57j?t6DCK3vF! zZe2sY=TIS28AvB(Vs8!mkI2xF1odz;PzpO~>j>oQL;5krW;(YZI|rV`bCo-ODMLhe zKng2)at;VDU-LZsS^5mq0C*)e+~_CQ@I7$3C;+WnE=`g-+U_W|V9{@XML7UqDuQqa z&zYvz8ytFzi*$jYXTaK-9~4W95bD{(_>}v2<~FXLyCCOH#gwp%VaPw(0&D@?H1YIlQk|k>3sGc{i6ISE)W8v{X`s?d|-FKE`^lY{=e% z%hT7i0B;#@1x~SIeopE)m~^1TK<^2g2e@dNC^X{RCYqMr&c$cY<3F#1@?kSV0@H#Z zD#3BhC=C9Ie!BwikDdxn@RuoC4cLTeEMugzM|^lALkn*Y>~)I7rD{4yS+xH zYO{Drx}prDRKkjo$)S#-`{o&dK2Ht+t3RoV_J^uCZ3E22-9HiQ%dW02!GPboaEZh+ zn@Nuvo*16FEjxU``B&GoBlwK-N)mz&-Lr>R?t?P4)T2`jhfBc)1n?h)CL{b zdDYkH-?rm!iLJ1H?bn3dAm!e%P-Jck1@K1Te+C(3QMSWA_Wdd?U2qJ8_Rz^d#MNO2 zqHqNeiZ<0M4fUp=B-g%C`GaU2G7b9-VeWC9_H*1d1|nQhJPoCp{zd zGBK+Ftf@Fyg#-1y#Sa4~fgos_jcr=5+@T8naIm5kmnDFKY%IJ{$U8+F8}RY*x#Z%j zAQ^}-$AQE*xI)3A#46o#7XA=@njzo%*A4KE1dklOt(|J5%*ywJ} zfKS!)p2oDZrd4)}{dnkl^J!@J>1p%0Uy9h&`?t1Vt7Gl{*{g+5=-bEk+><@y>NV_o z-SzE13qo;S8+zTfuN8Z3^S|a6E?*b^T37!XfidAv-m%_~T{%s(o%d6d!LT<(60;IG zJu%R>Zu%vLkBc%+5&ru;T~Add>S;I*!g!tvuw`@(0c5n~n1m0!MSFK9so;q6=;Q;8 zk^;i++-DJZq`Nop1iaVCuNn`ASH?+FG?jj6@LtSAQBr<`D3ys*`7Am3?s?sS(sr57{1!5+&mBPB{|Ir`DF<=u%jtC~48)~k!SP%1Bq&hbUZy zb5?*;#uUGC3w=r_S#1O|WzjaKh3%tzhm$M}ZS=Q!DQX}2A_ptLkCjYra02c<@$8t) zzMfWk((g|QMA7nTehRVPOm?f>TOj^T#%$c*t0kNtgUY3`@r3}mPT>TlGp)UG=O(rs zj}sm}KLNt(vnoAznB`ySF`Kcx!o}5-0zQcJfnPT#Jlz}oti;1w0v}ttIl`{f4BPGx z1UqssYq1ZazP_0D0pK>P*iSR)eJu*` zJ|GKx?fyz&(T#X0Z#h=9d7CB3{}a6D_7TPu!&N$9Etr(Sj2Sb~IeLWZMGH7inPSia z1iXXWhp;Tiy6cL1ziVDjR&CO0$H*~^x&W}rkt}S(e!idV;7&Hogg3j);zUb_x<>OM zK3+CLyijl%MG<5C0cvEyQDLUgkw5M;&TLzeS8s6q2ZW3N20>=L8w&QW_Wx`%Qeq`@ zAm3q}AZ^5|%N%TBoI^BeC`&U4N+S5X85#K3NeH{CjR=Vv_MgEQsjwxRc=ixC`~g@E z!^YN?vnPm04E%8yV{ehW57jPuiE`3mDe02BY2-H(WqO)fz1ACCP)-F(r_ZKg8XH?b z?1E;{WYw)XV&*~PB7b^^zx_rnW$S9QReD@wh0BphdgSRNj~G`Idr6FKHTo2t(7Zbr zExfks?IpR<>T!-^e=b@h3E6aa7p}^*u#%Mjiy8EY0#vzQ5Ik-mC9`Rof(X1qm zfKv1DrqQqfX|WnLE8OJm8VPZ>;eZu@CBUwwv)%h-1lzf^tTCes_u4N8BXmAz%QMBP zu<*v{{ox1Za=uV#l3y2GwFXd?S$y*0A!VL<+o6CNvMv~Gq`1_sX@L?Y0k4=>Q@T<5 z^cKEen7n$$Lgxy=Xiu@4p0afm(}l!lTPA3fV{E;@CC83UIux|Tb~cXLO;z{^wpb*Z zn|`KpbdJ8p8y52O60{j!yqmB@oLHNLziuVnpB|7EMV7E;FvTb`&T^lWAx39>L6srK zn(>t9#|8oA(SWPTW&$xaQ>1tr+^DG?eAve!znj=`EY7Z_6W_L5(jGiOq^!$1F-KO8 ze}a)G#ce5yM_swY|8l0)jt>5Kp@3yXLZdxa9Wtzy5R5i~vYSxKjxj+JzL#q8<0;8# z8u_sAZt(m_ha3scPp$6LWk77pE$TpKq=5oA#ytQ(9>zT>v5gr8$0JOfl7CWsyorXN zYRUK6EsC<`{>QF%;j$%<;6A-2VB0?hfWsO{{)UhfRh(}jlMp$-1a z3}T&TLTrq%;)6v7Z?ELXHkZjzaN^_0Eegghud(O!j99!d7(({*>}`!CXuhjyV+%IU z>5aweFJ)8$p7u_9VSlm{;XHepfg1Bq?H!p^V* z6dUCTN>4kW3s3A!8M(yKIC%u@hBWvY*$YNA_oi$?_)f$mnH& zNM$bufkj73QGuTHH{ly)kI(+WNHE|g2_fb3-mR9Wl^E*@(L>u?PD0IBPe%T@b*Z2R zpY!Hn3-i-?7+zrQcCKIk>)r9|J?Hu3MBw^k)_3!{2HSn}Yd^>LYIn2SjaF1q>E@wd zPVmzQ&K4xxlf~FJMzmF50xrw@`oVWACq3``1;R~VKaYp!-LJOmVKy_l@L!1>qfyox zv{B4a5WhUL(5V8V)kDdFgJvD+!9|Atl=&xTw@_d~$i2gAoG?93ZE*>1br&3wZ~1HK z@^u&MwMu8R#>dP>LkE3m#eU1@XnB_w$=usnJ+JBoONVKZ_f>};+1PaDDmWEoxjo#& zxka(Ja%vLxARq;)Qldi2HQJ7?nq@z%6{SAdp1rc8g?aGT(Hq|yE<7&W|5d+#PV2Hv z07>`C@gCXwE?D;>)SIjpg+bOkpIcB;JDA){tZ;1&Q#+4c9jyQsJS~|6?3;WXbSjjD ztN#yO=M-Gk=+qea`x&h8{>s74F@*{5B>V z??2o-vEb?NIjY|Car^E1SaIHjja=x^vHqV%6CR$_XFD6%)k7%AghZ+r zKv>*~Z)C@-A&3f?%&T43-ZTF!o10m<%I2?)N6S+D%ZgiVX6FElP5u=G?8R)BSSXY* zFu8xRM>Mic5vl?i$b9-JYv@;fXlB^}$mg-Jb$sUJNEn^Hyqd9ew*&l7)Fn){$KG>(m_dhIMMju z|GIZSj)PZsZ}#BXA8E@|h4V?h=lZXAx-V-w@jWW+zE)~&gkpQ}^gH%gOwx8_HC!4p++V~&%TAh#Dh^bXs{x4{Ma| zS`FewM`VQ%%<8G&rnl|1w;RXMZs3i_QQEplazIiR?~>_q=X<*Rg_x} zT6k)>?=#g2{6Chl#U78}{XeF7BPED`A1~^qlLO4+_k4Um^eKM~SnF`IRV?Hf|&8+5E6(G6=RBH(;u6yV+X2 zb3Fo`zQh@tp5KagcN$b29U!$9t9wo$XS<&6s}t8H{{vi6Fo!wU_w^ao(;q&r6?l7V z)JG-GIsId&W8OVbt#dmP5n*1fCrsjbz=MJa zq!a#Q@p1R%ljG}s4Tm6<7g)_?PjMhgGFKOgLi6bk`N~}BSjSLo95r%YW89}mi(#Cd zwxirSE)2q(3Z6xzdgKpz6%tnvi_@)xWHeahaMuoY5bxvxaXXng?OK>_LyDV(vi9>W zqtffJCJri2<=tDhxwZa@oN3e^7Li?{^swQ+V|Zr=6h4>Y?V*3^@&TTSCbcpw#p{gD zKe8WO3^9;mhbY*O;P4CH9~S1W#eNq*kGJrnMz?cgljrt$!@5?l&4EbPdJ7NOo$r70 z^#ppVD;D(s&5JQOf)cptJ3(2Aso>_}(f2%3Z8B=kWCBBy#_v`C|Lkjo-Oc_FFNPF1 z;{V5s!Rh>;fF04c#jYFem#*`pDx-BD?-8!c1>duY?`pyA6&sF|j57x2TBp5*6I#@t zo{n5#%Hz@Q3YZl;t%oxmZK7kbA|j4nna@|r^Owzy4JRijIEdhYyI_y(5vV0n?f@^6NIBkyBXhUfy04U>-Q7fgOvz$MUcw|ENtEZ`fS(3Qu1*CCLKg+EjVl{maN*(N~Yr3tfuS#X6;5! zDA@NbtFdP_88%qi%qfVMEA|@Ey(s6%M#T{C+5Rt^`m1#=w(YMcwop zx(8ps2rQQXW|*jvSVaN?WR-6oxe_BImL*IsCg+3*GALtLn*4^%r$%1n9wv;<-5xe( z8`quGbh`|&B&EtJDVMlrU$(Y?V{2_`XeQO0hfvdVoZhhsLo!vCu`fcfWN2nv8t2r1 zf}g}{lmoN>-sk%-*n|jl&;u0v;bFCffPeW#@8aC$ulMZ{W%UMQtpgtzBWpr=x9f;p z{~^!SqZj8?_$z3c0hvzGxH|8qbv{Z&8+|sKS<+FgJM9M(50RS)%eW&t_SZ$=Gp@JyX20D45x(u=BR&JeU?zDz;%h;K|3N{D zDIsP=3cQVxq(>nt=%H7kyJ&WM`|9fY;mI8wduCn#BTwtF?$>L=4PoFQmMwOd(Ejee zefGV}0FM3(6nXqx7%O{1VFo7lQFsKh<8Sx4&I{OSr3!W|x&=LwU35g0B3e8}^yE)P!#dU^kbrstVN@WL zcr~+V*+N{}r?0R-G@ksf|_;EtdSt#s1F8SGU=yygc9IqH?F7^UAV(jWTel01qP4`ZY{c25SA8Vp5=L}0M6uL1&xWgTRCc<J@Y1jIbj z7=Cekl_j>zb@vMn-={Fix2WHmc%@!Tf16HNl%C*I3r*;0WR6LHZO5N5{}P>YLECHJ zPg|aw1M_Db<7)d2aXyep6IHc*W`$iA02@`yh~qpTUne~tui~1SSvDg(?~_Z`^@7=|d9epT0f~ zjU(>pPUt~KY;t%Jf(Vu=sQT^{Rm((7M4{i|={^_Ncs52R3*(ZIZxYbzzHT+lLc3ztO*^9u2; zD1V8?%k9A||l5a&oEWeSuY1ubgKzb#$+xb+opnJNtn33r%2 z+0O6Nl6BQBDwodT8l0Xa4ZG#6wDAkZ82 zYOY+QYj-BYwy3h@C2OaFK0u%u03{sJO$k4Jm@4QTy-o{h-@AL@g2=*~Ne%30w+LT% zqo6}gY%STbNTp_@(9B&5gnJkIo62<~rNp9bmqx*?ZAL675TYtw%dxbo`|u7L?-l?s zWKE}rNv)~rnl_`&ox&uHsjg@PR5--W8;H}C>99-5hUFGrhuVwSs|W9xux3pl*8F`= zunj?MJEC!gVf>eDB{Y112+S9YYTXAte~SvAYtJvS?h&qEOa>o*=M1}cZ?@L$E!PDZ zjpBJ0AisF`%#ra~nspIO=ZJyb*TF$Rq%&Td6A#}}~ffG~~) zj{`nLLb&ZXrCbVaPgIgR{Jwgqh~2D#?)hs$9|Uj*ZV}mvm22Mm2UqltbjPBm|CGFm z)}glvOiVG5fP&DW**}|8BMS^786kqaSfRqxZ0Sg--~CHPjWPcDaIbHOD=C7$0}v24 z*tGbBjzKik1ocOTAJL#@0OGm7lx!JWI&1y%#Z#H7!xNz3hU+X@U($laOmioc!ha$b z7rLpelM(1cD=hBf#X`PL{!v^SlCMrDBbk|TuuiI9PUU7xUWaBtVF3a^GJ+gq3OISBz5SYIg3I~!x zq-Z~q?GpqDG$^dJparO*D6YanpO+yRM#i@Ykm;P*&ny1Gg5kMy#Ktw=VOOn~7J=R) zhSX$+B37lC=QP=e_;+GuLK!MTn_i&ZbNfpy6igPGcfJPgY)GPn7a=!vDxMtTy+Ga2 zJ@(>HlMhGnzowSwic~D&y#4UuEFn9M-C4AD;UaH!#A$KZubF87y;)?5wMk#d_+8R? zGUM**E^-lgBeIJ*J<6DY4r)g)DHuR8e(9T;u`3muEkRM3m;~MzI`iY*OlG zYPF_)pN8Pu%JmjxD2ZjI9xNu;srLxS1V+aQHGqU(fMI{fOaowsJ2{4=ob5TY801hM zf-wQ2#9GyS8YDS{ZGzABT0GE}rL=4sBi-;tu@5Gv3(TKf*W@&&>H9A;<>xiQ4R!th)R#>7B(&!Y-a*? znetm6CUi8s%$xAUpCEDUT^RD1z29Pu@lqWbqehB#|DfYE*+&eq1sySIS_Z7t6~A9Zg~w!quZW zwD~jX%L7KeLZH3 zS+{NOyhec<5TDe-viQfOQl%Qbth|thY=GAU&`>Fwv-;;F1^!0UgH|kz8!4lG@#+tP z$mxwo(OU-$B0v)w=rCRPCBTxtYgr6vd3eTat$a-={w^{zCiODw>TCD;V|ui02_R%HQNHS7K5`qLDUTQpnUuriZ&|g6@0{dxUpX zS+e9=bQn&x;?=5^O{lVy^}NZmx%f3hvuVGl=TY-RVIX3a@_?<7i7v(zirQ@#N5Ah{ zdTS_aQ1==Rzen+Xf5wr5xtK7fCEJz}dq~P?REb&K*n}ec=t(<1C(G`>pGmuIHsfd? zf(o(^X)Y0hQsUE7@Z|MO6DSd1(;>1;C(}JJvYir$Y{U*NN?SnM0kv+^&kEqmb#xt>l?*|X>v z7!YdGLB>UTm_>ov1ry?x6;*DJHhbOvZo~;y66Vj;C;Z%Syj)9NB@em>m9@&qxRZFK z3v2IV*!kZ~kf~!mn$`J1e|j>r;VJqDJZVkKFXq%KEZ~HnksS8KJaB)WCUW z7ROKCmJ5$q2R^~;5YZCYqd3hZs=_L!L0eLZ(x)hyQcflJrmZ2}!oY)3=G6I^{sK>i zpvvfquT?t35Se?6#E|_nD+{n|w~0bk@V_jmwFGLIW~heuSJBngZExoi6AQh^n2P>l zeT!8qLK%Z}>%_A&YHx2>RaFHK_3UGq>)SvocaFhv&AhtG&CbpShdnueSTfm48=2ol zAc2`+(5@#HG8Ck+Skh1h1^ttat8Hkw|HCH%FA@I0*$%GT3wL&M{$XJNk!uvG4qpqX zF^cCHHy&Xe(&;n_+Rp{LSWTC8w&{L^z=pZTZRTVpv6MD6G&QC7#&9^~Cp|tstyisl zeE1+vm@rE^4>b*666W+vrUDG+c6a7?=GG8l!kAzO=12*@hQNMy;pj5v1XIcY9BkIx%04T{&RE z5l!m&C9XFqcIGN${T(Ou(T)e#g9yF2ma-p*r1bj@>bko{P}B0ti^s{)hTJmq^hM2F zMPM+C%UhV$JS`E5N8@ATjoyYrT^#h{y!+e7=6c)U?CT8Ub{3{|4)8>Lc}@^+W4L-wMxXoLVBNt z!PJAsOszPE*o6Ybgzf9+{pH=&?fH3LgX?g(xH=ZhPaWW3xuRa5zYq<(aRfvGXU^O? zHxSuInTCAn)6k6g-v7fY&b}$gIJkiV#kQA@9TgVE{> z?H#zt_fjPArT_8v3HhbE;Xe@NE`R0scaO#z!{+1g(YwV1c=h~; zGSXIORqTaJzCJ-q53yVJ6IJyyt*0t8rVJh`EXQ~Ej$S%q9Af-?AbX?cBZ zYg;pXs5elEIxiUy&fWHivqElf7WXd_-}^MJbcdh6QRjoxAyinaj*#v?mZn!5&)+n0 zOf1(os`0zF{Q6L^UwpHWVb%~!N)RsAS8S^>1YW}PN+9#?4=2kll;~xZbWY*n<}%CN zE;EYC_#bZHC`xRm;banAgmP$zRaAQjNxCjqMo55lU22s701ZLzjw* zG+6c>1?Y)oo^WzBQZr^CDe@k=#g%ks;F9@4zMvQ}(D+a)egc>-J_5oK$lW==7ZvAG z=?;*qMQ11Xm-^=Ox&7bPu2%ITG6bY9vm)&FO)ELn7_`upW0dB>4OBhO$yWD(dKj9h zuQrmC&yUk>U!7}jG}TL*tcO=fUZ@K?!fp}2`{APZSk~kWZ|XbQ3`SRLwMB@y|8Aa} zDpJogOJ2FB0w}LZ3dF&X%KM16_F-eq{lA~=h5O^x0Pk0yyMv8;E?j;OOV5hshyW-f zVXUu9>+i)my=RW+kM41cLPkhHV&B_Z5oh}`z+4&~kVvt5nz%?T9ocv?@Vc0T7kiiu zSfJCc=cXu?G`K8EYM?~pVxrenjLJ|o@I$v+`8*%sJYbzv$o7^l=Y4N1`7)L}*ZI8j z&qPo+WOp9rswe}$BO%pT*n9o9Ie(9UZ)?(@@6tGx*-@8%6bozOVDd$~`@_JlxovzF-7DY*z(|XST>P3PrCWMu5Jfs z>?>_EWD!N`=mh|I<@Wkf%@p(fyAAg^blc>sl!4E{#OtnUfF)d+@xTsTXCHe~M zgp|>X7rM%nYVCsH{mMB=cM~9BVl0)B-H4C~zzxB#CDLO?m~a6F0`t_OD0Rxv!DyOQ z!hsz6USD%P?jgt#uuvQ_I~xb(dIQ!RdaWKu8|hyOsxVj4wY@jt{ega4I@v`Y1}q}8 za;JA_Tc^|OjD~?~TbRw#L^_!B<_9EU>n! zRR5OGIZP&0GN@~h4An2*oSMuqXTl(vz!$-HdFIZpehNgtq14f!+&;jYQ)Wjuin*9j z!093abCQBNLG($S0?$mOi80!`V~a(VSIz@WI9#zM}a zPnhNK>{ON}Gqw&Zhrx(37+_Y@QBhISP*PLMOiM$k<>)g3Dh8XwO&*Hk#+)S$-8J0A zvP((ikHpm&pf+Wf`w&wrhsG`*O9bbI?%JD?!1v`PCK`pYl-2_*N(2AlB0PlxEZfl3 zp&cY`o4Rx6jOB9_8q2jVo?&GxtB`S>{I>2r8Y#^MiI@(0g7!fhZloOesSRu{ExC)> zG0{-BppF;_L9`WVVl z`%b(ykYY1!6bja;SHRw5*lT?QRAsKJa-CH*=kFEM`@xRHKp!^h< zdZ;{5V3DEP&r&bl{olR6ul+x#pY6IH|DtF8!of5Dhn2`JYA>O$_|lK$`zN)yShzx} z3vnm;k4$QQ!{xpqA-niA43dQNa6@JNKVE+OXTedZRjevN^yMR^j-p0_ZBhI?3plC) zxq7$3J`7orZ}(`bhb7%>JtqS#_*ZmP(MsewY0G^ zi+=4L56Hz6hP}p1j=u2T1fe9C4UcgvK_~yh5@(R@?9-x}A3W z3w-s+7(Ed&2cfq$^`M&a?VIUy8b|q!$jFm{md5LvL7>3|t0_Q(dwgBp8XI|1|OMZlPz^z0>i13^|9u z+4apBc7koLTz+z=$oaJ8vxy4S?8m9O6zoqQ+ZBaMG?|hUUvM962Xu%c-PbGxHUkxv z>`TJ!8PTi9>~G1e|7!uk$0h@Zu0IX4gJKn(LUf3n*w3oDI2Z(VNk|^bd|j0i&P&3>`IZ|x`#GSkL1wTzNXe&XC!q9l!Rf(O>RKG+%JSSWf18xlRhTy$uw0QIVGvD zxlMc_M&!?V7z(@6hT(<-B*$nk$Bf4FzK`C(IQ0Bdk}_(i3&KsL`d!1ROKeNFuLrhX zSJGrR$x+n^tPx%)nKXu-jg)9srj$t<0A2a>ne=pK7sE!1t9#)gE!uNXpkkZEuv4vk zydX>Zg)xYyNT3|MUAV3iYMOWW15I5@q%jwZGq=VVqU}J8s zqZGSxWB%-SWxe|~I`Mjc2DD#mex5z?H&YxYLb-{w7w%*!z&yXPH8ukevnnF%=O6P8 zB)4I!0h$uD)KTF-qP!mp#V>H;QDjqXphShO=-|RNF&RAaB&Zz-FGCFZ3(sL8e&OL@ zj}owHQUQl23}a5T9O9EjvM^J%F&u~czk_aWcx^x$q@S7|XCK;_^29sf>&OBmOC5zK zx*CCpZJLe=An`d;=Ic`?;EtsgD4N7+^2-j5ZFopfr0INJfeZu}icKOnDZ_a3CDtxw zbysOmuzTlI8LfNPyRZ94>blX@wk2_N8Ml+BCE+0Z4vKP2;j!VF-Z)~SZL24N9Ae)3 zJUg>g8IyQ_vl;(e?+Ew}EClS$*CNgN&G3!p+#>k%sHt11luQYqRd%7^kq zmLw!*h5TlH#V)gpClc8=BX|l)uR+4Jz7vqkt3{`vN6_X^g&gaN2e~aI-D8Tfw0gN< zF-+CuiS|jd5<%uRpQ0ET7KX^7(+(RUm&*0(l0kAK)*c~z{)_B(6Wxaw@hhHA0EEc7 zW0^g^D1ZVV26ALbz}x9wY5&Vy7Sh!brK87>}tx)d3HEB$9(c60`n-q zny{)6RrsLoAKs}dsJednzC(s)Y5DYVWWqbSvH^rbz#KX8HffEZ59X}TG`?S*n}`k( zkbsYayO$wETEq1p0lk{cMGl2a6!mk3`2!kUy zLjOBm6MgX+)vS;`X|eskqc(bO@qylfFKm)M>Ak4$tTaBUiFyBQ=snN00P&VW3&49B zg=ACx{zknSe`I)3jWEh6nG2DL()VgI84Met<#IJ0LgeTGn(Ve!jv>3Ktkr5R~xSDnKL& z<=Nt(J3WktEJEynJ`p+;NHCNXQ$B3t42R+w7la}W%WpjaV?7Wt`5d)JJ)^3$5N@Htx8MP z$-E&F#AS>Ujl4Uu5KOWvXiQEkG53p}P@YrAtvFk0SRw!&SB(-qWV?W2_TnRBc7m##5B#7P7$aJtCu&21a5je+Qm2 zClma#Br1t)#t=rOPn%qpNb_CkdAoeEH!yHGS&VaUVx72B)vQC9nxU`b$Xh4_y#vEj z2~nrI{d0*1DrPbUP&yNX|AQjsug@wI z_G^1*nj1{kLCqIqf39PfFx9d@8l!nSC$VTdb8N~;bcAi?jEd!SzpYk?P(b;sclh%6 z>8Z&TZx$U)AVCDRCLM)4Yz=}MIwEp}{ySF)h7u2cps@qBwytoKOJny4E^Gj}YwZe_ z-THECz$jXQR(AI2)+;MZyR`I@$|_|^c+WuJ>!1HyN9WKw%A%9UU0`;G7=yKv`#DBDpph#nAW zYJQ;qzf9!E-z0yOK4K>WG!7(vj=}KR1wcXOp>I1W<9FTerrVzOmh0_w+R2pP_7Esn zIz5k!L;dC1z4PNJg3XWqT~&EjYDVrI;PCoC{T%X5scO6bmvNAz+%oH3GX8?w-09P+ zL=+YgqTTZu|I_DqZ=;+KJ|qwcC#W<*q?XsXkfaJ4vk*J0Tm*rJ)D_Ynur~0Mii`*o z$Kospj>QeymioNZd^s0|E~^XA9M*SJyln zk^HjMVi|unG)o-<0?q&0YM{YT+r|tWAi=)zKKmsSKq*4BThAi@jKB)r^LzZwZ(#coT0-RCq{ou%8N>pIPAlJ?)ka7%D1?CUJX7 zMxM=KM$NXmaszV}^)Dny$`f=SUTZdBW4qGzxqNGz zTE2GToG^>p+oE40`U+Qx&-}b3a;9Mo^TA{Gx{|B)WNQ6cKF|9)d6!^pe3I!%d(=DQ zzABYB8VUQioAe~QO>=rPrZ8OcP@=Njc0vnPpp*;a}w}q)av-rP{v^;gE#OMhpna5nZV&6=!RAc~TDW zv5WA=b3phZen*z7BKqtCKHJQ{o2E1InFoh#@DledRH!-Atb*u8^keI9b)E0M-+o}Z ze@Nc`42I3b!Qn|f+P=Gj(hbmx@iJ++tUM*0l3`X~bPh-d)F-kUTsQUJPU_l!&z{?V zzAd*Bcnt?i?MJOCv#-$bI%-p1~qz zr!YeOZ4YK9UOKVhbvRhn?PmL6(oV&C6B3k6zND_ID@VIenGo($y~iF1?xW?FJ(C27 zxdyf=`IFGjEM?w)<$>DfB1Tmuz@J;_ox0W|B9{l|?PW=iOC&lj{U+o5Wd2;{X-Wg3 z1Ml&007gB*kVsa(&i8kniTj2d8KikQv(aojWmUiTs6_j^>nt_SzQ^i0LQ;`F~8YLj1Fo*cjqkiX%3itmr3`u6+nGF&!M>vm^C{8Q6ps1MP$Q_tqQD ze>nG#Kio?KKCg$v@uX7uydIBRViSr8)wUaaaJd}rP<;df{;i!AGvz%UA0#=KTe&NK zC;4HaDA0(yS5d-={`>bFxo{05kBTjR3{czhR2BLhWzKL<-VST#b6|NjZyp<{LHwlg z*hAzF9BoHGzXY|)RUD;=`B~P$`0|l+M+D9{#&)WHIfqoDDF4E}7zd5oRek5dRB&hN z^Cw={f3XrcaowAaSAz0`XHT%<$F!Z&)=l|N){d&f6X((xy2lsR94DxBT~{oXtv-f3 z9a+b!3{-Sk$|@Q@@1w1@YYyu_bbY2%Y>lS;j(kFY=1Dfyg~*mV*W{G6k@2z_U~W>@ zcD&%yU4Eo>p5nHgkbT^KL5KWKd5>9u=#5G^OW<85uIu_QPg=4lCU~CukZV9PV3oki zvp#%EdM~`vl}m=Mi)s#u{jdPdbMyfH6UIXEqu06CcQ0Ee%1K%jEWpH2dakGrIY3i- z&?w0eRL;uAG(gt> zJ3-TWxj}r3EoV=YS4zgFlMv#qs;u1XbicN)?S{CO0vg?qk`|rk5C%da01X7PQKt0& zc)9)h@++FRXx1_&Ym&-6`q6~{pqtm0HK<|UMWXatCoa|7J}UG|M@^`I(oXGo9u5I> zyWDDKfp9%QXtc{4FX~){K|$i5hDg^R$sV~lhvOHaMtYW#VG-hK+00Ox#Ad|y> z2hZJRvBDJ+9$%-?YM8WjH~E-GN|9Qtbd%rX_%ex?-m5AEnZz)f2pzEI?uhI)6f*t0 zOt25@VO@kfXCc)ds?UZ}tnRkXBOXy7PDu4x;?J9an^y;wI8blfKfYY_+SbXmJo7rM zW(U_LLU0j{K=(Jo6poN&E6=B=T*1fwe({9+a-)<$ zH>N1HEUR2oVOH5q*#&BpxTvPNka(t%!X(lP(iP*4x3oH9uL-hO9bRU|z#r)q@C^!< zQy~^lI)iBmEA`xoiWS>i`N|6g?h-(4PYDgM))(EpCUE-r0vtY5h^igoICqrQgx;MB zP6Z#7vtgZBsA6MIgxcKN+Iu%a^V70Fzqkl-L3M2yO@eYQAGhe!&o>rPVm@`nu142r zZIk?=@LL1JwpCYO{!}Z(?jq%>?=>b~zhbC*h{Pq=z0^Xsugh-HpJ+|P6*C?qSk5S8MkzfagIPkFVi zwRgX56FwaUCU>6&5(4&aU%8xh(yoIeb=w%ovB8Y7k~NWIz|5}kNXPlol}5b^)8T1Q zS^z7v)a4pXlu84jWEFJEMk;NJRwVNm=r#uf@*SbwzTHYLLq_{x;n@33^qbOqPHqW$Co=+#1TNrn+ur9+GNNjcd0G1U~%f*e;eR@qM{re_-{k#r46Tdrk( zUmkUD=F##k*BlAGgCt_74sFq~@1Rzf%s<58ZZG0mj!c>~j{v#2!TCAgJ_ZhuVJ(Fq z;zi~b%C|^YYY80rScQ%78dr9^7y~SXsL{B@x1oBSaf2@9@=SopL1m+6W;E+ihsMJL z%67lMp5=LO!9Jct%A@jH9Q^clj&L~qKAtxD{oYr81h+QpPBMqC=eFAR!)YG2?=P2? z>eY4WfG**Kl^^XX@7)-Q19PBcDtJ+H=Z{^E6#UeZ%ntPxp6g%Mw#^G6at$7nUODbk zzkw!9j+WZlxHVNQDio;n)SU0gnja_bgH#(5%r8Ty`M?20>!`ZsCND5tmQLDeM)<0= zdZw)#5xE+0si%cC-S&zhR0B$=+F6`{9kw5DFaDIYco&E?%0tp2^GKqs#;@@(e#1=Y zq}X}%l&D;G!Pf*Dd}L-u&d{5`$eYN<&Het-3U|te?3}X5!|vfr9acq6g9(As$VVs$ z()3KAlmTb}l_RQ@2+aIxAsg7gR|qTyf{jhlX=RjX1 z^llwh%JF2)$g|m8_no_+HAO`vFm`tA8EQ2;^{$gYMpv)%U+= z>B?o|)Da`5T8;XHr_ENs3*)RbdR-$%1ql3XSj0j^@y9jeI5svmvSoxH(m^0qaezl6 z)@0-w`o7`JxLl+NppkN-iV*_axDttkCDb=LEAtUm!7}^Tzkc}r^S%q#uA2DTc--$| zl^U3zU`O0Kk*w^#>{<@4Tmz%T#@?Ra$)k5jY}QNIY#InlF^+tJLlVgWmlv{5%n);c z9@#)sdjIhNBQ-~?%n59yu5y?Jl{-5p<8!VI@xY*7Ju&<*5^8fHkbQmQ=zUQvP(~%$NF8Ql3Qj9lD16Cn$PX9{ z;v4cDoY#dwq%CoWn@mixql7HQD})fWoA44S;(8cE--R=qwZs9l5b3Zm&i|uDwNmZ) zn3!3$qtM25NmV@&pX3VIVeZG+pwnx2*%G(g;xQjoHV3ZXPm$+?Y^XxKM@=0GSg>xd z`W^V7EJ!$!m_|P+&*+Egj5ZLAFxd_}WZ46Wed2uyhVXD9}-4bE-mI$u_p2liwH_<{G(k@kr({v}%L9i}3;1}*i( zXHZm>25IY8D^oelgj>7Rkobik)xwhhl5^bvtEw2qHCpP)JbN&< zGDQeZuc#PBDgETaTycmQ$S5RD>^8Djj0huUyBe@5zuus%jB4sof~@|_dufuP7mm`| z?_V;bxb0fqR}>9BM;0&>t>K#}I7Mo6$cD-r%~jM_tgU={wZZ(`+NhmYiwjegY8z6) z6C?sY7-RkoQS#5Be^Cw?nph10lq)(gQ^y?l1zIQRW#mMab>$=|1Stw&Bks|fnBW*2X_~_B=sp~sz6Fh_?!!$E&m=u5uU+H7_ zG%9lj0w%_IQTlSul<+9&jdD|>Ro(>Omw%cz_nNB|cR0Y30Mb-%k(}C``HyY{T)XPN zH50?GnQqOB2^EBv_2`iWg(`m9S8mF|#QBlgau4kfs+kp@@m|achtmBqTK^BP@<=Kja-D$j8@RDwpH={n_2=-h2PFc}+Zz z+VC5=K|VQ>O(W8tlO}WYu$SS1s0k-)JBsx!wAi7;g$G+9%Kp(Hnf!iXN;!w?ghjL`W^L#{_FomWw( zTD{UaK)@@K*=anPS;?InD!54Y>y)*92vq# z-PG_8SU7wh!CRb3WutEJS6`jU;ySx${pagxQCz&Px(^9zhTx6&Yl?aTGIhl^YA>-i zYTf+LKybM<&-3b$V~5x8Kvc%sng@}Zn@2vI^L4++clOir?sqbqH*0n<=G!Ss2^0#opvt};3PGAHI%I)*=rx$`AC)WAoR-)h zF=vb9PWUquAr}RPDIfwJ`mnxcJ4BBy13`!BCL>t)Ad#eu%;I#vvayySk)sZi>US;A z-H4P*DMwC(Q7V7(il-xELqU`VeVPr&fhO@?8zE-TWDJ#=FUTy6fB=J4UCR$)B|G4Kgs!7Fia@kX_;>MYyK|U57EIB4wJJyo=K4o4Rv;37tM1ZX zTWfy}Nzn73VlqzV+ojunItC2}bherfeq3o~qxE;7NbQAJbwL4ij}PVg)>ec0HKbs$ zmO*=HB=9HsJJSQlwatItg|q>0&))=a%*YcEp=}2F^T(I1kw} zYnDB7WRXzzcm+I84=z|Qx*6IF%;3+jdg2dgKYN`|*g+YWmNuw#qn8XaklmN2!DEqd zBh<+tD#UBzTx{=b@HNe|u#pmYiA*z2;T5jGI1nd^>4dojHtAWk8u-eK;1ECnih*l{ z$48*4ICNAzqZ^XkZk&OoIk&rNoenB5V@t>;ywXv~J^l-1p@H0hOvorwz#zs9+qsPw z+vr1r@d&B~n6mVIv^ngThrGZitBrzia>rAqbw%X~@M2eWHD2fTUOp_eTV+MXOkQu@ zbFi-)6fdt6H7-0TQMc9AmZz#}GzMKoSs7wvF)yuGq)~jimX_AW=EmdC{X;jwT`WxT zL-%J3-SF_RSyFp>JC^?2hhKWLTD2A$;2+fEW?c%l;zyo<@6=yx+@nu|nzC$l1tsAv z@t9nAso?V&+#g)e%Z!nNjSdv-5EvS;&|*-20kIwe#jU~r0=hs&zq#NY8CH~)A`L`D z{u`$@IYsXz$UOF~pm?iY=_TQtj{H=nIOGqiiY-G^mdd@PO=xfL5PeGN#W~a@)C3n@ zf3H5bm<9Lv5|Og0siC*0tFse{0ZDJZu{V*QuMOw9ZaIh zYO&_pbY_FWY}8Nd%V05~0|v9fTA;65VjV#N-e_p+IDf<=O2)nn7NgN*wHE5;EHICl zaB2FLibJorp$2foTD{hiV>MeXG-ONMQCrX-qj`~8F;6q(xSw!t5*A=dmbXt5^EhWT zOLdg0k3vZqERM`*Sjq{{xP-0A1yZDd0Gd{M{XvUWgNKm}Q(+;=r@Tp}*tA?c9tD&R zheM_iHZfmNvHxPH#~1b^29!2(fbPIqD5O@Yt_5Rn)AR0vy)N-VGD&*6y`Gllw)hNL ztj6lVfdlWn^Nx6s)~s2*Y}r!L0R%psh(s}2ES77i|~CQ5d3i8evxAeA8)(uwv{Vaijr~r zFV*+bjz@aCyU4f{!%?8A%dWa{>FUea-+>wyk{7^acRlmyfCHkSvMg8mrCVSqBg4W3 zsO>Gh*_(TLCRkn!tlI(8yJFqi)$Cw4?rK3vr_(w0h#fFjLK2Qow4R=x#-#A6CTNVQ;!Z0E6a0&#b(JbF!|+ysf0S?=#k?R6Oy8v&h$_!n_7kO zVZnlBU^i_!1=-Utx7%s&?`>_a#pI?W!;tEpytNc_<}SJ7%4;wpSAWOJSAN;kd=~Xs zisoGX`G0|)NU}tX;(wx>Z9`*Yds|CKYn|Wc5gT+$-AEH9$vPs?m2qFyFJ01`WPKEhOaCCV#qHt~%kz0z@V)E~fpjLnpzwWwgN=k}_e5KK-uf66fvSsl{0Q!kcQ}G`o zI!s6e3KbTWl$BSMR?ICeA9|Hk%r#rAQnEpI`4eu30I4Y`nNwO;SynN(u(%XW2%iJ_ zk|_|SKo>db;Tj(6pA>=coCI3!DmZ1Svg{d8s{3-Gtf2r4J*3a?>+OW)8OMn!w`AkJ z|5&nk15%(b|JVaCr!(sQ7#mnrtJQ_8v(sVk^7~sURuxs1YfYrF zWmizKhT@G{IvUMs$8IArZcf?y%U6HCs{HEwoOw1&nbBa&wN;iCu35X}Q>&NUqthEm z%#&;(S@Yms0v!>SX=b0o4!d7MoZv_a`I=q|$PRu{`iHH0eW%mohB=D%MB%a>3My2- zV6e8wU72Szz>ppR`pVq2rR3oE{`>F4e-E93_3V~gJ_Z2vsMv!ym2>7aG&cCWgu{xD zMuXv&TW&5a98SrB|&`;AtsnKP%NzWyR$*2Vb%u?pUU2$bTJMKWhWz5;LszJZgW z&1NetB{?UaQlCTqLn`ex*Ia-3wI93es_Qmhb^Xw5(+$>~T$k4^*b#B0;E!6XzV?P& zuDoXR#;dMfv3xm7=>oX{mZ_{Aq1g6r�j)-%*G-VZ6PlJZ+|<~Q$5uF=;7Lu* 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 NKtN`^4p>(~{||m9RlWcK literal 0 HcmV?d00001 -- GitLab From 708cc642be440c844238189572e6e99c71b40b97 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 12:22:42 -0400 Subject: [PATCH 05/18] initial template-string-substitution classes and functions, NOT working --- bpeng/pna/template.py | 5 ++++- tests/pna/test_basic.py | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py index cc86d89..3fcd5ad 100644 --- a/bpeng/pna/template.py +++ b/bpeng/pna/template.py @@ -94,13 +94,16 @@ class Substitution(): for shape in slide.shapes: if shape is None: continue + if shape.has_text_frame: + print(shape.text) if shape.has_text_frame and shape.text.find(self.name_in_ppt) != -1: new_text = shape.text + print("before: " + new_text) new_text = new_text.replace( self.name_in_ppt, # underscores from constructor self.formatter(self.value) ) - print(new_text) + print("after: " + new_text) shape.text = new_text for p in shape.text_frame.paragraphs: diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index 768bdf0..10cd48d 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -1,4 +1,4 @@ -from bpeng.pna.pna import export_ashp_pna +from bpeng.pna.pna import generate_ashp_pna def test(): building_info = { @@ -6,7 +6,12 @@ def test(): 'owner': 'Onyema Osugawa', } hvac = { - + 'heating_system': 'Electric Baseboard', + 'heating_fuel': 'Natural Gas', + 'dhw_heat_same': "I'm Not Sure", + 'heating_system_age': '11-20 years', + 'windows_age': '4-10 years', + 'roof_insulation': 'Yes, very well', } cost_estimates = { @@ -17,4 +22,4 @@ def test(): contact_info = { } - print(export_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info)) + print(generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info).name) -- GitLab From 059513d7718fcea76b3a0aca3fa9322d2fea613d Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 12:46:37 -0400 Subject: [PATCH 06/18] remove nonexisting rows from (temporary) dev template --- dev-templates/ashp.pptx | Bin 248454 -> 248301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index b3883f01e5d73cb675dfc5d4a9559756beb8c9c1..22aed922d52d0535e7d3033980963336010e8a74 100644 GIT binary patch delta 5078 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 LNHyYmGUR^%{QD;4 delta 5251 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 C8=^=6 -- GitLab From 0f3f9ca7a0e7dc90af922a0d3c323654eb9b9086 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 15:32:44 -0400 Subject: [PATCH 07/18] substitutions works across all slides, with red formatting when info not available --- bpeng/pna/pna.py | 50 +++++++++++++++++++----------- bpeng/pna/template.py | 67 ++++++++++++++++++++++++++-------------- dev-templates/ashp.pptx | Bin 248301 -> 248319 bytes tests/pna/test_basic.py | 4 +-- 4 files changed, 77 insertions(+), 44 deletions(-) diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index 850ef4e..b0d5aaf 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -22,8 +22,10 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, - address (string) - owner (string) hvac - dict containing these keys (engineering-related data): - - boiler_type - - dhw_age + - heating_system + - heating_age + - heating_fuel + - dhw_heat_same cost_estimates - dict with these keys: - project_high - project_low @@ -37,11 +39,8 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, """ v1_template = load_ashp_template_v1() pna_generator = TemplateInstantiator(v1_template) - addr = building_info['address'] - owner = building_info['owner'] - creation_date = date.today() - + # Provide template with address, client name, and date for title page addr_sub = Substitution( 'ADDRESS', @@ -50,21 +49,21 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, ) client_sub = Substitution( 'CLIENT', - owner, + building_info['owner'], font_size=18 ) date_sub = Substitution( 'DATE', - creation_date, - formatter=format_date, + format_date(date.today()), + #formatter=format_date, font_size=18 ) title_slide = pna_generator.templateSlideNumber(0) - title_slide.add_substitutions( - addr_sub, + title_slide.add_substitutions([ + date_sub, client_sub, - date_sub - ) + addr_sub + ]) # Fill in HVAC Fields addr_sub_2 = Substitution( @@ -75,11 +74,26 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, 'HEATING_SYSTEM', hvac['heating_system'] ) - # hvac_slide = pna_generator.templateSlideNumber(3) - # hvac_slide.add_substitutions( - # addr_sub_2, - # heating_system_sub - # ) + heating_system_age_sub = Substitution( + 'HEATING_SYSTEM_AGE', + hvac['heating_age'] + ) + fuel_sub = Substitution( + 'HEATING_FUEL_TYPE', + hvac['heating_fuel'] + ) + dhw_sub = Substitution( + 'SAME_DHW_SYSTEM', + hvac['dhw_heat_same'] + ) + hvac_slide = pna_generator.templateSlideNumber(3) + hvac_slide.add_substitutions([ + addr_sub_2, + heating_system_sub, + heating_system_age_sub, + fuel_sub, + dhw_sub + ]) # Save PPT to a temporary file, and pass a reference to BlocLink tmp_dir = '/tmp/bpeng/{}'.format(uuid.uuid4()) diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py index 3fcd5ad..c37e4d0 100644 --- a/bpeng/pna/template.py +++ b/bpeng/pna/template.py @@ -23,7 +23,6 @@ class TemplateInstantiator(): i=0 for slide in self.presentation.slides: slide = self.slideInstantiator[i].render(slide) - print(i) i=i+1 self.presentation.save(path) @@ -33,21 +32,24 @@ class TemplateSlideInstantiator(): self.substitutions = [] self.extra_functions = [] - def add_substitutions(self, *subs): + def add_substitutions(self, subs): + print("add subs") for sub in subs: + print(sub.name_in_ppt) self.substitutions.append(sub) def add_function(self, fun): self.extra_functions.append(fun) def render(self, slide): + print("render") + print(self.substitutions) for sub in self.substitutions: - #print(sub.name_in_ppt) - #print(sub.value) - slide = sub.render(slide) + print("iterating through subs: do search for " + sub.name_in_ppt) + sub.render(slide) for function in self.extra_functions: - slide = function(slide) + function(slide) return slide @@ -57,7 +59,7 @@ class Substitution(): into a template. """ def __init__(self, name_in_ppt, value, external_value=None, - font='Trebuchet MS', font_size=16, color=(0,0,0), formatter=None): + font='Trebuchet MS', font_size=16, color=(0,0,0), no_data_color=(255,0,0), formatter=None): """ We use 3 underscores to denote a field in the powerpoint template. These fields are filled in using substitutions. @@ -73,10 +75,15 @@ class Substitution(): to format the string for better presentation form """ self.name_in_ppt = '___{}___'.format(name_in_ppt) + print(self.name_in_ppt) self.value = value self.font = font self.font_size = font_size + self.color = color + if len(self.value) == 0: + self.color = no_data_color + self.value = 'No Information Available' if formatter is None: self.formatter = lambda x: x @@ -84,43 +91,55 @@ class Substitution(): self.formatter = formatter if external_value is None: - self.exteternal_value = external_value - else: self.exteternal_value = value + else: + self.exteternal_value = external_value + + def ___repr___(self): + return "[" + self.name_in_ppt + ", " + self.formatter(self.value) + "]" + + def ___str___(self): + return self.___repr___() + + def toString(self): + return self.___repr___() def render(self, slide): if slide is None: + print("slide is None") return + for shape in slide.shapes: if shape is None: continue if shape.has_text_frame: - print(shape.text) + print("text frame found: " + shape.text) + print("searching for: " + self.name_in_ppt) + print(shape.text.find(self.name_in_ppt)) if shape.has_text_frame and shape.text.find(self.name_in_ppt) != -1: new_text = shape.text - print("before: " + new_text) new_text = new_text.replace( self.name_in_ppt, # underscores from constructor self.formatter(self.value) ) - print("after: " + new_text) + print("did update") shape.text = new_text for p in shape.text_frame.paragraphs: p.font.size = Pt(self.font_size) p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) - # if shape.has_table: - # for r in range(shape.table.rows): - # for c in range(shape.table.cols): - # cell = shape.table.cell(r,c) - # if cell.has_text_frame and cell.text.find(self.name_in_ppt) != -1: - # cell.text = cell.text.replace( - # self.name_in_ppt, # underscores from constructor - # self.formatter(self.value) - # ) + if shape.has_table: + for row in shape.table.rows: + for cell in row.cells: + #cell = shape.table.cell(r,c) + if cell.text is not None and cell.text.find(self.name_in_ppt) != -1: + cell.text = cell.text.replace( + self.name_in_ppt, # underscores from constructor + self.formatter(self.value) + ) - # for p in cell.text_frame.paragraphs: - # p.font.size = Pt(self.font_size) - # p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + for p in cell.text_frame.paragraphs: + p.font.size = Pt(self.font_size) + p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) \ No newline at end of file diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index 22aed922d52d0535e7d3033980963336010e8a74..e83ef4cd04cdea1e433428d4e8ceb47b370aed4c 100644 GIT binary patch delta 4506 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 P_6!2-c>=xID;qb$oWs1- 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 Date: Thu, 8 Aug 2019 15:34:31 -0400 Subject: [PATCH 08/18] fix identifier typo in dev template --- dev-templates/ashp.pptx | Bin 248319 -> 248340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index e83ef4cd04cdea1e433428d4e8ceb47b370aed4c..b9f01b5305af367b6a47900574befbf7fa05b7ac 100644 GIT binary patch delta 2899 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 z Date: Thu, 8 Aug 2019 15:53:47 -0400 Subject: [PATCH 09/18] remove solar variables in pptx template --- dev-templates/ashp.pptx | Bin 248340 -> 248345 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index b9f01b5305af367b6a47900574befbf7fa05b7ac..809b40589843fe7935bf629b53019019b6a818ff 100644 GIT binary patch delta 4003 zcmY*c2T&7h7bRJG?@g+d&_RJmla7H%7b%J$MVd6JA_9>f=@4M)T?8pU5v7KX5D*0E zB}%VSqzIzGA8_W){5!LA&$;)Ud%xZNW_LCLx!=8GlFIP8 zAoMgEcNC1%qVGkqf(?#to7Hr2YVr#t&7fLcvj1s zG1?cw>=8eX3x4jKwr-Cb^?7m3p*}7ZApe26Y`yAKJzv-Va;um?eN*0jK72Z2zhun0 z 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 -- GitLab From e06a071941998f9472696be3960aaad25e7614df Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 15:59:37 -0400 Subject: [PATCH 10/18] populate cost table --- bpeng/pna/pna.py | 16 +++++++++++++++- bpeng/pna/template.py | 2 +- tests/pna/test_basic.py | 5 ++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index b0d5aaf..93770d3 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -94,7 +94,21 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, fuel_sub, dhw_sub ]) - + + cost_slide = pna_generator.templateSlideNumber(5) + addr_sub_3 = Substitution('ADDRESS', addr) + window_lo_sub = Substitution('LOW_WINDOWS', cost_estimates['windows_low']) + window_hi_sub = Substitution('HIGH_WINDOWS', cost_estimates['windows_high']) + ashp_lo_sub = Substitution('LOW_ASHP', cost_estimates['ashp_low']) + ashp_hi_sub = Substitution('HIGH_ASHP', cost_estimates['ashp_high']) + cost_slide.add_substitutions([ + addr_sub_3, + window_lo_sub, + window_hi_sub, + ashp_lo_sub, + ashp_hi_sub + ]) + # Save PPT to a temporary file, and pass a reference to BlocLink tmp_dir = '/tmp/bpeng/{}'.format(uuid.uuid4()) escaped_addr = addr.replace(' ', '_') # TODO: replace special characters diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py index c37e4d0..8bdbe6f 100644 --- a/bpeng/pna/template.py +++ b/bpeng/pna/template.py @@ -76,7 +76,7 @@ class Substitution(): """ self.name_in_ppt = '___{}___'.format(name_in_ppt) print(self.name_in_ppt) - self.value = value + self.value = str(value) self.font = font self.font_size = font_size diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index 23189cf..d381029 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -14,7 +14,10 @@ def test(): 'roof_insulation': 'Yes, very well', } cost_estimates = { - + 'windows_high': 15000, + 'windows_low': 23000, + 'ashp_high': 16000, + 'ashp_low': 24000, } scores = { -- GitLab From b8da10af5feb1075bdc9647beafaa2b6eb83c399 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 16:13:12 -0400 Subject: [PATCH 11/18] format USD correctly --- bpeng/pna/pna.py | 31 ++++++++++++++++++++++--------- bpeng/pna/template.py | 8 +++++++- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index 93770d3..d217ef6 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -2,6 +2,10 @@ from pptx import Presentation import os from datetime import date import uuid +from pptx.enum.text import ( # pylint: disable=no-name-in-module + MSO_ANCHOR, + PP_ALIGN +) from .template import * from .field_format import * @@ -45,7 +49,9 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, addr_sub = Substitution( 'ADDRESS', addr, - font_size=24 + font_size=24, + align=PP_ALIGN.CENTER, + bold=True ) client_sub = Substitution( 'CLIENT', @@ -97,16 +103,23 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, cost_slide = pna_generator.templateSlideNumber(5) addr_sub_3 = Substitution('ADDRESS', addr) - window_lo_sub = Substitution('LOW_WINDOWS', cost_estimates['windows_low']) - window_hi_sub = Substitution('HIGH_WINDOWS', cost_estimates['windows_high']) - ashp_lo_sub = Substitution('LOW_ASHP', cost_estimates['ashp_low']) - ashp_hi_sub = Substitution('HIGH_ASHP', cost_estimates['ashp_high']) + window_sub = Substitution( + 'COST_WINDOWS', + '${:,} - ${:,}'.format(cost_estimates['windows_low'], + cost_estimates['windows_high']), + bold=True, + align=PP_ALIGN.CENTER + ) + ashp_sub = Substitution( + 'COST_ASHP', + '${:,} - ${:,}'.format(cost_estimates['ashp_low'], cost_estimates['ashp_high']), + bold=True, + align=PP_ALIGN.CENTER + ) cost_slide.add_substitutions([ addr_sub_3, - window_lo_sub, - window_hi_sub, - ashp_lo_sub, - ashp_hi_sub + window_sub, + ashp_sub ]) # Save PPT to a temporary file, and pass a reference to BlocLink diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py index 8bdbe6f..8e4cc92 100644 --- a/bpeng/pna/template.py +++ b/bpeng/pna/template.py @@ -59,7 +59,7 @@ class Substitution(): into a template. """ def __init__(self, name_in_ppt, value, external_value=None, - font='Trebuchet MS', font_size=16, color=(0,0,0), no_data_color=(255,0,0), formatter=None): + font='Trebuchet MS', font_size=16, color=(0,0,0), no_data_color=(255,0,0), formatter=None, bold=False, align=PP_ALIGN.LEFT): """ We use 3 underscores to denote a field in the powerpoint template. These fields are filled in using substitutions. @@ -79,6 +79,8 @@ class Substitution(): self.value = str(value) self.font = font self.font_size = font_size + self.bold = bold + self.alignment = align self.color = color if len(self.value) == 0: @@ -127,7 +129,9 @@ class Substitution(): for p in shape.text_frame.paragraphs: p.font.size = Pt(self.font_size) + p.font.bold = self.bold p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + p.alignment = self.alignment if shape.has_table: for row in shape.table.rows: @@ -141,5 +145,7 @@ class Substitution(): for p in cell.text_frame.paragraphs: p.font.size = Pt(self.font_size) + p.font.bold = self.bold p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + p.alignment = self.alignment \ No newline at end of file -- GitLab From 0b9eb412749eb4460407f496d87863f47042ffed Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 17:22:59 -0400 Subject: [PATCH 12/18] got 1 table bar graph working and all substitution is good --- bpeng/pna/pna.py | 43 ++++++++++++++++++++++++++++++++++++++++ bpeng/pna/template.py | 14 ++++++++----- dev-templates/ashp.pptx | Bin 248345 -> 246201 bytes tests/pna/test_basic.py | 6 ++++-- 4 files changed, 56 insertions(+), 7 deletions(-) diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index d217ef6..86bf24b 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -9,6 +9,7 @@ from pptx.enum.text import ( # pylint: disable=no-name-in-module from .template import * from .field_format import * +from .discrete_bar_graph import create_graph_factory def load_ashp_template_v1(): """ @@ -101,6 +102,12 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, dhw_sub ]) + # Fill in scores using graph_factory + graph_factory1 = create_graph_factory('OPIMP', 3, 5) + graph_slide = pna_generator.templateSlideNumber(4) + graph_slide.add_function(graph_factory1) + + # Populate cost estimates slide cost_slide = pna_generator.templateSlideNumber(5) addr_sub_3 = Substitution('ADDRESS', addr) window_sub = Substitution( @@ -122,6 +129,42 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, ashp_sub ]) + # Populate last slide with contact info + name = '\n' + contact_info['name'] + email = contact_info['email'] + phone = contact_info['phone'] + pronoun = 'me' + if external: + pronoun = 'us' + name = ' ' + email = 'BusinessDevelopment@blocpower.io' + phone = '(718) 924-2873' # TODO: don't hardcode these values + + pronoun_sub = Substitution( + 'PRONOUN', + pronoun, + color=(0,0,255), + underline=True + ) + name_sub = Substitution( + 'NAME', + name, + color=(0,0,255) + ) + email_sub = Substitution( + 'BP_EMAIL', + email, + color=(0,0,255) + ) + phone_sub = Substitution( + 'BP_PHONE', + phone, + color=(0,0,255) + ) + final_slide = pna_generator.templateSlideNumber(8) + final_slide.add_substitutions([pronoun_sub, name_sub, email_sub, phone_sub]) + + # Save PPT to a temporary file, and pass a reference to BlocLink tmp_dir = '/tmp/bpeng/{}'.format(uuid.uuid4()) escaped_addr = addr.replace(' ', '_') # TODO: replace special characters diff --git a/bpeng/pna/template.py b/bpeng/pna/template.py index 8e4cc92..87de385 100644 --- a/bpeng/pna/template.py +++ b/bpeng/pna/template.py @@ -59,7 +59,8 @@ class Substitution(): into a template. """ def __init__(self, name_in_ppt, value, external_value=None, - font='Trebuchet MS', font_size=16, color=(0,0,0), no_data_color=(255,0,0), formatter=None, bold=False, align=PP_ALIGN.LEFT): + font='Trebuchet MS', font_size=16, color=(0,0,0), no_data_color=(255,0,0), formatter=None, + bold=False, align=PP_ALIGN.LEFT, underline=False): """ We use 3 underscores to denote a field in the powerpoint template. These fields are filled in using substitutions. @@ -80,6 +81,7 @@ class Substitution(): self.font = font self.font_size = font_size self.bold = bold + self.underline = underline self.alignment = align self.color = color @@ -92,10 +94,10 @@ class Substitution(): else: self.formatter = formatter - if external_value is None: - self.exteternal_value = value - else: - self.exteternal_value = external_value + # if external_value is None: + # self.exteternal_value = value + # else: + # self.exteternal_value = external_value def ___repr___(self): return "[" + self.name_in_ppt + ", " + self.formatter(self.value) + "]" @@ -131,6 +133,7 @@ class Substitution(): p.font.size = Pt(self.font_size) p.font.bold = self.bold p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + p.font.underline = self.underline p.alignment = self.alignment if shape.has_table: @@ -147,5 +150,6 @@ class Substitution(): p.font.size = Pt(self.font_size) p.font.bold = self.bold p.font.color.rgb = RGBColor(self.color[0], self.color[1], self.color[2]) + p.font.underline = self.underline p.alignment = self.alignment \ No newline at end of file diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index 809b40589843fe7935bf629b53019019b6a818ff..b80dd0fe76602e6fafe2517aeb0e12e90ee4b4d2 100644 GIT binary patch delta 11640 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 S!3W?2=)6cW>FO7{fd2tDETFIe delta 13759 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%0A2Kp4K~HT>m0{pi;d#nWKXJVgL#Hc6 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 S3;~b;C=EK7aox|t$o~Pp+boR$ diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index d381029..3b555e5 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -23,6 +23,8 @@ def test(): } contact_info = { - + 'name': 'Gavin Gratson', + 'email': 'gavin@blocpower.io', + 'phone': '555-555-5555', } - print(generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info).name) + print(generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, external=False).name) -- GitLab From 5005c2c3459a012aa850589177a29b2b4c081194 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 17:23:33 -0400 Subject: [PATCH 13/18] remove border from contact info on last slide cuz its ugly and hard to dynamically format the padding right --- dev-templates/ashp.pptx | Bin 246201 -> 246204 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index b80dd0fe76602e6fafe2517aeb0e12e90ee4b4d2..ad6e928d29f2d7c67ac2b92840d205b8c91e8eab 100644 GIT binary patch delta 2795 zcmZ8j2{e>{7oM3Hm33t7nj~AcQKpnFl3lhe*~(6$$dVTQXI_e9YMByMK;1Z$3yx?ddf8H%jRJ6BWq;S;wHD&wznIH8W9g z;r)2&M7x<`clr5n|b124TS zubgkkif>qWF?q&wqoyNSJ9@bJfo81X6Z=@vi`%aSUEZVHq&hHMU2V60d(jW7{pvKs zXx8?+#q#kjZ$&iu*{mIN4od1d3WuP1ex8+o(*HvG7gZoJJStNuM&(|zpv#=ht+t%P z07D+lEE%y=xu1O>nGsbu>0(3qNG=!WE^f5W_*b!a#jw^8hXmGA9oaW_OZ`{AU}f#~ zNIZEC=3V!uE*KrgSUbYCGc?Ph>UTsZE`3>Kf^<*DjvS608>HUc zWhZMXxL%2Cf46O~T{0HoI+9WoT)4A)lAoFxHHCE?D>V2i$C)oN)OuT|g7w+JgXK;0 z;uuFZQT^FvX-xSI>98U1wnN*rH`Z)T-cFRYL9$Ag z>1BAueLkLDiH{W03q8vMIZ3^o>&WjU_N^ay_C_Kc%LpBn#q zL~FSTrHA=79!>E3T~Rr}HJK{$f@6oHNorUHKQmn6G>SQwc}pS1d+n!3fUm`bPigO$ zrRDI)AIDkPt9x4rV=-!^ZN6xE7JK%u&4l55TDM-W5#Dl$_INK9{Nt3=$QON@eTze2 zeM5x{#uCwM!}Vm3N){+_R`jAdmAMu#w0l*Ep;nh?U%HL4mHd;kNuC?CsWcFelx}KE zZ5bX)#&|KGzC<{m?qf+*1b4nL;)$#N3>( z>gV*^x;jao^l7BRdI+fVDB+ywZ9dXmE@{*{;^0ejz$9ON+ET-M)cNO?1-)F6(qy8? zt^1diAHuL7kD4Ug_X!25hXRMlCm*5_B$yZtv+$g$BQN@0K;ow5T#_NTuR^CM+PvU| zZoA;64v-mPF_@t|B?w`;Y}JQ4WM+uW`n6l+x-M(cYMi>`nxI{;y4c`1y%`Wo-D>GQ zKo@{NJbPxy%gs|datG3Uj#rwmrMtU(a%=JXVy8sLQ$+M|2B-ddwrAS#%*t&3C(~{t zOfM39UFGrN&0*a^a=?~sgtrSy>N>Ox)Z_Q`3u|Vb2U*SWbEqHJ!&)vUo>MmYCW5QQ zPBi}JB2l`Vv-~$Yt6HP+q@;Y)Ir$|rb%*WK)?{jNXK>872$cIfgWU((ky@1PllsQ* znPp06Wl{vEVI&?atLK3hk>H&ZVnLd)1`O_7FfVwP48WtCt>T)kpo|AbX|@6$Upmyd zDV3fCg+TN`k9n=I8GC;?$@c|5$rkiSbp?{ zWVo}Iw^g6lVGA+DaDkF0*k&G=dQ+nPU;@I`q?jSR`@=m_gQOQAAu&|RpRN2972-3>NCrj;~{k;`U)E8iPIOTPn#37 z&p9B;12mck(pkwGG7z%fZ5V)fS>3WVZ1lzDOVDWI?GtBGXhj5n5xv)Ff#IRi&4KWA z$+xA54{Mt8M*bW>Un%^GzvtpXY$%aq6WThmNiFvb{>L`?tDXjzqvEqSB6d-FovRn) z6Pn8K2_rKRm@`!b<5FVDb1`{7(u4HlKVGy`7u3pc6bDx=9RBbbFAD#C;YOvpxeJ=W zX1@3{j_+BHN4w&>;XvB8<{xb1cDWTiWqd?os?zsm>wtGj!feQb9UI{=BHe@kCgyof zKkr9pcY)S9!?RHn7I%+ktj?^Ckk)r;+guRH?k)f^!(BPR0g`C|oN}xHILOS@)MTVj zk$(k9K{1X-bVWq$3iGaZd!_Fd)HU`Dkm=aQ!Yq||=a{;EboT)R2MXqv9c9rEi>Lp} zQJ$-P=^*09zuc&jYZX&2uEQ-|Dx4e48#XRCb1pH*^Of@xYqQ+rXDbL4WeMd6H`po% zSxWdP^Cq8*Oue{3+=zAh62g{F6^F~j+xtqa*8bpW}m0Wn;u11rcy0c2qDj{8X)3L~lJypNyn;Wf8?BDg^T&@fJq zKaOb?!#Ux(&&sU=P|(j{e-&U1lexJcQl&Bq1N`@K{2p!y+^}zh|VtM1}!SHUMa91Mq?~4Gan%c5!`|p^0z!*%Y z0UA&iuz$~tfbd2@Qh4tQ=`j|ZD(wI1NYK0y5EtJ2BtjX^S1A#(N`1Y@nGa$v9GjQp zpFI6UVt#CrJoVh#{ND{H{&n$Nl%b`2RQ|I@{!3*BZn@IXoHbv^Pt}wejSf-%VD`CY za$d-u;vSRCzBQlnbRcZ=k9D87R=o3lhyO?qQhh~>sj(!L@ijm(Mp`MJ_g`U8Hr%*s zrt~H9_#t&!3+b1Y#x}@7DNCDJff{sPku7of3K&A>D{79Gw-;Vt?o}mtC#433yLL}c zGKnp#mg4o~6tH>qi(m3B!xIzblU26{9B5S`R%l8Orp75^L!(~-j())ix85PwEyfcX zNHWW5YX%Z~eIb}vYnv*%KG=O}FU*(1tDF!f#mQAN%X_IfGX#TFELPn;^y0A$Uy)F+ zBWD?Ld6u^B>fqe}IjTyUIDIZd^+^J3ov*jYw9q?2RVtSsWlW2i^E6VmA8AM!a6D@| z8lvo!T+Dy|4kr6tV1oGS;pK+|tm88`V#IB$f|){pChh2$@E0ICXRw@D2?z30UV`-j z@&Pl!v1*SdWn=B)IY{f(x`mlD>cP=$J>7`uPNR;RpHo6^5-h7`%t)lSrP2iSp-P z7RYTIO&ncNB$DuY+lFVq)C86EdpsV{3^mE`d)Yn`iFsRMAN(G>skm)Vy<{DgG$S_K zaV}`&htfW;F{T4D$=m}|z4kDp=ys@R9u(xH@nHRfaR;es{Xq9;P{DOl$^d3B=o%KV-5zo{{UALHL2sHx~R z%2BDTbfLSi&uYVaSfx3sNrqi;os*{xQWl%z)0ehv&ca(hs#dke?opSio9%6*mPQ<9 ze@pW$x>dB-Mc4P#KU=>3q(fbYE?h)!qyMxbhaP+O#Fx>84OX7ICiQx5%_1nkc1mQ_ zdn1(NQW;Kx;+7jV*kLmLs+~Qq$qX@^fd*U0bztJ7Av**}Y8;RB)fl@`*W)UHiw2P2 zJ6_>pjHlLKn|SX^)sX(;{F3V8i(`I~nv#$E_C~dFlvo=u|9V;a5@*9c0CoQmUi~w1 zwK-H4>u79o=~kv@naj?iyagt+{mRUTOh$8XxHC}o5tzt_rt zG$cZtO_6_p0l}vfVD5ew+0|_)`h^M4%1m7UfyGOF$BStF?eO_(T*gZ77N*ekN1+>; zF7bt-j)cpmrRub@B=99CAwiZ1e0)%Fuojix+P-y%m!!}$twRD(9doR?_02X;9|wDB zZK#pQBj2(T{-fEZIiTc+c|ra-^SmQu@%>h#>=4Eyg0W@`X>2Szj6e7Dfx>=re}M28NYTz_zVRt>9- z+8-8+uc6`H6R2H_XY56lin69S&ee!MqteMvf^nKCXwU)(;TZOb40|Yd!YB-TAkTuA za5#(<4~0O^gYHB?0h@1|WJa}HiZ?mpvy$T;NBXO!9SOTW)%>(Ea9U)=-7CEJmB)Cq z0Bg@)+nP9eTrR4NO0KBhyVbZEC1C?gtHSFz-j7>`5BPGnwKX{B@Jo~O4gznDuyLbI((H`MTBu6a$Mdy5 zxliA_9TAXXy_CJ#%Xcb2hVEE(Cg_Fku}mFm2!`mk?tmFKr|2H6cQ1M*qD ztUxLAK{Y|`2GoZK{RP$OdlbFIwwN!fOM}K@4=JO)J{0P(qfwuyad*1!u#-BQJTCIa zW$JC1Xmqp@(y*3#1b-F(Dzil8p_I&n(N-3TW%S1`@5ow#54DV?^%Lg&+8+Mp^T~)G z_%epdd_r983zuJ=RiJ%8J?f>n1Xn%t;pjFkaJgi`v z+bQr-mnq}QxT zn_1>$OQ}s@M){H16$3FyTybTPIo1LG@cZioV~&Ym{4+6fxpz>7pi8RjXlRh`!2xxw z`P66)==S=)=Do|PJ^d=rt=)k3ri0WWWt`1?SK@s{LS3*v>RwLjC+fcX+oE=Yru1qx zym1?wH3Hqnd_A~tqqRsuHS#oucqbKX{_TNNDn$075T!gJMji<|~k zch)wsWN|1)@X)p50xUqV;Sqsb7d5je)~Bm-VNyuUv$AhZRrgH_rSI_<^4 zfEGX*rtCm~`b!b6J0QT;T^x7~RHp)m2{qUFK$S*7h>+tf#1HvBlAV9byPOf=bqZI0 z(rp)m4=Df!w&C%!6x^Z!+E8H-Lj|tDRK0)l6;v+I_T%O<;06^?hN^)wG~gmEEa)el zOyknsA-~Gs(g1DPWauw&td$Ek!wACRGGJ;e*HG$TzlaGg0o4VC+5iWb^Sxhdscl^G z-DpBav@AH+#&!7w3bzB6Pz31O&NaJ`_DeR<&Xswk{{o5~ToChsTeF`~`v485bZ|{d zGX9H&!8cqUN(Y7M+&*QXE1hdsQ2@Hpf&GMm0wM4%ohu(HC#;l$s~kpM_wU Date: Thu, 8 Aug 2019 17:29:15 -0400 Subject: [PATCH 14/18] bar graphs are complete. PPTX component is fully done --- bpeng/pna/discrete_bar_graph.py | 35 ++++++++++++++++++++++++++++++++ bpeng/pna/pna.py | 9 +++++++- dev-templates/ashp.pptx | Bin 246204 -> 240758 bytes tests/pna/test_basic.py | 5 ++++- 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 bpeng/pna/discrete_bar_graph.py diff --git a/bpeng/pna/discrete_bar_graph.py b/bpeng/pna/discrete_bar_graph.py new file mode 100644 index 0000000..8ea6134 --- /dev/null +++ b/bpeng/pna/discrete_bar_graph.py @@ -0,0 +1,35 @@ +from pptx.dml.color import RGBColor + +def create_graph_factory(name_in_ppt, num_colored, total, horizontal=True, blank_color=(255,255,255), fill_color=(0,255,0)): + """ + Search for a table containing a cell at (0,0) with text string name_in_ppt, and create a "graph" + by coloring in a dynamic number of cells. + + name_in_ppt - a text identifier that we can use to find the table that we want to use as a "graph" + num_colored - number of boxes to color in with fill_color + total - total number of cells (rows or cols) in the (1-D) table + horizontal - True (unless you want the table to be vertical, which I haven't actually coded yet) + blank_color - the color that all of total cells should be initially filled in (default white) + fill_color - the color that the num_colored / total cells should be colored (default green) + """ + def graph_factory(slide): + for shape in slide.shapes: + if shape is None: + continue + if shape.has_table: + if shape.table.cell(0,0).text.find('___' + name_in_ppt + '___') != -1: + print("found table graph") + if horizontal: + row = shape.table.rows[0] + i = 0 + for cell in row.cells: + cell.text = '' + #cell.fill.solid() + cell.fill.fore_color.rgb = RGBColor(fill_color[0], fill_color[1], fill_color[2]) + i += 1 + if i > num_colored: + cell.fill.fore_color.rgb = RGBColor(blank_color[0], blank_color[1], blank_color[2]) + print("ayy") + else: + print("vertical not programmed yet sorry") + return graph_factory \ No newline at end of file diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index 86bf24b..acd037b 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -103,9 +103,16 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, ]) # Fill in scores using graph_factory - graph_factory1 = create_graph_factory('OPIMP', 3, 5) + graph_factory1 = create_graph_factory('OPIMP', scores['operation_improvement'], 5) + graph_factory2 = create_graph_factory('UTSAV', scores['utility_savings'], 5) + graph_factory3 = create_graph_factory('RLVNC', scores['relevance_now'], 5) + graph_factory4 = create_graph_factory('AVFIN', scores['financing_availability'], 5) + graph_slide = pna_generator.templateSlideNumber(4) graph_slide.add_function(graph_factory1) + graph_slide.add_function(graph_factory2) + graph_slide.add_function(graph_factory3) + graph_slide.add_function(graph_factory4) # Populate cost estimates slide cost_slide = pna_generator.templateSlideNumber(5) diff --git a/dev-templates/ashp.pptx b/dev-templates/ashp.pptx index ad6e928d29f2d7c67ac2b92840d205b8c91e8eab..19d143168fe4c76d7e591dbb8eae600e4c395974 100644 GIT binary patch delta 4899 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 diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index 3b555e5..fc08879 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -20,7 +20,10 @@ def test(): 'ashp_low': 24000, } scores = { - + 'operation_improvement': 1, + 'utility_savings': 4, + 'relevance_now': 3, + 'financing_availability': 2, } contact_info = { 'name': 'Gavin Gratson', -- GitLab From a81018e15e5493b41c2e28c3e08fac2264190a1a Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 17:32:35 -0400 Subject: [PATCH 15/18] added last substitution (forgot by accident) now ready for PPTX Pull Request --- bpeng/pna/pna.py | 3 +++ tests/pna/test_basic.py | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bpeng/pna/pna.py b/bpeng/pna/pna.py index acd037b..dfc0982 100644 --- a/bpeng/pna/pna.py +++ b/bpeng/pna/pna.py @@ -103,12 +103,15 @@ def generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, ]) # Fill in scores using graph_factory + addr_sub_2a = Substitution('ADDRESS', addr) graph_factory1 = create_graph_factory('OPIMP', scores['operation_improvement'], 5) graph_factory2 = create_graph_factory('UTSAV', scores['utility_savings'], 5) graph_factory3 = create_graph_factory('RLVNC', scores['relevance_now'], 5) graph_factory4 = create_graph_factory('AVFIN', scores['financing_availability'], 5) graph_slide = pna_generator.templateSlideNumber(4) + + graph_slide.add_substitutions([addr_sub_2a]) graph_slide.add_function(graph_factory1) graph_slide.add_function(graph_factory2) graph_slide.add_function(graph_factory3) diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index fc08879..03bd4a5 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -30,4 +30,9 @@ def test(): 'email': 'gavin@blocpower.io', 'phone': '555-555-5555', } - print(generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, external=False).name) + external_user = False + + result_ppt_file = generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, external=external_user) + result_ppt_path = result_ppt_file.name + + print(result_ppt_path) -- GitLab From 527ea6994fab400cacb02e2157046a8b259ad429 Mon Sep 17 00:00:00 2001 From: john525 Date: Thu, 8 Aug 2019 17:42:57 -0400 Subject: [PATCH 16/18] clean up test() function for readability, and add a hint of blue to graph color style --- bpeng/pna/discrete_bar_graph.py | 2 +- tests/pna/test_basic.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bpeng/pna/discrete_bar_graph.py b/bpeng/pna/discrete_bar_graph.py index 8ea6134..883a7fb 100644 --- a/bpeng/pna/discrete_bar_graph.py +++ b/bpeng/pna/discrete_bar_graph.py @@ -1,6 +1,6 @@ from pptx.dml.color import RGBColor -def create_graph_factory(name_in_ppt, num_colored, total, horizontal=True, blank_color=(255,255,255), fill_color=(0,255,0)): +def create_graph_factory(name_in_ppt, num_colored, total, horizontal=True, blank_color=(255,255,255), fill_color=(0,255,50)): """ Search for a table containing a cell at (0,0) with text string name_in_ppt, and create a "graph" by coloring in a dynamic number of cells. diff --git a/tests/pna/test_basic.py b/tests/pna/test_basic.py index 03bd4a5..f5c7e44 100644 --- a/tests/pna/test_basic.py +++ b/tests/pna/test_basic.py @@ -34,5 +34,6 @@ def test(): result_ppt_file = generate_ashp_pna(building_info, hvac, cost_estimates, scores, contact_info, external=external_user) result_ppt_path = result_ppt_file.name + result_ppt_file.close() print(result_ppt_path) -- GitLab From 5002d2f5061347b692ca38295a59ae8ceb0107f4 Mon Sep 17 00:00:00 2001 From: john525 Date: Fri, 9 Aug 2019 14:30:10 -0400 Subject: [PATCH 17/18] remove constants --- bpeng/pna/constants.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 bpeng/pna/constants.py diff --git a/bpeng/pna/constants.py b/bpeng/pna/constants.py deleted file mode 100644 index 946a218..0000000 --- a/bpeng/pna/constants.py +++ /dev/null @@ -1 +0,0 @@ -ASHP='ASHP' \ No newline at end of file -- GitLab From e72bfa0d15afc20bf462bb6ef4ac390fb8d7fc78 Mon Sep 17 00:00:00 2001 From: Jose Contreras Date: Fri, 9 Aug 2019 14:32:40 -0400 Subject: [PATCH 18/18] Add newline characters. --- bpeng/pna/discrete_bar_graph.py | 2 +- bpeng/pna/field_format.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bpeng/pna/discrete_bar_graph.py b/bpeng/pna/discrete_bar_graph.py index 883a7fb..413d1a1 100644 --- a/bpeng/pna/discrete_bar_graph.py +++ b/bpeng/pna/discrete_bar_graph.py @@ -32,4 +32,4 @@ def create_graph_factory(name_in_ppt, num_colored, total, horizontal=True, blank print("ayy") else: print("vertical not programmed yet sorry") - return graph_factory \ No newline at end of file + return graph_factory diff --git a/bpeng/pna/field_format.py b/bpeng/pna/field_format.py index 3a02344..375df1f 100644 --- a/bpeng/pna/field_format.py +++ b/bpeng/pna/field_format.py @@ -13,4 +13,4 @@ def format_bool(val): return 'No' def format_date(val): - return val.strftime("%d/%m/%Y") \ No newline at end of file + return val.strftime("%d/%m/%Y") -- GitLab