From f9230ec5b4ea94bf5cc271567ee5826c8d8ac524 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 18:13:04 -0700 Subject: [PATCH 01/12] add cycle tracker report --- core/src/runtime/report.rs | 1 + core/src/syscall/write.rs | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/src/runtime/report.rs b/core/src/runtime/report.rs index 62e85f108b..36ca39616f 100644 --- a/core/src/runtime/report.rs +++ b/core/src/runtime/report.rs @@ -10,6 +10,7 @@ use super::*; pub struct ExecutionReport { pub opcode_counts: HashMap, pub syscall_counts: HashMap, + pub cycle_tracker: HashMap, } impl ExecutionReport { diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index 8e9d389cbd..cecc9ca1d6 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -25,7 +25,7 @@ impl Syscall for SyscallWrite { let slice = bytes.as_slice(); if fd == 1 { let s = core::str::from_utf8(slice).unwrap(); - if s.contains("cycle-tracker-start:") { + if s.contains("cycle-tracker-start:") || s.contains("cycle-tracker-report-start:") { let fn_name = s .split("cycle-tracker-start:") .last() @@ -37,7 +37,7 @@ impl Syscall for SyscallWrite { .insert(fn_name.to_string(), (rt.state.global_clk, depth)); let padding = (0..depth).map(|_| "│ ").collect::(); log::info!("{}┌╴{}", padding, fn_name); - } else if s.contains("cycle-tracker-end:") { + } else if s.contains("cycle-tracker-end:") || s.contains("cycle-tracker-report-end:") { let fn_name = s .split("cycle-tracker-end:") .last() @@ -47,11 +47,23 @@ impl Syscall for SyscallWrite { let (start, depth) = rt.cycle_tracker.remove(fn_name).unwrap_or((0, 0)); // Leftpad by 2 spaces for each depth. let padding = (0..depth).map(|_| "│ ").collect::(); + + let total_cycles = rt.state.global_clk - start as u64; log::info!( "{}└╴{} cycles", padding, - num_to_comma_separated(rt.state.global_clk - start as u64) + num_to_comma_separated(total_cycles) ); + + // If cycle-tracker-report, add to the final cycle tracker mapping. + if s.contains("cycle-tracker-report-end:") { + // Add or accumulate the current cycle tracker to the report. + rt.report + .cycle_tracker + .entry(fn_name.to_string()) + .and_modify(|cycles| *cycles += total_cycles) + .or_insert(total_cycles); + } } else { let flush_s = update_io_buf(ctx, fd, s); if !flush_s.is_empty() { From 69721792653e5078dd8f8e2feabc60b5c28523c4 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:19:12 -0700 Subject: [PATCH 02/12] fix --- core/src/syscall/write.rs | 148 ++++++++++++++++++++++++++------------ 1 file changed, 101 insertions(+), 47 deletions(-) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index cecc9ca1d6..5950a6e213 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -1,5 +1,5 @@ use crate::{ - runtime::{Register, Syscall, SyscallContext}, + runtime::{Register, Runtime, Syscall, SyscallContext}, utils::num_to_comma_separated, }; @@ -12,6 +12,24 @@ impl SyscallWrite { } impl Syscall for SyscallWrite { + /// Handle writes to file descriptors during execution. + /// + /// If stdout (fd = 1): + /// - If the stream is a cycle tracker, either log the cycle tracker or accumulate it in the report. + /// - Else, print the stream to stdout. + /// + /// If stderr (fd = 2): + /// - Print the stream to stderr. + /// + /// If fd = 3: + /// - Update the public value stream. + /// + /// If fd = 4: + /// - Update the input stream. + /// + /// If the fd matches a hook in the hook registry, invoke the hook. + /// + /// Else, log a warning. fn execute(&self, ctx: &mut SyscallContext, arg1: u32, arg2: u32) -> Option { let a2 = Register::X12; let rt = &mut ctx.rt; @@ -25,51 +43,15 @@ impl Syscall for SyscallWrite { let slice = bytes.as_slice(); if fd == 1 { let s = core::str::from_utf8(slice).unwrap(); - if s.contains("cycle-tracker-start:") || s.contains("cycle-tracker-report-start:") { - let fn_name = s - .split("cycle-tracker-start:") - .last() - .unwrap() - .trim_end() - .trim_start(); - let depth = rt.cycle_tracker.len() as u32; - rt.cycle_tracker - .insert(fn_name.to_string(), (rt.state.global_clk, depth)); - let padding = (0..depth).map(|_| "│ ").collect::(); - log::info!("{}┌╴{}", padding, fn_name); - } else if s.contains("cycle-tracker-end:") || s.contains("cycle-tracker-report-end:") { - let fn_name = s - .split("cycle-tracker-end:") - .last() - .unwrap() - .trim_end() - .trim_start(); - let (start, depth) = rt.cycle_tracker.remove(fn_name).unwrap_or((0, 0)); - // Leftpad by 2 spaces for each depth. - let padding = (0..depth).map(|_| "│ ").collect::(); - - let total_cycles = rt.state.global_clk - start as u64; - log::info!( - "{}└╴{} cycles", - padding, - num_to_comma_separated(total_cycles) - ); - - // If cycle-tracker-report, add to the final cycle tracker mapping. - if s.contains("cycle-tracker-report-end:") { - // Add or accumulate the current cycle tracker to the report. - rt.report - .cycle_tracker - .entry(fn_name.to_string()) - .and_modify(|cycles| *cycles += total_cycles) - .or_insert(total_cycles); - } - } else { - let flush_s = update_io_buf(ctx, fd, s); - if !flush_s.is_empty() { - flush_s - .into_iter() - .for_each(|line| println!("stdout: {}", line)); + match parse_cycle_tracker_command(s) { + Some(command) => handle_cycle_tracker_command(rt, command), + None => { + let flush_s = update_io_buf(ctx, fd, s); + if !flush_s.is_empty() { + flush_s + .into_iter() + .for_each(|line| println!("stdout: {}", line)); + } } } } else if fd == 2 { @@ -96,7 +78,79 @@ impl Syscall for SyscallWrite { } } -pub fn update_io_buf(ctx: &mut SyscallContext, fd: u32, s: &str) -> Vec { +/// An enum representing the different cycle tracker commands. +#[derive(Clone)] +enum CycleTrackerCommand { + Start(String), + End(String), + ReportStart(String), + ReportEnd(String), +} + +fn parse_cycle_tracker_command(s: &str) -> Option { + match s.split_once(':') { + Some(("cycle-tracker-start", name)) => { + Some(CycleTrackerCommand::Start(name.trim().to_string())) + } + Some(("cycle-tracker-end", name)) => { + Some(CycleTrackerCommand::End(name.trim().to_string())) + } + Some(("cycle-tracker-report-start", name)) => { + Some(CycleTrackerCommand::ReportStart(name.trim().to_string())) + } + Some(("cycle-tracker-report-end", name)) => { + Some(CycleTrackerCommand::ReportEnd(name.trim().to_string())) + } + _ => None, + } +} + +fn handle_cycle_tracker_command(rt: &mut Runtime, command: CycleTrackerCommand) { + match command { + CycleTrackerCommand::Start(name) | CycleTrackerCommand::ReportStart(name) => { + start_cycle_tracker(rt, &name) + } + CycleTrackerCommand::End(name) => { + end_cycle_tracker(rt, &name); + } + CycleTrackerCommand::ReportEnd(name) => { + if let Some(total_cycles) = end_cycle_tracker(rt, &name) { + rt.report + .cycle_tracker + .entry(name.to_string()) + .and_modify(|cycles| *cycles += total_cycles) + .or_insert(total_cycles); + } + } + } +} + +/// Start tracking cycles for the given name at the specific depth and print out the log. +fn start_cycle_tracker(rt: &mut Runtime, name: &str) { + let depth = rt.cycle_tracker.len() as u32; + rt.cycle_tracker + .insert(name.to_string(), (rt.state.global_clk, depth)); + let padding = "│ ".repeat(depth as usize); + log::info!("{}┌╴{}", padding, name); +} + +/// End tracking cycles for the given name, print out the log, and return the total number of cycles in the span. +/// If the name is not found in the cycle tracker cache, returns None. +fn end_cycle_tracker(rt: &mut Runtime, name: &str) -> Option { + if let Some((start, depth)) = rt.cycle_tracker.remove(name) { + let padding = "│ ".repeat(depth as usize); + let total_cycles = rt.state.global_clk - start as u64; + log::info!( + "{}└╴{} cycles", + padding, + num_to_comma_separated(total_cycles) + ); + return Some(total_cycles); + } + None +} + +fn update_io_buf(ctx: &mut SyscallContext, fd: u32, s: &str) -> Vec { let rt = &mut ctx.rt; let entry = rt.io_buf.entry(fd).or_default(); entry.push_str(s); From ffe617e9211ac3ca8044b052a352e8050486ceb5 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:20:55 -0700 Subject: [PATCH 03/12] docs --- core/src/syscall/write.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index 5950a6e213..d8e108dad8 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -87,6 +87,7 @@ enum CycleTrackerCommand { ReportEnd(String), } +/// Parse a cycle tracker command from a string. If the string does not match any known command, returns None. fn parse_cycle_tracker_command(s: &str) -> Option { match s.split_once(':') { Some(("cycle-tracker-start", name)) => { @@ -105,6 +106,7 @@ fn parse_cycle_tracker_command(s: &str) -> Option { } } +/// Handle a cycle tracker command. fn handle_cycle_tracker_command(rt: &mut Runtime, command: CycleTrackerCommand) { match command { CycleTrackerCommand::Start(name) | CycleTrackerCommand::ReportStart(name) => { From c23be729a8fedff8210af608d447df01648d551d Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:21:15 -0700 Subject: [PATCH 04/12] docs --- core/src/syscall/write.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index d8e108dad8..a99a736012 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -46,6 +46,7 @@ impl Syscall for SyscallWrite { match parse_cycle_tracker_command(s) { Some(command) => handle_cycle_tracker_command(rt, command), None => { + // If the string does not match any known command, print it to stdout. let flush_s = update_io_buf(ctx, fd, s); if !flush_s.is_empty() { flush_s From eebe7f3966376b022dfc6973d04bd490a90d07e6 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:37:11 -0700 Subject: [PATCH 05/12] simplify --- core/src/syscall/write.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index a99a736012..30f292a2b7 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -90,21 +90,17 @@ enum CycleTrackerCommand { /// Parse a cycle tracker command from a string. If the string does not match any known command, returns None. fn parse_cycle_tracker_command(s: &str) -> Option { - match s.split_once(':') { - Some(("cycle-tracker-start", name)) => { - Some(CycleTrackerCommand::Start(name.trim().to_string())) - } - Some(("cycle-tracker-end", name)) => { - Some(CycleTrackerCommand::End(name.trim().to_string())) - } - Some(("cycle-tracker-report-start", name)) => { - Some(CycleTrackerCommand::ReportStart(name.trim().to_string())) - } - Some(("cycle-tracker-report-end", name)) => { - Some(CycleTrackerCommand::ReportEnd(name.trim().to_string())) - } - _ => None, + if let Some((command, fn_name)) = s.split_once(':') { + let trimmed_name = fn_name.trim().to_string(); + match command { + "cycle-tracker-start" => Some(CycleTrackerCommand::Start(trimmed_name)), + "cycle-tracker-end" => Some(CycleTrackerCommand::End(trimmed_name)), + "cycle-tracker-report-start" => Some(CycleTrackerCommand::ReportStart(trimmed_name)), + "cycle-tracker-report-end" => Some(CycleTrackerCommand::ReportEnd(trimmed_name)), + _ => None, + }; } + None } /// Handle a cycle tracker command. From 50f2bfe67045ad9301396ff1fc72b1784a6828c8 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:38:03 -0700 Subject: [PATCH 06/12] fix --- core/src/syscall/write.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index 30f292a2b7..7195aeb26a 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -149,6 +149,7 @@ fn end_cycle_tracker(rt: &mut Runtime, name: &str) -> Option { None } +/// Update the io buffer for the given file descriptor with the given string. fn update_io_buf(ctx: &mut SyscallContext, fd: u32, s: &str) -> Vec { let rt = &mut ctx.rt; let entry = rt.io_buf.entry(fd).or_default(); From 2e70d8af78d556accce545ae188e1e65a64cf858 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:45:54 -0700 Subject: [PATCH 07/12] docs --- book/writing-programs/cycle-tracking.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/book/writing-programs/cycle-tracking.md b/book/writing-programs/cycle-tracking.md index 171a36d3ff..ec411f7f23 100644 --- a/book/writing-programs/cycle-tracking.md +++ b/book/writing-programs/cycle-tracking.md @@ -42,6 +42,19 @@ stdout: result: 2940 Note that we elegantly handle nested cycle tracking, as you can see above. +### Get Tracked Cycle Counts +To include tracked cycle counts in the `ExecutionReport` when using `ProverClient::execute`, use the following annotations: + +```rust,noplayground +fn main() { + println!("cycle-tracker-report-start: block name"); + // ... + println!("cycle-tracker-report-end: block name"); +} +``` + +This will log the cycle count for `main_function` and include it in the `ExecutionReport`. + ## Tracking Cycles with Tracing The `cycle-tracker` annotation is a convenient way to track cycles for specific sections of code. However, sometimes it can also be useful to track what functions are taking the most cycles across the entire program, without having to annotate every function individually. From a4b15805445efc0a84e71232bce7eb89b9e174c2 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 19:46:45 -0700 Subject: [PATCH 08/12] docs --- book/writing-programs/cycle-tracking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/writing-programs/cycle-tracking.md b/book/writing-programs/cycle-tracking.md index ec411f7f23..489594a426 100644 --- a/book/writing-programs/cycle-tracking.md +++ b/book/writing-programs/cycle-tracking.md @@ -53,7 +53,7 @@ fn main() { } ``` -This will log the cycle count for `main_function` and include it in the `ExecutionReport`. +This will log the cycle count for `main_function` and include it in the `ExecutionReport` in the `cycle_tracker` map. ## Tracking Cycles with Tracing From fa5e544608a6c6b5c9bdbb1b8bf44a5b6f29364e Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 20:00:12 -0700 Subject: [PATCH 09/12] add --- core/src/syscall/write.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index 7195aeb26a..f910e5bd2d 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -113,6 +113,8 @@ fn handle_cycle_tracker_command(rt: &mut Runtime, command: CycleTrackerCommand) end_cycle_tracker(rt, &name); } CycleTrackerCommand::ReportEnd(name) => { + // Attempt to end the cycle tracker and accumulate the total cycles in the fn_name's + // entry in the ExecutionReport. if let Some(total_cycles) = end_cycle_tracker(rt, &name) { rt.report .cycle_tracker From 955b475c020109d8b61a853051045e079c1ac15d Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Tue, 6 Aug 2024 23:03:51 -0700 Subject: [PATCH 10/12] chore: fix --- book/writing-programs/cycle-tracking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/writing-programs/cycle-tracking.md b/book/writing-programs/cycle-tracking.md index 489594a426..c641f1e57e 100644 --- a/book/writing-programs/cycle-tracking.md +++ b/book/writing-programs/cycle-tracking.md @@ -53,7 +53,7 @@ fn main() { } ``` -This will log the cycle count for `main_function` and include it in the `ExecutionReport` in the `cycle_tracker` map. +This will log the cycle count for `block name` and include it in the `ExecutionReport` in the `cycle_tracker` map. ## Tracking Cycles with Tracing From 47e5a563337d71cfc95838aacc3ede0db5a3a999 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Wed, 7 Aug 2024 00:29:23 -0700 Subject: [PATCH 11/12] fix parse cycle tracker --- core/src/syscall/write.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core/src/syscall/write.rs b/core/src/syscall/write.rs index f910e5bd2d..9c42252b93 100644 --- a/core/src/syscall/write.rs +++ b/core/src/syscall/write.rs @@ -90,17 +90,16 @@ enum CycleTrackerCommand { /// Parse a cycle tracker command from a string. If the string does not match any known command, returns None. fn parse_cycle_tracker_command(s: &str) -> Option { - if let Some((command, fn_name)) = s.split_once(':') { - let trimmed_name = fn_name.trim().to_string(); - match command { - "cycle-tracker-start" => Some(CycleTrackerCommand::Start(trimmed_name)), - "cycle-tracker-end" => Some(CycleTrackerCommand::End(trimmed_name)), - "cycle-tracker-report-start" => Some(CycleTrackerCommand::ReportStart(trimmed_name)), - "cycle-tracker-report-end" => Some(CycleTrackerCommand::ReportEnd(trimmed_name)), - _ => None, - }; + let (command, fn_name) = s.split_once(':')?; + let trimmed_name = fn_name.trim().to_string(); + + match command { + "cycle-tracker-start" => Some(CycleTrackerCommand::Start(trimmed_name)), + "cycle-tracker-end" => Some(CycleTrackerCommand::End(trimmed_name)), + "cycle-tracker-report-start" => Some(CycleTrackerCommand::ReportStart(trimmed_name)), + "cycle-tracker-report-end" => Some(CycleTrackerCommand::ReportEnd(trimmed_name)), + _ => None, } - None } /// Handle a cycle tracker command. From 5005138f446ab25fb304f93a12872c2a2ff47b68 Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Wed, 7 Aug 2024 12:20:02 -0700 Subject: [PATCH 12/12] feat: cycle tracker test program (#1276) --- .vscode/settings.json | 2 ++ book/writing-programs/cycle-tracking.md | 2 +- examples/cycle-tracking/program/bin/normal.rs | 32 ++++++++++++++++++ examples/cycle-tracking/program/bin/report.rs | 25 ++++++++++++++ examples/cycle-tracking/program/elf/normal | Bin 0 -> 113976 bytes examples/cycle-tracking/program/elf/report | Bin 0 -> 112360 bytes 6 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 examples/cycle-tracking/program/bin/normal.rs create mode 100644 examples/cycle-tracking/program/bin/report.rs create mode 100755 examples/cycle-tracking/program/elf/normal create mode 100755 examples/cycle-tracking/program/elf/report diff --git a/.vscode/settings.json b/.vscode/settings.json index ad9ab59b7b..7e4fd0ca18 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,6 +24,8 @@ // // Examples. // "examples/chess/program/Cargo.toml", // "examples/chess/script/Cargo.toml", + // "examples/cycle-tracking/program/Cargo.toml", + // "examples/cycle-tracking/script/Cargo.toml", // "examples/fibonacci/program/Cargo.toml", // "examples/fibonacci/script/Cargo.toml", // "examples/io/program/Cargo.toml", diff --git a/book/writing-programs/cycle-tracking.md b/book/writing-programs/cycle-tracking.md index c641f1e57e..176249b45e 100644 --- a/book/writing-programs/cycle-tracking.md +++ b/book/writing-programs/cycle-tracking.md @@ -7,7 +7,7 @@ When writing a program, it is useful to know how many RISC-V cycles a portion of To track the number of cycles spent in a portion of the program, you can either put `println!("cycle-tracker-start: block name")` + `println!("cycle-tracker-end: block name")` statements (block name must be same between start and end) around the portion of your program you want to profile or use the `#[sp1_derive::cycle_tracker]` macro on a function. An example is shown below: ```rust,noplayground -{{#include ../../examples/cycle-tracking/program/src/main.rs}} +{{#include ../../examples/cycle-tracking/program/bin/normal.rs}} ``` Note that to use the macro, you must add the `sp1-derive` crate to your dependencies for your program. diff --git a/examples/cycle-tracking/program/bin/normal.rs b/examples/cycle-tracking/program/bin/normal.rs new file mode 100644 index 0000000000..cfffe0efe7 --- /dev/null +++ b/examples/cycle-tracking/program/bin/normal.rs @@ -0,0 +1,32 @@ +#![no_main] +sp1_zkvm::entrypoint!(main); + +#[sp1_derive::cycle_tracker] +pub fn expensive_function(x: usize) -> usize { + let mut y = 1; + for _ in 0..100 { + y *= x; + y %= 7919; + } + y +} + +pub fn main() { + let mut nums = vec![1, 1]; + + // Setup a large vector with Fibonacci-esque numbers. + println!("cycle-tracker-start: setup"); + for _ in 0..100 { + let mut c = nums[nums.len() - 1] + nums[nums.len() - 2]; + c %= 7919; + nums.push(c); + } + println!("cycle-tracker-end: setup"); + + println!("cycle-tracker-start: main-body"); + for i in 0..2 { + let result = expensive_function(nums[nums.len() - i - 1]); + println!("result: {}", result); + } + println!("cycle-tracker-end: main-body"); +} diff --git a/examples/cycle-tracking/program/bin/report.rs b/examples/cycle-tracking/program/bin/report.rs new file mode 100644 index 0000000000..e60ce2e2af --- /dev/null +++ b/examples/cycle-tracking/program/bin/report.rs @@ -0,0 +1,25 @@ +#![no_main] +sp1_zkvm::entrypoint!(main); + +#[sp1_derive::cycle_tracker] +pub fn expensive_function(x: usize) -> usize { + let mut y = 1; + for _ in 0..100 { + y *= x; + y %= 7919; + } + y +} + +pub fn main() { + let mut nums = vec![1, 1]; + + // Setup a large vector with Fibonacci-esque numbers. + println!("cycle-tracker-report-start: setup"); + for _ in 0..100 { + let mut c = nums[nums.len() - 1] + nums[nums.len() - 2]; + c %= 7919; + nums.push(c); + } + println!("cycle-tracker-report-end: setup"); +} diff --git a/examples/cycle-tracking/program/elf/normal b/examples/cycle-tracking/program/elf/normal new file mode 100755 index 0000000000000000000000000000000000000000..812a0f97a384859c1a2f02a834f107853537a4fb GIT binary patch literal 113976 zcmeFadw3Pqx%j_k&z_wN7?6P^T!hF@0wSVzz*u`rYJzBcv=sx`i?(iVwN|VGqNnN( zJ3Cxz(K1}U015%I*0yH|u|4P51hNBak5(Xn^)7PphPDbsgz)>kYi5UVQ~NvZ`Q!VP z=Ls`wX03O<>s{}Cty%l7if;}#3`3>=h17>iN(1u>)KIQt{?mUqR28TUHBfa{*($BvU|EJwb{VC&2{Wp+iVSox=(*D~!Cy$lepAo2zS7ESwcitd6LXmICS}&vj?hrY5WwVvBdj z<9lOaD`IC`%1ve|JCc=t{-|wbt4XTVbTPb>R6{s6I~*#p&QxaU{JTyLtKqF!j^LwI zwEqfeYv{g`mfEqvYK!*2%CN1ta;z09S}>o#awAdDXqbgnMuPE}XBkG~tVU%Hs#1wT zWs0$fCd8Fo4@Zkn4@C>BLec)e49S?yBJj0(s94;}cDr+JogZ;qwitG#RJnDOZ(k6x z7ZfUYevyiGwp60HT-iN}pyTuO`%p;e6&>;r^k`IWq{>(b_dtuc%%VmW>jT}24CpI( z&QstR0>=qZ)s`oZ^!iuTHSD|O82=V-)f!oLBE4GPSe6=0=waDfte^O zGlKG4z&gm>hMC(ia~o!EE#}sW7M5Aetrac!p%oqSQG@{We$c5jhE zp`f2(dK_UHN0p|zn5w|xpSPetk>wNSO+A_@Xta=9D}g+rTP$=-7~K+13@QtoXB*+f*^Q=&Y$1mc zt!IGaqMri!TvoCb`bTQcbtCYq6+vf4RGzKW1ao z#f87sI_YlF7wCiO{4qxQiKvV~7hYx-86osl$PHJ8%uA~x_NXa_yI{U@b~h_GZ@#kg zzo?u&8HU}XhpNvslshx?17}JP!`(K+@P4#UIaBg^m!$6R4d?Au=wfumKHhJwF}&+r zc%P@=+qpG{^W&B1kwU|@RHhyIz>KOo70Y=FoY3XiCVTkDChr0om7eeY=pw_en8h>f z$&bEk#BQ&P`1p6#^bBbIIL|WBlO5W|&#_x(8Ot*s%C=jwjHtfOQp+O`Wk)0Dcd{#a zXYsC*clye^Fz>==b`tomhSwF_7B`@IMzsI=87KCuRwas{<<_Js5t>@o2hP-$%H5hY zobg+gx4%}o3u=@(pbVNM4R2?Q@^+?_J!*#1^+wI`>rI7b)JqJgQg$9R9luREyP*Bn z8NgVnY@ze6UCKGIO5Q7TAhv8FZFlchQr8|mQ#rQ+WAseJnQ%aPw>~28RbrrF*!eRJ zZ$c|`xm&s0W-3o$Z0FhT48v)Cgt?um68*~zcM)y(Wa_&1_UX!*28`{~4QFD$;k7=j zc(2T8mEq2vZg_jT>ALQigz|vlUYX$880Fo(T=8BdqK$@a^X$5jO6t0ssQ0&rmA#o~ zZ(Ij&EXPK}FK)tcb}m;=tWvolg+5g37G%S}XMT~Vqh+yY9n0tOKBL2XWIEZg{4L&R zc6k2--ghkD#CtP%zfAWneCPKkW$C|Tnf{L{OaC3;)BiDL>A&N9`ah;D{iok!Ypk&D zJJ2N;)r${TV|@j_5BYkk^sZQTBuC`Mi@*~Z=c(oQtZj?^U{}s^o<$A*DBBq~spWHc zK6Y2<^U1i!3X(4_rX|oyv*qDz&FJA945X>r#>dpJe29^^!Y7(Pe9~ zan1Nl^=+~1_Gd;PUaO)j_#0H;1}y9q&&ThNL|5|c5&jq>pyE$HRGiExIYv=GH_)J8sx;Nc&*>hbeb$uChyV zmB>Ntfk=)!qldCH@%Lt;Gq`sn`6{Z=Ly`TAsYH3heyf}d8{kjNaA)K}>kMVjjHn%p zG7q`?E>N-QR%bUug|7`9MFO5|3i$hIyD0F=BJAOijy0R##24nN}!aLDP&pWo8b5Mr*-uze-po zKHoq?cgAqFyh>;a9j6ql*dl?It6~c*9S5b`OItf*Krlv`8^7L;Io2VmBkx5%()CZ) zUxNP3%+b2Pgf&4$r|(zGr$>xL#;q!vSW8>%N#;VeJOPdwt5mcae5-kH)vIVyo^9a$ zHnlt{b$6>MGQ1qVOk^BT(HVlD$V9|gJ|m4^joNXywfBF6ljgrMbO1+L{oJdN=Zd|GAEj7(e;(ttA%l(-u`grQj!0&7G^>IZ-wD2Kd;nx>GL~JRx z9$$1I_k#@W|GAcRnJw|nGVN~_fZHkKd7IeX4Ham8Z%5EQ`Khjgt67|yo+wUE7uz4p ziF74~pKe}i;diL86DcZ-O>PSLW1@~#gpIPy4*ulhUU-(o@10^fSz&KhN;%=CQe8hA zzb~9k%!V(TH9JkOUztU-@%x^}??#ti&;$CU@Npj{F8V{rj!3Q{3*JlntEKrmZ!jf% z$esL=X^$GKoa$P9wur{bjezT_nowd@bI4}yoXic%DcPgrrRa)?8C|(66vTdZFovXy z&C~e_Z2s=JdRU%EJI|kqPi){5pO7nnrdmGyIkCR((^|dCbM2q&_Qlq8SLUg(Zo1H~ zerMM8ZgR?a%BsF@!haIm?THq1zwgE`yUC)G=s>x@qSj5;j*JfCzB1?AZgSs%=wR-r zSogch)XeA*?sq2oxyicwq6KxK`j*$e>n7(vAMIZU?UK;y-muv6z^|`a_`#7Qj7R$v z!F_oeM{GK_2%AN0=hrU)&L@xEWQ;GureA-_Ar96}DIkXSsL#4e;%Vu)oV238p6z@)^$ z_@*f%);*#oo%iQScJ6rP)W8G9ja^HI&Hg%L`L8RSZH_a!SVa`4#owLxyrn z>N2(ie>L!Vp6EvX-vXcd=NH=6&hG-B`_7fNHS8tecP<(C$?b+5#!Bk((y zSTEggTT`wFe&>>X_cu}}5BQx+rriG~FdqPZ=aPyi-?y!C(}3T(q_(jO_b&mT`_A;0 z>I3}jl3{P1!?>D(pIwrij4an)2K?-jy5D|}Iu8OryJY^yQ+fUi;AfXqesz&;74-mq zc1h~|M{KKQJn*wiip<|KuAc!PI9LA>+ztUhv!uss&5Y%bz|Sn1zp91j-GQH3GVW>O znI6M{pII{OtnNHt0DS7#4}eyW06(*&sP_v{ZA1N7jGjmb75%`gkeSdtIerE$eQZlX=_}7gE zexzjnH`bw7>VY3Ask~tW@OuG2T(WQO^R_j=3i#m?Yw=e4x(@i^l3_U?0doxS!zH!X zqqD3G;D<|6D|$lb(}5o@nNrdh{2PGJ{RqaDnhbpE{B|g9p8-BPq!0Wv>>1#PO6s;> z4xLv3KUC84z;~IK6~GUbOc^qfI>UUZ+K-=v=3fK8DoOs7IV!pb_~`iG^@;Yc>Vr)6 zi4OjDestjJXQ1oPh!(!y$4nJTZtILhY8X1Z>I`#uE_p}F%@G~fIOFP+of{#Bt}#TH zJF%7I41Snv(#EV9=eKR1f{*=tz7MA|fP;@kT;z;vAzs7>lz4eOe%av0UVc4d@=3tz z|9TG}R?=^GDRl;&X-gX)pREGN@NsHZ-dJLT!N2S#IQi{}&B4uwX&K&I`1}3Ox9uM3 z_M;4mS9SXh!wv84TJZn2eYE|2L*h@rebVsW*?=wlY2MNHTRXIGHoW&}Klpb&j<)X+ zI@;a}dGFJ{@UK0NwjUMh(0|C0{s)$I?7u_%WXO4!_Wi4R9&Nw1L;L2Cqx*j-uS5T4 zhyG1xm*C&n>uCE?W{3VwXD9s+d8pUX_Vaan-L9aqPe2FrX#1_EPrGIf$9uQd=Ld<| zrLRKzYPpd)ew_HXmiXdH^2yg2-Z)~fiaN?m412+yDqZ#}h{5-@7+#9G!Y`9NEPZx$ ztUBdb6ls?zHqLN1ZZ(`~*c7=Rv7Pv% z>bZ5PhDKr)ydqhyo^@jo+5nvoqpb6JN}qE%$Y`0dW%iaiZ zZ0%t<%^Q^y;V%(90av80@{B2yRoZFT;41> z73GX4r}ElU%2`j|$v8_@-gT^w`0a&p!i_U3`gUBW!Hyf?QnSN9=5ja|L+ z$;z9&M0rh&$$}TH`J%tN==&}^4ZAW5{2j;y>ls&VR(4Ov@Ww7iCgxL)8Fo*`8kD`J zOv9V(D(7RaO@)TQaxD0(%O8=4Nx=CH`L;E*`y+6!)o{F&?(dAm@To?$`1xG=J|j^+ z9=w-=_gxxqFIAMr8=1LZWHr|_rz)>}4!AD`cgB=(!Mm)BmsroeM}P2k_nkq1@ODpl z8$6{y_bPb1C%he$Jv>2gGPvHx6}-LVd}MD5a7^+5@b)}-dr#PKw|L54JklTkh($st z@Lp@c6Wx8hR~q&UuHi0*&xPJ226n*vLD6U3h3~xb=M3*77rdJcCp-^0Mi=4&VuLXK zf%iO-N$C%~7yEcS^yh8?@5MgeQufNnDeoh}o2$?}a}jbmQ+eU;$nRKX&s%}KbT{lR z@b+SOd+aP^g`AR!iRH!)0pGrJPU94HMD$o7x|>WtKjXP$Y#)=eHFaj^AX_r{X0#y%9%V9KH*vp zy=Q{+%#FZ=uSfFN{c+?F{I5a>_k_1;=Uki!@V-JkGx2zuxHc#j8f^mflF?Q+>p z@9}qwuis1f+bLfH-bt?W;6)jKS&q-&I}H2UDE-m5?$4J?O(*)Z1G!9>9puuP46ewf z#v2-VS$Fwz(h@@tEyqqFldr@DbV;cuDCR1!UO z5B|@q=)m__vjy+)0_9whGMppecExjsbI+T=F*LnBOZqsAKHl>2-tq#x{zb!i6P^;h zxBLisS*_A#2f1`UqMylJp@GbuciJD7Gt)BM%8B&-h>!QRPe6+?$Kky{gfFM%(!63< z$i8Zk;dY;{nj~_pkVR_wv1ze**5mR$32JcAoo@a*n)*oO8WmsfOirc@kUJ1Kh`B!&jo4 zp1`h=bLu{dTzz+Zi5}QI_(&A`f!yf!0t0p{Ni9XCE9}%HX^zX(@^nuv^veU%&dov$Vb_+Vu-ASLz zmAe_8xCEUT!=_bCp*+s8m(;3s*}M3UhW8!A(z(88N_Av*C#z*!BgZNuIC zd*EEH;RwBay00~(g#qsCSDN-Ki<#5gH10wN)<%@KV~6tI{uw-&ZFm=BYd*Y9(GPl8 zU>K)~Z{=j>qYuH^#{NiOBf+_^kF)gUjs)kvKF(71)>H2m@NDA>&fZL(C7?s(3G4y9 zvS?-CqmkQN0W5NI^?f;`hLW2a9&`z55g;Z|A#u@ta+u?Fwd^)<&5o3 z{=Z2%&%%>!=<~~O#FuLZPGe`*9=MOtUz9$O-HADd{mN$LKIj-}SoSM1U?U#^Z0GVi z;DGNPTrYnT`?C=pz7aXyWw=Y0u&1Q)bbA!^+x4t+m(B(DP57x@jKq*KTi(0X8{C$%B-2cVA}wyZ;DYMmP8S0}Q**TgtiNzbKda<%O>)XF|P^=wD^K zFZU-`{HAj62`lf7{~$kA)!Ti!(6Areqnw}ox8V%0F`P@d-*}Dk)~zz!YgjiOPAv4w zdCIwD8`rNXd}OW{@_v)y%_x;M66MUk%kXk8kv@AlGiaZIybWmVWezlQ#dr2*{Ehti zL1LU==DC~tK(8_6&i}%AzRY^s-=IC^O^+%!o=u$f?bD^~%_J|I_mQ&4^ww*AcK#OD z>As}fitlcZS;5+M7$38$tCSt`x$d@n^5gV3p%s7qLdFVzu|}cmZ$~y}XZrENoHpWw zJk}Nu_;tsW7;d+1N9&GR1s<<=^PU54c)wwfnnX~FWwfN;58FL+U#g+oc87};Z-JFZ8 z1Z6L)1X{nU9M+U1)^TQL2@iD^8H68!HGuZJ8Rt6YgLPRKyjcTvhL55=ftX~KN|(K_ z-^rTjXnc6C>sS+wjM6gUSkQUQIK~4`^y^+(N8C{9!;yKua=u~P_=^Hp#!~YN?UCi1 zE4jX5cr~MB-M6z>lgmA07*h-^Y>tMt6!X5%pqkx?7mCblVtR;U;TG%8@Be` z#$3A}I^f)@T=#{$@GHK?o-~H>0{`9jwvv4ZiGfw!?Y|5}C+t>kW`=UE|0Zy&df4AX zPdxYzdg2$9jXWE@;Xd%b^4@(6dR)MmN1*TKVAq!#?h6+wd1lYZRPGBGGR6ye_9b-K zSGl4OuJ{`B#9aOSe#SNp+tCmE{Z(+m#%AHKborX$&di~0U+`+vc-eoU?ftJP=k0G8 z-cy$v_Fo>yCO@C&{pnKl2z?^g_OF)6UVp267}mM$Sff=?uf}cNm&>!6*C*@L%@pjo3r^*U0=s zy}i;sjAy*z#dG1A7(BB);2G@q(vi%0mw;zn`eZ(XvX^`k-~aiZ&PM#2RudXNLR@4q zpH-dY%G!-`M`17WclhweY{n;Zj=~!g12^P5fah#nhs*=#2v_hES#a)ItGrqJ$gg0V z7hs!rt_8>6lTW}l@7jjHLmykQ!wa#qLD{i>&HQs}=B~u=SP2|p<&DyC zoC+B?b~bOSh9hO~v?rk0)5AVaTmOT(yi(I%2pP&Z? zr^HRl8-4+F+C)EGYc|V1m26FS!3o`HF9Ij(+uOGx^XSq&Y5g$)nO}vT^~=r(bZ9HM z+`@IlG{zS(yu?cF6PiVh-R&Op@iB~E?kHq=oXkgK577f=p>euBW^$kh%JQ@xIH#5KG3m}{la-}FTcV;K#_NTp_CgjU%0e;f=+jEx(yo}uE}Si>kv%w- z1A(1^%1(G+c5M1GMVCj z)HwViVu7IS4M(=7BD*(pWqhKKWDVF0?Z=l1WS@RrWZzwg?4!rS@C+fS~h)*QQ65NpeJl_W>JKfzZJ^=NiRr#*#img7~z4}(-C`b02 z=evs+qc_TW+u!+j<-H|#vyd3$P3-8uiLLMDzC4f^2HU^q3Go?n-R}<}p4?3ia}8yq zk1nGpZ1~lC_rLHFhr@rl#E~v>74vk}Q0TKjxwEp#pNZY){;Cr4V2ikZi8?NPGYWp( zrM&8i;yVzJ?jQ$495JR3_Vf^a_ryMb8To%n+iP=3Rd4bz^l>529|P8fhI6+~OxYVd z{Rv~c4c`E{yzfO_->d$JxX!`1_!a#jBXgkFRRQcb7pso2@jJ-n4b^a+r-vHe?BRwx zsxM>4&)BtvcK8B4Ut#=*# zu^1Z>l%40Wn@6xGlGnqhA*SRH__HGDEaYhs@}zAIvG-Esson2bjNfq^x}ppEc8Jy= z&WMrdi!5~a7<@48(`U8&s`$@#KVVbezLxR!ynx&fIBB0}JTkr#-_b8S&()L9q3*|A z$$vYU=mv?=?^%hi_M~<)kD&yT}xUV|kx1TaHyx{=l3t1m&Lw8SMPIjS} z@(gdz9QNn-qK|{@v3;MIoc+p+|DwD}A4|;B+ndvuoPe|?Z&vv2-g58E2ET3i=S%R< zckg9=1{qws1-xE064Az9-i%v=e8CFkT@Frjwi)(l`pA<$cH_fcWVrq4WA_p8m@4pj z_9$%*uqS61`nIoOFGPmNZ=)Y%cp?4+?Hnt~ICt?(#|vl3y_1DLmONWWd!2_2)7JMr zvDbOXFl8_6BJ!?fy|usBOukXu>Rs>@wt7HSrqD$5C;HwNeXsk+?kpVU?^V`)V}lkl z*Wjc3-$1N=U?=O5TrWA`)3pYf3VdQaZ>8akTg4vdwc01vG8S=$1vd`M&jOYrtur@-BhD4}1)q z3GmBdd>SKD=P;7AA3XryXt!=}k72I*mH2uJKinQOfp`XeCwhyrvk^I*#`OqSiDz^U z1DsB))N(Abxijt&9hfD{}lWZEr#++)EC0 zB>RwvnK$3e9L!}cWRfBV?`^+&m$L6)if(LPsxEsvH$ip-Jv-$dE;~F`l0yUThQ(AP^YZ7)Y0+qwa8@YUcN4?m5%vUmPU>e{dRIU1`1xXilAWp8R8rGItBZ(2>U{PcY9!8pr!a+C%Im2s=kAs#r5L?`S4C($V`INgG7+C$C@|4!=^~-xE8W;bi1NC)$fnStL4T4>+MymR#WH%P+|TCv?gZbc*E9DSI13(3`QeaTOjE z7+R<7Lw=9dDX!?0-L2rXPwNy{bP8oJ`3L>XyJUT!Q#SAnn>nB{B3IcL;#MNR68rD0 zN55=id?gx|mjV{Czbmo7z@qGJ7^P!>ua)Zta0G@oqn7*=dZY4Z%I)z0a|g_pe@D;V zPki!(?8E3~Z@-0cBX8`FHt_}BF}Ewb_kE0=Sn<2q;4|J;c9+h`FY8ne($%w{Ib4B{0VKIASV49<4m$f_a*R@t0V7-O)p|TXQI!i zfa?@=*9g`xwiEmI!R8;LkDn|1#V?Z^dx^e(jNG#BBXV0l7M=1Ke)cbW%Dp#dCiB$` zybdxy$ov*;_Wgg+?P=3n)>ot-dkZ%88T#uq5k1-$eba^>&17!BO50a-TQ6CJFPP7> z$BD7gp}&~Inj3V;$2W&w_Lwh0b7E%NIo3YChsPd6+-yqR{6peqi};-}R^AA`ANT29 z`6PDX8clEQi&ZWG-klnrQ}ZnA5BN6XkEQStr##7ZoX%yN#Z~Y@%IAZY0qiM)55}#< zuinP|mFOI|jw!cdTNYtk#&4u8^@n5Y_iw& z-ir;k(rce~OQ2VFKBD!CI~Tno`WC${dc~cKUJ1(H2vh47?`E!|e=TT@{dMM`7tSv0 zC9>--M0Q0VY$Fz2G*9aTV&q<~$njiP!!`@cdb?Nhz9;YBxSE&}xqaXrVoGAsmxz<^ zB~E@fZn%F&hVMg$ukWSYZ}GhEoA|AL{rTQ7100Y^*0$VNM0Q)a4n?c&BWG`nWStW^>-(Z^>&;vQ4mb1cSIYU*&E&CWLO1Hpr7m=HH&NH6F73P- z%#+yEP1JoF`pv$?a7Pm_=O5B~(j9|7>GqOthki8NySr#z>5f6445{krtwWDjSHj!K zZ{Fj9-hGn!M}Bw1CtB|=0Uq*8*{OL(KlAWWy<6LWRj=0o69cL&Sqt+qx^0!!YRhmSNFpV!1TVjFno zjA$ko9Of!EGeg#QEV;@)NPF8rVC~_X$35V;9atA?Sk5IGz(QxckNB`CI~&n=t(k`N zAy?L!1cqZGe>KpzWjyhU&`DrI|3#xTO!lQvUVyHg${H{<$!P-5oyytJ#J8Bc@CneF z8G9wq9d5^IbQIma!^ep=3fFdYo?GL@8ii{w*LiL!I~$o()+oFWxsHHN;N%HTzhHl7 ze}g@u@bLV(>7N{FES7C z_m#sK?`W=)!yZH2IK=R#i|$*+p5n4z;`c`fkz1?mWw<>KD&JmUSNjsDj(bv>LmIKG z8@29pE3vDhm$PV7h#soM2Iqei*vp}`*}}Z#0JpK1_K`Hd;&%%_be1{7?_Tt=o)dff z7xA-R(Dl9P*BP$W2|Q)~@x6t{KYs(>N1nUkA4p7dCHkx{@_gMjjNvx;im_h#m_H_R zKklZV;K#Af$$R@1aw1EJrJ$j=ZXNN%gV2>&in3Gl6nbo(;XJ#5eF^`=TGwsAgoYClL@Eh|t6uPC?QR}INKXq|n{jqnD3Oi=cojVbR=a5=)2yobQ>z{$zVWlbNSHJ>>+dzSd;TGpw#5(jG-34E*5rh*fG^dkIdp%ZJ=?p*w2#$ujJKKjbL&<{(Qi;;2$ z0QL|2+a3G6gXU;&)A{I`dzjnloV8+*k6zB&F}70H zhu(ja_Fp0wjjbGeAMc5kc`tj+T-J%a@}=l>7dx9z>X_m}l#wT%g-Nbs# z)v_PcL?_^{Nc&^;ie3x5@hNB_ItrX*Ei5QImw%}BigO#+%ZCJd@z+(9#c?fOCV z3iBl8U!X^t_mf{+j30Fv{1yU-{917%XSHkqC)#fVr?~-6o4{$Q;B>7&zD?k?RB-ak z{(c;Ay6aAG`kRl_J@DBt&@0JK=%~Pt1}}St1?(xno{zuxH;KP{xtnf9M}WiilHY3V zt@B&=VY_43v(|eyviuHfoIma9yj_Y79>DtRZsN`E$n*f>)!oW_r#JWg`R?Nl;<8-E zI~;qQR8G_F=&JSXRUXDOa2Z*m9O6BDGuLu_sm)(NzVZFYy?Pn@;FYUHj`C%F(y2xl z%)kcDxDJ1*2A$oHwZtQO-OL?DUMZh>9gnOI-%38_H~Q+;r0|E3=LN{~IDDb4$nzrV zjQ3+jd+Q_0jb~zuQ`ozD>S7BPG7s8!x`4V{wO#gorr_+slK$mHD%u;cK^$d%f&2 zQTQ93sQr@7tZATI(r~Usj^%rYb~xyin+48X{OK|LZNwjKW=?Me26+SV4X%6=`*96C zeid_x9=vi1dK`WZ%HBE;81Ojq>tu`;A2TFZC$fRu*FfOlOYeSzcG%(W7y5868BKX2 zaL~&Fhq8C`M0Ed$e8;eebtSIyJpiZ4a3&JpqHHznt>83IaB9Ntkjq#MPGc8?(*nxm zG8ThVQ1;5X|7Z#8kdw(}&1a3bQOAak@S)_gy6;BD)?jatyPhQ-zN?r3eO7h&t^%AU zFJx?20jH9`l=8al2bbHJtHqi=i9z_9o3O$2u)&NaaZXupcgr2%_n?L=_RYQ;zq%KG zHG3!Qznn#0=qM@mHTBx}O!t}~pc zC$kS^F}c|<;_I$NjxJ)1>$u`S4}Th(ewq9^JQAs4?`m1TH@!dnu}l1-KHl_h#H)F% zNgN=@)Q`2#5@@zfuQPfZ_h3sH_Xgy1I<{bRcjCd1f>;$>+HZ?)Be9@;6*hFk4EjJn zZv*Bc^ycnX{E#mIdsBNocl*QG<~-~{F0hbMsWavRbktTq#|12R3^FP?LTsA5eG>Nd zH~29&>(GB>kNvgS#K}6=b2l#~H+B~`akBsI6TYy&@Az44EYHcu3ycJ3$!Pni$65ru zodLWSY~wKC!574i9rs*oI2UIGd#uncI=rYUEP(iwhiVvpW*G z?2B9mWp6$5gst|-DL4_?Gf<|lzTb{4xcEc@XESl-5@aC_XY)jCHL^gNJ=7XDd#c%+ z4IaVRyu>=>GlFbRM5Z1IWb+B|8H0QWe*2Y+z=t+L*{gmKU#dI)&YOn!b!3V)TWyDO zz;pUF#7_p-b-oXOoc;gQxZ>F-{C(4HT!Xkm{0P~DZI8yD^j%2|xtDLw)?%}XdnLBH zWCLp#3$WQ!{aA;xlYEri5;-#q8#5ePn+k7Wk0ht*?}=*+-tWX#_9vcxBUu02ME>au zdfm-md%TYIKlp7oHt&F~*CU+`Hfw-ypj!@LOO2kg-sVN%_iD~g;k!jOdV^a!ywPK6*i- zu&ls5%P3$!Nk4N?RlmfbvVP{-M!&?_jeX6*ReckK%lZpE)6}&#BPo z6GS=Z%MKfI7NYq3?PqQ5Z^AJO3QH7Fo8al$u^Nt*upv++%pJ^PX?CTgK z&~T1xH2}L5e<>_D8I19mGaMLaD8TP*?oWC?hV;wXWSMT5F&;{V%+=M(tPOKk<7y4p zon@(orTUDGAINzWW^FlqS7gY!NOo3FIiKbHI^Z+$v+zM4gs1fx9l`@PJaQ~vr5C!KHR|KWnVE)hAXI-qDrcJPRuRVB)S4)&ZY?SP`S0yWZar(ps$}@e z(VPXCr~TWVoNv-gWY_%g>x9WPkYQfXz`&j2lBEfO-#4<&ooJ1E;1DB%DJw^<*kY0aBIn`KD+IV(IeOc zrAj7jxS9KWy>DU{XTE9oO^cCD$OE7IDUkgVDk@2jx5*&O*4u6`Gx=&sh18 zGYP}yS;&^kDm06-Xxjt&{GPL9Eh!t(;=)fjhc6^&sKmP0p*Lr-ANEpskTZ2SpGeCB zXNE?L!~WTwk%}v1Zc28_`DhibaxM<%(<(XVM9!C@K76gzj(pYTpR+jpir74vvwP98 zO$VccR&Xw8_><^hedV0g6$j-U7v?{1N6HUI3z`nuk&ix(_HR0b&g(4aPcB#U>-WXl<&)n|$9bDqspod1AM zh$J2O;*;Qfn%>dsEPZy+a#d6n9W?atiG8U-a+a>}UbJ8sHe$^o;X%f7C{|-dOy)r7 z6EX`+qKFMr_aZ6p>Hfd3tGpKL(#heYcv1|3~PYOmui=qOdFzo0o~r%RpwcMCXX!2zY9qxjGF09p$AR-?RR5OIOw4 z^YpNv*2`J6HK{3bwP&QJxz-QD%Vncf;Pshj?4nm9ZWek##>^Q^Hnv1;nb@&t;R=5~tmL3* zF?|nQbEqEPaFeNm=%6*=1uub+tWS#;V&l5lA#OKP5MXb&Vo zrU$A6JQRti2wW1%8yEbeGG!*_2-l)ch3I{r};oSs!&#b6E@U4^6 zz4VID=HYli&omD={M)DVu)6HzJRBeKf6K%1UmZu!g`Y{!&&9*)%O|I0{Gxvh568Ek z$iwjqKAndfzHo9LE7qL8c?o7!qklV(d7FKkiN4z6F zGLa3=swpx8Sl@~EpD+FB{1|?~F=yiYG>8W@D6OT>R(z)jzEcF>DT43B*@Ne2L<`F} zul?H@(SjdJE+MldpLlX$=5%{j27W((a&~_w{%Z2UbK~^by3DYf4Nb^bXx~i7$_?)j z`*$wUy!a_GjONk!YkKYrSF{G>_%8g~8XY+HW8%k;qn+oqF7I6UF}_Kw#1i#&@LsZ_ zRN_Xze(KujkTt{#1>gfe6^kDZfAr^`xJ3MU$tOis;V0q;xmM~WVrG2drcZp{EnS_c z2p=SF&y39}GED9hh2_8_7T;5wseR*cU8cxfqM}0LKKw#rkEF!@;*Y?$p*kJ&n#I=a z>df zJVlW;JBXiWALSjjaYxvCDH^iCE!bWDo<>yvvz8me|MDB+%7Z3d;nmO;_^2|bF z(Xh_5l)!hy+3+1X7R}ezSfP)t`3}0kchKk)pGK0?fL_GBn)k8`4e_~ejQ1zlmlgVGpZ$){@T2-yY$$I^P$-ma#$V5)^IuV zc~abDZe_0YSVS)@w+zW2pR&F(k!5IOF^`&Vr57{Cc7F`qaTQmqIUopQo0*D)Vr{x);wD z-YfD`dT0CCMP~Ffb%*>WnpxCz7+yZCeZpmHm|t`wbFA$}fAXyh;4yL^QTQ90wflVV zYzUq;SWhval^Mu=yI$;=CyJ6Q!Pn9GBFU*GQa$3V&1GtN*7^S+M_!n`E2xriblwRi@aE={-Q_qnvkY(!56h|R4HCk8?1vxLss&^f)n zcv-N%$oUsM^J&^J;Y2#e$4A52I#(n5C%TL|JXtOaoP8T#iVe~0r6=T>pmm6~-1dBv zuOBL2!LPx;7uy3JbbdOlb4^;m9g~w@bI6TAo1<$j9&>j>P8vNO5&G-)R>em2C-(OT z5|Jd!_EC2**98q<11KyU>r+^n#?Kil}UWc+yVz1qUXieA72za{V|o|4=C`~zeQ!G z>xpd$^v?x8O&WqVxSfBpBc(npP4CiwcZc?%FPH0i7?tkic7GP(S&+FeN(tX7D$!|dl4K-fAJ^Bmte2gzuU-?dq^%TxjtyA^mp4sXq zTej-oWhnaj?}-usJ@1T=1^d11#ciZ;>$h!{f_{%%Ai*}NB=L!7qF?#`Yo1I7Z z0vrcJw@de}VaVKwE-gP2@WvZ5eDMdYd0ec@ttt7UKQ1@uNs3q-!aW7yG z#3=UnMI!8hkT#6FLz|8;qWItKeQOw{#PUgW{VeQYmXf^&vFqj&2VE-n5>vHlJ?7ig zA9~e`$=NK1R+=`a^if1++GS1aH1!4PBiQ@!sWy}R0Di|$Mdz?KYe`?35(8;|iikcx z1wTcw2kANG-aQpRNxhEz)S+E8L)x8$pLClJ{B#@)Y1iJjh5=p4NlBi?EP6_j?;{5P z0J&Sucv#OT9zu6xlkttPPeI=7b*XD!CeM3N58GDEdT{trY+(6e^X%~9L@JCARxZ9` zIPew2(Pd+e=)+eTcJ|XpoMELB8=3fy$E??+?I?SqLhOkW|3$CgB+gFTd09tH+xcJ} zaiy#yrtN&`TPNCiwTIZS)z?3%^}Zcx=y|+;@qPH37X6z+#9}tT_T%94HsXu6bR2vtJ@jcZ%bfT!N*=?` zz=s~OD#HE+*=v?<7Lg}F7ewR4*w{gdsbkq$k+h$VJ}4C*n|)QKfechZlSs56iyRMs z{625An7@HvWY6zvayi`R$bKsFR&mJ_H2C!BN?zb3ae7)VefyMrGst80u%%D>4)z|L z<-f0ZSKtNrdn87ZdSa*jyd}0c*!v`T4#_75@V<1sjCPdIfOg0D+wE&a(^H{S?iWtz z{lYhY8Z24Qf&S!(@G)fl3*FGZXN*0Xq90>RgidjO`>i@1!=9#}&t5^Ba_X?hjGPO( z#&*4uV10)%>AWhjM6f49+o|^TA9w@BV%GDE$05e$grEF$#Rz{R+`pK2N3g>)e>| zl&oR0)~WqFVt0I79ka9Uc>tfVEy$DQc7$_$-q2jh??7G3oUN!}Ew4Gq5zlXBT!!Gb zTd|iXB0M0zay%3x|0ebq9ybIZ*Q))PaaifPJNoe3m8bASPR7H2K150W_88u-7ud;) zBPZe8V`w70npj!Ex=qU08+Y$wjX4sIWvUdEM=Cu-Cf6$sXS#v(24f@%qMUp&Nx=nm2V>+pSlGb%L z`+7w#0-t@mEX z3v&JMD<*73=j}r#Gs4lwQt{~HE%8Jx>)M4W^kIu)pDsTCiZl#w(y~5H*9G*+5}g<5yLV5;mr?vta-Ih9o6Z->dPm|>bkn0r za`~5)>GfS`6>Dt?#Uk0Egw{XgS7gmMLY_za3Jq`D5n>VY7E$svvSuG^z1kFA<#5iH z|6A^iMeCB%Y5MHD6?|VMv65Qt^ZMPw>!RbuPi*(EcIr9>*b#p%;sl>taw_Yf84El5M@dUWm^0e;IaE6+hLL~*WcXCv${jy zY~i`s%+)!uB^`Yn@li_C{Q4m}IbZaJI@JF_<8{LG zhP~M9oa6D5J@1kWHJN*nExq?;nB)=m@!Ps}GWU^FjQ_1ujDHW~&pf^#8NZBm#{;WB z2y9ANbhf$jQuu8aI;u(M=3UWu55Is6lfwu_LMLAXU{9#h`R8goIZOEeq`3>`{n-7c z#esju8i2pYw46Oi+_S$IT?KEKlNU^{AvaVcimKUfTAp50K3}gXYg#u1a?`*se|-+# zBChgzOTJU_{oB}0dM)J?v{hT+X}yR1n7zP0e{It5!dAZUgZRx-juwyuO2fXMd@E~H zeA^&bXMc*bWm~|% z^b~Z8H=dja*;k^!={QyfwTuf7cCBOYy7)EXmnqf<_~W_ctc70MW=2}T6J796;Vo5g zEN{g-9px=$1bbMn`dqwKl;*9^tG7xYKRL}B9{b1Yt%g;9pWbR%adN#?y8Iujw@R0s zV*C&MpXjX*^gfOA{&{+<^x(0))v)s@Z>9BC=@59U-Cq@dz+V?dul`xDgMX9#a>D!C zrc+n@hJl^V7h5d4Tw)Wk!RXE-X`3uQA9|F%IoNkS*3!R%4|{XUgL3@FU~kT+^v_z_ zKd%3`j_ZH?XZK$^;2+rk>&Nwf&1d)D@ZvwP{}+zyf7EC9ujE_Ff7JXxe_a2U2mPPa zCli0Ho;BG-ZR!rmhv{#VYsJRlkKLSN|AERl;k$~PblmoXqqeBSHy8Syx>mmnS@}BF zDo))IH+G z5%4Z*zJt9-cSy_@l|6$?EbU*O;6v$l@yd3bJAMn~k7uNQm&v|WS))DEqbELT#VjZnAQOzec^`X72O#8g=TSh?|@r*K5=}FQ33V_QcP#Mjfn4 z<)3nm$kuxU-#Z?U1UCAVIlEi*dd&ss+T+*9+jAes=W(F>r+-tgedG9#UHmLR2F90D ztoQ!E@=d)jAOHSY>r%{vACD)+uOz;Y5ZC*(`Q|_Ln|dFgn?DPmj{7epWqaZS|9Cf7F{Oy>~Vy~HRNP` zdi>CdeAkE;K21(4!oJSSbo>|Oww|*)k*gtp6D`a}&o*=t*oi^Fo=uKN;Bh{-S+Ng4 zVj1y8O79ucu>IKk8CP;WL3ceZ6aq*sgCDp`%>=hyh82D_&z<#_-9!26{zHgN}*qXjF_8>p`JJ!sI zjm{%)c;eY2@JCe~kLh9-ll&T30r_ZQ{S<`@q*t!T#4m*)P(b?~^^Q;N$0y zWuGs7?RYoUYG=h&y1yO0tXAPi$^8Vmn<)ZM))IpCy{YLyLMZj7u7z)`^VSoSV!ib_ow9T zf7<%CmH~D2ECBc!ytEuAj^oih?Z;gF=<(yQ`K?WN20kSELB97B{XmZQOjmy=L7bR@ zt?8=wGvEAaV?4#$ID44W{L@f*>b3ETq9BjWzUKeM+PF`T2ikM*$YWsZ?n582NBr+v z8$ac@AKKrqNZ!S_MP2>#NU9I(?=Vu(&LSrt?8W8#pMk73BU1&k&dj$$lE)0oetJJX z=ldv|{dy9c+p_mNr{i}&Rb7iKx~Sv zNeYh&Ke~+1Ka;`aGHQf>782(YMMmYfpP8ilEZ6$4z27BThn-aa zi+&4yF3B++qx)EsH3I+poq(ptzVDzH1D$uwdp)0#)HycaS84w@d7S^N<1h2Ex_do68xjrLh~< zD)~Jm9bZS5m3sTyeWMfbw5=&aMAx}B73a&9b7qIS)^G8tCLam%yBBrTcj8mY_>k!f z;9=h$Bey4C^G{x=^`6$74YKBcO#hsR6xi6(gFd}WPp~iY?PH=gX}A(gh~IybIQgj=Ev(Ytt%;un&U{y*LiiS3&tpG#(;@R$VfN$j z?cxyr@I~cYj992sx5T4-=W%y-zWFG&h5d+j^57A>MvzYHOhd;ybnEjl5%+HVTZ7KQ5rbE$e zzTq19<{^BDQ0zX|?|X2bc5*d!D)jkQlGmW^5sfE$HP&^iiOw^9-$VM9cWVxc-ihT* zDSMF)Y_pR-H6<26qCOV`^f6Gd)^b^rBtjTn?vu7)J zc6J+M4eeNx{Q-SvBpz*IUsQI)e6$++5Ho7}41+%WK_7S4r2&mDLI>fecBD(~Q%C92 z-Qp}W;x}le`&9IaPv_2>MW3^eNZ&i|&6e-^RP1_L6IbM|pof%iU&dY-`tHg3r&&e( zR(G22S(C&?ERBJe#piXS`>p4EtxjRekp9tb27!KzW+gVdRr?TcxH)f+m;Mz5ANw>f(LHJ|&&uUQtX`usfF?0n*!-+3(k_E_0_ z!adf6A#-9$bI(=AUf+goC2``jyuN#W=gr^bZ+Nj)qVtp!u9ccOr|k2lPI#~KGTuqd z9OO7P2kGJ-O34><7WUFJ+;zT{^LSBOj$VXLlsWam-R!53^N5qB?cO68!)EP%?=|e} zco}W?4|U4@(9TcNw+U0^WZZnLtNR7oALnCS%9?TYKe!kF8a|I4sruCz_vnw!rENy> zcXF?1&->672mh%a%srU-+(Ej0y5}~+lkz~n%`ER?e@~jHZE~JomG@)Uc0a%Ulda_~ zecPfx=O1wGvatj9*2lW`*8T2};v30y$J0B;-La2#bid&L^L2@#y+3!^^mH*X)<5yAIZ7i~xSShSuxIiH^AjGNb* z^Q7^8-rJ9%(Y$U4cN{-K`suTh_MNj|9?Y73Xy@zhXFUI?ikCf6bH-*n^Lpkuhuk%X zymlNQ?I_W+{ZRV$+NC|SpRMoS5%PPd6U>=CE4cD2^E$V8IFGIFe4%IL_lE@K-**L- z&hG7BJ=E#^_G_H6-~Ya|=aLsXw|_h3^z?i`(Zl`3V`JRw{;ENBmvGMuFLdsH?5o^K z9&jI5&p|!gPm(h%f9To%8u7{Sof7<9Pbd1?`Rbg`S;TwZtgfC5pE;z5bOz-oy7)dM zSocI%=czr;_EV2`dNx1XIri+cot-Ov-Y?C$9p1s$bHoGO$GcwLzdN@1xlVumv)t|e zfRm#>gRUpkKG9(RhbV_HIGwC%5a#~i>?c$o3ab)w+LPwJUVQ^>VlU%NfV`{P^YU-yuA7 zWak^Yu^HGScl96Z!M1}s7{BqKkrvvq(KDhKWRK7GW9YYvrrWdKZ&}0X@DEtMZ0sPb z-#Vk6@$gK)CEt|of%LyMx8{z$?bcV3wD``zeV{DyDq#s}X`+GcJ46m`XZ-0lDHb?i8O zmY6j)%I;p$D`(Xi+vS|;t7N~=Hz=na*p&B+uWrA-1Ef2DwD@$HD>vrIYEKjPuFRX& zoMOj2@gLwPz!vBJ2-e#e!x=9YW6R2&A+x&vC~+wpWv^OqTgDvXP?6J87x7(mzV>S6dltJ`(k}O>NPgr# z$kudh%d;NI-IWgO4cuM%dTg^}?x&q}JuhjE=Gg3a=z4z2IX3sUGRKyE5zkLG$HpF3 zbFi`Q3G&0ejB{n})!(p^pY-G`I*cRQL3oq-YA9d4@y6NX#jDMVoU)F`K+eLfO z=e1*VwP-#p{jOpA(k{BBJY-7v5Vu_B8V9ZeFd+w||no z+|sXhtT>|w`&R4_GX^$k8EEs>e0Gd}N!wEXV%nC{&n69a+@j~yTz&`h!qNNd{_KBV z>SvzdJu*)$mA#z))3wzqkh+w z+qR8upEXC)5L9pN^1HvU=DGg+zvp!J$~#V9n%FJxqGe6bfBG}Lzu;Bid5NCWU#R;p z@ScK@-!2)YZ(Uh`Y~H-*gLnU+OZ+Us`)4sn{||k??v>BfA6xLW@{PzCD|WA(sWIh4 zd8n~VmG6~1&XD$@)-oOOFW>v1YG1Q=td{#{6pg!mbbT-VPP{DRVM1@%(3CZH4{hi* z__Lp&F0Z`uZAUNMqt;PWzkK<9q;dHR(OtUpkR8`HO&cE99`Qwq|L5q}&^Bc)rqRZi zK1VozIQkgwNLzT>EYdKWxVTU1KJJs+^PHT=JG%Gr=j2R|ve94u&q_DWa0JRvA~Q zj|25@_eXIIH{y6~Tle#wx15SiGF!$2{3myUAAo)p`t(%%2c$*DrA3TK$J~d1Xb)+e zC{0%=-%)h;)q5pP@R25ycG5}OR5~Nwr_;3K9GyFUJS@i?xUQSFK$-cJAx&Vaz#fcgNZIGjggg1n`?qB%}N8ZV?d&lRU?aT|tJ~?au*w+qM{JXDu82-<5 z_9c<%x$>p+@9M78$DTgK-*KxmHhU@cytH$7$2q*GW!AEukv#7sVea$&?YuK(H}6OL zD(_S2d9_%q(k_f_6a_HEv;^wWe&UnDp7E|K}EmgywT zr2VnOd;Y-Ms+v#BejV}u#>+?Ek0Rw0*AG&@JzE|;q-Vh*_3qD}yJyYy=QzuDKQk*a z_Dt3p`|vTmTNEGF>{FewmCx13e#pD0&fTEjCB5ZA%7*%#{hagIjkEUq&)mg3ey(zM zKYbT~j6CBkub5 zv8z5Znp;GA=ghg_t_A4Oop+x)*1=w}$6TkUb9>>g$DZyU+y47QdbkJ9&ph41yE1qe zRCnj@c|Tp&^9giz-;#uX$g4ZY`gosF-yw;fOMiRm?!W2l*!}(&midP~me_vAt9h^G zt9VZ^@BKXE5Z?K~{CeK^6WhP@Drft*=h4o-RzLcXU)67Ro=qI>Je=s6{XqS(-+c8C zJ+qUuf=h1g>N$dO;+)qd?mB|BU3J%~{_JNvdd@i_LHnDvo4;w(OM71W(nQZ%_+~v( zzw1}%;H$1GNE_XL>PyvF(KF|;KgoNwZg!r-Cv_YBL(2XpC%EL7#QzNIj?iZ_9){hW zM?1IDuJJ#;6dw}dU2iojlnPPqPuz9ubiW|-3ndHkIf#IchoIaHnNN> z%!i{r8M|pCY934dbVmNo7MrK@m~Q;I&n(-0$|o7)KDo5#6w-C}GmNdG!zY^yZ6CMK zt@E{nqhyqitGTwU<~G}ZO8l+yat^Rl=7&drEwV-KKd)!jqpj^q&oNuZEj>q*Js;>f zZI2$HbRPChPxt-ji|&>Aw2WzL{F;SbC3mi>F@pWSdK{KJ!&>w!?`)vlnA5;#jX|98 zxzEI-?B1gnF~*85r{ZHyqvi}reRhO19Fix!rqRW^3BLX}+^6Og(H@i$>O=Yeh`&qf zgSo8Om+JTDu^6NR&> z*gtq&X{fyQK&J-ZtH<%Fuq-aexdFac!dDGPMh8erg1_Y{hsE;1P_VJKp~_$G>u~Ql z_rZ(#=seE1@U^BhN<+A1I2;`5zcB2pj1C61{-MDGpMxLu6XREDnSk4I7Jc7!j)8y4 z+L5q2vZPw96$dvK2l|VH{Yx&~v}9!1TXNAx{s;$a)vd!r{e!h7Bh_HZ$kvgdI504> zWJ7VF)>|EM&Lx}^2}jEGP(Cn*)xqL`8&<1B)#F{{!)jP|M+eDcu%TEQ2;E?)92&Xf zkzu+w<8<^7Nh%!YQPS~7zNJ3i#OJNyrlIOqcc6b$f6WcI1YuYv6^oKva`~isUhg=` zJ+AW_cxPG$n^YV+{__cI8DaJEk^DGau5;vhu7gY6>Ed(l`L44U{NP7jXQ01SEmpTK z8L5?3p$=2%!N&f<^#pa&(3TU*TL;}`gInKp!sy^&aZ^}+)9YN#LJo>G_xJ;8D33(# zK!F)@*862vG$Gg?hL3eY1ZG*e+%(Z8&={srJ$)~M3bJ@u&-sr8P zW-jcn4h?RihTIE_)qYhqwIR3MKQcT}-0BwH5*q`~9+z^KDCg4(>HpJp{&9SXvc5u|jey>=)jjJZE>9iK3wAcErP2&FnW zG{59BgZ;JsVvWQ|oi5f4E^<4O z&+u*PXTor*n?)VC@(;mPhN|x7D&Y;TKhXIu@=K6k7DygfNaqTQgVeHHRKHMNYqT0! zHAD|}&#Dboi|a#bc3?Dg%cE7v7y%Ylsh7i%T6I)u4oTYuF8}Isew@GK?NgW45|ULM zkk&r%u-1FCDAboD7Yq#!hAJ=@6&KcuBj^;-O76OWutN8vuxeW=&^jD8Kv#d4XaX_^CR+LZwNNr?@L>5(3_QRwyK|ZUh{YW62ii4v42RDuo+Ne@;1Jnb3ln90f*Ej1! zjab#u;aXTGsiVWgs37@MhRuM#R6`u9s3IqWE`MspKUCX*0#oB0qcEL*{ZO_4A`y_@ z=`I=?iT+}!Y3Q)e{@8Wc;_TeRx9B9cn>a7wBV(uhEuWqUAI!Jt_LuUJaYW?gZ}}X; zM`*$;<9MEr*eplz5ndUCM0ZMf@|)0vU&1_$kJuQm;3K~Y&*6L|T!};e7C!k~!oP?9 ze&i3)e|&D>?}zxD$lqu3Df792&!v2><8u?APxHB#&wucFoX_w0bpOb8j^z{ZxtPxw zpHJ|)jn96<`yAh2=kp6bd-?o{&z|qO&Pyn##e5!t=XkzX^9lJ3^SP4G7@r&Y#C2Bx zkPNTdI&dG+Hs5ibI`5IX9;OA0auvOOyh}b;!6*6c<6Fj3Blj)_Gbv93qyae2@>+9T zUvru3ta%UdU+Ow2>`ld*jB2U{IJ*c(>PhUf*73J8Ixv6&rf0$3hP4#Wof=(~;qd}- zEFk>-e54IMLOP7iam6;*nSZhC?BX~3cRS7Y@9t%;v+)18P8$Aba6xH|R>jgp=M;kr zM$sbfrqNos#iS@0s)pJ!9H1jEp=Sges-!Gl7I*xlSr)bJ%{1C^4#VS;hjEpOHpB89 z43?;~+l<3f45W>Frr`mq`E_`B3oWakiM|7Y3 zv7tDE8G%k28XY0WC3Lxq@jEg!7?!c&kbMI(pySl=uSffV{)@C`--Oj9D!s(;A6BIV zPzF{BUW0rd`3cAV=AdbYwT&TVKEmjOQgM%ZqkGzlxA&d3;`B9VFI#n>^AKU3Ojz-} zMq~A+p|Vs$!!B9RV8!?oqK*46z#!0U?wgk%@0R*&dQ=U!Y`_{q<7Iy4Iyu5#!1pWp zzMJ+h`amW%bONlxrfGQmf#euV^QB)>Ox`^cy=j)4hyVy}{EbHU`b$@Sp3s-aVx6I6f1$zo9-y42Q}tsE%yt-$a5oVeGxh z#ej00ZxOEa*_-&5v>iw}zMgMW>Mc2o3VkoUN5Uh0So(bW?_E{@(gwC&jy?uYqyytR zY56ajI!O=dE^}L~TxBOQ&by_pwQwY|GY@pu!7pRvDBm(}wvfSwejW6K!SOt(z{&od z&_!pL$gAXiRdFlhN@UXy$V_70nc7uwJd=`Yad^?|*GWwjF{t5Mr;U2Xm0Mk;wQaGI zzfF89o@ly07!V;m3m?-yjZxxEfrBEJv{>b)b@AJ3c*GVNA5OKnx$nYIf*OEF%Kl}1 zaML)v*}zqpDtvQ884H{_?dJjlgVasnS7>@ zO=i7pD(h#{*-SQ@&1Li1LN1x}a;co3OXo7VY%Z6}=L-2`-pi-*emc+?v)LV^vn+m>n4fi7vR;C(t!|Bl6Tdz3c+m#(rA-@>G8scdC7x=_h5#NuI z-NSG4xA~U1!^i_POq7Ov$<$TBGU4FWT&!dEYE#J=h^V~HO{(Cz=*u|z_iN)pTJNT@s)$1E1 z6U)c*Eac}se6Ag>*Kgokc+PExbKR^cy)LBve7Y{I*H?8ZzH1Y)2p93QOFWA&s@Lz9 z0$)CF-8wt056%AY94ow4@ZNoKyD1xe4bK&v z|C}nEN8q{RvdP1dI#Ugadkv#HapQIBlJAAkpA+8Y^OCD{{#C9;ekt_*&{dtSZl$}> z*Fhh+f;8|q^7B`l@{7t%%J>R+?ty1dr{dX`n52*;zB}M8@2uCi@i*Zuji>j!(C>rp zYWlb~x;LVqFbRD=X?PU*s61NaCCnuBuJ_jKM-mS4ub!xm*TA#?uj}>ObR6T_@j`yz z0?)Rq>-Ds52g!-rsPNqc-!<3N>vw9trRSUS8|%Jq)`w=RQgq>a5WWTPuh$o7zIE|( zmav|LXYSwB>%Z1K6ZQ)!kroJk4E__x901^b3SrFqmAu?_lE20_51|!NqX;te&-bQ$Duzo3Ef4$ivjj= z=u_3#B6v1@Xlk7zX;}^5Bk-m9+gaIKc9QR5=zF0r*7;6OmG2vb_rvwN$W2ra_dtIR z`b2HnMdT6ahkayfeae<~XB#||?t3o3-2r{|4V2*| z1Id0Gh17I>T}PP^O|LSGL3+)vc&=WCs~bTVBw z0N*u#H$C5V@ZEd!)O?bzd*FNOmPUOi?XnX3Bhc4;a&r29=yy&*KN2JDuv;gWKLL7e z61q$L=R@BEeN9v@6ZMI0@O1sdAriRuY$gu_~PwN((owsVdzuYOT4$b)4ExLW;v@9Yn+$GLZ=*y%0PS)!D9H z2D#AhhW;S*z5I=y9oH9y=Mi|W`zP!Q;lXx^kBPz~&e!F4OwJ=|SqRTl@JJrxWi0gN z(Dy@kC!ou3<%oWprjJXjgs~HzZJ(W7m){2c2I$e4J1z`~=OK8?pR3om=zcoRHj#Mt z!gKfTs1Db)j!zQC{JG5cp&Pp-US<+T8lFe*oH)NiUo#E87SShb)7L?Nj_^gdOjO=? zLf;Sl3ZZwbZpnnizX$rdf1X&63;ikRJE2b&{$V&3u7N&L`W7RfhQ15>Kx6}M7;n2= ze_&+aCgCr`|L9%y`nlL&FLRPLc+xn`@!(pF;i)=<~lcv0jk!_%8IN&==_Pm~_4-aqWk9@s}qbtB+(+VIlMZ zo!4=5jT4{`Pa%Ik^bJ$UUkv?D=#%M{8=&7a1^piA_d$v~-JAAx?;1K75a-4YLfKlDXkZ=`RW{E;~6Rzpwf_{Y&t zfW8j;M0!HX?|kT6pr1Qg{-NIiedi?ky8-%wZ$$kuHkXj_?}2_U^ojJC1S!w154-yN zy6F2u`g>vY`$Did;saS4P)qw>Z?4drloelR73;bon~PShTJC!JUMP;UwuG;I)C~sM zJkXR$_a=L@#~pht?#EOz%O``&(L1)1$_L40wwTEmGRJwBu+-~aVpzPKpYk%jUMA-( zlQdQPM}iBT#NqteHNU%hp`Yqc4SRi?Qp2kJ`PqJ?O3l;d?5n?8z#P} z{%=Is(8W(9`8D_lVA+#r@FQTeH&5g_W~#8E&jm~Q8GI<%?9CJYH%8ddPXDwBSR*NsG=AJLir)y1u16P6scy=xf0HsXs|Zg8I7|yas-wPrePl32e&$58&@w z@^!Fl(cgeCr!@|P9CC2|Ai!S_^TUhu%5#!%w(S`q078d@m#rPkx=)(U!3k&~m zWBgB9bm9Mlg@ylc8me7BM@qwOJp1aev9R!;7~@}I(Ix!TEG+yRV*G;^UHEGj7XA;! z_&;LNh5zFg7XE*U@qfvp3;%r<7XF{d_@A)o!vFs)Ec|ouv)JWxFu3{9J}oT#OJe+K zi!R|8EG+zI$N0s!)O_~UOBNRXOJn?3Sab>huPrS6x5oHyx9GzESqlsQx4^E|f4&!! zf7s#|`9~})^3TQi|76jHzXRWmd4&J9V7q*ewdlg{Sy=ebjPajq(S`qA78d?XWBfZT zy6|6ZVd1|O{K(r~$0dCZ%TTmE88UVfK-^!iCSe}rGK%+*YIHvJuQTlqy!_TuX& z;S`|@zJVW%yiNa7L^u5M{gfpi$M?f;)4vJ+HRB6kYCL;J=wNA9GF}~p?_+7vbz~ja z#4lJsy8diD67d`QR`C4)(Dg0h?E*WDUm_{vc{jdL{mr?cHGUiaH~cn!3Vg2>-m9q?DPR3`IIjiYWZ7%Sg3TEf zDgU(*HvI1ZOMf)D2$ue6@OrSEtuc5L*qpJE@UD-rq2CBLXK#f5^#~jKcfjV%htQvo zu%XL_E9t)m&jOpXHp1^k*wAxe>CXng5iI>(Ki$sBU}?Yl>2Tf*miA}x8DMD-2CoH6 z{TloZ@PlBFA0+-OBW&o`fTjKo{vg<#sS*Bvjj*AA6)f$+;ID(tSsLMgD#C{TJXqR` z!Lm`voShN=VRYB=hH*&>PRb`bA)SzWU%Q ztsiT2J(*Ac4lMdl_PYo^@~v9G8Tu(;(O-r>3>N)l=-aILWc-$>cV6H|DM&asK)3PV zgKvX=0vu+%5Ud~kFA?2f`Ia+1`k_R6TJaq49Lj@XRMmG1{KFr!XFS5Yz!(4DCYEp( zRbBbwNjNV%tQEf+d@u4w{|T4um)B3ic?j(cAxW~emfzP+_Rp0>& zzYlzkg~!16Soou0IlDl!Qt{mvVH4jsz;doZszKVz(-AiGKZ50~gGui(FV)!47lY*- zgpofd!iN4%u$+-NI0}Dfgbn@uU^zd5npW|DA;O0KC9s^W;7iee6JbN&3zl;ib0hjI z4%gVwj{?h?3{$_WB5deqg5|u13I9D2HuUXaIm=<_pNX)c-wBp;9;j)RzMnV* zGax2^^N-Nj&<_X8`4CgS%OY&(Tol6*wJIl_kiDX^S5d09l? z6JbODF<8!{@TJnPRRq3KTBhQ1#x=XhuqD!$jfTw_D;1!ArpAOqb}7^CE2MMX)*RCG=||Z0KWP(U%5)3@rNB;J*Wl{x$eE@Zt!`c=b=< z=CiN%iAM(i~5&2Hy!b{ZYbkFLZTq z#Q%Bdg71{^I7*LA-yhMnfR2C9=BB*-ZsU$uw&FS9D~Mm*d{Uo2xC~b12Ywg0W?>2M z$t|vY@g$u0LQh!s+TVb0Z{S(Zhrx30Og|mY$H6C9co*25QhfEt=(C)aU@0%to-bXe%Tt=I zwBM~(eA0eD1n!{xRrt)8<+1DQVdyp%`ksqi`Qk}9KY@O)mEXsr@HD;K`A_fuZu7w z|DOg+dKN|aNwCCk%Imm5r;lMq@%LEqOL;8;+v&?#bn!?1RV;nWEV{98?ecpkbQ?=n zJ5>5%ajpcVa)2JWae{H-Tej5v)oX^yc=C|84}%w3{0Ug)%%-hx1?wl_NYU6>e!pTH zKdMLP$HtdKvaztam+_-|G{22^Lb9>2ExL>!)uZ{>T;^)%jK}YX6sOCXE&U{%>-bah ztDg=zZl=o1;G4iw-Ufe?KkfE-yCErtef7_Q?f!D0KcdI<7rT7+xXd4|@)FkDEc_$rHWvEh7X7EtZ7g(WJ3p$2Oz_mEz>mA*=|^6{ zkLuC#HvSDH8w=Z<9sH;s&2QtqkZde$3$Nry^(35U`11~{{`Z6LwQ$E#j1Lx;q4jYK z&jUYc;lsdkepo*p&db3^N+GGI!*RiKX4v3kz$-1h7%b<44c!M{Vd3M!a_-mAmx1rI z@Jg_pEcs6mh>Qof zgC)O4|G##PZa*hLm-am8Y@Hq>e;QcY&$SW#*0<~OUJ!-1G1To-#ut%aP|@v0=_~N( z!BSsyBmO^tr94ddC#=`yXYi$9DQ}a$uYjd}$bNnazhi@L56T`PKP$k)gzrY-?*yCk z;ga8Pf~7u>jOg?Fb^W~|!fyjheMx^6{_DU}KPN}{VX*X%+rSe4M#|qj(qFFvOM7+s z(b%7M`~6x(*D?v`o8aZ}ud?_B8~R_pM$-+J?`ti39501GPG5MHD{MRo^{g5OK~H~yNP;E#dNRiSr?xHIRy zuKG6d*?2enHvR&5CH%J|A@yls>p4onH``(J}4KVq3ne|+29bbH+fmi~7wSlXk}M_)jH&A05| ztJdoL>+tZ;gQb657s>w!eJ16fP~mqwN1dbFkLWWAf7|&we}^f0hx0G*Cjap3@VcFY zHtP1hGUERLSn9{b_kFO`kI`SX0bReZjKcdo*xa`u`TJ|Dd_T z-om?t-@+2llYi67Z{vS}-^Rkf@`J7XHogOX8w>v~G0N4W^JC-B!*Anzz}tQvwf{(8 z%3famXn7m|3Vs_4->w+HjsHvHi_y)VVQG)Qm+(I9I@<`RG5&(}lW+>hXu84jz00D< z@rm%q=?g#N3L8(99}BOL@GX2A_z~l;aJrO~+>@uDgmWu&u~+od;rt``wnv+IH~0<< ze*r9ag&6)XfgiQ-{ouV8{wDbFpEvpc9ejd?9|o@i`;O$M!|8aP#z3A9XAW5EQ$HQf zJh0?PKV8mY;KdOV{r+-r^VwH-!M1+?1o~Xsubjz~{`jNSy1f~^SM?vO5Tqd!VuDQ}`v{JX$X zzJ~t^u=FRB-X+7Nm-cAl8wE@IH28~P+aCQB*xdCZ`sTz7bp4q09b=WB(cgA^ISIOr zNv67gMZTp5PlYb`vFIn^tOD=+x!dqhTqxl)sb0>P=^tv6tppOzS0lQDQTvuVUJU*^ zbiww18=L<6MVfB-F-i`=P499NuWxP7bHL4KU;PlU-JU;lx{faoleE7%_!p%74K9GC zzE(%{!>#a4{cf}Jmx6BNJotw{Z|c($_)+kD!jt|g&wV$#>RW!1$Hv#dZ)2hVFvc(U za_T4Hd=UPdey;E0k?`+{u%>r7Ujcs$`T_hP^d}>1=)VI?dJTRKEa^4)1@K-AcfG-J z=Ki8dKM-u|lb3*-&%XKsuwDMW=nKi;I+&#Vhx&B+$yraqT~!^vDlhumDPW1;%>Q0( zg>UM^E|0&0ZevMH%_^^@&}}UAi!Hj~@=dOM@#y-o@e1T^EL{1&bLERi^V|3>@Y`6p z=Kj4aUpxtCHFUfD&IUK1ef9IfcKLnmtvb9tFiCm+6fEg6_Uvi18$xW1-tveqFfBl`o!z<3V4D{^?Sv+c{4# zbU7Pq@?-OVIHD_Ye;@-p~Qu(^**_zyZxV?%!lSjyAjBfyA6&ur(F;O4Whel*zb zUn^JY@-^eZYnZ=C`*;!|>2JTq|0eD0ga{9<(e0gKNzvc5PM7Zju-FSvqQ9j5-WJg> z9ns}GH=^GQmhwL&!mqc|C;e*`Sn4xvwKuzd-yhKtmk`vyb8dCj_e6LMew%(h*e;)s zgPYI3`rm`?^102TOZvVYliy>}MSuJ_CjY2K7x`Jet?|zVHy`%9gYEbiSagwpQ%rt^ zMVI(j#pKVj=psKHlfTfSi~Pkg`O7W3$bTXxe~U#I`A^5>KWouN{@dV1)R#-9jXn{q zpM-PF5=}SwSnx{ds(nWFE!fcCAJGlI4*Ur1>mYuR{vyvdi~rxC+gRwkEc$)WZ7lSs zEc!Q~|BCQYV=DZoz=u87)VHrrI?hrHi~OS7T>0W*e;IU1pME-=)nEzF;IqLJp26pX z&E0sCpQ|El=8Hav2P}8|8T?ML#BXo_w)5W) zZa(|!Lts1qAFAp6p$3&c`xV&SAt?H6)RLF-`5^duE57T&c6>Kl{L&wGf$jJfjcWM^ ziBH1+2aDg7zg<2LK)12vt~D0_NziR9^lcV>C3G8~4qo@TD{MR+&KmId9&r^Cd>+_tFYCa~hx4#tyS-d~ zp_cE0N!rVOUz5pyGEBH6ys)Z$>BR}uT7mqG~8^6?VrN084hJOHVGd>8`Pr?Zz zy21V6+lX&IKS=!Y++^`z2i?XW1K%ABU$A}>&Z80C;3ouI;lG4}mHg|c!#M&h`8W8L zV9CG1M}y6so07iMBW&nvz&qf74L=C|(g+*+4zT3U;H$w;KHS6~089D|{UczzeccFd zKKtsofbI76i_Ng9els2l<0^~)dFVElmrT^4 ztN5b!AXq;MCmYcXJ^?J@>!-sx32d(ytpwZoJp^ZQPVZt{1Z75_!hZ7gB! zwdjI3G&Vu7{sRB+t@K?9e#*kvfbH~s5ZrwB)vpKJ>Dxc5<)tM{e?Rd;9lq*c;2SM@ zN&gqYcKBbm=raC10Jg*bmPHr&-^AqiT6B?rCMLh%qKo{?vaRvI8r*zXp8(tOA8XM? zeq~Jlbc-(WuZhW@XVFD|b4>m{7G31G$K>B@(MA4~G5Omqy2yVnCV#g@7kSC6-5&k} zx{ZGfevbBF^ix-k`N%JuSmezexuOB&s*r0fe|s7%^7`p;j*sLGUJADB{}gcZVLkx1 z%l}M^F6kcvOZ+ZEM&H`$`AtOEVQT%o2Y!Qp3*E*~gBQf|H~(Ln{IAB4x3PqCu0?+> zbQ>QFegomD{=mOygBMx&GVmJk0>Tmfc{_M9cy@#z25$ko5$4Oe_ltt$(fP4)N1>HI z2Ydtarv7}eLM1=)VC=c^JGGd_CBd?<n zw)1x(xcM+Y2HW{NeX~xF+?6Eb=j9f^$?vsRe4l`B<6FSDQ@-61@=|`6#=_rW(M3OB9Si>h7G31; ziOGN2qKo|3V)Ea#=pz42O#Y7+UF5|vX6LV49A(iX@=35=J{gNH^2f*IPqgSF|L&Ol zkVO~yT1BLC}{{C`<=k(Z*l?aQuw@vy() zjjdRIz2nQSeDO#tV0`?FtG)%l5`MetkrxcT5e z1l#3tghdzmlVb9xT6BqjRZRYE7G2~oj>%tU(MA5snEcfiUF1I>lmDVc7x{Z*^7mVG zk>4AWf7+sp{PQvSx^N9TO zU|YTpZa(|!UCUbK4*;7-6uEce;T{7LZZ zz;fT6!71>g@Gpw!CxGR?J3~JOEcXizB((e*u-wlh)hywC04(-wBrUz4AU1!S4mj{4^QS{~IjpmxlkCmH1;1b$R2x z=06TB_g|Xyz6~t*Uz+%~3jbZr{M`-~|BaaK65mh2a=)cX@7Zs5)O}_5U`Gi3DzNx( zU{m-`u(|JXKJ+hwA3EeHsPH*m&bPp_9&>)ge>m+${5!HgPr^GB{M~53#e8R$a}HS6 zi}rVD`uo6k{`Z1qy-V&87x^Pj)BgPhQTXS9Wxj9H_pjhG@vn>M&w$0hyDP%!ReHTi z+Ps9<50?9}Rz>yoaj@LqGZ*?xNZ&WjYX8y2QF!y# z>hmMlM0n^N;@jA)uRnn0KBa3T`X%Qg53WVH>+P(EY;v7FQF~qrmh~99r(4qd8}OV9 zTxVOv|FmG*ha2IG-@$n(=*uJgQ?RUe;g(nO$51hHU&@hDcst)oernL8{QM_a)@w}p z{_0)YA3-ve{O+)|yhq=y*Uztr=6r2SuZ0qLWC&Vl|C+ROLA z;y;zUwIzQ$tEBhKuCp_ePf#$jKDao-?*fbeNba&0{&$Z;|FrAKo$-Qi2FvsuxpKLeSE*L} zOT26pIxi~b{l9!~;KkMYFa7Nd%1c)VdIPVN4T~Ai%chgbAeA{TSU=jEbo$OaJ)>TS zmy2Fu=Xn)g06DUuZ#^#~^Ku(_uUy{C=7TU*337!XwZd7rMayM%$mx|UmaT>{%vZAI zQX!j7=lvj=4p&SNcHzw8=Ci|K;i@$Y*DO4F;j)FNu34Cui28V|8(}0%UQj6Hc|mn1 z$a|%dip-N3Q%>)yB5xt@tz;^xTr$jgsZuUoNM%cfd?lGJ1j&LQrc3#9uh%xG-!^Ba zZBFk+BsATAsL8fjb5dHq{F9b{+E01XSy;yT&p-LLBTET;LH_aDPa)}opIYVL_Dd_P z_{kVjI)wJKrc2|c5`A5Zeniv7%<9I}S@)bx zym`2fw~>y7wcbFQcvOPs_h5Ld{$0f;eSA2mh68;Y`eBq_(fq*^6-8a>vQA5Z7tUI< z?Bvt>)|{bKS|(E}dIeNXsmS~8Gg=)LTBP#4dpSUZj%4*4QoS5M^eL6fzy0fZF>+os zWZ&vD&O*bbGo`Rp;9Z~jd?k}hmR6AbNVAo^uox!8R5`5V0zX?Raru5WS;{9-ZB%c{ z>Mhf=s?MKkbdl)=RN+t=?IuR`skExYbo)}ePo-5?WM#44$UNOGR2xaFm@}%@Gb;X! zYC;(mC@&>2^*M3hp;c^QjNl*j7Xd3xiB{3gGA(a+-PD_}@IKT`*~_I<3@xRi?svMM zs_0VLsTft;QwhpV#ilZ$^Dq^gPMKn+0H;Ww3M$g!Q?Qu~pl?!BrcbNPHX>GWG6slt zo-&213Msp3qgJ&%ZB}%YD$v3d1*4nY^r5M0n?5vEAC#PAB0p8Msy_7SlbniARY;V) zkqyOEZ^6rz%h^(~=#_Forl{4vYPBlvD2bD^>Y7jqba)wWxi8pI!M@>v zVi1b8xbVzV7Gl_ny@(P`mCIP0`HWXdmx^JzsPuBCHH^aeFjlQ596mY_QkySlDq)yI zw-<^P6-c%vkaTKXAWE_K_L7$V!S%hpXQ}Tf#6nmp6nSk*#xLayyi{3*m}?0!?~Myl za^2foRqwOz?bYwKR#`U5J(--BdwctbdV53O5M1r;Rd2$UNTZ1JC9jk&`(A)SoXqAh zy-{jvn9Ah)B&>;3J(@}`ERHOcFP(_Wrdn_BIo1AJr~*!^calrfsZ!{ExsWZElYXk4 z33H`PK}ACUlNrRH5lcZwLV*%TCM>1{FB$liJQd^RbsVbQH;tH5Ia#ihd6#yD$xMpZ zQ+pLJU6NN_dqIg2TQravSf*uFEzhTb3;NyG)T$>VaB*~?*0*73Xk&`Jjpj-V)jz?& z(8y>tK~>bBkp%CQH=lXdn!eS`PJi>s zq^H0ed@{MvOP34jtmg-|g)v=P#9n1|L}M{LqC@ys{UR1Df1{@Ow_*29TM?01!*-rl zplJ(Dn^Ket^Bk2%zy117p^*`5OgpAck!3@@t>1kWTl$1DiKxz=r zs$n%tF_(MU=iPRoYG}=>VKCd6^iP`wI-10z$~pTYDpe;^6>tL%4R6gStim#Z=1eG9}%NMf+ zKbwnYYor66)hP91u3RjIVc?asm3%&%$pv{ok4q^TWGlsTC8r!FBb)nc!G>PkXaiv{ z<6D%xiHG5FqiB4P_Pla95>)$#YyCrmq!a5PSITC~KCf8Az{Bw9UG*1^u~&LNs-mHW zrY#nle$?EjWn~H`{YLi~(^sS=n+_lirlBjQ4NmvuW|N#=K*daxY&XH$KSS$nTR=DW z#7jdI8nzbM4oUo>I~4+RlUSrj5~M`Xs3yoo~M#FmjRUeET&mqd5W% zUy0h%^OD;6 zk!-&gYO~NwwqK8WK=hKTuXvHKOt))Kw^mQLK~J|VkM=UT@sw_LD~$JcG>jEBpYQF} z(`+@vUsf&-*TSke1{z%aAr6MKYGurqRYSo>%e_!8dVyE;v5=VPrb=lwE2lcQ^ft}X zBpf-9|H6DJ%fdsDWIZAs7FnCilq%(tI2xm&X?oVij5yUllu;@3yb z39EhmmA-&%FdOe19SL#NZoui{m&-XX<5$9D#tXC;L>W4Cy0#;4G@j|x*=WntvuaPE zuKQ%v71VFi6539i?x#&_cKUdAKb4s~-BlY2p7vaNdVb+C>b4!fQboKUScRqsQ!loT zqk9r#jx?=_y?x44ryL%oVz3bhVh|QiGJoa5K{30_xfQ1`J89L51d#mo9FU!{jMba*UMlGyKWF-W1$qm8peF ziu|Km8mYm7(om#fDqRR!?J4Gp;*lw5!%C)@#JiO$eIftxzE!YFm+Gm?K* zW_7b^tQ=9uEClgyY;rw$C8;7%!Ro@(MM48$LPG_bhQZvEP_b9#UtO`<`cu6R8&G~% z{Q_%E{?<)MTdmS7_$}Vlb;mU=UM1Vp){-YHmy@>me2cc8nSZ<0M~)_r`^Z&IHoTa< zy`^xyxX_D({XyRbob&@BuH#c=H%LvptydSf4h$8`QT1iAtRk1`V}71Fa$Y;ttzxD? zRLho%R7FlPM2f@rLcdgGTShKbEQekxSt+86d55@P3VdE0F7?tjtLji##mu{7PSL^y zIhxizTPg=hmO5~dCo9Qh*;m_A3I*kFXsg7|sugSf0VQUNYutoi6>)FxYAI>MByI^7 zN6=nDB^BoVY%)t>q>{O;9z7ca()4Ag3%g-xOfT>vSXCdvCq-M=inQSX;+Gb$&iLLm zz8~oh(Q4u7r8f^1H+lC^eJyeus9uPzGG^{Qd&X?5hqRGnDQb##}EvZcB>hRUP? zY8O;v_31CTM5CIz6cAlXb*~n0dqc@*(iJSQe4&!b6@yY4pME7N`#f0d$R^YHtfU+W zLjT+7IX)W^yi{#NH7u6<28P(AkRKY+e|SDFsakbtYu|;%fl=9cmBS&$Fv~uJeA3Sb zN!3clULahhTG5M9k4%qj9Spp5HDoIqi+?od8mL8%&@v7w_baL)VU!L&GpE=e>eo^ukms%QlX*=ZBfJpGkU^BI=G!XuYk2?*GIp zB3qvR%yl-eoz*;*@c-r2JhdPi)9juerGlZ+K~(0dGfrN%O0Q@2oqWdH)7Ok^KOWs7 z6DHa2R0)e&-&3tM^2_UCoY^n6%mShQ(wa%T59hC68%SqOuy>3qu)1)=i|Fb+I%J6K@k zaT*FMl@AG?=|_;yhb0=E-U2JlSTm;5X3oSwDO9;av311VLEj@6^2s<6h26Tf2=w4F$$X`3rf)5ou4Q-(#Z(JiJI zQ|-KAr?j0sr59|ICN?$DDyUc*s@52d)0rIevrH<*Mx1OR+RQ@J@FG>E_|%TUR7&;@ z_OTtYPyNW=#F3HWdNru}8J~fnQetf>SuSdm+H@&;rj)$OKFzc`I#LVz%HgKs;Cfb_ z3IW@-%f(cX&K3NeuQ%$bs%k7hO7-|{$!SfZq#Gk)JMn2{F>b%6o(!^&vy#QplL><) zv)n+Hk&4MS!k89K!LA~RP5h={_oZ_-47H3uZVIHgvFH$bSsff2Wkbs<_1)Mrqs$L4 z$gy1}q>QuWXq$-|m$G_dFl{*F<^amEwmdA2t{24=tw>_2+_y4q< zYJ6kUXG4KZ6SD3MN@vMXg>j*63pKFDHhQb}L+ipeVYtbLIa*n?g;WKjP2JeYIE9ch zLW!<9sx>+S4X>al^|*As)G)R_j?!>_wK(9Vw9|LE8dmzZ(C)n~1`~F7DaR<5EJs_o zRNzr7Q*p><3$>3#{?%3s*~Sh~8E&znRh33dy-8<^9H>UDLvIv$spzK*OgC~_FO^QE z)A?K&ChD{IumZn4Y!KM5bremQ7QcWJU)1gD}%SSPr+O3JUa%)QZ&_CCN{H z1L0s_rPx2vSC#pEKJRBzq35Rx=_HD|tY=CMU&yr4OWk8wH4UAX=yN*ykS&`NMxMo& z&g8F93@hohugx9$W7LSJk6d+Q7Sn0Jjj^y@VLh$JuhzDJ8r)*zEHSfUEBz<3(VNET z6zxZ=fo3HK>7t(svc*&?6=IiVgD{yZit1!X1rym`8MG+nW+hwu`+Pmrm-P-3sZ#dX zW;ys&@$-JJQiw`bb@iO;>a5(W1gmoMn*RGK5^UN!a`pr^R`gQ@p!5n$qy)gar~I3q zs)MQ2YEPC-4rQpvf4DN@$zqn*Ipu4H>v`|H(Tbn^-eZ>z<5_-6H|sPF1vaiA|48pKI68q{RZ z@99I9Ymqja#q|?rk}|er{Cuc48|y~j=p~Gb`AoLRX4ztjg%dwWrGr%9uIH$`eu68Mm0^#+Vl}m%i3H^oR(F5^=cGrH*

g|4rjaeHy&FwGK3N*IANIZ=}a(XeGk^E*lGkQ{+#TvAyq&G;oM_xSzEc7P9*X zYW;&Fy+urlG}BEcBc-4mM6*rptWs5?%Cmh*y`ODHl1lr|L{e+Y8A+<#%}7$!!%QUE zw?dm$wG&Ng)L2EqwOc#df}c^`DypbTrMI*n=Zy2KH~7pbwRS>DZLaOq>McSuic`;# zM3v|c)P9^ZZcBPSU?!>6v!9trvW1*1&PY;~%Zwyv+{1Cv%`mlEcg`fWdWte5$r7f}(&bXIp8-E6IMq7GjBst^0qUU+G0&H`1i1riC zD77=y@zIXLnZ!9`OT(M7rGdj|hJD4;d)a1^Pwlsyk>pH!w%TN;meFRU=)K5WDrFV5 z!*-isG>x?+Hx>H_oj&c^a+;SEY#yqXM-*m_J{-JI{i$ZC>M!L&l)vPXgFcO9?VwL@ z#u**ljGu~N)o;p=Yd|?{fowwGT~B(Qd`cZ zD&gMV^#emCZnNnxN<(F+s>q`w{THdD zxzYLpC&Za9uxL=sW;lk*HVP7?iy|tJe3S*1u|`IU+?^A8EM#-QJ1mDJPT!|t3d!O& zJI92yzHew~(-b^?BO8WB2g-WOnIuK!H#?*cKKV42YH?V3Qq_K4wnL_IW#+kEgZ;%N zoq8qG^wsIV`Y19f|154kmTL>eBKs@?c2Y@OGOeg_5l4DMaiHdRY+&td%RyB;p*aT*V;mSBlw?!qyd^ zmecoH`A2+*(k(f|JtBaV`fOCqu^YLP&9HIWs{LlxGOCZk%z0`rn=5#DcKx83mXs;) zGbOECd*ASo@(C?eW$LRYqn5xYS%n&RGA^A-Ws|u|B^~6LV+Q#BP31I`;}wb{BOyL- z@pOmceI8^zfi(j^L+VQ9EISU%r84gBKAh8y0Hh^0*B|h#%1-P`vK*#zoUW@Ry%6t{ z?u46$TcjF&Aob$pDM7rM(vkNDcPvl zWNUH0rzdm16NI17=ZfikNT12&vf?AQW13-R`dc!S%dpyehS$u(Z+VbLPU|au)=cxtCvy@m?U-Kn}lPt?d%`z)4 zVLs1s-ks6E303tZY9uUE=(5-CDKyyxmriJfC)KMeund&g<{!f!$&5g)yKq~ zY}3f6Qsta%3_;sZkhv)K463A9MlU73d^ua3B6b#-iiHX;t#X#8TIOm4>PTzp#(*>3 z^=Nr6I>0@b&T+9*GACCsv=>GW%@kHIWNEoP)EE8TC%1y=(ScI*Skn&kwY;N+= zI=F!4)7LnQK)>2Lpl+j+t%;R#4!3!TerYy?tls08J9+JyXRerFdm6jLvVKLDeoH|* zEL5VD__;zZ#VRM8fpPXFeV@Z)QHH15tC>12+$v{v)+oKFHx(z@@5I$7G=^N(_odyb z6^?252B*@xP^L&q!T-G?Y<5|-^*%#=6l-Ka-JU3FBpXz+tSpub zp>OxtcEs~E-HM+M%K2P6NC#{jqd=93ln%myf%MQ|Ktnx)e@_NB8c812$N=82#)hJo z%LMF~D5CvnmZn$G@d{a1&R8#Fi%~`{dDLxa+Ecf=s9#|}lDz`Kq|*gP`!w@N)e5H# zA^&HG;6+VNjM#CBFlCfQ)p3oBH_q}*VG9+DRDVP!;Q0PZI??f$c34J(?dz_L}j>dS3Ubt1Dho2+FWQyarj)3 z8l*yQBx0*8o6p*9;e~7)ZAmBi&QjUPvmqODnBFo!YP1ugDYEN~xnzMM!bcHni6NkliVvQBgJ1VCDBo* zvM2MF&}XYP?IV=A;(4e4Mb28;MZwfF$wrVeyY+M2uriTVnMx{ml`7XhE_>Nvc4`;c zSy&9Y^Ek-~)J#@aXiiVL)jIE#dpFwF57?(EW?XCuEqQs&#CE%*bCu&hHjtz=oE?x3;)%jV~kS7=qii2BwdzTHW>vwXst;1nozfAn` zC1tP#avY8b@QXxR{KbaCVOdODOiWBc4svt4gJ$%i)4~8KLN^;Mbrwamb=-#FHq zf`RtPf> z^^!8b=;wyxi)5-?Vh#{6FZ7i9@SC$LZLG}Xupprp%6=;JF)?$6f>){-!!DO(I>hDg zY^-M!F18Yf3@F~_yeP#sXgT#<9FVh*TNxs`H*>RcI-}e3V)UoEV-k(mbSzDr(A1gc zlw(WomH9~mi={$}^O%K7iOYhS-0J~P4;PIJ)E8ESRQN#uV5nS@Rat%DWCB=KZ}lv& zlud%tTGR5TNK0>(OTBsT0)FEPmwK0*Zo;X& z7vs+8a<3g%%$9SwFM|rM8#uV_v{;j2+0i;Y@ETD&BmSeP$`f z4Q9;TLC=d8)WAwZjn*R4XRSPA?W*O*;Y0fhsZbx+CQU1it02|z^-K_!s_JPIlZjO1 z%mc`19X;~^A_vCI1BfO`69j-7iurV7uhS?oEi3pXoD8W_h3i?3`5@*56^3&%?TZbS zV@rt9Y0X9zYlmK?l*{3#=E{u>2Zpq@I(5@!0nE>H0}Lw|$y7luNgN+bOVh;%lJ{7Z zN+wxp;e_S10+poPZj$5HgGwQj^z}^Sf4L7c=g4pxm#bBL))fM6^8YW#$>}#Q&AHA3 z-oyZ(zAhMTj7{l9i5Yb%rs$bcs)+Lxmu^v)SECXe3rjC+cVSY?`eH2a<*~^Z#tln6`-Pp#YVc}ejXN+m+lCqa(fuZEFKF^v8 ztB{e!Hql&0>5^&valUay&OC@hq-d{ilAR2C zvNDnu2XI>UXGke$(yR`##8zO|QM9fj$ee=b9P{3m5j9E#njj6gXsk3~QeyUgv)P90KeI~b$ z4K4cSk?04pWGjU-Z<%6)0`I$FFjN{!+I_UxmS3YTGI?{^$A-?SYa!I$48OoqG55x^ z7Afn?W{xn42X(Rl3*nXx#nF+Pnj>(PfS=;JyE4WS^L&%jNrF_Wy0OV6+%g;nW)lV3 z;;0~RPskT@d3hg?tRJb$pMIfkx(V_0Aw(^3l4M&YkvmCm5b&}i!^O>mY>5gsguzBO zflPh7lK<8>pH3EeokYlEvL5EXPYhegm(1FYsZ2O)f`_{zUk|{{LSb6I;=c0r(j-T3Ua!e zjLhmbZyhV3*76x%Q-=FJm1oz!F39OZ@FN3oq7W#CoZj}^vW_BtcDWZHXIS*tB+i@h zi_h%9EwTwpUOL1TO`*LbPZlWuqE}t&smx^lujw6Vk#d-M0Fi#0AOH$JlT+(BmMg4r zW5gt-J+Z5d_x|Kla-$<|PX-a~#?n(&d}$fI)ho>&Gxe8xanOh~NUmOWE~i0Apvaev?NmpkphG+YBpVD35<;Y)79u1t z(Z*hTwD$V8yEFgJ59ba~85j(rB|D)J$n^XYcpxl8ECS#oLx+x!bj$HR z&-4jl>5?L%PGX``H>a1#E-ADFqw|Tu5j18=y=V>)pV6{I!HUII2C=KX#55 zMS+tXC@vQ1J}qzEMogbiUH3tVTqM{NbFxFC@$hCdVVxSKO;5QHYVCHf^u6qjE-EML zY>rOggNZ8!F`;Pl0Uo-UPp@vtC!AhH)B9=ibwayYHle3y+&}IO^e_V)qtN8Rlic8f zhran+fi4=h=KzLoWT8cZ$No;4O2pSKnI}nag|z($kMuo!;HzY6F}=U!r3bBa$uIx< z1h4#Zt;E9g)>)Sxbko5DJk}4-@M*JdVtOq$h~rv%;$we9Pn_;1+9%l{ncgNm+0wfy z_f&tTw?$URwKAl4)zH&ECGmW7%ro0HdI^GmmSHI!$u3ECHMvHw1(*0D8}|QH^<82e h`t!05rgytD7aUrKrIjasaMjghtv46^zqH&~?;WDL56b`m literal 0 HcmV?d00001 diff --git a/examples/cycle-tracking/program/elf/report b/examples/cycle-tracking/program/elf/report new file mode 100755 index 0000000000000000000000000000000000000000..afcc118fd0cf5bf1d912f785f9ff9f63d6155919 GIT binary patch literal 112360 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 KRyjf;OdSAos1V%% literal 0 HcmV?d00001