From 32c566705ac0210cdd6af241ee9fe9421418d6a5 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Thu, 2 Jun 2022 22:22:10 +0300 Subject: [PATCH] Change `golang_read_writes` map type from `BPF_RINGBUF` to `BPF_PERF_OUTPUT` --- tap/tlstapper/bpf/golang_uprobes.c | 48 +++++++++++++++++++---------- tap/tlstapper/bpf/include/maps.h | 8 +---- tap/tlstapper/tls_poller.go | 26 ++++++++-------- tap/tlstapper/tlstapper_bpfeb.go | 3 ++ tap/tlstapper/tlstapper_bpfeb.o | Bin 131800 -> 119336 bytes tap/tlstapper/tlstapper_bpfel.go | 3 ++ tap/tlstapper/tlstapper_bpfel.o | Bin 131800 -> 119336 bytes 7 files changed, 52 insertions(+), 36 deletions(-) diff --git a/tap/tlstapper/bpf/golang_uprobes.c b/tap/tlstapper/bpf/golang_uprobes.c index 59a821faa..7bc6f0cba 100644 --- a/tap/tlstapper/bpf/golang_uprobes.c +++ b/tap/tlstapper/bpf/golang_uprobes.c @@ -11,15 +11,22 @@ Copyright (C) UP9 Inc. #include "include/logger_messages.h" +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __uint(max_entries, 1); + __type(key, int); + __type(value, struct golang_read_write); +} golang_heap SEC(".maps"); + SEC("uprobe/golang_crypto_tls_write") static __always_inline int golang_crypto_tls_write_uprobe(struct pt_regs *ctx) { __u64 pid_tgid = bpf_get_current_pid_tgid(); - if (!should_tap(pid_tgid >> 32)) { + __u64 pid = pid_tgid >> 32; + if (!should_tap(pid)) { return 0; } void* stack_addr = (void*)ctx->rsp; - __u64 pid = pid_tgid >> 32; __u32 key_dial; // Address at ctx->rsp + 0x20 is common between golang_crypto_tls_write_uprobe and golang_net_http_dialconn_uprobe __u32 status = bpf_probe_read(&key_dial, sizeof(key_dial), stack_addr + 0x20); @@ -36,10 +43,14 @@ static __always_inline int golang_crypto_tls_write_uprobe(struct pt_regs *ctx) { } struct golang_read_write *b = NULL; - b = bpf_ringbuf_reserve(&golang_read_writes, sizeof(struct golang_read_write), 0); + int zero = 0; + + b = bpf_map_lookup_elem(&golang_heap, &zero); + if (!b) { - return 0; - } + log_error(ctx, LOG_ERROR_ALLOCATING_CHUNK, pid, 0l, 0l); + return 0; + } b->pid = pid; b->fd = s->fd; @@ -52,11 +63,10 @@ static __always_inline int golang_crypto_tls_write_uprobe(struct pt_regs *ctx) { status = bpf_probe_read(&b->data, CHUNK_SIZE, (void*)ctx->rbx); if (status < 0) { log_error(ctx, LOG_ERROR_GOLANG_WRITE_READING_DATA, pid_tgid, status, 0l); - bpf_ringbuf_discard(b, BPF_RB_FORCE_WAKEUP); return 0; } - bpf_ringbuf_submit(b, 0); + bpf_perf_event_output(ctx, &golang_read_writes, BPF_F_CURRENT_CPU, b, sizeof(struct golang_read_write)); return 0; } @@ -64,7 +74,8 @@ static __always_inline int golang_crypto_tls_write_uprobe(struct pt_regs *ctx) { SEC("uprobe/golang_crypto_tls_read") static __always_inline int golang_crypto_tls_read_uprobe(struct pt_regs *ctx) { __u64 pid_tgid = bpf_get_current_pid_tgid(); - if (!should_tap(pid_tgid >> 32)) { + __u64 pid = pid_tgid >> 32; + if (!should_tap(pid)) { return 0; } @@ -78,12 +89,16 @@ static __always_inline int golang_crypto_tls_read_uprobe(struct pt_regs *ctx) { } struct golang_read_write *b = NULL; - b = bpf_ringbuf_reserve(&golang_read_writes, sizeof(struct golang_read_write), 0); - if (!b) { - return 0; - } + int zero = 0; - b->pid = pid_tgid >> 32; + b = bpf_map_lookup_elem(&golang_heap, &zero); + + if (!b) { + log_error(ctx, LOG_ERROR_ALLOCATING_CHUNK, pid, 0l, 0l); + return 0; + } + + b->pid = pid; // ctx->rsi is common between golang_crypto_tls_write_uprobe and golang_crypto_tls_read_uprobe b->conn_addr = ctx->rsi; // go.itab.*net.TCPConn,net.Conn address b->is_request = false; @@ -93,22 +108,21 @@ static __always_inline int golang_crypto_tls_read_uprobe(struct pt_regs *ctx) { status = bpf_probe_read(&b->data, CHUNK_SIZE, (void*)(data_p)); if (status < 0) { log_error(ctx, LOG_ERROR_GOLANG_READ_READING_DATA, pid_tgid, status, 0l); - bpf_ringbuf_discard(b, BPF_RB_FORCE_WAKEUP); return 0; } - bpf_ringbuf_submit(b, 0); + bpf_perf_event_output(ctx, &golang_read_writes, BPF_F_CURRENT_CPU, b, sizeof(struct golang_read_write)); return 0; } SEC("uprobe/golang_net_socket") static __always_inline int golang_net_socket_uprobe(struct pt_regs *ctx) { __u64 pid_tgid = bpf_get_current_pid_tgid(); - if (!should_tap(pid_tgid >> 32)) { + __u64 pid = pid_tgid >> 32; + if (!should_tap(pid)) { return 0; } - __u64 pid = pid_tgid >> 32; // ctx->r14 is common between golang_net_socket_uprobe and golang_net_http_dialconn_uprobe __u64 key_socket = (pid << 32) + ctx->r14; struct golang_socket *s = bpf_map_lookup_elem(&golang_dial_to_socket, &key_socket); diff --git a/tap/tlstapper/bpf/include/maps.h b/tap/tlstapper/bpf/include/maps.h index 1367e7080..7968d4817 100644 --- a/tap/tlstapper/bpf/include/maps.h +++ b/tap/tlstapper/bpf/include/maps.h @@ -95,12 +95,6 @@ const struct sys_close *unused2 __attribute__((unused)); #define BPF_LRU_HASH(_name, _key_type, _value_type) \ BPF_MAP(_name, BPF_MAP_TYPE_LRU_HASH, _key_type, _value_type, MAX_ENTRIES_LRU_HASH) -#define BPF_RINGBUF(_name) \ - struct { \ - __uint(type, BPF_MAP_TYPE_RINGBUF); \ - __uint(max_entries, MAX_ENTRIES_RINGBUFF); \ - } _name SEC(".maps"); \ - BPF_HASH(pids_map, __u32, __u32); BPF_LRU_HASH(ssl_write_context, __u64, struct ssl_info); BPF_LRU_HASH(ssl_read_context, __u64, struct ssl_info); @@ -110,7 +104,7 @@ BPF_PERF_OUTPUT(log_buffer); BPF_LRU_HASH(golang_dial_to_socket, __u64, struct golang_socket); BPF_LRU_HASH(golang_socket_to_write, __u64, struct golang_socket); -BPF_RINGBUF(golang_read_writes); +BPF_PERF_OUTPUT(golang_read_writes); BPF_PERF_OUTPUT(sys_closes); #endif /* __MAPS__ */ diff --git a/tap/tlstapper/tls_poller.go b/tap/tlstapper/tls_poller.go index 05473f875..5149df5c1 100644 --- a/tap/tlstapper/tls_poller.go +++ b/tap/tlstapper/tls_poller.go @@ -16,7 +16,6 @@ import ( "strings" "github.com/cilium/ebpf/perf" - "github.com/cilium/ebpf/ringbuf" "github.com/go-errors/errors" "github.com/hashicorp/golang-lru/simplelru" "github.com/up9inc/mizu/logger" @@ -36,7 +35,7 @@ type tlsPoller struct { closedReaders chan string reqResMatcher api.RequestResponseMatcher chunksReader *perf.Reader - golangReader *ringbuf.Reader + golangReader *perf.Reader golangReadWriteMap *orderedmap.OrderedMap sysCloses *perf.Reader extension *api.Extension @@ -76,7 +75,7 @@ func (p *tlsPoller) init(bpfObjects *tlsTapperObjects, bufferSize int) error { return errors.Wrap(err, 0) } - p.golangReader, err = ringbuf.NewReader(bpfObjects.GolangReadWrites) + p.golangReader, err = perf.NewReader(bpfObjects.GolangReadWrites, bufferSize) if err != nil { return errors.Wrap(err, 0) @@ -123,7 +122,7 @@ func (p *tlsPoller) pollGolang(emitter api.Emitter, options *api.TrafficFilterin go p.pollSysClose(p.sysCloses) } -func (p *tlsPoller) pollGolangReadWrite(rd *ringbuf.Reader, emitter api.Emitter, options *api.TrafficFilteringOptions, +func (p *tlsPoller) pollGolangReadWrite(rd *perf.Reader, emitter api.Emitter, options *api.TrafficFilteringOptions, streamsMap api.TcpStreamMap) { nativeEndian := p.getByteOrder() // tlsTapperGolangReadWrite is generated by bpf2go. @@ -131,17 +130,20 @@ func (p *tlsPoller) pollGolangReadWrite(rd *ringbuf.Reader, emitter api.Emitter, for { record, err := rd.Read() if err != nil { - if errors.Is(err, ringbuf.ErrClosed) { - log.Println("received signal, exiting..") + if errors.Is(err, perf.ErrClosed) { return } - log.Printf("reading from reader: %s", err) + logger.Log.Errorf("reading from Golang tls reader: %s", err) + continue + } + + if record.LostSamples != 0 { + logger.Log.Infof("Golang perf event ring buffer full, dropped %d samples", record.LostSamples) continue } - // Parse the ringbuf event entry into a tlsTapperGolangReadWrite structure. if err := binary.Read(bytes.NewBuffer(record.RawSample), nativeEndian, &b); err != nil { - log.Printf("parsing ringbuf event: %s", err) + logger.Log.Errorf("parsing Golang perf event: %s", err) continue } @@ -212,17 +214,17 @@ func (p *tlsPoller) pollSysClose(rd *perf.Reader) { if errors.Is(err, perf.ErrClosed) { return } - log.Printf("reading from perf event reader: %s", err) + logger.Log.Errorf("reading from sys_close tls reader: %s", err) continue } if record.LostSamples != 0 { - log.Printf("perf event ring buffer full, dropped %d samples", record.LostSamples) + logger.Log.Info("sys_close perf event ring buffer full, dropped %d samples", record.LostSamples) continue } if err := binary.Read(bytes.NewBuffer(record.RawSample), nativeEndian, &b); err != nil { - log.Printf("parsing perf event: %s", err) + logger.Log.Errorf("parsing sys_close perf event: %s", err) continue } diff --git a/tap/tlstapper/tlstapper_bpfeb.go b/tap/tlstapper/tlstapper_bpfeb.go index ff61a8d51..9622b3284 100644 --- a/tap/tlstapper/tlstapper_bpfeb.go +++ b/tap/tlstapper/tlstapper_bpfeb.go @@ -109,6 +109,7 @@ type tlsTapperMapSpecs struct { ConnectSyscallInfo *ebpf.MapSpec `ebpf:"connect_syscall_info"` FileDescriptorToIpv4 *ebpf.MapSpec `ebpf:"file_descriptor_to_ipv4"` GolangDialToSocket *ebpf.MapSpec `ebpf:"golang_dial_to_socket"` + GolangHeap *ebpf.MapSpec `ebpf:"golang_heap"` GolangReadWrites *ebpf.MapSpec `ebpf:"golang_read_writes"` GolangSocketToWrite *ebpf.MapSpec `ebpf:"golang_socket_to_write"` Heap *ebpf.MapSpec `ebpf:"heap"` @@ -143,6 +144,7 @@ type tlsTapperMaps struct { ConnectSyscallInfo *ebpf.Map `ebpf:"connect_syscall_info"` FileDescriptorToIpv4 *ebpf.Map `ebpf:"file_descriptor_to_ipv4"` GolangDialToSocket *ebpf.Map `ebpf:"golang_dial_to_socket"` + GolangHeap *ebpf.Map `ebpf:"golang_heap"` GolangReadWrites *ebpf.Map `ebpf:"golang_read_writes"` GolangSocketToWrite *ebpf.Map `ebpf:"golang_socket_to_write"` Heap *ebpf.Map `ebpf:"heap"` @@ -160,6 +162,7 @@ func (m *tlsTapperMaps) Close() error { m.ConnectSyscallInfo, m.FileDescriptorToIpv4, m.GolangDialToSocket, + m.GolangHeap, m.GolangReadWrites, m.GolangSocketToWrite, m.Heap, diff --git a/tap/tlstapper/tlstapper_bpfeb.o b/tap/tlstapper/tlstapper_bpfeb.o index 1a5eaef314773fc7c16820a1326481a3e8964b04..119665920b45fd21ba89d08d54478d2ec7cd7737 100644 GIT binary patch literal 119336 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 O@!3k#$4zXHjsFFGLK9>F diff --git a/tap/tlstapper/tlstapper_bpfel.go b/tap/tlstapper/tlstapper_bpfel.go index f98174e49..0c8313b51 100644 --- a/tap/tlstapper/tlstapper_bpfel.go +++ b/tap/tlstapper/tlstapper_bpfel.go @@ -109,6 +109,7 @@ type tlsTapperMapSpecs struct { ConnectSyscallInfo *ebpf.MapSpec `ebpf:"connect_syscall_info"` FileDescriptorToIpv4 *ebpf.MapSpec `ebpf:"file_descriptor_to_ipv4"` GolangDialToSocket *ebpf.MapSpec `ebpf:"golang_dial_to_socket"` + GolangHeap *ebpf.MapSpec `ebpf:"golang_heap"` GolangReadWrites *ebpf.MapSpec `ebpf:"golang_read_writes"` GolangSocketToWrite *ebpf.MapSpec `ebpf:"golang_socket_to_write"` Heap *ebpf.MapSpec `ebpf:"heap"` @@ -143,6 +144,7 @@ type tlsTapperMaps struct { ConnectSyscallInfo *ebpf.Map `ebpf:"connect_syscall_info"` FileDescriptorToIpv4 *ebpf.Map `ebpf:"file_descriptor_to_ipv4"` GolangDialToSocket *ebpf.Map `ebpf:"golang_dial_to_socket"` + GolangHeap *ebpf.Map `ebpf:"golang_heap"` GolangReadWrites *ebpf.Map `ebpf:"golang_read_writes"` GolangSocketToWrite *ebpf.Map `ebpf:"golang_socket_to_write"` Heap *ebpf.Map `ebpf:"heap"` @@ -160,6 +162,7 @@ func (m *tlsTapperMaps) Close() error { m.ConnectSyscallInfo, m.FileDescriptorToIpv4, m.GolangDialToSocket, + m.GolangHeap, m.GolangReadWrites, m.GolangSocketToWrite, m.Heap, diff --git a/tap/tlstapper/tlstapper_bpfel.o b/tap/tlstapper/tlstapper_bpfel.o index 2c2aff6d2abb2b72ff4028e8289ec26c408c452a..45e501e12f62aeb37d5b802e9f6a706f2ba39fb0 100644 GIT binary patch literal 119336 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 ${db9fTQSFyc zU76SA)_1*qJFoa%;^6zWveWL;?>}n2H{CdH)yJpCajQN)HI7^LeKd{ZR_i%6Zg1T+ zKs3DhdmK6E_XGc3@78R&_ogqT-!|W8*}CnOxjyuw^{e&Xw7b7< zy`L|=2G6CiU;KQ(FZip>pAy}$x)Qn-wEq~ z?o;l1VC!&Gw-p?R?`PsO4o$!JC;7;$Hs|y`=|?wi1)b;jNuFAC>B@JOC2MIJ56Q4{ZBbQ@uZSzIyxRp6JmI z{ceN^17>Pl#icW~ZAookpQ)h!(oRhkv4{$a=NyKguf@7CX^=<*G6w%_mL80f;{8O+)Ktg{F7yP{_Yx*gl^X3F(nabeN9#i2km@@o1#q zKk>;#Q%~!7`LvFgI{t_HC!Y|w^y6g`smi`Zzi(+>j$-3(~K3~%$FaAD-eNXsFM2m53)$%s= z-{3kUclai^OaFVeULmgZ>&=T9r&G}JaGYLt{-yKpC!tT$UZzhr->T`4_Je_^y?#wS z?e!?^KTwaRd0VX?-h{+qrnX&XJ>z~F=$TyaT6z{m=ldSYYI-)c>Eg!Gt$~FF!jl;3yv;BVlX8k6- zACc=zIDWc%%a4!1g#AXC$5H!UxXIyS>MyrCrstP#-u{Czj@I_;HGS{r`>)s16<+?| zOL^t!^=kER>Gj2b$ErR)`FU$N9xTcD)GwpY>d#Z*!0;M;ZTDc=rLPuaRg<8`FJKSt@L{64(Nc}mwoxPON8 z?+aPK*cx5@^+eW5FTFfl^KEJ8OL0B9_Oi6k>emy|H|dYklHbqkiHuv9UO#^@t|$G^ z`ElgYHQ#HvPS`jmUH_O9~;z<{^mT%~0Wm_#hsfUzVbk6EwZZ19N zA)c4kta&JPIFgCmSp4LeOzcj^Bcn3$6Bn5n4vn3NW#TwA7Vne^W%R3mvBr&fQjQ{S zwdDANAMvF^E!W04m6D?aIU{!+awKs`=aO3HaL9x~q*%hCrcI=DgNHS89{Z%k#jPXC zKhZ)-FUA35;XEN*y|EN-h$CfE)8;%pw8`D#J{*X*Rvv~uh;z9^5%Z%sP|*NG3zYxF#c^VjKl4(B)Oc?sulu<)>N)$=6mH|lu~ z_U(FJg1uMIr4!t#=SiI3t>-zM->c^(obR{rsK`MJkMlzo9_Meh@Hl^)g-0X5)57EY zJr*A4gBBj=!xkP2^El37-1EVtJ9V-Yb&h@4^UiuMq#g zp@GFeUctW?9YOqGzk>g?`ro{Q{|oAW%L@JvqqLHK_X_^MtNynI{t#=e{+pz8A^r|$ zxwM>)nS3_;S;FRBEBJrJKV06NSi%1{MCpI6o+9Az?Lb(mrC~RFmiZ;5!gj@|W>RP1_-y`~o(BtyZ_+ zL>Oypi5sTf3;s0xC2i3OHEnOjN!v{?t!}O^NLWmm=V5Rc(uUjSBhJ_TYm;YyJ?P9Y zr9LU7@m8cEX&=LR0i9pkN3KI~i_qnr`4rscJjU^F^gN04^*F>mgQKMGIh=n1=P=hC z$3IEuE5v_B{I|r{{D?%a$G?I2R^oe!j}xCH9wYuR@vnGZBW3UKRgm&P)K~?>u@1*t z9G}p5kKtUxs%aatvnblMseayevVOj480Vite8gKTX^B3WK7R)8ZBZoCk;u)IVaGUL zjYCX~K| z^I-b;J5mSJ>FDI>NdM`R>9L{y!L&@5hobDM!RW+bG%$Mlbh>|Va4b4C4)6D!85*C6 zMutvD1K9UB*gw&aCesh$aK$(%y*zP-U?8C7a$DU~Hu`G^B zobSewh{o=Y#(JW$ez;(t+1MbC@l&u*MWbV!r;Z&xaIm`;V@E7r zx5aRL%YMjH3V5K8*w&_sIR%-9$dAPvE!Ma13P-yCfm zpBOtcFd?a>Pn|w78s8@WQxjtv?}`3wdSrC;@iW=<(8$me-NGjZcf_}x8eA^6OXA*m z>c^4tsS|N`EwOv!Baa?F>`J!L$q2VynuU{yQ?%||B>awe{M1uJqbItlXxpWNu56OC zOI{MW>E1Zu(?!B3)9!Yz8$#a^A3pj}`rxr+M~|hC9o+xGp(78aA9>_(`u?Lwjvwqh zj>J$6gx(P!J$C4!Lr0wFqfXce^T0u5(x^{J9qP1Ey3pBOBSY^W8bJjlkHZJwcJQ#z z2?g{1{bMKhz+0@)ZMS!WB5JrNpw0a!htdP1gG2BO5n)(TxI;}NW3=JunThO~3181! zq~4|jqB0Mr?|<~zv4cmBr|(Zainek^VzEjj&2GC0RGO<%p3*_%C&o{{>pdvh>knSU zo%8FF-bPWoiLw5Hp>%c(n)!G)lByK~=V(vlS8K~|3IF)SsV9bC^qEN4LlK#nO_8jy!lY{nq_`>Ep)_r;qGEa@47Ti=nsi(0zA5FV%Ai zjh+$xciKH*=go2!B|nqJST@w8^rHDrM@7#2kG#Vbe?`4ZJ$n53%6gX=L2T)G7@ll+ zz$uRq%Z&uJ7}ld!Q2d7uu26sk1`n5ila9&wbn(4$MG;(h*E@Fbcth{2_oThP*X&g- zbxnB!Bip_4&fTjB;H`%qc|=;^!9#}+rXM)?$o$w|;_mx< zA3gH0n-;{k#nRK9!z1a`!DH#8__zP~p`%B(uhIku9)0jZgg<`tX!^jRhrHzL*_ay2 zwd<*&u~7&#fik*Qz_|rY>y?md+tF>@dsiTNH1q6 z2K7RFVo=lzF_x|4iBls(>A|7#0ZcO{M#s__W@MWLV1^4;s+1!M;AEsNc#T6hvdR@;Lvf2 zxB4ad!3Wa&A9&!{!ABkmuE>65a+f5{Sy~f{+NhDIyy|HXH(^A*osGPG_dsX$Gf4Qn z_0W;-q0@u7thg{N1DU+KOQ9wh#I#c+>w1Zd5j*cQSLxh3XVIuWDVc{!H{qZWp3fPSqfrC)Y09wQ^Wj_7|1@!6=w+%1nOQS*3W`OcD|8)Fu?cq|&ZcE~zsZ zTI!do^Q0~_?*2jPniAjLOQeS;!=lyPmb=uMrgz?7o``RgXcI%HEn5^e z$hx8Emca_bsmH6Qg?pmL8b}SrX}Joh-$j;RVm&6qeLYt%NSAX%1Vdu=>_-RnVCxP7TEAbpObc{b$E9yp5bXJ%sUbB3>aSz0a{3 zzTT9@x5@PrrIcGXKcw2NiVkNh-Ni@*cMX(|J@B|2wh%?Hi%1oHbv*m#NWvjujLA~w zGvk_UFiOhknjSpWk8Yqn+8i)628q8hPE77eV2INsaj#_o(7j{T$L~+wkJXADaxN#a zEg!g|;u2R|z(6v%4<4$euagI-I0KV4XDo5lG8{bRombQ(lw2+YJL38*sy0>gWqwR% zi>@r^xkzZ+yH4(!9WAiTP2OWQg>BTWdOW#Y{P;2>fD5tO03d-PspMC;CUm>&+gvFPdEx>hx$Vt}<0~P4%Lh zyIaeRLTYnDCDXp!>sUx*Z{7a_q+Snv!2_!dRyyqPNab~N_dZi^w?5P`0!hITj9E!#b%*&Bjg zpsF;)xiF16Ul%o@);g&6Tq1Le}*a;$=%*m$ko>5Vaw`3N-^%C|E3=Cx__W26q9>hJ>lYjC!uPN9nGSI|=!D`gqhv5Oo`Nu7d z*et1_cr{u1;X!5+QcheE&{#X~GnVBU^!r^}2lG~hFDN;ZwB;6Cnz>%91;SLFQpK+t~!V(m-Z;<#TVQjWHc4r zT_OC6rR%N1qP;3!tq-~hr54hZR7xtdA=6pR1rMd(w$H7K;?d#}xiz+Hwyho8y03Uq zp5AL$ZS}U6H+xtytnWxU{Djxf%7cY)@9YLAS>4{dXS?2X4^1G_c}Dm1E@GoY`7(tQ zmRdN$j-z6|5dvOC49)}+}c>gLRl;v3y znhYiCxU$T`K#il5Ms1K-5PEfitu{Paft!SMVS`h%P+s)tWF?Vix`5%yf?s68ZE$KX zcrZH2C?mzNkw>;pG!He)baofXO~hB8@?TW%v|{Q6u|80rkex|s8Q=Z(B!4P>z&&V^ zJxJs7JTQ2a0ExNHKYSw)tuXjR4NqNglV*D-Y-y(PhS6O8;zjKS-<<2qYvb;^?dN0B z@|Q=qcS;7Iuys)$?1M^=oEpFuprLvq(Js^z8;aE3fxM6q>&C7Ju!BvG3G9NK)17G8 zG#C9T4mdj_n@Rr}z!-Zdqkpxo&NqU;gWYfDe-rpo>|!&11Ni3y#vZq*({Cuo88(RH zczeLx!T&knH-figgR!Nz6MP#s6dT_T{$H?x*myVi53pg_crW;u{U%+UMbVpZe9&*8 zb$lQG-|siQIzE8^5BW`~jvvDRlHWM$_+k9N?WTJAN5SuXeVrcx%jWw~hKu0u;aIoB z%Tnqn=3^-2??^#E+wNZUFkTOqG=%>@99Ms!&Amio+yU-Ze^}1Q=4tVNU0W3W&@*k3 zY!DTG2YAa&Ta;Bk172Tfi>8(TIry4lTQsZu74U|+wy3E5XW%`bZF8HZd$5i2Fpg_J z5JhG93ytR)e+K8uH)AK{`j27rw(=d| zjsjkKP@Vv{e-i0|CB0u2|9KP=f5xu|cLe-8a2)UkaE~&I<&1nDO5*<|(!1s_+oFte zJ9PcJMaYl*rP1qGH(tWs{1i|DDa$swm~a>#=vKZ`%3{&R>UdSrTOauB@? z%a=!7tKWLmub_Mbc0^x|LX?zU{13H9^UD43-#y(PEr7%FE-HUU;(sKHs>&l$9`p;* z)381r)UI9Hu9m*&sf4%s^eJ0?CN=yQkl$4^?NKh^^3jFW*SbH?1@lC#>my*88 zx1?bC%2xj+W$R}%7(aU8X8mjqEcN{k%Db_IYl-qT9T-=>wI-?rydGRtz6Jj4{{|7! zPb58SzfR>G++>`U@kjiv{M}&5ZvgQVP`)1ZH+l3bTm4eXbCMqFH?3^-D}W`vPe^$- zV_Z|V_;bp?4gXD0-m>yHBz$*Uv;YpvUsbm9N6^!-{GG~{ewVV9FQshd%P5=tvtTK& znMvjUit=3D+ZN@NH{eaZYwu}`^2$F9-jZyK3ISgYo>jgR{?|N!`YRs-Uw^nQnhSU{ zctJS>|7~Bzbui!zY1ReEyzmwFU0?EqNq3E&ESmk ze!RW#I$U&z1HK8I4ftB{G{r9{JNe>*Py~nVS5mh2TTnLrt7!bQ$baA3HPNE_oBk~+ zTl>hwN7A?U?NPS&?FEZ`K7;hGnOhU30^R`bQ?~SmmA`@T*J5%zsr=u;*LSap@)UkX z`F6}ZpltG*#Jxx;uL3xfS4G+6 zRSj6=wWMtFO5k2a;+wpZ$|kQ~Ws_G*+2oZ|w)zy5OC1PlB|Vc@kFv=tsciD9D4TxCo7SPcdX-IHeF2NSGRh{e8D*2#tg^|gsBH3@Q#N^3 zm90JQOd%rIbxx8D&dTG$!lKO z(l0BUygG1iF6o=RI+aacMP-xM0yvace7$FrS0Z4MSC6vEE30h!l~Xo(O)Hzc^2#Q! zlCssOqHOZ2fRZ1P%AHhEQ*Ov+2l3d)hMr7a44^;vdK%{=of!skynSZ$*Wh{Qm_65mXxvdODg+2qv+4&@{-CW-N&VKN zeg)K3>f2hM^6SX0^{K}3UB>ku9AdZDr(XH%Q??%EM>4Ee>Uxl^PuY5utxwIUzpYQ% zdX%uNPuY5utxtvPQL;W&()hAoCF@g_VEySzT%VfN^(8ld!3AMX*OLxI|K+*Vyt2)Y zWIamyhs}>Z9Z94w)te4!pnM;)X(OVwjO2j>D2Wjt8bUG$*Wu0=hi%H)w#f17{Dm`98J?S7?K*Ndhw&y@A4X=RXp^~_pGwX$JV24{%z||CeI}e zZ}O5avxq!QUfs&I`Y4;cE_Qut67fU*npU>-ZN19mHLw0AFI%rNd1Z0k59P({Q;YDI z`k1_IJ<9Yg!g`PRo4k6IO+;7ykcdO zSGTgs%hsz*UcKsX^0M_Slh?HRn||e$O}`RYUkddrqw7s3uUTc&uepGwKiYbg>DQ9_ zn|^g*{YUC+`qimy`qiau`qis!^~orkyt3d>zjDeZFI&GddD(iE$*ZX0Eqz?i z-{iHVZ1S3+^{EoAPj%?}kjYDau~6!7{n6I1OkREJZ}J*eHhJ0lmC0*T{Y_r8%2uCw zWs}zeIF#3-vdPQVuS{OHUS;y?qV*|TzcP9C(fU+|)~Do4SCYSt_uaaFWcrm=HhJX& z7X7mIE0b4A{Y_rBUS;yCsK3c;QQ73xh4mn54>LW=Ca+#yFS7pFr)=`F^(&K?tyh`6 zrZv2!Z|hekuX*)1{VFS)er0KWDo^WE3$#A97_i98)~`%n39JW6eNA3TWs{e!Uzxm8 z>TmLzR<`;SlucemaHwA;Ws{e!UzxmYy~^ZO)$o?StzVhE60|;*r1dG;OSWAjOFe%B z9Bp1J(>7Oc;q_pM$+4|Z#R1Fysf02tXL|5o(zE?jeag0fYEs$uPvw%h6BXL3s_o1XP5o1QHyTfdBSy~g%W$-Wdx zUs(1}bp|Z^r@8}{{ZqL0aN$u*XJns>#J|w}Q+W+<`=^S^uKd_PHK%OrNhNS7KUoJ5 zHu>2;6_ekh`kVZgD7^@AL;1Fn#O9yhYkbjL6|u;kd4sKWOVy zQor@6UjcQM`nJ}mTI*9=bNIly_7mv`V&;^^Zmmzf^4F)bx<2Gv5BuwsZGFntt89JB z)~jrNs-WR*eahCWY<ygWueE=w@w#s7Rd!u(?Vs}3SDSxd?D|w||5T%X z*?N@eS6SDaYV$_r+PqQO#>3YBDKAfxm#sgUyfU5M-{du{Y}fySvdyz+m2IBg+CSyx zXYy+8pYrlB{c7!>^763p%hsc;Kic|}$*Z-0s!?9H9%b^f^(T|pOWi*u?=pt#Q$GgA zM)=zLl<<0R7o6q3xwSs!_fNIfr@TJcdRIjE%{|I?-RxDi>*k^|uTPo2$vd^-`qa0D zd+U1ngSI{;^;?hnwbrK^ub;ARD&vmq1CjRwZQa!78=a(QF<8R4-tY6{RO|gduMgj^ z_xo%;3Zs`ZwjO2cQ??#u>r<`$Q@*|AeL;CYu(f~6%fp^`w)RhHf5yHkd0(=%f6B|l zo~O6=PkDLRevQlheqU?Z#Ov4DO5U|AzMj6>c7 zSWvcgzC~qQ=c|IHye}aBp-%#Ek1O$QUA0pgKF)M0+kJ9M+2q`(Z0j+@U`gN1r1J4j zloy4cCjY$h3GpwX9h7H;QMnShp?=D>`YBuemXs}j+3zLst^7U8R{maPD}Nt2EPn^$ z3jZ3)v-#`z#+mXQxU&L%3HU0otQ$!9FT($|5Pm}WI_wvI)nEFunEw{|C)NLr;$KDF zfH#9v$_Kf$oL)eQrj@^q_}lj3dnU?GPjdL42e=1yv3^igHa#gRo1T=FVL4;{W)5k{ew|L$ zBhwRz#-(q1Qc||@w*r>(Iz4#?-+xhddVqzbs`3WxqkdHZ_Zxx#7FlRgy>oi-NyuCI z^$5Rtc8%MYDCvv;X83ohe=q#sT!j1sz6qQN_!@9h*|qyTzK^2p+P%ESeM|5bm4)Q< zACPYJb!vB1vK!9gzwvr}Z|}SK4ne?g1SbQ&8QdH2Rp35lSk7edU()MAdN)D{lge&< zTkF5q7q)8w{=(L-*3Q$}hlw$3A>-FW_6j!vS9fo>bQAM0w?X*nfUK z2D6g#N5LEMT_-fHtDp6Q1!a@hqO!@Ws%+ywn!v@k{6r5!`6ZQ2eko;>Uj{7gX{H0R z7Iu1u!19ese0I_qasPk8(Yx{8LRi9Xd_f{z%Kkcxc2IsZ_PIZt^ZS^?d`u6;|9beF z-u*22hX>ngdgt1426ET*J_G-)pM>0%&3{JO>G@~CIYP-vaIc$I7sr>BfHv{|&_dp&R^lM%d}i z&3-;1?DPggZqS<~zK5pqyYXJd?g#vQqCt-E7p}=sxh6;DnjDpDas*5Mmi|l98_bWS z|4VwJN1MP6dIL7S`3cmgZ zT6-$j+EcmKp5QRO)%3SZ^})sgh}z|6*ALMLNzci39=d{Z-i18Gi2I*`qbkYuZ%D4- zSi{3|#^iY855q6^~DF)XDKM%6mHsR}8ofjH!+DFTj62 z3Oi4Xsf6?YUHD)3A>0=!e;s__8Dx&SN`B@q^G9LvZ-c+wPYZX)=-=r7A{*fhp7U*+ zg?yFY0{?9V$XD6d#@|0%_!!|cLHrJIR@w5ORDKWA>-ZGDBc|-+_d9q`U->uTpFk%l zf~8D{aa{8O=)JOyv-8T}>6&18qN-~WR7XuuuU`}wwn{|LgrdI!E6uKsR(!+l9I;7+jhJ2$@d`0ubw zd^f&<`!u|p7v1CM-{SACZ{V!@!*XUC|D8Ybzxn|`{}y)j#P>Xk>i_rf-;?t5?@;dZ z@E5MhS-B=><(ix+y(RUp$$1UQS=r=VQMU1K2`uGx{id(YeJlSCq$x(+f9mx($x%Ce zh}r=hYj{}BbmPCo|KAY*rn!1MxbY92&)VUdH$X19uMoM1auGQTn;de=CWky&(zp0C z>Thx=E1SM8D4QIr8viizzk0#nFH3qq4{odY`(a@he-Y(XIelKr`d@Yey7nMtS|s_zwAZ@!jNr*Mp17Zv5zMck6?a zo*Um{|DAAQ^G~2H%)br(eadcp>uzrtpSJC5ck6o+eh2d3wxhi^URimiUBzFti>7mCiY$n5UT!jAJVBU$3eT#bs@(<0gx^%8?3ct>|U*i^= z!tf8cbl^_ury&G%(Wp%B-*YqOYn#%!!=(dv3jcPO&b3YHeAt!ex~PoK5Srh>M_ll^ z=q9;kv57+5rL%T@qhXfXfLvy3LC&_(OKDy?UHH>fwJ{>m?tn z3(c3cJo3@H(EP2Y!{c63%OfAH3(dE+{Jy`|eNJe;(=?9#w&u&@-q*B!<)d(+dArMR zT_l?qLvvX3m5;iG=A)YaB8_{`Yx?q0wa_HhoyWa@s&eLWuTAA6oBKlZimvCmeS^{T<>OzWxl85TLF3pC z%~v+7g=S34KTGajKh{NEG+w<%)0dBEh32I77jpko>yPCAq}Hp8#=U>%>V-(ozn;TB zm;QS9P^s>Un{Agq{?T>kwd$TA_gh_k*Eh}cf7|7|p=sRvHCNvaP4m5Px$D7j&`JViUlKip`&-Xs4>GOQAr0Mgx_a;rB$Gu;1_1(}k?(Nicc-)hZM7r`gdC0jp zFE~Bf&@}G-xeK=;;`!bOHGIVqP`gjl=lR~RYI%6Rw@vHC^Sytp_2T*77qmP)-}@^~ zhsV7hEf3H4zNzKs`QCdqU!L!|AEiS(^0@aUZC{@69o6>b`Q8JXFVFX$)_U=L@6(z- z&-Z%NoyWbOP&xCs_Z_Vl&-Z>-)8X;0OWk?C7i&3r-1BnW5b=EPoYt4;d-rL1c)sWF z_cla4-;m*;ywrse1P-h#CkjaS#IJJ0vhDrcVW{h`*2=X;|n zPoD2R=kybWb^i6vbc;*BqiNieMI9{JG>vv<|F~Ih)%x;$@9&(RY-}3${?y5BW7B-^aSdOQY6M0;h9dRi`Q9&Td3e6JMeD`$z4vRq zc)s_0S{|P7$w#CmUmo`oS{|P7eND^H^S!rezC7RixaP~_-siP_dA|3MwlB~3?$LaC zzV|^*pXYnOuIcl9PadvFeRoO!a%TdA@h6y7PSR2F;h}dyi@PdA{ebiyNEfdmA);p6|U~ zWa&nEq9+{F|EAZ&NP)O>U7q4F3km zvn_IsV3y3Y44%op3D`pt;7^B0|a{idc%!%O7$h;F)FisDX_&zgG> zS>42H=fS@g-c>pX=}+4uC+ub1o$!`%cfwxA-8JSi?sfTup6!7=8{O;jX>_m4v(cSy z?$ooLJA2K&GmKt4Z;z<+*1}Wgs=3omQ_Y=jg5dspXu|7ik7?_d=bwh(bi%`_TyuXvno7doL+YXcA|FouGpzv>V<=+~8 zgxvpEO(#}&v*m}?CEq~`|D3w3bFKWp0QW6{{#y(ETd4S!P@i4@jG|8?0ZG4`(tirP z#Xb7=9)7(qiuSv7>iR#e>q7@!_`2Sj`}bUV>iw&r;o*$*>;1yqWjxpt_ERnAFC)B^ z)7sDM9+ytN-&r}wR6f50e=!#ROUQByQZln31%df(m#<07Z>ALYhg|ss{X{r1^007= zeCbOKp5Hq2pi8H|h+*!(=JKuUzaJm5;nt;ZrNgF1t?vsE<#o|t``bUHY$L^MR&Y;f zIixy2gnu1!0wdNI{F~PD35!1lH)qV>+TZ*O-n$mRJBTmoRftQJUZ1Lnr9T(&b#V0S zp!M=~s47VK&G^@$6}I?ERV`zihY4@Ozk*&;%zsvgKJ)L;rZWFdZ6fo}YSWwlq^gMd zFKE-5e??Wo{FAy9&is3INHG7RuB(`TvC9kC{JX+_0mn?hQopc$UkyHA`-=bh+E@Gw zKKt)m`*u?M_EP(%^in5Pk^0Z9(!NW2Nt5uRpLSnv@%yNKhpBx_)V_9~Yw^3OeeL;! z`Oi@M&QSYCL3>L1dIOgF$v7rP(v$w#DJL*uNqCzl3A_GH{jJr1MOt-vz0&$`*uK*L z&ey)Kf1js)Tm2U=@4dqM?~GSJ*I%V=W9g_cV!8es@HIH^pzCKoXzy#`KkQ=r_!7Pn zup2*u_!2%7_+Je!2h90P`8tF6;$I2EOZ*HDF=B~-IKGJfEjZu0e_s&Z`3KDLW&Ao{ zeCJQ`!~Sz4{4zoQ8<$BhEU)+%g7B_9LHf==VDX;}+C%0eHg%R$@t+RTyGk78P>bs; z{sre-msfWX-uVYC@e7o{f6iZz9|gC9q92 z1T6I*30SUIlL1S4KNPU&Pd;GLw~qxZ`Z^o1wCC>xEbUPWSmd)qn$ zmQ8hk8L;Szq+w3~Ik z;X0-8Ecwq7&lB5yl$2TGFOvTfv5kKgzDvg=W4qrl?jiqP;y&VG;z{CZ;u+#u;yL1Z z;sxSG;w9p6zoW=2T)z_T*8X3sKXET{AMr4;jc1nLH2KdE&l1lO&l4{YFA^^i+kLu~ zC)WF3Vd=kqJz2!)8Nt`0i5NC;V#ChTZagn%0Tqdp%SBYy2Sg5dT z{|>3SH^MP-f;dT>BF+$JiF3qx;sSAzxI|ngt`Jv=@d&AAT>Xh-;smj+e@P+|-|x5f zNeX8ue3m#zoF^_27l}*6W#S5Pl{lQQy7~w6JK>l(L7XJE^&ydft3UZ?iF3r^{8Zu> z$iGNjA}$kGh^xfmBN|u#`Xew`{+QT5Czjgj^^g4hbM3l+hWxX{IpREVfw)LqA}$kG zh^xfWW?xpTPbYCqoFGmTr-(DeS>haVp143aXkZ zHXg*p3F0KN{HTl>NiRce&vPV<_~*z!Ph21_5|@a}#1-Nyaq!5|>woBF+$JiF3qx;sSAzxI|ng zt`Jv=qu>#;t3Po}oFGmTr-(DeS>haVp143 zI{C<%8R1^ya37WU50n2S@ig%a@htHi@jUSY@gngOvHXa(87Z&)h_)GFd%h@c!ad~Q zODsRKZN}A~c#?RUc!qeEc#e3Uc!7A4c!{{<)mB2NsgdxV#4&NW|5(B&$v;J$AN^;v8|FxIkPaE)kcBE5ub|+wUN)?&`1m9gJgQ`B8T>5!)8Nt`0i5NC;V#ChTZagn%0Tqdp% zSBaw=thQQz;+Qx=oFq;WXNa@JIpREVfw)LqA}$kGh^xere6&lAYk%UHI6<5wP7!B_ zv&1>#JaK`zNL(T=6IY0<#1TH?WyaN?I3`XICy7(U8R9H)jyO+TATAP@h|9zk;wmw| z&|5RE{=_kHf;dT>BF+$JiF3qx;sSAzxI|ngt`Jv=qqtUmKmHNN#0lagaf&!YoF&c? z=ZOo%MdA{1nYcn+C5~>2YR0ucaZH>bP7s6U0g46mf<)OPnLl6Bme!#3kY~afP@_9KC_+PaG2`h?B%A;tX+?I7gf(E)W-q zOT=a33UQShaVp143!~GCE||lRDa@b;vV8&;!MEbLDE^`9C4nwKwKm)5toT8#8u+x zwt9V~e4WHGae_EWoFdK;XNhyfdEx?bk+?)$Caw@yiK91C{fT4Z1aXo$MVukd66c8X z#0BCaaf!H0Tp_L!hZ}TV`|oI!M@*a`P7z!ciMUK$A+8cfyQu!eF>!)8Nt`0i5NC;V#ChTZagn%0 zTqdp%SBazBss6+?Km^eY4Bu)`$h_l2w;yiJIxJX#JaK`zNL(T=6IY0<#L?cy`gRh>#0lagaf&!Y zoF&c?=ZOo%MdA{1nYcn+C64w{{fT4Z1aXo$MVukd66c8X#0BCaaf!H0Tp_L!M|V*D ziDTjfagsPioFUE<=ZN#f1>z!ciMUK$A+8cfcT)X{W8wsHk~l@2AhaVp143#0lagaf*02;QxWFCW)tsXNYHs z=ZNQt7l;>$mxw#wRIk63uZy^wxQDoxxQ}?4c#?RUc!qeEc#e3Uc!7A4c!{{<%~XHl zZsH!|UgAFDVd6>RY2q2;S>ie3dEy1)MdI)U-0!05o%hu1FB}smh?B%A;tX+?I7gf( zE)W-qOT=a33UQSBF+$JiF3qx;sSAzxI|ngt`Jv=qx-1-#4&M# zI7yr$&JbsbbHsV#0&$VJL|i7W5Lbz#w^03wW8wsHk~l@2AhaVp143}l z;v8|FxIkPaE)kcBE5ude=s>Od?pp?(#4&M#I7yr$&JbsbbHsV#0&$VJL|i7W5Lbz# z`>FoKF>!)8Nt`0i5NC;V#ChTZagn%0Tqdp%SBawssQ$z;ae_EWoFdK;XNhyfdEx?b zk+?)$Caw@yiKBy5f8v-pL7XH`5od_A#5v+Tae=rSS@EXXkk9e4Pl6abU zhIp2Ej(DDUfq0R4iMZo!_4-TsyNJ7qdx(39`-q2$CyA$tXNYHs=ZNQt7l;>$mxw#w zPW315Chj5bCGI00Ce8)i26^X+3&cg@5^B5{ehOk5$Z5=ZZ#`V+^*3F0Jiia0}@CC(A&i3`MY0n7J+=ZP1H7m1gMJKkBZ zzogeioCsLHKb#~^5od_A#5v+Tae=row{<$Lrq#IwY6#Ph@p#EZmB#2x)n%}D-T#NEU_#J$9Q#KXjs z#M8tx#IwY6#Ph@p#EZmB#2t^-svo)f6L%B$5cd-I5f2kj5>FG)5YH0N5ziAZ5HAuh z5qAtw{fWDYdx(39`-q2$CyA$tXNYHs=ZNQtztR5n_OG@7VSAt@eN2 zUTpt#`=7P{m-hds{ZHG!-Ttli#rFTJ{hRFz?fC>p+_~^jnLlcp@44&#ANl%QLt3;U?>qj9*Po18)UCS{pC#cV<2`SO(p#h)v ziUCpRv3kfS`m^Jfoh!1d$#^7b4vdVB4~<6y!)H!EKAwK;%!w02W6{XyNjn`M9z8QM zn4aj*M%hz?<7uR2NevI-T#Hi^*s0SeMpvl!@WezmE!CAc(XNq^_dk*D9~>MTKXtOP z?U#u^Fm^TzAx(^odo^%D&R>03Nh_bPIZNw6QL;m0y9T0N z;}c^O{g1&u`-HQ{MhE*R`dzltL88M44)mn&x?Ai!)!wJ}9<_VYcdEa)_bKmDyC;2z z`g?ny@*cJCPWMRiyZ5QR*V{emyPf-;YVT8fkJ`vq{k@HB9V1(3BU|hEooS^d3@GONG0QD*h`HkwQQ zy^Y3Fe{bKFzQebQv-W!0?JcO9bA_ro8>;4PsG75(YU=N8sG9nF8)Z{}Z=-DL?`@P# z{k@H{slT^H)hvKN5mmDwI5}}@WGFp2G(IqP3IptzjF6|Y@85U+(Lt_5{zAD*KzALo zkkH(_)B8kJXc4jQ^cLDf2))$Xd%ca`;+zxShURJ{Z$on(Lvx)C%~gMILvz*N+jpn; zy5!V`U>%x$m*+dxS#5}0LP2|7V6%5CC%g>>bpB94XF~xsnzvD1_4hU^s{Y@%m&j1LX&k^B)(th>B*r?>9#7UGECUT>j0xdM9&O6U+u=xivVv!R5}h7zj3 zx1ogU?`_CP{k;vTsK2+NWVui+Q z*(k62_o%dp76vD~ z{1r|ve7ko!cL+Wq6+%UvjfyxM6>&CnTK&C^im1Q0p;+qgZ77!ddmDFpzjJQ2;QU_=kLBbyd9RNV{tlYBaQs~>#Lw;b@mH(AEb}jyf2`}FtL2|vA%1tp z=f7J0uU(=2ick6Y;qS(Y3)lbH3i6-+$3DLOF0!ZQ_+Nv^a`o@}NgtyN>4%2%{}LiE z7eDbKA8Q!(3k}DgSfTtgKkZ|MzZ)nn9DmOW^2>hs!s7qR3h{eC;^RyEhKBS1_Zyb4 z|D47TfA>++;rJh2A%6a6e6Fcg`rqCanOg|H8lUbwm+Bumoz??m*fBL zCNIA|VWK$yWsSd++%3M@f1%~4V9^&e{?8>EeJq~2egP-!CVubwq7Sh!;BEWQVZVm_ zS#}b(=XM`*;dMUdURWJ)GWmCT=jaJU-l*rH)%mcGpH#;iU`sw0zf;{mxI+At#xH1r zCBC!~$Nxn*E|-5*fABS_`AB?eOOF4WE5uK{)n^>$ziyfMTi~`_{^cXh^_MvU=YQJ@ z@jH(;=Z~SHDZXq=SuX!#syTnjoAV!8A%0ckhxM0yIQ~^Dv|s+1&p(AYVnqJvDoyc^ ztRVl2#y9ns_*X3x|0{4?uKt~mG}nLgGV#BNV9Ui%Y5W**#7O>Ej^wRLj*rI_~8cBaRq}FJmdk|Ctry#~MF_ zIASEe^c9XT!_0E|=a$L;Rm;SeXO+vvFD#S)^~=Qn_6qG6J?iUUMI13w{%tt8{J#&k z)GAzjc%K}opy6?)o$9I_LFXvZrV<} z*}Ljqw%p%y&hyNi`Hf`D!KSdC*B+hsd;Xv2Jm=4Q-t)fi4;?soPurR`ksWKI{~p!J zY@=xAztwG%&N>Tk=MP0n5H<>-HSsVUy2v&P%*!dZM4{}z-@lCXHsWSqC?3*Ly%yw0CYo)~l|lF!TW zo4RDyrT+xZWBmFrDK_P&c-H**a$0^K)O@UqE=6p}kCwZCTcs)9%30!l(3K{N)rL*X~h3L>N|$j8DHE; z+;CEAX^Q8f9Cm*evt4x_2lzPwYXef>^dQq}YpohkWR2e19xzU}zTb3WV#L@IJQ z)8~0B(hZNTNFUBFjMzVqNMe|hpEuyQC3-#nM$y>mZ`IO?uNywrziq*>=<7qLjvp64 z1EcZIscq$&{rE_n_4dc(scrK$`xEiNsMwE=jKaQDvmY8CIw|%i;^C30ZF4pI1EZrO z&VT&G=+rjVr)R__a`F^?5_#?fhw_vrA>|OcOg`i5>8+gr9Fp%fz4tE3`DOU+TqC}` zeJGFqZN6SDo~cWGJX25ldVYR`3l>d1>Ggs2=*+X;eFNky_0H}4dEfk8KBa27{->VQ zdVg}s$z!>CmvUbCdf)0YZu&m9?X_9|++RsO`hLpSW4)hhuD`-E^(En&@!#0gPtBYqe-B1CxbUX;bv-40da}765tY91`lS8HlizT9EPCbpk$S(- z*pHNI?Z2@fnXB11_9MPukoMKskIdHmH})f1-_JNPxqd|Id!>G)rbmJQ3H2W%im>1D z{rJ@`;+5nt=^(4o)D0`QYw3|Ld_DYUCy#Z}zpu#!#c=16;l3~D-1$c~UnN-UH_u0Z zWXQVk`TiZv_w&x2ob~N@awz5V`K<4!x2#P#KCuz{g|jErd~oB}UlMtTVJc;$8er0{mazp ztWW1tKA!a3y?MxsC7ODd>P;X|X`d|5Gb(?R>lvLNZ|S(-$N!j*SLWGo!l~$+O!>}e zy4KDg`-Gneeh~ifKkEB&U*1ETefa+Eo=*T{{LY9c99I4q`#T&@K0Dz|k&7Jt+c!B==KUh5Gj}AMv>s6ZJ5aS!Ptvsev>$N&HSBk8{!f1| zKBZknRa{SMJ2`>Mh+*}0HJ_KxS^U4fQGd3y-3bS@M|JPN)$3jV_C|fO@xt2K&Z`>Z zIWy*>iR5}p(wTh5>sw2|imqK>toiQ+*DvjtoPNd7m%Dz#>z52CSg^2uX!ZJams1R< zUx;r-{X+b3j-F7{^wIQa=l-+k8v?fU>@}umVLz6Te(aulKUO~fer)RLjB96G+5&w; zyesM()XC|anx=1O?bi^W>0@2r-U+Qm|5>{ZX^odJ=X!qf7kxdhi@ZQrJ6>A2RgIfT z(YK}lDfQ;Y&C>bnTZ5hq%eYvQ5mJ&VtrMjMBLHuRS&k*0_bH07_ z@6~zQwVk5I(FZZllX*YS(^l25NxV(-HNQ^z>gm^FSI*b&I?Vaa|E-?o`Y)XSPd?-8 zzwb&PpPQ#;M9)52*E1}bzAQaMe3t$N)ia5=rDqrQdf9zhFZ!zYG41|SaGyeMv0SwE_167=H*UE3 zwDcRT`~Q#v_FZ8;U+xn+z#o}+#4x43%KeBfQS1Kyt9gG+>;C_1{Qm!^(8zGu{q+7B zz3#`lHI{s${;j$nz;8>d-3RaY)=_^q?E~1l!ajg^`TOD*?Eb&5hi}<y68%0+CG5ESug)B?bkW`S9(9d z)Vut;lJx7MF=u|t*UJ{&uXwI?z^P!LjMK}Dwcq)*x({H|%kzBKXI8wQ5#Faold<)V zop=3F{eG?N2k^JUqSfE8O}dQQy77wlHRygV-=Cd)*6Wk)2Qay z8$V>f$;-MAtLyZyh<+uou6&o?|Chl>?*E^6zZK{g;#+OMwJQBWeCMlQt^IMXxu0|Y z{`ak4+V8E@k2UO*OUiwV|53khQ9A$o78m+{f5Z5Q{8_)-(zA>6oX9JpXDQLMuh#YK z0^ILEGw$2b%e_C=pl`@$v%a6?{x#kzOn-}V9Vb8M~W{!6v>gU08z=W6zi>k59K zZutBzroAh!Tea@{&p0`n{;l}jY3siKS=T>ndh`rB6CARSzxCX|>>sH*{R+n+xnp?Y z$D!7J|JHqf><2-+lSe*Hzgo}zOK-HAeKW1+{zXnQACx8k)^q%O^HLeFr2z4hF`)(0-` zuwC$FyyrM}5w)KCZ$0-fiXiJv7w3AQrDyUy*Rt=IaQgsS&;5)3z5MHei~ZbxYaf8r z(?x&&zqJp5_LraEec;wU0MSz1Cy>D`IL`gNt$+Sa#z8q+@BjC55PcGn*!NiK@8@s5 z{~yzDx27tRYJPsZ_5Od6i|xZ`J^wG#s2}Ic@%hH^er;#{zCr8xe?NCQ_q^q`{ap!r z-leWrt>^z`A6e`D5*OzA#aC3nWFJ85`G41Oo&S2!Yr7x&zWcA%^Z#y5r*+@okN5KY z$Jy@tzao0(?)$f%|Cbth`S;0USF!(C?)$IwoNw#-|3%l&weI_4j)WG$`+(1T|L^&{ zXTsh0Z$1An9ns70&o0vQ|NeHM+ZQg+``dRo&pa-<#`n~)Sv-c>|FGVl{j%7iJh<;D z&*}2>&#&Blw2!)c)bG=M*xkRI{M3xkANIS)I18UE{tEId_h;lfPx2||)M@`bt-T*L zERWpxI^(`*A4O^XE@Iy^Uvd43ttU?1P;eZ6A717WVLV92r6>0n&***s2RG`zOxcW& zW9s3Gi)ZR#dw+Mm-;$(j&&Of;Ck8*E=G1Bbye5Ay)1Hq%|LcL95IgP*Km6K!Kft=^ zjV}N89ciuyssF85?{e=Efltu`St2*R-?G8K_oH845R0Sl^P(k?|LeUu`H4ZtcAszT z9r_)m*ZXz3$xrzGGySheA~+^Lfld%d|Ld=I=H#ckoN42-%sZtCN__I&OVdkpclK}+ z`%jBM{N$)TzfAAHw{kpzm%YdE*RRj>hWc4Oi+-;D{`ZSbdjH~C;;p|w{-~jnBC4FEc%!dfJa8lj>fV z&va8en-;k~>!Nkv%grw%FMbb+z3=)71dH+8qWPWD@7>qF&m722R)$P&7yf(JULjuV z`;b=KA6q-Hal8NYtF1lvpti&Id{0xqoI)QQ_RGu7r}|HOy|;Oi>3LJXK=Z2SwLSNr z_U&Zqw6=#n?{LL6E_=22F@^ob1#J)9p9Jke_BXfMgP-@yxVGH&faH>&G8l^Fh}RLVY{i__QT@zY8C>6VXqRR}7c%`dem{Tkubg$!EM=_`N<7 z4*&lFz9-Y|@-_CPjc>8z$v!_1vhj`O5{^r*+?a>T5w?F}9-r(x0VaoVKi#>?FPBu- zE-&2p{=dffw9<7#s~w6K)~_d4(+;tu@Q=D3o~!(=c6k2pt*eiN=XX85`s;LmT@?1y zOUqm@$aVD^{OZ@~mx03h;H7>(SnL0*{<`Ej=gqBe%60nrTu;gPC+W((>b2WX-RcBT zpD)~^a`NMc&3`BRV&`vao1fQ)^&#_#aNL}c`NFEl&FwB;9ye>>0o3o(hVOH`1R+}E z>(#J>z*;z1{2jPdUhUcm zCWkU3<$1NOgRZ9hGOlge;NM?w?Z~c2o7R_>DZi{3UikL(dRJasUy^l__`2a^{o58? zzbp0F_}oCbWXC?5!=<#@J+kDObL_FZGx<^MwVPC4*U(ENkPCl#s-7~H@ZoTv= z>EBRq*8hvy_l&>pe{jvxOH!XE|1n)pn6mftp3b>^Pd+>2%rn2B@uI)XNk96SXNh0p zvGw9m@8RvG$uIlsExWH{*EJ_Z&Io7gu7|Gi@l9=;@acWov)uoZ_l1V>ip!ZX@7{cU z^G814+P+M$Ob%!JUZ{-37hb=9+vSJX-_}L{!k3foE4=!z7w&L^ulIkqx&F__QG2iR z)RSIsrk?ccRFi#;<8)tN?BeOyaoY4^O4oC_KMBX})vUvAiOzq#miw|7zW!U+x5Z`J zuZ@SRpI=v+`UQDk3HJ*YZ+(9K4>w-R9k2_pPv;)5rF}?$Cz|&UIbO@SaN*1Uzs7jo z_lzH}A6)Z48^&Q9CuDq-75RH%$`O7yM&xSyBF^ZzY2#^q9QEV3ji(Z?L^Y=0Sy*md zmvQ#{9@n4o{k-L)d0fvnwcqSA?RVvI-OtBt-WZPS>rk#&eq8@QRv6d6>g+|qs^}&Ico4@d4NlsbMOJ$L{|6W2W@HJ0Z8H8X&cO=dLF}+do*I7#P1_| zo`Kn~=Q)_edR~AzqUR-;r|{c?Uj@I9<0taWAVZ&oiK9d6VcMNWH5u!wK!;o-Kdo+3 z2GL4ATrp&Cg4C0gLyrb~ahUZEmrIKfJUu?e_lLr0%~5kH~ww#PK4| z-{jq#a>;oTzxFn7pTl{Fo|kaGNzWzGPCZZJ{A%-$bJ;B>@suQP^AGc_dY**&Ha*Y5 zyk5^sFmKRv(Y{@Jp2YbcJ-m)DFW}!~{aaq{7}oV#p~!H?Cogbm}q4}1#l68HV$=#RDs zV9sCj^2+AQf{5h^(|jNJj}bTQHXU-V?oZoc7=Qn^msg(mBaW-kAxPXuaDMzcUj}JP zu(L5f8ilq$4za(CJ zy(CvpZyWJ-#J3T@-}4&DE5=AMcejxe(2Jp4`{fDaBiM(+BSecdR%fGCu#WG zAZ-Zar;U-~Zex6m^T*)F`j;u3pMYHkKbtG$aQ+$fQ^2{6{Uw~AhCL3;uVhV*wjpoI z-%B3GpFI2_pY7to(iX?3VUOX)^|&anJCN1r^?Dw|Ecmd_PruqrJhQOJT*}#hK9ImFKoxHEtLgTeWSgY%CB=N}Eu)4_QrIFH6BvjfqieG}<{ljEa917p$9 z$?+(izVqOeXjofsMJJ9#2KI?#74Et6$kEb2RUY;<63EIQUV z-iNeK-Lxkl>oaLY~V(uJ+^C53J}+QcDeXtxNVQ8qK%GjQ1_#K+4%MtQKTR3%ch4%Mjknp zO%DtYJlb`=#3i;nVmaOZ?r7uC@wm%JE5WY0J$~T9g9qd5ua9r2+unYAyt|%Ed}4Uy zp}yhN&@rTvKop$#z0Q4jauu1VMI~7o9T-0~da_=KT0G08Y;AZd;$)`UT>mP+0l`Q25zid_-Y)<4xAJ_?>x4vKYDxwqPr_~ zPx}7U;X`*F=&FU-5sMS5actO5{Z-ly(VzI_sYk6AZr&R^@k=G27#L6YpBf#7rl(P< zY0=XztJ-Sc)A1Z~c4V^qb65k+yQ{$s6)S9T$@ng^%uQnXo zMR9vP^>J0HT4Y|KT#6f=1aTFrNjQ1Ame+N?_}>wa4Lvz9a=eQo-!8>>d6QB(jg?5C z6$u|NB0iCJSGQfLk{$8EL-(c+96o&LaQg6pJMX^lfqTm4>w7-qglT7X!9(a6U7zL0t4j%ZxfrCCJWX!ww zjh@&8XE8#%-QEt0s{S5DPtkW`Al*N5YyfT{!VgOd7wl;yj2a#}HJ&{+?#p?-l-o2! z6zZPz{s#{qKJdWN^#0U?s4JHx7OMo(M7(jCU5iVyN2CVsx$oeC^xX%J>_2>8>gb`vzV+9I;G0ugDx+UU zdTm&~s->fFLx5{0=z;wR^#Pe1AZMwg=wI$Vl0Lj&LODO0$(?u9luR-!L#kI%xQB6| z3-jgR_8!!Qi|MXOOiXHRNV>`NIGRzH8!xuI#uB6{S@Frl_0THAxvXAdYv5}0G+M)<`3v!fh+(#RX zttu9soz|47(HhF+APlKU76X}-M8_3=Fi??e;0??`(8!TV(3x$C~8 z5^iO!uzum5yVG~xefQx5M~(y|vhSH(V-IQ*irT1=LtgdNi<^(5+|ESWzImXr`UyH* z-gn;vT>~eNVOVi~SOzj-cSE5@7=*M_MC)3K^btGnFk5NdI%mMO6cPyNY%B9V+b53!vc_sqdsZA(?DW{E9E~-=L zTIxg9Sz?#@c%QpIk?`)~Dm^d}X02wo+)!tZmak>9s5Om=u@_Z(JibAKjSrlZ9>KD0 zF-478uURjbItp3Kay>3wBsP{nN+?##N8#MgGyf9fL(<*XQ}u#$DL2V}<-}{DBqF`c z?H`>)r;>&uY2o};iPgypzH~mUuJsEUG^X*P{y3fP8-Aj1atz(u@X*Nt^pE553Nh(b zkj?P*k}bYL#!uuj#^JkEyO7cDY^7@)2_Wq5 zb)Xi%PCJ|~^-t8S``u!UPw?1~w_Z`XkaHP8cEt7hS8bB#qj*T>nJzCFUQDiIryhEA zXuRtoFCrCP(A1rr&(+e!QzSWCb&C$7Jx7DaTxi8IOM%mv)oF9`*xZ<)@P-;X-Zwl}ucELnP(@PtCr4tjl?j;>>x$VtTh(-FrjbJxKGY}eTdnqZ)Wg=@ zS0VDc=T&!~(wk_n!5xj)quqN=72PV3W_z_AjdXz0&3OOX&v?*U5*6L$+a;PIPIjnx zmq|{#i7DsoLbkWQ8hH=3d3e3IgSW;WHVEX)zD!Tg3jo$r`LeCp zvqA!BeD#$9$*=2X{U~B9Re^F0j*n+uUR}4eY}=G-Z}7HCRcQ#bI*mD7`>YAtTBunx zx6wWOtc&IfvoNLw!Qi@*$j_o`#u$7WBwnE{f~Td;LOh^J;HnDv?{^%8p>NbEBp)CMQ8gblQaLzPjJq`fsCG z>pvT9r6jev(MDPoJ=cQm^?vq?DJWD-ZYw})e(m<$*Jfv5F8$DvG_Le;WiOXi`Hpg{Y`wIb48?rk`CA)Bb>Q4ci>$8@| z%d1e0=3>>TpW^8%_{MWoUvpkAdi^!zuP*cc;gK;cr8iWdvpYuxdOz;kjUsEVz*-u$ z3Y1RHEz0j|RC}>M+tt4$R7v4gv+vb)imwA% zkZnvQ#0Ty^N+xVs^ce10+nt#2KjXIE*pzWMLihzo*II)$cU8Pv8+0>8&7>)*|oijwj=p)`Ev`;4eQw6 z+I3ETzrc3i?4Ya&be7)ztZUF{P(DxLjQ1>>WB0yWXVzO&Sm68I0y|gtWEpM} z(&{>=W}$rFy_4lcs%aJ7lX*YSj9cf_objM{l3qr#VLgxRd}!`!mTBxRkei6FJmo*H z)@j+)31YpYJ}#T4($c^Com2i)+JL)H6k!3t?K^Ty@(uGwU8JvHrbH`rK2gI>6I`U( z)(2a2X}n-GTe@<0gS4M~Maz$cxD@m~O<0vk9J{sB!$bYp%rjtd*VivyAUAD_>g!Jt zR+gglT_YpI^;Dx>5DNAZX+#d>;fq)|uicHEdGfn98%2YUc}v-hH-{gr-SGze9mh^R zW9&VRer0`~WAGZkaT{mY?2g}u1HKmg#elJQFM7S-h>f!-l1+X0skv(v^L%g?)RIUaTZ1I#;?b3Ja+sZ{N3m`>pI?#zn5VL zyoK)pf5vaPb?yi8w|Y(8T{c%<`}R5?1P&m;A*)T50599nx_(dF12z)=yWl-9v_)CCzX!WtkKlLt$51}yG4N%m)M@1(5&m=(%_#p2cuNkOX2D^6 zMRh+T{-27XMdf#5r}6qPLdTVF19udlC&-JWKLuX<9O45@eE(G3=i4F_p~i0mqX;#A zBe)#!2JoUX#O4o_Q{wxti0|_6wnd%Fm!Pk?5}spn?^b>X+%Nkce1O@0Ni-pRd@7mFu*1G;f!rRe}ldv5@l^t6<>J3=hQ6^w%M-$4{ zj;#NHwL7d`S^qK%TS?E_(OkgNj!Iz3pKC|RZ&?|JI~MR)++91`u{NqIyLPj8ZM3BP zpQT=*1RbiU)-I%-iJYw-6UtVPNwCCk;d|8G>e1Sj)#J4KcbUVVB*IE~sh{OBkfAUTY2We zk{^p-+L^dpc{)fhyTIcAcah$uGtifS*MlKa=l%mp>FHcEG`F;}q*H2@- zRkr%us{G4vzw9{-$;vK2U%~hb7WtX{yOpiHJ<3*JDP=2vM%mIERJQskC|mhwm93xX zLH{S|TR%Gpmh!B@(~lcVQIu8Q0>1LwYodI>>%j%(op4|Oy){u0Eb&?Wm6WYKWo66% zf`)$>;S)=1qD6H#c`PYg`Q!;4iQmfCt!(8>fhGU{O!9*#Dl^I!eo*<>;C@Nm7Uh)x zO#FAXMbqFg{{>~se^J@;UsAUC=ansg@>Gn(XZhqb4Uez8Ms&ZcDP@DH_ES^0$+Ww&9z%ePk0k}THQ~8w|x`ic)&5Z z5O4>$sBHP2Q~n&nzwuj9R8jtq;Pu}|`%(T|asOTvEd{&@+=+G}`RTzEHg7~{D{px> zz6KlzdluMDPhxM0Lw)&e^w))F!_#D#T+rB26QFqh7S!FA4QQ7Ku zQQ7Ku2`u^lb;Ni196EE$~SM4`d<^J zl#hVd_pXVuDA6&%W^sBGn(Q#N^(l}%n1Wy}AfvdJSxy-55fk1l1?_jzUO zZ>nIC&nJ=pHVl3Vl-uMb@=FFR@)JD~cax9QoA94X`7!wBl}(;A$|kRZvdL>+xmF%! zlb1YgAIhs!+2plV+2oZ_HhCqLE&d*5lUGjJXD$qzZ1U;`hw|!CHhHC#O*0jdBu2JgoHPFbt{{^lFBBp9%Yl)gtC=q zM%m;w3l8Nqr)=^nDVw|&lucfX$`*fB+2qxQwJ(X^I8@Kij_@XUCJh}q_W8?rEKx{ zDx19W$|kQFWs_Go7C1$*UN!$ZJm7Qpv)ZB;gT zrIf8agUTka32-Q{X=RgFUfJX|t8DU`Q?~d^$|kQRWs_G2UbGO(L)L=#X<)Ix5*&TI zzK$Wh9*l0(g>&l~A8V}-#=6en);X{U(5>8BA5>-1>->Lg>x0%_Wqr`r1FimSJw`VYwmxX0_cbS! zZGI~2fij=9{zKLSWnO9Pg9UZB`K_%7TK&wayUky#$~J!u*8^pJs}t*I62HvnW&UpK zffk>w2iknSTm9SoKBa8_dzEcIpHa5?e2)AVlx;q5>wzYp65K@|R^EAKlh=Z>$;;LQ zEk9LtH+k54pvfaa>w{%lA6%mK!ERljv+JK!z#_k1Ws{Gs2io|czUzZsy1r-f>Q=V+ZN1RsH9_lxwq9u0i!sK1sUN#u043VOu(aj$?II}gBe|~GyTdcn||4Pq3PGOx|_Ugz0l-U zP@t15_&1?^}Wj09>euQX^&ZT zH~pGbHhI~4p~k{w6P3FAU{n>xCw-q`I5DdX-IHwq9uQ zXVu;GYgXCxtEg=HmBRX-q;KtULf89DUZr3?P}*a-UMTWfp!LB{tha^w)un9mN+_GW zx|K~{gUVK(X=Rg_tQUsznpHM=6_rh1^U5YKTQ9WuE9!3Y+Dhw#F|7}lXnn9k>w{go zUT6B%9k9qNsciZ+p=|nxH4bY`xIrwN>3sUI}HB zm#r6C{5|S!^2#ZjeoZTzesy6zPtrI2>e2N*)33a;$*T~s$ZJ;Fo%FEUZOvaQAM8?=eMGWb(e- z{8@ZZT^HW!y{cTRcV%lQw$I7hNfB{Le71j3_B9#H{=rhfvVU+PVA(%dRaWsu9p||| zm{k9^e^BHs>AU>DhqPm;>7L{xA zQ?AJmX-RrD`QcphYwbn$REO(>yTDOgZ&$7L!B^M%pw!QL)K6=D(Cf9elh*p6mxuLh zt@T0Q&%IXG2V-5Iv--33LR%lS^+H=8wDm$;A53X@TOYLbLR%lS^+H=84A%==`v>uy zLWkEETOXA5!f>2!?H_FHZ!5YUX!>gFg*Go~?H_EEm#qhyyjuGQy?ko(UR~d_@w~Nv zu(AJX?H>%Tv#|f!)&uRjsz=xF?7FJ8f3Q(rwjOBmn$z_?lUHm1V57WjJ<#M8>-wF^ ztF?cyQC_wlX!4rY^*oc;#oj+C&w_{RgOABN#@_lmhVXiDYkknyTWfs~&ndOm2cwx4 z)(5S<$bHyweekcOUG>!4Rcn3l)wMn-^|K!J(^?;Fy#8vf4|;jn^=E5+(2s+!mGwbe z548HT^*~!6wDmw+AM6R%1LgT*TMxALL0b>B^}%pGP@XT&YIs>MZ0#S!^VGCH*xEnX zxPH^xKj`IQ*FWcazPPo2uu)#E{eylyvi`lbf6&Xr_A9ma4|;jn{;n>p-^o4>+uzmN zKj`IQ`{7#q2faL6`v>)XB-kI0?RoAvg!AM0MYrJ{bTEXU$M1DXythVq5&V|B@tzuG z816{oZ@53OSK0OlW&(bt-Y+Qmm;7!-er3O)@D-hSzvNN86I1yX@cqZ&kKC()`_*ud zvHwoOpN9V!&(+{nEH&N^?hg1J;AFs;f>X+tey{Qii0`dAJg1{9@3+|a>H7NzZQe8k zce(Fw_XTH_?Y^MwCzSl{MELurqo}0rw$5BuMzP$npltW0JJDxK{I*|itFrBvll_F^ zZu{jbU`g+jlHV`lJxADIC;SJ(1?Y?NpMy6QAv5K_19yH6?+FX|QgA|f6ZXHq;RVP~ z`7rpZ5|-8i_swumDG!VLZ{oe30dE3lls_fz^LU?Iz?;BX<)`8Po-*Vg@HOD+fG-Ej z{zEC>AH)B;?_!^zvU`u`l7EM4>?G^`$$hv8?_27CA>mv*>cI0)%B~$@0WqNr!yVoD z8@8jAvbCe$fM2Qi3rhZ7J3@XTI#(X2$8W;^e&uPD_uj5GQH9(W19y4fQ-uE#pVJ$> z56aq+)0-aLzf||%M|_)lvHxA!=|u+bM+$f|*xJ?i;Qy*)cwR%@on8#$eOby^T#fjK z@qAq1z6p?3-Us)0MnZmiub3;Zw2W~`Tk#&@6Ert#=Te4_?_UT!2Mcq zq;eAfmx4P3mhfAZufzQ9t@CxgaQ)#oydFsZWBp+-{0m!uh^lmK{o#Z%vf+-L@)?AY z_p{C^TYpzlw*IaRmhyZY`MK)bcy2}cDezk=D8KT*1Yf;~_ui0uRr$B!zV*A12f0gs zEAf99?mJ#Y`2&6jI1czya6;M2)1!P1o+r6FYIEZ^eZOiX^DYgnB;=mP&5W`*w`Wu$6Gq4m!X%b?o$hlb^4OyB*y)dDZGY z^1G7WKZo+a8S~c$y}uSpp?cx;z8mAPvXgrf?=MyUD}>*Dx1XowJ~YycrS}&9 z1=V{DUh*vpxfGK_%CQqHllTU`|6*P5ot{4jIjDaLCr1LmP|tgmt$$AiEc5Z+faUqe ztg=1-m{W$~j%oar_=iz{@?D97^4Gv`N94tT<@v`su$0F=|A_pSlm}40Epz@lP27d$ zIqU^;uPA>U?(1Ig^KbF*`U@zPe6!;k_>to#oIi+P^l3j%3cGOZzqhPVD>P{$RUKS_I({5idVaOB%9`%y+Y#QvASQs@q4rx)KNy#P1p#fz^o zy+D4;T0R)=Fg^G)ls}IBI3n_J^Ct`vOYkLp%Ue;eJJ8>#oNc~_(tH&fb z4Bw;fHV)*JZ5)_Zwt6gR_;I9v86sOyegWKu$g0XNJd|unxhnb9aUs;ht*RHMhq1Eh zq0EmO@~?Vh@%5;CE&s~3{3~1jXEeNu+pPzRJgk3`^+4fWG3GUcSmz124J_+>;(i?N z>$6zbA(r($asLsxU-@agH(dG4;Jco}x(>O|1@3KduPFZ&{9lgoV^P_?M`{-GRbF=u z)&@}-OUjWR9jI$bU;M}LFW*%#?f~Oa)`t9bDZd@@b$kWuUdm2>7$ka?AA@@W{e1=; z)?ZfH=BE?NR-ZX#tIxc$>0<#b`Lp2e_f%coV)Cpza!#TQ~a+z+dAh-+M~I6n<5VC&;h$8;4Qe*I_+i5qXpH zx$$K$p1TjY6Kws48((CywZ{8*;|sV$+0E~6^Vk0ppS!LB$LenBb(?>rf7#vsdSCpz zdOGN@_l3{EeNPI{>BE1hHxtS=JyEXdiE>R(z+rq)WfxyfPn2tVqHKDSN0B9c8-HfO z5}#}Ly>0H>V0S`ha)|wXZ^sD+sfO_f>lU5r{w;*>05|9n)+rL|4#OSY`1`8WBjnfg zNV8j;hkOd$Oh8)Dd8(;8V)~(8ai}bebSX&z}Og|EV{}}$e1MUF#C|mj|WjDTb<2y^ru6~kh zBN-ng{VT4+_;NSCy95sPX-3(`7a1?a-RjH63)8nbbvJ#R2Z!;O)!p>1L%)+_`nFZs z^v%lMWS)WG+oQjEi5({JqC4qbQ{*5YN)r1b*~R$6inhNLgB+>_a>oD?nY{8|5lgJO;HKu2#+_r{A_X`6btR&>+%Etp(W1yTz)pW zjwE#IcKLxlpF5E}xgX3%xMNZkL}cn)37CoE%_J`T3kn_lli73t{8u*R^Q8^q|H`I(zRtyeWm7)4x%$1*-EfkScF0CgylTmHlx8R9dtLmS-3Jgu z`_H?4Zgvy>(Ei`Ld~R;aXI0~w3q9j}gUjdUrhH!N^10dFzzu_Z&BcFJQ~ZD8;=ig% z4)Vb+SyGx0Bf~!pLhAZx+$N(r}3~H zzN7JQKELPM&(%$G_&2V;+M4peUF|W3Hyp2b<$@)($0?T|#N*^q5Ar(Kj&P&0ZspGQ zJAKBDBeMSiSC4+;6FU8_ix(3((&zoI{bFFFe4bW&`LITKoN)PH8_5SV!sFk#{I89A zvCtnLf8gY~Hku*(;~IaJ?DuQ@vhW@rKdbS}haSS?S2g}5<^KweXDi8hOyen&{nM_# z@PSSjUpI>y%Y{UE{FKVS!&dRtaZ=Nj7m$X>FKW8-;iB-!sQl%Hq~Wn$)6G-5f1`4U zu|Xp|4ygPm$o{jMu6zI}Jd&Djg8G^N-NoPD)ZbpC_T1n8y-OFFrS|@aYhQ@Rm7|{W zlB=)wrvCOiC%5*fRQKx6Zgcr>Z<@dTTNiJ8Q-8bN>G8Uz{`M1UFB^@+zex8U)Ov_&b=Pb8jW9G zoE{#XTHXn=AJzOXy7=lLen;~!FDMU>FKN2+qVn+g6IY&f?gNFPeOAjQFB%Vz*Ev00 z*VNzsvZmWj{p80rUG8r`rt*;&frrP0mRDZ*9UeP1pYx$5&Nr%Faew;}O?QU+&kt+5 z@`CN~_!TV|_qSD*1NXOwRsQm#?C`ivB@_#!{Y_D z=l=G`tlr80W18+D^`FmZy4(-_4ID$_tgl zqg&IBsh{~5F8=lI!|I{`H>f?-O8P9 zaB^GUbiMEvm;d!{AukN_t1jO4ZX;}He~r`64Nd*+gxd4`_CZ&V8=B^~MVJ2#P4nBY zJGpIWn%^GP_<4T2TjS^X?dLRpp5H#J@pFIsM^4Tgn)=%#8V~okr(Jz*XzFkOT=T>I z?He>6p5IP8Id5p{Z-3j> zS7<)x%|cE2u$| z`R%W1xp;otqv`Ve_MfXg_qRWy^5^;OkfzK1>Q8IBJikq;zVZC_DovOB+dok`@cee4 z%Ae=AlbSBiZxfm>&u{;ki@&3(zwJe|wkHTg2naQCFfDTzz#!xw@4* z`;Pi&eT!WFJDU32UvTkuH1)S{aQeBislRm}io>Lf=eGx4J#K88-~NKj58|Qu>Tfu? zZETv~-mmHM{I*Nu=lSiYG=84nKCSU{fBSzqId5$0Z{MZyaDOW=n#b&@slWYCnjh|O zue9z6h*^|uw31NXOgX}UbW-J$XG{Pq(XKlj7GqVnhY zZBodN1#_Vdo(6~g%s`=PbCAGh4G7BMY% ztmQ=#^|Ur}O3@T#t?xXRv3HfQjJ*@yGWJf1ma%u0u#A0OKB42f*X7x0 zPm71@xEA-PmOK1sgqvN~%2$?_Io5LHRX=NMTW%Wzt;M5Ce4IfQUg@@Hco(ao&j7EC zwnSgk02cBSPzAA1k^R3^`+2he*QgTle;e6<4=na}Kf>bgck$FOD($lTh|A}e=yMd$ zKUe?eFIM*-)BGGG|39zxYF(4a)3Dzh=y^#!{42DN&4J$9Jm{Ch<;~KYfNb3EE1I~Y4Kh6Gsxcq42grAi9hc)7_>%ZCmDCDy_Xpff9FTua$ z)ADC#w~MFVzAT@Qt9%M@m&5#TLl!q9COf9J>Ho4z*QAg8osvNu_q+Vp7mbVR|A(C% z>g{4$i@4v#Q*Re$|2NQ|&G=V4RD^GH@mucjz=+zv3r+OO=x<*_Fn5@lMHji8{Z{oS z*}fNlvcyT^8RAO7???DKi3o=n_uvoqa=1fS+=~G_ckk@{OZs`@g@7e|N+QA`hJ?3u zYU4b`pH=-c_YSRcU5mMAQ~}IAqt^-MKCkQ6 z=H3~!Ln&X4&^h&`VYwOHP(NekA6t|KAV2H{^e!pN2~w9M%Pza z|B?=U{eUl^Zre;M&h|9rOiojb*! z2=XWLohA;)ha+%5S9v?(M-DOWkoW>V-|<4iH_a!4_?$bHrz@Cm%6!qTLnPR0((ex9 zPfGZJR}((0ZwY_4{5yBbe~R+I5U`|wb+BY0?L$5&WQWY3y92&m(hpeb_rn2;J`4sd z`Zpf1$S)VL%r`$5u;gbZU}+!E1uX5Y7_jKi3js_0%?B*<*kOf%DG%}3b-P&K06rMF zzZ3l7fbpDNG#v0wFrFQ#9lOAvs}UX?1Aj5#1o$ff?*_jR@E-6t0=^0St$_D}zZ>vA z@QVT84BmvF9k<~8O#zGUNg3?873a4F{4Sgy4EWtR|8T(KHyg0XFGrjwE)W-qOT=a3 z3UQSc2N|7ak;@Af6_kA)Y0kBc3N-AYLS1BJR-nkmWzz z$0_;8vmLcV*sj;je-F9$5)Tqj5Kj}&5YH0N5ziAZ5HAuh5qD_+W#!pQZ2h&lcawV$ zaWC;8@dWWS@eJ`S@f`6y@dEK8@e*-|t_xZD{JvKqug|t_WbF5^IA^EtJrv&WtEsyW zlKTYlG;twd=|79aCE_x1g}6%W@3Z>+N&KDlCB8^FCQcA1iBrTG;w*8FI8R(4E)tiB z%fuDpDsiwh>dM<$Un=$GCr%J2iBrTG;w*8FI8R(4E)tiB%fuDpDsiy%?91QbbwU2R z`X^2hCy7(U8R9H)j#xfmX@{g=ATAP@h|9zk;wo`?zuM`4eQDj7pEyCBBo6m+N_-h| z&l2Z|^TY+>B5{ehOk5$Z5=X&&&Xu1yoUe*|g4~nD;r!K=pWL&=;e1v6=gGZ5TqG_L zmx(LHRbpFT6rFSBuiqN=^-mn`>k|J-a!(Owh~>V59TGlAoF^_27l}*6W#S5Pl^BmO z)(%&G;+Qx=oFumOdx=!y%aD7PI7gf(E)W-qOT=a33UQS0y_ zW_|gI6U0g46mf<)OPnLl6Bme!#3kY~afP@_9NePz?Z1A@+Lxa=L7XH`5od_A#5v+T zae=rRYFL{S(K;3F0Jiig++!Su33&o+h3lo+X|mo+n-)UL;;3?g*Yc zlKgEYmKQ(UA@1G8J;c4lgT&!Jbct`8+-HbqiRXyti5G|$iI<2wwp!`@TJ~0A`9QQC zuKdJ3#J$9W#1q8R#52UR#B;>+#0$iW#7o2-!9IUi|HNIy-NfN@0unxa4}tI?`JW)3 zCJx_MAmL}py%ezAFDVm;&mo9=_#BvU6g*ce+({f0Cy0~8DdG%qmN-Y8CoT{diA%&~ z;tFw<*!J6qPP_8!{u|?%I6-XtEzQ5}r!>xx|15EiI8R(4E)tiB%fuDpDsl8C$*DhF z`H5rV1aXo$MVukd66c8X#0BCaaf!H0Tp_L!M|dfg9j^SuF>!)8Nt`0i5NC;V#ChTZ zagn%0Tqdp%SBWFM0M!mxe&U!oL7XH`5od_A#5v+Tae=r!)8 zNt`0i5NC;V#ChTZagn%0Tqdp%SBayyQ~8Nw;skM$I7OTx&JyQ{^TY+>B5{ehOk5$Z z64&193o$tTzqU~xF>!)8Nt`0i5NC;V#ChTZagn%0Tqdp%SBazR8q3>B91|yqlf)_F z3~`n?N1P`v5EqF{#AV_Nag{i_p2|-g6DNq1#3|woah5nooF^_27l}*6W#S5Pl{k6_ zm7h2!P7o)FQ^XnKEOCxFPh21_5|@a}#1-NyaqR&#h{3i0u10yp#0lagaf&!YoF&c? z=ZOo%MdA{1nYcn+C62Z?mba5QCQcA1iBrTG;w*8FI8R(4E)tiB%fuDpDsglJm7h2! zP7o)FQ^XnKEb(-}vcGeNc$RpMc%FEHc#(LCxZ|Dm@=N+#iMxoqiF=59i3f=%h^L8X zh-ZoCi06qHh!=^Mh&y&r`H8!TyNP>$mxw!dQu&Fy zh`WhB5{ehOk5$Z5=Xlm%iBpD6DNq1#3|woah5nooF^_2 z7l}*6W#S5PmALkGV~D}k|DHy9#KZ~WByoy3L!2ef5$A~u#6{u~ahbS6TqTZfYAkOj zaZH>bP7}l;v8|F zxIkPaE)kcBE5ude=v`EP;+Qx=oFq;WXNa@JIpREVfw)LqA}$kGh^xfWyQ%!dF>!)8 zNt`0i5NC;V#ChTZagn%0Tqdp%SBb+1a$Wnstx+B^ae_EWoFdK;XNhyfdEx?bk+?)$ zCaw@yiKE*a%iBpD6DNq1#3|woah5nooF^_27l}*6W#S5Pl{mVC%1;~$mxw#=jB1Cgf8s9UZsH!| zUgAOG3F2wu8RA*uIpTTZ1>!~G=&o9Equpz;-bWl0Cy0~8DdG%qmN-Y8CoT{diA%&~ z;tFwOG};xciCxJn!ypz;&P#0lagaf&!YoF&c?=ZOo%MdA{1nYcn+C64Z)@)O6z z3F0Jiia0}@CC(A&i3`L<;u3M0xI$bdj_#%M6UW2};v{j3I76Hz&JpK{3&cg@5^!)8Nt`0i5NC;V#ChTZagn%0Tqdp%SBazhsQkn+ae_EWoFdK;XNhyf zdEx?bk+?)$Caw@yiKF*Y`H5rV1aXo$MVukd66c8X#0BCaaf!H0Tp_L!NB2|tiDTjf zagsPioFUE<=ZN#f1>z!ciMUK$A+8dKFWhqTzk`kPh=~)#N#Yc7hB!-{BhC{Sh>OG} z;xciCxJn$oud%$H#4&M#I7yr$&JbsbbHsV#0&$VJL|i7W5Lbz#2dMnSF>!)8Nt`0i z5NC;V#ChTZagn%0Tqdp%SBaxTRDR-^I6<5wP7!B_v&1>#JaK`zNL(T=6IY0<#I+ag zLkzC{ryAuE6DNq1#3|woah5nooF^_27l}*6W#S5Pl{k8TV|hD?W8wsHk~l@2A!~GCE|_;sr+#0$iW#7o4TAE=jK z-gg=kCy0~8DdG%qmN-Y8CoT{diA%&~;tFw zB5{ehOk5$Z5=Xs_<=+~xyx+EqxSP0#xR-d4c!GGEc!qeEc#e3Uc!7A4c!{{F6M6VDLO63-FO6E6@i5-$;V`~a1oxQn=(xQDoxc#wF4c$#>I zc$RpMc%FEHc#(LCxZ?+@{KQ?v$$;g3≠zah5nooF^_27l}*6W#S5Pl{kEXw&cI_ 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