diff --git a/Cargo.lock b/Cargo.lock index 401507e7e8..5567f6f950 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -229,6 +229,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -1505,7 +1523,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -1514,7 +1532,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -1524,16 +1542,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1545,7 +1563,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -1556,7 +1574,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -1567,7 +1585,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools 0.12.1", "p3-util", @@ -1578,8 +1596,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools 0.12.1", "p3-challenger", "p3-commit", @@ -1590,13 +1609,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm 0.1.0 (git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two)", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -1607,7 +1627,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -1617,7 +1637,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -1626,7 +1646,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1638,7 +1658,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1650,7 +1670,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1658,7 +1678,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1674,7 +1694,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools 0.12.1", "p3-commit", @@ -1690,7 +1710,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools 0.12.1", "p3-dft", @@ -1705,7 +1725,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1719,7 +1739,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools 0.12.1", "p3-field", @@ -1729,7 +1749,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools 0.12.1", "p3-air", @@ -1747,7 +1767,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#731ff62c311ebef7bb4bac1afd36934524f86d4f" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1937,9 +1957,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -2386,6 +2406,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "criterion", "curve25519-dalek", @@ -2476,10 +2499,64 @@ dependencies = [ "serde", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-recursion" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "sp1-core", + "sp1-recursion-macros", +] + +[[package]] +name = "sp1-recursion-macros" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "proc-macro2", + "quote", + "sp1-core", + "syn 1.0.109", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +dependencies = [ + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles 0.1.0", +] + [[package]] name = "sp1-zkvm" version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" dependencies = [ + "anyhow", "bincode", "cfg-if", "getrandom", @@ -2487,7 +2564,7 @@ dependencies = [ "libm", "rand", "serde", - "sp1-precompiles", + "sp1-precompiles 0.1.0 (git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two)", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2523a37393..8be58834e0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,15 @@ [workspace] -members = ["core", "cli", "derive", "zkvm/*", "helper", "eval"] -exclude = ["examples/target"] +members = [ + "core", + "cli", + "derive", + "zkvm/*", + "eval", + "helper", + "recursion/primitives", + "recursion/constgen", +] +exclude = ["examples/target", "recursion/target"] resolver = "2" [profile.release] @@ -15,22 +24,22 @@ debug = true debug-assertions = true [workspace.dependencies] -p3-air = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-field = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-commit = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-matrix = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-baby-bear = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-util = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-challenger = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-dft = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-fri = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-goldilocks = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-keccak = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-keccak-air = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-blake3 = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-mds = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-merkle-tree = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-poseidon2 = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-symmetric = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-uni-stark = { git = "https://github.com/succinctlabs/plonky3.git" } -p3-maybe-rayon = { git = "https://github.com/succinctlabs/plonky3.git" } +p3-air = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-field = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-commit = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-matrix = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-baby-bear = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-util = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-challenger = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-dft = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-fri = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-goldilocks = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-keccak = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-keccak-air = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-blake3 = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-mds = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-merkle-tree = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-poseidon2 = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-symmetric = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-uni-stark = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } +p3-maybe-rayon = { git = "https://github.com/succinctlabs/plonky3.git", branch = "tamir/recursion-combined" } diff --git a/core/Cargo.toml b/core/Cargo.toml index 7014e87893..fc7fc0d6cc 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -55,6 +55,9 @@ petgraph = "0.6.4" tiny-keccak = { version = "2.0.2", features = ["keccak"] } hashbrown = "0.14.3" num_cpus = "1.16.0" +blake3 = "1.5" +blake3_zkvm = { git = "https://github.com/sp1-patches/BLAKE3.git", branch = "patch-blake3_zkvm/v.1.0.0" } +cfg-if = "1.0.0" [dev-dependencies] criterion = "0.5.1" @@ -64,7 +67,7 @@ rand = "0.8.5" [features] perf = ["parallel"] -parallel = ["p3-maybe-rayon/parallel", "p3-blake3/parallel"] +parallel = ["p3-maybe-rayon/parallel", "p3-blake3/parallel", "blake3/rayon"] default = ["perf"] debug = ["parallel"] debug-proof = ["parallel", "perf"] diff --git a/core/src/air/builder.rs b/core/src/air/builder.rs index 6eec0a9507..777fe2401d 100644 --- a/core/src/air/builder.rs +++ b/core/src/air/builder.rs @@ -4,6 +4,7 @@ use p3_uni_stark::{ProverConstraintFolder, SymbolicAirBuilder, VerifierConstrain use super::interaction::AirInteraction; use super::word::Word; +use super::Extension; use crate::cpu::columns::InstructionCols; use crate::cpu::columns::OpcodeSelectorCols; use crate::lookup::InteractionKind; @@ -230,6 +231,16 @@ pub trait WordAirBuilder: ByteAirBuilder { } } +/// A trait which contains methods related to field extensions in an AIR. +pub trait ExtAirBuilder: BaseAirBuilder { + /// Asserts that the two field extensions are equal. + fn assert_ext_eq>(&mut self, left: Extension, right: Extension) { + for (left, right) in left.0.into_iter().zip(right.0) { + self.assert_eq(left, right); + } + } +} + /// A trait which contains methods related to ALU interactions in an AIR. pub trait AluAirBuilder: BaseAirBuilder { /// Sends an ALU operation to be processed. @@ -497,6 +508,7 @@ impl>> AluAirBuilder fo impl>> MemoryAirBuilder for AB {} impl>> ProgramAirBuilder for AB {} impl>> SP1AirBuilder for AB {} +impl>> ExtAirBuilder for AB {} impl<'a, SC: StarkGenericConfig> EmptyMessageBuilder for ProverConstraintFolder<'a, SC> {} impl<'a, Challenge: Field> EmptyMessageBuilder for VerifierConstraintFolder<'a, Challenge> {} diff --git a/core/src/air/extension.rs b/core/src/air/extension.rs new file mode 100644 index 0000000000..6ae7727294 --- /dev/null +++ b/core/src/air/extension.rs @@ -0,0 +1,135 @@ +use std::{ + mem::size_of, + ops::{Add, Mul}, +}; + +use core::borrow::{Borrow, BorrowMut}; +use itertools::Itertools; +use p3_field::{ + extension::{BinomialExtensionField, BinomiallyExtendable}, + field_to_array, AbstractExtensionField, AbstractField, Field, +}; +use sp1_derive::AlignedBorrow; + +use super::SP1AirBuilder; + +pub const DEGREE: usize = 4; + +#[derive(AlignedBorrow, Clone, Copy, Debug, Default, PartialEq, Eq, Hash)] +#[repr(C)] +pub struct Extension(pub [T; DEGREE]); // Degree 4 is hard coded for now. TODO: Change to a const generic + +impl Extension { + // Returns the one element of the extension field + pub fn one>() -> Extension + where + AB::Expr: AbstractField, + { + let one = AB::Expr::one(); + Extension(field_to_array(one)) + } + + // Converts a field element to extension element + pub fn from>(x: E) -> Extension { + Extension(field_to_array(x)) + } + + // Negates an extension field Element + pub fn neg>(self) -> Extension { + Extension(self.0.map(|x| AB::Expr::zero() - x)) + } + + // Adds an extension field element + pub fn add>(self, rhs: &Self) -> Extension + where + E: Add, + { + let mut elements = Vec::new(); + + for (e1, e2) in self.0.into_iter().zip_eq(rhs.0.clone().into_iter()) { + elements.push(e1 + e2); + } + + Extension(elements.try_into().unwrap()) + } + + // Subtracts an extension field element + pub fn sub>(self, rhs: &Self) -> Extension + where + E: Add, + { + let mut elements = Vec::new(); + + for (e1, e2) in self.0.into_iter().zip_eq(rhs.0.clone().into_iter()) { + elements.push(e1 - e2); + } + + Extension(elements.try_into().unwrap()) + } + + // Multiplies an extension field element + pub fn mul>(self, rhs: &Self) -> Extension + where + E: Mul, + E: From, + AB::F: BinomiallyExtendable, + { + let mut base_slice = [ + AB::Expr::zero(), + AB::Expr::zero(), + AB::Expr::zero(), + AB::Expr::zero(), + ]; + + let self_base_slice = self.as_base_slice(); + let rhs_base_slice = rhs.as_base_slice(); + let w = AB::Expr::from(AB::F::w()); + + for i in 0..DEGREE { + for j in 0..DEGREE { + if i + j >= DEGREE { + base_slice[i + j - DEGREE] += + self_base_slice[i].clone() * w.clone() * rhs_base_slice[j].clone(); + } else { + base_slice[i + j] += self_base_slice[i].clone() * rhs_base_slice[j].clone(); + } + } + } + + Extension(base_slice.try_into().unwrap()) + } + + pub fn as_base_slice(&self) -> &[E] { + &self.0 + } +} + +impl Extension { + // Converts a field element with var base elements to one with expr base elements. + pub fn from_var>(self) -> Extension + where + V: Into, + { + Extension(self.0.map(|x| x.into())) + } +} + +impl From> for Extension +where + F: Field, + F::F: BinomiallyExtendable<4>, +{ + fn from(value: BinomialExtensionField) -> Self { + let base_slice = value.as_base_slice(); + + Self(base_slice.try_into().unwrap()) + } +} + +impl> From for Extension { + fn from(value: F) -> Self { + let base_slice = value.as_base_slice(); + + Self(base_slice.try_into().unwrap()) + } +} diff --git a/core/src/air/mod.rs b/core/src/air/mod.rs index d23ef2031f..b91cb28769 100644 --- a/core/src/air/mod.rs +++ b/core/src/air/mod.rs @@ -1,4 +1,5 @@ mod builder; +mod extension; mod interaction; mod machine; mod polynomial; @@ -6,6 +7,7 @@ mod sub_builder; mod word; pub use builder::*; +pub use extension::*; pub use interaction::*; pub use machine::*; pub use polynomial::*; diff --git a/core/src/bytes/mod.rs b/core/src/bytes/mod.rs index 0db7bd7f55..5b90abe08a 100644 --- a/core/src/bytes/mod.rs +++ b/core/src/bytes/mod.rs @@ -29,6 +29,13 @@ pub const NUM_BYTE_OPS: usize = 9; #[derive(Debug, Clone, Copy, Default)] pub struct ByteChip(PhantomData); +impl ByteChip { + /// Creates a new byte chip. + pub const fn new() -> Self { + Self(PhantomData) + } +} + impl ByteChip { /// Creates the preprocessed byte trace and event map. /// diff --git a/core/src/lib.rs b/core/src/lib.rs index 72b256a235..6ecbe7ea42 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -121,11 +121,16 @@ impl SP1Verifier { elf: &[u8], proof: &SP1ProofWithIO, ) -> Result<(), ProgramVerificationError> { + println!("cycle-tracker-start: machine setup"); let config = BabyBearBlake3::new(); let mut challenger = config.challenger(); let machine = RiscvStark::new(config); let (_, vk) = machine.setup(&Program::from(elf)); - machine.verify(&vk, &proof.proof, &mut challenger) + println!("cycle-tracker-end: machine setup"); + println!("cycle-tracker-start: machine verify"); + let ret = machine.verify(&vk, &proof.proof, &mut challenger); + println!("cycle-tracker-end: machine verify"); + ret } /// Verify a proof generated by `SP1Prover` with a custom config. diff --git a/core/src/lookup/builder.rs b/core/src/lookup/builder.rs index c675ce1387..a888d27794 100644 --- a/core/src/lookup/builder.rs +++ b/core/src/lookup/builder.rs @@ -7,13 +7,13 @@ use p3_uni_stark::{SymbolicExpression, SymbolicVariable}; use super::Interaction; /// A builder for the lookup table interactions. -pub struct InteractionBuilder { +pub struct InteractionBuilder<'a, F: Field> { main: RowMajorMatrix>, - sends: Vec>, - receives: Vec>, + sends: Vec>, + receives: Vec>, } -impl InteractionBuilder { +impl<'a, F: Field> InteractionBuilder<'a, F> { /// Creates a new `InteractionBuilder` with the given width. pub fn new(width: usize) -> Self { let values = [false, true] @@ -30,12 +30,12 @@ impl InteractionBuilder { } /// Returns the sends and receives. - pub fn interactions(self) -> (Vec>, Vec>) { + pub fn interactions(self) -> (Vec>, Vec>) { (self.sends, self.receives) } } -impl AirBuilder for InteractionBuilder { +impl<'a, F: Field> AirBuilder for InteractionBuilder<'a, F> { type F = F; type Expr = SymbolicExpression; type Var = SymbolicVariable; @@ -64,15 +64,17 @@ impl AirBuilder for InteractionBuilder { fn assert_zero>(&mut self, _x: I) {} } -impl MessageBuilder>> for InteractionBuilder { +impl<'a, F: Field> MessageBuilder>> + for InteractionBuilder<'a, F> +{ fn send(&mut self, message: AirInteraction>) { let values = message .values .into_iter() - .map(|v| symbolic_to_virtual_pair(&v)) + .map(symbolic_to_virtual_pair) .collect::>(); - let multiplicity = symbolic_to_virtual_pair(&message.multiplicity); + let multiplicity = symbolic_to_virtual_pair(message.multiplicity); self.sends .push(Interaction::new(values, multiplicity, message.kind)); @@ -82,22 +84,24 @@ impl MessageBuilder>> for Interac let values = message .values .into_iter() - .map(|v| symbolic_to_virtual_pair(&v)) + .map(symbolic_to_virtual_pair) .collect::>(); - let multiplicity = symbolic_to_virtual_pair(&message.multiplicity); + let multiplicity = symbolic_to_virtual_pair(message.multiplicity); self.receives .push(Interaction::new(values, multiplicity, message.kind)); } } -fn symbolic_to_virtual_pair(expression: &SymbolicExpression) -> VirtualPairCol { +fn symbolic_to_virtual_pair<'a, F: Field>( + expression: SymbolicExpression, +) -> VirtualPairCol<'a, F> { if expression.degree_multiple() > 1 { panic!("degree multiple is too high"); } - let (column_weights, constant) = eval_symbolic_to_virtual_pair(expression); + let (column_weights, constant) = eval_symbolic_to_virtual_pair(&expression); let column_weights = column_weights.into_iter().collect(); @@ -186,7 +190,7 @@ mod tests { let column_weights = column_weights.into_iter().collect::>(); - let z = VirtualPairCol::new(column_weights, constant); + let z = VirtualPairCol::new_owned(column_weights, constant); let expr: F = z.apply(&[], &[F::one(), F::one()]); @@ -244,7 +248,7 @@ mod tests { for interaction in receives { print!("Receive values: "); - for value in interaction.values { + for value in interaction.values.iter() { let expr = value.apply::, SymbolicVariable>( &[], main.row_mut(0), @@ -264,7 +268,7 @@ mod tests { for interaction in sends { print!("Send values: "); - for value in interaction.values { + for value in interaction.values.iter() { let expr = value.apply::, SymbolicVariable>( &[], main.row_mut(0), diff --git a/core/src/lookup/debug.rs b/core/src/lookup/debug.rs index 0e72b1b3ed..ec43dd5b95 100644 --- a/core/src/lookup/debug.rs +++ b/core/src/lookup/debug.rs @@ -74,7 +74,7 @@ pub fn debug_interactions( if !multiplicity_eval.is_zero() { let mut values = vec![]; - for value in &interaction.values { + for value in interaction.values.iter() { let expr: SC::Val = value.apply(&[], main.row_mut(row)); values.push(expr); } diff --git a/core/src/lookup/interaction.rs b/core/src/lookup/interaction.rs index 5171a951fa..b71704dd48 100644 --- a/core/src/lookup/interaction.rs +++ b/core/src/lookup/interaction.rs @@ -1,12 +1,14 @@ +use alloc::borrow::Cow; use core::fmt::Debug; use core::fmt::Display; use p3_air::VirtualPairCol; use p3_field::Field; /// An interaction for a lookup or a permutation argument. -pub struct Interaction { - pub values: Vec>, - pub multiplicity: VirtualPairCol, +#[derive(Clone, Debug)] +pub struct Interaction<'a, F: Field> { + pub values: Cow<'a, [VirtualPairCol<'a, F>]>, + pub multiplicity: VirtualPairCol<'a, F>, pub kind: InteractionKind, } @@ -49,15 +51,15 @@ impl InteractionKind { } } -impl Interaction { +impl<'a, F: Field> Interaction<'a, F> { /// Create a new interaction. pub fn new( - values: Vec>, - multiplicity: VirtualPairCol, + values: Vec>, + multiplicity: VirtualPairCol<'a, F>, kind: InteractionKind, ) -> Self { Self { - values, + values: Cow::Owned(values), multiplicity, kind, } @@ -69,15 +71,6 @@ impl Interaction { } } -// TODO: add debug for VirtualPairCol so that we can derive Debug for Interaction. -impl Debug for Interaction { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Interaction") - .field("kind", &self.kind) - .finish() - } -} - impl Display for InteractionKind { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { diff --git a/core/src/memory/global.rs b/core/src/memory/global.rs index 3ddc5273e6..ccbd09b369 100644 --- a/core/src/memory/global.rs +++ b/core/src/memory/global.rs @@ -26,7 +26,7 @@ pub struct MemoryGlobalChip { } impl MemoryGlobalChip { - pub fn new(kind: MemoryChipKind) -> Self { + pub const fn new(kind: MemoryChipKind) -> Self { Self { kind } } } diff --git a/core/src/operations/div_extension.rs b/core/src/operations/div_extension.rs new file mode 100644 index 0000000000..1556e13441 --- /dev/null +++ b/core/src/operations/div_extension.rs @@ -0,0 +1,76 @@ +//! An operation to performce div on the inputs. +//! +use core::borrow::Borrow; +use core::borrow::BorrowMut; +use p3_field::extension::BinomialExtensionField; +use p3_field::extension::BinomiallyExtendable; +use sp1_derive::AlignedBorrow; +use std::mem::size_of; + +use crate::air::ExtAirBuilder; +use crate::air::Extension; +use crate::air::SP1AirBuilder; +use crate::air::DEGREE; + +use super::IsEqualExtOperation; + +/// A set of columns needed to compute whether the given word is 0. +#[derive(AlignedBorrow, Default, Debug, Clone, Copy)] +#[repr(C)] +pub struct DivExtOperation { + pub is_equal: IsEqualExtOperation, + + pub product: Extension, + + /// Result is the quotient + pub result: Extension, +} + +impl> DivExtOperation { + pub fn populate( + &mut self, + a: BinomialExtensionField, + b: BinomialExtensionField, + ) -> BinomialExtensionField { + let result = a / b; + self.result = result.into(); + + let product = b * result; + self.product = product.into(); + self.is_equal.populate(a, product); + + result + } +} + +impl DivExtOperation { + pub fn eval( + builder: &mut AB, + a: Extension, + b: Extension, + cols: DivExtOperation, + is_real: AB::Expr, + ) where + AB::F: BinomiallyExtendable<4>, + { + builder.assert_bool(is_real.clone()); + + let product = b.mul::(&cols.result.from_var::()); + builder + .when(is_real.clone()) + .assert_ext_eq(product.clone(), Extension::from_var::(cols.product)); + + IsEqualExtOperation::::eval( + builder, + a, + Extension::from_var::(cols.product), + cols.is_equal, + is_real.clone(), + ); + + builder.assert_zero( + is_real.clone() * is_real.clone() * is_real.clone() + - is_real.clone() * is_real.clone() * is_real.clone(), + ); + } +} diff --git a/core/src/operations/is_equal_extension.rs b/core/src/operations/is_equal_extension.rs new file mode 100644 index 0000000000..c4bbf51c24 --- /dev/null +++ b/core/src/operations/is_equal_extension.rs @@ -0,0 +1,56 @@ +use core::borrow::Borrow; +use core::borrow::BorrowMut; +use p3_field::extension::BinomialExtensionField; +use p3_field::extension::BinomiallyExtendable; +use sp1_derive::AlignedBorrow; +use std::mem::size_of; + +use crate::air::Extension; +use crate::air::SP1AirBuilder; +use crate::air::DEGREE; + +use super::IsZeroExtOperation; + +/// A set of columns needed to compute the equality of two field extension elements. +#[derive(AlignedBorrow, Default, Debug, Clone, Copy)] +#[repr(C)] +pub struct IsEqualExtOperation { + /// An operation to check whether the differences in field extension elements is zero. + pub is_diff_zero: IsZeroExtOperation, +} + +impl> IsEqualExtOperation { + pub fn populate( + &mut self, + a: BinomialExtensionField, + b: BinomialExtensionField, + ) -> u32 { + let diff = a - b; + self.is_diff_zero.populate(diff); + (a == b) as u32 + } +} + +impl IsEqualExtOperation { + pub fn eval( + builder: &mut AB, + a: Extension, + b: Extension, + cols: IsEqualExtOperation, + is_real: AB::Expr, + ) { + builder.assert_bool(is_real.clone()); + + // Calculate differences. + let diff = a.sub::(&b); + + // Check if the difference is 0. + IsZeroExtOperation::::eval(builder, diff, cols.is_diff_zero, is_real.clone()); + + // Degree 3 constraint to avoid "OodEvaluationMismatch". + builder.assert_zero( + is_real.clone() * is_real.clone() * is_real.clone() + - is_real.clone() * is_real.clone() * is_real.clone(), + ); + } +} diff --git a/core/src/operations/is_zero.rs b/core/src/operations/is_zero.rs index 908d9f24a8..0f7d8ad7e7 100644 --- a/core/src/operations/is_zero.rs +++ b/core/src/operations/is_zero.rs @@ -40,6 +40,7 @@ impl IsZeroOperation { } let prod = self.inverse * a; debug_assert!(prod == F::one() || prod == F::zero()); + (a == F::zero()) as u32 } diff --git a/core/src/operations/is_zero_extension.rs b/core/src/operations/is_zero_extension.rs new file mode 100644 index 0000000000..b442efa27f --- /dev/null +++ b/core/src/operations/is_zero_extension.rs @@ -0,0 +1,101 @@ +//! An operation to check if the input word is 0. +//! +//! This is bijective (i.e., returns 1 if and only if the input is 0). It is also worth noting that +//! this operation doesn't do a range check. +use core::borrow::Borrow; +use core::borrow::BorrowMut; +use p3_air::AirBuilder; +use p3_field::extension::BinomialExtensionField; +use p3_field::extension::BinomiallyExtendable; +use p3_field::AbstractExtensionField; +use sp1_derive::AlignedBorrow; +use std::mem::size_of; + +use crate::air::Extension; +use crate::air::SP1AirBuilder; +use crate::air::DEGREE; + +use super::IsZeroOperation; + +/// A set of columns needed to compute whether the given field ext element is 0. +#[derive(AlignedBorrow, Default, Debug, Clone, Copy)] +#[repr(C)] +pub struct IsZeroExtOperation { + /// `IsZeroOperation` to check if each base field element in the input field ext element is zero. + pub is_zero_base_element: [IsZeroOperation; DEGREE], + + /// A boolean flag indicating whether the first and second base field elements are 0. + /// This equals `is_zero_byte[0] * is_zero_byte[1]`. + pub is_lower_half_zero: T, + + /// A boolean flag indicating whether the third and fourth base field elements are 0. + pub is_upper_half_zero: T, + + /// A boolean flag indicating whether the field ext element is zero. This equals `is_zero_byte[0] * ... * + /// is_zero_byte[DEGREE - 1]`. + pub result: T, +} + +impl> IsZeroExtOperation { + pub fn populate(&mut self, a: BinomialExtensionField) -> u32 { + let mut is_zero = true; + let base_slice = a.as_base_slice(); + for i in 0..DEGREE { + is_zero &= self.is_zero_base_element[i].populate_from_field_element(base_slice[i]) == 1; + } + self.is_lower_half_zero = + self.is_zero_base_element[0].result * self.is_zero_base_element[1].result; + self.is_upper_half_zero = + self.is_zero_base_element[2].result * self.is_zero_base_element[3].result; + self.result = F::from_bool(is_zero); + is_zero as u32 + } +} + +impl IsZeroExtOperation { + pub fn eval( + builder: &mut AB, + a: Extension, + cols: IsZeroExtOperation, + is_real: AB::Expr, + ) { + let base_slice = a.as_base_slice(); + + // Calculate whether each byte is 0. + for i in 0..DEGREE { + IsZeroOperation::::eval( + builder, + base_slice[i].clone(), + cols.is_zero_base_element[i], + is_real.clone(), + ); + } + + // From here, we only assert when is_real is true. + builder.assert_bool(is_real.clone()); + let mut builder_is_real = builder.when(is_real.clone()); + + // Calculate is_upper_half_zero and is_lower_half_zero and finally the result. + builder_is_real.assert_bool(cols.is_lower_half_zero); + builder_is_real.assert_bool(cols.is_upper_half_zero); + builder_is_real.assert_bool(cols.result); + builder_is_real.assert_eq( + cols.is_lower_half_zero, + cols.is_zero_base_element[0].result * cols.is_zero_base_element[1].result, + ); + builder_is_real.assert_eq( + cols.is_upper_half_zero, + cols.is_zero_base_element[2].result * cols.is_zero_base_element[3].result, + ); + builder_is_real.assert_eq( + cols.result, + cols.is_lower_half_zero * cols.is_upper_half_zero, + ); + + // Degree 3 constraint to avoid "OodEvaluationMismatch". + builder.assert_zero( + is_real.clone() * is_real.clone() * is_real.clone() + - is_real.clone() * is_real.clone() * is_real.clone(), + ); + } +} diff --git a/core/src/operations/mod.rs b/core/src/operations/mod.rs index 242c9100b1..3e0dd8dd2e 100644 --- a/core/src/operations/mod.rs +++ b/core/src/operations/mod.rs @@ -8,11 +8,14 @@ mod add; mod add4; mod add5; mod and; +mod div_extension; pub mod field; mod fixed_rotate_right; mod fixed_shift_right; +mod is_equal_extension; mod is_equal_word; mod is_zero; +mod is_zero_extension; mod is_zero_word; mod not; mod or; @@ -22,10 +25,13 @@ pub use add::*; pub use add4::*; pub use add5::*; pub use and::*; +pub use div_extension::*; pub use fixed_rotate_right::*; pub use fixed_shift_right::*; +pub use is_equal_extension::*; pub use is_equal_word::*; pub use is_zero::*; +pub use is_zero_extension::*; pub use is_zero_word::*; pub use not::*; pub use or::*; diff --git a/core/src/program/mod.rs b/core/src/program/mod.rs index 7b576b4de3..c54b2e06fa 100644 --- a/core/src/program/mod.rs +++ b/core/src/program/mod.rs @@ -32,7 +32,7 @@ pub struct ProgramCols { pub struct ProgramChip; impl ProgramChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self {} } } diff --git a/core/src/runtime/record.rs b/core/src/runtime/record.rs index 2ab1d70d94..974cbf071c 100644 --- a/core/src/runtime/record.rs +++ b/core/src/runtime/record.rs @@ -11,6 +11,7 @@ use crate::field::event::FieldEvent; use crate::runtime::MemoryRecord; use crate::syscall::precompiles::blake3::Blake3CompressInnerEvent; use crate::syscall::precompiles::edwards::EdDecompressEvent; +use crate::syscall::precompiles::fri_fold::FriFoldEvent; use crate::syscall::precompiles::k256::K256DecompressEvent; use crate::syscall::precompiles::keccak256::KeccakPermuteEvent; use crate::syscall::precompiles::sha256::{ShaCompressEvent, ShaExtendEvent}; @@ -81,6 +82,8 @@ pub struct ExecutionRecord { pub blake3_compress_inner_events: Vec, + pub fri_fold_events: Vec, + /// Information needed for global chips. This shouldn't really be here but for legacy reasons, /// we keep this information in this struct for now. pub first_memory_record: Vec<(u32, MemoryRecord, u32)>, @@ -151,6 +154,8 @@ pub struct ShardStats { pub nb_weierstrass_add_events: usize, pub nb_weierstrass_double_events: usize, pub nb_k256_decompress_events: usize, + pub nb_blake3_compress_inner_events: usize, + pub nb_fri_fold_events: usize, } impl ExecutionRecord { @@ -321,6 +326,11 @@ impl ExecutionRecord { .blake3_compress_inner_events .extend_from_slice(&self.blake3_compress_inner_events); + // Fri fold compress events . + first + .fri_fold_events + .extend_from_slice(&self.fri_fold_events); + // Put all byte lookups in the first shard (as the table size is fixed) first.byte_lookups.extend(&self.byte_lookups); @@ -473,6 +483,8 @@ impl ExecutionRecord { nb_weierstrass_add_events: self.weierstrass_add_events.len(), nb_weierstrass_double_events: self.weierstrass_double_events.len(), nb_k256_decompress_events: self.k256_decompress_events.len(), + nb_blake3_compress_inner_events: self.blake3_compress_inner_events.len(), + nb_fri_fold_events: self.fri_fold_events.len(), } } @@ -507,6 +519,7 @@ impl ExecutionRecord { .append(&mut other.k256_decompress_events); self.blake3_compress_inner_events .append(&mut other.blake3_compress_inner_events); + self.fri_fold_events.append(&mut other.fri_fold_events); for (event, mult) in other.byte_lookups.iter_mut() { self.byte_lookups diff --git a/core/src/runtime/syscall.rs b/core/src/runtime/syscall.rs index b37ce1c537..71a7132bb4 100644 --- a/core/src/runtime/syscall.rs +++ b/core/src/runtime/syscall.rs @@ -5,6 +5,7 @@ use crate::runtime::{Register, Runtime}; use crate::syscall::precompiles::blake3::Blake3CompressInnerChip; use crate::syscall::precompiles::edwards::EdAddAssignChip; use crate::syscall::precompiles::edwards::EdDecompressChip; +use crate::syscall::precompiles::fri_fold::FriFoldChip; use crate::syscall::precompiles::k256::K256DecompressChip; use crate::syscall::precompiles::keccak256::KeccakPermuteChip; use crate::syscall::precompiles::sha256::{ShaCompressChip, ShaExtendChip}; @@ -60,6 +61,9 @@ pub enum SyscallCode { /// Executes the `BLAKE3_COMPRESS_INNER` precompile. BLAKE3_COMPRESS_INNER = 112, + /// Executes fri fold precompile. + FRI_FOLD = 113, + WRITE = 999, } @@ -80,6 +84,7 @@ impl SyscallCode { 110 => SyscallCode::ENTER_UNCONSTRAINED, 111 => SyscallCode::EXIT_UNCONSTRAINED, 112 => SyscallCode::BLAKE3_COMPRESS_INNER, + 113 => SyscallCode::FRI_FOLD, 999 => SyscallCode::WRITE, _ => panic!("invalid syscall number: {}", value), } @@ -217,6 +222,7 @@ pub fn default_syscall_map() -> HashMap> { SyscallCode::BLAKE3_COMPRESS_INNER, Rc::new(Blake3CompressInnerChip::new()), ); + syscall_map.insert(SyscallCode::FRI_FOLD, Rc::new(FriFoldChip::new())); syscall_map.insert( SyscallCode::ENTER_UNCONSTRAINED, Rc::new(SyscallEnterUnconstrained::new()), diff --git a/core/src/stark/air.rs b/core/src/stark/air.rs index a70b1af5fb..abebbbcbed 100644 --- a/core/src/stark/air.rs +++ b/core/src/stark/air.rs @@ -2,6 +2,8 @@ use crate::air::MachineAir; pub use crate::air::SP1AirBuilder; use crate::memory::MemoryChipKind; use crate::runtime::ExecutionRecord; +use crate::syscall::precompiles::fri_fold::{self, FriFoldChip}; +use p3_field::extension::BinomiallyExtendable; use p3_field::PrimeField32; pub use riscv_chips::*; @@ -41,7 +43,7 @@ pub(crate) mod riscv_chips { /// a different AIR that is used to encode a different part of the RISC-V execution, and the /// different AIR variants have a joint lookup argument. #[derive(MachineAir)] -pub enum RiscvAir { +pub enum RiscvAir> { /// An AIR that containts a preprocessed program table and a lookup for the instructions. Program(ProgramChip), /// An AIR for the RISC-V CPU. Each row represents a cpu cycle. @@ -90,66 +92,42 @@ pub enum RiscvAir { KeccakP(KeccakPermuteChip), /// A precompile for the Blake3 compression function. Blake3Compress(Blake3CompressInnerChip), + /// A precompile for the fri fold function. + FriFold(FriFoldChip), } -impl RiscvAir { +impl> RiscvAir { /// Get all the different RISC-V AIRs. pub fn get_all() -> Vec { - // The order of the chips is important, as it is used to determine the order of trace - // generation. In the future, we will detect that order automatically. - let mut chips = vec![]; - let cpu = CpuChip::default(); - chips.push(RiscvAir::Cpu(cpu)); - let program = ProgramChip::default(); - chips.push(RiscvAir::Program(program)); - let sha_extend = ShaExtendChip::default(); - chips.push(RiscvAir::Sha256Extend(sha_extend)); - let sha_compress = ShaCompressChip::default(); - chips.push(RiscvAir::Sha256Compress(sha_compress)); - let ed_add_assign = EdAddAssignChip::>::new(); - chips.push(RiscvAir::Ed25519Add(ed_add_assign)); - let ed_decompress = EdDecompressChip::::default(); - chips.push(RiscvAir::Ed25519Decompress(ed_decompress)); - let k256_decompress = K256DecompressChip::default(); - chips.push(RiscvAir::K256Decompress(k256_decompress)); - let weierstrass_add_assign = - WeierstrassAddAssignChip::>::new(); - chips.push(RiscvAir::Secp256k1Add(weierstrass_add_assign)); - let weierstrass_double_assign = - WeierstrassDoubleAssignChip::>::new(); - chips.push(RiscvAir::Secp256k1Double(weierstrass_double_assign)); - let keccak_permute = KeccakPermuteChip::new(); - chips.push(RiscvAir::KeccakP(keccak_permute)); - let blake3_compress_inner = Blake3CompressInnerChip::new(); - chips.push(RiscvAir::Blake3Compress(blake3_compress_inner)); - let add = AddChip::default(); - chips.push(RiscvAir::Add(add)); - let sub = SubChip::default(); - chips.push(RiscvAir::Sub(sub)); - let bitwise = BitwiseChip::default(); - chips.push(RiscvAir::Bitwise(bitwise)); - let div_rem = DivRemChip::default(); - chips.push(RiscvAir::DivRem(div_rem)); - let mul = MulChip::default(); - chips.push(RiscvAir::Mul(mul)); - let shift_right = ShiftRightChip::default(); - chips.push(RiscvAir::ShiftRight(shift_right)); - let shift_left = ShiftLeft::default(); - chips.push(RiscvAir::ShiftLeft(shift_left)); - let lt = LtChip::default(); - chips.push(RiscvAir::Lt(lt)); - let memory_init = MemoryGlobalChip::new(MemoryChipKind::Init); - chips.push(RiscvAir::MemoryInit(memory_init)); - let memory_finalize = MemoryGlobalChip::new(MemoryChipKind::Finalize); - chips.push(RiscvAir::MemoryFinal(memory_finalize)); - let program_memory_init = MemoryGlobalChip::new(MemoryChipKind::Program); - chips.push(RiscvAir::ProgramMemory(program_memory_init)); - let field_ltu = FieldLtuChip::default(); - chips.push(RiscvAir::FieldLTU(field_ltu)); - let byte = ByteChip::default(); - chips.push(RiscvAir::ByteLookup(byte)); - - chips + vec![ + Self::Cpu(CpuChip), + Self::Program(ProgramChip::new()), + Self::Sha256Extend(ShaExtendChip), + Self::Sha256Compress(ShaCompressChip), + Self::Ed25519Add(EdAddAssignChip::>::new()), + Self::Ed25519Decompress(EdDecompressChip::::new()), + Self::K256Decompress(K256DecompressChip), + Self::Secp256k1Add(WeierstrassAddAssignChip::>::new()), + Self::Secp256k1Double( + WeierstrassDoubleAssignChip::>::new(), + ), + Self::KeccakP(KeccakPermuteChip::new()), + Self::Blake3Compress(Blake3CompressInnerChip::new()), + Self::FriFold(fri_fold::FriFoldChip::new()), + Self::Add(AddChip), + Self::Sub(SubChip), + Self::Bitwise(BitwiseChip), + Self::DivRem(DivRemChip), + Self::Mul(MulChip), + Self::ShiftRight(ShiftRightChip), + Self::ShiftLeft(ShiftLeft), + Self::Lt(LtChip), + Self::MemoryInit(MemoryGlobalChip::new(MemoryChipKind::Init)), + Self::MemoryFinal(MemoryGlobalChip::new(MemoryChipKind::Finalize)), + Self::ProgramMemory(MemoryGlobalChip::new(MemoryChipKind::Program)), + Self::FieldLTU(FieldLtuChip), + Self::ByteLookup(ByteChip::new()), + ] } /// Returns `true` if the given `shard` includes events for this AIR. @@ -179,20 +157,103 @@ impl RiscvAir { RiscvAir::Secp256k1Double(_) => !shard.weierstrass_double_events.is_empty(), RiscvAir::KeccakP(_) => !shard.keccak_permute_events.is_empty(), RiscvAir::Blake3Compress(_) => !shard.blake3_compress_inner_events.is_empty(), + RiscvAir::FriFold(_) => !shard.fri_fold_events.is_empty(), + } + } + + /// Needed for recursive verifier, might change in the future. + /// + /// Note that this must match the indices returned by `get_all`. + pub const fn get_air_at_index(i: usize) -> Self { + match i { + 0 => Self::Cpu(CpuChip), + 1 => Self::Program(ProgramChip::new()), + 2 => Self::Sha256Extend(ShaExtendChip), + 3 => Self::Sha256Compress(ShaCompressChip), + 4 => Self::Ed25519Add(EdAddAssignChip::>::new()), + 5 => Self::Ed25519Decompress(EdDecompressChip::::new()), + 6 => Self::K256Decompress(K256DecompressChip), + 7 => { + Self::Secp256k1Add(WeierstrassAddAssignChip::>::new()) + } + 8 => Self::Secp256k1Double( + WeierstrassDoubleAssignChip::>::new(), + ), + 9 => Self::KeccakP(KeccakPermuteChip::new()), + 10 => Self::Blake3Compress(Blake3CompressInnerChip::new()), + 11 => Self::FriFold(fri_fold::FriFoldChip::new()), + 12 => Self::Add(AddChip), + 13 => Self::Sub(SubChip), + 14 => Self::Bitwise(BitwiseChip), + 15 => Self::DivRem(DivRemChip), + 16 => Self::Mul(MulChip), + 17 => Self::ShiftRight(ShiftRightChip), + 18 => Self::ShiftLeft(ShiftLeft), + 19 => Self::Lt(LtChip), + 20 => Self::MemoryInit(MemoryGlobalChip::new(MemoryChipKind::Init)), + 21 => Self::MemoryFinal(MemoryGlobalChip::new(MemoryChipKind::Finalize)), + 22 => Self::ProgramMemory(MemoryGlobalChip::new(MemoryChipKind::Program)), + 23 => Self::FieldLTU(FieldLtuChip), + 24 => Self::ByteLookup(ByteChip::new()), + _ => panic!("Invalid index"), } } } -impl PartialEq for RiscvAir { +impl> PartialEq for RiscvAir { fn eq(&self, other: &Self) -> bool { self.name() == other.name() } } -impl Eq for RiscvAir {} +impl> Eq for RiscvAir {} -impl core::hash::Hash for RiscvAir { +impl> core::hash::Hash for RiscvAir { fn hash(&self, state: &mut H) { self.name().hash(state); } } + +impl> Clone for RiscvAir { + fn clone(&self) -> Self { + match self { + Self::Program(_) => Self::Program(ProgramChip::default()), + Self::Cpu(_) => Self::Cpu(CpuChip::default()), + Self::Add(_) => Self::Add(AddChip::default()), + Self::Sub(_) => Self::Sub(SubChip::default()), + Self::Bitwise(_) => Self::Bitwise(BitwiseChip::default()), + Self::Mul(_) => Self::Mul(MulChip::default()), + Self::DivRem(_) => Self::DivRem(DivRemChip::default()), + Self::Lt(_) => Self::Lt(LtChip::default()), + Self::ShiftLeft(_) => Self::ShiftLeft(ShiftLeft::default()), + Self::ShiftRight(_) => Self::ShiftRight(ShiftRightChip::default()), + Self::ByteLookup(_) => Self::ByteLookup(ByteChip::default()), + Self::FieldLTU(_) => Self::FieldLTU(FieldLtuChip::default()), + Self::MemoryInit(_) => Self::MemoryInit(MemoryGlobalChip::new(MemoryChipKind::Init)), + Self::MemoryFinal(_) => { + Self::MemoryFinal(MemoryGlobalChip::new(MemoryChipKind::Finalize)) + } + Self::ProgramMemory(_) => { + Self::ProgramMemory(MemoryGlobalChip::new(MemoryChipKind::Program)) + } + Self::Sha256Extend(_) => Self::Sha256Extend(ShaExtendChip::default()), + Self::Sha256Compress(_) => Self::Sha256Compress(ShaCompressChip::default()), + Self::Ed25519Add(_) => { + Self::Ed25519Add(EdAddAssignChip::>::new()) + } + Self::Ed25519Decompress(_) => { + Self::Ed25519Decompress(EdDecompressChip::::default()) + } + Self::K256Decompress(_) => Self::K256Decompress(K256DecompressChip::default()), + Self::Secp256k1Add(_) => { + Self::Secp256k1Add(WeierstrassAddAssignChip::>::new()) + } + Self::Secp256k1Double(_) => Self::Secp256k1Double(WeierstrassDoubleAssignChip::< + SwCurve, + >::new()), + Self::KeccakP(_) => Self::KeccakP(KeccakPermuteChip::new()), + Self::Blake3Compress(_) => Self::Blake3Compress(Blake3CompressInnerChip::new()), + Self::FriFold(_) => Self::FriFold(fri_fold::FriFoldChip::new()), + } + } +} diff --git a/core/src/stark/chip.rs b/core/src/stark/chip.rs index 1f0cd0c7de..a492fc28e9 100644 --- a/core/src/stark/chip.rs +++ b/core/src/stark/chip.rs @@ -1,7 +1,10 @@ use std::hash::Hash; +use alloc::borrow::Cow; +use core::borrow::Borrow; +use core::fmt::Debug; use p3_air::{Air, BaseAir, PairBuilder}; -use p3_field::{ExtensionField, Field, PrimeField, PrimeField32}; +use p3_field::{extension::BinomiallyExtendable, ExtensionField, Field, PrimeField, PrimeField32}; use p3_matrix::dense::RowMajorMatrix; use p3_util::log2_ceil_usize; @@ -17,26 +20,27 @@ use super::{ }; /// An Air that encodes lookups based on interactions. -pub struct Chip { +#[derive(Clone)] +pub struct Chip<'a, F: Field, A> { /// The underlying AIR of the chip for constraint evaluation. air: A, /// The interactions that the chip sends. - sends: Vec>, + sends: Cow<'a, [Interaction<'a, F>]>, /// The interactions that the chip receives. - receives: Vec>, + receives: Cow<'a, [Interaction<'a, F>]>, /// The relative log degree of the quotient polynomial, i.e. `log2(max_constraint_degree - 1)`. log_quotient_degree: usize, } -impl Chip { +impl<'a, F: Field, A> Chip<'a, F, A> { /// The send interactions of the chip. - pub fn sends(&self) -> &[Interaction] { - &self.sends + pub fn sends(&self) -> &[Interaction<'a, F>] { + self.sends.borrow() } /// The receive interactions of the chip. - pub fn receives(&self) -> &[Interaction] { - &self.receives + pub fn receives(&self) -> &[Interaction<'a, F>] { + self.receives.borrow() } /// The relative log degree of the quotient polynomial, i.e. `log2(max_constraint_degree - 1)`. @@ -45,7 +49,7 @@ impl Chip { } } -impl Chip> { +impl<'a, F: PrimeField32 + BinomiallyExtendable<4>> Chip<'a, F, RiscvAir> { /// Returns whether the given chip is included in the execution record of the shard. pub fn included(&self, shard: &ExecutionRecord) -> bool { self.air.included(shard) @@ -59,7 +63,7 @@ impl Chip> { /// `AB: SP1AirBuilder`. Users should not need to implement this trait manually. pub trait StarkAir: MachineAir - + Air> + + for<'a> Air> + for<'a> Air> + for<'a> Air> + for<'a> Air> @@ -68,21 +72,21 @@ pub trait StarkAir: impl StarkAir for T where T: MachineAir - + Air> + + for<'a> Air> + for<'a> Air> + for<'a> Air> + for<'a> Air> { } -impl Chip +impl<'a, F, A> Chip<'a, F, A> where F: Field, { /// Records the interactions and constraint degree from the air and crates a new chip. pub fn new(air: A) -> Self where - A: Air>, + A: Air>, { let mut builder = InteractionBuilder::new(air.width()); air.eval(&mut builder); @@ -92,6 +96,34 @@ where let max_constraint_degree = 3; let log_quotient_degree = log2_ceil_usize(max_constraint_degree - 1); + Self { + air, + sends: Cow::Owned(sends), + receives: Cow::Owned(receives), + log_quotient_degree, + } + } + + pub const fn from_parts_borrowed( + air: A, + sends: &'a [Interaction<'a, F>], + receives: &'a [Interaction<'a, F>], + log_quotient_degree: usize, + ) -> Self { + Self::from_parts( + air, + Cow::Borrowed(sends), + Cow::Borrowed(receives), + log_quotient_degree, + ) + } + + pub const fn from_parts( + air: A, + sends: Cow<'a, [Interaction<'a, F>]>, + receives: Cow<'a, [Interaction<'a, F>]>, + log_quotient_degree: usize, + ) -> Self { Self { air, sends, @@ -123,7 +155,7 @@ where } } -impl BaseAir for Chip +impl<'a, F, A> BaseAir for Chip<'a, F, A> where F: Field, A: BaseAir, @@ -137,7 +169,7 @@ where } } -impl MachineAir for Chip +impl<'a, F, A> MachineAir for Chip<'a, F, A> where F: Field, A: MachineAir, @@ -167,7 +199,7 @@ where } // Implement AIR directly on Chip, evaluating both execution and permutation constraints. -impl Air for Chip +impl<'a, F, A, AB> Air for Chip<'a, F, A> where F: Field, A: Air, @@ -181,7 +213,7 @@ where } } -impl PartialEq for Chip +impl<'a, F, A> PartialEq for Chip<'a, F, A> where F: Field, A: PartialEq, @@ -191,9 +223,9 @@ where } } -impl Eq for Chip where F: Field + Eq {} +impl<'a, F: Field, A: Eq> Eq for Chip<'a, F, A> where F: Field + Eq {} -impl Hash for Chip +impl<'a, F, A> Hash for Chip<'a, F, A> where F: Field, A: Hash, @@ -202,3 +234,14 @@ where self.air.hash(state); } } + +impl<'a, F: Field, A: MachineAir> Debug for Chip<'a, F, A> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Chip") + .field("air", &self.air.name()) + .field("sends", &self.sends) + .field("receives", &self.receives) + .field("log_quotient_degree", &self.log_quotient_degree) + .finish() + } +} diff --git a/core/src/stark/config.rs b/core/src/stark/config.rs index 0a50db3ea9..2ac056383d 100644 --- a/core/src/stark/config.rs +++ b/core/src/stark/config.rs @@ -1,13 +1,13 @@ use p3_challenger::{CanObserve, FieldChallenger}; use p3_commit::{Pcs, UnivariatePcsWithLde}; -use p3_field::{ExtensionField, PrimeField32, TwoAdicField}; +use p3_field::{extension::BinomiallyExtendable, ExtensionField, PrimeField32, TwoAdicField}; use p3_matrix::dense::RowMajorMatrix; use serde::Serialize; /// A configuration for a STARK. pub trait StarkGenericConfig { /// The field over which trace data is encoded. - type Val: TwoAdicField + PrimeField32; + type Val: TwoAdicField + PrimeField32 + BinomiallyExtendable<4>; /// The field from which random challenges are drawn. type Challenge: ExtensionField + TwoAdicField + Serialize; diff --git a/core/src/stark/debug.rs b/core/src/stark/debug.rs index 51ee32adb8..f29f2bff31 100644 --- a/core/src/stark/debug.rs +++ b/core/src/stark/debug.rs @@ -81,7 +81,7 @@ pub fn debug_constraints( })); if result.is_err() { println!("local: {:?}", main_local); - println!("next: {:?}", main_local); + println!("next: {:?}", main_next); panic!("failed at row {} of chip {}", i, chip.name()); } }); diff --git a/core/src/stark/machine.rs b/core/src/stark/machine.rs index c817bf244d..134828b89c 100644 --- a/core/src/stark/machine.rs +++ b/core/src/stark/machine.rs @@ -4,6 +4,8 @@ use crate::air::MachineAir; use crate::runtime::ExecutionRecord; use crate::runtime::Program; use crate::runtime::ShardingConfig; +use alloc::borrow::Cow; +use core::borrow::Borrow; use p3_challenger::CanObserve; use p3_field::AbstractField; use p3_field::Field; @@ -16,15 +18,18 @@ use super::StarkGenericConfig; use super::VerificationError; use super::Verifier; -pub type RiscvChip = - Chip<::Val, RiscvAir<::Val>>; +pub type RiscvChip<'a, SC> = + Chip<'a, ::Val, RiscvAir<::Val>>; /// A STARK for proving RISC-V execution. -pub struct RiscvStark::Val>> { +pub struct RiscvStark<'a, SC: StarkGenericConfig, A = RiscvAir<::Val>> +where + A: Clone, +{ /// The STARK settings for the RISC-V STARK. config: SC, /// The chips that make up the RISC-V STARK machine, in order of their execution. - chips: Vec>, + chips: Cow<'a, [Chip<'a, SC::Val, A>]>, } #[derive(Debug, Clone)] @@ -39,7 +44,7 @@ pub struct VerifyingKey { marker: std::marker::PhantomData, } -impl RiscvStark { +impl<'a, SC: StarkGenericConfig> RiscvStark<'a, SC> { /// Create a new RISC-V STARK machine. pub fn new(config: SC) -> Self { // The machine consists of a config (input) and a set of chips. The chip vector should @@ -53,20 +58,30 @@ impl RiscvStark { .map(Chip::new) .collect::>(); - Self { config, chips } + Self { + config, + chips: Cow::Owned(chips), + } + } + + pub const fn from_chip_slice(config: SC, chips: &'a [RiscvChip<'a, SC>]) -> Self { + Self { + config, + chips: Cow::Borrowed(chips), + } } /// Get an array containing a `ChipRef` for all the chips of this RISC-V STARK machine. - pub fn chips(&self) -> &[RiscvChip] { - &self.chips + pub fn chips(&self) -> &[RiscvChip<'a, SC>] { + self.chips.borrow() } - pub fn shard_chips<'a, 'b>( - &'a self, - shard: &'b ExecutionRecord, - ) -> impl Iterator> + pub fn shard_chips<'b, 'c>( + &'b self, + shard: &'c ExecutionRecord, + ) -> impl Iterator> where - 'a: 'b, + 'b: 'c, { self.chips.iter().filter(|chip| chip.included(shard)) } @@ -103,7 +118,6 @@ impl RiscvStark { ); // Generate the trace for each chip to collect events emitted from chips with dependencies. - println!("generating depeendencies for each chip"); chips.iter().for_each(|chip| { let mut output = ExecutionRecord::default(); output.index = record.index; @@ -152,12 +166,14 @@ impl RiscvStark { { // TODO: Observe the challenges in a tree-like structure for easily verifiable reconstruction // in a map-reduce recursion setting. + println!("cycle-tracker-start: observe challenges for all segments"); #[cfg(feature = "perf")] tracing::info_span!("observe challenges for all segments").in_scope(|| { proof.shard_proofs.iter().for_each(|proof| { challenger.observe(proof.commitment.main_commit.clone()); }); }); + println!("cycle-tracker-end: observe challenges for all segments"); // Verify the segment proofs. for (i, proof) in proof.shard_proofs.iter().enumerate() { @@ -195,6 +211,14 @@ pub enum ProgramVerificationError { NonZeroCumulativeSum, } +impl VerifyingKey { + pub const fn empty() -> Self { + Self { + marker: PhantomData, + } + } +} + #[cfg(test)] #[allow(non_snake_case)] pub mod tests { diff --git a/core/src/stark/permutation.rs b/core/src/stark/permutation.rs index 11ecfcc003..0939c97d06 100644 --- a/core/src/stark/permutation.rs +++ b/core/src/stark/permutation.rs @@ -9,9 +9,9 @@ use crate::{air::MultiTableAirBuilder, lookup::Interaction}; /// Generates powers of a random element based on how many interactions there are in the chip. /// /// These elements are used to uniquely fingerprint each interaction. -pub fn generate_interaction_rlc_elements>( - sends: &[Interaction], - receives: &[Interaction], +pub fn generate_interaction_rlc_elements<'a, F: Field, EF: AbstractExtensionField>( + sends: &[Interaction<'a, F>], + receives: &[Interaction<'a, F>], random_element: EF, ) -> Vec { let n = sends @@ -28,9 +28,9 @@ pub fn generate_interaction_rlc_elements /// /// The permutation trace has (N+1)*EF::NUM_COLS columns, where N is the number of interactions in /// the chip. -pub(crate) fn generate_permutation_trace>( - sends: &[Interaction], - receives: &[Interaction], +pub(crate) fn generate_permutation_trace<'a, F: PrimeField, EF: ExtensionField>( + sends: &[Interaction<'a, F>], + receives: &[Interaction<'a, F>], preprocessed: &Option>, main: &RowMajorMatrix, random_elements: &[EF], @@ -135,9 +135,9 @@ pub(crate) fn generate_permutation_trace>( /// - The running sum column starts at zero. /// - That the RLC per interaction is computed correctly. /// - The running sum column ends at the (currently) given cumalitive sum. -pub fn eval_permutation_constraints( - sends: &[Interaction], - receives: &[Interaction], +pub fn eval_permutation_constraints<'a, F, AB>( + sends: &[Interaction<'a, F>], + receives: &[Interaction<'a, F>], builder: &mut AB, ) where F: Field, @@ -211,11 +211,11 @@ pub fn eval_permutation_constraints( } /// Computes the permutation fingerprint of a row. -pub fn compute_permutation_row>( +pub fn compute_permutation_row<'a, F: PrimeField, EF: ExtensionField>( main_row: &[F], preprocessed_row: &[F], - sends: &[Interaction], - receives: &[Interaction], + sends: &[Interaction<'a, F>], + receives: &[Interaction<'a, F>], alphas: &[EF], betas: Powers, ) -> Vec { diff --git a/core/src/stark/prover.rs b/core/src/stark/prover.rs index 1a01ee608f..49973724b2 100644 --- a/core/src/stark/prover.rs +++ b/core/src/stark/prover.rs @@ -5,6 +5,7 @@ use itertools::izip; use p3_air::BaseAir; use p3_challenger::{CanObserve, FieldChallenger}; use p3_commit::{Pcs, UnivariatePcs, UnivariatePcsWithLde}; +use p3_field::extension::BinomiallyExtendable; use p3_field::{AbstractExtensionField, AbstractField}; use p3_field::{ExtensionField, PrimeField}; use p3_field::{PrimeField32, TwoAdicField}; @@ -427,7 +428,7 @@ where }; } - fn commit_shards( + fn commit_shards, EF>( machine: &RiscvStark, shards: &[ExecutionRecord], ) -> ( @@ -475,6 +476,7 @@ where } else { data.to_in_memory() }; + // let data = data.to_in_memory(); (commitment, data) }) .collect::>() diff --git a/core/src/stark/verifier.rs b/core/src/stark/verifier.rs index 01185890a8..5b7e17dada 100644 --- a/core/src/stark/verifier.rs +++ b/core/src/stark/verifier.rs @@ -77,6 +77,7 @@ impl Verifier { quotient_commit, } = commitment; + println!("cycle-tracker-start: permutation and fri challenges"); let permutation_challenges = (0..2) .map(|_| challenger.sample_ext_element::()) .collect::>(); @@ -101,7 +102,9 @@ impl Verifier { .iter() .map(|chip| vec![zeta.exp_power_of_2(chip.log_quotient_degree())]) .collect::>(); + println!("cycle-tracker-end: permutation and fri challenges"); + println!("cycle-tracker-start: verify multi batches"); config .pcs() .verify_multi_batches( @@ -116,9 +119,11 @@ impl Verifier { challenger, ) .map_err(|_| VerificationError::InvalidopeningArgument)?; + println!("cycle-tracker-end: verify multi batches"); // Verify the constrtaint evaluations. + println!("cycle-tracker-start: verify constraints"); for (chip, values, g) in izip!(chips.iter(), opened_values.chips.iter(), g_subgroups.iter()) { Self::verify_constraints( @@ -131,6 +136,7 @@ impl Verifier { ) .map_err(|_| VerificationError::OodEvaluationMismatch(chip.name()))?; } + println!("cycle-tracker-end: verify constraints"); Ok(()) } diff --git a/core/src/syscall/precompiles/blake3/compress/air.rs b/core/src/syscall/precompiles/blake3/compress/air.rs index ce9494ad6d..2cf948ac46 100644 --- a/core/src/syscall/precompiles/blake3/compress/air.rs +++ b/core/src/syscall/precompiles/blake3/compress/air.rs @@ -7,7 +7,7 @@ use super::{ Blake3CompressInnerChip, G_INDEX, MSG_SCHEDULE, NUM_MSG_WORDS_PER_CALL, NUM_STATE_WORDS_PER_CALL, OPERATION_COUNT, ROUND_COUNT, }; -use crate::air::{SP1AirBuilder, WORD_SIZE}; +use crate::air::{BaseAirBuilder, SP1AirBuilder, WORD_SIZE}; use core::borrow::Borrow; use p3_matrix::MatrixRowSlices; @@ -31,7 +31,7 @@ where self.constrain_memory(builder, local); - self.constraint_g_operation(builder, local); + self.constrain_g_operation(builder, local); } } @@ -87,10 +87,17 @@ impl Blake3CompressInnerChip { builder .when_transition() .when(local.is_operation_index_n[i]) + .when_not(local.is_round_index_n[ROUND_COUNT - 1]) .assert_eq( local.round_index + AB::F::from_canonical_u16(1), next.round_index, ); + + builder + .when_transition() + .when(local.is_operation_index_n[i]) + .when(local.is_round_index_n[ROUND_COUNT - 1]) + .assert_zero(next.round_index); } } } @@ -170,7 +177,7 @@ impl Blake3CompressInnerChip { } /// Constrains the input and the output of the `g` operation. - fn constraint_g_operation( + fn constrain_g_operation( &self, builder: &mut AB, local: &Blake3CompressInnerCols, diff --git a/core/src/syscall/precompiles/blake3/compress/mod.rs b/core/src/syscall/precompiles/blake3/compress/mod.rs index 1d7df224c6..41b8f4240e 100644 --- a/core/src/syscall/precompiles/blake3/compress/mod.rs +++ b/core/src/syscall/precompiles/blake3/compress/mod.rs @@ -102,7 +102,7 @@ pub struct Blake3CompressInnerEvent { pub struct Blake3CompressInnerChip {} impl Blake3CompressInnerChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self {} } } diff --git a/core/src/syscall/precompiles/blake3/compress/trace.rs b/core/src/syscall/precompiles/blake3/compress/trace.rs index 9629d2696f..e0f548a575 100644 --- a/core/src/syscall/precompiles/blake3/compress/trace.rs +++ b/core/src/syscall/precompiles/blake3/compress/trace.rs @@ -8,6 +8,7 @@ use crate::utils::pad_rows; use p3_field::PrimeField; use p3_matrix::dense::RowMajorMatrix; +use tracing::instrument; use crate::air::MachineAir; @@ -22,6 +23,7 @@ impl MachineAir for Blake3CompressInnerChip { "Blake3CompressInner".to_string() } + #[instrument(name = "generate blake3 trace", skip_all)] fn generate_trace( &self, input: &ExecutionRecord, @@ -105,15 +107,7 @@ impl MachineAir for Blake3CompressInnerChip { output.add_field_events(&new_field_events); - pad_rows(&mut rows, || { - let mut row = [F::zero(); NUM_BLAKE3_COMPRESS_INNER_COLS]; - let cols: &mut Blake3CompressInnerCols = row.as_mut_slice().borrow_mut(); - - // Put this value in this padded row to avoid failing the constraint. - cols.round_index = F::from_canonical_usize(ROUND_COUNT); - - row - }); + pad_rows(&mut rows, || [F::zero(); NUM_BLAKE3_COMPRESS_INNER_COLS]); // Convert the trace to a row major matrix. RowMajorMatrix::new( diff --git a/core/src/syscall/precompiles/edwards/ed_add.rs b/core/src/syscall/precompiles/edwards/ed_add.rs index 869dfc148e..483d5261c3 100644 --- a/core/src/syscall/precompiles/edwards/ed_add.rs +++ b/core/src/syscall/precompiles/edwards/ed_add.rs @@ -69,7 +69,7 @@ pub struct EdAddAssignChip { } impl EdAddAssignChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self { _marker: PhantomData, } diff --git a/core/src/syscall/precompiles/edwards/ed_decompress.rs b/core/src/syscall/precompiles/edwards/ed_decompress.rs index 5c5522f9e7..aef1fb7588 100644 --- a/core/src/syscall/precompiles/edwards/ed_decompress.rs +++ b/core/src/syscall/precompiles/edwards/ed_decompress.rs @@ -264,7 +264,7 @@ impl Syscall for EdDecompressChip { } impl EdDecompressChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self { _phantom: PhantomData, } diff --git a/core/src/syscall/precompiles/fri_fold/air.rs b/core/src/syscall/precompiles/fri_fold/air.rs new file mode 100644 index 0000000000..8fd32a4201 --- /dev/null +++ b/core/src/syscall/precompiles/fri_fold/air.rs @@ -0,0 +1,177 @@ +use core::borrow::Borrow; + +use p3_air::{Air, AirBuilder, BaseAir}; +use p3_field::{extension::BinomiallyExtendable, AbstractField}; +use p3_matrix::MatrixRowSlices; + +use crate::{ + air::{Extension, SP1AirBuilder, DEGREE}, + memory::MemoryCols, + operations::DivExtOperation, +}; + +use super::{ + columns::{ + FriFoldCols, ALPHA_END_IDX, ALPHA_POW_ADDR_IDX, ALPHA_START_IDX, NUM_FRI_FOLD_COLS, + NUM_INPUT_ELMS, NUM_OUTPUT_ELMS, P_AT_X_IDX, P_AT_Z_END_IDX, P_AT_Z_START_IDX, RO_ADDR_IDX, + X_IDX, Z_END_IDX, Z_START_IDX, + }, + FriFoldChip, +}; + +impl BaseAir for FriFoldChip { + fn width(&self) -> usize { + NUM_FRI_FOLD_COLS + } +} + +impl Air for FriFoldChip +where + AB: SP1AirBuilder, + AB::F: BinomiallyExtendable<4>, +{ + fn eval(&self, builder: &mut AB) { + let main = builder.main(); + let local: &FriFoldCols = main.row_slice(0).borrow(); + let next: &FriFoldCols = main.row_slice(1).borrow(); + + // Constrain input mem slice + for i in 0..NUM_INPUT_ELMS as u32 { + builder.constraint_memory_access( + local.shard, + local.clk, + local.input_slice_ptr + AB::Expr::from_canonical_u32(i * 4), + &local.input_slice_read_records[i as usize], + local.is_input, + ); + } + + let x: AB::Expr = local.input_slice_read_records[X_IDX].value().reduce::(); + let alpha = Extension::( + local.input_slice_read_records[ALPHA_START_IDX..ALPHA_END_IDX + 1] + .iter() + .map(|record| record.value().reduce::()) + .collect::>() + .try_into() + .unwrap(), + ); + + let z = Extension( + local.input_slice_read_records[Z_START_IDX..Z_END_IDX + 1] + .iter() + .map(|record| record.value().reduce::()) + .collect::>() + .try_into() + .unwrap(), + ); + let p_at_z = Extension( + local.input_slice_read_records[P_AT_Z_START_IDX..P_AT_Z_END_IDX + 1] + .iter() + .map(|record| record.value().reduce::()) + .collect::>() + .try_into() + .unwrap(), + ); + let p_at_x: AB::Expr = local.input_slice_read_records[P_AT_X_IDX] + .value() + .reduce::(); + + // Constrain output mem slice + for i in 0..NUM_OUTPUT_ELMS as u32 { + builder.constraint_memory_access( + local.shard, + local.clk, + local.output_slice_ptr + AB::Expr::from_canonical_u32(i * 4), + &local.output_slice_read_records[i as usize], + local.is_input, + ); + } + + let ro_addr: AB::Expr = local.output_slice_read_records[RO_ADDR_IDX] + .value() + .reduce::(); + let alpha_pow_addr: AB::Expr = local.output_slice_read_records[ALPHA_POW_ADDR_IDX] + .value() + .reduce::(); + builder + .when(local.is_input) + .assert_eq(ro_addr.clone(), local.ro_addr); + builder + .when(local.is_input) + .assert_eq(ro_addr.clone(), next.ro_addr); + builder + .when(local.is_input) + .assert_eq(alpha_pow_addr.clone(), local.alpha_pow_addr); + builder + .when(local.is_input) + .assert_eq(alpha_pow_addr.clone(), next.alpha_pow_addr); + + // Constrain ro and alpha_pow + for i in 0..DEGREE { + builder.constraint_memory_access( + local.shard, + local.clk, + local.ro_addr + AB::Expr::from_canonical_usize(i * 4), + &local.ro_rw_records[i], + local.is_real, + ); + + builder.constraint_memory_access( + local.shard, + local.clk, + local.alpha_pow_addr + AB::Expr::from_canonical_usize(i * 4), + &local.alpha_pow_rw_records[i], + local.is_real, + ); + } + + let ro_input = Extension( + local.ro_rw_records[0..DEGREE] + .iter() + .map(|record| record.value().reduce::()) + .collect::>() + .try_into() + .unwrap(), + ); + let alpha_pow_input = Extension( + local.alpha_pow_rw_records[0..DEGREE] + .iter() + .map(|record| record.value().reduce::()) + .collect::>() + .try_into() + .unwrap(), + ); + + // // let quotient = (-p_at_z + p_at_x) / (-z + x); + // // ro[log_height] += alpha_pow[log_height] * quotient; + // // alpha_pow[log_height] *= alpha; + + let num = p_at_z.neg::().add::(&Extension::from::(p_at_x)); + let den = z + .clone() + .neg::() + .add::(&Extension::from::(x.clone())); + + let ro_output = ro_input.add::( + &alpha_pow_input + .clone() + .mul::(&Extension::from_var::(local.div_ext_op.result)), + ); + let alpha_pow_output = alpha_pow_input.mul::(&alpha); + + DivExtOperation::::eval(builder, num, den, local.div_ext_op, local.is_input.into()); + + // Verify that the calculated ro and alpha_pow are equal to their memory values in the + // next row + for i in 0..DEGREE { + builder.when_transition().when(local.is_input).assert_eq( + ro_output.0[i].clone(), + next.ro_rw_records[i].value().reduce::(), + ); + builder.when_transition().when(local.is_input).assert_eq( + alpha_pow_output.0[i].clone(), + next.alpha_pow_rw_records[i].value().reduce::(), + ); + } + } +} diff --git a/core/src/syscall/precompiles/fri_fold/columns.rs b/core/src/syscall/precompiles/fri_fold/columns.rs new file mode 100644 index 0000000000..b350cb4083 --- /dev/null +++ b/core/src/syscall/precompiles/fri_fold/columns.rs @@ -0,0 +1,54 @@ +use core::borrow::{Borrow, BorrowMut}; +use core::mem::size_of; + +use sp1_derive::AlignedBorrow; + +use crate::air::DEGREE; +use crate::memory::{MemoryReadCols, MemoryReadWriteCols}; +use crate::operations::DivExtOperation; + +pub(crate) const NUM_FRI_FOLD_COLS: usize = size_of::>(); +pub(crate) const X_IDX: usize = 0; +pub(crate) const ALPHA_START_IDX: usize = X_IDX + 1; +pub(crate) const ALPHA_END_IDX: usize = ALPHA_START_IDX + DEGREE - 1; +pub(crate) const Z_START_IDX: usize = ALPHA_END_IDX + 1; +pub(crate) const Z_END_IDX: usize = Z_START_IDX + DEGREE - 1; +pub(crate) const P_AT_Z_START_IDX: usize = Z_END_IDX + 1; +pub(crate) const P_AT_Z_END_IDX: usize = P_AT_Z_START_IDX + DEGREE - 1; +pub(crate) const P_AT_X_IDX: usize = P_AT_Z_END_IDX + 1; +pub(crate) const NUM_INPUT_ELMS: usize = P_AT_X_IDX + 1; + +pub(crate) const RO_ADDR_IDX: usize = 0; +pub(crate) const ALPHA_POW_ADDR_IDX: usize = 1; +pub(crate) const NUM_OUTPUT_ELMS: usize = 2; + +#[derive(AlignedBorrow)] +#[repr(C)] +pub(crate) struct FriFoldCols { + pub shard: T, + pub clk: T, + + // x = input_mem_ptr[0] + // alpha = input_mem_ptr[1..5] + // z = input_mem_ptr[5..9] + // p_at_z = input_mem_ptr[9] + // p_at_x = input_mem_ptr[10] + pub input_slice_read_records: [MemoryReadCols; NUM_INPUT_ELMS], + pub input_slice_ptr: T, + + // ro_addr = output_read_records[0] + // alpha_pow_addr = output_read_records[1] + pub output_slice_read_records: [MemoryReadCols; NUM_OUTPUT_ELMS], + pub output_slice_ptr: T, + + pub ro_rw_records: [MemoryReadWriteCols; DEGREE], + pub ro_addr: T, + pub alpha_pow_rw_records: [MemoryReadWriteCols; DEGREE], + pub alpha_pow_addr: T, + + pub(crate) div_ext_op: DivExtOperation, + + pub is_input: T, + pub is_output: T, + pub is_real: T, +} diff --git a/core/src/syscall/precompiles/fri_fold/execute.rs b/core/src/syscall/precompiles/fri_fold/execute.rs new file mode 100644 index 0000000000..0c2200f8d3 --- /dev/null +++ b/core/src/syscall/precompiles/fri_fold/execute.rs @@ -0,0 +1,147 @@ +use p3_baby_bear::BabyBear; +use p3_field::{ + extension::BinomialExtensionField, AbstractExtensionField, AbstractField, PrimeField32, +}; + +use crate::{ + runtime::{Register, Syscall}, + syscall::precompiles::SyscallContext, +}; + +use super::{FriFoldChip, FriFoldEvent}; + +impl Syscall for FriFoldChip { + fn num_extra_cycles(&self) -> u32 { + 8 + } + + fn execute(&self, rt: &mut SyscallContext) -> u32 { + // TODO: these will have to be be constrained, but can do it later. + // Read `input_mem_ptr` from register a0. + let input_slice_ptr = rt.register_unsafe(Register::X10); + if input_slice_ptr % 4 != 0 { + panic!(); + } + // Read `output_mem_ptr` from register a1. + let output_slice_ptr = rt.register_unsafe(Register::X11); + if output_slice_ptr % 4 != 0 { + panic!(); + } + + let saved_clk = rt.clk; + + let (input_slice_read_records, input_values) = rt.mr_slice(input_slice_ptr, 14); + + let x = BabyBear::from_canonical_u32(input_values[0]); + let alpha = BinomialExtensionField::::from_base_slice( + input_values[1..5] + .iter() + .map(|x| BabyBear::from_canonical_u32(*x)) + .collect::>() + .as_slice(), + ); + let z = BinomialExtensionField::::from_base_slice( + input_values[5..9] + .iter() + .map(|x| BabyBear::from_canonical_u32(*x)) + .collect::>() + .as_slice(), + ); + let p_at_z = BinomialExtensionField::::from_base_slice( + input_values[9..13] + .iter() + .map(|x| BabyBear::from_canonical_u32(*x)) + .collect::>() + .as_slice(), + ); + let p_at_x = BabyBear::from_canonical_u32(input_values[13]); + + // Read ro[log_height] and alpha_pow[log_height] address + let (output_slice_read_records, output_addresses) = rt.mr_slice(output_slice_ptr, 2); + let ro_addr = output_addresses[0]; + let alpha_pow_addr = output_addresses[1]; + + let (ro_read_records, ro_values) = rt.mr_slice(ro_addr, 4); + + let ro_input = BinomialExtensionField::::from_base_slice( + ro_values + .iter() + .map(|&x| BabyBear::from_canonical_u32(x)) + .collect::>() + .as_slice(), + ); + + let (alpha_pow_read_records, alpha_values) = rt.mr_slice(alpha_pow_addr, 4); + let alpha_pow_input = BinomialExtensionField::::from_base_slice( + alpha_values + .iter() + .map(|&x| BabyBear::from_canonical_u32(x)) + .collect::>() + .as_slice(), + ); + + rt.clk += 4; + + let num = -p_at_z + p_at_x; + let denom = -z + x; + let quotient = num / denom; + + let ro_output = ro_input + (alpha_pow_input * quotient); + let alpha_pow_output = alpha_pow_input * alpha; + + let ro_write_records = rt.mw_slice( + ro_addr, + ro_output + .as_base_slice() + .iter() + .map(|x: &BabyBear| x.as_canonical_u32()) + .collect::>() + .as_slice(), + ); + let alpha_pow_write_records = rt.mw_slice( + alpha_pow_addr, + alpha_pow_output + .as_base_slice() + .iter() + .map(|x: &BabyBear| x.as_canonical_u32()) + .collect::>() + .as_slice(), + ); + + rt.clk += 4; + + let shard = rt.current_shard(); + + // Push the fri fold event. + rt.record_mut().fri_fold_events.push(FriFoldEvent { + clk: saved_clk, + shard, + num: num + .as_base_slice() + .iter() + .map(|x: &BabyBear| x.as_canonical_u32()) + .collect::>() + .as_slice() + .try_into() + .unwrap(), + denom: denom + .as_base_slice() + .iter() + .map(|x: &BabyBear| x.as_canonical_u32()) + .collect::>() + .as_slice() + .try_into() + .unwrap(), + input_slice_ptr, + input_slice_read_records, + output_slice_ptr, + output_slice_read_records, + ro_read_records, + ro_write_records, + alpha_pow_read_records, + alpha_pow_write_records, + }); + + input_slice_ptr + } +} diff --git a/core/src/syscall/precompiles/fri_fold/mod.rs b/core/src/syscall/precompiles/fri_fold/mod.rs new file mode 100644 index 0000000000..42fa6a8165 --- /dev/null +++ b/core/src/syscall/precompiles/fri_fold/mod.rs @@ -0,0 +1,225 @@ +use crate::syscall::precompiles::{MemoryReadRecord, MemoryWriteRecord}; + +mod air; +mod columns; +mod execute; +mod trace; + +#[derive(Debug, Clone)] +pub struct FriFoldEvent { + pub clk: u32, + pub shard: u32, + + pub num: [u32; 4], + pub denom: [u32; 4], + + pub input_slice_read_records: Vec, + pub input_slice_ptr: u32, + pub output_slice_read_records: Vec, + pub output_slice_ptr: u32, + + pub ro_read_records: Vec, + pub ro_write_records: Vec, + + pub alpha_pow_read_records: Vec, + pub alpha_pow_write_records: Vec, +} + +pub struct FriFoldChip {} + +impl FriFoldChip { + pub const fn new() -> Self { + Self {} + } +} + +#[cfg(test)] +pub mod fri_fold_tests { + use crate::air::DEGREE; + use crate::runtime::Instruction; + use crate::runtime::Opcode; + use crate::runtime::Register; + use crate::runtime::SyscallCode; + use crate::utils::run_test; + use crate::utils::setup_logger; + use crate::utils::tests::BLAKE3_COMPRESS_ELF; + use crate::Program; + + use super::columns::P_AT_X_IDX; + use super::columns::P_AT_Z_START_IDX; + use super::columns::Z_START_IDX; + use super::columns::{ALPHA_START_IDX, X_IDX}; + + pub fn fri_fold_internal_program() -> Program { + let input_ptr = 100; + let output_ptr = 500; + let ro_addr = 1000; + let alpha_pow_addr = 1500; + let mut instructions = vec![]; + + // Will test it with the following values. + + // input_ro: BinomialExtensionField { value: [1847687120, 1423454610, 1144640053, 1381242286] } + // input_alpha_pow: BinomialExtensionField { value: [540044308, 1018290973, 627874647, 969069565] } + // p_at_z: BinomialExtensionField { value: [1257978304, 1179973496, 1444690212, 456956341] } + // p_at_x: 777132171 + // z: BinomialExtensionField { value: [1454407147, 568676784, 1977102820, 1323872866] } + // x: is 31 + // alpha: BinomialExtensionField { value: } + + // output_ro: BinomialExtensionField { value: [1306862788, 594458733, 1798096294, 1881139490] } + // output_alpha_pow: BinomialExtensionField { value: [1726063080, 1854443909, 1099989448, 144245555] } + + // Store 1000 + i in memory for the i-th word of the state. 1000 + i is an arbitrary + // number that is easy to spot while debugging. + + let x = 31; + let alpha_base_slice = [534846791, 266430563, 1876720999, 461694771]; + let z_base_slice = [1454407147, 568676784, 1977102820, 1323872866]; + let p_at_z_base_slice = [1257978304, 1179973496, 1444690212, 456956341]; + let p_at_x = 777132171; + let input_ro_base_slice = [1847687120, 1423454610, 1144640053, 1381242286]; + let input_alpha_pow_base_slice = [540044308, 1018290973, 627874647, 969069565]; + + // Save x into memory + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, x, false, true), + Instruction::new(Opcode::ADD, 30, 0, input_ptr + X_IDX as u32, false, true), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + + // Save alpha into memory + for i in 0..DEGREE { + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, alpha_base_slice[i], false, true), + Instruction::new( + Opcode::ADD, + 30, + 0, + input_ptr + ((ALPHA_START_IDX + i) * 4) as u32, + false, + true, + ), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + } + + // Save z into memory + for i in 0..DEGREE { + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, z_base_slice[i], false, true), + Instruction::new( + Opcode::ADD, + 30, + 0, + input_ptr + ((Z_START_IDX + i) * 4) as u32, + false, + true, + ), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + } + + // Save p_at_z into memory + for i in 0..DEGREE { + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, p_at_z_base_slice[i], false, true), + Instruction::new( + Opcode::ADD, + 30, + 0, + input_ptr + ((P_AT_Z_START_IDX + i) * 4) as u32, + false, + true, + ), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + } + + // Save p_at_x into memory + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, p_at_x, false, true), + Instruction::new( + Opcode::ADD, + 30, + 0, + input_ptr + (P_AT_X_IDX * 4) as u32, + false, + true, + ), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + + // Save input_ro_base_slice into ro memory + for i in 0..DEGREE { + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, input_ro_base_slice[i], false, true), + Instruction::new(Opcode::ADD, 30, 0, ro_addr + (i * 4) as u32, false, true), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + } + + // Save input_alpha_pow_base_slice into alpha_pow memory + for i in 0..DEGREE { + instructions.extend(vec![ + Instruction::new( + Opcode::ADD, + 29, + 0, + input_alpha_pow_base_slice[i], + false, + true, + ), + Instruction::new( + Opcode::ADD, + 30, + 0, + alpha_pow_addr + (i * 4) as u32, + false, + true, + ), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + } + + // Save ro_addr and alpha_pow_addr into output memory + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 29, 0, ro_addr, false, true), + Instruction::new(Opcode::ADD, 30, 0, output_ptr, false, true), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + Instruction::new(Opcode::ADD, 29, 0, alpha_pow_addr, false, true), + Instruction::new(Opcode::ADD, 30, 0, output_ptr + 4, false, true), + Instruction::new(Opcode::SW, 29, 30, 0, false, true), + ]); + + instructions.extend(vec![ + Instruction::new(Opcode::ADD, 5, 0, SyscallCode::FRI_FOLD as u32, false, true), + Instruction::new(Opcode::ADD, Register::X10 as u32, 0, input_ptr, false, true), + Instruction::new( + Opcode::ADD, + Register::X11 as u32, + 0, + output_ptr, + false, + true, + ), + Instruction::new(Opcode::ECALL, 10, 5, 0, false, true), + ]); + + Program::new(instructions, 0, 0) + } + + #[test] + fn prove_babybear() { + setup_logger(); + let program = fri_fold_internal_program(); + run_test(program).unwrap(); + } + + #[test] + fn test_blake3_compress_inner_elf() { + setup_logger(); + let program = Program::from(BLAKE3_COMPRESS_ELF); + run_test(program).unwrap(); + } +} diff --git a/core/src/syscall/precompiles/fri_fold/trace.rs b/core/src/syscall/precompiles/fri_fold/trace.rs new file mode 100644 index 0000000000..0c82f816d9 --- /dev/null +++ b/core/src/syscall/precompiles/fri_fold/trace.rs @@ -0,0 +1,137 @@ +use std::borrow::BorrowMut; + +use alloc::vec::Vec; + +use p3_field::{ + extension::{BinomialExtensionField, BinomiallyExtendable}, + AbstractExtensionField, PrimeField32, +}; +use p3_matrix::dense::RowMajorMatrix; +use p3_maybe_rayon::prelude::{IntoParallelRefIterator, ParallelIterator}; +use tracing::instrument; + +use crate::{ + air::{MachineAir, DEGREE}, + cpu::MemoryRecordEnum, + field::event::FieldEvent, + runtime::ExecutionRecord, + utils::pad_rows, +}; + +use super::{ + columns::{ + FriFoldCols, ALPHA_POW_ADDR_IDX, NUM_FRI_FOLD_COLS, NUM_INPUT_ELMS, NUM_OUTPUT_ELMS, + RO_ADDR_IDX, + }, + FriFoldChip, +}; + +impl> MachineAir for FriFoldChip { + fn name(&self) -> String { + "FriFold".to_string() + } + + #[instrument(name = "generate fri fold trace", skip_all)] + fn generate_trace( + &self, + input: &ExecutionRecord, + output: &mut ExecutionRecord, + ) -> RowMajorMatrix { + let (mut rows, new_field_events_list): (Vec<[F; NUM_FRI_FOLD_COLS]>, Vec>) = + input + .fri_fold_events + .par_iter() + .map(|event| { + // Enter in data for the read row + let mut input_row = [F::zero(); NUM_FRI_FOLD_COLS]; + let input_cols: &mut FriFoldCols = input_row.as_mut_slice().borrow_mut(); + + // Populate basic columns. + input_cols.is_real = F::one(); + input_cols.is_input = F::one(); + input_cols.shard = F::from_canonical_u32(event.shard); + input_cols.clk = F::from_canonical_u32(event.clk); + input_cols.input_slice_ptr = F::from_canonical_u32(event.input_slice_ptr); + input_cols.output_slice_ptr = F::from_canonical_u32(event.output_slice_ptr); + + let num_base_elms = event.num.map(F::from_canonical_u32); + let num = BinomialExtensionField::from_base_slice(&num_base_elms); + let denom_base_elms = event.denom.map(F::from_canonical_u32); + let denom = BinomialExtensionField::from_base_slice(&denom_base_elms); + + input_cols.div_ext_op.populate(num, denom); + + // Populate the memory access columns. + let mut input_new_field_events = Vec::new(); + for i in 0..NUM_INPUT_ELMS { + input_cols.input_slice_read_records[i].populate( + event.input_slice_read_records[i], + &mut input_new_field_events, + ); + } + for i in 0..NUM_OUTPUT_ELMS { + input_cols.output_slice_read_records[i].populate( + event.output_slice_read_records[i], + &mut input_new_field_events, + ); + } + + input_cols.ro_addr = + F::from_canonical_u32(event.output_slice_read_records[RO_ADDR_IDX].value); + input_cols.alpha_pow_addr = F::from_canonical_u32( + event.output_slice_read_records[ALPHA_POW_ADDR_IDX].value, + ); + + for i in 0..DEGREE { + input_cols.ro_rw_records[i].populate( + MemoryRecordEnum::Read(event.ro_read_records[i]), + &mut input_new_field_events, + ); + input_cols.alpha_pow_rw_records[i].populate( + MemoryRecordEnum::Read(event.alpha_pow_read_records[i]), + &mut input_new_field_events, + ); + } + + let mut output_row = [F::zero(); NUM_FRI_FOLD_COLS]; + let output_cols: &mut FriFoldCols = output_row.as_mut_slice().borrow_mut(); + output_cols.is_real = F::one(); + output_cols.is_input = F::zero(); + output_cols.shard = F::from_canonical_u32(event.shard); + output_cols.clk = F::from_wrapped_u32(event.clk) + F::from_wrapped_u32(4); + output_cols.ro_addr = input_cols.ro_addr; + output_cols.alpha_pow_addr = input_cols.alpha_pow_addr; + + let mut output_new_field_events = Vec::new(); + for i in 0..DEGREE { + output_cols.ro_rw_records[i].populate( + MemoryRecordEnum::Write(event.ro_write_records[i]), + &mut output_new_field_events, + ); + output_cols.alpha_pow_rw_records[i].populate( + MemoryRecordEnum::Write(event.alpha_pow_write_records[i]), + &mut output_new_field_events, + ); + } + + [ + (input_row, input_new_field_events), + (output_row, output_new_field_events), + ] + }) + .flatten() + .unzip(); + + for new_field_events in new_field_events_list { + output.add_field_events(&new_field_events); + } + + pad_rows(&mut rows, || [F::zero(); NUM_FRI_FOLD_COLS]); + + // Convert the trace to a row major matrix. + RowMajorMatrix::new( + rows.into_iter().flatten().collect::>(), + NUM_FRI_FOLD_COLS, + ) + } +} diff --git a/core/src/syscall/precompiles/k256/decompress.rs b/core/src/syscall/precompiles/k256/decompress.rs index df2220bdc0..ff5c8c1c66 100644 --- a/core/src/syscall/precompiles/k256/decompress.rs +++ b/core/src/syscall/precompiles/k256/decompress.rs @@ -65,7 +65,7 @@ pub const NUM_K256_DECOMPRESS_COLS: usize = size_of::>(); pub struct K256DecompressChip; impl K256DecompressChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self } } diff --git a/core/src/syscall/precompiles/keccak256/mod.rs b/core/src/syscall/precompiles/keccak256/mod.rs index c91d401705..3d508a2214 100644 --- a/core/src/syscall/precompiles/keccak256/mod.rs +++ b/core/src/syscall/precompiles/keccak256/mod.rs @@ -28,7 +28,7 @@ pub struct KeccakPermuteChip { } impl KeccakPermuteChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self { p3_keccak: KeccakAir {}, } diff --git a/core/src/syscall/precompiles/keccak256/trace.rs b/core/src/syscall/precompiles/keccak256/trace.rs index ff4d0d13f8..99b0859057 100644 --- a/core/src/syscall/precompiles/keccak256/trace.rs +++ b/core/src/syscall/precompiles/keccak256/trace.rs @@ -5,6 +5,7 @@ use alloc::vec::Vec; use p3_field::PrimeField32; use p3_keccak_air::{generate_trace_rows, NUM_KECCAK_COLS, NUM_ROUNDS}; use p3_matrix::dense::RowMajorMatrix; +use tracing::instrument; use crate::{ air::MachineAir, runtime::ExecutionRecord, syscall::precompiles::keccak256::STATE_SIZE, @@ -20,6 +21,7 @@ impl MachineAir for KeccakPermuteChip { "KeccakPermute".to_string() } + #[instrument(name = "generate keccak256 trace", skip_all)] fn generate_trace( &self, input: &ExecutionRecord, diff --git a/core/src/syscall/precompiles/mod.rs b/core/src/syscall/precompiles/mod.rs index afac749ffc..1a2d6625ef 100644 --- a/core/src/syscall/precompiles/mod.rs +++ b/core/src/syscall/precompiles/mod.rs @@ -1,5 +1,6 @@ pub mod blake3; pub mod edwards; +pub mod fri_fold; pub mod k256; pub mod keccak256; pub mod sha256; diff --git a/core/src/syscall/precompiles/sha256/compress/air.rs b/core/src/syscall/precompiles/sha256/compress/air.rs index 9170a7040b..0445cfdff8 100644 --- a/core/src/syscall/precompiles/sha256/compress/air.rs +++ b/core/src/syscall/precompiles/sha256/compress/air.rs @@ -26,7 +26,7 @@ where let local: &ShaCompressCols = main.row_slice(0).borrow(); let next: &ShaCompressCols = main.row_slice(1).borrow(); - self.contrain_control_flow_flags(builder, local, next); + self.constrain_control_flow_flags(builder, local, next); self.constrain_memory(builder, local); @@ -37,7 +37,7 @@ where } impl ShaCompressChip { - fn contrain_control_flow_flags( + fn constrain_control_flow_flags( &self, builder: &mut AB, local: &ShaCompressCols, diff --git a/core/src/syscall/precompiles/sha256/compress/trace.rs b/core/src/syscall/precompiles/sha256/compress/trace.rs index eda1c55109..1d72150826 100644 --- a/core/src/syscall/precompiles/sha256/compress/trace.rs +++ b/core/src/syscall/precompiles/sha256/compress/trace.rs @@ -2,6 +2,7 @@ use std::borrow::BorrowMut; use p3_field::PrimeField; use p3_matrix::dense::RowMajorMatrix; +use tracing::instrument; use crate::{ air::{MachineAir, Word}, @@ -19,6 +20,7 @@ impl MachineAir for ShaCompressChip { "ShaCompress".to_string() } + #[instrument(name = "generate sha compress trace", skip_all)] fn generate_trace( &self, input: &ExecutionRecord, diff --git a/core/src/syscall/precompiles/sha256/extend/trace.rs b/core/src/syscall/precompiles/sha256/extend/trace.rs index baadd67034..f0b1b187d7 100644 --- a/core/src/syscall/precompiles/sha256/extend/trace.rs +++ b/core/src/syscall/precompiles/sha256/extend/trace.rs @@ -2,6 +2,7 @@ use std::borrow::BorrowMut; use p3_field::PrimeField; use p3_matrix::dense::RowMajorMatrix; +use tracing::instrument; use crate::{air::MachineAir, runtime::ExecutionRecord}; @@ -12,6 +13,7 @@ impl MachineAir for ShaExtendChip { "ShaExtend".to_string() } + #[instrument(name = "generate sha extend trace", skip_all)] fn generate_trace( &self, input: &ExecutionRecord, diff --git a/core/src/syscall/precompiles/weierstrass/weierstrass_add.rs b/core/src/syscall/precompiles/weierstrass/weierstrass_add.rs index 732a4c794d..66b2846a1a 100644 --- a/core/src/syscall/precompiles/weierstrass/weierstrass_add.rs +++ b/core/src/syscall/precompiles/weierstrass/weierstrass_add.rs @@ -78,7 +78,7 @@ impl Syscall for WeierstrassAddAssignChip { } impl WeierstrassAddAssignChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self { _marker: PhantomData, } diff --git a/core/src/syscall/precompiles/weierstrass/weierstrass_double.rs b/core/src/syscall/precompiles/weierstrass/weierstrass_double.rs index ced770596d..4ec4d426e2 100644 --- a/core/src/syscall/precompiles/weierstrass/weierstrass_double.rs +++ b/core/src/syscall/precompiles/weierstrass/weierstrass_double.rs @@ -76,7 +76,7 @@ impl Syscall for WeierstrassDoubleAssi } impl WeierstrassDoubleAssignChip { - pub fn new() -> Self { + pub const fn new() -> Self { Self { _marker: PhantomData, } diff --git a/core/src/utils/programs.rs b/core/src/utils/programs.rs index e7715fe946..fad94b4890 100644 --- a/core/src/utils/programs.rs +++ b/core/src/utils/programs.rs @@ -72,4 +72,7 @@ pub mod tests { pub const SHA2_ELF: &[u8] = include_bytes!("../../../tests/sha2/elf/riscv32im-succinct-zkvm-elf"); + + pub const FRI_FOLD_ELF: &[u8] = + include_bytes!("../../../tests/fri-fold/elf/riscv32im-succinct-zkvm-elf"); } diff --git a/core/src/utils/prove.rs b/core/src/utils/prove.rs index 1c06647084..e40925211f 100644 --- a/core/src/utils/prove.rs +++ b/core/src/utils/prove.rs @@ -183,7 +183,7 @@ pub(super) mod baby_bear_poseidon2 { pub type Challenge = BinomialExtensionField; - pub type Perm = Poseidon2; + pub type Perm = Poseidon2; pub type MyHash = PaddingFreeSponge; pub type MyCompress = TruncatedPermutation; @@ -325,7 +325,7 @@ pub(super) mod baby_bear_keccak { pub type Dft = Radix2DitParallel; - type Challenger = SerializingChallenger32>; + type Challenger = SerializingChallenger32>; type Pcs = TwoAdicFriPcs>; @@ -421,14 +421,16 @@ pub(super) mod baby_bear_keccak { pub(super) mod baby_bear_blake3 { use p3_baby_bear::BabyBear; - use p3_blake3::Blake3; use p3_challenger::{HashChallenger, SerializingChallenger32}; use p3_commit::ExtensionMmcs; use p3_dft::Radix2DitParallel; use p3_field::extension::BinomialExtensionField; use p3_fri::{FriConfig, TwoAdicFriPcs, TwoAdicFriPcsConfig}; use p3_merkle_tree::FieldMerkleTreeMmcs; - use p3_symmetric::{CompressionFunctionFromHasher, SerializingHasher32}; + use p3_symmetric::{ + CompressionFunctionFromHasher, CryptographicHasher, PseudoCompressionFunction, + SerializingHasher32, + }; use serde::{Deserialize, Serialize}; use crate::stark::StarkGenericConfig; @@ -439,25 +441,53 @@ pub(super) mod baby_bear_blake3 { pub type Challenge = BinomialExtensionField; - type ByteHash = Blake3; + type ByteHash = Blake3U32; + type RecursiveVerifierByteHash = Blake3U32Zkvm; + type FieldHash = SerializingHasher32; + type RecursiveVerifierFieldHash = SerializingHasher32; - type MyCompress = CompressionFunctionFromHasher; + type Compress = CompressionFunctionFromHasher; + type RecursiveVerifierCompress = Blake3SingleBlockCompression; + + pub type ValMmcs = FieldMerkleTreeMmcs; + pub type RecursiveVerifierValMmcs = + FieldMerkleTreeMmcs; - pub type ValMmcs = FieldMerkleTreeMmcs; pub type ChallengeMmcs = ExtensionMmcs; + pub type RecursiveVerifierChallengeMmcs = + ExtensionMmcs; pub type Dft = Radix2DitParallel; - type Challenger = SerializingChallenger32>; + type Challenger = SerializingChallenger32>; + type RecursiveVerifierChallenger = + SerializingChallenger32>; type Pcs = TwoAdicFriPcs>; + type RecursiveVerifierPcs = TwoAdicFriPcs< + TwoAdicFriPcsConfig< + Val, + Challenge, + RecursiveVerifierChallenger, + Dft, + RecursiveVerifierValMmcs, + RecursiveVerifierChallengeMmcs, + >, + >; + + // Fri parameters + const LOG_BLOWUP: usize = 1; + const NUM_QUERIES: usize = 100; + const PROOF_OF_WORK_BITS: usize = 16; #[derive(Deserialize)] #[serde(from = "std::marker::PhantomData")] + #[allow(dead_code)] pub struct BabyBearBlake3 { pcs: Pcs, + recursive_verifier_pcs: RecursiveVerifierPcs, } // Implement serialization manually instead of using serde(into) to avoid cloing the config @@ -483,27 +513,77 @@ pub(super) mod baby_bear_blake3 { } impl BabyBearBlake3 { - pub fn new() -> Self { + pub const fn new() -> Self { let byte_hash = ByteHash {}; - let field_hash = FieldHash::new(byte_hash); + let field_hash: SerializingHasher32 = FieldHash::new(byte_hash); - let compress = MyCompress::new(byte_hash); + let compress = Compress::new(byte_hash); let val_mmcs = ValMmcs::new(field_hash, compress); - let challenge_mmcs = ChallengeMmcs::new(val_mmcs.clone()); + let byte_hash = ByteHash {}; + let field_hash: SerializingHasher32 = FieldHash::new(byte_hash); + + let compress = Compress::new(byte_hash); + + let val_mmcs_clone = ValMmcs::new(field_hash, compress); + + let challenge_mmcs = ChallengeMmcs::new(val_mmcs_clone); let dft = Dft {}; + let dft_clone = Dft {}; + let fri_config = FriConfig { - log_blowup: 1, - num_queries: 100, - proof_of_work_bits: 16, + log_blowup: LOG_BLOWUP, + num_queries: NUM_QUERIES, + proof_of_work_bits: PROOF_OF_WORK_BITS, mmcs: challenge_mmcs, }; - let pcs = Pcs::new(fri_config, dft, val_mmcs); + let pcs = Pcs::new(fri_config, dft_clone, val_mmcs); - Self { pcs } + // Create the recursive verifier PCS instance + let recursive_verifier_byte_hash = RecursiveVerifierByteHash {}; + let recursive_verifier_field_hash: SerializingHasher32 = + RecursiveVerifierFieldHash::new(recursive_verifier_byte_hash); + + let recursive_verifier_compress = RecursiveVerifierCompress::new(); + + let recursive_verifier_val_mmcs = RecursiveVerifierValMmcs::new( + recursive_verifier_field_hash, + recursive_verifier_compress, + ); + + let recursive_verifier_byte_hash = RecursiveVerifierByteHash {}; + let recursive_verifier_field_hash: SerializingHasher32 = + RecursiveVerifierFieldHash::new(recursive_verifier_byte_hash); + + let recursive_verifier_compress = RecursiveVerifierCompress::new(); + + let recursive_verifier_val_mmcs_clone = RecursiveVerifierValMmcs::new( + recursive_verifier_field_hash, + recursive_verifier_compress, + ); + + let recursive_verifier_challenge_mmcs = + RecursiveVerifierChallengeMmcs::new(recursive_verifier_val_mmcs_clone); + + let recursive_verifier_fri_config = FriConfig { + log_blowup: LOG_BLOWUP, + num_queries: NUM_QUERIES, + proof_of_work_bits: PROOF_OF_WORK_BITS, + mmcs: recursive_verifier_challenge_mmcs, + }; + let recursive_verifier_pcs = RecursiveVerifierPcs::new( + recursive_verifier_fri_config, + dft, + recursive_verifier_val_mmcs, + ); + + Self { + pcs, + recursive_verifier_pcs, + } } } @@ -511,7 +591,13 @@ pub(super) mod baby_bear_blake3 { type UniConfig = Self; fn challenger(&self) -> Self::Challenger { - Challenger::from_hasher(vec![], ByteHash {}) + cfg_if::cfg_if! { + if #[cfg(all(target_os = "zkvm", target_arch = "riscv32"))] { + RecursiveVerifierChallenger::from_hasher(vec![], RecursiveVerifierByteHash {}) + } else { + Challenger::from_hasher(vec![], ByteHash {}) + } + } } fn uni_stark_config(&self) -> &Self::UniConfig { @@ -523,11 +609,24 @@ pub(super) mod baby_bear_blake3 { type Val = Val; type Challenge = Challenge; - type Pcs = Pcs; - type Challenger = Challenger; + cfg_if::cfg_if! { + if #[cfg(all(target_os = "zkvm", target_arch = "riscv32"))] { + type Pcs = RecursiveVerifierPcs; + type Challenger = RecursiveVerifierChallenger; + } else { + type Pcs = Pcs; + type Challenger = Challenger; + } + } fn pcs(&self) -> &Self::Pcs { - &self.pcs + cfg_if::cfg_if! { + if #[cfg(all(target_os = "zkvm", target_arch = "riscv32"))] { + &self.recursive_verifier_pcs + } else { + &self.pcs + } + } } } @@ -535,11 +634,108 @@ pub(super) mod baby_bear_blake3 { type Val = Val; type Challenge = Challenge; - type Pcs = Pcs; - type Challenger = Challenger; + cfg_if::cfg_if! { + if #[cfg(all(target_os = "zkvm", target_arch = "riscv32"))] { + type Pcs = RecursiveVerifierPcs; + type Challenger = RecursiveVerifierChallenger; + } else { + type Pcs = Pcs; + type Challenger = Challenger; + } + } fn pcs(&self) -> &Self::Pcs { - &self.pcs + cfg_if::cfg_if! { + if #[cfg(all(target_os = "zkvm", target_arch = "riscv32"))] { + &self.recursive_verifier_pcs + } else { + &self.pcs + } + } + } + } + #[derive(Clone)] + pub struct Blake3SingleBlockCompression; + + impl Blake3SingleBlockCompression { + pub const fn new() -> Self { + Self {} + } + } + + impl PseudoCompressionFunction<[u32; 8], 2> for Blake3SingleBlockCompression { + fn compress(&self, input: [[u32; 8]; 2]) -> [u32; 8] { + let mut block_words = [0u32; blake3_zkvm::BLOCK_LEN]; + block_words[0..8].copy_from_slice(&input[0]); + block_words[8..].copy_from_slice(&input[1]); + blake3_zkvm::hash_single_block(&block_words, blake3_zkvm::BLOCK_LEN) + } + } + + #[derive(Copy, Clone)] + pub struct Blake3U32; + + impl CryptographicHasher for Blake3U32 { + fn hash_iter(&self, input: I) -> [u32; 8] + where + I: IntoIterator, + { + let input = input.into_iter().collect::>(); + self.hash_iter_slices([input.as_slice()]) + } + + fn hash_iter_slices<'a, I>(&self, input: I) -> [u32; 8] + where + I: IntoIterator, + { + let mut hasher = blake3::Hasher::new(); + for chunk in input.into_iter() { + let u8_chunk = chunk + .iter() + .flat_map(|x| x.to_le_bytes()) + .collect::>(); + #[cfg(not(feature = "parallel"))] + hasher.update(&u8_chunk); + #[cfg(feature = "parallel")] + hasher.update_rayon(&u8_chunk); + } + let u8_hash = hasher.finalize(); + blake3::platform::words_from_le_bytes_32(u8_hash.as_bytes()) + } + } + + #[derive(Copy, Clone)] + pub struct Blake3U32Zkvm; + + impl CryptographicHasher for Blake3U32Zkvm { + fn hash_iter(&self, input: I) -> [u32; 8] + where + I: IntoIterator, + { + let mut input = input.into_iter().collect::>(); + if input.len() <= blake3_zkvm::BLOCK_LEN { + let size = input.len(); + input.resize(blake3_zkvm::BLOCK_LEN, 0u32); + blake3_zkvm::hash_single_block(input.as_slice().try_into().unwrap(), size) + } else { + let ret = self.hash_iter_slices([input.as_slice()]); + ret + } + } + + fn hash_iter_slices<'a, I>(&self, input: I) -> [u32; 8] + where + I: IntoIterator, + { + let mut zkvm_hasher = blake3_zkvm::Hasher::new(); + + for chunk in input.into_iter() { + zkvm_hasher.update(chunk); + } + let mut out: [u32; 8] = [0u32; 8]; + zkvm_hasher.finalize(&mut out); + + out } } } diff --git a/eval/Cargo.toml b/eval/Cargo.toml index b63a385a05..b5042fdd74 100644 --- a/eval/Cargo.toml +++ b/eval/Cargo.toml @@ -8,4 +8,3 @@ sp1-core = { path = "../core" } clap = { version = "4.4.0", features = ["derive"] } csv = "1.3.0" serde = "1.0.196" - diff --git a/examples/chess/program/Cargo.lock b/examples/chess/program/Cargo.lock index 05026c0c96..dee154f448 100644 --- a/examples/chess/program/Cargo.lock +++ b/examples/chess/program/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayvec" @@ -88,12 +88,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -511,22 +508,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -606,9 +603,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/chess/script/Cargo.lock b/examples/chess/script/Cargo.lock index 9d3b141dc5..3f25b68845 100644 --- a/examples/chess/script/Cargo.lock +++ b/examples/chess/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -196,9 +223,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -206,9 +233,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -225,7 +252,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -347,7 +374,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -433,6 +460,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -464,6 +492,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -490,6 +519,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -618,9 +653,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -688,6 +723,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -871,7 +912,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -880,7 +921,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -890,16 +931,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -911,7 +952,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -922,7 +963,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -933,7 +974,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -944,8 +985,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -956,13 +998,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -973,7 +1016,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -983,7 +1026,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -992,7 +1035,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1004,7 +1047,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1016,7 +1059,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1024,7 +1067,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1040,7 +1083,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1056,7 +1099,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1071,7 +1114,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1085,7 +1128,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1095,7 +1138,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1113,7 +1156,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1219,6 +1262,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1251,9 +1300,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1366,9 +1415,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1392,35 +1441,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1449,7 +1498,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1509,6 +1558,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1566,6 +1618,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/ed25519/program/Cargo.lock b/examples/ed25519/program/Cargo.lock index 1c0594c0f9..ed7a6729d2 100644 --- a/examples/ed25519/program/Cargo.lock +++ b/examples/ed25519/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" [[package]] name = "funty" @@ -421,24 +421,24 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -511,9 +511,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/ed25519/script/Cargo.lock b/examples/ed25519/script/Cargo.lock index 89bf403a39..0145cb653c 100644 --- a/examples/ed25519/script/Cargo.lock +++ b/examples/ed25519/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -433,6 +460,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -464,6 +492,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -490,6 +519,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -618,9 +653,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -688,6 +723,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -871,7 +912,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -880,7 +921,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -890,16 +931,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -911,7 +952,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -922,7 +963,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -933,7 +974,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -944,8 +985,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -956,13 +998,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -973,7 +1016,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -983,7 +1026,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -992,7 +1035,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1004,7 +1047,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1016,7 +1059,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1024,7 +1067,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1040,7 +1083,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1056,7 +1099,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1071,7 +1114,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1085,7 +1128,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1095,7 +1138,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1113,7 +1156,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1219,6 +1262,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1251,9 +1300,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1366,9 +1415,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1392,35 +1441,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1449,7 +1498,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1509,6 +1558,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1566,6 +1618,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/fibonacci-io/program/Cargo.lock b/examples/fibonacci-io/program/Cargo.lock index 3b2f3f2864..104d899010 100644 --- a/examples/fibonacci-io/program/Cargo.lock +++ b/examples/fibonacci-io/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -343,18 +343,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/fibonacci-io/program/elf/riscv32im-succinct-zkvm-elf b/examples/fibonacci-io/program/elf/riscv32im-succinct-zkvm-elf index 57c5e6fbba..96cf4d03ca 100755 Binary files a/examples/fibonacci-io/program/elf/riscv32im-succinct-zkvm-elf and b/examples/fibonacci-io/program/elf/riscv32im-succinct-zkvm-elf differ diff --git a/examples/fibonacci-io/script/Cargo.lock b/examples/fibonacci-io/script/Cargo.lock index a50242c03c..fdc54c27dd 100644 --- a/examples/fibonacci-io/script/Cargo.lock +++ b/examples/fibonacci-io/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -61,9 +61,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -164,6 +164,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -178,6 +190,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -227,12 +257,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -249,14 +276,14 @@ dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -264,9 +291,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -283,7 +310,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -411,7 +438,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -497,6 +524,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -528,6 +556,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -542,6 +571,7 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" name = "fibonacci-io-script" version = "0.1.0" dependencies = [ + "serde_json", "sp1-core", "sp1-helper", ] @@ -562,6 +592,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -690,9 +726,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -792,6 +828,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -975,7 +1017,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -984,7 +1026,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -994,16 +1036,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1015,7 +1057,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -1026,7 +1068,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -1037,7 +1079,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -1048,8 +1090,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -1060,13 +1103,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -1077,7 +1121,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -1087,7 +1131,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -1096,7 +1140,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1108,7 +1152,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1120,7 +1164,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1128,7 +1172,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1144,7 +1188,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1160,7 +1204,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1175,7 +1219,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1189,7 +1233,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1199,7 +1243,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1217,7 +1261,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1323,6 +1367,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1355,9 +1405,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1470,9 +1520,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1496,38 +1546,38 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1556,7 +1606,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1616,6 +1666,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1681,6 +1734,36 @@ dependencies = [ "chrono", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1716,20 +1799,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1754,14 +1843,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1812,7 +1901,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1924,7 +2013,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", "wasm-bindgen-shared", ] @@ -1946,7 +2035,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1985,7 +2074,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1994,7 +2083,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -2014,17 +2103,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -2035,9 +2124,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -2047,9 +2136,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -2059,9 +2148,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -2071,9 +2160,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -2083,9 +2172,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -2095,9 +2184,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -2107,9 +2196,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -2120,6 +2209,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -2137,7 +2235,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/fibonacci-io/script/Cargo.toml b/examples/fibonacci-io/script/Cargo.toml index 2f9ac4c5c4..733b410624 100644 --- a/examples/fibonacci-io/script/Cargo.toml +++ b/examples/fibonacci-io/script/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" [dependencies] sp1-core = { path = "../../../core" } +serde_json = { version = "1.0", default-features = false, features = ["alloc"] } [build-dependencies] sp1-helper = { path = "../../../helper" } diff --git a/examples/fibonacci-io/script/build.rs b/examples/fibonacci-io/script/build.rs index 672b6f5808..32b99273cd 100644 --- a/examples/fibonacci-io/script/build.rs +++ b/examples/fibonacci-io/script/build.rs @@ -1,4 +1,4 @@ -use sp1_helper::{build_program}; +use sp1_helper::build_program; fn main() { build_program("../program") diff --git a/examples/fibonacci-io/script/src/main.rs b/examples/fibonacci-io/script/src/main.rs index 2b74fe63fe..b6a1a82c22 100644 --- a/examples/fibonacci-io/script/src/main.rs +++ b/examples/fibonacci-io/script/src/main.rs @@ -1,4 +1,7 @@ -use sp1_core::{utils, SP1Prover, SP1Stdin, SP1Verifier}; +use sp1_core::{ + utils::{self, BabyBearBlake3}, + SP1ProofWithIO, SP1Prover, SP1Stdin, SP1Verifier, +}; /// The ELF we want to execute inside the zkVM. const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); @@ -28,5 +31,14 @@ fn main() { .save("proof-with-pis.json") .expect("saving proof failed"); - println!("succesfully generated and verified proof for the program!") + println!("succesfully generated and verified proof for the program!"); + + let proof_str = include_str!("../proof-with-pis.json"); + let proof: SP1ProofWithIO = + serde_json::from_str(proof_str).expect("loading proof failed"); + + // Verify proof. + SP1Verifier::verify(ELF, &proof).expect("verification failed"); + + println!("verification succeeded"); } diff --git a/examples/fibonacci/program/Cargo.lock b/examples/fibonacci/program/Cargo.lock index 4715acb713..37dc013239 100644 --- a/examples/fibonacci/program/Cargo.lock +++ b/examples/fibonacci/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -343,18 +343,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf b/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf index 605c835e8a..7d4df9fdff 100755 Binary files a/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf and b/examples/fibonacci/program/elf/riscv32im-succinct-zkvm-elf differ diff --git a/examples/fibonacci/script/Cargo.lock b/examples/fibonacci/script/Cargo.lock index 553727610c..d2ff75cd6d 100644 --- a/examples/fibonacci/script/Cargo.lock +++ b/examples/fibonacci/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -490,6 +519,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -618,9 +653,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -688,6 +723,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -871,7 +912,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -880,7 +921,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -890,16 +931,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -911,7 +952,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -922,7 +963,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -933,7 +974,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -944,8 +985,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -956,13 +998,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -973,7 +1016,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -983,7 +1026,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -992,7 +1035,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1004,7 +1047,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1016,7 +1059,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1024,7 +1067,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1040,7 +1083,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1056,7 +1099,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1071,7 +1114,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1085,7 +1128,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1095,7 +1138,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1113,7 +1156,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1219,6 +1262,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1251,9 +1300,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1366,9 +1415,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1392,35 +1441,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1449,7 +1498,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1509,6 +1558,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1566,6 +1618,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/io/program/Cargo.lock b/examples/io/program/Cargo.lock index 6a1fe6b4c6..259d95ad5f 100644 --- a/examples/io/program/Cargo.lock +++ b/examples/io/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -344,18 +344,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -428,9 +428,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/io/script/Cargo.lock b/examples/io/script/Cargo.lock index 4717679665..9743ec11bb 100644 --- a/examples/io/script/Cargo.lock +++ b/examples/io/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -689,6 +724,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -872,7 +913,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -881,7 +922,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -891,16 +932,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -912,7 +953,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -923,7 +964,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -934,7 +975,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -945,8 +986,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -957,13 +999,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -974,7 +1017,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -984,7 +1027,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -993,7 +1036,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1005,7 +1048,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1017,7 +1060,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1025,7 +1068,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1041,7 +1084,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1057,7 +1100,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1072,7 +1115,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1086,7 +1129,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1096,7 +1139,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1114,7 +1157,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1220,6 +1263,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1252,9 +1301,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1367,9 +1416,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1393,35 +1442,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1450,7 +1499,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1510,6 +1559,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1567,6 +1619,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1602,20 +1684,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1640,14 +1728,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1698,7 +1786,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1817,7 +1905,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1837,17 +1925,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1858,9 +1946,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1870,9 +1958,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1882,9 +1970,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1894,9 +1982,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1906,9 +1994,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1918,9 +2006,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1930,9 +2018,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1943,6 +2031,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1960,7 +2057,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/json/lib/Cargo.lock b/examples/json/lib/Cargo.lock deleted file mode 100644 index f13d3a6d01..0000000000 --- a/examples/json/lib/Cargo.lock +++ /dev/null @@ -1,65 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "lib" -version = "0.1.0" -dependencies = [ - "serde", -] - -[[package]] -name = "proc-macro2" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "serde" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "syn" -version = "2.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/examples/json/program/Cargo.lock b/examples/json/program/Cargo.lock index 07ee642220..17afd53cdf 100644 --- a/examples/json/program/Cargo.lock +++ b/examples/json/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -345,9 +345,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "sec1" @@ -385,9 +385,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -460,9 +460,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/json/script/Cargo.lock b/examples/json/script/Cargo.lock index 8e289a65e1..d6803553b9 100644 --- a/examples/json/script/Cargo.lock +++ b/examples/json/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -698,6 +733,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -881,7 +922,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -890,7 +931,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -900,16 +941,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -921,7 +962,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -932,7 +973,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -943,7 +984,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -954,8 +995,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -966,13 +1008,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -983,7 +1026,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -993,7 +1036,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -1002,7 +1045,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -1014,7 +1057,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1026,7 +1069,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1034,7 +1077,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1050,7 +1093,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1066,7 +1109,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1081,7 +1124,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1095,7 +1138,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1105,7 +1148,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1123,7 +1166,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1229,6 +1272,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1261,9 +1310,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1376,9 +1425,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1402,9 +1451,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" @@ -1423,7 +1472,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1459,7 +1508,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1519,6 +1568,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1576,6 +1628,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1611,20 +1693,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1649,14 +1737,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1707,7 +1795,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1826,7 +1914,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1846,17 +1934,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1867,9 +1955,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1879,9 +1967,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1891,9 +1979,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1903,9 +1991,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1915,9 +2003,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1927,9 +2015,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1939,9 +2027,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1952,6 +2040,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1969,7 +2066,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/regex/program/Cargo.lock b/examples/regex/program/Cargo.lock index 2b5224b8cd..cca262b8b0 100644 --- a/examples/regex/program/Cargo.lock +++ b/examples/regex/program/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -388,18 +388,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -472,9 +472,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/regex/script/Cargo.lock b/examples/regex/script/Cargo.lock index e7144e80df..ccb119b88f 100644 --- a/examples/regex/script/Cargo.lock +++ b/examples/regex/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -681,6 +716,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -864,7 +905,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -873,7 +914,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -883,16 +924,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -904,7 +945,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -915,7 +956,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -926,7 +967,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -937,8 +978,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -949,13 +991,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -966,7 +1009,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -976,7 +1019,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -985,7 +1028,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -997,7 +1040,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1009,7 +1052,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1017,7 +1060,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1033,7 +1076,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1049,7 +1092,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1064,7 +1107,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1078,7 +1121,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1088,7 +1131,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1106,7 +1149,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1212,6 +1255,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1244,9 +1293,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1366,9 +1415,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1392,35 +1441,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1449,7 +1498,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1509,6 +1558,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1566,6 +1618,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/rsa/program/Cargo.lock b/examples/rsa/program/Cargo.lock index 223f8fdca2..6a947e1f5c 100644 --- a/examples/rsa/program/Cargo.lock +++ b/examples/rsa/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -517,18 +517,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -635,9 +635,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/examples/rsa/script/Cargo.lock b/examples/rsa/script/Cargo.lock index 1d1bdc07e1..be60766e3f 100644 --- a/examples/rsa/script/Cargo.lock +++ b/examples/rsa/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -681,6 +716,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -864,7 +905,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -873,7 +914,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -883,16 +924,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -904,7 +945,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -915,7 +956,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -926,7 +967,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -937,8 +978,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -949,13 +991,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -966,7 +1009,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -976,7 +1019,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -985,7 +1028,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -997,7 +1040,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1009,7 +1052,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1017,7 +1060,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1033,7 +1076,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1049,7 +1092,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1064,7 +1107,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1078,7 +1121,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1088,7 +1131,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1106,7 +1149,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1212,6 +1255,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1244,9 +1293,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1366,9 +1415,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1392,35 +1441,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1449,7 +1498,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1509,6 +1558,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1566,6 +1618,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/simple_blake3/program/Cargo.toml b/examples/simple_blake3/program/Cargo.toml new file mode 100644 index 0000000000..2233d6f874 --- /dev/null +++ b/examples/simple_blake3/program/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +[package] +version = "0.1.0" +name = "simple_blake3-program" +edition = "2021" + +[dependencies] +sp1-zkvm = { git = "https://github.com/succinctlabs/sp1.git" } +blake3 = { git = "https://github.com/succinctlabs/BLAKE3.git", branch="kevjue/more_cycle_tracking" } diff --git a/examples/simple_blake3/program/elf/riscv32im-succinct-zkvm-elf b/examples/simple_blake3/program/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000..940c86c57a Binary files /dev/null and b/examples/simple_blake3/program/elf/riscv32im-succinct-zkvm-elf differ diff --git a/examples/simple_blake3/program/src/main.rs b/examples/simple_blake3/program/src/main.rs new file mode 100644 index 0000000000..94768e4c73 --- /dev/null +++ b/examples/simple_blake3/program/src/main.rs @@ -0,0 +1,13 @@ +//! A simple program to be proven inside the zkVM. + +#![no_main] +sp1_zkvm::entrypoint!(main); + +pub fn main() { + let chunk = [1u8; 1024]; + let mut hasher = blake3::Hasher::new(); + println!("cycle-tracker-start: hash"); + hasher.update(&chunk); + hasher.finalize(); + println!("cycle-tracker-end: hash"); +} diff --git a/examples/simple_blake3/script/Cargo.toml b/examples/simple_blake3/script/Cargo.toml new file mode 100644 index 0000000000..dba8ff7f77 --- /dev/null +++ b/examples/simple_blake3/script/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] +[package] +version = "0.1.0" +name = "simple_blake3-script" +edition = "2021" + +[dependencies] +sp1-core = { git = "https://github.com/succinctlabs/sp1.git" } diff --git a/examples/simple_blake3/script/rust-toolchain b/examples/simple_blake3/script/rust-toolchain new file mode 100644 index 0000000000..f7ee87eaf9 --- /dev/null +++ b/examples/simple_blake3/script/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2024-01-25" +components = ["llvm-tools", "rustc-dev"] \ No newline at end of file diff --git a/examples/simple_blake3/script/src/main.rs b/examples/simple_blake3/script/src/main.rs new file mode 100644 index 0000000000..b59c420520 --- /dev/null +++ b/examples/simple_blake3/script/src/main.rs @@ -0,0 +1,29 @@ +//! A simple script to generate and verify the proof of a given program. + +use sp1_core::{SP1Prover, SP1Stdin, SP1Verifier}; + +const ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); + +fn main() { + // Generate proof. + let mut stdin = SP1Stdin::new(); + let n = 500u32; + stdin.write(&n); + let mut proof = SP1Prover::prove(ELF, stdin).expect("proving failed"); + + // Read output. + let a = proof.stdout.read::(); + let b = proof.stdout.read::(); + println!("a: {}", a); + println!("b: {}", b); + + // Verify proof. + SP1Verifier::verify(ELF, &proof).expect("verification failed"); + + // Save proof. + proof + .save("proof-with-io.json") + .expect("saving proof failed"); + + println!("succesfully generated and verified proof for the program!") +} diff --git a/examples/ssz-withdrawals/program/Cargo.lock b/examples/ssz-withdrawals/program/Cargo.lock index 400eb73233..22492558d3 100644 --- a/examples/ssz-withdrawals/program/Cargo.lock +++ b/examples/ssz-withdrawals/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "alloy-primitives" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4b6fb2b432ff223d513db7f908937f63c252bee0af9b82bfd25b0a5dd1eb0d8" +checksum = "ef197eb250c64962003cb08b90b17f0882c192f4a6f2f544809d424fd7cb0e7d" dependencies = [ "alloy-rlp", "bytes", @@ -51,9 +51,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "ark-ff" @@ -187,13 +187,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -244,12 +244,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.4.2" @@ -288,9 +282,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byte-slice-cast" @@ -312,12 +306,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -327,9 +318,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", @@ -340,9 +331,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557" +checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" dependencies = [ "cfg-if", "cpufeatures", @@ -408,9 +399,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ "darling_core", "darling_macro", @@ -418,27 +409,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "darling_macro" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -522,9 +513,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -682,9 +673,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -742,9 +733,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -768,9 +759,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] @@ -846,21 +837,26 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", "libm", @@ -912,9 +908,9 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pest" -version = "2.7.6" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" dependencies = [ "memchr", "thiserror", @@ -981,7 +977,7 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.2", + "bitflags", "lazy_static", "num-traits", "rand", @@ -1053,15 +1049,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "regex-syntax" version = "0.8.2" @@ -1090,9 +1077,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.11.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825" +checksum = "49b1d9521f889713d1221270fdd63370feca7e5c71a18745343402fa86e4f04f" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -1114,9 +1101,9 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" +checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" [[package]] name = "rustc-hex" @@ -1139,16 +1126,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.21", + "semver 1.0.22", ] [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.2", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -1169,9 +1156,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "sec1" @@ -1198,9 +1185,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "semver-parser" @@ -1213,29 +1200,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1244,16 +1231,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.6.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0ed1662c5a68664f45b76d18deb0e234aff37207086803165c961eb695e981" +checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.2", + "indexmap 2.2.3", "serde", + "serde_derive", "serde_json", "serde_with_macros", "time", @@ -1261,14 +1249,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.6.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568577ff0ef47b879f736cd66740e022f3672788cdf002a05a4e609ea5a6fb15" +checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1434,9 +1422,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", @@ -1451,45 +1439,45 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -1504,10 +1492,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -1532,7 +1521,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.3", "toml_datetime", "winnow", ] @@ -1602,9 +1591,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1612,24 +1601,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1637,22 +1626,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "windows-core" @@ -1674,9 +1663,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -1689,51 +1678,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" -version = "0.5.36" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818ce546a11a9986bc24f93d0cdf38a8a1a400f1473ea8c82e59f6e0ffab9249" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] @@ -1764,5 +1753,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] diff --git a/examples/ssz-withdrawals/script/Cargo.lock b/examples/ssz-withdrawals/script/Cargo.lock index 09ef64af17..c6984d5a7e 100644 --- a/examples/ssz-withdrawals/script/Cargo.lock +++ b/examples/ssz-withdrawals/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -681,6 +716,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -864,7 +905,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -873,7 +914,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -883,16 +924,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -904,7 +945,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -915,7 +956,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -926,7 +967,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -937,8 +978,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -949,13 +991,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -966,7 +1009,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -976,7 +1019,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -985,7 +1028,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -997,7 +1040,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1009,7 +1052,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1017,7 +1060,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1033,7 +1076,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1049,7 +1092,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1064,7 +1107,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1078,7 +1121,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1088,7 +1131,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1106,7 +1149,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1212,6 +1255,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1244,9 +1293,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1359,9 +1408,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1385,35 +1434,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1442,7 +1491,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1502,6 +1551,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1559,6 +1611,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1601,20 +1683,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/examples/tendermint/program/Cargo.lock b/examples/tendermint/program/Cargo.lock index 8d92979718..e28ea9ef13 100644 --- a/examples/tendermint/program/Cargo.lock +++ b/examples/tendermint/program/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -224,9 +224,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -424,6 +424,12 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" @@ -437,9 +443,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -525,7 +531,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -594,9 +600,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "sec1" @@ -614,9 +620,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -632,20 +638,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -660,7 +666,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -766,9 +772,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", @@ -783,9 +789,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tendermint" -version = "0.34.0" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2294fa667c8b548ee27a9ba59115472d0a09c2ba255771092a7f1dcf03a789" +checksum = "15ab8f0a25d0d2ad49ac615da054d6a76aa6603ff95f7d18bafdd34450a1a04b" dependencies = [ "bytes", "digest 0.10.7", @@ -812,9 +818,9 @@ dependencies = [ [[package]] name = "tendermint-light-client-verifier" -version = "0.34.0" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74994da9de4b1144837a367ca2c60c650f5526a7c1a54760a3020959b522e474" +checksum = "9b8090d0eef9ad57b1b913b5e358e26145c86017e87338136509b94383a4af25" dependencies = [ "derive_more", "flex-error", @@ -836,9 +842,9 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.34.0" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc728a4f9e891d71adf66af6ecaece146f9c7a11312288a3107b3e1d6979aaf" +checksum = "b797dd3d2beaaee91d2f065e7bdf239dc8d80bba4a183a288bc1279dd5a69a1e" dependencies = [ "bytes", "flex-error", @@ -854,11 +860,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", + "num-conv", "powerfmt", "time-core", "time-macros", @@ -872,10 +879,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -929,5 +937,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] diff --git a/examples/tendermint/script/Cargo.lock b/examples/tendermint/script/Cargo.lock index e01a26fd19..f85ca60830 100644 --- a/examples/tendermint/script/Cargo.lock +++ b/examples/tendermint/script/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" dependencies = [ "cfg-if", "once_cell", @@ -46,9 +46,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -94,9 +94,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" @@ -149,6 +149,18 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.5.0" @@ -163,6 +175,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + [[package]] name = "block-buffer" version = "0.10.4" @@ -174,12 +204,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" [[package]] name = "cfg-if" @@ -189,9 +216,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -199,9 +226,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -218,7 +245,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -340,7 +367,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -426,6 +453,7 @@ dependencies = [ "rand_core", "sec1", "subtle", + "tap", "zeroize", ] @@ -457,6 +485,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ + "bitvec", "rand_core", "subtle", ] @@ -483,6 +512,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.30" @@ -611,9 +646,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -681,6 +716,12 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "linux-raw-sys" version = "0.4.13" @@ -864,7 +905,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -873,7 +914,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "rand", @@ -883,16 +924,16 @@ dependencies = [ [[package]] name = "p3-blake3" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ - "blake3", + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", "p3-symmetric", ] [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -904,7 +945,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-challenger", "p3-field", @@ -915,7 +956,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -926,7 +967,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-util", @@ -937,8 +978,9 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ + "cfg-if", "itertools", "p3-challenger", "p3-commit", @@ -949,13 +991,14 @@ dependencies = [ "p3-maybe-rayon", "p3-util", "serde", + "sp1-zkvm", "tracing", ] [[package]] name = "p3-goldilocks" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-util", @@ -966,7 +1009,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-matrix", @@ -976,7 +1019,7 @@ dependencies = [ [[package]] name = "p3-keccak" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-symmetric", "tiny-keccak", @@ -985,7 +1028,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-air", "p3-field", @@ -997,7 +1040,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -1009,7 +1052,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "rayon", ] @@ -1017,7 +1060,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-dft", @@ -1033,7 +1076,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-commit", @@ -1049,7 +1092,7 @@ dependencies = [ [[package]] name = "p3-mersenne-31" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-dft", @@ -1064,7 +1107,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "p3-baby-bear", "p3-field", @@ -1078,7 +1121,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-field", @@ -1088,7 +1131,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "itertools", "p3-air", @@ -1106,7 +1149,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/succinctlabs/plonky3.git#bfd061406886e5ae007a8014edae59ee7ab35ad5" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" dependencies = [ "serde", ] @@ -1212,6 +1255,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1244,9 +1293,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -1359,9 +1408,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1385,35 +1434,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1442,7 +1491,7 @@ checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1502,6 +1551,9 @@ version = "0.1.0" dependencies = [ "anyhow", "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", "clap", "curve25519-dalek", "elf", @@ -1559,6 +1611,36 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + [[package]] name = "spki" version = "0.7.3" @@ -1594,20 +1676,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -1639,14 +1727,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1697,7 +1785,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -1816,7 +1904,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1836,17 +1924,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1857,9 +1945,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1869,9 +1957,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1881,9 +1969,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1893,9 +1981,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1905,9 +1993,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1917,9 +2005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1929,9 +2017,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -1942,6 +2030,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -1959,7 +2056,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] diff --git a/recursion/constgen/Cargo.toml b/recursion/constgen/Cargo.toml new file mode 100644 index 0000000000..744d2b8f2d --- /dev/null +++ b/recursion/constgen/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "sp1-recursion-macros" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +proc-macro = true + +[dependencies] +sp1-core = { path = "../../core" } +p3-baby-bear = { workspace = true } +p3-field = { workspace = true } +p3-air = { workspace = true } +proc-macro2 = "1.0" +quote = "1.0" +syn = { version = "1.0", features = ["full"] } diff --git a/recursion/constgen/src/baby_bear.rs b/recursion/constgen/src/baby_bear.rs new file mode 100644 index 0000000000..c03ebecb10 --- /dev/null +++ b/recursion/constgen/src/baby_bear.rs @@ -0,0 +1,31 @@ +use super::ConfigToken; +use crate::field::FieldToken; +use p3_baby_bear::BabyBear; +use proc_macro2::TokenStream; +use sp1_core::utils::BabyBearBlake3; +use syn::Path; + +use quote::quote; + +use p3_field::PrimeField32; + +impl FieldToken for BabyBear { + fn get_type() -> Path { + syn::parse_str("p3_baby_bear::BabyBear").expect("Failed to parse type path") + } + + fn as_token(&self) -> TokenStream { + let value = self.as_canonical_u32(); + quote! { p3_baby_bear::BabyBear::new(#value) } + } +} + +impl ConfigToken for BabyBearBlake3 { + fn get_type() -> Path { + syn::parse_str("crate::utils::BabyBearBlake3").expect("Failed to parse type path") + } + + fn as_token(&self) -> TokenStream { + quote! { crate::utils::BabyBearBlake3::new() } + } +} diff --git a/recursion/constgen/src/chip.rs b/recursion/constgen/src/chip.rs new file mode 100644 index 0000000000..149d2a2c06 --- /dev/null +++ b/recursion/constgen/src/chip.rs @@ -0,0 +1,64 @@ +use super::FieldToken; +use proc_macro2::TokenStream; +use sp1_core::lookup::Interaction; + +use crate::interaction_token; +use quote::quote; +use syn::Ident; + +pub fn chip_token( + name: &Ident, + air: &TokenStream, + air_type: &TokenStream, + sends: &[Interaction], + receives: &[Interaction], + log_quotient_degree: usize, + stream: &mut TokenStream, +) { + let field = F::get_type(); + // Generate constants for the sends + let mut send_tokens = vec![]; + for (i, send) in sends.iter().enumerate() { + let send_ident = Ident::new( + &format!("SEND_{}_{}", i, name), + proc_macro2::Span::call_site(), + ); + interaction_token(send, &send_ident, stream); + send_tokens.push(quote! { #send_ident }); + } + // Generate a constant for the slice of sends + let sends_ident = Ident::new(&format!("SENDS_{}", name), proc_macro2::Span::call_site()); + stream.extend(quote! { + pub const #sends_ident : &[crate::lookup::Interaction< #field >] = &[#(#send_tokens),*]; + }); + + // Generate constants for the receives + let mut receive_tokens = vec![]; + for (i, receive) in receives.iter().enumerate() { + let receive_ident = Ident::new( + &format!("RECEIVE_{}_{}", i, name), + proc_macro2::Span::call_site(), + ); + interaction_token(receive, &receive_ident, stream); + receive_tokens.push(quote! { #receive_ident }); + } + // Generate a constant for the slice of receives + let receives_ident = Ident::new( + &format!("RECEIVES_{}", name), + proc_macro2::Span::call_site(), + ); + stream.extend(quote! { + pub const #receives_ident : &[crate::lookup::Interaction< #field >] = &[#(#receive_tokens),*]; + }); + + // Finally, generate a constant for the chip + stream.extend(quote! { + pub const #name : crate::stark::Chip< #field, #air_type > = + crate::stark::Chip::from_parts_borrowed( + #air, + #sends_ident, + #receives_ident, + #log_quotient_degree, + ); + }); +} diff --git a/recursion/constgen/src/config.rs b/recursion/constgen/src/config.rs new file mode 100644 index 0000000000..be1b405dff --- /dev/null +++ b/recursion/constgen/src/config.rs @@ -0,0 +1,8 @@ +use proc_macro2::TokenStream; +use sp1_core::stark::StarkGenericConfig; +use syn::Path; +pub trait ConfigToken: StarkGenericConfig { + fn get_type() -> Path; + + fn as_token(&self) -> TokenStream; +} diff --git a/recursion/constgen/src/field.rs b/recursion/constgen/src/field.rs new file mode 100644 index 0000000000..c9dab46e34 --- /dev/null +++ b/recursion/constgen/src/field.rs @@ -0,0 +1,10 @@ +use proc_macro2::TokenStream; +use syn::Path; + +use p3_field::Field; + +pub trait FieldToken: Field { + fn get_type() -> Path; + + fn as_token(&self) -> TokenStream; +} diff --git a/recursion/constgen/src/interaction.rs b/recursion/constgen/src/interaction.rs new file mode 100644 index 0000000000..03847a6907 --- /dev/null +++ b/recursion/constgen/src/interaction.rs @@ -0,0 +1,59 @@ +use super::FieldToken; +use proc_macro2::TokenStream; + +use crate::virtual_pair_col_token; +use quote::quote; +use sp1_core::lookup::{Interaction, InteractionKind}; +use syn::Ident; + +pub fn kind_token(value: &InteractionKind) -> TokenStream { + match value { + InteractionKind::Memory => quote! { crate::lookup::InteractionKind::Memory }, + InteractionKind::Program => quote! { crate::lookup::InteractionKind::Program }, + InteractionKind::Instruction => quote! { crate::lookup::InteractionKind::Instruction }, + InteractionKind::Alu => quote! { crate::lookup::InteractionKind::Alu }, + InteractionKind::Byte => quote! { crate::lookup::InteractionKind::Byte }, + InteractionKind::Range => quote! { crate::lookup::InteractionKind::Range }, + InteractionKind::Field => quote! { crate::lookup::InteractionKind::Field }, + } +} + +pub fn interaction_token( + value: &Interaction, + name: &Ident, + stream: &mut TokenStream, +) { + // Add constants for the multiplicity + let mult_ident = Ident::new(&format!("MULT_{}", name), proc_macro2::Span::call_site()); + virtual_pair_col_token(&value.multiplicity, &mult_ident, stream); + + // Add constants for the values, and collect tokens for putting them in a slice. + let mut values = vec![]; + for (i, value) in value.values.iter().enumerate() { + let value_ident = Ident::new( + &format!("VALUE_{}_{}", i, name), + proc_macro2::Span::call_site(), + ); + virtual_pair_col_token(value, &value_ident, stream); + values.push(quote! { #value_ident }); + } + // Generate a constant for the slice of values + let values_ident = Ident::new(&format!("VALUES_{}", name), proc_macro2::Span::call_site()); + let field = F::get_type(); + stream.extend( + quote! { pub const #values_ident : &[p3_air::VirtualPairCol< #field >] = &[#(#values),*]; }, + ); + + // Get token for the kind + let kind = kind_token(&value.kind); + + // Finally, generate a constant for the interaction + stream.extend(quote! { + pub const #name : crate::lookup::Interaction< #field > = + crate::lookup::Interaction { + values: alloc::borrow::Cow::Borrowed(#values_ident), + multiplicity: #mult_ident, + kind: #kind, + }; + }); +} diff --git a/recursion/constgen/src/lib.rs b/recursion/constgen/src/lib.rs new file mode 100644 index 0000000000..a97ccde340 --- /dev/null +++ b/recursion/constgen/src/lib.rs @@ -0,0 +1,78 @@ +extern crate proc_macro; + +use proc_macro::TokenStream; +use proc_macro2::TokenStream as TokenStream2; +use quote::quote; + +mod baby_bear; +mod chip; +mod config; +mod field; +mod interaction; +mod riscv_air; +mod virtual_column; + +use chip::*; +use config::*; +use field::*; +use interaction::*; +use riscv_air::*; +use virtual_column::*; + +use proc_macro2::Ident; + +use p3_baby_bear::BabyBear; + +use sp1_core::air::MachineAir; +use sp1_core::stark::{Chip, RiscvAir}; +use sp1_core::utils::BabyBearBlake3; + +#[proc_macro] +pub fn const_riscv_stark(_input: TokenStream) -> TokenStream { + type F = BabyBear; + let mut tokens = TokenStream2::new(); + + let airs = RiscvAir::::get_all(); + + // Add a constant for each chip, and collect tokens for putting them in a slice. + let air_type = riscv_air_type::(); + let mut chip_tokens = vec![]; + for (i, air) in airs.into_iter().enumerate() { + let air_token = quote! {crate::stark::RiscvAir::get_air_at_index(#i) }; + let chip = Chip::::new(air); + let name = chip.name().to_uppercase(); + let chip_ident = Ident::new(&name, proc_macro2::Span::call_site()); + chip_token( + &chip_ident, + &air_token, + &air_type, + chip.sends(), + chip.receives(), + chip.log_quotient_degree(), + &mut tokens, + ); + chip_tokens.push(quote! { #chip_ident }); + } + + // Generate a constant for the slice of chips + let chips_ident = Ident::new("RISCV_CHIPS", proc_macro2::Span::call_site()); + let field = F::get_type(); + tokens.extend(quote! { + pub const #chips_ident : &[crate::stark::Chip< #field, #air_type >] = &[#(#chip_tokens),*]; + }); + + // get the const tokens for making the config + type SC = BabyBearBlake3; + let config_type = SC::get_type(); + let config = BabyBearBlake3::new(); + let config_token = config.as_token(); + + // Generate a constant machine from the config and chip slice + let machine_ident = Ident::new("RISCV_STARK", proc_macro2::Span::call_site()); + tokens.extend(quote! { + pub const #machine_ident : crate::stark::RiscvStark< #config_type > = + crate::stark::RiscvStark::from_chip_slice(#config_token, #chips_ident); + }); + + tokens.into() +} diff --git a/recursion/constgen/src/riscv_air.rs b/recursion/constgen/src/riscv_air.rs new file mode 100644 index 0000000000..7fd6975132 --- /dev/null +++ b/recursion/constgen/src/riscv_air.rs @@ -0,0 +1,9 @@ +use proc_macro2::TokenStream; +use quote::quote; + +use crate::FieldToken; + +pub fn riscv_air_type() -> TokenStream { + let field = F::get_type(); + quote! { crate::stark::RiscvAir::< #field > } +} diff --git a/recursion/constgen/src/virtual_column.rs b/recursion/constgen/src/virtual_column.rs new file mode 100644 index 0000000000..05b78e184c --- /dev/null +++ b/recursion/constgen/src/virtual_column.rs @@ -0,0 +1,45 @@ +use super::FieldToken; +use proc_macro2::TokenStream; + +use quote::quote; + +use p3_air::{PairCol, VirtualPairCol}; +use syn::Ident; + +pub fn pair_col_token(value: &PairCol) -> TokenStream { + match value { + PairCol::Preprocessed(v) => quote! { p3_air::PairCol::Virtual(#v) }, + PairCol::Main(v) => quote! { p3_air::PairCol::Main(#v) }, + } +} + +pub fn virtual_pair_col_token( + value: &VirtualPairCol, + name: &Ident, + stream: &mut TokenStream, +) { + let field = F::get_type(); + let constant = value.get_constant().as_token(); + + let column_weights = value.get_column_weights().iter().map(|(col, val)| { + let col = pair_col_token(col); + let val = val.as_token(); + quote! { (#col, #val) } + }); + + let column_weights_ident = Ident::new( + &format!("COLUMN_WEIGHTS_{}", name), + proc_macro2::Span::call_site(), + ); + + let column_weights = quote! { pub const #column_weights_ident : &[(p3_air::PairCol, #field )] + = &[#(#column_weights),*]; }; + + stream.extend(column_weights); + + let virtual_col = quote! { + pub const #name : p3_air::VirtualPairCol< #field > = + p3_air::VirtualPairCol::new_borrowed(#column_weights_ident, #constant ); }; + + stream.extend(virtual_col); +} diff --git a/recursion/primitives/Cargo.toml b/recursion/primitives/Cargo.toml new file mode 100644 index 0000000000..831b66691a --- /dev/null +++ b/recursion/primitives/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "sp1-recursion" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +sp1-core = { path = "../../core" } +sp1-recursion-macros = { path = "../constgen" } +p3-baby-bear = { workspace = true } +p3-air = { workspace = true } +p3-field = { workspace = true } diff --git a/recursion/primitives/src/constants.rs b/recursion/primitives/src/constants.rs new file mode 100644 index 0000000000..c7daf70d89 --- /dev/null +++ b/recursion/primitives/src/constants.rs @@ -0,0 +1,5 @@ +//! Generates a constant RISC-V machine called `RISC_V_STARK` over `BabyBearBlake3` config. + +use sp1_recursion_macros::const_riscv_stark; + +const_riscv_stark! {} diff --git a/recursion/primitives/src/lib.rs b/recursion/primitives/src/lib.rs new file mode 100644 index 0000000000..0844427e52 --- /dev/null +++ b/recursion/primitives/src/lib.rs @@ -0,0 +1,100 @@ +extern crate alloc; + +mod constants; +pub use constants::*; + +pub use sp1_core::*; + +#[cfg(test)] +mod tests { + + use super::*; + use crate::air::MachineAir; + use crate::lookup::Interaction; + use crate::runtime::{Instruction, Opcode, Program, Runtime}; + use crate::stark::{Chip, RiscvAir}; + use crate::stark::{LocalProver, RiscvStark}; + use crate::utils::BabyBearBlake3; + use crate::utils::{setup_logger, StarkUtils}; + use p3_air::{PairCol, VirtualPairCol}; + use p3_field::extension::BinomiallyExtendable; + use p3_field::{Field, PrimeField32}; + + fn assert_pair_col_eq(left: &PairCol, right: &PairCol) { + match (left, right) { + (PairCol::Main(l), PairCol::Main(r)) => assert_eq!(l, r), + (PairCol::Preprocessed(l), PairCol::Preprocessed(r)) => assert_eq!(l, r), + _ => panic!("Unequal column types"), + } + } + + fn assert_virtual_pair_col_eq(left: &VirtualPairCol, right: &VirtualPairCol) { + assert_eq!(left.get_constant(), right.get_constant()); + for (l, r) in left + .get_column_weights() + .iter() + .zip(right.get_column_weights()) + { + assert_pair_col_eq(&l.0, &r.0); + assert_eq!(l.1, r.1); + } + } + + fn assert_interaction_eq(left: &Interaction, right: &Interaction) { + assert_virtual_pair_col_eq(&left.multiplicity, &right.multiplicity); + assert_eq!(left.kind, right.kind); + for (l, r) in left.values.iter().zip(right.values.iter()) { + assert_virtual_pair_col_eq(l, r); + } + } + + fn assert_chips_eq>( + left: &Chip>, + right: &Chip>, + ) { + assert_eq!(left.name(), right.name()); + assert_eq!(left.log_quotient_degree(), right.log_quotient_degree()); + for (l, r) in left.sends().iter().zip(right.sends().iter()) { + assert_interaction_eq(l, r); + } + for (l, r) in left.receives().iter().zip(right.receives().iter()) { + assert_interaction_eq(l, r); + } + } + + #[test] + fn test_constant_gen() { + let config = BabyBearBlake3::new(); + let machine = RiscvStark::::new(config); + + for (chip, const_chip) in machine.chips().iter().zip(RISCV_STARK.chips()) { + assert_chips_eq(chip, const_chip); + } + } + + #[test] + fn test_const_add_verify() { + setup_logger(); + let instructions = vec![ + Instruction::new(Opcode::ADD, 29, 0, 5, false, true), + Instruction::new(Opcode::ADD, 30, 0, 8, false, true), + Instruction::new(Opcode::ADD, 31, 30, 29, false, false), + ]; + let program = Program::new(instructions, 0, 0); + let mut runtime = Runtime::new(program); + runtime.run(); + + let config = BabyBearBlake3::new(); + + let machine = RiscvStark::new(config); + let (pk, vk) = machine.setup(runtime.program.as_ref()); + let mut challenger = machine.config().challenger(); + let proof = machine.prove::>(&pk, runtime.record, &mut challenger); + + let mut challenger = machine.config().challenger(); + + RISCV_STARK + .verify(&vk, &proof, &mut challenger) + .expect("verification failed"); + } +} diff --git a/recursion/verifier/.gitignore b/recursion/verifier/.gitignore new file mode 100644 index 0000000000..0be6e7269a --- /dev/null +++ b/recursion/verifier/.gitignore @@ -0,0 +1,16 @@ +# Cargo build +**/target + +# Cargo config +.cargo + +# Profile-guided optimization +/tmp +pgo-data.profdata + +# MacOS nuisances +.DS_Store + +# Proofs +**/proof-with-pis.json +**/proof-with-io.json diff --git a/recursion/verifier/program/Cargo.lock b/recursion/verifier/program/Cargo.lock new file mode 100644 index 0000000000..efad477f56 --- /dev/null +++ b/recursion/verifier/program/Cargo.lock @@ -0,0 +1,2118 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "cc" +version = "1.0.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "tap", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec", + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "indexmap" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p3-air" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "rand", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", + "p3-symmetric", +] + +[[package]] +name = "p3-challenger" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-challenger", + "p3-field", + "p3-matrix", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", +] + +[[package]] +name = "p3-field" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "cfg-if", + "itertools", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "sp1-zkvm 0.1.0 (git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two)", + "tracing", +] + +[[package]] +name = "p3-goldilocks" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-symmetric", + "tiny-keccak", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-baby-bear", + "p3-dft", + "p3-field", + "p3-goldilocks", + "p3-matrix", + "p3-mersenne-31", + "p3-symmetric", + "p3-util", + "rand", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-mersenne-31" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-baby-bear", + "p3-field", + "p3-goldilocks", + "p3-mds", + "p3-mersenne-31", + "p3-symmetric", + "rand", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-util" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "serde", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "platforms" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "git+https://github.com/GregAC/rrs.git#b23afc16b4e6a1fb5c4a73eb1e337e9400816507" +dependencies = [ + "downcast-rs", + "num_enum", + "paste", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +dependencies = [ + "bitflags 2.4.2", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "serde_json" +version = "1.0.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "sp1-core" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", + "clap", + "curve25519-dalek", + "elf", + "elliptic-curve", + "flate2", + "hashbrown", + "hex", + "itertools", + "k256", + "lazy_static", + "log", + "nohash-hasher", + "num", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-goldilocks", + "p3-keccak", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-mds", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "petgraph", + "rrs-lib", + "serde", + "serde_json", + "serial_test", + "size", + "sp1-derive", + "tempfile", + "tiny-keccak", + "tracing", + "tracing-forest", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sp1-derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-recursion" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "sp1-core", + "sp1-recursion-macros", +] + +[[package]] +name = "sp1-recursion-macros" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "proc-macro2", + "quote", + "sp1-core", + "syn 1.0.109", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +dependencies = [ + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles 0.1.0", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles 0.1.0 (git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two)", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "verifier-program" +version = "0.1.0" +dependencies = [ + "sp1-recursion", + "sp1-zkvm 0.1.0", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/recursion/verifier/program/Cargo.toml b/recursion/verifier/program/Cargo.toml new file mode 100644 index 0000000000..bf7da4ae1f --- /dev/null +++ b/recursion/verifier/program/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +[package] +version = "0.1.0" +name = "verifier-program" +edition = "2021" + +[dependencies] +sp1-zkvm = { path = "../../../zkvm/entrypoint" } +sp1-recursion = { path = "../../primitives" } diff --git a/recursion/verifier/program/elf/riscv32im-succinct-zkvm-elf b/recursion/verifier/program/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000..e3bd4a1953 Binary files /dev/null and b/recursion/verifier/program/elf/riscv32im-succinct-zkvm-elf differ diff --git a/recursion/verifier/program/src/main.rs b/recursion/verifier/program/src/main.rs new file mode 100644 index 0000000000..948909e84e --- /dev/null +++ b/recursion/verifier/program/src/main.rs @@ -0,0 +1,33 @@ +//! A simple program to be proven inside the zkVM. + +#![no_main] +sp1_zkvm::entrypoint!(main); + +use sp1_recursion::stark::Proof; +use sp1_recursion::stark::VerifyingKey; +use sp1_recursion::utils::StarkUtils; + +use sp1_recursion::RISCV_STARK; + +pub fn main() { + type SC = sp1_recursion::utils::BabyBearBlake3; + + let config = SC::new(); + + // Read the proof from the input + println!("cycle-tracker-start: read proof"); + let proof = sp1_zkvm::io::read::>(); + println!("cycle-tracker-end: read proof"); + + println!("cycle-tracker-start: get a new challenger"); + let mut challenger = config.challenger(); + println!("cycle-tracker-end: get a new challenger"); + + let vk = VerifyingKey::empty(); + + println!("cycle-tracker-start: verify proof"); + RISCV_STARK + .verify(&vk, &proof, &mut challenger) + .expect("proof verification failed"); + println!("cycle-tracker-end: verify proof"); +} diff --git a/recursion/verifier/script/Cargo.lock b/recursion/verifier/script/Cargo.lock new file mode 100644 index 0000000000..0ac7d0920c --- /dev/null +++ b/recursion/verifier/script/Cargo.lock @@ -0,0 +1,2272 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0#cf88c0a29f9a7ff18e3a4df21e4c3eb53c536ede" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon", +] + +[[package]] +name = "blake3_zkvm" +version = "0.1.0" +source = "git+https://github.com/sp1-patches/BLAKE3.git?branch=patch-blake3_zkvm/v.1.0.0#f3b07c45f422a118309f5917160eb947f1aafcff" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "windows-targets 0.52.4", +] + +[[package]] +name = "clap" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "tap", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "bitvec", + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "indexmap" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "js-sys" +version = "0.3.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p3-air" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "rand", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "blake3 1.5.0 (git+https://github.com/succinctlabs/BLAKE3.git?branch=hide/compress-inner-patch-off-1-5-0)", + "p3-symmetric", +] + +[[package]] +name = "p3-challenger" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-challenger", + "p3-field", + "p3-matrix", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", +] + +[[package]] +name = "p3-field" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "cfg-if", + "itertools", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "sp1-zkvm", + "tracing", +] + +[[package]] +name = "p3-goldilocks" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-symmetric", + "tiny-keccak", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-baby-bear", + "p3-dft", + "p3-field", + "p3-goldilocks", + "p3-matrix", + "p3-mersenne-31", + "p3-symmetric", + "p3-util", + "rand", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-mersenne-31" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "p3-baby-bear", + "p3-field", + "p3-goldilocks", + "p3-mds", + "p3-mersenne-31", + "p3-symmetric", + "rand", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "itertools", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-util" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/plonky3.git?branch=tamir/recursion-combined#c3a0f438feb83022a608c4a37419fcec062a81d2" +dependencies = [ + "serde", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "platforms" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "git+https://github.com/GregAC/rrs.git#b23afc16b4e6a1fb5c4a73eb1e337e9400816507" +dependencies = [ + "downcast-rs", + "num_enum", + "paste", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +dependencies = [ + "bitflags 2.4.2", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "serde_json" +version = "1.0.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "sp1-core" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "blake3 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake3_zkvm", + "cfg-if", + "clap", + "curve25519-dalek", + "elf", + "elliptic-curve", + "flate2", + "hashbrown", + "hex", + "itertools", + "k256", + "lazy_static", + "log", + "nohash-hasher", + "num", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-goldilocks", + "p3-keccak", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-mds", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "petgraph", + "rrs-lib", + "serde", + "serde_json", + "serial_test", + "size", + "sp1-derive", + "tempfile", + "tiny-keccak", + "tracing", + "tracing-forest", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sp1-derive" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-helper" +version = "0.1.0" +dependencies = [ + "cargo_metadata", + "chrono", +] + +[[package]] +name = "sp1-precompiles" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "rand", + "serde", +] + +[[package]] +name = "sp1-recursion" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "sp1-core", + "sp1-recursion-macros", +] + +[[package]] +name = "sp1-recursion-macros" +version = "0.1.0" +dependencies = [ + "p3-air", + "p3-baby-bear", + "p3-field", + "proc-macro2", + "quote", + "sp1-core", + "syn 1.0.109", +] + +[[package]] +name = "sp1-zkvm" +version = "0.1.0" +source = "git+https://github.com/succinctlabs/sp1.git?branch=kevjue/recursive_verifier_take_two#5ea8c46254578c5e75f0570e08d90e4e200dba85" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "getrandom", + "k256", + "libm", + "rand", + "serde", + "sp1-precompiles", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "verifier-script" +version = "0.1.0" +dependencies = [ + "bincode", + "serde_json", + "sp1-core", + "sp1-helper", + "sp1-recursion", + "tracing", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.51", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.4", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.51", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/recursion/verifier/script/Cargo.toml b/recursion/verifier/script/Cargo.toml new file mode 100644 index 0000000000..97729d5220 --- /dev/null +++ b/recursion/verifier/script/Cargo.toml @@ -0,0 +1,17 @@ +[workspace] +[package] +version = "0.1.0" +name = "verifier-script" +edition = "2021" + +[dependencies] +bincode = "1.3.3" +sp1-core = { path = "../../../core" } +tracing = "0.1.40" +serde_json = { version = "1.0", default-features = false, features = ["alloc"] } + +[build-dependencies] +sp1-helper = { path = "../../../helper" } + +[dev-dependencies] +sp1-recursion = { path = "../../primitives" } diff --git a/recursion/verifier/script/rust-toolchain b/recursion/verifier/script/rust-toolchain new file mode 100644 index 0000000000..f7ee87eaf9 --- /dev/null +++ b/recursion/verifier/script/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2024-01-25" +components = ["llvm-tools", "rustc-dev"] \ No newline at end of file diff --git a/recursion/verifier/script/src/fixtures/fib-proof-with-pis.json b/recursion/verifier/script/src/fixtures/fib-proof-with-pis.json new file mode 100644 index 0000000000..de28d9905a --- /dev/null +++ b/recursion/verifier/script/src/fixtures/fib-proof-with-pis.json @@ -0,0 +1 @@ +{"proof":"010000000000000000000000000000002de7d35da0b7e9a7b5e69aa90317eeb0a734a930a3786f81eaea214fb0b2acd5f42efbe383413b96deb7d29133271fbbf091d140230c0c20005f8e3e2e357befb8bdbb29a79d7f38372b520edb875d6095fb0baa911a549e50dd61612e86a3440c00000000000000000000000000000000000000000000006b00000000000000d4a21c2896855f572d95632cd33d663a76f6d94208e8b83f507e95189d1e8607f7a177477c04f3486abab16b7dcfd54cf32cc36ea65d890b1e9e0848cc59da5665a2e32466b19449cd533d6ca0eaaf1e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d15dc3fa39053281119bf73aad37850f5f19503705a8c29a4deee6014205a19c890fa058b810e2e5c0bba476693fd17c890fa058b810e2e5c0bba476693fd178f04cf2d5919464e912f1b0eb8a8164e2a1b1763125bb00f89a34e66333c0122b7098620ac1c5e30a0b48b42bdeda043b7098620ac1c5e30a0b48b42bdeda043b2a0eb2de281f95e7a21003435dda5377b0ba54bb7e0a71b6b11aa3de9b1cf776728561f7537fc1acf0192711172d12800000000000000000000000000000000519317392599197543a2df71a13eb3180000000000000000000000000000000000000000000000000000000000000000118765391334cd2f77cc1c0867d9f569af82266e08d652550df8c41c7352af3100000000000000000000000000000000f9dc8f728abb382460068b7263a9431770266b446b0249557d34a811c422ee1c409f9454ec4e721276ec8f668141f62a0000000000000000000000000000000000000000000000000000000000000000fa67310ca720de5b0576fc46b61512571ce46e244305200caaa83510b78951402df3f2186184f80bdd0e992316eda72dee714633781a851402456d5a006bf72397d1c122ffecd329a571f60508b0144e2e5de34f6b7aa020d46a9c4b2ec2993dc434ad2c3691a54ff0365247f2c5005e0fa21f182250a71ad3ca8e05b35920595f12852b0896b37670d32707975b8448666cfc6ce0576c2cb26d0f619b8793645a86e870782bbd6a89219b3f4ee3333f2093a80515e1cc3df9d4ba45ad3bc5191a626f0e19b2ff0fc713706f43a07c566d030659827e5008ecdfe660d9315033df8104694b5faa6b392e596f87b4666393fb286806a6d811016b181979399d14a40fbf4e756a171151b17c46a657c371a40fbf4e756a171151b17c46a657c37193fb286806a6d811016b181979399d1432e2fb672c240874da143d180201df08cb4a900813a8562237c24b3db7289b3959500a005a341b44c1e4aa4e8e2ee03e7ee45e25b79f7b5ad539c20cec335961c67f5049343a46735a23650470cf2a0401db566c1552a070bdfe4547679cf85efbdb56563a21da53e55f5d1986492660fbdb56563a21da53e55f5d198649266001db566c1552a070bdfe4547679cf85e8afb1133c23219284862637140431860220fd674f2b6f42982575b77d24c0d174f39220a6b17d421613d5d0badf97b3781b2314cb2b0961fbd578b04b02145693a12174d8979a04b7f33c440f196dd3687f45a2c4a1f585c96ee553a184e3000cc083a2f5357d06fa9aa665c020fce03cc083a2f5357d06fa9aa665c020fce0387f45a2c4a1f585c96ee553a184e3000c25ac530eef0913952f35957809df547a195750702c07e2713f7b80944952727a89929328c1d721a9cde131b54857e07d39e2a5391d5da17c594881c07fa3b1e00000000000000000000000000000000bebe8a690a2cca5dff814d3416355e6b0fc06142ec15f977ca90bb2fc80556528ede2a43ce13893f91d5c129cb72783040c10d3440c3143c1c159e56d896693104bc4b3a5300b158e3fed820c8643e2701f1aa19817b26044d200a19865a1645651738166bce0069e9290f16af6b5e39bb77f94eb22efc1cb3544d5b7896664c1af6a84ba41d474793f867061ba4a4308f1d692a1552c83a9ad05d6a1bf4dc022d18a31bf25df94773cb1f288be9fe5496fe4c3b10c0ed1c6324f53bb67f382c96fe4c3b10c0ed1c6324f53bb67f382c2d18a31bf25df94773cb1f288be9fe54890b794911e2b81703340c3ea1708e3321d11b4e56a30b645df2ca187674e61f52217552050cca29a656ee0d3c7dce6040ba271cfbf1dd67e1b60026ef772e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4a21c2896855f572d95632cd33d663a6c971d6a6f703344dc207464edb009115a7a825fd1068613c61ef66ac4523e560000000000000000000000000000000039de1b3846104574f4a9d56c0b17ab5b85df6d38078c2048cdb8c13d1f329344e2e0704fe2ab83196cf9bc77ee1d663230f94a184689d12276cbde3d0ee1b6566b000000000000006e30554e74aad03b52c1710e085c5b72ae33d66a2923bc7523299715475efb394878a777e1b5054c98014160420abe5d3e8bc1689e133952cb91be56dc97212c982d810c35c0500ed70cfe3f7d40524f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a8496080eeeb55a2e355842959a6a1be6c70c3925ccc71428958262048b744ebbf2d657a265396bf4905d6c8eb77d47bbf2d657a265396bf4905d6c8eb77d47129e7f2d7a124a65fd036e23baac2519bd8df40d7cdee55781bbae4293ffc65f259d2f65e2e68d32891911329a456772259d2f65e2e68d32891911329a45677240323272207f1323a928ed40e367d93338ce93094c7a791016d76768e78a22459067513d1a506860df24c461969daf420000000000000000000000000000000067ce22256fbc322cea848f05efd64252000000000000000000000000000000000000000000000000000000000000000049f62e2f68e9d65a3610bb404ab337146b954909433b4b3a1c864d2129ad643400000000000000000000000000000000be85b32249786d4a4855c728f7a8b7076c5427212ee3eb014037503807c96a5b25e531469285b368c7b1a96436dd4c760000000000000000000000000000000000000000000000000000000000000000c2a03534596a122232c8a6060f5a31534c19c42367127e706a94750147e5b35b35b579730b2006046990bf4f535c1c57a5c6c80e384f431dfca1572a897dea1e079cbe395cdaa041ff47072561464a0f94cfaa298d552f3caf3e8e69f9a3a405c65a3e2e4ddc5f6b34036435765f3d0eaf20865e262c097004f9e741c5688305901c1c25ac40cb222eee3800ec55421631810538512ae12fcf81424b4c00aa03ae4c96162c225a17677b6a25ce8c4a0325ae9c64592dbb2b7cc32252f9b5821814cdba338d31ef1eb0e68c16a0d3e373e71d474df2985f485f67dc604e141a528692ca6432990f48792270167a6e535dda635676a48b07454bc98b5dddc64529cdd83d1ee298f94d10219132e329232ecdd83d1ee298f94d10219132e329232eda635676a48b07454bc98b5dddc64529a29225637071794f7483155d69b8e25086d51952467fb65eb6574765f9d01435fd7e7c04e710dc5127ce321997ac37773e174b66bb031712c1cd14446787754a58986220e2276304104e7801b15a3d342633b53dc1e9374434b41e336e9e13683c9891767fe6d1441fe2956e2aca78393c9891767fe6d1441fe2956e2aca78392633b53dc1e9374434b41e336e9e1368cc15f35355490c466c674c1af7d1bf026888a564c0158e2eeb60fa0d32a76470a314a34330ed8d61d5c86a0463955b28c1c28038c8dcc06514005b3b6bf37953d29c7f62f704171660bd6d7081440e66ca316c6eb5858667eb28980f1a75dd32f5fa6a411042795c577b8710f266360bf5fa6a411042795c577b8710f266360bca316c6eb5858667eb28980f1a75dd32dd819960633c14219ae297511660123d45012c18a320ed56af4eea0a8248486c3ed627643d847d6c59afb9466ee17c0c5daaac4da614326eebde183aab822247000000000000000000000000000000008f8646489f5939641480e156ebca900203ae4038b78a511c8f617b51c414e6713e7ec252e52846126898c451332ee947e604ee610eec77361213010cd29b7949edbc666668740c22982f9541b8aca91d312c8d23b11ddb4d7240250d8a9fd0468ff17e551374332719087d17a307543a62a07a65a98b2a4833e424059750b24043afdc5a8b32a1684dc449630343760874e4f90b51c5fd2b025b0945356db85eb394b0443f5a5c5f2337e61043813e361cd54912abd741054cf00b5cd012bc2c1cd54912abd741054cf00b5cd012bc2cb394b0443f5a5c5f2337e61043813e36d5dc50135fc4ac775b796217e4177911c0f5df4788227409b18c4e3ef82bb20a45fb5777b0805019ff9e8a2eb00fba688f6e5f0407010c63c3499c5388971a4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e30554e74aad03b52c1710e085c5b72d022d734b20d4b627b6cd260d56f2d70ced07b12cdd7e42228d94344bc756f20000000000000000000000000000000003efec314701d4a1b3fbe7432159bc108eafa734b5711884b9ed6856602122e6cbb8bed1b8d5e13573c88f76f28dd5e6f2acbc31bc59c0c67fda30105718f7d3264000000000000004ec94e51e8792d5543ea0a35ee19a226e95a7760d1b51834e5fb214eb9bf9458ea07d40fec7bbf478cf9a33e9a439576877a02243e6e8f44679a0738963f666946d17702782aee378f45c759cd8adb54c248e01451e1a11e278ac624ca1c5b0f79f6181ff59d7437e615ed1c1190665a8f41cc2c1facec564d68f23f57364520ae17d2438782ae613a4d7f170d13526a57f0844292f6f5423af43855a7c68854b597dc3ac1a3b36b99eac335abfe2513aef5944bb93c5c6fda348d0afd2f5e4dfda79e0b01f0f70dd5762514923de33dbd46b057da67640cdddc3773c546104fa29f8539e0057f543ba89a348ef18a18e3dab24f14ea4f18cdaccd088063e56b29150267a241f601ea7f5a5da138155b0571933618c49b64fb1a23373d96bf5b1a1f8b2535a0455c24fa6972925fcc1731f94a0493190e665b68f4331a5c600dd77ad02d8e08021b923e0f5ba3b2e30905938b22a03160510c5a0219a0b0ca6ada94ad77c54bba5bcb69123d553c6025e53c3d294c8a294e8fc2e22cc9f7e065fa0cb34eae791800d8a1222fde7c0815aba6403532cfcb06d8593f3321f462468033f2727f9e615d2ea2774c93a31b60f6f434767a37ef4325fb68701d169c57a6c7601b4a4bae50d9145a3600d14d34981a3c628cfd320317de3e6040c49223eca46f613976f04d93f08b2574540358f40417592adf114984d9d104d2126f143a65284dcaa6ba035fb9e611044d560cf836e003ab255a46c0f3d93c7c839533df0d820c369f4c4ba21c932fd75c1a1329d801316a8b9746c6b1f912a15f0d690eb12d3953298413c6f1d436727cfe6c20485b587ef2bc3fb6586b28a271586d11952a2577020263065b3b0a3500e22db8307752594f471fc3a37a2c322f3977cef9da23090c9c70789d04185f7e8238dca24370b8d26132cb1aab6a6ee33128051b0f04fbf73d10c0564e7676be8140118abe192c5fcf61c19ad244df9e282841d92428ec50df39b964df4d012e58408ff02753b35d8d6181d87236618a084df42a0236f69a2f3e69722e757d35437556491d34f0ebd05398290d2462407e323baa0e728f95b96cabcd161efc405d3938fb6f26d8298527fc3b2f750041db1a1094611a7faa1f17cb123e6b192647334f9c6a721542543824bf6a65eed80655ef6fe75659f7006b1917b9363c6f7b3a1dcd66576e1f2249a7482349e8e09d074e55f45006e1886ce528956fb89ba2447f54cf24a7a1e35315a8c35527077242350cf067b4b40b3894e5935f962cf90b2e771515501ac95a1408691f1d4e714cbd93a11b6d0cfa114cda3f0cf72eef61d8bb05193b57b42249c3b32e2f874150cca79f59a5b2135ac4d5e677ec19d437c8aeb11bb78e396fb810b477e8b02f5bb85a2d68a5a814512eb935424700e80c84235d4ce35e274bcba6ef1f93bf9a270e3bab11257736431cdf5c1f58b9ca72a1eb116d2630aa6f9311012ea5fc1d3bf76b99322540c10a8b63b84c988b9c51d968ea0dc2baaf5fd5174f3312d8ee6d72997d3440d3be73e143a10da08ad31f9ff21874554a8622f20a47128f222d41d9edda047738582bc8f003115cdc9d1f47d4905a7fcd5a332f515850f0fca91330276f4a6931c92f4901fe69c83379028b4cf42442941a5270750c3bd2b74022703c2350ec142a14683eac75a7fd890a85e4c34321990565122b6643310ce01224e824672ca5b4215521fe41b3dcca3bd57ab1629efd4f52f3ee3420643e971adf526828a29ee2677003a16aa528ae089fd7ae70d9e59231aa5fd7090b035b14d223da142b637c323a482f0079651567e21ac65431253502f579646f772ea11fe4a71d6cd7bedf5614a35b0bfa24d0684a3136489b1f3c5c9bfd1802ccf06316ae3ab72399232b52ae22d64c022e2a59b3e54e0b0f1e3d374081fa5ca1d72b60207a8c49e0d78a37e20743389f19076e5b16b0059990940c62ec636ada231a6d6600d51246e5884981faea51c18ed177bd2cba026960345033106e76d4aede591c82b74c62512d0a848a9b4aeaf208199188cc42c6d37b4ef5da0062f2b3e25ac7f13641f9609f1d26ed551b7cfeb77286eeff11d9b84b28b09b6e299173754784ee7140c326351e6f82c54608ee965627921023e4d9545326b4dc0be472e11ce410385dd44b67550f0a1772f824c763b3b186317a8cfb4e4b418a16e9078e0a312d3913694da130fa478e3b45ccc33aae105f493830ae51ce7593136f8eb672640000000000000004adce522b45ef1c9accbd14d2ed06088b794a2fa267bd0b95e72f2efe2b9260c7ab9f5e919f001ec0e0f95541a8f33f3b1751660882284fc69fe0303b61234b139fb41c7112650b66a1ef722bc2fd59e2b1223ca0b27106986a230bab56f609d91f210add084e6b3387e966068c7047f0596607911b66257199535065e1046ca2a6bc58ef104c0c53bbff5280cb863a7fbe88296f495e6e94fc265afb03575c1d1d4d4444e5006009fcaf35c4ea0c662c6fb13d4d58f06f824e9d21540acd0eba400140bacd8d605389e06b741681272cf6c24bfc0c9f1c70b95e4c4c24402f8d6d04135026141bdef48124be8383640a9f391f2eab3c17ce61d45ddde969548ac0a001699fcf6ebc12bf61d625980f373cc266fc77c64f3dbeeb6f13b7f4543dc4aa6a972b4a2b21398d352c86f01c2826594e4faac7714353494007874f3889a0ed5a8aecba218c558432e8e2843e45c07777d77b435063f32075841daf230d28ef0225b2af114f44a06bed60d87740d5be1133dd670f6354c3004e821306839524446636c138294dbf5dbcc4233439b5600f20c20d6c4da49753c0d81b1f2a7fb444b2cec714b0ff4d1148df1f14f8f69619c6882b352cb9913238bd017098b92b24aafd8066d1b2450d8adc041613be4e4d3610831b6a301f6e1632e744583dce4fb49f8e193d1fa0462ee17b1abfbc6927b8ffaa0b49566b229c35d61cdb21da5e4e7f082d30317a4c52966c5ec7ec4e0d20b9c6476da7ef71f2c5c457e7dca56984fc0e581ee510419034393f27189906b8cab51b5174e6502c67d459044b6374d31747686ce8ec63131e57560873273fd7bf1637fa78c84265d36e69664a921dd1368c2435887d1d93381e362a25ff6199f5d9644bcc3a190e671f6d370f7b17fe4bf73ce67cbc0cfbe97c5ce6701a1123cdeb570da9137693dd3f3105215b3f7f5b7c28e651424627d68e247788e70a4a81cc0d510c8126a20d6b330cfee935eb22764c3dad535a8cb0736f8d533e2007f43735ef2cd93f90122265bb2369071f12216c3972a429c8ed386f31597f2d3b93aa17ce762c029bfda940ad34db2ceb4b5e23be592a267968e51e138b2b176a32cb75aa0c9440501fbf27bfa8c00cf65c3a0aee07c602a000d50e54119e16ded1dc52fa95e36bd7b5011f516576101cd89864eb886b3c82b0614a22926d3556ca3f48a0cd67066f805d03009c0d3ddd56e0172e3eb8432cee804cbfb3b2391857ef24e0d7ee58c7d38b1710f700684ed5c02ed5aeaf3776bb99775707df20f8817171bbd49d01dba5a33a322c954cb2349671641c4d66008a351139471b11cfcf9c100a19b339db679653da408d666cbeb46c15a6f837dbe8b049f5c36a4de7dc411449220e0182b4390c391a1e1798d29d2226eace6362aa2b366ce5af1a26bf590d1f82de25dad40220e0f2102d874fd93cd29a192275bf8f58199ee1704ee594074a96fb755d3ae2285d924d21efbe427024cc955256c56a4efdcd34401758a6260e772e2c8a004e6af602b6182d77bd57d6c3bc1cdadd2665187f710f6bf5c454cd647271b911392c07b1a460e544d531d2b1930dbedbf46aebcbff556f4b864d6c7a2958a5b98217d574bd6e17332d2b94489175355ceb4eed6ab77089931407969574262a637c10c1eead4a51686609834d3174bcee9a5a83d3a33dcdfb930dfa7b946f968f9914e1c00f6b4e750a3dd646e05c699ce46c15e196006a738603dd54b5189cdf7c5f3f9d092b22a61632f24dfe66cd0e01217ad8de5df26c595c34d51d1a7d69df29e2d8dd653352b25cba36652ecd412a033be3620bbf8ac311bde32509656a130f24bb7b46fcb1e459c12acc5ab1565d5f054dcb26274e4e15de45a2177d8fe2047599314b00c75831c6bf2d50e5b3a12716d09527addc6372b4b5d119fd4ae5694cbf3d5a07dda716c41b73342d66a969f019065c475225386aa36b09496ad7779f31820072bfae03126d3e342b2a280f7a500a1be8da8544860e205c38274e1fc19826632c23326ae75b6f6d5ed14a55dc93182c82576e26695f7746428b011cda725b49aa757d29e5d91e6797f83f245a6ad85c85cc6b402a64831b90ecf465ddded34812fc655c809ca7157a375105837c445435d45b609f159e44c3cf40001275a61ccd55954bfff4d70c26a76d246f5d886871c08d5e54a54c637307d2038ee2b03ea1e4831e3649ac58860bb9101d5a60347c720200d3193e4ec3345b3c0800000000000000eb1a21219e102a2781114b18ab039a4467554e1c5b8504073a8b760b77e40454a086a841c472076ffe9c9d155e23fd3cb8dcf94bc11e67556075f66fe2f375510257000137344232b36ae3454b24775c0e419a26073f33024417426f3dc5f571cecdec45939a0812869f9e45a537631b445b823a175dba46d8161e480c5f6f191a212854f4c5fb5e0bf7cd304243924a0f00000000000000000000000000000000000000000000002500000000000000cc93672ba1bf5c29dde155279358bf613e31f3584dd6b56f25a9fb2f6ec7372a0f7b20436b0eab3277df1367b33ef945000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000408039387cce7e2ca332773c7781926961f2025e017f036aee3466749afcc25d07d4537239514760f35252298f203b0507d4537239514760f35252298f203b05d18293749a0ae732c3dbeb42c8ee1063c9d4c837577ae622d1f908579b53185dccbd336ee225e768c2390c61955cc420a166cb6585db8421704e435c323919564bc3e236733b0c114121bb4381fafb528ba7b34724e827690c654c4ddf8370061be13d62ed5d6f1b8a7fd4684d0b0344842710779d7d9b430d3cc03739653e5b5dee977216268b71db5ba767eaa5e62c0000000000000000000000000000000000000000000000000000000000000000f965e9152a3c9e46927e676c686eff08ff57ea0ad13f0f1be8185d41faef5a3e347f35210497e077a40c974384b0fb764de96e0d11797672afa45b6b84e8c1169d248a3c4ec70711dba67d221b121962975d700dbc88d15b7c52c0310db3b76f52e1ed53aa3eb4343380ab5d1feff657433a775a65350b653b002d3303baef580116441c8797a77248da931df16d204b5554d55863294926e368400970b8172cb067ca3edf1f5e2d17ac937336a3e249a440b63678472560df0a42053a30a6413cb3685600e79f2b89b2d0304be03d03f365fb65318cb527e80df9456cecce765929c91a735a454a88cbd25ffb0d7133343f0559c59577236f7f412531d11303250000000000000047a1d7071d7d860c79154065f32f72500105b2124bc7ff45f967673b176bf7060a93784833ec19274765f24a8696d10800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e29c15676f011a6896671e2291a01e798dfb6e455bbe4965b68c08ddfde746a923f036496c920466bda52b90b0ec1da923f036496c920466bda52b90b0ec1d6607ca5124d94212530dd534c471625dd27f042b0daacf494c82d85a2965a02ff5034d71d5f3af57624606045c34b84e80252d1cb79d904a7b326d4db679a24d5daaed11faeb236a2b1f4628cd3c8926c7bf1340f7c5455167a50c6a09036b3c16c74e312ea24127a1aa810998b4f050d5656705fd5c4546ffd54104a00eda60335c752d7f7b4d46ef8d5d460b790e2a0000000000000000000000000000000000000000000000000000000000000000dc622a38abb5624b452edb7084b2496676403354d5c6ac1d67528338a65f1b53f9ba243076c6ce6e08360d0ec04cd73149e73d703449af47f6bd6a1ddd077038a7c0c9381bcef14a3278006524d5e94682a5ed64dfc771479605ec4ad4670773418e813e0a003f36f563bc2b43d7e337c3a0723acbc99d181799434d6a064d22f2b78626d3a257566a25d2356743334f0581ad25c6a7506373d48b32cbda3c6f12c7853dd2dd886477351231e91bc1587b6f1d73d0fb3c05e2de2c4e8ee10807bf84c00b0ac8ad0ad02d736a8e66ab27769a5b7452bb1223804c214075446f2615642057f642a40ca7157f208734ff5fcfe68b1ca72dce510b4204104e44ae220800000000000000f5689f1b392bb060ad06b6595e2c5e2b0ba3c904d6265c76d0a89370fc6be9575ffd9d014adc5160faaf9a6f5e5ec32a89c40d4faab9815bdd7d10695b5fe631b1be814be2f9d50b8676b864c3e2e66353b15537a3b6c370c90d5a11107e0633c2c4443315ec7b235357f1127ac5621116b2a51b9cfa901d803d40726556a32f0800000000000000f38ae32fb6cbc343a724b637e2903368422ca83e975c7e5693e7e8263748940da27a375fd6179447313af2403a0cea5a5a50d92799a9ad10f8733f00b1422d601a90830f77788532450f404a914d8472923e4e34aea88130dc76ae6bea359e4e6e27694c238a5916c663ca33c30eba0348a58103323e254a1aa92b05cb12c32e0800000000000000a7731135d8f07256469cd65665fd053355c20236b1d0af49a23b0b22933e47164365444db82d1139715810465a93cf2d4633db036022dd159fff7f35b7904c275ad9ea21b14ec6190af3863cdaa9822b0b0270548fb88963e636bc7353a5bf60246802018346c0436a47a157d5faf4390b6dfe4206abb97362d1e521c54a364fa6c72c151d93225288d935712b4f3e370e00000000000000000000000000000000000000000000001000000000000000109063102b4db55b1925373ac1b6e91e75ef7e15804ebd63329bd62e807c11702960ba16d87bd3490244201809a97c6390ecd84b2677a9700a84826f79123d2366dac64deb5c8437a90ef7043155a704db30c41848715c69e5ea413642665d383ed035562bc0174d1c03172432124b4ce04fd75553bd6945e9274c408cb79473babc481349c01a0aa297ca2d6c751400660559355eae932ce2bf1e3f9a71603bb64f152c9cd9454c5d7731745660da498ba56629627aa84a26a6f9402c30aa1a2133a0186b788f0674d9ff556af3bb1031676d368f86a363efb4c2198b02d14af9f9a31e68c9673b71cc30504d0d1330e1dd9a6abd626f16522d173bab1b230b10000000000000008f891d47bdb40375a64c354e6bc6540e054fb944f7548d7519697471f13d685dcad2f168640e580d5a144b184b534472a9fdf21404dcf760dca7e5154ece6e67a8da0d10bf90ee6f7cc66e376da0b354b94cb63755334a100a121a3fb0ff296e411c366bc7851d23f0f2e810f913c45cc651e4732c880a74310165688d39f0620622c11dcbe1f60b3af98f73b1f20127cab8a15b12869e0194f1c661e283a5580091804a458307151d72ae1d8e664c2ba8df1369a3ea895fffc696042bf90477e00a37054b37db53ddb28710e959b25b630db62bb31bf5689a005d70f4c788177202aa589a7489510549ed73d2ae135d8628920feac7191ca80ab66ce22b1d092000000000000000373d4a57fc30a755e6ab412404852f69c6cef517a1c1ae0b500d936c1c82cd12a1f7d9173dedc70a72284e370febc03def4f65369d7d5b2fdd5436014effcf3320e86c2826bb4b186198dc11051a3860e4375e12bea5476792bc7533c0719916fc92c142a2041e054b80d64153888959ccf02c1518e0d50121ba5d45812fbc3d62ab8e666dccc63ac1fb4e1a04fb8e75a1ab36261f0d0a1afc5f7c4a538b8f4aa4beb759dc08bd61cdc57a4abac9e72cca957350820ca50cd1881a01955c8c66181682215076df3aa8ef650a282913447d8d1e52e0d3aa6b97622d2bc56b5f13dd6e80659753ef75a32df8068ba84d347e834c5925b1e0327dd9cd48ed076a4981fce25642c106151baea95910fb344c11dfbd4db2e1482f522d7365f9fbaf4e8a015a29b8545430ab3a2b13404f76756f19d01082b9a22a5918964e1ffc36420cdbf712ab3a58617790385afa734a266b3fb512ca8a5b20f55f9f2015d1736e448fb34e5cf58c345062c41f35310a566c9d4a0b7e2a024517466053acb3ea1270ce702320f21d2119a7b51d154dd52808393f639a4e6143ed4e05583bcd9d2cf3606d65154a8653e0a44574eae6422f06d6c70488fdbe0c78330c5f09c93e021acc533822f24d72383e994f4f22495fe173dc15b6cba3405b1e472668af7b00f67a3816d7f3a15b8c02a374c4382c19aa0c62522efa76720597dc2caf4773272000000000000000d814271e2c24a065e3a6a728b94f2c3e60a78815bb7a365406f0f52b968c606db703dc4fd71aff56390f41275d97f43f1e8b7c11747d8b1b97feff337f71f56e890caa5aff061c52ef68385184d7fc5f090af376dcff4750272bdb5eb1a74f23c0194961de2ca23509402b3d1b83ee40f6e3eb508ce2885bec5ce23e3c35c46e589f4d244c0ed46533c1d81abb9ddf639b80194f66f18922f86aed3a5e7d767563e56e5fe10a792a3ca0172881eef11ee97d3d1d7ca91348edb3d7274528922a07160425c248b4212132100a283e535c847e7137e068834eeb9976221d77e226af14e44a5408b840116bbe71538bb0476e0fee7198bb296ddee3f1375599de58b2ec8e4dbe976952f4cc15573381624efdde3c525f3f555d2a77df71ce9222767a9cfa742f2ff2001869944a0ff0b44df9e2f54f0b6d9d32d3fb94061df1e66f406c8d46470088663e96707653bbf04b6c3ccf07c7cc485d25eb1b1bd4a1ba71f18ea22bdd3c6f4aa6d64d2c2933b022ec20bc7432a8a2277f0a1356999e6507bea0d7128111d17734693b5cb4e474593060ed4b4825890ea8770a0d183f473b3e5a69249558a70273a70665a3aff24406a1f419703bda2ddd4842201964bf77175ef3154899e24dc12b7a4aaebeda741c3acf0954a2693ad20fb5084a7c894ab0191110e7ce20712c5a9d6b10d05134bb49b6731e6628121efa12387b3b25210800000000000000391f41742d1f5823e31fcc31037dba363a2432651c01364e8b32ab455e21c807949168077fb8c051d1bfb76978769706f26c6b688525115de353765d3ee8a6406bfdca4fd5b0920629a4b969286248169c6cd77301613f6b9113b75522bb79436512a96ffaa1d263757b3164d8e1f97098cd720ef8a58e55349c68103cb0f615b8bd506be965b801e7c21a09dfaec76e0f00000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003555df0b6d822b60c1e0251dce0693010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003555df0b6d822b60c1e0251dce0693010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ed5f75c9ce00a7231784961b4c1643c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035acd26ccaaad33fc773a51f0dbc743d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035acd26ccaaad33fc773a51f0dbc743d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eab3475b3eaf44bf25ce925042f5d692000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f4100000000000000000000000064646a227bdd286b919342376ac2345da8020b45236d8467392f9572e68a3804eff9e71ebcab21503fffd86cc9314e328e6bc12730475a2783cd5a0a0bf2b876378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f4100000000000000000000000064646a227bdd286b919342376ac2345da8020b45236d8467392f9572e68a3804eff9e71ebcab21503fffd86cc9314e328e6bc12730475a2783cd5a0a0bf2b876378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000dcb1726f0f37b05e6b0499432e345b4fc2626a32a3994c0356d92971f048eb001f06ce03c635081b8540811cc763286fda285b3980e0497739554544dfb000568399493f0dad8158fa6652461bc0f24b9e88a563a4fe7308ce0dfe3de9881036c45a4d3bdbfd0b2481c69c3ac0d7ed224f46d00354311f5228fc39193b19a75f2000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000ccfaff33c0e3324da91424244e32e8042bb6d063362b040f528a774fa72df5640893b263b981ef187b983362eb2e48156aadc320887f3074b9b4b33c553f2776378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000ccfaff33c0e3324da91424244e32e8042bb6d063362b040f528a774fa72df5640893b263b981ef187b983362eb2e48156aadc320887f3074b9b4b33c553f2776378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000629ed560d6242c48af8f4d5c2beffe610796942c62fb95214362ae4b2e239a24e2baf23cec9a6634a220de1b015c9a6879946b71042a8e2f2b5b8b4626d8da502cf50c04ea68dc314e0ac63df1ec294151920a076e20876be407d228439ef658bca69306514d1d443145e76edde7fd30b8b1d6474d3a440c1f84963d361e676f0800000000000000b61a9e26ebed781694cf246c32610e0123f0246b65d5850ef844f56cecc8f874d1be352d14c39436e2ca161fe0c4b552c886ae1ce10d7d4fdc13c50a170b84125bd9bf364d07110586c6ce6cc1e471417f110a4cfe3c7673abc0da096a1b822b043383478d8ef845e1692a3a4d47d91cbbd4c135448019486d102253703ca157536874771918b61cb2d3884156f2e9490200000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a71b0f3ee010ab1470d9cc42de5c4e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bd548b10a84c800f14a31932a7c53a420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eac6832d38c42a055c36b3103897133e0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc5f33e99d2b96acad8a612dee2d30e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1d3362ff35d0b6e9822fd4927ea1e4700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bf1bc0fa774ae7433b6a940b8f8b43f1800000000000000b92fc56a9810152352914936d13d1b016370b663b3c16f725954fe0c5c09d606a4749436928ece47346f4c2e85d830073ebed000aa99775a65d23557483b100350323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d00000000000000000000000050323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d00000000000000000000000050323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d000000000000000000000000c1978007e3524a296897a458524bdf1e95d324193e7ee739b2f6df5b8190ee3356703c242bc60e414d47a35850d74e2469058f68e5ee976e0125c40f8a8f603fcf4185080000000000000000000000005aeea41c000000000000000000000000904dcb34000000000000000000000000274a715b00000000000000000000000018000000000000002d3872270c90d9653978c472dbccff62c2fe086a9067624e7997fc0d97ef730b4ccfd613637e1c0bcbd94415b8cef61e6e66ff46397ff2527bf7a3161614a36450323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d00000000000000000000000050323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d00000000000000000000000050323e20000000000000000000000000aef388640000000000000000000000004e6ec15700000000000000000000000070e1200d000000000000000000000000c6094823980dee33413fd63c8f39b866b55f62223671c421d3a7265cd1227e2efa22a13834af7e5cc3724455b02142595cbd5e6789e0571a00b75135b1ea402ecf4185080000000000000000000000005aeea41c000000000000000000000000904dcb34000000000000000000000000274a715b000000000000000000000000080000000000000070ea180173d2c8424f3c763cb3e2a02bbfde844aeef23635960983538dd02320d70e0951aa49e74cc82678657656f43040fe2b037c4d4a4f39e6794baf2f43207b03db3c45db5650f60c41596bb1d36f023ff352c9861b3d6497ce38c35e41484dd44046a2bd485c61c7e3729a374204b5c0d7071c422a110f1ec04ce8b90060cf4185085aeea41c904dcb34274a715b03000000000000000000000000000000000000000000000044000000000000008ae49066c7834629778fde117dd9ef090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c834c11919e130d9d8e780516313a656841c3099d7d6d2e3adee03b9db51d590000000000000000000000000000000000000000000000000000000000000000fdc20444074f8336abd7cb28809b146a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0460a33b8d0ea47f684ad3531c6952a0000000000000000000000000000000032b9f544492f15300b7b5242d0396a4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032b9f544492f15300b7b5242d0396a4db42a081b651ff505d087b6164d3e9b3bf454cb024e150b2c0fa31652fdd0a20e28c73615059cea15185ae044e8b657581e107245a11186419700d660eb862e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ae49066c7834629778fde117dd9ef090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ae49066c7834629778fde117dd9ef0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032b9f544492f15300b7b5242d0396a4d00000000000000000000000000000000dcf13e306abbdf1be8e1965b34f5f21b1c1c021853b1f54126fdf61ee587fa660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000004400000000000000d0781f5028b4c702e0a1641612c1b061000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6fbc91ff3cf9b35d9f8e1018ee0f333bcd4645682abce0694eb733053607a43000000000000000000000000000000000000000000000000000000000000000027cce01e5318e9448452e32365debd1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ed5f75c9ce00a7231784961b4c1643c00000000000000000000000000000000b42a081b651ff505d087b6164d3e9b3b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b42a081b651ff505d087b6164d3e9b3bf454cb024e150b2c0fa31652fdd0a20e28c73615059cea15185ae044e8b6575832b9f544492f15300b7b5242d0396a4debf837295712a7145039885af77b822400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0781f5028b4c702e0a1641612c1b061000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0781f5028b4c702e0a1641612c1b061000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b42a081b651ff505d087b6164d3e9b3b00000000000000000000000000000000260ec1479744205c191e691ccd0a0d5c5a802c5a4ecbff4522d5320fb7f0c12d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000006c000000000000001ea674270000000000000000000000007ca9bb13000000000000000000000000ba90006800000000000000000000000026de811e000000000000000000000000f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa60357f1e7ab6c97a5a4382ad7c63b6e70315577f6023c6bc1c41d2f4efb674811c61ce9a62a1b78ee3c402ff5b96f7523911a2cd5214760f08d4347a88c04eaa6035714db9d628abbb22344d6f4100920a70e57f20d2b427e581925017b6d8769b836d7c5c464640df73344f83713b3d5e544504d0c079411a93b1034b265116f44206de0d90e57c9c6272bbec572fd164563323c5e1cbd7daf4d2ea1ce5d8661ff32ee8d81249e4f4b1f33b44c125522bb550d28f36481e106567faae02f7ad51847378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000152d5d4615b1057748fe3b4fdfe5a835649f700bf9307d59d97b836f25aba0606da0554092b090452627195acd53e54af7c4a42e69e870436ade3975ece98118378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000152d5d4615b1057748fe3b4fdfe5a835649f700bf9307d59d97b836f25aba0606da0554092b090452627195acd53e54af7c4a42e69e870436ade3975ece98118378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000a6427a41bf8afb6555269b526c28fe439d1dfa16ffbad6118e59a829c40648336b22623f63732843cab07a116fd127534b5bf425c0c2d51e01e5885865fbe6552e3f9567527d0143d419d6426d159547b7b14748883ac831f675e8388e52b76cd454dc698d7dd6022dfbf1736946a95e7aba4460ed08843b70e81e59c4d3dc6b6c000000000000001ea674270000000000000000000000007ca9bb13000000000000000000000000ba90006800000000000000000000000026de811e0000000000000000000000008fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b9098fd3c6198c3a5c721db4044bdb89345394feb0467bdfa31d1b6e64133a6ed931f8cdd568488caf6b868c9d50180ceb197c73582d4fb8a74e4abb0b304173b909774fc405061af1032d1c822b31787c64db4aa669d86e0f0596c00e4b790f034b08248259eb2d6c66da3ce80ab764d2710bc60f40761b850ec5e7191d153bbb1305a4cc097be7de5dd2326f5ce1970e479800474c949fa90f8dc1a66041fdf8390ac9a555126b4d5e4b254b71f5395d60a17845430618e46dfcc64f10f2347c1a378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000381f1f5c65610821e9363e120b8b0377932fcd6062ce4e4babe34717c12d9327380e184520ff9a62dd956c7785e4b55ef5226733b73bb706da60a24b31bfc46c378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000381f1f5c65610821e9363e120b8b0377932fcd6062ce4e4babe34717c12d9327380e184520ff9a62dd956c7785e4b55ef5226733b73bb706da60a24b31bfc46c378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f41000000000000000000000000378c9c25000000000000000000000000371caf6c000000000000000000000000a3764d5a000000000000000000000000d7dd7f4100000000000000000000000070909e0846258542a42fa01c5ac7825eb87c247364303d019cf2f56d5aa1310ad740574d6e804e48c4c2db25470c2b62bd3ac64a5708dd15faa97413cdd0691400f90819b8d1572104d7b10c54641259e073b04c0e123b19d388145a79aad83e19ecc95ceb2422321e30de6522eddc096e628c120947691b86e81b1efdbbaa5708000000000000009ad343221e09c9460bc46f5758a6ef5515a2c155eb4b580f1a9fa819e0de8a5b7339a548f30db35f39603c7094c2ea5a70dc680f045aac059aa2c2700a144854ac985f0c000000000000000000000000ba225b3d000000000000000000000000ad2402640000000000000000000000004b9a24450000000000000000000000009138ba6febd3802d38a7c71d3b16b61a02000000000000000000000000000000000000000000000023000000000000009be39c189c6759267fe7d017c511c630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd8d6b34a704f903bac7216464819a51e18e9a61d1ed6b12a583950b8e2332400000000000000000000000000000000000000000000000000000000000000000bd2fad732470544657276b1afc9b3a6f22ca2931dbff9f4b9b587b06630de62300000000000000000000000000000000000000000000000000000000000000006498712fd537eb5b81328357089fe0711f52b771c9ef3373303ab52b2438320e00000000000000000000000000000000f617d51f154bdc19a7a9b568c25c984b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f617d51f154bdc19a7a9b568c25c984b5ab0464fea82c77527dc3848c9fb78457802fe48b272fb705716ee73ed33ab537802fe48b272fb705716ee73ed33ab5300e2063ee01093033767e56b63751424dfd8770df5d7ff03d90134127b2fba23e18710502f55e25b3f4717775ec07f1337dd4f64f3cc1351b9e39e642a15e54183e5712d38bbb83d925ae0463e7c1c53f148646ec4f9ff380874d434a65d8b1123bea6128a4fab4eaa197639b0571a52bb60cd5ff942f517fdbf79385f12e86fdd1e6130160ba24ad82e1d5c2822e52200000000000000000000000000000000000000000000000000000000000000007802fe48b272fb705716ee73ed33ab532300000000000000e7068c1001c0c5303285676b67c54c4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b34c266363ad0040d0ab1b4489c449116d3477602b51d20cb664154d2df278100000000000000000000000000000000000000000000000000000000000000000c43904306e2fcd48c120a9109d4de806e18e9a61d1ed6b12a583950b8e233240000000000000000000000000000000000000000000000000000000000000000083601c13fb2b56020fece46b3f4a704a49198a4c37e20230e1f679176e4a780b000000000000000000000000000000006dff0869fa0321080118af1cd4e2d93d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006dff0869fa0321080118af1cd4e2d93def5f2504f52f770a0f049410122d4a103879af502c127a3af0fa0d288077c21b3879af502c127a3af0fa0d288077c21bcd49431c9a3bce6baa71802210e2e3480e0ffc066d7fac6f9d2a3b2b13c21204dc1c680005ed56379f9fd546bd47cf32a8fb7c3ff6c86e2b12b92419d83cea149e2b0870bd7be42ee19ab1469ab8df668330d1658fa5c65caa9aab1459e2d332240be647285a026a8150800883919a73b5904843224c5818a1d8324ed07ebc32517223402b52b409bf75a6341ab2754400000000000000000000000000000000000000000000000000000000000000003879af502c127a3af0fa0d288077c21b08000000000000005f87033ad83dda0b1a30443d7ec485073728fd669611a244b92e8406a8ce1c34064635428b35072e34d8fd6c9472e1765049c229b516ce420be2d6412797b628f51513541cee7a72b5d78f356730635f07ab684caa9c1f4bffce2741537e2854f9a2876b607f6e6a48031c1071e0475268e25a169c5e4274c8be2c752d7f9d6f0800000000000000a217c156cf1a9c71eed2e9452587e86b1e51ad3c6d1d2d5f7e7abf375a0e1b39917f396147750e28a76c67340b72253b6a06a143c222ac239915df4abfdd0943b33cc2650451ae2455c83d4810036520e965471d2a0663049c15c12881f268261ec0384c86f68525c6203c6eadc6041b01e2556b20ff280a6d24b8255977f302080000000000000046d4a2243cd2597001b55e5f91348f5cc1224656952287578ea8e60b22f9fa693dbd0d3eb24c0c6cd2bfbf241a5a6301d0494c6c43edad6c127e4072c1bca4529b7a6b58af61bc498864855ec69bbe28e48f2e01d53ee4615d9eb71598acc6224e51870419423814772bf81269ebf4521d6c1c5272ff303c584f1015aadd0157122b262c1eb0de6711b73367d845293f0e000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000766f881b8f658351d4eabe2c8e27616b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac78f075c7270d39b9c84c40c6e97d5908000000000000000000000000000000000000000000000000000000000000000000000000000000e94e0830684ea35542e36367fcb6a13d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029c35034cf1fe5307aa99c03592c541a0800000000000000ecb7df33869615349a4d025fd0003d05c3ea0273fce1662acf45312187772d6e29b96412d3f4a710ba5b1541458ebf233ee2974d3056a70b8ad9de0fc52815388155d961896ca81eef7bd863e5934b4b4a05531cb619fb734c1d772317bfd646e507f00d606648429a45f969dfe67b07d874f334866960336cd08a04032731210800000000000000b6843d37a9693f00355b933c82d0b85501b422618e74a34aa821221f8b7ebe4374d705683539ff7513820926ffb5c3049346f768fdd09f34ed215e49ee8b936a293b406543eeb06ab902033fe1d59a1f7f47e650a139f50350c600003173a631746d503af54ba61d26341d12776c2f4f8e647d510c5393434c420615f85c7941080000000000000039cb8d3735946f2a85d51163aa311f107043e91125dd6d09d7794555d62709740813a66c91d0d1466a39e352b37c80015bea9970a4c2ba434522c24b05a3964ac2205650a4389e5f49a0eb63c5ccd957cf15b452193a9438cdd29768a3cbae27a153db1e6acb353f64e898565b8bd76f24a6a03a7fe1ff5b5de4cf01cdf04e26578ecd429849f0618f9dea0778005d0406000000000000000000000000000000000000000000000008000000000000006e86874de80a485273b2f36ce1566d071c35fe4eddf01369c9d3094831138d53d870856c83f9556348e173010051d55ea2d1ff0a017925224e49c32db7d2426364bc94312b732f6910238f1e53e11b38ab18451b171f575b2de2761a7460b123e9a0341b3374df0985a008676c6cac2b6e86874de80a485273b2f36ce1566d0708000000000000006b9a7545e4cee33fa95cb963cd150a6837e2b20c233cc3445bf5e35e748a3958f53db32334bc110c29822168ea9aa96393e53544228bdb115973c43f627c8f58389cb74b12abfb3f0f29922098437a6d1ce8f740c9c1aa67c37bec369b389156dcecd60c0d154c74afc8e0067c60af506b9a7545e4cee33fa95cb963cd150a6808000000000000006ad3e14dabab093e758e045d8c03cb05d760e86c075af7163589eb668ab6282ecf46ee6cc8bff73f111bc46b5a721f105433d073daee34538e02132a9079ed007d53696caa37811d280f9750e33ed63eb7e6964ad57dea0de309485295879f618855f16771c7526a96411c6e7411a55f37071016474e4a670c3b122daa3f010408000000000000001d361843e24c0d534421626cd5b47c66add3ad72bbe7ed0fb8609551edcf0f350b336f496238122765f15e57726c5f56c43bda6ebd2b895c53a2ed72b509be0bc5cbb3759efe16363273e11d7d40862b3a04df15ee177f228558bc07d7bf4565d07a2e254e1b782fbd47090638076811777609067995f34b438ced432f8f0e2008000000000000009e233a6fe9c0dc2f0793dd1f0dc0ac0ac40e114ef51c84087398bf1eade8dc6ca340e25fc44d2a5f64ed6f536378ce62072cb86a602516513513291754d645382ede296d4058c31be1eefb426de27360f54fc94454e46a1e8e7da324427076743cefa12c742f724aa2d2ca46a2d58d10023a8d346935571eb64bd31db6354e6d8112bc1bec82700254767737a4715f4e06000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000268d9928e95d0a485ef5e171f92d401af288bc38b6c99c41f474be3d7cb2e635a804f41b62bbc30ac213f23b80e7354ebcfc2e7002f80a65f2c924360ae61d55a6c0d5102fd5613ef38c8c55f6ba90643ac8b03dcf7c0e0fa29ff14c28391f720800000000000000000000000000000000000000000000000000000000000000000000000000000007fb7d290558aa56c1307459f601a03979b62f06531bce0ca8af903181da6616a509fa28126b57751cc7502de961bf3041df4d74bbe212132221d82258f5e802e0d1a82fd380a14de5914e3ea39d4c101fe4ba6d45f6f5754774a163ae9c7a4e0800000000000000b5f8e14240416e053e580707e761df5b33de7a30252f7e0ac69b533a4c53095edaa5c4464916436614edc2626cd8bc1884cfbe4d5781a9082b219c03e36b9e0a3daf324d510a6108aa18e4224d13127276434e2c76b36b4359b47a27be4b88106beab929dea6e549fa5d33126db97d15d5cc3a6ad937ac757fedab749a51c177080000000000000059ed9072d03bc4584f781329d9fe505cb1218852302c1c4ab3460665b7eaf668443d284a8bb90876bef0924416f89726f31a6f0c3ae7ac2ebb85060a6867403e3d147d169ff9ac0fed57112c7fb5b95e5c8e161b5bf6bd4bd404fe0f9fca0712887af10548b070057a43450c07a96660de95703d59ae9f21468cfb637075ae1308000000000000003f5299352c23454541803b47469bda494f921d2d8bd0e26423a99c52cc694c49b9b42d4f4f25163ed250446b4ca39d642f75616020a9644cc4fcb75a5f4a84568ddaf037800d247105be200115a37d01412793069c946d1e16a2ac4e3b2f380aef51196b5f48837288789602abd12d0e94f10941ef42092a349f6c28cfa703395aa5cf61eec1876e7a24e42eea3ec4010e00000000000000000000000000000000000000000000002200000000000000d93ff0209edba921ad03d62495f802139b671e64b180741c94d709073984956c8368ba35e9ba7f6ea53e84411c5c8d05399e790261984e12699efa6409c8181a98fd5e148b8a221f84f7583beb5c136e4d0385145306aa59ce83f80983214a1b058a740d54568e6e0ef88a55d0e0f37677cbf1763755856e33f7b32472566d22653cf62795647059f8265e3c00482973f8dcd145391f25708c24d324d8019b123133b565cb21f86ee8225d29561de144fc57df4fd8454e6aac174e0fc7d71c601f71f644ac7da9751e04164f3f763845cb18183390f7df3e4b171b00e5d8f10389bd4e1de6790e080da0ff15c4ea5a01d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f802137b96762fd8954425acb3446915cb496a7b96762fd8954425acb3446915cb496ad93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f80213d93ff0209edba921ad03d62495f8021300000000000000000000000000000000d93ff0209edba921ad03d62495f8021322000000000000009da4760798697c467ef52f74d368f454550d1610ec39271eec62f205c04c5a68257d4c40a905bc6bf722c0218524cc6c9a97c627d072262cb6a62c3b10fd5a747e19a10d0f4fc96f2c10972a426ac1692d91397768021d41ab0dfe03cfb2450e7a978d42fb137774c5670512de570137108c6454cd43cb4132c8011877362123fda82d4bf1df807578fd085d0f87046c261342528d958c59cc359f203c20f301b4daca2afaa5b2390f4ac117f204091282cd27179f669e236ef4bf15e365f74dea8b587730434437e6e5712bfbe6ee6896eef72c2f345b6e01aaa8416f2f3f403ed8f33346a65071b45b16169bf44b2f9da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f45437227559dc702f2138108f5b37bb961a37227559dc702f2138108f5b37bb961a9da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f4549da4760798697c467ef52f74d368f454000000000000000000000000000000009da4760798697c467ef52f74d368f454080000000000000020ed800369d36968f810666831d5405965bbfd22bba8184e0a3abf620b15633fce170f46e7671b5061659510d3df283ed51d486329fc4d04881fd668845fdb0c8926d413474ddf5a425d1d77cb467c5b2b9a94066827f02d6f870d4feddd514073b40d6e442b460673d65d209f82ac0995fecd1f864c2d407f46395ae70bd01408000000000000002094e660681ca61c75293540945a81071117126978b15148eaec82088dcbfe5a1967ef1a79556f5f33d143774b8286063cdf48313e78cd24290581625d5d3d761d7fb4644f7c293073831d517c224a07555863045dbe824dbcff693740054177f0ad9f63149a936a6c269e154daf5f04e777911ca0443e45f718ad25c7e00e650800000000000000be611e33503f0a561faffe5a92e1c026a6b2560a90166e16392360740e9cc5294b14814c5c289a2caca3051f5c0078628fd816527dcbb469dd985c09d1b0c72a52642d1c1aac3c60c500894fc6cefd4bf311a15d72da4e651458d10fcf8ad96daaa8973c1c59b556a4e6653b0d42e223a16d9d5a21405b112dbcb55b8d71d004ab6f5b2759c1b5580904d10c38a9552410000000000000000000000000000000000000000000000014000000000000009f61412705cee50a4430b4778f63a80e94e98728972e5550263bfe372f9cf208bd7cd63037141c4500db23638eeaa61076cef21e65e81e166a908e4c3015f406ba511c662fd402496bb56a61a32a4d6e3fc4d149c802bf1bc7694d39a450c155b96f9315e1eea83cc3548e5c9bf51d715542f942d1ba3054c653a06130048957f70aba6231c6ab619f7b37539484646a024e286a3280b210908ab12d38d1892f4088e9098033236e277e2e64102b56290867835f08e2595d61ffb1328c10a92800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091ae472d6d70be4854c6174eb3473743a1abcc5230754e769a9b7406f44020740000000000000000000000000000000002fa0307bb362b0a05ada1170551852e0000000000000000000000000000000014000000000000003bf25338c9d2243375e92b264e2f9f42a6b1d3774a460b339977824a797bc4073c0ba475b8757f245e9436684a4ead75a598833a5ba3b041b0cc77087e5cb64c6a8ddf3ca32d311d53384118350e094f103729377270a40cde542f709a3fa46d7245c96860ee6c37762d4d5451f43f2bbdcd6448f579cb6f136a9a1c21e90c2c2064f21a67cb7a4672871e72c3bd515cb39408745f2d1c3ca35ff42a1cd211502decc513dd0ede3f47ec6b06ebc8f3163824b25a582fe01a6bf7e25fb7a2ca360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dc27876a53b0d5c81edbf36a5239c524c45f259cc2f1835aadaf8524fe7104500000000000000000000000000000000bfea0e63d64e890ee02380683877fc5e000000000000000000000000000000002800000000000000225a8b11dda290683a068245de42e53ce7a73d3748848743c7085659c437c2014bafce3bb634b677bb02471d2d0597423eaad1629fb2a2164d49566be07ade762bd16800dc3d763c5a81f70b79995d56b630bd1075e6ab1ba6ecaa48cb45990de334832facc03f408a4ff25d3760f52bd755791278c11a0e803dc03ec2d4fd68bb680c4abef95b3bbc3e3219dda7a4290ae017075e6c1e07ebfcd30c9d27d63233518e2e7177a46b5f571c249b998a24e4499d18605b6c6bb19a604f50567052ffd81e420c59fb2fdbbc291ae2bacf0395584a175b6d400c5cde5576c66a1e5de1e35540eceb07103b165a1595044702ece9051a44802437d0b0765a9d408168aa2f903469c3a31e8587196befae064d1379ce19e2a2636808b6c7644f1fa12c7a060a0d96ba5b2915fff55433d8405914b783566cac19241e55c002636f8835e53a3004d3dff6607c8fd908f111581e39f5c3625f6a0b25cc006b18b890a31c389c1b1561b2f451eee36b04344d6d0a26eb7e41da3a006ff9026201290b5c35e47d510b78c79c1a9d7f652ce3e45c424b4e4e12b8f60563b0fe455d80f09655ea8786667802705b0e437b640afd7a079e870c3ba4ce874fa106a2086b54fc547fd09e241c410b26acf79d156326b7378153d4307ca3892b280f2c1963475066c26e1814cab8eb59926b4a4254901d15a70eb97354406131c0524319e69cd91dfcef44101d6e9b5deced5e61dc21b25cc7059937a102c419d49e376b1d57d350de09172ca7093421a78e116b69a601120c97a25c46dc41081cb16e53751c614c89556250bb8f574383c0a42b9033e06d6a70af348560eb32887c3c13b765654c41d6b43c9656295152717544ee2e21294484b85b704f983a52e7d14c404e906c280000000000000089f6751445d6e60178426658fca5393bf8bd6053efd564158bed884d5a8f8572feac45419f1dbd3950b4491e8846bd09c669317067839327a0302d5489cdf3242ae0d12f38b3ab46a781ad3a6f0009465ab0c05e54c17f5fd9b2cb20bafdb20c9c410e13ca73720c6a3ff84e24f33b7306059875b81d7e430bcea76a2899d66ded913a08c57a27136510ae6a335f6f0484c25d6c17070514053c445a64577e13963b164a1e386e14b1e2346a3f704b72d6628627d3c12a758b0734696b476673e8605a0c880dea0d0e9a4e5757903d001d11ba628c9e4f4536c3196cf40d78373b7284568258e916aa4b0d42a668ee5033608521b4cf2a3de6f2e55d51f1543324cb0b2c9837522b3feac528052ab81b1b8a1d6ffb3f1656d3cbd332b341d5461deba45812a3514eecdcde65dcdef308f86eac2ff51a1c2ca4c15e2d7dd37926c8031563f47e5a3809854522fb7443406be51d519584435975dc90770f43921a670d3c2c254ba752a2691d5c5a76ea490e7af21ab87c574603008463b258d96e3788da0739a8d16d0504762c39e39b1f552fbc58b0d9f44dac0f0714e36c6f741456cd34fb0ab8602c87173c6ffcbb4ec097b939cdd5a8377834442b77fb094a9d0f3013fe64f35a08d41666e0862a5eaa66da6907a54f5fc7737111418cd53cedfb994d4b1c5235014edf37367d3c72c1f4287258740031b73b531031249b6b5bd776355708bc716b8ddb019f4f4c62ec2fbc017742e8326f34d412a87dfa190576a33e528ac9069921422741b73f010ac2be10f4313a55519bfd6a5a4dcb0da599ae64ee4fd027a8ffce16eed5ab19abc1690c9a5a142fbf0f5755d4cd2b2018d8ee607eeffe32c49f11587daadf3fa0e2a746869e5a3140dcce14fa7a21130800000000000000e7e4f9224f210558b8a6002e8ce06b6df8af4d6c9597d16a0bb4325459a28b5a19bdb9581929e93eef851f4ca2f02d19e27fec4c0a723e44e184e74fddd488312272f137bb6b0f1bb23f491e0c5e0e09ef043d3a4bb611350e56bc0fd9637d753db3323f21dcbd5009be72717800864d525da737133f3f0e8d220646f265411bed95cb6fc566d0229ab07a36eccb566710000000000000001000000000000000b3bb096553bb803766e53d33b7640953135331093f8316efbef2d64292f1ea840b2754fbd40b42986cda0b4d2fcb45eb4c9423e014b9b9dadaef425e9ec44ec93dca663262e932c55ac5d3b80e69fc350fcc485b9b65e84290607951d0c23cc522ae546d653342a5e968f7325c4bcb1aa04120990933a383c1198141bb46c0a6b4c1570ddc886b4b66ffc09a4605e705f9e1facff1b76e30fea1ff06f70620cd31b514e93d1e3af870ab2b7860d7ff63a1a04c63837b1c3d6a188aa53bb8185efd4ad1cbed17bedd8ad7a71016bbfdae17f5ecd4570f55fc8dd899fc562d3dbc1df4283b3e427355c7ae9bdce37354199430c20f529724fb2939e7f1a7a297f3396283fbcf1f7d6c8e9250ccf92514d05fc6ecf05bb0544dd76a439afb8fa98858d89c51ebf20b9cf51e5026fe3f2534cb4f08093b33fcd663e3a16c304174e907a0501745ee970ad70b8944ce16670019c3a333ca4c8a702150c40338bc7205d771bc7fd1fa57a6759f417c0ba3e0b858adaf718c6a82e0804ee557b53ef4d7bf26e15b5043cc4e3da6ced2825acea1603d93eaabf67a02055c53de5ccf7065b967f570d3d4a4c30ee6db29b7998140b77326312f432531436d6e80fc11180b48ac6520bc65f38c456772ce4c8e26bd1199c1412a2a4df31891ac74017fbe44c515f14b942b83559e434b38906b945b8d57c3da3d49d7c5816952c1792184ca64000000000000001000000000000000f0ad3a760742d45280bf2276bd09f72210000000000000009bcbd7c269434bf6ecdf51d040daebe0f6ff7a7f0265b4dcf8b1fa4d34042f3f0f6d9bf00a69dab2fd5ed7ef3a0f340cf5f23feee2de650a26a01e79faa3a102d7836b9a6ccecce6f264bddf0688bc3bd3d83432f7bf4f24ffb4eb1a028cc15ead4f4a84552815f183ec942bd67ba903beb8502edc4cddc800e15707fa2122c377eab5e64a6456381d61f3675168b7b4ce3724044b2d46600f83a7be021d5bee5ddc1f2117638c24c5fcdd2b25ec26c62a1cdd8ab3775abc551ab4b27992e702b4f58c4cd4eb1b000702efe78cca4c156496e73d4b76cc9583a6163738cc7e9ea5dab0a61bd2e3a2bf1174f52904e9d58aac4f4b9bf597edf734b39ae3443d8a5507a04089d9aaf52729d31208d02bc5fb928bb3ca0bc6c780ebcbbb71609b0bd2f3988a8418522c6d767f8d38f95e6eae82bab34c1539d2cd70728d2b29d99e18ce3f92558dfdc7bce3ed98edef44f3ba37b0e1df0e22eebd17a8f81288a0566a5f06cfc6e6690f1ebd71d3bdbcb3281f86483dc5f2cf16fa9bac6a3b811838caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2c62b4366af09701d7c135773896c4d530f00000000000000d137ebfc862c6bbf240b65f1d7de8bdb2892a292fb9d4353207c3d56bd601396db5138156b82f616b3be7a47efdba2a4a2dd1ef1cb7582575db15ad799dc6eb3864138f182347b48fb8e7b8cc5973f2c7eb78256c5bb2d56a24e2bf09da14b602bffe27437d0924a8e8b59e8149da0bc178b5a6e505e257f6d0814cff97bf44b762328124e082a92ed15421e540993e72d008a650830638781c3b5cb31abd3aa2da83be4e2b11ce601d2107fba63d342772015d3c2533691d0c99ec93e7ad1959d60d926f8c15e4acbfbdfcbecbc13b93a7b5b2f3320d8e7e0aedd17eb01c4131d80303caeefaa708d15dba3cf18977a0a5ba363bd6fa13b972049fc93f5c93e12ecc84cfd9cfbf8f6012b7a0022b8ead9ba8ae969c301dd7db679ebc2175e55a052610966d2361c309826a80ea3672eb3dad83f775360ad8b002b4ed9e8ebe4fd7eb6ec7d49174e2ffc667c7bfc3fd528080effba8e3ebb36ea891e936dadd6baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52819f7e9678376144cfedafe3ac613bd2d0e00000000000000dccc7b8d03746a01c6d65a4f8b82a8b1e06e1917bd71ac360109e6fa48ffd3c0118481c1f1c97e3453cae1c6507dd1effbbd1ca2a962c88a972b43713d748ad0d8a2bf1d149c1c04a007e816b76c0fd69d17e9d6f9d1f46886cb420b124f81a45dbce6254a74e5424b6e1caba29d3ae025dffb11a2cc8ceaf4cc1baca004c1918049a0273b224c84f31874ad31d14f827124cab5e5848f08459623fb379e9749f2c17d5965b48e575a212f1b898c44395d85a00ade41e18feac7a84b8ec12ff8a5ef842f50663fa1afe0f8518d8c2b5a8f3a8e6bb4583a871a66fc7e7450e1c5d7ab51c548213a3b26f5f888b50901be625387e81d745f4d7e6e96c41b56f424d06981b5f7a04bb0593bee0b425d058c8e157e66fcd1a3bfbaac19bd028b36c01df321c66c4e977b6731772b6b6be25893602e57944cc8cea189a01ea303a2723441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b682acf8b17d9ea301ec04cd75019d409140d000000000000007ca921b76fc6a0b02d29f65846518d52e09cbd84a39dbf2a2228810bd31dd1454606ad7cfe46dd7ecc9d3b37131bce4ece47edc8b181ac4b8ef0d4753fcd58f5beb317daed59fcbbcc6129025f4deb7640eb1869720893701fe34611744269262e0b8f30264f4bee764cc483376d39d0e83597966c97ef622af4d4bd8ab7632501531f312dbcd26d8ab42b2a84e42f0166ead967fa5114175085b1c573768b3797c87478e83d257dd6f1163f1ded94bcf5b43d1304eb9c6e2c2b24bb4a3a21625be610a44c8c9e9f1fad82ecd484610201686ac92c872f661485ddc6f87cb032462aa40354cbe48010b67ea5987091feca072fbe186736dd2f9ae83d6f3c85957f5876374bbe82832362ed376d349f8772592e5733b9a867a01151b5ed05f36bdf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999c04ef74b38544d15a4afda774288c5310c00000000000000e1c7b975c1595c1fd668ccfcbc8f1c7a78933a09a1396e587b45473ef34a8a15e09c5a461959dc31505d92008939566f0189066705c287daeb3694bcf0c14cc02d05048896d0059b7a2a93ee2479a40a71e44de167879d6e7e27a42bdd6a4f42f0f89529b96c79f32c74e71fe099fa39e5e749e1f2be63ce24af18d03e985e6f8484457fbac446af7f8248a95c61ba48225f9fdd50c012da39f49f6dcb80eacca8f37735c13ed67f18b109a4ca9fe63c7d2c3f474a17f17d813a49cedaaf0383bef54817b3019713e12b4db45fb20c4338693362c9a66424b74ff35430c5ea002763e866fea32aa1446f6a42500128f1b6e45d6d16bf951aad90a45108d0a442cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249e8636e2ffdc3923f727fa03ff9e878380b000000000000006ba521500cc72e6d1792c5551a71368df0a7ae8afeb66bc7eed79722e97c59394a708ee22e30de7ffb4d311b1d19d772d73263a3ffd9187ef1f726805fcc4c2af2c8b59a3bc440342fdb93dcd6238e82b1e29b48127cee312b267914316ca9cc41cdc5b8f6ae68e50b4273b3de89b5cdd38b2b358d1f30d3cd8848b33225b3a9eb53b65d9e25f21e99a77f9bb4ffb85b9ece12dabc9e337576b23f79009808c390e027f1986ed269d89d41598f818d9fff889b2e5b15af70e76f03bac63c2046645efa534c015cead3c9e19fed274952307ff09baa7f93bf45e6e5d423b5fca5ae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cdf1e26669e9c231a0b8c04196981c65a0a0000000000000083226418b743c990f79269ce07b2bef658f7d57dbf4cb1a72844e5b30c32d8013e006af551216d737a64b3713c92c97d40dd3f42a5d6b68bd8144c7d450792d664c19dea7d7a8c69063a1fafd7e4f3b5acd1ae68423ecd39eedaa69f1ae3e646ca03c4491a4efa62e14980328c30afe1b52b6297d76fa335d0becf6d762708ebff8cfb793fb25181ddb6edea5ed59cb581a947672db4fff69d3883afa5ba43d2ae3db3ff4176793736c48a5338960a86c8fa9937e1e83caa55e134b4908f9f1919a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0d3ebbb16064cd31651aee359cd5895110900000000000000d62cde8d68f88545e1ec7c492b33777a2f9d8fba46c5e3fac32c45cc8bf3eb7c9f9def6c7a4a74db8bcc08b53137a862c15723ea562b0c96e4197af044f68d6b739591f2dcf5859265b511163de1811fad247bfea490775e2eff6a9948f96ed5aab237924849e42ba35a9efa8643a87b13d769cf156239c225cd0bc06c8876c0b27226b884c301531455f1277b56a2f7bbe387988e9fccc71e399cda0e7bcbb69f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d81b62b26061de91f0e9d2508b70d8430080000000000000061336bc70d59988b71934750aa89abd5667a5f107346ba4907c0a9cb429a1a25bce54766f8ba84f68ede4c8c632ec3470f5a72017aa1e630a37b130b7da574aa30562b3e28b1f1c0cc08a0ac05ad463fd021902fa36e10737b30fbd4d273b588aad79c42122eebf42e8d5a3b9da986809cea6e6e29ed1c7f4ec6bfa385583d80206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22220b5bd5c7eff8a6d0605931da206c83b0700000000000000dafdee2dad3bbd0e0a9d648016402b5193ed40eba2059777b7741b71eb3e87437c1b0fe0db55b8da6a9115e03f46b86f8ae1ddc4fd23f9a384080a3684c7e75fc04fa7383d49daa8cb4ac09dec4e139a2e2cff5018cf7b101de277f81edccc202f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5a70d01371b73e71984f26b7389026045060000000000000078877eae18b9ee7f7e8203598391c229a6c2ce9f23959076fec3c1b63dc2c590f8c9a8f7f03b898cd42061b8687d3ab0f5b1db283a0432639fd504e65a9b1bf8a387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c44cad15c7b59940bd2bb6037e5a788310500000000000000a5058a45aa6a40765d2d71d4a784c57edfcdaa104be774106d62d9e0f8b58524bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c29a8214e72f73f507ae0c7702f7fa55c04000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000a7182d68b8261a1f07b3cf4b9da6383610000000000000007d5f326ad46843c4d41c5e7c6134e724cabd180efe777b7637101bc0dd9052d1d0158f033a393e07d615a035633de9b262447a967e920f20c8ac92180d3e18345980aaf9a306e351ad210dd670614b9bcaa6cf58fc5ea34e2adf7b9d60f5b12da79a501e7c8b3a8bc2a18c12b42ef17ccc0be86d44877ec432cfd002423aa84b3975d6154bd45628f2e83eba484f811b1e2a5361f46130be63163c977ee4fac1d059775822ea4525b9a8d7a038ce5b2938ef96537026d797c1e836bf86b95db077d626fda1c0faf702da3e4c3efb94ed21bf5fa03d7c272be55b96d0283e0ec0ed855bfa2c27ae347e2794c1ed1667b187ea0c1ddbe0c78970a8337873eea5c735e188c5f3a0285f3b23d07b69f9583b769f3c4e2e99778116686e518a119402e032adf756bf5f1c1ed2c945f3cf6cc1bf835c1467592472dde1e412f1b8264bc9bcddb6bc4176761e4f14f6e300f64ee447d3b1fca68432b4be4feaad5be951b65c67a6de883a72320360d97d176701e05469e0374d77118d2d4b8ba46175c649e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0725355314d463eb286a23ca4b148a78310f000000000000005cf4de2cc890de06911041ef56231cce8e83a49c9aafed50c82e6acee90a3606258c4b7d32a0a2388cff53fe3b9adee2af7ace768ebc3e0cdffc14fb588ef1988f11adcc67772e0bc54e202dd86ec672a97afb1976c32e04a0f2638f4620673b220a79473af62b43c294737715d65aab8ec4c7fb2d9910b6358e8d2cbae56da005d8a46cd71388c9d9b98d222d57cced8a42afefa56d4deb788adb1a342fbc7d88970874225ad487c7a6f535c6237e3f889075f69b240e6463e9010bfa09045f8199a0a789f1970391a9fe13a7c692e02d33998def5f52ddd4888d03d7ca6d37111b17ae78f89f9a2f89d53c2fe7322722d6eb45ac7c282ce040b153df7fbb789278fbc8155cadb8f0b45c5233bcd1b16adea84df748ded8638ff47be3f8ef41e41082059c64bd6355d11811db8873622717095bb491a034e39851c56b8ca79308c2ae601910ea3b0718b39017639d604d681a4783382f9bb6a606d332f33d33c5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1929bce51d49e2755710d41639c9e0ee470e0000000000000013ba4fcea2289b8b2e35265e0f3955f966b6284a1a85f17a745d56ac7233fe6288a93bb001d8a5cfeb11c96a30c1f1ad0b217ba828f12ef1cdfda274ee627d229f9a6e335733d071ed8b128fb69870032e14b4efdadf11f0ff3435f1ccf64f043f49d304367e9b9ff05b426afd77603ad6dd61d304792883f88451fae0300352a6cba4d5dbd0d61541d2217a7091d2bbdf76b573b1b1ea7e9b683469eb116493cf3810950878b96423ccb1fa9d01ac943169cc6274b5b4995274071576fab283459898222c74460f860a3e61017a5cd8ef9757687e7ea6b575af70937c2da5bcdff39e6d8d4b8e25e522e8df2a3fb340bddcddfbcfb0558acd2bd198d222c562d422594a5983910a986da7a76662075ee5cfc2b5a2986729c743c286174fbd97f952cff82aa40431271b5f5709edb59b8b817db9c3a425558f863da2c1b7c9ab4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dbb78f914c9ea521266023415bdeade650d00000000000000cbb6b114aab6bd94c09efc1e8fb6bace5051d4a2c9bb7f96a6543d3c32e58da93ff9e855f90adcf47a932fcd7ae40ea85041b3e63299982cc05837b1e977de19efdd7c587db9e36983c88f9a56bd1d69c0b164698d7d7889720b89aa6bdc23757f986483d4962546525473659a46821c46a0f5bd535f769117b29af513c073a6709694988aea6597a0a9010df7085e8fbdd0377832bceb4ddb86f49f7bd4b9774dfe7033b5b1e67ac732685a03eb3fb9201843bc4cccb388a8bf320469745f3624fa2f3f5016e8b0a018eeaf1a0ce693f243b098684599bb3bbde49505c3de00c7389ccd027be97c9f6c021f63bc221aa7b7521d5c561c02522ff428af01933c96863e54a8a247872ba2d2f8a3877f913cf7553a297eb39f6c2dec7599aa2c70001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9ecc8872f3013c81f67e2335a6f0a862b0c00000000000000a9e6eae647d02ed2f70a9ed073aecf505fa1acf07f20f3b0a6b457cce0f22c9aea9fb2818f0c42c6e6b02dbeb0815189d3f0e4a000cc709b8bc0e6550ac472f468e9cc14c3afafcfe9467c430c6cab736859658765a935ed1205de97e8f15fed640dbd246b590797f2e77bfa6127ec111792aa0524fbfd9a571b60037fef3e5b3ea608831bfaf5036a560bdcaab722e9a985777045d3561a77aefc73657d8e98688604fb06b650e02c873860276b010a43791223a2aa96ac58a9132f71d7fce72b8513e62d8fa3bc589a5f8690037faec1820a3169392dd8e35c68368ca9fb7f2b791fbf2194a35afb6f074cd3a5a40406b60f116ec1763f10b506f4d731ee8396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a897240f00998c5955319c8c1dbb9282630b00000000000000e759a1a360cb70b35d48b591f05d67a83c010b92c9c8988220baf2c0ac1c91c7a2b02e0d60f81be05f71633bd11b90e47ff04a9c3afc5ab91a401c6637092e729fe4e84513a6090820c82c681ae991c67bbe4f9cd409cf0f5616ddf4adc6e55e2c959abf6903669f6880ff392a0978266984bd00b64012a279e9cf87b25d3c686a5628d696a3bc5baf3d71f0096e50563d62fec49cc47b0b80dc89da4240e8d9736e9e2ccb563edc80ca97ed1f310ae0744b769ed671c833fbb87731ee9b22fcfb44227a9ed3934a7b8d30ba039e6cc0bcc078c982b77dc247cf27e0fb8cb9e7da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e8ceae931d3d648241c51770a741b99730a00000000000000891b85541762a0f1a179c64a9b57c27ef90185384ea7c0f0c3618992505c1c06f4d16083f11ee08aa116b3924a1fe6c41f735472ec4e9b10697f58bbac178475110d741cb6c3e9c1670f4f508f63dddc29cd851a1886768c70b49bf50c084e3e81dfe86c54f6766b2b61b4eb4df7dd57267b608bc706f115e1cd794c542ec6e10be7cf6ebf33f5be4af98a5f66deb91c08357920b02d40865356c9a77818a73bb79394b390709200944e833ee4eaa05e8150e361cbf28b8cdaf6873856e753f2b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b49b0a84bbc4a881d4258082359c58b3209000000000000000f05a394fba8ba587827bf621230aee8f56ca614b772bada1f12bb350373533b0d3b38197cd16e1b803bbc153abe9a8cf30ee72f2b57bae8e228ba5a876a37ef432944c9059c9bb326399fd7c0d53cfd313622eb6caa538139d17ae418aab6c81dd1cccf3d2197385af3c9b646de580e2aae140d526f21fd73326c26012578b0fd4d46167bb82308050dda3a6fbab0b6278a11e63bbf52d612b81ad228162f42579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc4acb326a837f2e4d51f38074eb6bed2d0800000000000000bacd074a8e6b9fd327458f9d7d28fab6fc0f9798777e8c9b873720917c8e00dc7b44b6f9d10fae3149d83750765e130bfb1248f6b201de38143fac95b1976f81b7f344ba48457e838ad43dd6676ba1788a6d906213c0a116f4a1b15b1069c46db232271a5dbeed672ebbf8c62bf9fc3491a8174f6ff4394b515b187612fa1a9ddd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6a016a63825d11163399e7a00faef557107000000000000008110383dff2846be9d2288ab56b5f55b1f0d4f1bc0f66572f0756e9ed6b380b27b8368cc8c14d4dc57cabeea43f658767c681c18b0b58da6243bfb01241ccea45c6ceb1983f07b093079e80678a0b57fdfe6ccb5c232525e0f58ffed512a83c99f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec6fba560548e9904824c83a5db81dbf440600000000000000de743b780c254df1675ad1f5e508dbd358d62fedd7c580403770228fadd684b9814521d9a000f41b12b4450875a802957e5169bf5bf279f13d73ca27cb4b3bd3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c177266b53602e4f31234c659415040eb080500000000000000a16b71ade2e8c83f09970d13212a25d10b5437ee158849cb3524ed8126e83c90bc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998cfdce316d4edf8661be1fa428b188b0d040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000039b2055124195f0284b1ba17f2a1836010000000000000003bbea2ed3923b6c699772cbd4ff7b66cd959d1f4f17c7a5a8ce472820f3fb77dbfe431d9b6b6c3bb73b48483883da89171e0c3dd52aa9b3fb459dc442fa8b6c59229c70b87ccdadf88d57543c70774401567732bfc6fc556fdf3db9333a0132195aad8d2e3854036cea82f75e76eceee5906b199f2e3dfc7fb419163540a38377afaeed423c3dee5e5491a0e2fef6615693efe55acae93d554df4598ee0ac8193931785705d2d08813d3a3c7e8b8911559ec07e804c41f53e358c03038ee0f17880f286430d3b65121857865765002862eb0e96f6871c060fd340b2aa45b5aa6cfc1aa482fcd0836ee5de9a226f71f279d1fae9168a0d821fe7d59aa5d135328d939a9e863a7edabbb05e0afc1f5a6c6c3f3c93a0a7bb36b50c6481ec5c00cf1284bdcc59ad5517effbca5e979286cfa625213a7987917cd08f53d5f71a4207e07e15e3a6eac78712e2457fae5b83c5a7a3de903552b74cbf75050dabcd3b864513286371afc377355eeb40e89cfd169904276bf89494ab6aed648cecc1cecca23a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2ab1d0966838ad240fab70258fdcd67040f0000000000000059063f231456c064250e17769b5fd43b080ea069a0533e37f0d2d30deff5190467e6746ceb167e165516606d37e8118c2f78849bb72f58e9d6998496c2fa6a5dd3909cfe8908b566d373d172c6397e50b98f5ff8d7a634b02c5f4e445d5e8dca54ead1d417ea87406b0fe6d12d908b57df312bef50264d9d6c5a3e1c0686389fb04ee1ed33835a14db3d989aa497102bc7bc0942db75fe48c5618f7f15b08eb74b831bbff72b023e1071695325ff4b9c5e261ac3f175543ba0821e13bff873d56d64a253585ea4425dbc2c1aa82c7ecac980ae318e06b42fe8f12aa12354c803149837b5b153ce20f16c83bd49e91ddaf6c33edf5a24303626fd8f25f2a8651126e9f10f59d578a8acb8fb4c043d420d7d9683829e24ed4309f80d99d385148decbfd3bd38adea8c681114c7ba8b9536792ff5fb4986cce0662024bb2e09384cc75d114657a47c46df2c444ea29f7b8711eecf5be28906835bdfc548ef019d5dcf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528d699b40c861287610a07b8519e83c4040e00000000000000c0e71e9ff4560576ce170408bd0f99ede6870f6db40201f80a5290e787104b9bf0a91d81c0b5a31c48c56f9fed6b0bc35272c4f85e930c2c60894eb0693a77bc11079a2343243ac59e2ed0cd29444bcb476f11fea39012e6d7e74449d592d7b86d2de64ee01fcf56bbf9a70428996b2a72dd2e8ffcb1779a979353acc33f528cf03b37a927d39de7e534f93edd57768d270640d1923d21cb0ec7e0713749d69bc1e14a6d81afe51d7aa49f744dbf5c5ad703e6eb71483e3f0dd96b2f577ecff1eb3786e8419fc6e05e9acaed8dcb4a2a108047ea5fa614c19215bcfd5bccc5f80ba286ac8fc61ee48be73d867aa908c3218e19834e6ece79f552ea024f14ece3d1840bc2fc7e5fceacd35deed41f803cbcac9bb0f3a363e4c92863dd697e2515bd7b647d5256118f8b4e7ef1dbc31e6aab716c67022a61c4fd46d39e5bd09408fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b682f1d3b1fac8bf94ad2979415f5a4985e0d000000000000007920f40a7705f2cf748a027e573b4c79cfca576d1ec6b7427bbc59599957d57896fdfa2b3f7e5db4a369bd8ec1000db6768b5913577d7dfa8cfc155c6c9915fd890f136ec064449ef5676e2406fa581b388ae098076df8eb7701682a9e06865e9297f8c75a757c7ef350443ba1aa0fdeeb98107317c672ac99e9b232ae4fa916149a5fe753cab299ee89dda01958fea8a1ff549e923a2eff7157be4b64ea2370f25006bee510c5fe471108a682d2834a0d38a13844280b85747ef47e7e5065d495c045721b219e17554570e5104cf9217b371df5c11f4c7253ca25698b5165ce81244c233bdd58a99689bd728e1fec01d5928d0235b6262baa88737e08c6b099119b48d90b7c9e8233a9883c7d918e438274db1f9835e5585d0daa056f940bcd7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899997fea8b35260f3f6b69f9071ae0fe6f300c0000000000000072404aea3135d98a3b4a7def2a6b1666579dada7b22bf5dc94fd1b79b9c5c263be84dae586c917b77baa91af538988f7541d998e6aef2d48ba357dafc71ccea98048cc7ac4335f2594a18260f696cb923bfc2ef037bc07f03f25dc0957bfb2fd86ec0ea1a2fcd222b300a5f69fb054f6263795e00a167e32cebf0c1892ab11ef3b840e11c8a28226e75075f217790720e63a7f1f1721c7df417252b79371e97420dc37f33765447124a1aec2ab6352a3e8529ac377f865ef1ce679b2dbd695d312405b743d194f98f156a2920d4ab354c151259a93774772aa1b9c2d10a36306ee859c8bf582944854aec03ae530e54b647c440af988f5a2590e5a47ba48e62419e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2494ac953002402c603ec7b1249d6eb56570b00000000000000859899429d80604b89730697a4e6521909b9e6cb95bedc9986b892d6a1d2e16a543697bb7d9aa5295559d9e6e480bade87adfb930829b03c8f96a6be1dcf24e7e01aeab932f56dac3c314ed80a79d86faacfb7f263c9bf39f01a913639cfabef572601dda0ddb293a4b59455d9ce1678be0184c3682b3e428af6c5fdf37c3ee477f92bd0df83fd91276c6a75dd1cd9b7a3391d22e3f1c3c0ee54455825a6113cf27e8bec69154715a81e407cba70f5fe61872219b507524e141e76fe1768e656eb358aec11ad4463cac6dd230c75e4ccef80dd4bde56d1feec20e89b5810ca1c669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cd244764294a6d12e15653917509cc52c0a000000000000006438118f3e46130f8d5129c14efbd3de775eceb5f52d1c4bdfe8c32b8d0bf21e89075dde362467b76bbb924f0d1058f6e84204af9ff6952814415f803411a915d3d4e47e67871e555c897d847f59d40b4748b7657065378a87b069ebdac5e07c2f7d01059b9c8f269d9d43096ec6a2f775fa1ffdeab5e90bc062f7463d4173ef4aafedd2b0f717c75aa783e940c2bc8cd4dc258c7311fe856d0d6e12326a2c5ae16e700aaf6477560b68691205855dd1ba1d841043fdf51a9eca9b01a180daa234a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c03705cf3dd41daf38354b891b4d326022090000000000000098b2df202b5b2e2d43ea94e66cff537d6fe25d1a6d99557c67cb5f4dc83953c7aed89e674d4d0c9f015da3d9f951a38c2fdacaa1c982546569a028a33fe66cecafcb0ba121bdb30e40baf95206a8b0f1deb9cdddbd42214c600ef74e333d313111bc2fd60c0a3208a931252b12514e26efa699cf5acbd642ca4bc24a580ae7c95da8fe59d83a1ec12df6385fb9ca779b175a72537a86634cac4dd9db0faa77a48f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d57c903288b27f63bf135eb1c33fbf9240800000000000000feb86bad071f40fe03dc10246781ade09fcc196f1e8a1769fc911346c2e0a299ccaecc7979c94662d4318f86e79681481d641afbc846c2574f61aedf2c70dd5dd34fcf3c51c3a08c5bb1e49b70d1212656bda1b0d1afa26dbfa606ddf6bc276e9aad5927579ab7091268db39fb2982f9d029d4dbfc61dd1aec1f468914dfcf8a7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222d1a805096e6eb31a6282d32d8391ba400700000000000000c1a2a46eac001267ef14c659e90b3df7b9148998c17b3a0b3ed7e968ad8b1080a80089eb2bfc20eb55b05406bd128e0080c2198481afe86c5040c51abc444998789b397c7b3c0723c8c7031e89cdf1d883fc2c7a897557bb65884390cd1374b9bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5fbf14d6b1085a712d406f91657926439060000000000000069e638fa169f28d33a1078da45a76068befae7e2c92d3384baf3b90424763788bfa8d9b14697d38e0555445b493c932c45e2971b495ead797758ea5abb17ccbc12ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c7bdbd208f12dcc2f849bc248725ed93105000000000000008c612d5ebaa7b67b60532d95c6ea59c42ef37bb993ae347a01a4f621b7da09b00b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbdb58b277b58cc48546828580e1f64500400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000e7fc045069d0ae495aa61b2ef6b1ca521000000000000000d7b22b2e70410c4ffd960b7707a977ce515c0d73d4046b24cf9ca9c690a5e4f1c091305c7af5863f504736ec46f03c9f1733c6b6c5a182f35c5300e9a43920aa84325ebfaa4cbbc71a1fbea5acf266bc06c780cea0367fffe0f54e4e02bed1eebdc1581b6ab13a325d33877465c7e6d0fa9ff38066d12af05ecfbecd8da3e394a523f7febecd32b459f02ccbd102a5628755b8006f9b8e4b259ac27593a385fd768d8cf2d5f76a3f959a6d117bec396c8fbe0aacf6cc99239f6ee51d37f625c1c5bd072869e289c8a153e90dab68defb2bc78b634b46a1c5b4eaa84cd7f585be24c7b72dde8a20e7b7afe1abffb16d6f91315eebb4ffc45621ad785e804e174b408844154c91175d1e2acef436b3baf4cf31be9e62052ba8ec1eda26c98c128115766e5b818186acf427a994898233d992aef3bdbc16d0ff4fc804a34d5fe61a719c6a720172e29f63d5a777199ae5ba8ca71c37ae5bbb8d3c58c3beee79ad1b51a5f49dbc08382d1fd3d66b60ddaed6e5d771e01b90cef520b2b393fed00337b23776ccb3f48a478f483a73a8501fcafcbccbdaabe97cd6bd4307750958cc1855e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc073c06ee1de9b4ed2ccee9542576f7711f0f0000000000000005ff2262b90691b34b6940d10a74dc6364a70f97b50b61c59d4fbeb4d1ac920d2a0cde2cd8afb9022bb2b3e5a3b054487f0481f77ee552ab655c64cdd57dbc5afca77e20a9d02e01ceb1ad443a4d89a67496b4febe0be886cc99f26a78e6b7471f0a4f4db4cd85868956b1daba31cb92a3093716e00e6c20c25db051deb67ef3591e2eb1c741a5536664466220a4faba363ca06da9c6d2447a6b9333574e03adba1eac45acd422c530c8eb509069d2bf16ac446c5656dda9ff8f27b11cb01e4650dadba03f91d8a9d7a40b56b3d7d04782fa2971a25e66a0c96c433d5f6fe6856d22776a37f30ad8ae6296f8edf5ddb4ff062a465df4e7331a5c4590abdd8dd57cabc987278d478edbf80cbd64fd7a29faa008063c8d46fa87dec23d7460368769c07446c632892ca3c5a55af99b7f22de915a72235cda16ddf0d5b8b3183bfd74aeea7d408d9c241a9cdf95c7ccddc130e492d32572afa0b620638fcd4a58dea3640e84c9db19c8b60bc0de71da734cbdef37fdeed3728ca24ce4b88679dc01a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19d119ff1a920e4a6b1924b50ef5b6282d0e000000000000003f77aa05bbecf015e226746652e888cfc909cf0cb62c07bc006a221c7a15addb9a44ed8dcf8e59bc49dcc2e832fc545ff54e11baa621595fdef8b504f436d03450dde6ff1c2446f995a1522f76ef6d11ae74376934047231b7689d93562d221f8f8df2927386e22f68fd949d25cfced1184870c7d105ef4419605f25e432b363d061c5827b1a5fa8f218c86bbdfd056d5a584d01327d5cede3dd6bc56074b7ada3d0adcc2f1ab8a1b74cd8555aa1db07fbad9b01b02ed2df85e9ebcf5e984a5166efe4a056915cdc54028c84a4f04c416ba2ff63b7696e17a8cc8f8f3f861e87dcc45b505421b4b3bb51279a247c32012985424c0cdd7c529c5e160fe8d6e0e2bdb77d3d03256b114aec937404a3809b3516e944ac59d090cba29bb1eaafcb1063c8b9248e4910bea9ae5829b89902c3e6973569f62199ad34b3a915c49440a4afb2ea92c72ccfdb5c48e5acbcf0d602d2c582e77c3869c7115a5746deac0641fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dfea5664ffb646b3aa13fdd1d2d9fcf530d00000000000000b504bc81d3facecfe73fc4498ea33d355e99cd02ba7793c92e8f92cfd5f221a3f3cab2c9a36874687f85498844921305e42142aa7998a2566db354af93aeae1df3a8ff1b6effc56ccd9bd44fa640d0429f30138908057875e692d6dc75844055a3c0a032f44c8f36998d8672266d07c87058e26e05fc72b70bc1dc912bdcdbd81a144d7709c901d212a7b273b51bf32b62f88131f2775a84a8f14b26c32084b0e52e0f15ce96519eec63b215e50470e2107a2170af7a0c3cc629409556badf1f248ba81e5d366616f37d72d00a3dd834e2f630e0fe08b581c283203e8b0c16e3311f5d170b36e3821b6b1a9ab5758fb0682ff622ba4a31bd59eabcbb3a9853d87fa3a71216f7ee96268cca7be9453b81b653ef4dfbe6c9da39062fa6f7160497df61d710a81b83d9da9f30a51d45f6202d8ffb0f7c644c8e44d39d13b7b9f80f1732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9ef9d7d5ad98038111d744317e063ff5a0c00000000000000cc2e4870926a41452eb805deaccd7a22ae646069108ffb831caf4f2360d4ab3792e6638161a16db99916ed92c7929ef448d5a0b53c485a246dbc922e0873d8bdf27534a6b30b040b1fc407253077fa91598e0e91365f25cb8e9f50ff4ab298b9e4c52395eec09fb82e75a51a3edf58e14e1b4d654e5ae5160f97e87af37a51cdedb373c3590494efa89411b7277c89cdbca1890d033ab6ccc30f46fe61fbd811515812dd89497340e5bddc8f5552183874240bedf479091531d13851608d0097345b70b0b5516bed87f9be5b2dbebc46a8d4e074fd27c26e274732dc46f4927981c711c50beef8d40c77eb094efdf0b86bdec86e864e5e5edc3095c99e8a1f9d6b262ecb30d3ce33fbb50e19613a2ec0a455417789a1e6b873f40c81df1a34d93894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8384ef676ba0023328299966bc2ff15520b000000000000004af3ada257b2ef74ea499aac7fbdecf8b628ad26490bae9d89d072d8a156fc26793a7d4fc4284e878590759e3489eeaadacd57b007ef3eae3af980ccd2cebd16b87587fe0f33b7e9d8653b9bf15387eb8ea11468a30c1b0d1709d0d6f820cdd4d719b053289fc97d7092b3c1f631198a8ee79917891739b038d81bb95e88f65014258ab8217c85aee90e616cfc81c88a2d2ed5210cca9b27dbcd43be5ebdeea734c7711af83acaba2a67cddbdf577b7e983f47fb265ea800bdc43190daeff20e6a52740c18b24d57cd8fd2e292a4503a2356e42acff3d2f9aadcb61e5a49d30c925cb0598b6ed4ef5e9a09224fc28a5b2305c212493ea13b1bdb385bf54da1768ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0efb0d721ad761ff2d78fe8b4b6d4496640a0000000000000056a61e2bc65469ec839e3eeefe04f4c208ab8af8782e00adf5e122a292aa80e336a90caf20a0365eadf2c7aa2622d3b44b698960ca49e2b41f55a3d8fbe434653a512aba7b1f445a0e7eb3f8468227b659beb833550300fd52153d3179759bd7cd2a0450682e82d9728f8cf1495fdb5da6516ba1ac804be4590aa6f6fc5ecb8468b966e00f7ab326321b48759c35bf89bca60079a719d18dfdd265b643d486610c9237f2d531026487f607d9b64adda82ed02a142d9d5f3880ec02d6b0852773f53a7125261db5af67b420aa658d9474b8263e258dbf05ee06db517df23b6ce27a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bb4cb086d9b81121d3100f53aa001c01b090000000000000081af108f3a450d312029bdc17d386270620f5cd43d213785f450c1d7705454f48f057d98c34ee83553a7e82ed82b984e61818140038edfd4514133365f086e724349059d4872ae3a3b9efa98b8d383e6f345b0bfbbe4638c42c0a97ab4f5bc6fb0bc8b8b61fef481a1734882f5a4369fcb819c43a0a56834b1ed242b38ff45ee2a5cd496f82b76d8fd68e8b4a97ff15dea38a0a65cbb798f6ac1046a3706a6653fa11287555514c70406983e8c7725739867eb190422f0e97f9729eedd936fa19368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc878fb0599ed8701e285a6d53163cc85d08000000000000000e60f9dc2b3a9c9e8cc5ce0155a28447ea341d1569f403d1fc158f5f51981a7dd1b0d004975a581086c0c2409915654be674440e999698ba63bf08f11a19939ff34b3830da236c04ed0449e4312a5bbee8fef4fc2c88c846edb2f27896b8922e8e4f23f73f914f7a705def374459630e324610f734d74cee35df692a08201c3e7ec2fcf4e75cc32504f818f8172177811e06e3750818d558064e3a85d66c1702d3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a67439d204b6517a6046d87f4c788e403b070000000000000028f166fc56de373361531f6389424a15c563f25f673fe9d4837b08b79db5b3e378695ff714450825bb830b14669d8a4a4ae1a6aa003e7e65c9d9891dc658cd84095dcc1f0c8bb7c195d511914a6355a924982f8ecafe790fe37f7375e53320cc301180d1da54a5a34c7dc676ba76bcc49caf1ff199f757479295469f679d0b3901d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec7b5e641e32d9d8226fc8b6238c021a7706000000000000006582573f74ef5e855680ad0ba8e0dc143704745b576e99c6cb10e336b25c90d85df6a2a512dd077da94d3bdcf5dc094a54dfdd95a59b6db20c34f372c44733aac5ef6f1ec439597bbee71617b5c8d437a4a46431953db1cb5577f6ee2a81109f0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17d653f04ec31bba3928f7f62b0ce5905b05000000000000007ae789f17d146a2cde1a33fedab9f35645a14116819e56c95254db49e445b31760fce869f9424129bc7e55be036abce5cc1d861e4be1757d2439d40da535c55e096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af77ef4af7601c0856584d29be3c683804000000000000008c444a32ed9c158a022f0bc7c710d2f406d64b7cabba038351de04316dc8f46dddef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e290499534fe1fd639dfd6af20d05c3c0f0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000008305b21be7482909a4c19706c15b625c10000000000000009f8699fafdd13ca41914f78b9fe7d3ae76f7f292b7ee8f74e040cbc0cb7110013ba792a258c733b872195fbd4771b8a05380bb840a7df5df3e621229fc46e731126e1629acceebc8100c227f1305d8c7ab8095b26a760eb9501d1e52ad447d30dd2b20b9e94716c0cead42a0d3062b84c3d592ff0a604e0313465b4e524173b9978caa52d43120f5e39494f81349d8d852833c2a414e3d5c7755ce3ff3192a8d2baebe4557e819947e8d781eff40a8dfbb1652bd1fa43c7aa1a9b9261a4c2446af5cf6b68a62e86f6448224456a9ac3b1b34f2ae2c96d1e1b8cd6bb8d05d6616bcc57b55367735efebcfe891b34eeb9e677d7076f11c229cdf48273dfd7ca513b69cefa25b7fe15711da9d493360b7cb0c68122cdacd848e618cb22781a40301eff42db9784325be123ca1596fb04dd50e0f3b8219ab0927c6ad4c385b6888cf324988251efe0159d814556f8df8f42314ca229fac69156b2e2cf6c46e6c5fae8030b1f3a16dc197d0de48f57b71cfb6343163b7596703dfe4af0ece12beed5aa2df1918906a18d8cbced6c83dafa34f8554ef4875b4871e010ff0a3648b5eb2b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07ca9e610716774d444475194ec1dd0d040f00000000000000ee452d4168b7088656eca5dca03277b299902fdd7a34d7a91b2e02b531d898a0a88ebe288badfd64af6e4b436c42d439a8a2703da29f4ae60ca170b13c163061d5c6964f3be3c4deafadd343b318e3d91dfd64eb7b63b4cde994b3f48b832d62e8e913941c6feea566c85720e2e6e0da32076a551c16d2078f48cff3e3b5a6dca2f984a2329114fbe0c79f0ffe4e37f9972180df33563b596dbf2c9cdee1d3f1640f23c701731fdfdcbd4e952619287c6f0670771d6609478960eb99dd6f5e8942ffd187792ba3a35951644efcb82e197913e8fa8144c07c48554585c1c7a8779629123d38fa507719c2a6b4eb780cbe77d939c202099706d5808f9b1b0dc732f5dd36f843c9795c340f8be05959a7120ae3a49bd2bd20a9695cfb489d6abc8e3f0ff39fa002ad22399585eda895b2ff91d9b442ce9a3193e819c7ff2d558ad39aee49c53afbd125bfb575c07e3f75911b1b693c36cb295f39d9dc5f78b48779c750708002c77a3bd4efefbc85ceea8f9103c84ba2cf8ef4c6882519682d4184153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1998cf904c4a0b6177e045f35c4462a4020e000000000000000e957e7fd5b389e02fcf4972b297aa23a26aac9311a5f4be92ff4c90c15257d56d101a0d02c6a4d5e0ce8214e05225add8e8e5e59262fcfe8731f9bcf6d327d5bfcfca04bb95948aa25dc810723b5ce677e8b530d547b316b3cffd44fe5de0e1676ef119bf7aa15aa16cc96051eb320f55ea7648fa2202ee7ac3987c3b9eb9aa7362406d0e745838462a6f4a1b540204c09e602575705b6ddd9914152175d4387c36fa6e02d2a52e70bca990b66cc5ff7fbc92fcbf7623b3598fc7de9a26b6ba5634a5b277b6791c151ee722f77d42785fa3a1cada2cf95e24db8d32b86a42858f42ae99c3a75db5be95058c5295babe98435bd4be69237b371aed2260947716e9040c28e12c217595d3265a6d7ab7d23955a3a137fd00eaa5387c761d984dc3fde055ff4e2372d133899fca6efd4468fe910eeef4cbe3e03a49f23d530eb0827f225d572ac2d59570ca26aa633f56563f52c294b0578e69720a3187017376c266100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817da402b262b5db79158d17481e47de01350d000000000000003de48c7c7f8185103a01a1bdc1920dfa01b5abc309ccb4a26f66bbf8d72cdac321645ad684b5e981f71a739a7cb3d8fccae49d080272d1c85d38141fef489dd5874a4dc97fb5482fe451237f486836200c74f6898585ed8dab1ffbe6a977c18ba321cbfc6372acb625bfa3ff4717f24bd13d1c095bc72d81abcb81491c89230dbc72381bf925f0928927bc1959bb79259a4f092a18b0e073bde02004499d16ca32d5eecd8d1138a77cee256799192ed02895f47b0a9eb014444ac6f1046d2bac395561a2330cfe14fd9e1c160146695d5339bdd2064a803c6997db8cfef9276bbfcfbf98993df6674f348cb587f0bb2109553f0c18cd46b3ea0cc9ae5c454df0198f7f7883d6d42782f281b3e97fb7216da2f0e3dfc9dfcc39ca59a8993ddac2e6a4e39d04e518cf39411faaa33bdd97a22c5ecbc38d99f243db446e215edb739176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff93e74384883b44c01eb0bb9170cf016510c0000000000000033fb9e4780b13bfa6abfc2c0e5af22ddd6f3b71544df02c3898c63af450ef7cc7b6845ed6fe98e15016c79acfa8d0466dd10fd27added027543f87b9047ed9a720382179921560de31621923365e12cb8ee151b2429ed29a96ab864bf30df0036b733af27d02e60caf53ae8016a6b93821480bac2773a8002b304c33ba887afd1c9d0019f645d63d0439de5876663b66daa98dcc6cdac0b7a3353fba6b558d4c48b70d52eb56c85f6953adef7e1260e2cbdebf5532ee512932951ab99565b1d0474e5c4c47bbee822db48a52c39e563a4337915089b7102c8e0b2a09a50045b779296730ff72cd89ece64e11b9f67e4d85a78a290429686a44c98931271f04cde33ed1c50cd41e3aa45ec6ab527efd05f3adc812d77b98b3f40c0a71aa12a3fa48226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a891827716049a00000e1d312b59156e6f0b00000000000000e7a73421226df2f449eb5773993d1366c38e1c12c9743ba8e4eaf851a80a1fdc122b80e8a8ea35c60fb92c619086a507af188a884ddb3f45136dbf250c66fc8a002d97ed236f0adad1a75f4437e33e447ae9d9992c1a7c0507fb0dbad7eb2f2677955a090416639ad00a7f5c284a69f0a3acb0c44fd094b8829023d2578d5f7f67cb0f19d32118b0cae6ff1ebf1efc29b6fac58e63dd0f8dff134dfcd5f5201e720846e7a04e07fcb625ad34297fee9fcb2c94b259be9b4375528ab2dd1ea8502580d2c210eb1e89238bf63b2de82b7f58f3bd36ec9a097783eb7d4a1d6c40b4f87f3fc0c6df3301a9979c46ce9249c5e58497d7bf54fa73e381cf4b6795e24f02b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ef05e5d4bdd47f53cc4550a1f4dcebc2d0a00000000000000d87526661631d2aae80ee62e9aa06bae1c54c953cab8a4a21cbdbf50254a1b022da47148cc0ed8790e1d60c15b4b051b3bb36c7827276e1b35f419e48cd2a68ea225ffb61d255ddc0ad5a48139bbe7f9012b81e2c60dde4fd0d8fe6b179ad39b572aeb208a6aee25a05b63c3dfe816aef3ea856fc41a523c9405848e2a8d09887d7d1a6bae564d2b6ec765ef22c458753a233e31b63df4c7b1f27e4c32b5af8e0ef2de13e0d5ec95bd3a5c1d4bfd1130af0eae936f5bca8032c46cbfd3a19f401ba60f78861545c39b00c618a3ca058a59974ee1a1f511b76eaeb2ba50119397b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3ba09d752199835a6accdf35747669521b090000000000000087d66a61c989b4adb941338c1f98a587cbbbaa1bd198dce8fd9fdef81cc5c53b8cebe107e8ce5487c817a485eeb71000d66e78af91b34c95afd2907fcf47180095cfc9de55b9f2b10edb35000fdf9ac3a8a1037496b7c742ac3561ad90105976262679a2cee0380ac17509199c112c208f6cadc3f02ebdfcf60724a349268bd5c4035e3a7fcf7941f7b969e585e1a21c3b0baf18739176c1117fc02d07aac2633c8d329745c16aa7391cef54691100339c2cbc659519441cd0d3ff0d4dd1053175ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc2116486fffb6f133d3e2e23756881d230800000000000000284c6ccfbb66c1ebea114fcef8e3f92a7f2f17c4342ee2276d3f33dec1175314ee8fa2cb94a806c44092f1c3578b9b1138e79ef3a46c6db66039eb2e718cd883a4ec677932bd5d019b813c07f9d2d596e1aaec078bd870dd9d999eee23e6a72d22e21edc71d9972cea1d231e9797a9f4d48e4408fb15c102a69dd43640f2065ce9e2ba6852fbb76d1249ed82fafd8d058bdbbfa8b099c5944403912675d94158ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a68ac54612667e035feb5f3825fa5c886607000000000000009bbdbd862e2f97c06694c1e413f1b8212d79192e8f438513ad9ac9276f9860184694bc1126908814d47bc5c7df6b7aece42c440c224fc6fb077c0b49418956edb87262879c355febb9391b53f7ad7907cb777263ba04314842ebfd3ca75422258b9a7e2071367f037721121ffa230b3e5dd3ebb613c4368cf6b60e801932e116a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec3b658c75a7ef71417e92d10cb683272906000000000000008541022838d0c1e79250869dd0dc9011dd244d6632a2c74b04a6d3f20a800f84fe464abfcbbb02a1d9494f2072fc881636190805c05077cc4736116080e36bc01a36f7b870fec922ae3c04949b363bed605391f356bca18200d712dda6bc815e36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17074f8b63e56ea42396e3cf00b1d1f869050000000000000084514ccc5962e7019de405f6d438ffd8fa3b1a11078e79a66887035f07c574b2140096a24bb005345aff1bbab677b1dddb7953eae3a91849c8ce06846cda880b824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998a5ef7c5bd20a2a71d24f81387580662c0400000000000000d601cfc30bb5be7130011456c56dab7f3cc011c72cec94e617af7e0f698e00ca1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2aa74ee7132e8690c3131c611f2978a510300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000ad366866ce3d401c8192917242ccd94710000000000000007f8f33bca212ddfb19af25cac586780fd7981baa82eb246b3225bd3ffaab4e3d0c5cf7eff6f570f1349f315bb647ccd8820138cfe7f0eacdeb6acb41a63b220f6c34b5eafeb2197fe76d79d03671c3f1b944a498b5b068c9685f8303b47c05f4b4a7e3414fe4e89454f5f683eeb309c66495f946042fbfce1e32eaa83918de4e84d48d436599fb484c1208f4997b1c8a6c8128a9b79d461370493412cd40bd3b69be1234497b33caafe1cff4ffded6b25afd0c4b8c02f860141b3a2587d95e94fcada3e8a7b22d5ff10a538b5b2f93b4694b0ddaf85e048add2fc26a5ac9e8219295b9633c19c15c4ff81336d6a35867b413908aa0a85ba6e280debc116d7e5bc53b81f3be3255f459ba51ed5d4eeca14d40be094e7d3ecb162e2dadfaa94eef59d647fb68fae5619e29407eedc1371e44852def4d4dee88a4b1fc7ddca2fc3d898a2613ff529fe2940901c475fce6d01863580e9d5883457ff60f392f0e54aa6a5f06cfc6e6690f1ebd71d3bdbcb3281f86483dc5f2cf16fa9bac6a3b811838caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa280bee75794110c5037f6bd36832a0d3a0f0000000000000098f7e22f1782a183766021f4f69c8d214139983e18b71e37466ca4dc465889029068de93cf853c6cae2b1ca4c98e414c4cef35d04b19ddfe4f18f9f474a3ece8874906eb412fba4519e37fd12c8cf9ab47a70e49398f25034819e5fde67d1bb875d9fcf8ee2a1939546177cad3ebfaabe524056a3829acf0ef767c55c8241e8f55e6606c70e06571a6472f78b388288c4530a88ad871c7279b2dd88a8b23e89e081238d03f816cfe6e1ac71bea25ff57037ba059eb7794ae9333f66330a4e5aada9f2d95e6ec98d6f26cc3d272ff098cfb21c5dbf34731a1bbbc6dbca7d48b707a728b7bc75edc4caa93e2ad4788d2e1b282009901a3b0ff058e61dced67b9e1b9410a09759aee64519f4546ebf93b6734fc9e4a94bdb779056efe8e84f55ea3dd393f98f07fe76107e8d5c06144d32ada8069c4b998a35b8457e945c21874bcfd7eb6ec7d49174e2ffc667c7bfc3fd528080effba8e3ebb36ea891e936dadd6baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5287fc80b0b486f4e6160bf05424d9db04a0e00000000000000e65b0dfc07c8cfbd0ab385330493367a20a2784d1a46ecc6be527e8cc34f774325645ffd4dbc3d0c1fdb65e99f05233ef90a19de933810ac43c7e5074980630b9ecc50ea3dd243393073f6eda7c8172421ed728e4f7c1aac7119d42aabdd740e8dd71215c069e19267875e24b83060e7b4b1e4ef759a5bd6b906722fe644059e04761bc6d4ea350f090a5d0fcfcaba31010b5e9126f0fba97a917690553e7a6ce98f7711894e05e245f6b46959a3ed5e68c0819278b9ceefd3f848c58f2baaaba621533474f3d87291114b0e56cee6868df67912afdf0c7b098c55a7ddf01043c42111a0164ac1ae8998dc560b3ece7de51c18ff45c5feb47664c359eef20f806ae22cabedaa7b264a6703d8669c2aac014076bf890af2242042204835aa605a1df321c66c4e977b6731772b6b6be25893602e57944cc8cea189a01ea303a2723441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68da88f66b65bd6f1f53d3dd50810c915b0d000000000000002dae36c531ae7e07dd9c8f2a99376f17efcb155defa372e7712019053a476e7f095501f430a992d2284ccbe2753967d099d363ad31f2402e52d1cf9efc050e4ae60347e35a3b8ee0ea9a17a7c196b878b167e11e34fa43efb5095a18d1cb223c3c40bae821f680b353aa47e4e1133c11c707b8339f491bbf1233ff3452369940a7128252fd0ddd151d812d6bbb5fc32b6f9edc1be6425481594fda9802f28b3849832d5b17936687815975846e6c4bad06cca14cdea9f8f9113a5e866565b72a808abf41e292a5ab52d95bac510d849f13b386401da4df02c121104e70afd795130ba4dafc6a3cf634fd0574277437c48fbe1c433cc37811d515daabc0414df37f5876374bbe82832362ed376d349f8772592e5733b9a867a01151b5ed05f36bdf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999ad282020d69eb25a2ecf1245d5feac280c0000000000000072d61ecb496c1e353cbdb7cb3a6665d6a6e793704feac7cc5cc69c2549f9791badcd4febbe5c4588e6076d13cf82a9a9b34141a02556b8244bed2063f2f834328e64c8c5d80b067aece1468ef53888f2d653602ddef620d456ad41c206c91886ee1599bc941990b22976b3d334f7bd16b21f7e3b514c761ebb2e7f18463f52decf1b86b88551ce67dae74d3242277e1402bfc3c6277e22a636b14fe89ed23c70947c3aeb44df2dd72aa7a56a0ad73ca7db82209887237340b99f0a485411beafe25ff711653b25d94ebadbb85f0a87aa7047fa0633d046261a69b835df5849322763e866fea32aa1446f6a42500128f1b6e45d6d16bf951aad90a45108d0a442cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24994ec8621c29bb927c4c5fe70550ebd640b00000000000000d05e5529e553181df31dc2924fb05ae4b61354c66225d902985b13144517ad5962d1888d67b3bf8b053e5587a60319db089df95fc2174c34d85d4d59716179005a784fdd33272bc9e713fe2292411b8eaac9f9ce869002ea46a782fd6effdad5ab662b525871ba61131b72fe8615d21199d6cb64082f4e639850cce03e3c161924293427d66f338cd10b72130205879fbf8b9d0c05cffd1b523448cbe658f2fcba0200989d569bd549c2d86213ae2fb91d71b5be08da3853010bb70dae319c4d645efa534c015cead3c9e19fed274952307ff09baa7f93bf45e6e5d423b5fca5ae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c908a8a3636ab8e63669d713174b9905b0a00000000000000304d2de03d5e31c75dd7e894bb5a9f80678106e249f61766b0cd39a39e1e9b3a976cd4735a64b4e9089992ae21f1ed83934b096ef9d8b7e16bcc75a525e5bc82ef1a9fe5d6e1aea407c0834f4d45610169283497ec237e86188f8aec775b5755574626b4e94d1df7521e7d3971d9eab8c0399d28404936da69b3c32fc6fba06b205bbb82287b66a9ab9f0d3622df00432e523ad5757bea4ddb8bc8b8ab973080ae3db3ff4176793736c48a5338960a86c8fa9937e1e83caa55e134b4908f9f1919a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0d069d518454ed24ccc1f590ff2e1461709000000000000006e2917eb1bae6cbefc9c8dba45d9dc4b7b76e3a935a1841dd8fc7740970d28dbd7d2e7be26f56e11359d7ba0e9382325088626a924b3ac92fb4e8c72aab6589118675fe488efaa36307f9b3e48a05f905832d429d7ea797052ba85cc4d9a2a5faa27af613da84e660666058ea81f7190571fa777684ef98e83f889183e1d89eeb27226b884c301531455f1277b56a2f7bbe387988e9fccc71e399cda0e7bcbb69f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960deb3fcc5605da882dcdd9e00f1f81030e0800000000000000de9595b2324dd484de2127e2b46ef9ffc7827f936d491866f1e2dfaf24fb4cda4937958ab457b1e88f37e37091e62bf58ced0293b8db8aba8746f01ab2a8d79ae0444eb9f837a6a94d573b47fe42dd9d543d4024a6fa400725f57bdae9f5ae22aad79c42122eebf42e8d5a3b9da986809cea6e6e29ed1c7f4ec6bfa385583d80206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22205ead412f8ac84388483142cbe8ea64207000000000000006fcda376705ecbfd70e07aa3d715ef868afc88f2c05c16a00771126bb08f5d5a9a7a2e8a2dcdae8657fab59740488ba9cb11e7b6dc3a4f88f98256be9d2b2e5cc04fa7383d49daa8cb4ac09dec4e139a2e2cff5018cf7b101de277f81edccc202f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e42fa640b6e10f6bdb538940972f377406000000000000001e90531ce49eaae71dbbd0bfdb8794fb5878b3d6b354257776b584b12af1429af8c9a8f7f03b898cd42061b8687d3ab0f5b1db283a0432639fd504e65a9b1bf8a387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c3144f9211a6b7501acd93a60bf8965270500000000000000a5058a45aa6a40765d2d71d4a784c57edfcdaa104be774106d62d9e0f8b58524bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c29a8214e72f73f507ae0c7702f7fa55c04000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000cb2843600ac97616d81c096237e8e91a100000000000000002f4bac48f6541accece3dcec4fb7d37d0134b7354c5d91af065d228de24eff6cb2199f56e9b3465b4dacf4caf6ccdaedb27d1b1409ee76353c82b174517fe7f48384d3fc1269e1c0495d5750a310629e662694bc300c80c9f82e7ad6ca6b2fcf33bd0fd697ffa70462aae49fe9e397f2e4bcece9660f29971349ab7305a78938e603f15a9f08d40ca5252d11c34755d03da9e21b4eaf9f4405f47df4db35b4edf0a02b9a00fd349de801b025497abe8fee6454c59f56ccd0c76ab3826cefe254c135ef7e1bd8f7c992d2bd039317b475683b52470ea6e01760b9c4cefbb5ea92f4cede5f3beaec2d539fb241a64fc96a44dda30cdadb63cb3c66b4d8d0d3f9bb84174ee1701ae35b1778a6e84dca07509584943dd14beafe5a172fbfeca9ea2374b4810e66cca1dc7e97af322d3a3eaf8581cdee288a3fe6531b184d506bdbd6e5fa403e190e1df34a0a5b389bf6285984cfde663525d6e987735e3ab86da87896f245286f80216346a16ad161330e2682ec8f8c0eea0d9ff0577095faaeb027b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2e26cff5cec800d70362e3c0e7f76fc770f000000000000002ab477bf4caaed5ca45e0f0079f53b3174f37faae9738e755d72b7667099f3ae36d4dbf7c82f8db9ac993de62f7a22b6f194d0e5a7238eee33e708a401ac5174a972aeea0fb1e757fe9c96fc8a6db427391325215b10c7cf950b4c4f93bf82ba6288aa329b52ccfde2c465b678135047d21cea1979170f24a35b3f4462902205fe37d0ffa888a9a29d3164973ec7694dda061fb0959c490f41636192185f20fe6be675ced4ae56c3969667f3900e4fe1ec21814b0dc4d5d6edc8ed0f176aa5daccf78c9952e6a7f707733be3aebd92054f4c48529aa16e7eb993c6cb20b2ed367cf47c565884cd0660d471fd92ec8db9646f7809dc943a76adf60038eb075c6725c995560ae4351f96d4a5879fc505bb0d041796b2d455b605d2e74c0f262e1e7f74c95113ca0fa000987e137f14ce30a0c2953bf4e178d4b4f9daa382859ead8d81e989d3798d87d1c75afc7dbde6121a89e62aecf7d116755438ccbf8d9b453ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52895d9f64b2fb2f84b0b8d091ffe09db2e0e000000000000000d8131312ae017a1c432629c02aa91045fecc5ce7e86c40e93c3b91e1f221dd3c2150b3f21604997412173752efcf97bdf5b169ead24424550526ef6959ed5e39e8a404878146d9b73b7788424127c6a9778b006c8b2e94e1db720a18d3a32be53c0514aa11ea85372c562e7bd36bb8e8e99344a73d9f5a530bc89c27f406b60b494c5459ef23bc7cffa7d9ecc9641c9e45b70adb57bcdb093e2f337508136f60c537cddad22bb3cff9b6661dec72e11ced5b0f4a7033104d17f225124ff888c1e711e65e017f8fda1bfeb1fddaf3b1b7ad759525f11a01614eeda75bedc83a479f02a651e60fdc9d61249a91fbcf0587d95ad1ebb9f52bd9107c27d6378ccaa8ed318cf3bcb62d0e14c078e3453413a9f750769979bcac7715845323eedaec377c959128079655deff7cf180ae1f504b99b61358985e64b6e12c658654dec1a37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6839c04c551d5dfa3d4f41a63d56ddf00d0d0000000000000087fd893142825f1bdc261122b68a450c050771e6c090f6efb74134640ba34f13dcd2e49d0de37ce4d1e2611224556ee4fb67f1cf57f281fe7ff21005b146290961f1fba835bd4a44cc721bddf1dddaee59f333065adc4a6515e8c23cba5e4f892bcdd5fbcd1762304bb3ee03690e0926aefe7d6766ba9a49d88022fc319e5f8b0418b564fc3d8eb168542efe7aa009961793558fddd22af8c866775f0615a93c7c7383a9e58e236c81bfbb952d9940ed74b0cfa928349b25cad8ebc1848fd0b698904557e0431399e5fcc375fe777f7c2bf6294625fae2cc1e4363e24b375a920351bec0617c8cce710c0457576987f3a0479e5e67af8565fb6e51902bcf2efc9e33cffe5033e5efdc0d9f1b8352f5eb0f531aedeac1b1170b3fd970a3c7ef42c3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899994b6c863c54911962db86ac6cc8ef251d0c00000000000000927e3dc9594e575147590c47b656bf3141dc37cb0d62ffa483d22e357d899b0b8ed91a4e2977b46b56a8fd9a2e8b80748d85f3a06e721a715126da6e5a6f2fa450778b2f98c1db4350cfed0adf324476ec371b6a4e506e6a2e7ecf19cf19af98042d5db12e36327dfb22d64f5e7e370b46d59572d39777e07b85f69a91c2cab756135424dc047d9d5aecaddafb6edf4987b8c1c3ccb622b4e4215db3a0a2ed9df0aaf7a0de2463d642d8ecdb2e253cd8065ca151dc9a558faae90c9fb4ef7fd8c6f2cd46cd56deef711404bd9370506ed2be66b672f78cb41ef41c42d68450396ff9aa9d09a2ba8e60febece300d6bff4b55496b344b448e59a8268bae45f4a3d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249d8384b20fc6e812f0782b4097be4c86c0b0000000000000062ffa6b02e41d56c4a96b9b810a883d67a2aa8ac61beb94b46bdb86cffd0b12c522052aac703ec5e0bd5932090e2cd41cf9c186fa7b90ee5ab89be80bb3393fbee515809f20e9bfdb9c9afdb841c8e67f138493b1f62a7868a0f14c0018740619ebdb69d0a38638da36f69ac915c46a684254884377dae6c60c26b7205e582be9512de05ba945271eaa5cbea82088cd605b1aa9a02f4c6549d18110ba5a75618ee22e11beb45607c9298b602d7b78dbcb1644d7d177e40f3062b39e198442f5f0d4e2509352cddd6f8ace2572f5fbf579cf3224616417c751b38fafa117a08685786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c61e4125e5a7e2838feab0013a7df11740a000000000000005fb4e4801a40700af0311cc4772eba2ffa8344aeb751b4d141ad365a8ac49b49a06af3292a8f5fd773b0cf53713163ce4207209ac27f3929605bf190c60e9c78e36adbeba3fe760a946c59040d37060450ef5d26ef68d4265ea53e1e1a42e498be7ea193aa0cc9c5aa6d803d40a644522f584ec3266981cc8021e9d6388d975ad0f4d4d2190ad58617ef95da4e0a8267c774370cc1909ae619e8c2b0ce56be3601c919531dc451cf8b8511623de9b26b0e3119a47f5bbfa6dfb2cdaa7cfe82a76be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c04b152172315ab7771a47aa29abbf655b0900000000000000bfa93e738fc09858e3434bef54e990f8563e7d52434d7b8faf4681d75a951a078fc83439252ecda69f7df1d7d1152d5597cf21fced0ba59d2e693d1375e0a26637215c8a733ff3d2d0dc019d5fe36fed9bc83f323d197b2e7fb511b7fa7110eb9a6fcd595029080589811911052f532b3b5673d11e5a36e59fd23ce9e55422240b383ae99046d2e647e8afa77ba59142d6f2b464a0cdd4b0c33f62bcab57b937611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d8d437b64506307149f83fe0fcc6a796508000000000000001384fae0065dddc3726abf8ae9974ef615dbf92cd6a00e489d33ff3fe9d6acf615125d9bd597878ab4df5e7fea6edd621bd3bf783c64e957a0125a2c9d2ce875df108a2046a6ef74daa2bff42fc89dbbf05453671f5f6e27905e3c89a4401d123194b9399026400cb6a0bea8ffa3539b39218de9d262b26673fd461db907479411f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2220a93434bd97fe31537117e2c1677523a0700000000000000da165eb33e7b2dda86f68c2fa6471a936e2d914af206ddc2f6114703b8def337421944d25ce22450af1402432b74111607d5424f4994601f37b5ee5bc45e9ca621b43b5374693d91a8dcb1b2f1f2bf51861bf0e4ff3034139d621f6bf609a41ea022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5563e555bdb88e231a4a38739b63dab360600000000000000e2ca7d2e4ed6f7c998633e8dd7f53db975b0210038350301dc12151af3c154afbd8335a75adc92a49aa09647f3fc6c98c668779b33cbc1784782920c7896af85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64ccb5bcb35f13ea9541e2f9668242acb0d0500000000000000dd5e05576993dc35cea729c751f978d7f32a87dc12a51f3ebed7d6bab91d755913d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c7480a0502c190327a16b67329226541f0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000b58f5226e596ad492e9cdd2727dae76b10000000000000000671c6e6e3b4db694ac35d6efc8848082f243d92d43f2e2576bfeff86aa9c674f5925c1a434a538a6acf44b95129f278fe4462a5165b1a86a03fc2a5d7e6044ec87c8e576f151017832c1e782a09b4a8376c13972e23a045a4f2c7d5e42ecaef86a212262e9bbf442fdcd30ace7dec0e0eea5876336d86e5f4cef47c8dcbb086b04430d9b15ad0a6d020f252c5c5d9a76ce1fd9456d45fb416ff0cb6626296b9401e2aa4cb6bf37bd5bc2c6b204d90a2b0f35159f97067fc362bde92188d0e4cee3f370e41342d271614df1c31dea15e37fcc5984980f104fe1105344ac0ab639dc38b8bc81799da1b8c6c5476d0dd1febd1e2cd6d08496660eb4de26ee125b8087022a76be898c1d72236d03ff68d15c86431d9e72c882154db58f42344bf3b3d2cc9bbbd7a875598651bca39eb9502eab564084d4273a40e944ac856ac03d3088b2ef83b38ac0f2f3d9745364689121610b97c1125a24a840d74f571636ad50a78260a94321a7634402c90d612aa8795a816b09fc6f4f1399a48d0841409d74de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa27a341665271e7d240b7ec7082e4f40600f00000000000000ff62b9e0fa129b90b6643622c2ca4e04a5518298da98a0881fd4bbb786d71d5fb85af0ad66fe7169184d8fcbdc169929e9971f47a895176e1d855b8869a43b5d515fb1c6ad00f0610ca1a3d17b3944386fc2d77f5a086900eeb63163e12c2b0385fab3461a1611b9c44785b77eafe314cb52647d0cd5ec41904bcb3cb26329430fcb033bc43cc951fcf2e2e800a90ab326088d028f0a6b00c13a6167a6b0070c41b0836d5b2f8f078ae23bd8bd61ae0f3badb1bb32d64ba9228fe0b29405a5b0176450efc57b2be7bcbdf1540fd99427e9a19aee6d3e926bd3db23e7c1cb8631e3878a6f3200411898bff5fd33677c8b5556c15840b893f2fc26d1ec7790407f6b50dc710ddda46588d763646db5056e380284a45364209cd230355d3e07589333a0d932faf5ded0db75d68c9d1111bc1a2c6fa024d74ed9aef1d86daa8f989fde37d3435b64b96a5bbbf1084db264212eb0d3b770d8cf4c23dbe91e87f99fe7896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528572e6b12352ebf556bf89044ea2346390e00000000000000e633cbbb63357307de8f30f8346ded3f56e855f09fd6c8362d27511ac3330fce0f62eb12c11e82719df2409550d449d32427718d2ceeac2fdd40304b629b9e350ea22424e3d385b2fad0f5cd23e8e24d67d81dd88dda3f179a8a00fa20010b9b5e7e927c06f0a16d4ddfea423a24e74f445c9bf04ba90cb3b4223fdf26b672696f6920e8623456f10712195ed71426457a33d021ebbcef3430fe483250c9cf233c05ef6b4f1e43ea14905e689df117675323c2d78ea396089a4ae7d05ed2db9bd80ab03f2de56d4960a9217ae3f86586526c42ea0a740176b27b21851f8738e1219ea324eb5b645c81a8e1b527f8dc89572114ccd6e1d6658aeb3152bf01b0aa8f8c2ec748924f2f96f13692fffb38c0222a8b4002bc7b4ff78417a0e2ccd5d0d8075e2001d3ea66d0d52092ece7b63203d68906a2688947ee75fb6264b59c961c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6835fa112a8984d83cc9641333754736210d0000000000000085b6efa3224f7e7f56045397bb398550e69e3f22115b6a47c3850d012314af5bbf6a404404124e12d8d7f7c0f7865a99b2b84c506079c01bc7c8f53e755550c624d224450461d3356d22249534a7850c43ecb2df34e2f3defaddf7261209482dec6a56c1157814272d2f642464cff89ffa526f25711d4992bdad280174dfed9cac1364275325bb61e8c2cd8f07e8b0f1c239fb86272980f52ebee4a26ad12ff96428f09f489fda619fb84eba79527b6122635038fc0bbb98f287804a4824ac0c0a350f809079734806ba3ac3759ebd620c07e241889168d8c8a91cf1bf2e44770e47719e0a9c71a52c4c8beb61cc32aea4dc64b79043aea4a394c952b01deac3d3210288362bd4660d268c3898cf9d0baaca3c9ed3ccb9ab47313cc00d068eb2833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999d0c2f751d8743d4f152a2441be12073a0c00000000000000a3aa2227ef432ec522b7d0a16d910d3a66525428fedc6c891e5d9fecd6da6c6ecf1c06077e4358c0c0f755d76bb438a289162d7feb34fdee7e203227b2422bcdff8a9b87df5a1314f9d3eae7459ebfede2bc2d0f7babf488a0765b2b5930a8107197db00ae2f40c6c29728346e956218a30ec86daa5fdcc91a5bd794bcac136ec9b6dd1f8bf0259c4948fbf587e4a6efa3d988efab6289912ce59bbf0c3b79424779189dc7547c6ed0359a265fd6b18b565e77e4b750792760386cfcbc926209d918202812bc27fcdb9fecb49bdbd0f85d8396dbbfa337199aece8d18c8c981e1ed715cca92cc3e02def4c2e3cf4c01f13ea58010bbd4912e7d3d9898cf8af38f20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249d5920039746bc01ff91d9d75c08a853c0b0000000000000061cd8ff333fa8e7d8fefddb39e6328312763b80b61ea9f85b6c3f077a372b1659d4516805dbcfc4767466d9150f8a4613bcd07d6cd11b1b40ea90bc82e8123eeddbcf45c875770bd023f47fdb2435b58a7321c53088ec35497aa68c96593460ec63c73188a48160a8855ef13be3710bb267ee36f5c9ba6065d62867357d89801c5e23b1306f172a9d6c7e56cc1792c5222810ef853c797e19c4a075d0381e7672c2d8d729c5b66b19f8f8f21023e8a6a934120d653974649c6a144ca5920f59dc71b35b820de8641c74c88f7b50d8dce8a367a3aa52d474b016f8f473cc8b1f5e3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c74adb1121cd8e84fed9b7f570510ff3f0a0000000000000053090664c342bda67643f9fa58e367ebb44ac96e1bfb6508d3d664651949b8774247e2320bf4ea3609fa4dd082b63f34752fa62137d1924af8d5402b545008593c69c1ba34d0a30e17df5f54b2e0e513565109fb1fef221277933223010b0b427c73f32ff5498ce3be2a25a509f30f09987320627fa7a4b7d870ed30e26f16deaeda40d620a3ae142dcc7494557b4d30ce6c43cd87ddd81ac80a0fd2d201fb08c35f50f0369f776901db79cde283fc14f6d5558a9801a70217128543fb8f0f4dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0e3eef069bb1f4049fcbd3234163d612f09000000000000006a4cf590e69e5885da8b9854dcd43bda012fda5e5624975f89a0ba3b4e7cf18aafc0acfe9a7e3bdedc51461342112c3a0d1c1a92042816316cc02f81e49f0f5e1b3104b7bb3c0c51319a1cdd97f1c74fa83149fb8c4ca7bdb4ccc66e0ddf6fefec5e4f56b73dac5950dfd4f8de93bc4ee3685608cd921b8b26521ef95fc0e1a753522af773ca5405bf8e76efddb9c21320b19c70f1ef37d122023bc3e7d8e20842cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960db6eea51a9a04b557a8f87611a6ebf01a08000000000000003aff9483f1fbc97fcf2f3a3e039d14f90907018d014fd17b4a69ae19f897faaa835ff8a04ea0936bb218bcf22ab10f108c7f3e2e4d944f9b87300153c6e4cb78ea06562e04d8edd1f74a316edbdf4a962319fcb30c7da5a223a4e0cc2cb6e29347f08793396be6575a3d34bbe34cf18fd12ec2bed39611afb388aaaad779911324c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2229c2205566ef59c06ffe2dd3cb105c73d07000000000000003017d86da6b7f3fe02764ea757f36e488cba872a501b55ca8b25cfdc01217657bbd2d3d79674a3c433d4cc53d177da5874eac48fedb6f7c0f093117b66db408d6762ab211c68c06cab9694926ccd52e66c5ef2dd69382b59ff6170fdffff31943ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59768bc21df3445288d60dd039eef491e06000000000000000d95243c9fb93ff3cd7e3304ee84b6cbaff3789de553eb6ccf56fad2c8411a317c6e9fa6837a935c027811fc9d5b07ea4b46d1bfa7153325b2c59832f6cbb8b770bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c87dc4704026e173845227d019a73866205000000000000007ce12838ca2b8383b6a8dc3a446e484a02746a09ad76615f54c2b7ff663b6067baa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c72faca3dbe730c14e49a8e4a54765d4e0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000c908d512e02cfd738b0dba63cbe9e54310000000000000000c148caff5af7b607f8c47a57ea21a62b0b4bd001bb1f911337413c43f3986b17575d7b62d8dff5b3eaccbbb7383565c8e688b2f7c2b47fcc5def3cc93d9933e0bc7c6eeb589b3aa09d75161cdf138077dbde524d129641ee55bb02f3e57183dae20e21536714a57cfbde795a3c02f8d68d40df1d8aeeefa798cbfa10689f0422b630ba2501b260e0d26fec15f7bbd199b785562448ff9e71b40bdf074b7ea9f338d003a29f8b64aab5c928ab78ee92372fcfbd9d2fbe21f0cbde352d8a84ede1a639008be4d778845e52f28330435e7b1b59832987dd141a212ec24b250469f79d34084659317f39c6830761feadd8b7a19f94a95d0988c6179b205763881976df7692d4aed112f9f2a8342d531d93ccc386996181f97976ce45d8943a56842e12e26d23856b2c3fa1ac2c5960eeeebc52fbd7fd61e1a55e4126052505ed09506d9262239f067e6b73275f6b7932350b1e936d7469dbfe7d92fe479e99360d4d1d55e63c3300242173727887dda9eca516a2cce2802ee27ecbd2749c9703796611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07160ab5270ddad722ff2d750e8aa61b230f00000000000000f7902397438ec447ba2b15e7d1ce846d97dd1da5cc84545a82e6582c68fd8da88cf6b30c32914aab548b7e338439ea1dac33035660abad1b95589e6e72507969b4b3edb6bca122cbbe2fa9006756c09bd23d71d1347d8a6f5f32a7fc24435458d2742545b97cad49cb302f5a3f32ab25e3cc102685e27b25a3522550215b946188ee7e8c1dfca48a358ce74f5277fba5a4443870cf68c0db4fc8e2b82ba52972e9229bb4d14dafd6a8f82db4fe6fb3aedf1e5a3fa8709e3daff251d16e3ffd6dec78c2e325adbf54bf7d4350dfc1d03666647668a4e89a5b4a95b2d000a6070e40689d59542f99145ea7aee708b1ebda4c7449f359b5e2fd37544251c124486c8c700897bd5dfd1abd4f5c65b68d1b1876c08f6927463f56e57dc62ff6efedd06430727778a11465d107964ce250b65fc50d1fbb42f6b997d5a606d537dd7b8008885a51c33ab20d75495fe9a7a341206f8ccaaa907142868513fe3eb17e68f46f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19c95d632abab8f041ba7ab64244ecf1610e000000000000007325f4c8c80b1f9d158b5c74ec48d012db45fae9344434f281bde4553535791024e3e07d38edded3edca2d81811231c2d830347d52f82039eec23e11db0e04bc368fb5df0848110f1cea762d885968e24a4649e6425b58df61ea33f4a61a7a0abb85a84ab952274776599fe4256f6a32867dcfd2e625567907dead3b81412b65adb08ead80b6583fa4484f2a091a4977ed5ea8786db16b53a889f64e86cbe08c3faa60d5d257a9de2e89a64a5536522fdffa77825cbbef61f662b508fa747079d0e384302b5beb8e1a138b75286a20b1143f17f7a624270cd4375d02220d029a7209940062a511150b628a8de4119e7cf17a301eb244d33b04a908d692b38a35e1886a9354b8c49463a7eb9494f1a17cd8bba086fd1d45b6c33a9991c0ed06745c0c0d054c1df861340cc3a2389e1ec841abd2fb6c0509e9dcb738419b5aa570570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d0f8a9261d426616cf01ed95021396a620d000000000000003e66ed2ed6707f160c21a9ae5f0f88c71fbbae9ffa7534e2e092b2ca4de468c719401e1cea10eed85b924e71e142e34d6641dd07012ee8ce440dcd9937020445cc8890a242f2cdbf8515c3ea3f65aa817cc038135b0d5e7d1da77009cdff5e8288924d4b9ba0bcd53ca64dfcf69503e995feaf0e2e48aa5196a6d294d78c2d0689e4e696d0ab31a6b9a98bb3c97a5ee0a86d7619eb8f877653a68a6171697c89425a9cb409ea7300487bfe19e1519d135be1d257792bb3ba967f31128e7de254cf6976976b4f0023cab53143beae4a1465c60c775a8de0547b140ca2719c6269885019d88a2bf8122672f170e78a3413851988cfe0ce12d24f98f9fb199b53914d2e5cfd4fe22b3f742a9e2b48a1288a9661a7ea579d3f61c2c7fe15e4ee6baa7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9880baa13554fba491bcdee0d2e3960210c00000000000000a1200aea71fac0212a4ae1e9b751050b3837d50bdafb2de0b32fd955a31e71dead1db6fc4eef27335d703d54de0e25fccac1f0f62160f690b835dd2d1a808157b67b24c21a960af7a88e05ee748ccad43201aaf4242c23f970e7cf9306e9a25ae43eb253707f16c2e9cd49be41c375e386c01561e23f2aec3e9796581ac80428cf46e30f05b5f042bd6c8f545f2ab37df3675444caaedcb7d1b140031c5c2e996aa9dbfd7bd19ce866301d3de0d3fd9a0a8b54837ff86288b923367121b0a4851ea681526e2e5cbc2a9e8fce1ede374e2e99f72a3e169024d6feff5677046ba1830203b82392e74ba5ae34c1615b67994ed5ea129f1f7393e9b41763ff62aacaaf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a807f4d22bdf25e338405e7b5a4e77f1150b00000000000000b3f8de3170400f794b2c9c8fb3816cad8edcf6af48da192abbfdd54f61c5aef82346701ad94d26799a38cb0f318933718efd18c30e10854a11028c57665ccfd0757ba68e8e96be21a7ce38daa72c028e51321630e4bbf38d241d5652c3f120715ec91f20a110f172aaa2a48e7ecf7902c561f8a1cb13db4a32073a8a1da443ce508f81de34f603ca5a4b26cd10bf9dcc65952147bb1220611f0bec1587ff1dedaa448d5eb78b6d0ad11b813e71ac794aec1a3ac3653c043babb35f222cfbfbdb24e5627396bb8c99c8cf2a0b7bd35d3d9f97e7a95d1a0520305c00676c12ba3385698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ebad78b027b1c423c4cd77733f64444410a00000000000000cb9c404d9558cead50083a779574bde3a89b69f23b3ab321366242a1652425f653fd63c69ceb10ddb0fbd6a06bcf763d2901ed78b8908caabbf1c02bf2ca0c74f692ac9646fd35bb8a932a72d668609ca7c87283cfb8879aba6e9bf588f6f115814010021e5b623b917805e14cb00f67ae433251339d04e0f5923a89daaa7823f57ed236de7c3b2926509d5504133ab05ede57e860603b7f9286134e92e5a5482708fca109093817616bf8ea1b4e2149dbdb0f7633db9493b3b749eae1e2b67afd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8d32034b73e90a389d293a6235f48c4e090000000000000065af865e93487d1c1f6aceb7f477784bebffc8b4da26813c66907d638c6ef4807e51fdac1307ebc084a85fcc474ea6e875a98488dac6b650690afb5ede75100d846aac849d0bc320dae2722890ef9f06d2176736a18659ea89b9ec9ae767937b397288e29dc39325616de9e11fecbf566c2c560cf2f8bde8c9f42160d07c7c66c1dd6e2be57067d41b6f4b52b6a7803b170d10d4600a42994628c69ea8cb29ab7f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcd8c2f811839db32b9fb41c639ee80f3408000000000000006ba2af0d7c2c75ee385f9b4f29b1611b11003bb834362ef86e938efd0a2393530cefb5a7f9472b773c35f440545211e6089f4d9e19d5b87d06ad1655e85a9a019bd587eac2b15b4b95ee1a70f0f2aad9d20a8d872b23b128a7e568b2f29521049daf1f9d41fe8575c3cdc00a687760f1d2af48ce0aa16440c5eaf063d9c1b2a93fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6c208e835fca8d150199a8572cd3735770700000000000000ac7f0be8c2b88cbe0bdd5a3625dbfece80453fc4d0702fa36ce08cc5e9f3a68e92b6c39b45423aef400616e75614161956678d0654b9cd4c0267a57a3a754733eeef29d9ef9599f23f4a2ba725dcdad92e889ba9ebfe12de3718496193d46de6f11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec29937d0c25b5ee2be361d3466d48d141060000000000000047864cbbe7466b65e4b5b876c41a345d22632a70fa604df1318ccfc1fa3274764b6e4e48f9e539e6675225d18adf6fd79d9d00f0af9af43ebca8c74966c05be6eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17ef8a0a4cedaab43ee23afa1cee41995b0500000000000000ca0556f4635fdca06a640b681a811869f1ae899e2ca0b881ef6a06fe46df515aef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979983376776900a8686e5f0c572042179c2f04000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000204cc26bc6d486183acab2688c6cf25d1000000000000000f097b27e0e074be147747fb7f9bf48dc2f0327f65c430241759edd83c081503865899b155bf8691f571482cf4f7ec5d078895dfb54343c74b10c3926a734b14cdcbfa0a955f3920e1b0a7c6cbf768ac433cece95f7e9f6daa024b0ac94ac765e3f4f9b376246148bd7717d697cc4646ce45c8eac464931428f7c1c88b032349e87709c6f8a5c5104285da7c1fb3c2bdd0b624b88ee0d0433ef2dde6314d0d6888aab2f23745561198d8f5a53ecadf5862d4b7719f4ea817f29aa2c47093c53a48030a578e21a974421f08d93c028dfab8e82d97c6459b2900c3ccdcc0796c73cee8b7c49a6f905933adaaff7fa71680da810d2a43b930e267cb7bfc944f9cda2e4bef3ad88eeff64d5b7da966da642a0a8b7c1cf452893f948604080dccf5b15158e94408a2ddbcda5e28d4bd54d61d292b4a03d73e4929f47a1dee29c09780ce8e2b56e7f1d3bc559f1c214e8727bb557b9bf38d79e740d3304d6c6f1878024513286371afc377355eeb40e89cfd169904276bf89494ab6aed648cecc1cecca23a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa258fc495687c6d8040c8e96043596024d0f00000000000000e5b667d5bcbf2174aa68d699d450827fe738667ae6cdd43b6072790d6608180325ce74753466083307d6d748b12524e65809b3703c57fb3578d99cda397b48652106cd2468866de5445998de75624238ab420c589eccde0edd36f9c661900ad8f9303d2e8f5cddf021e30ce7652f3887b23a7ad68d35e02cc8605f41a93d2368debff5783b0dd91728c33c341abd885dbd6015ccd2527844468c630f07563596c70d97e208fe9c5e8ad53b70d188fa92f7aa0ed0f9509f9c4189277d65b7120550279b00a0432a36e76124df292e57dd0333de80e5d10d921cfe94da0a09e3f21822a3a3f095a520911187be262ce8898feb0fa6e389ab9cb95c347e57e51eb0af529b0f12dcf4afbf4479045a56918bbd8d49d9cf0fd27315659d409b934d43b0cbaecaf5846f6642633611af603172b8fe9cf12e1cec099c14b040fe7d01e5c75d114657a47c46df2c444ea29f7b8711eecf5be28906835bdfc548ef019d5dcf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52863e5bc1400d6ff02f654ef02c70bb6650e0000000000000065772a8dc33de185d7de9325be751800e8d374e6b49db25c9a40947f0f1c2107e44f6d98e58a107706909b5f2b9fa91f3794ffbd5bbc3059b82eed299e1746c226dadc4a7ead157614edf60290481b0e0086cb826dac5ecc6494037198c8302eca28b254b30e945b93b6b7c67e3df215b223f87fc51f7800158690022e82ab358805948b2ca471d99cb6e1f2c00a9f44c706f949591d40a4041f029fc2390b0b16ef94dc766655ed9f8e69142cfff33998ad98710b16bff6f1e8dbdb96e83ef5aefa5b4c756f2d1428dae7b6eb0cd07a9106bc949a3005cea8c945f2f70454adeca2c4aa68da5659b4b3308698816e9924b5a2d4c0008a71767711824695be3edfe6cabd693e3966f3a512ee4e1b73220d0f036c8dbe91b01a5214e1bac5a47abd7b647d5256118f8b4e7ef1dbc31e6aab716c67022a61c4fd46d39e5bd09408fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6898ddde0e314c3c1eae3b1252a7079e6f0d000000000000006944c0f11208c256eb546b9de87ad2e5d2e9fec1d1d3d2517b99bd9566059be2a2b9255d9d694ea0364ea0318db96541efea484fa2bf7a8dd795786059d058f77166d57235965e45a58a40104bff2ffb7449988fe99d5400df8451ac54dd726037abcadb286e3e6044451b8c94e55eee473496414d42c7a753de9d36dc617279c772cf551369bd2cec90cb08903b2fdad7cc987c81e3d8b3a36e3ba08930fb026e962016c3933e1baf69b6fa5745ebb624a78398fd44fea69e204e3695b1c22aad67b069fff282d7272ab9ab3a7a43eaea32fdd2b7e74a22a33e55bbf57809749cf78e783d17039befb83c53bd00936684ca74ecb9daa986fac10ed0324b71a5119b48d90b7c9e8233a9883c7d918e438274db1f9835e5585d0daa056f940bcd7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999eb10615d6df66507bab50c00fb108e320c000000000000006a7afb53a5076a8247b40b9df827d271a2dd9e4004045d38e3c5f5c0a953779f4bf136d27066d3a01ff0c405844c307f118b06b823f98ec224acb8f6994c7a6ab1ab1b3a1f73ab949d6e7ad90a9049c29d2cf1d83058d7fc53327eb6149432a1f07db65982698e8e67890815961da747264fed1838bf08b6056d55f9bd039bf45193f17e8f0cdf48922c4bde5b038396a3e4ca62f72ba257cec6226405242f12cdba0497cfe3177383fb46c1716f9c866f92cfe0bc22ba145b68f9910d8b7b0aef6f1ccc4a30bf39d965bbcdb33d07ef4ffc560eea5e984113175ddab485cc36ee859c8bf582944854aec03ae530e54b647c440af988f5a2590e5a47ba48e62419e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24973b0ac607f352d1dd06f4e74cf1be6530b0000000000000084cea51cf347cafa6c3b29e22df70eaa4c5cb9a5953b3b1d73d83b90a72fa3f0b2149b9927b3a13d2d4083975f124a47719ebe9d97beb696c9a41175e1278d498ae4f5fd7f9c1b0f88bd12935f99cc79d7d38c2858872997762db3115ce64a1c223ab95c804d00e4a4270baa861cfeab46fad5c911578d50c26a3398af69c06cfb0e7a32ba0d9fa93f65d4aec20186b4f12ee0e4589a5020fb8a65a084c2e8e5579ff85accc264c3591187f57ff6b2e9c5c98d82b3663c3c51129eef12d088d6eb358aec11ad4463cac6dd230c75e4ccef80dd4bde56d1feec20e89b5810ca1c669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c4a288e32885855368f3bde31a344e64e0a00000000000000953ffb8e1ea3ddbfc17ead79bd73966f6ecedc9506fb5fe08194ee19cf7426040d34b6aa10d79ea5e5e432fd2a55f1cfbc203b22212d681203d0f39894305628dfbb2045d83a2fb85d50582d9501bb153d64c37e0565ee97542a610313beb2d22574129be9dbe3710c7f92dc4ddeca013b307894645fa5f69ae949b437d54a09de6e7ce7f3c9bed1f0f9cd717f656ffbe3081993c3e498c7febcd64d327b518fe16e700aaf6477560b68691205855dd1ba1d841043fdf51a9eca9b01a180daa234a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0aa5132366121b65607e77154a1eb8965090000000000000017f2de88463f1d7646e09c89fb58757f2a0cdbc8d260e2ea0e786d80779e2831a170668350873d4458a0496dede235f3694761e038581806328218cef03443bdd298a564b8fe8ae009bc2a10357c3b6fdab082c3904d3c5dbd7f71659e9b559c20b5707f59731c9118082dbd7969ebb98035f1cd8e429083e3426ae2134bf4d85da8fe59d83a1ec12df6385fb9ca779b175a72537a86634cac4dd9db0faa77a48f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d7701a90bcb11fd395ce69c22ef6cd5310800000000000000ef321741e80e7bff62d32e7a01d48f45532483269c37deb86d995dc132207ba7fd9d6fac5a930b32b139fff341584841fdac95bafe059d1aeae383dedb9409b21b5d59bed2ba597dae3134f9e120de5ef7191aba39961631756855c4124217be9aad5927579ab7091268db39fb2982f9d029d4dbfc61dd1aec1f468914dfcf8a7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2229a31b62cdd8cfe732b49bc5eb7ca19670700000000000000c964030fc0fa8916dc51e4f72db78ef79ea64f39295f412c57317ff61a24f51b5daf764b418e859f25131a1e93ecd3c81ca9545cf8944fc0b742ea8b4ce92bfd789b397c7b3c0723c8c7031e89cdf1d883fc2c7a897557bb65884390cd1374b9bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c56f8d9003b440336cc0e62946840beb0d060000000000000050ec72a28ff79fa9cbb70dde04c93d5d3187f31c6d0e4343ac371c4e04014328bfa8d9b14697d38e0555445b493c932c45e2971b495ead797758ea5abb17ccbc12ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9bfe1f58bdbd4a39f7afb86a83e2960b05000000000000008c612d5ebaa7b67b60532d95c6ea59c42ef37bb993ae347a01a4f621b7da09b00b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbdb58b277b58cc48546828580e1f64500400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000003ff3b6665e7e221362c6b0586c14030d10000000000000004b8b88a0a8f9bc7d4ed35040044c5df54a1aa20bb63932470e9dfaa3a549774f5f1ea6befb8c061ba54e8fa331cae380a2ac26256bd86454289568a10ea01d065909aaffa7b58bf274a1f2eaf613ad4d33957e061bee3a0fbd83115a46623dfb044621c5d2351c413e1b84bfa91c7ccb065f5de10f00c2f36c3e4ab1c07b6638d655187d862af681609feb750867ebd95b7e6ea9a183c95fa57e54390af28990f2fd456a9bc08d2d57b052a5db26e7a51fa4e77433bf141fb4f1b3e9bdca07ff9d929f327764a765a31f7837f6775bf6ca7b403416efd014ca23736b31a23c4e5da4e798ff12bcfb728ebe68e6ebdb3e6f2577bd34e88579342daa8e910f828f35d7bc53b96dfaff269c8cf219652c158140f559d74473916c88d880fd926b436ac91aa48a6e0b4dba2702dde4a8a3f85a9c6043b931f9c7b5ef49ac82bc6f97ad534c7ce36e89565cc9c5fc73d97f25eb8297bde119731a26ac7664b953c99e22a66101e83ebe2d1b885b1012e6ea572d830bba79a0e1cade602a7fe1f663fea97353592ad33736ae6afedc29b10a741b662e9d2a9852e9ba9a8962ea24e4d4894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa294cc662254564c289af7f824fbec3e550f00000000000000977ece60a713378ec140cfec741abe1edf642d89c8f56200959d8defbd382f3eacd197a2bb8d4476c538532ab55e38b1f5301cc66b1ec723b762ae153d28816fb1c15124a7e7ce9905da57d6080cee8aab82690a4772af03abac3197b874091904c210b9536c34d2fda973b20fcb6109e63a0cb29af3c7e19d9467a708cc9d5839e72765c88e747b1187ad677ff4047eb6e08d2d4649966b3ad0d2cda3d677ccab04eb273416fd915aff7d5412cc387480efb5b53d9cecabcd907f8b61badd6223438c7a8997edc36667922d6548a794a3956e863d9db84129b3d031a902f876237fe34275f7caf8292c7e611f805b88e65f754f6aac5e9ed54bc688529cc9f71d3423c7bea9d44d0a971c35b136c09fcb60a689a831664f03d8cc932faccf95bffa2476ade1413e454d694e2a863ce6ad39f8248b24bc1601a7ed408efdd3bdab225a571f60e9321e4298a475b5a1857d211464807bca01b69c493501cbaf10a6fe2c4b57371624f0b12c91cada374b2b23b991c207847c5a59024f16a78dfe11dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52847dd306523ff5d2971154173281e880c0e00000000000000704e2971c1488ab7d1cf36159422ca9f1fb070ff10f92bdbfab413ab302b361b892e4e2bb70e886c451bb67121e027d666dbf588071ca8a42852b2137abc81c33b564eaf5a21cf8fb4c4a47995ac5e78af6d985549ad27d4ffa4d69b3a9a5f53c9832242a9008bb0fcd70314357af47d33d7980103c789ec51492daf89c9965f9a784a24dde7ab9e9a8718ac54cfc50190ab09200ff21967c8a1ee058512765479a5bcc380e75ef9d1e362010c754f92f53876bf8a990b90ffb5337785959b7474125cdf79fc9eb2486408eec7bb3e3b1472cbeb6f0822668a1b053ae3031a1ab11c62e3eef230fe09d21b96e6bd215756b2ee731838f542067cb4b2ab3809f4158c736ca1e83b1a492de57b2ffe86c00f3d2ab165295e0c227fe407380ec96edf057c64da53e30e5fe1219c18c128bc8afda3407259c16c56b1fabc88120209ab74318043a440900187338770b2cdfe412f7ad40df0e8a72952c52b57538d39f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b686930c23c6a92b452c116a63c3a13ab140d00000000000000c499d127426fa96261f895b18adc3191f5ca60a195f81ef2ed3f6adc972e5c0ace494c32ac6b8a82443b40c987559ba27ac433544044bb860252ae051886d4e9202ec32eba630c3eef7915f93654606007eeb30822022a06cd33e98e7c79473d64187172d9196286f8a2ccf09ad62d64a4796fca162e66197f3aefa960c03f95c4b9772eb8f8e9fb4307da2995d5add4111af1b64e93b7713de316cdb1fa203a6bcb9d980e73f4eaf93abea3a8740a9243d394b332d7b79bb3f715be907b273837cf347f8925f979161ab7a5acc33868b2dc196f6e7bec93a566681aa5f4e1083b525a0d0eedf09dd30d2eccd2c7a4fff0d6983a66eeeceae398fad40edb6a7e5fc6e52274978827584c88d791a866bf5a783ca9a51e88bfbe7a476b938be9b68597c731da32aa2ab2451c129402f3188c213d7c1600179f32ba4a481d1aab597460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999920ea1b084afc314907ff6d0676447b490c00000000000000823b43cec0e1ac147737347df8e4df80576a1fb867224e53554ad70032fc0bf147f25ac1f3430c32d76a4da757a6351f99e43e0aeaa8971b5bc9e6cc6383a20ec11aec413e497908d12d1d24d2c445f8728eb29b74e66918f0fe802655218680e8d76d3bce55a3e3c0167bcdeadbd0bc2e3bfb8ede7b30c4d066c302584a43a563e1a6f5c7cb5ff746e624ae6bafb669ef63106dd2a6e17894965c109591506d19aee6809efb82696218df58b0c68e35f72d08a30e2bb19892872b61993669ff224586a3354e5647e61b0d78ab9c65544c0f66feb3370b97d607c06d37b3c06d9bae495caa025116a8038f748d64e507a2a31bc9d0e1603a7e2c46a4066b75a6a162faf25c82b73443d35f341595b19de142279b69b51e850ad15fbfb6b99a3231b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249292bd716b8ca5450449a601dda00021b0b000000000000001700196b0f4d9de99ec374101e4f955263d7c289e3261848104649166aafbb1f4832d4fa508ec4db74a19838413cb8ad9eacd44bcf05cdb6bdc416016f951ad6162dc655d83ca5d1cb683a3cb8be5ef7a76027ab535a40e8daf2e026819cb51669d372772dabb704d6b1c194daefa423361761e5a74ecfbc7a4216c02efb52ad03f4b9c8e51382a805e5a8bd5d3849306596242e796c84a56971532c96c5d0a127e7e142a0c738e608b425e13def0b586263783e8c5b59287adb8a26da31a2dc1a5b12396b5aebe88098a9432c3028479cf0f313adabb7a552ac6e2063e98626624ae3f15808d4a8d5e02f64c36228b567cecf3fe14008dcddaa017bd36d1b5d924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cd5233f68f412b2397470651bc782423e0a00000000000000432c0b2d71e6509a675678b443619b8910632121475e917cbd26452641983da51cd8e9774c7970157b0f3a828d78b71e85559ef18720dfc33283e05050d618e157b4c8068b5f2e6be5191f97e9cd415886f7a69b9f092f233b802d85cbf099835c71f2abcca351dfe45ef6fb4d49437f3b9a9846500346847ba6519c61af28badb16ae3dd6c5709e60d5b81c053b683e9b32e0396389d08e045974626723045781146b5026cc620e4bf5d54dcab46b87dccea7dd913151f776347c862068ccdcf801e35cfb7feb3ec390fefff3afac596d6fe656f9436e81f77ccff01e01757b6b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0f47d1975aeb4ea5a4d399146dc70a82909000000000000008ff34e13e1285604883fbc1ccf17b7a4b90d6ff1b67ab9aab922c7db67d4618f4db5e20143034c281385ff89c9e53a85a37dd4fcbd63d4aaf525801165760ae079e0741c42927d438589416170f57bd211e0433c208973c35889985d7284e91ca02675237249c45f0b2157145702eb718fd1c61f9114460d4d26a855071c342441022c9d07b7185ee456de252cfe43afa9ed33d2fea53dec4f99d7d12e2af3b64dc4ef82e8e899a923b77731fd7df21a98ecdf997a6169b55ecc8bfda3204a49e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960ddda26f129d5eac40141d525a90e3714b08000000000000006d182210a11a9d99a0d4e52907ed0f72d1f522fc126f61d84e1cc0158fbb47824ebdce3a6e7cc81ce81ba0bf466047c2575ca3d32f3b9cffd232ef00ac6acf67e69132f8c3d8405676ab2137aa2e9de7307d81f5ae6f3e17b95d66cc54307d0bd5d90b33acac31c9725fb9f980ac8f6299a1e9818dd8b613f352132a12d57fc2bd1debd101d82a98a0e497b99c970e3167265575280eb8071f8cf59b35b93336a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22210db8a400ec992719c068260faf4fc070700000000000000b51240a71609fdad635b681e9cacbc89be905c4cf962c9efc72f9d07568c62c26a0d9a6609d50dfaa2293f817f8f547cae2410b08bbc12170dedf2a1ee2bc3c181dd62297a9986c45b42ffd97b869d1a2d2046610cd219d1637b6bf295a8d8c8118feeed4f85d738c3e35f71bb866eff4d6587980404afc55910d2c64aba6893278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c552eee6414f67446a59a02e43428579710600000000000000a9e7a514125042dfee90ef96c4e5bf8f3ba2ff8d68f737650cb690a9c03b6c505e174ae9c17f366eb659b2fdcc39a84888aadd24f2f58be9f6bddcfa6181a2c9349397d71f0b8a3e97eeaeee05e2bb9774768bec0569057524618367cbb751f678d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64ccc7f5f4eea403b12579984426eece85d050000000000000016fc2aed5421ce937a5e17fe39138cd63ca104a26ab5d193741ea43192f33b20a82cf43eb45e04663a72cce6870f46f7aa084966d454364ff5d923712e7045a308742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c8092c804a0951911212ab11fb4c8ed54040000000000000059f536d21f555fe6190da4153434ef99255b2c408feab4b92ef400686434e178ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c01b1580293e462f19a72e4b49d81ea5710300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000120022688948cb1804d37c044b12f4141000000000000000fbac152d802b19898a02a1948ec04e76ec4955587312be9ef50a9f9f31f8bfa69e9f1410df6731c9a0ab239bd8cca184a0076a2a121beb1422a79b012f1ef0dba91836f07e5c1e35dcd807c3eab7bddbab9ab7a0d2b9bc81f487acdb6aba3e1aa80b3d2bfde2fac68480f9ef3be8ae1d510c424afd76caebdc2d2c6c9b1a4981a258fe935e34b036464127664f504b66fd74ff092ff8e839bbba3b0f347365955c60bdf777fcd716080795487b1aa14b0204a1f4e3942decd8fbf693abe8a9f78f8cd805e12497cc12c60b25a993bd768e965a17937538de374cf3e911620a396aef8d76807ec4da6df5b81531aa48131d709d3e42a1f8b46f5381cb50288b219d0c4535a460ab6a4adc84248403b7e3e6a1ee6e45b00cba111113d94275856bb642748dd1f1c6784e999e996521bfab88dcb3c5a78a4af147b8884844bba9716c67469b1feb95c927d8e7872e5034a5e7a0fa0ebd7f01eb8d03978fd69526f7c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa210271e61ee0ccc0bd097ee715159d9130f00000000000000d44729eb4f77a8b927f25202fb28308f8c466c7b57888e02a8e7eff7cb68b560cf619b8f46ae657a0a9a378d608ec0b90ca6f1a66fc69d2f0ba2876b5310620c32aeea80701b8d88d93e481748c7545ba47b6cbd87aa90461de0561d4e6c2968135c854433c5fa19181f832d1badab7aaa9db28716c0a058f766009df46ee1f7d91c4d96622d6f5ca037423a71cee742f1706c0dc8e204b79673c6566f1056fce6d4c70b76a727340c6acf8fd23f0137b4ae9107309bad75eb0e934bb5fbf6eb0d7b1b3c083e11c628585fdcb24f56f3e47222186079612d5baa9b3c942cf5af37a260c2832133adc58798fb5985d4bac1da9f89b8e3e81ca0ad205ea28e8e936a1ff7111c532c39557ae8459e56ba8558323ae91df97bcc1ad47788bad1101bb67b489a49c826fc3955586282c144491aed87dfaf5690fad6966baf58a7d27b3ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52877cd6d2bbe79af0095d46374a848da240e00000000000000db5ea66d70dfe3b71b13db58bb81939bdf5fb32d0672bec9ed150ca24f7852ee1d208b9ddc47e534f494bd610f5ed68c4383d86b9207aa205668623e75df443f4708a7dcdc85f585473153532f1e26159afce4c3ee38805a16889a33ad9aeb51fac13d5c2f2b10441ab85bb9fbbb875de5b0ec6eeaa508167dfd02b7c725e54c41bdfc3f13139058296d0f636629175cdc83e7acf0d703ff856d950764d3fdc06884966cd9c5ff1274ccbbc4f21787144b184c2639f56507762ad87db2ee5fbc63c5e29f1321840ab206bdb60e5edbae045f7e0b117d7d7bf1ee3f03c7d8cee87f9225c8a564648e41770b0dfaf1a270653ba1effb2c625eae9b979d03af457f651f5a087d9763a640543c1f321525c058edaab97d197b6869e920a99c29ac492b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b680c9157360830a3060c0e4a052958c8480d000000000000005c0872ac441c4249c65752289f0638d949519c907abfda210319f8db3e2568b97d3a4c10fd80d4d3db81ade31989e91a4656ed72bc5e7fc503eb40b8ca9db0f99d1e99256ccf909f7c12f6c5e9541f1a4007881b20d106227a801e3b5ad079845472f1d32255086e7cb3bbf989d701c693b77423c35a20f22700ff75d61140c90c057584b561e67666899b2450e21e9a030db770c0b0c95ad5d7bbd75b8d32691e0510bca676895606a7bf1f1ca099329ebc549dd575b500363c9cc7f1d83ded06a26bba1a55e57f8dc5d3a7d5d858863d565a3f0f12fcbd765dba6fc7387dd814f162e72a769d84594dfa9ac40768574f22a3a56612ed890c0e21a8c59e299fc6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999901f57a4257969f05e4103b44f32ca5080c00000000000000300d7d699cadba0330d0419d24cfcb0d11e951e0a245345fa7bb6ea92324579f33e3161737ff0039997ebbc6460a2a78ea1695adfcc37179f224bd2cca02658fca92cd1a96c54e2856d3be7d0ee95c111754ee3e9044923c6d12134ea7e9ef0f018d99ed798b14ad6d9f75322fb40431a770e5831c9950f011ea0ce866bbdd7834d0408748fc83ee6e48acf4f4b8d636f0d7163590ad1c7940d3d55a68eea0f65a7df292e1a4f82c979c310a4c63a7817de6d510b485f99a1434c7dbfe4eea02138d1f59587871a7ad0abd8873a42c95e22edacf747cfd908c5a1e4630211048c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249b47b8a5e577a2d00e0ce676174a0fe460b00000000000000690ad765a1c742ea996665166aa8bed97bda0a29311886e1e77c58cc8ddf39742c6c49c84147cc07c5eef3570667f1766a3b9595d89f2d486ace224e7c3d22d84b1464a8168b6e7c635d817dc3a0e37c5e5e262b59503d67c45bf8554fbc5e45cbcf477d6665313c5c850bab095b0a84ab5541b444a24c166fd52f6f6cf81db05965a00f0ca287c04dfe82f461883a7c40fad628c09e0ca0a3316fbc6e6382abbcd92b27a4d9a7a807584a13fce4a4783afb754fc30896ccb85b5de2f88d6307b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c06b0d5440331147341a2b062030897150a0000000000000079c3f5c24b868c26bf44793172e00170e23d6b4e39c20305cfbf453a5d0aa1e31747d22e848dab57aa02257cc6d57b546804b9725ef77071f0eef85e36bd7110ab2cdd855697771986823f97edbb622bdcb65a001647be0a50f8502c99eea0c9009f6e1e1048d2b48aba53cb89be349fe82ba06758d762774aa40ed2e623124ae37dcfd97c815baa1439f166e4e17759ae239c1660b4f5fd2bc31590c7236f65a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c01ba9985474ca1731c83cd96befbfdd240900000000000000ea58ffc1549e7026c311bb09d4d7721b4d8b7f73c98dba9492d21988635368933a9f1eba0c7de73811b808e91f2871beece87303ababbca18b1f55d62a8e16a68501beb105be5c8461ab900eb0a04fa6a6c56248b2db1eda430fced55a02c3dc634752204ff54b585f4f7c7c92e86a169173c66107d16cef67ea8e03667370070fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d01b0b93a8dc6741de3603a57b87248440800000000000000ce97bc5ee6130a6688a0e5ae685af7dfe8a6c58ba7c16531f57f6905bbd5625dc7472f4e2312d112dee146fb56bf6c22059e8ec7dab236cf399eb873ecbd4ae65f84e30fe4840d6e21b24ce074ab67908f89b6e16a579e09523b2f0f68207a9bc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222b25b451c187c2f53a5dba1241bfb09600700000000000000ed23c1c6cdfa8a9bd8bb95929c5c6d05192ba869644549e556a92b0456b276a098b3ab18400376be63b22a0fb1659c1d6c4bd2c073db2ff1968cc9c3bc3ab1bde489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c509819d1a4d2076714f0c22432129ff4f0600000000000000223c388fc347f334772267b7570b83d519d81ba477e7502fdc1d32c32cca118a89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9db2e63838b03f1abca5832c6aa2ab4105000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000bfbe1a287252ae6794e3a7648b9cc504100000000000000050ab5339b4ae078e005dea87e2bb6f0ee30b58ff33152a0e6270e7ef366a088a9ffbb8b97170583cc2bac24ba5355902d9e99b2b6afe427d8e9bea11023e21b99fd18a0c5b05cdcc3b553edaa92a6c8005ad920c9d051480e396d3dfbd5830cf6e422429746cc586b4f6b4f02a9938d4cf2fa6ef723d2cbe281b777626010ce189677f3761de7443e2265d504892acc212dfdcf3e3a47f3deab584054cf3e5909c9da8bb4848922ecf7b25ec70b8f3334e70e4f5a64035959a757b43ff418b9843a2d6ea0e408feadb83d50e9a1f1a9627f155cf0dedd9e1f664c03123d4bfea163fed6c6e99ec20b32a5d1a80c71dc9d19ee02b4bbc78fe163eb2ec64d3efb9f24c95c0c50e08061be836f5cec5f8422d45e87b4d2677c4e2c86497811ddfb5c827f35ffed34c5139286fc7712e87270d728abbb021643a49b4617293892cd84ade051954a305e04adc6e2ad811563f904010a0eb7178e67cc26a6bdc97d8f2d1d55e63c3300242173727887dda9eca516a2cce2802ee27ecbd2749c9703796611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07b3f26a132c4edd019711ed5c4156e6730f00000000000000ef80367b811e4f5858ff3c2f998bb83db0050ae3f9fb0b003fa316588d701b8135e5cc903b37bb9498f789756deffbefac458ea874e09d8fa5ecf9df313cc2f1d4990df1d87fd497d0eb3268c6d745fd87c1bbf8ee060e7abed043bfdc19481f9577b9f59a4b95f9475fba0adbf6c6ddced349b5506ef118a654aa7b0925646cda4d943363282586046b0a5244060ab2cab37f7769a931e7bfadeb6233b9c759c0dba03395af79299bb2a47350224ddaa572fd89af38f3a3efa42312f036c7a3ab54c9d125818aea6a4cfd70b99eb6fc577026e046992579d97a55bf17d5d9bbb3804ef3f668a1ee4342d8089726ea2e484fff54fac9c468ac4de3d7b96e219e6b2912f55f0cf4e2dac60a2417c07dddc54ff9a2ff0cdde05dd5e96fba588f7d5a911325980241ea390d0bb654776e33ca54832090f66c58a71a4c63a1688dfa08885a51c33ab20d75495fe9a7a341206f8ccaaa907142868513fe3eb17e68f46f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1945eb124ee7bbb540978f763fefb016400e00000000000000ec1314bfabd0601241899e9915605f2a25b8a91599231bad7828883af39724ad183cd875542eefddd0848ba8f7e65f2065af9f1c40a1d5aaa4a6ff122e1768ab35f717192ce12f605a39e2077349621c9258023c68381d2e0998e1e8f72f39d678e9d3e9d4d7b557d7a829d013eba18d3b279e6600d2efad97db740c00f9d5c4f7653b7441badd0069c66505a5a96caa982e9232bd2bab72df270e3dcf3d7506ce9b7673f9919c653f3c66d174b24a940dcd8da95c6e54b591f0645967a1db22206b98111d1c8263765b2bdcc37523b1a8fa8b42c4506a1cc0836486b98eb11d4d73c1a2e170e269b4d5004d1b8dbd73724b59789d7d1bb339672d3b13fdff2567cb6940fd8aaa47d75f9a0bf55aa1f3933ce82de74a8c2ac1e61be2405444585c0c0d054c1df861340cc3a2389e1ec841abd2fb6c0509e9dcb738419b5aa570570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d9e7039367a80ae21ce8bbd1e4d795a5b0d000000000000003038373bb032c32bd00682770d2371d77dcf7347fd6c54fe03fcb68e26588ac47fbd55a7eef3fdcaca9a1a323d0009c8518396f0859a5ed46b9d9191d29cfd8c44fc0c0d338ef9798fafb1d7b83669745600a911f2c8b8ee30cdc4e025aef148dd9d359f53f0fe9c93a691a888feff09a72020a398d9366c148272d751e0f6f5cd4dc1adc817f74dd2ad0e723346171948a49e334dd5e6d8b3f3b2930746d0d68c4b862480d261e184d96155a9a41f958952a2abf769d175886139e253c286a77c950c5929dca43b04631bdc1eb6d1016e5bc3a6a085532c72e8f97ea0fcf1f5690309abc9bb61bca2e0d7a23550ea6d9bdf1dd14d74f57ae1a96ccf7f489df94d2e5cfd4fe22b3f742a9e2b48a1288a9661a7ea579d3f61c2c7fe15e4ee6baa7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff92b89f23b823ab902ef724831c6f50e300c00000000000000a7cfb44b1b839e69c9f76bca8b67f774bc6db6b47cf10597c39f30915a03a8d1d21e542e308e291b583e47a2fcb3e620b3c494bf38a68e3b1ddec672596e080a6f016f7c6ae3d4ddb4e3622f8e08fa8fb01952db2aed49eca6f42fbdd6998285e015f609071436c5d25d6bd15c3b7140b9dd7a04ce8a4099573694f6228b0348b25c8648ea7c73a24d0f3ec8278409f817ef9c62b46524e449184b9a8602f58e18d2d015f6b17f24caa3654b17667487cfe264345e1af461dbe9ee0d18b840143f8628491de193dbcd06ee35408fcb27c0fe3b55c04715d65ac7f49c221b6dbb830203b82392e74ba5ae34c1615b67994ed5ea129f1f7393e9b41763ff62aacaaf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a881fe7d0d573016770cd7d535136255010b0000000000000043201f9e65e31777aee8a60da464d3c415cfbe6cac7759724e0ad2827f4c7c88164951ed2f058ad4971ae73d9894d23c85cb0983097f017c6a66fbc0bf254953cc737ed5a7a60a1c6d3158c9e81fbcc3fc26e53f9add28fabd03db8c77b1f629bdfe0535f16ab7ecbb1bc916205fbc8351166bf9958d085bd54bd5cf8b2aff6b62906cd6253adc58ad2d6bc4bd69ae325345bab11db2f3035024a2fce254fe2a3832da79dcaae636a0e9345f08575276a23ad14c98b34ef10cea47e402725c9d24e5627396bb8c99c8cf2a0b7bd35d3d9f97e7a95d1a0520305c00676c12ba3385698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e9774a803f99df31446421546325135660a000000000000005fe52641d530fddd60838e76df1adeac23e46b43131da836fc3defbb80f502ef81c5cb0f5d68988a729b8b8ac9f1ee7caddb9d9da6854a9b89a15effa98f929b75702546c28466aed027cc9e391b66b86e3e2c13e6452159088c94842868156aca87cc0da8d61593d8acc6c87d7701e8477cca55a27d2f885ecc5347ea3ce80b5928dcba3615b1b1d72cd73744fdfc059c27c68dd3f562a38397625df038d0922708fca109093817616bf8ea1b4e2149dbdb0f7633db9493b3b749eae1e2b67afd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b45c47b3d104431055897211f9b27413f0900000000000000176c5fc3d1b60107103c27067915a5d9f79858ec2c89ba2b2d7211d6366adbc91f963ea3d59e813248300933427de932b54b4b8ef5cf556b4bfa2243ed823154ce2c5d75c8ea67ef716b296ee090bc1c351c187824a489ee85c5bd694a1b53bf5c3c21a619bc3ad36f6f0be47369f18426943a681494aae7d84ffc25a5e3b19bc1dd6e2be57067d41b6f4b52b6a7803b170d10d4600a42994628c69ea8cb29ab7f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc3e563f51f7b3815479827a5046d8422e08000000000000008b72d76f06068bd94421aad838aa6dcbd4a11a809540752721afdbdc00c7d854f18d1fb9dbb2b26b4170dec02ddf217f8529a767e75466d94792012bdefcc7b473dc1f7a699e19b9ee7076c14c8ed686a180165ee67c3b3327ddd3a73f7dfa1d9daf1f9d41fe8575c3cdc00a687760f1d2af48ce0aa16440c5eaf063d9c1b2a93fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a67d7d566ef35db95b35b38708d96c27740700000000000000cfac0cf0fbd6af279c4e6bd64b4577123d77a2367a74225bce174faec31c610d3f12eb0d9a9b3eaa6d2c411d1bc906be3220d98a2e78d5e8112373e7a9c5c2c5eeef29d9ef9599f23f4a2ba725dcdad92e889ba9ebfe12de3718496193d46de6f11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec667281316087866b7ca91404a53346330600000000000000e375be65eabe53815ff932af9245fa0ef361cb79b37abad4ab218b2e2ec3de9a4b6e4e48f9e539e6675225d18adf6fd79d9d00f0af9af43ebca8c74966c05be6eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c177ca57a0b1b47f369e97492305b83196e0500000000000000ca0556f4635fdca06a640b681a811869f1ae899e2ca0b881ef6a06fe46df515aef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979983376776900a8686e5f0c572042179c2f04000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000d9ee93491f1912423c0cf520f9d57d0a1000000000000000beb942d30a8cbcc80c1881b79286025d147870b67945753038481ccb5a03346afdd016476d10f07a014dc34d11c702e45aa7ae0c2d9b696236fa045b5655c9b64fb1d9d6a2de2cba1325053ca52279be2815fc993acb4a0fe19f16ec314d6d79bcccccd05b14d4db6065d6c6c67f1de9edf1bebd764145b2930d556b815b570cfd831301f7e5024fe523fa7889f57421c5779d0e8c98c15227e56041fd212d8749e24cce81f15018ee8a72a5789fc8c4e977cdfe85f652a4adfaa6cdba0962d6679dc4c6041b78219546599d0e586371bba50ce0bbd2eaaad1963ff1d82cf8bc452c1ade489ebbf8f413e9482a8643a410493495b83ffcb3316302a511f20612ae85339910ec89291352689985e46349a027d0b3b5cfb193dd2987a41ad8e93b5a7468c9d927a72ead5ac1e732d0f54ac050dc8d56b0c04c2b502572312b14707002d861d0b8be78300ea4b5dceb26a191212ad5ac17bbe7589469319d45cff39eb0c9694dfa8f6fb6d7103314c00e8cdd00b60ea716a31008698c5995cc3ea909b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc077bc50471187a2d4ec702c80b99de7b170f00000000000000c47f249f33cc0c8d51541cf658ab2428a2331fcc85399a709e7c551b53bbd74dd73ed17b16a4d50e335f90b47ee8ff4994839165648fdd6a2e19e1411d410845d0aed95747498297ccc9949e642fe01110b6204db46392fa3956723b1898a4c0fb6063fe736318f158a4b95f9d541fb3c674b783a723695954fa5b8d76334e65c1e454462bd9be0299041b5851863791628645f8773231bd19008bdcb20208ba60fb37974c5a3f0c3068ce2881f4c46866edf973ee47a4294d88a42fead8996634918c4b19eaea31dbd6e2fa15c7cf05f3d9bf433b0054a5974ab75c6772caf80b10eb07e221d7d4aeefed7d91da9a5dcca4794e59460b8698dac9e83504c2c8b83230e04b374e3de504984d493e4ba7917ae819477a41217d54bc8d7ef444fb8ff159dae98a206ba4d9d421317eaf1a45f91a3356d62b63900d12be41d0a49f0b359a7c82a1341ea6a7cc2bbd0108c4db8153b2187278e9f4334a15ee0e26f693bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a196970742dc24761430cd7406b2e5ccc730e00000000000000765df0c13c6c6c41d45378efa1d2a5fbcfdc0a14245225c53a02e514c0e7ea61b3f46ea56665ef25648547143e052a93357eed182cffbf13daa97a6cf45004c4d3145ebd463252d5f0a6c13202690f586abf59bd3d1c25ed8d7cf2a80b1151c1ee88879229cdab761bf4d9efb0bb65518997e515400a77e2619ce7e81e74316fbb0102ef3663d7a107abbf0fed7e8f733b1bb9ffaabe6bb89b08de15dae83c5f05b394d0ef50c13ca73a3fa64e2525320ac62a826178846e560c992def60be8614a790a143fad9f95922e527fa6e4cb8656d4aa1e7ba37db01ac2b55d10c1e343de3f72293541cf018aa050f8ca05d9191991af5ecc6c5100ff2a0326b73c8c15e7688644bab748559a29d5f6767c16d3c4c666e6606eaac55421fc4d431e3c2b20255e366baa8d9d5a29a93c9b6600d8628abe6d0866a4b1e14e0e6b12e441928870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817db7aa5d4fb8752d263ce83404b6f10f500d000000000000004dfcb478c176d6996a31cb2f83e01c84bdb75892b95dca80c43a05ee3919eca9ed5b0e610e03aea22799a325429b1689108923dae90be56705073d2cb7151ec814aaf2ee3e6815c2969f6d4641f4d5cb770671c6cad70461b7972620f70487193a95f4df581ff600b4c5a47b50ce42a3e51e6eb999f8e871afc2ea258d52160a548cde5bbf4a743f7e5814ee397ec4b1a6c710b026ccb81206a45920334ada4f886a2c6e9b00fefbe75d369586fbf72da2ac153d5bb23103b6c317278a86ac458d4ee75c97cfa0544e6bdb2e7c82e3a50c89234047a89d5e0a27de16e9ccb14012b9bcbb32aea95e549b85ec907d76e9d5f68bd079aa62c4be38d76f2390a600a0b3ca881b177b8ad3ebe5916a2d90cbe58b8b6de272b8ca2d30edb255d2fde69c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff94607bb4f13cc54042573db6c3b85da220c000000000000002be18246a11ce6a0b02d3d592943bb0baca13118a5e18ed078f054d2ef5eec1c88c0167136dd708f7f2093d83b34fcde6fcfde0ca64d5eb247f3a8233b17f0e158ce90a5e1135b2d816dcf941a41f6892be9a6a5f2155b10008f70edc7bab97f47601c66c039b9c93b3ecf0efb1ac64711e1c7eba6842a17951c2c8c3a373172a7eca12dd261576f45227d3daed5283c52f5800aaad0f94faa7727f42891b7f31bdb1dade269b9e494cd098e0b664076ac94eef4ee58b951fc9470d06f03b2a37f27cbc4d0d71ed1ff601265e54d1094e6d2cf184a0bc46e28b71d5a21abb8bd28fc507beec550223324cbbf88a549365f01e58e50ef3ea1abf0cd23744a187d6ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8ec985b31ec14fe3b65ee6304ac61ac5d0b00000000000000a4995016988ce288f10dc5a78ec3816821673a44bd4b1b386662312e114775a8eb362107ce24cc5a0a8ed4b1a3a0e47a791a5a0770961a8bcc0d289e10dca004dbaf6a954c86c00c91b82f70765256e9ca4fca4a2b0cd2a9a839aff3f78671b0aee3d33a08cdf991df761aa8131c5d2f8760798e4929936d39e34adcda9d4c6835ec46187c740a59e7c7152239d18124cf88908f27b0198c070872e86afef01a570b1ee7821ea8f0a19a59de8b44f504ff0beff72f527c54b9a2fc1378e7cbc4086078088ce9ab92aebaba7c120dad1775d399f8bc909c0ac0057220b1636325cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e76d1871b7532da29cfc0500a6c61a5740a0000000000000014959b49ccd8e7f9c94e8f6638926eab484c68e7a79f745cfb8f3afd9c8d2e6413b6319b4f3af0fa23bf3792a3f8352572dcabf3373cb2cb262c38d3901d55149dba1a40b9e508040eb49478bf7b9cc74bf66dc5d1fcb2422e80cc84acc480a3c8bab2f82a1e32cd1cfa1bf90c9dd8809a9ac4ec010ae86c6c7ba112a78f0acd9a502e415e8e54028a160ae705459d8af2ce1932f9f640bb1cabe2afa61cb6d811eed12d7f09a5c4ec94f583167abdec3c38101c4dd906608e28fbbd48d4aef80c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b54d3054ef704c241df4812561b98de290900000000000000939c3843f6b86acfc8c6264bc94c17ff265e01d0c32d6b78c35e79946633ee67996985bd6cd5d663ffc7b5257df4d07acf362799fee49e4e668527dc97e21361bda2d631014fa7dcc431a76d6153d8f304f03514051d2fc98c1c3305b82320209c8bc600b248b0e55e6be5cd9fdfef2a184bf0f304a2927d27e04e354317095951bd87dfbfc0255cda8548ccda542597260538c87c312f2b5bbe1684fb2aaeb7b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc7c85ac1bc967ae330ba48e35992b0258080000000000000074f768c1fb4d57399fb9e4520d34e7e81dd75dd7b3f9318cc25d573fe14c2cc2e8c8197a4b26129f7180ba13eec7764f8545bf08e646e9bf4cfbea3c7d2a1fade6d5ed60b2532ec77c1101009f706d02a0e79edf80c07bd6218478d4fbd6ab36acdb6f0daf598875ab5864855042ac0fcdc8b6cd8e9671f7f21838cd5228cacb45de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f71d4623484de21f4a57642e641879600700000000000000b083d74e9d779c2ef10866b430b10f802f777f31db8bac4476bcc322e452f6773fd366edbde8816778aaad68a612a698d973806d4048b0295318ba1d4774779a8ceb37314c904ddd1e99166cce7ffa4b76cbbabd5d53f35a06e5b0d110c3d98c678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec4390276a94579824860301749419c830060000000000000057e622e72a5e3ac4aa5135cf5188245403236a30f42d57541e405e71b6617715444190bced1461029c4013616530c923e090b2a46a409f33fca8ccde50e3a0b15879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17890c8827b37677496a5ab100699a304a05000000000000009d27b6f5b86b4e4b58900094b3829d5706be17a95038a8bc45abc45c38a0256b603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979988fbbf94036ca1351025b095fbe8e46440400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000000c62da4025d166290b146842fed114641000000000000000e818399c1dff022123b61124a6366f6109dc6140c35385fc210f6f2092da25f0b9689999bffb3d658bff7049f76f286e94cfe8600d6f7c97912672fe14639c4a2bb6a8c138a1e713a4ef44c1e1c9a29178446ba53ecd830e1c8ca6b60a51defb1cb7585887a58f219978b4865e3a33b87b747d9df109be0d7c38fe5722fcaa5ad526030acaf894a162d43482237ec7679e2adf53ae58fbb365cf3a5c39c2eee5878555d3e7b62ebaf16caaaf633e02242bf04db81d9f703ee88689ab13bd62490e6640552f312747f7289222b4de0e040c96c6b53ea9bd2a2c2697e5e5cac797d6424e8ef22630012b6756612f44285c7669c3e4449ebecca5ee157145b4c70063577ab26891f3a1a818aa881c23b21641e3957c07937e5d13b4d834beb1cd8f38d6cc76a2aa746e5a19c3f3d2d172e5a55320d4ed3d219551fea653051cf209bc872a4d88cb80921c93920e6ac9395c50c8be80b15ab2e888194923405f0da87595437d496d8d4791ad79b65856a87a5674aef36e282445e45fa212f3748bbeea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2fcbd38339eba971e47e36835fd2371190f000000000000001e2db12c0e930f99864932d71ae4d4aae4af36f0dceb8122263d4ce97d7d96f41f1a2318ffb49ef23c5c148907f23e678e9305afa0b1a27f5aafd61bce77358af44dc24a844c23d0df903af78d118bbc777c0c3a3219d1702217ea9e52692efd6061686065f6ad65d76c10797c5f90337b206da5cac00172c80e5a1ffbd5997c54a0fc92db123ed164ee43bb67288d08c31a519cf1871efa2f89926ddb6c4ce51e27768d93a706855c02b9961d10cae3925516b48b7283fc59550a8d8fe9c46f8d73ea6a24f6e19cd9fb17fad5e293ae4f0b637c49af0025e71156a627dbdf5c8dde4e8445f471cc6da4e450a576364fffeefd40bbc537fbe07bac84b34e2bf9d52513bf11eb3b07115c5cdb56392d52418afbd1e1f30f30c2d94e0817c225d6077695db429cb4fb7e561c9b8808cc167bff778945de2c51ceccb889de993eecb7fe5eac3253dd010323dcb5f08a8641d22247d4a7386be484f1618a9b8b414c872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5281e984e118173f8166f2d8465be0f74230e00000000000000bba561c700fdf73035855d5b2d445c4e6607e615d476a9693bd101743ea3b5cc420e81d45065cbb795a9dfcf5a9f8df370a27e8fb623440f6380c8c7127b9ef868f62dd8f55d43d627a313d00f46aa4a5d200ea282dee0852ed1a577a5997ae3baead7700b3d6b311847e0197d8218c8e8d6629d9fb8f884f9d9e7a401d140cd511bbc9822432861bd2d130c9e61411049c93de4e97e653a0a1663866c5ac63e48d4bd2420880bf7b10a05cc4071a432d8bcc1a2da0c5d0ccd7e0de3d5d0958e2b4af8188e0bc66527428533783c6d9a3a75566a42c46c798fd86cd392830855add5049143088db1e75a60c76fe221ed1b74932d52ed854edd7c13c888d42cd79cb92955ddefb97033807822d0096641f7b64dd5830f4604f2a771d3bd85cd57cc07e14c7a9b7d223c05e22bb3968cca24a63e81f10baa719e559aa643508f26175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b688ef8bc5360dbeb219dd8a5592c9154490d00000000000000431f24884f1fbc809beca9448c06e89ebaa596b7f54c51f24481621cd7bbf60bd0bd2b219851f41fbdba80bbeea6d5ecd86ef448ee00674276bbd839cb7e577a87a2ca88cee2bc4d262ccdcdea96a2aec8ee49c717606906521b54e2dac42a038d66a1a65880ea850b70c3d9f1beb0d21143e8572a5ca8e07ebd01b7e307c233c609c4dc45367825bde247a2ec789da5271c7c8a33c606e0184fd5582cfebd2c20f2a5d9b3e302b8a6bbf4d27d440ebd4a1d78be81bd4ed925f7cfc82c6e3bc56b84804204146778cfd114a81918562844b68daf1f86e7fa0f40de7a82826123d0fd8905bd61f8cfcca41fe8f852085cb9c1da1711b679f4c4729c24efe84ed9ded7590d1724d5591993a6a38e6cdc2bd0b7f9d0c19c5a8f3fb484e141290e052a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899998a62632abcaba80a876cf6734da3d52e0c00000000000000e33a581bd969ccb7bc13e6c1d79de0ca51548c1a91024adab2f67f384dfba0643da62650aaad04d47df47f34891cacaebe84000343d72483cca101850f0cdb934c285e47d66bda5a587c84604037394910e1e7c4162577cda5b3811a420383939ee2c9b93cb3e724c27c08decff388345cb3f26b60332a59f897d0fb0d7b6bf1d095ccd2517e03da6ae8121b489172823a50bd8aa65b2e6dff2e268f20f518f18397d549a3d4d8a4d68cfc5c18118a4a9cff1984664c8272645c8a50c3121c9f340741bec4bc9874dc0d7f5d0b70fa2c9feb72d969b69655a82b48ba2d358b4c05cce1c7bdc9246ac2409f652814fa72254b7c7c033b627f6cd74a51087d5b3b9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249357f391c0d6f17585112426055caef510b00000000000000d3c1d5b6d8886dd27fa9382cce3a981d2e25bb592b3373ff989aa880d37137a2c14609d015f9c6bc281cfc891b2c70ae339ba4c24e3d1cfc25bca22ae7219b305a67740522119a72c39c7607ad14dac2f2babb1909160484862b8410af7aea4c0e9957a08f8bf6813ac2e9fef3db7818cab82e730b09dd678ba64045a371688d203b3a9b1b12d593c586746c2748b928310ccf20cdeda0db311e400bb6092c18a958b4f80e5f5f4f76c24fd06c2a414e247476042ecb4edd94090e5ed69d1d1f569b9292867816e440c0ddea77c4ac571cb9cec7a13598f4385e47a17b567de08de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cf50de90e17c62503a995ce65a7675a500a00000000000000623204f5d9b010e23fa9af170b79063081580ccf9603d1d0daea8234a19f8b620edd6f9e397ed383c1a4277f550b6c03290323dba5763e66ed4ebe8ebfff0465fc2343277495a36b81acf96de69e7dcb091c6992cee008640142fa937afeabd06d4752a42693f6281149c51d3915214d23889a2ddae57687691e8aeae938188aaadb3a9cf772da82c63301a456fa7461a9309af4eff29988ed6afd0ccebacb778fa106a43f7394d1c52eb0fc00a49125effbe4028956a738c1ee9aead1156d5abdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0e216bb52dc77ea0ac8eec94db105d2180900000000000000202f5a6ac27bce7508df77f0a7724980f0df486d9c001e433dad5fffbfa5b1a17fd20b4bba75ab8c00a7cb57a3d055ff0f6a5705b0dd878c16245c36f2c5bcf958ba57fe8b33532c5801bae91adaef76199e3e480324b4adacb11d36e0221e7edd437be1259c4f74e986be8a6b5feb15806cbdc9b5d5273b39ca82ce6c4d206e7ed70b80a60fbe5affe2fbc90a7306405007918d2642d7cb53bc5d56a77a9e9c6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dad2bab00a241c2564c61be138c5375500800000000000000ad1b7adcebcf65dff2e8c08c9524e0668ec7b19b911584a57a10c4a4ba6ceed415c6519cfe4aaee88dc81e59226dba7a4b5c0f5d946e04b3e53257cdb7c43be1188226e98789645cb027bf50cef75259fcd9548f71e7e3440c565cd3c05cdbfd86c369aeb20c8bc092bd4432c3d3bd39ecf0a279480a5623e9f5e9c22b4be1294f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22266effa3d82033e2f4d4593550c9fb60b0700000000000000d14435663e60a5ca9531b4c66611590a4a05d14ca7cdf9b4151de8da72cc2faa184c2a834fee9122450bff25651598784d3f80e2cf2d862620379f8e5b69278e5c676fee3e87cab2ef9c78adf1e39e5c9fea0a943ee11356ace8faf356c7aa1cb2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5026eb07554dec16e84f6e7563fa979080600000000000000b80ceadaf01060c08eee1a7d44c293b46760c95bddf7abcb60da50909f3b7e827d810f9c686cdfbd37949acbdd56910614c9e3fabe39e9760223b10c903236b5aad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8e714d18ef466531d2315a4016aad0460500000000000000f9374a26d39ac57f72a526c7327836265b6b72a16c19d0c63845d359c8514d21337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c0045e4393c6e163fc012e300d9e31001040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000013f1ca33cac6aa1f6e746c0f39c73a11100000000000000018273d388608ff32b7a0b187a3f414089640225a5a851b1ec8c82fbe7129e24d81427f83f91d2c9e22355ff86150148a4e833403b432ebbb467b91dd2f487f6476cb8d59e239a14378e2d18e8887a3da5a0def7640ff5ba3f2e34cdab376134e1cfd060d3db239cab8ee2bb6140af851a924b2c91a89819f08f378ea1b6f385b4e858dda83a5ec0fcf788184d0afca38a0969f02fa5c2d6e1a654c2a9ad4d246a295f43d8cab0df555a67a48f2ff2348d417804485169fcd6a456429250ba9210808d5909a3af2ba303ba9b496c915661d8c5d20d664db9ccf98fbf15183f881ecf05a5f704d33d770d0cfece7c82145a9c4390a64f42c11283d33b802115614738f014db6bb2ce958395858b1874a206c130c917959f29451ca296a7e67e963ea7ff1b9edf6d13f1cad6587319d12ae73e0a515a127aa1355e30291f7266330af67d96fc4f1ae2b763fe29707e145272807a784bb3292d94bbbde5c572509d3a7b01744a608bbd789a30207f474e70acbf2b2bca4fc4a182f3948b73036200aa2df1918906a18d8cbced6c83dafa34f8554ef4875b4871e010ff0a3648b5eb2b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc070615e85db9e0c9068e1b8854f7b4c23a0f0000000000000086e9bb0a584f74644812184e41ef00e22d59dbbf7bc0c5ba01c81e35dd4f5cdf401c5dce354dbcdb956f59a926168ede2d28f94c2501a6d658ef854d98b7a2088af6d26317532d708b4f1e0ad43a6e25e125f2ba26e888312e97b2f1e7734d27e5330f5f4b9574158b7b4b627d264cac7c7cb324ae4c9cd7b0a7e6d57de8f60c9cfe3d6d4c3c4775fad606cdcf4007c20a63cfae45575f98d683f564d9cb24d0f6fe1d9a4c6ac71608d7afdaa79314a77a7340dbcec8a343020f0c120819e44dec7aa1245c53455c4a88b5c2c50fa0ca77961e3487997ff833933149bbb7d602d4b4a2e2ea475bd39108048debab7829d6754e80ef5909e4afda73d9d959e8aa272c561a49de3f651a4aa8218961dd558c5d76fbcced75f71fbcfcac11e02f0340df04fa724307f2a59931ef70b4f775f8c539d09962bfacd6a72f5e89a6c6c7b8fc7da5b43417cc4417e91d67bbacd377e9002f00c816bd8e809f5eb01ef391c750708002c77a3bd4efefbc85ceea8f9103c84ba2cf8ef4c6882519682d4184153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19102256102f27dc3108c87219b16ed33c0e000000000000003a2276953eda44287b00205a2d63058bac1d98287b06f134c600c917b155d7fa325b8093bf731b7eb6da419b25ee9341bcde1435295c286028e61074d3c5d689da0ab871444f8496e77c97e9eff4d314e53bb7188e207939ea306f782d60c1a2bdc90ef2f16eeb721fe53d037bb2ef850f4212777aaa6a856b97eb6ab862c45febe2ae383c999d8f21c5283b035acea3ccc00c4623c3b54b2112eb84b2c657835956ced1735bf6f4c1817457011f16aa4dc7f457eb526ed9d47e58f377c2cb4e96dfe42abefc0ae3cd64433b49bff6ebb6d0c7edcee87a05e1634b6fec3ad24512dfb3509e15253f5e137fd8d4f216a6b28134f9034926dd04e8494c114e973021789d28d5e86cd376b854582dfc9da13bc638bdd0b1beadcca1247cf3d9ad1c1c3f448d55aa7fa10e061b109c8fce919a8a7367e0abec62b0a6b5d45559c2257f225d572ac2d59570ca26aa633f56563f52c294b0578e69720a3187017376c266100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d80c9ae1ac2b12758c789ec62d89d1f0f0d00000000000000a2d746de2bbc845f5fa9253bf2e9a89d4f8cb0e336055b037dd771825d0db9de621660aae13eb039caf45586183f31dad4008d97dc81614b3f550e8b68c95c3f1a8137e69959a79cf3ce8b51624aedee71fb7a19099f1f91a5142831fe1603a6448b831d7223394e2457a77a60588f98c0e9b3c2acba525a679f3c691427517fa9c45b9a5380a120a3cd8271661e74e910c299b7879280a3a3581e76400c5d997d227e9f9bac6a84c13562c35b2f0d533af0de5f28b6aa64ec347e0722ce310e169ea3fef90aaa9573069749aab25b600fccaee579bf68e7a0209cdc11bb5b73d90c38fc2cb3302f582de232f7e03a0b7457a341a2fa1e173d2f5544d9e71786a74bd32bbacf79ad3046c2cdcc5f9d1063eec83e062630f7d4d8c7fb8a0d496ae6a4e39d04e518cf39411faaa33bdd97a22c5ecbc38d99f243db446e215edb739176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff962e3282b3a1eb069e0e7fb5c5226ed020c000000000000004fba9d9d94cb8bfb5264cc4ccb099e39de88cd895fc7911701f4a90c036f976df8d01982bb7e5485f9b1cac70b32272410b7fc742f1ba7160eb6e851f94301a45854147a288222977f8a0ccdaa6e2fafffb4d0d520431c2fd4feb8027ac6f9f3ca80325dc6b884b9f26e19cdd3fe264c540b71b67e1acce7ade89ddac9a6d68f0ea0af38741b5238df61a4436498ef5ba88a26ed2f7c5eab2b2ac15d6699bc90e82c13d60dd3f4d9515b1ad85d7acdc348a77a8ae54302b8869392d96a04fbea297aae4e36fb19e67f96757f5787830ff20672bbcabc2f6afcdc0dc34329a8f661debced195c82dcf3b5ba2331640c7fb0aec9e7cbcc845d1599cf21cd8bd759e33ed1c50cd41e3aa45ec6ab527efd05f3adc812d77b98b3f40c0a71aa12a3fa48226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a85a8f8b131484f24d00b523562f2ab2660b00000000000000fc4a9e60d597265c850ff6fd9280816f9fd8d3778d0b9e44f0a561d2da685bc4718bb2cc4cb4be971ae9667290f35e526295f9d83f1cbe0e0aaf9db582e89912b3db05b239c4e0736da0fc22ae02cae9d84bf5b35588ff1e65c9d0409bb2c3765a5d0c290f030bd40597bb013657a8e0b356acc4de3230e099b7fa951c8369744046b079b19a27f8bc680ad4d89949e35077141f83b442223a6bf87c1e633e6bb958a238eb6db46e9b2477ad62085a1ac362e8a3c3c585bcd8c4f3dae723df6d981077cb33656e74db5670c8d990487c7195ddc6c1ed6ef41011fddcd139cff7f87f3fc0c6df3301a9979c46ce9249c5e58497d7bf54fa73e381cf4b6795e24f02b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e4b408c77d9547b4ba7fe185f78fecb410a00000000000000952abc0c22a5bebe2263ec7c6c4157f262dfd9320f8705cd92a1d0864054f5839f7fc51d712f9403a88c06df0330b9df671031117a39e9f7bea4d196aa7e2a143a34c6bb6bec047e30d3d2e7c90cda5273d1b86a4c381d567f80fd51b70e3e7a3e98a6651fb21101564ab76ffc9bb751b43c658e8f4dd3e6a22c57c156537c7c400b4e88be44c8527aef86fa20e678ee98892d7b932ac174ec246001dd75ecf6da212802b6147d155cb79f3c49eb3d9ff6c2d400947ee3faee016e17eaa29c491ba60f78861545c39b00c618a3ca058a59974ee1a1f511b76eaeb2ba50119397b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8d3fd74b8df3de55e37bab3f82be353e0900000000000000bce0108edceaaf9a356cadfa48a2605a0be34fbd597ce2fab37426bbf841e3ba582655c2a58f71ff522e916b3bcb5f0340f823276ccbf2c96c5d0c46ea5489a20a511bebb0a7bd9e810424c57277d512a8c54713c5b7aee4e3906c01be690aca04b55727092521644c68dcd6b7b57b2843b0dc6d5865d8107a32d66227e96985159bd679a31a56e1bcea5164844726e92fc4501dcdcdb1216383890a562290653c8d329745c16aa7391cef54691100339c2cbc659519441cd0d3ff0d4dd1053175ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc7ecdbb153f4331195cd3633dccf7291008000000000000002a4f5c008ef48c38e7b7ce97b9a6b419d41d97255d5c2bd8fdeea4c2e1a5c5b8755a106e30d39d6ff3c3a12295dcaa0a0706f1c7e9c6c52b807703aa6828b107c0c90730cdeeae3e6c8077f26223eae2ccf7e273b8e2aabbdc5f004234c6eda24faf297ff7fc0c268ecd55ea9cd4fa8661417b8fb522ee426594562d252d5e4ae9e2ba6852fbb76d1249ed82fafd8d058bdbbfa8b099c5944403912675d94158ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a69f613d503356e808d7a8071d12d871150700000000000000d52aad12b09825a30728de3b895013eb677e27d567ff40628c7ee62e0ea4f2bcaaa54df7a22c37a8aa41e297d9d50324a02eb7678ef5f713b1cba8a3ac678c2a5b83be9faebb99f34295eae5f3e32c2dffe003e21a74afb43141aefcc5374ccb8b9a7e2071367f037721121ffa230b3e5dd3ebb613c4368cf6b60e801932e116a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ece51d6a307e5b4a224450e023458a27030600000000000000ae0f418c538a8d03da4d21ecac365bee55f983cd1921f66ab79f301db10e7679a387ffb5e338f14edf66cafe9d9d5e8ac5027d6e01a5a6722b97d1638b8e18b91a36f7b870fec922ae3c04949b363bed605391f356bca18200d712dda6bc815e36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c178ab0ff1220997d1284fa0e57b1a66044050000000000000097d6c302f075df24d55f939158cabfb4e7a9b596d4269948e8e1762aad2ff946140096a24bb005345aff1bbab677b1dddb7953eae3a91849c8ce06846cda880b824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979980c979d73390153124fcb2472b6b5a9090400000000000000d601cfc30bb5be7130011456c56dab7f3cc011c72cec94e617af7e0f698e00ca1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2aa74ee7132e8690c3131c611f2978a510300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000c5906c7476f69052fb60a76e1c5c823e1000000000000000f1eab166d6449e8397196925d9b4f015aef35e51fb194e359c9d951653a543520a790b45600d8f244c611cd7534669a51800e58a54ff272c30c64edf66642e917e4e7f1ab689597540f209f8084240568b081fc8786615d7c85261b9c207bacedec9ae8f602abfbd3d211d08baa4da06dc9b7df1bc075e353af8b39f0622cd1dbfea257165277ad78a4afd973f2093537c0e111e99874089cf586842c8e4f5c5c9cefed767b94f60d78631c3c0577955dbd9480e4aeb1056ecd10bd0588c44ebaa2e465ec4588f57ebe5b32b6e0e7b2d5beb700634e770a151948f1ffaa1cf3f80cfbc7f5371ec5679f15eb32bbf1ea332038051663a9be056668347301a5d7cc6bf91fcdb2ad754740b76371920ce7964d841c5ff3f1f8b52fa6dc8b6740af760191dda1bf950328f790e8f25dd07bf14aedb1161dd6f4d8963adb4f7ed0b941106489923d24a1096b33655a3126c0fef15eec5c95e20065da4689d4f1ec6cd4f277224f00188eaa5a34ff0b3762422bf7d1adad3acb1ceefc9d4822e7f0d1accb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07c3c03444dc65a801cbda7338ef9c424a0f000000000000006f715ecb6042bbbffc092e268fee074cfec7de490003ca122976aa9c6feb17f5de713011455f50c5cb8e88922f4849c7a562490ecf001e0aa8f3f3876efa225390f9e743f81c0a30e6780796fa27d733bcae97b5cfb1eb5878c3dd7e464eca94df11e51a111f5e840bb6c174138cf2ae080d478e407a4a83d0b4c54ddd833de67e24c685c5df961893fc6ab52c8b15146a3e88df9a8d97995563d257897e69ad1b048c10fb4a1f303fb840cd6f5fe6788c52e830e491c9cfb24e22f50f5daab8c3f0e7f9b4ba3ea3906e83da62ee1f470a03b0c5f1868d26143cfffc840b39a42880e6963691913aed950436bf744c9d4aa3e0de2ec1a18f972022d4f7f1b2bc13ae49ed2ebb1f1df6c57e723cc5e68281a854680f690130cb2e4b1fd9b4115c33d01e56206ef7e3cfc3f7d93cf4e6aa15a07731457ca74726fa98d05b4205813090f7d6dde7e20d9178caf380830edc05c82975a11407ffe93437d493ec3cd80db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19b7ebdc5f1a3e8e76f4e1444f7218be220e00000000000000fc98583082eb458b1aaee10746cfca284bf9bec7004bdddfa27f16e232dcf7fa1b718bd227366b9283a308b71cb3c35125f59aaccc7e3b93e6eef54425d4b1d987c9681af48746406e1480900ccef7ee953501c752ee3a43688d353901b2ef96267ca61b5747d87e35b9da65465b779f7524050d3f1f3fe59bfc34c8da18f5006bf26d2fa732aab7b95efc89787f8c79b29bfda8016e116c444c3595d4a646b519b974534ff51d6583356a8b69f61b477a10feb741cd1c50867d1e528982a501ff73ec3d4531d8ee0044c7055a882c577a932dc6b4d7938d6832677b2433827021af0fdce520d11b66bb1cc6e931cfc9863d89307be0eebae8b097add8c8470ff45cfa4ac60130eb8f4d1a614df8affc1654596b5c82feff90b5cd8a1b0dd5319819f11f750a8ec49687f94091e0dc65cdffe1d681159dd86070a9f34a28f40524b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d9dfaba3a696d5c170132bf7055dd37000d00000000000000c29e9d8915db4f14e3c9ad9da358205e39c01b30c7114b28b79a6208049f21fb8c93783995d97d1acdf91ad4004bae538775984986e8f4b7270b14d18461f5e9ad211a127265c17a0a0b5460c837fc653080f7b22e27803917b5c073052df1e9f62a9677a2f43fad17942bd4afa017d8551eefd371f3467cf8c9ccac52c35c1a94bd1455afc4c1b080281433c28251fa91e833b1fd881558fa564da0f3f5f74f72125a5d8402828b3d89bd327aefba2b3be278269791ca73e852bc276e684191b748e1729fbae68b8d0e54db49e6211dd26fee57025ad7019c8322248290ac997ebd8dacd4708648e58722f26ca276cba22ee144ff77109ab623239206a470024ab1ee989dbfdbbfe182732bf5f472904436314e7b435996eee6539cc0430707ffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9ea907d5e66ec821706869d560a50916a0c00000000000000978acd4fffc190dcd2227dcb4d27b9933997de5073f462ca6c12fdca070a36a78fdb68636b0b408a63a5a72314d77ab5e0050e83b2c0eb9738bb7589880a61882995ba60574205e316532ca68cfbb22a0b5cb954a63f6f0e79a54d4f18d7209094c256762be573999a6f90500d463de479f39cfc1590fc73c17b3aee30705e6d946ce6e396ec18773ea7a75742f0a62db1d4cab239aefbf8763754a9d95bd3ecf04aafe47a873295a1d3640d575696fbedec768dc94faccc3930bc35e610888b4a77a632842aded13145af67ea1b7d776ebba6221317b76aab27f18a7f95041ba32ae6ad5adf236ec0ab1736a1582b2fce0fdbda646343b22a7b08bcd7aae21438a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8e9e03609225dc42494f9586f18f8b51a0b00000000000000703d9e3c35621a08818c1df556646730f02b2a514feb3e28336d2aa216a128b43a91981848be6a873c22204dfc47f189e3d93be7f6e69aafe9d161d419a7838aa20eb47ee0e77ea714476e897dc93ceba8a22d25981dd1fe695a492bb1aff3a0cac8b288667c4e0d575db3c8bdf11de0e3b4058de686654574a2ae5bf950823308ca56fc3c643bbd4b4a993006a5b6cd8884b1f226a85ba09c14327cf645a4b3259e23bfad8e178fea6961706ea86f1a4bc6ad1e6f41738ca8daccf98001885e219f4fc54828d3400469a8d46c8b1d7428c11aa3f23853d69897c00e1ee3400ff01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e8226c35603a2b335a503286e94e424750a000000000000005256b89f84489c12dd1848784dd92d83ee7e67bc45a2cae0da0df1fbfbc0a85a8d0c4f7403d75bfd8e46f3e7a45117b0913653fb0ff7885bbebb9ec7fecbdfb69853850d015bf3d971a86220ecb5760854dd330154f784442d9e2b66b5f49fbd40d59501c091819929122870d208b119379c56d1e5b165b8ca10f309a4b435b16fed5182f5c2b15abef207c4eed6cdef96b0538927e3039cd0cde581c0ac2148644e5a579c9a1da55e1e0b9a63636675a78aeb15230397d83ab854c78254250c1d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b4797e9032da588309ac1012d88255663090000000000000006e334481ae0dde3eeb425dd98fd8312d2220132ddf074061108188437293aad520ea4ae62320be9ba38d62abc7d3f06ab7eb7b9808bc1fc3807185f819b8dffa3f5fa8bfef9b2956f73a517a03d592997b7b562dde007af36d2067d137a25ad8a41db2282c9bcd4f7529677f41193abbadaa3834d7dc8bb153046b9defe12a3468e97549d9ed3c1a5cbfa0487abc73f69458a14b693a7c1a8d5a46e651358e7388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcf380db25764d1871521c12641bc016640800000000000000063820a7c07cd6d5d92fe1c9541311ed62b44031002b5083fd6fe91c47a5af47afa9eac90356ea8de9233092fac2afdbabcdf1268531fa02b0284c520a34293d45bd65f5a3372383112388108a63cc9cd05b333db94ea64c2a0778ab036800971efaa822ba0dd32820ebafd0b74be9367b63e04a1c9a8838cf707c5453c25995c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a679f2e921d8df2960d7ab7510eabedb6f0700000000000000ebc59daeb8c4c88720d1e75d259ad66f36846f1bcd21320b2c494584c03ea94b8169ccd4a3fc76d438db04c446c822cdd479585b4d7a151965533b4d00d235f6ebb571532d30f2b323c96adb7b71cac56edbc8895af1a50dc285df5306b3c3ab9e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec096416716686e300b032c019133a8e0106000000000000009466afe97eb3b4b2aa1135f793c0290aed0d189ed9ae8f32f586680e893301b77109561fda231ab5896a4b509c7b49303b0e796ff21bae5b99fb6ec7d00bd8c9492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172fc9420957e5041ae46ec2311ce4155305000000000000004f1f1b2fd8af737ce82071be8f42b079686c51788bf719db79f3ffdc08848eb1d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998703fe75862403e0f62e29e1239c5067604000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000030b1cf4c3c44e2206db49c19d0b17a561000000000000000529f40896718cd2302947f1d4ed556fd936fcff003ad45ec2a7ab959c8d6fe307e56e1b4fa8d86e2e44db2de77fba9d2f3937f5a52ee88f13e783ccccca7d339f7ff7355c2c870c23fc798ecb26596502c01590afc164b736e5ddd1acf7822fc0ee945f8c0a0e53cbd2d7255a077af156ff504d10236f04a1b6a3a3a045b560c2dd72c32734741cfa2bf158f4b684f561d6a08383aca63ffe2a130cb68412591bd2e9d5ae21b44621ce11d44af9263e3eac3943f34ed0db70fd73cc329fade2b6aa308298ca6640d9f471c4a2595cd21983abdbe9f641a52f3ed106abb791fa91634d62e1656c96c79846b4f38bc99df130a84ae64b9156647e72462e5b90a21e6d8318349d7cfd9478c05fcb7e19c1df6d2e2cf0bf8861247cfb46fa520e5c57dc389dbac22357e749fc6d3c8a7d03ddbc6faced5c7a4d09c4b56efa63ba1de514b6afeb7b7524791bbe987f2d2d668c008e5a147b13b95ef5ffb0a4f519d1444254e0619bb4ec9d3f056c9fbb48d8ec7d6785fe13b00f112d621ae01222ec17c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07ee0131764d883747bc341168db9d7f690f00000000000000079fdbb5b2c397c46b4670d30653d863c56af794757581ef5f82b6e6d22ab1e7ebd0d707e3e8ef15bc6c84766c0365bd95f278e2586ff9e1b9406cb7065d41a353074e73ca960c31029f2968b287bd2c66cbaeeb83b8b4925f583d0d90321e99553947a595ed2d1c3dbb7c145575ba7c25392a762024b3dc2067f596e1ac129486c3d4261fca9ec3a5f91b342f09f2b0d1f44c42e8b9e4871677f85f256f45b02639b1c19bfc0584d828636d8a2fce478d3881a6f7a82f05f6d3b7a3a97b5e7a135ad59404473ed53d93285869e9a117c8cf95c1a2ac08f1a5ce09a5d9d591368fb9cb1db6529dbce5c092a3b49a1f0b544864f23f344d1c33286f408a80c07bb7f553d026b9ab4ee320a0d00f250443e20cfa578f8b0706b6b5f734ec4b5eddb0c9069c62aec68daabeee68950fbdefa9e5242ba2f12da7f3dfb35d4458233def607a8a53c1e7f9a19a15a0f5990b8bd64e699f5717a2e9423d50f57a4987c45a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19fb1a6e223319ab351bc78b50d1724b320e00000000000000d792777656cbad572c00b81aa6c9d5bb4af80c9fdf1eede11bbf0d15e0ced93894081eac9d80975a703c5ed76145d7c07792f8237ae0d61e8397fa9ceee11122d53ffdb28a593f20d78c3b19d711bcd0013d8e7b23380ef5fb8d56f35ac274c35d2129b5298f99b53131d5fb2f45388e72b103c7af187b01f7b544b153e2bb6b7661808a48d4ec403f355f1d46be1b4b72fa15da4434055c74ad22d49c9c97563dde90a57db5f9530172282d9d68d62cf0982113769fe3aec5dd13fc0658a1b538f7f4825a399f3a21c4b5f379aeca444c1a5de08fcf4b77631e56d37c36a22fe8d22573816b3040eaf092d9de26f22bf70cee4d0a06e6daa8319959317beb1316d0b60a649d977f8f1ed95cbd2b3c9b95f46a163a91b82a2c7dbadbcf514bf97bce60ad5ba1df7db6e287ad2f6923ea6e023ca02268a8f89df87545ae12a969b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d8c08866b23b48d65801909456df89d740d00000000000000fb4e3bd85a808c67956434eb6e025bff4169c3b9dbb0a25ffe3731e43837e3d50118995e1a390882015da92da07379d75834da91f37e4a8808474f1d9ae79421c52fd0e423b667fc57fb04f5ec6fd2e53d6a53d22a60f3989803884b4b57a1dc5fd810ec9aeaf2da5827b9f4aa41651faeabdfdd40503fa7b331abe870647c3b06a3f2ea4cd1d35229a01b599d0ecd71ac946a7f2d6dd83ad3dc9a8e5ec12cec4b524718c6b223e0680fddad35b1e231c0c4c49892e3b78e5b0f913f09eab7f01bf39fbfb1f2a4ef9a76e3697a9df44315e5c58887267172b8f4004f549fa1c4f8a197ff927d3075249103064b9d677632109203091be193bd8156a16dc16e4066edc23e27e7699267ba008576fc0b4c31ebf7406005b3b9c9723883f44287cb72ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9de8a3626b30236433a68a37097a037770c00000000000000a9ab654fe0a6efc1d53e4f9a9b353b269771404d844a0b0d5f75cbeb0484847fe7ee93ad8835e3babe1b4d166b084ea25cea17bd1b830446f91f950dce06845ac5b47fa101604f771e4869f280645aac90a424103c38189110b06efb1a51b81ab0cee381d899e76d8f14ffa068811438516d76ad69284846bdbd2bd0c98b6cc3c726f63032fad1a53c82110439c2defe289990e39d8a52d6a3e720635bf98f7d931b949fd34a48e03a7edd56d1eb618016eb3d1344e2add63978e24689d0238c654d0a9f966e1b7ceaf350a444aa8cd2f27a2b1b7e0b9a57edfbefbb298032e939124992fec6d00b4f230b85d8aaa94ea0a91ac38021af8f89c2a63c24849010a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a84ed27a21d2db142dd48d60726d9132270b0000000000000008bf3875c65a302cc776d4ac66eea9e4fed0ee5d2eb43d8b5cf267795c9c3df3e3dedc46e93ff68467f0506d2133d4834c8a6e53459d1850e7e81c655f98f8007ccd78d10dc07b89cec45cf1c0d8db2f672b996c4cb6b62fb3781930492869842bb051eb4c6d5a38dd81c99dab6083a4e8997e65205f1e43ff2469e455bebbf80fa84357a4bd9c18e4017280dc80d5317ca0cc3a6aa099d49bde1a6129edd41c23376685c7ca7864f7446da2c35485a0b7be3a7df2b8aa7f82cebc99ad11f839fcc09f135f31da3606d1e522f7a9b021f4d95705f3e2728d54af109929c590fa6d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ee205b541a72d06509d6efe76d6381d520a000000000000008c13abc78aa930112b974037caa84ea803d4abdea85a461cf53409b343b0074cdc6051bd644c71d66bc948f933eb1b0cca297957bb0163c42c950e739196c9012332db7f2c9f4f5a902b53d0c09cd38b081c35ead365cc3ed906ab02685a0ac8079c80e219a5d36b5c51da8aea952d64db2901e67b3e46dd5312e3200690ce67a57ed2687ad267cac33f8adab671acdb7eae6aeb2663d871c6130246468dd4e21a294f8e6d54ede54951edb8dd277782f99ccc3b7eb1b4fb1d1f7f00b7ab5a6388ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b4357955885c5506b256d1e1a45cfdc0e0900000000000000a1bc7e331647113a5e02f42a6ab51efb6849267c530e496ae0a0e62429e2dde2278cb589c1ce87d21ef32bdae93916f5d2a2cb594d7d013478d7940ed71997edb3d99cdd5824d150b6175448216a04b80228eb30f1e9c79d4d6772a0864f22b121cb11e7c54dae15419917867354a43df8318173d4680e9e9765ad8b69a78440311357de1a8bfaf10c77a5f50345c331b40bcb3002f3ea85e1a32d3f05e4d783b61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc305ee661c333ac5f1c89767554956a10080000000000000035feb00e2c754fdfab7f75f5b3632f0231d39be3827a5fff3b1a4dc8e8b32f78dbe239512b8d85759c1afadb05eb47f3bd4297592ea1e1982f404f5e455c4819c07f769de7f9ff703637b020ee5d3976f09b6167e1271ad2a03b16366f627b3df18d1c5edc390d2cda509e191ad841857a62706e03ba8f3cbf4c2cca007a8be418f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f737495f92d4e54291e164287cee526a0700000000000000552fab386fe282b86151813fec2444bef7d1e51ef57ebb24243bbaebd95102ae38d4bfdbb5701f79d98548aabb701d1daf9dd20e7bbdf7805c263796420198d925485267788b493e7c35cb97055fa549c279210a7562440aadf740baa3bed148b256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecf76d7a17e90bc5494341fe5494b9cd4306000000000000005b81c58de03b00bf9f1cd1b80f5e7cda5cbab9bce6e834a17e7edddcd20858b8cdb955c0cdc8109f9d59f25c6b0566a3efbcee0c2fc0c171e4d8d2006c957bf7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17ca65bb227218ad21021a656d0319c44505000000000000008505587024099a9b40c83b940ceb7c9d46bba67b8e0d6987db7bceedf5534658a1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af54b25a3462dc5b119f50239f83f36d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000903f504d0205411d8647be762510b74810000000000000004f6633da372c4abcd39836c901da7ced5d08a99f9fab070177e62c1e2bc156cb8854fe2cf6cde47c03f7d11895bb46145ce58df458fbcf021b5e2b501a5d6185f33e3c90756872e82166750f52258fbce1f1b64f93756b7708ddda93ae1ab5c8a64f1faa0ad9b132fc164dcc97be7836a7551f506c22d03463c5ee1c720bdea04875c629d951713fac0e3b9ba364c6f0475177a6c022f935e706ee1d46b31c1a10946125b58f8286c41e77481ba5ab17a227b5c2871c5cc0decbe9408720c6ca97783a75f225e138a46f8416d11a22cbe978a8a812747ae6d4142f4f4bcb78088d340985ac782250902b59dce0365f82859984e3814b0e6c6dd04751c2786626b5e8ba5cdda4fc278ddd5425dd0792eb747191aadc95db251ec31bcfe8742ac03a914e26c0a93b34c5f76a3cc05c4923b6dadcaac1d5827ccd1c543201407647c1158d340521c70223f88fc5fef92f276bdea2a91bb80f1fedc1ebbb61ca5eac251c587558c0e7c9a8b43613008536a9d5ed92bd612d0d5909fd62aab158af1d4de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29c8501493680a065132cb54647f0cc290f00000000000000df51114da60ce93fe44b1781c917e4469669784e292f2287ff6349368e4abe7813bdbf073f758d911fad9aea6325eb721ab83f17579c7698b1d72809bd211798638065619c7644a7d721bb5cb6a5a3851cc1e30f19a05c0090c4e852da44668ba00e07eaae87e80b7245bada072e7acff33b2b381bb1f39528a57a22a5958d1e0c15486fe472d460d610dbc4bd73c2e15d001038f3fddc49d68ae32fc7446818588b3251978a0675c7aad3b9f1e99f547e8ffeb9ef0af431bd59e242f40814b9586722e364eb6e336e0293b28ce158d2abb00295eed0032fe486d642093b07303bef483b60839446e6daf5fb3acdbdf3e6f87781203f9f17f3d5e68a3d4ac5390eb829e7bdb07426dc66deb026a5b5d2e0d244e491879b435dd56b6b517b14a6fc7e01982c23af119bdd9e6edfabe9932220b8d658fc943d02ca3b663cc93c78d5303092b3b297ff85e5d43f38251343fb851f8ce9f8922ea9225a46a3f997d0896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5281f772120990c85450c283b1bcc866d360e00000000000000ccdce1b19411542771f1cefae51f0a6e3ff8462381016c3e083f76b4b5c57805da48bbc35376860f0f835e18eb45da9387e14913fb8e81fad574d0954d59c5869bf84c47ba1f9a330aacd1b45d082e7d83febbf963ad85b49afd6e0d5a2cfed02b09e1cb065a5eab37252518d1387ab27b255d5c6648564f407c5b17e793b4e615c2ba4570916a8386b1e7d1dbf5b599c93ef56a2bda03db9515569bd770199181de70f6c66c3cb1acdaa1181ab4ff0dbfd0cb082fea9adf8e19b36211574d530b3e3380419d74e2ae3f3ea6be33154d709ef965c33a39b95d720a471c215f3da9e181eb5a437d5c801ce7a2314ae0ed543fea8ed902d1077e9b4dc9300a1b5b15eaf557321a446702e0d56fbbb432c4ba639623c448258009225184fd279b41347fb37d59b3bfc1a8cff2ba9eeb0a492d026e76836e7575d69c29d30be9cf821c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6851dd1e2ee05cea66265e46454895ea690d000000000000002818b799aab26f6affb0c65bda60dcb65c55fdbd5489a489da50e426289688b8975c0894fc4a08f1a3e711eef135513829bde5a9c2a3963856f6c9621de13cdbb42f3a40da1eb9810d73b07c2e8f38d04541fab8db3b35a61b8a67f589c608faa8098d57a8ef23292f342eb2e0161e4ba4621aec44b8462460cb32220c1652ec6630758893e7fce4181885bdf08c9a7f8813bc1bb2ad77fed03ed2ef5d2db2db41e9460cad01bf7eef5da3daa3bf76f15580346d694892661acddbb0671021dbaf9898358b59e3a765fc68398912052392d63affd5e9886d56b1be15c7e28ea167923545884e287407447ccfba46eee279d997569a6f8fb134f46b55703d3ff815d85f4d7efd8d52580a8b986cd58d2f6ca352ca15a8368119c61c61f3e091a4833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999f1eb3a4f1c30286aa65c30179307313f0c000000000000002eedc3ee76230ff85ba2c793aa830fe0709cd3dd5c21295209ccfef88bfd1cba6205bb155a8e0bd11652def71f2f700f60b52f5bcce4092ce03c1c0f0efcbcd3daa6342f29a54ea651ab0b4a64436a15a4665651d8dff1a5f45f4a375845d6448b88894321f405605d60694fe31b589511ce978b426415b729fceefb1c49733325a3d9d1d37649857bc29e63e048106a5cca43b4d6e3f7439c328ca9148436044053ea5b6f9ded763e15f8cec6310e93ec4f2388f2706fec31648e0d7dd052682986b19f7a8a0eff2d4168b41e3af6e576bd6172f7653e6096d8c912278b0af695ead5014726f4a2114e2ecc9604ec4100127da22229de3b3f1b98dfdb198fcbf20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249cd7b9b0c17255d7324839a7072408d210b00000000000000c75be0569d831221f005e998b48f6b10df72104d39ee0487ac49543336200c64a538a2e51d299c2cd23e03da82d37620136cc92e99c9b689a6f313d35d21d5f688480d7960360a2f68d843677cda8b95213877fc9e4cd2372889f9a0a591e6321f47c78e659f23190b3270e787c874fdc413b7b86090e03dc8d5f8cf777e5a383974e9f97ed12a5f06ccb4660adb480a14aa19bb18d0c06d8f7252339b98c31361151f63eec484d34b5ef0b8e9a7fa595042a6b0d0b9734c357af6995a5d450a002b17c6478ae6174d588f3371e04106e5338c4a40b728278a7e0a01756c3c7ee3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cad64c2429bfeca4b66fb68039073044b0a00000000000000f77f3c619778f59ea6f59cf93c594a91da896092175ce6b0d8807bf70c692150c6ed9065c2fca8c9d05944645e3d8489c2caedd3106f6a32ab6e0d378bcca900c0f1492419400e46b596b88061d87179ee2279b32b09dcaadb28d5d097479e1a405a8f631a1a2f717fa47c5fd24ce3c9082b12ffb2c25f326ef5c55ecc678731c232cadce2a543d8a38d1f8d3e128c5a0c024c6e982e54186f78891132bd2f3fbe9d1cdb3babdf31cebcc04f480eb4fefbb926b5acc5cde4f0e9d395e529635dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0366daa19091abd48061e3b3eac6dab7209000000000000005e594edbcdb994a6940a625ce0b777e00a7f117d7aaa963926396c3378e450f10dcf1d7671b64c7c722e344cbcbc4c7c7c51510fe01efb2de4850b11fb9db56592956e66298572070d703fec76bbd47173a251a677f2e874e919508aa0a1da909cc43a72cc77a348c9dade412a23f63dcb64eb6e19be464311405e905bef2940eadd89795539e440304a9169e069cc77430bf785cb00782174f50a8658ac886542cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960da8148c52b52a90455b724c003b5d64640800000000000000779a77626b43c04172fc603d38d2927cc9a34321ac0a8a9dd54497416989bb79b097f6dbc2c3a11fb28cb5964538253a79396081231de65cb216482b9e7d52dc0c67c7da8c652f67bd1279470136c57d4ce45e5402bb40960ae940d5a2fd847d4fa9d4c007e43e13c580148a77b81d96cc6f95fb7b26a8d42859fc6cdd60e80224c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2227eeb1011dc4de9376e07b365e96a415507000000000000003c9a38dea7bcd928b986aaddee9193a342b2a4d7a36a9cac95f747e0303ef70c16acc5c0fc50426b7f8b8e9bcf323ce3e888b24227d7f710081339991458d62dde43f29482bbf15f171e0c761c4aa3a5b64d4fe6845e21ba7e221e4e694adb1a3ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5455a515cb127c9555e71a5658c70b03b0600000000000000e21f0f12ba19211c523dc8afd14ea291b0f70455f99493d20d3b0b217c2c88da89de7b6741bbfe4539dcc223a3de013b839dcc25ebc3b53f9c2a8303492b8c9370bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cd3b5d6512ef72346d5b32e27fc68266b0500000000000000c273f5d1d1c5006dcffbc50b4559c03ee0589d07bfddbee66e1ac97a2691233dbaa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c2101204a86d4654011a7501c99e4b00b0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000d64bae07d3f95c31c65ecd02c9ae144f10000000000000006ec21830354ed0c91b0595cb25a37af8e6284da5f5951fb78b7227d1b874518d84b12f444adbb59cb4f4e6a7a1171d3465fa31727fb781724d3e4a54e396a6734fca0af1dd128373d3ac96673020ce1bcbd4eee8e1176ef57d8eb276411d3532596bfc6db9c215e8af30b2b4ceed6838747475120cd05a9f04226ae0f5586d43d6018aea8eee7d7825aa6d1825d54cb7174b5c805d2a67a6d88d3d1b0dfd708cf9e67282b58c9efa01b668ce934783c22633a25277ea14212de0d1fbb0611ee17774c5d5cc67518fce5f33935565dd4ef64ad25c267e65625a838f846cae48e0abe6709449a25acbdaa8771431a6438ea9c57dcf9c7bc196b99a6bc87917cef7784487c364582c5a06b66f4e405a55cb6101203a6857d5f33aac7677c781fd1e0bf57fdbb5b5ad7f8ce79d00932149d25ce0135998b9a674899346278786aedf5f469f6f85f8550407f133b757d9948a8be5301eb21862257ed57a85016b63227595437d496d8d4791ad79b65856a87a5674aef36e282445e45fa212f3748bbeea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2a3eb45455fdc8872fbee307377ed0d0f0f00000000000000a050f6f6762620be576169f053a4ff3a9670c7b6360532a4b988cee24f88838beebe36851607c67a156344c0887c61e6215b11649daaf774a3a380a6ccfb1deda584c7e13ee54d248edadcc3d4325daa4783d907595212d57b75468940c4861401338be72531b0e0a422c4fea66097f049f1f7c63d9d7d1e02a8b6703c80357449824b3bd26139c2eaf495f607a1293e1c98190b88528d5d0bb6912f8ef7fbb0ee46f4f6e2e53fc621042399a92ad552127517acc98f9914db70a117fbfe3ad193a3b8610249db75bdb48a500d90c5b3dee748a74da98cf7041bf799d7f443e71772f97fcd0fa7453aba2b939a29f6951a1bbc0730e5e92d7443ba89e5ba7cec9d8ab971f7f8b488d33a903b742b587104fe4774ae94dc9d151d13f98de270db11cd9582e6899d76bffa22dc104e2941afc1a2553b8ee7a520b42589c978a036b7fe5eac3253dd010323dcb5f08a8641d22247d4a7386be484f1618a9b8b414c872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5283162294db6281f4a53b6846bdafa5a080e000000000000008d00ffdf94f59bcdb920194a46cb1f22c0d0ef00b1ab2be2458512bb76643e0749962f96bd8e65f81cc1f378c2443fe46d2ece8719870aab97af957f140240df0c0dfa8c310f6304de18ab27be3cc196f7f653167e0440e8f7f0fe197faefa90cef4b28c8480feb221f9f0816c1455fcdff689e4ebecbc58ed6ec83307067a845fb1a21787ddc9929d6e361ff766c50023a6400a0960ec07c1927b3ce9f74ce0441f6fdac1ecc2fb969e1a3d1cb61a52e5717123d3bb5f33fcb8b283707b1e32bcfbcfa4bb54768765df3ca36d3c91e5b1aa673e5aad0efd7b2be19ffdfccacba7e84c3cac17716331bbacbe6dffbceabbc414731d0def6609169d141bfbcb3555385f4ff06f6f93d84f23b6c61d3ac013853e36b42ee384a7e3ae92482b4adfcc07e14c7a9b7d223c05e22bb3968cca24a63e81f10baa719e559aa643508f26175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68c73755567a868a16a356634eaa5d6e2b0d0000000000000068a8470334d44074d652135d7aef95206993d5321aaca23df18ae37feba7009f829025a00c39b0e72f9fbf5d5f197284d498111fd691854d9d75f5cf7228bc263029a8e288a13b8193a9a409bd097316d9d8acfbd019bb3456f89252d82e3b8644e828abc90194e3af2fea67812e3b8751a1c3eee6f88bb937d929b15999e3c1519c6e5f11027e7af84d617e7902dfb45d7ac227287d3cee7925aca4eeef18409019318df881e3ab8cc9863480998da455f7c0a55f403435046b0b98b389da0615a464b6d2a831063de4954995fc28ecd0604c94cd12edbd34f167a46675e4aeee778ad1ff982a1b1034b9018f19660083a8024e75b0758781e23af675320ae0ded7590d1724d5591993a6a38e6cdc2bd0b7f9d0c19c5a8f3fb484e141290e052a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999b6c4bd5bd84f586883b8ac14b61cd7140c00000000000000b584e8c27c142088b953b82d39b73122a56d129507be8387e32b28bcf69ecb7249193ba38da9ee5cc91fbe3f4b6cb579487302d7bd0e664c933cae27dc7737bf36170e47d52159f915597dce95ff76be0d822e86e8e8ea24045a629e80dc7dff3a913b7c32fa5e69bcf53a3f4b495bdc1b9c443a9b64ad5aef41fc0e026ff2d831a218ab470c18a6a76c6ef482f33aa8855406b623442fe8e38217f5e51a0f9253d173b7f65ddb046b9cfe622140bcc71460cf4a454a6b18bce48ad6f2eb377b8c154186cdcebc82544b98b440246b09f43fdc8b79864eb91735da6f3686925e05cce1c7bdc9246ac2409f652814fa72254b7c7c033b627f6cd74a51087d5b3b9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2494346e24200cfcb33cf922058287ee54f0b00000000000000ded67d2c30c530c5e63cb8eba9d060ccb1f68a54498a978cd4aaac1fa7165d475ee01fff88ed8318a716882c088079a0623b951d79726b345e32b4f26a18526645cf9bd364057e2152ff25d3f9ed3915a5a8017be39d147c242b8482e8af7b9b98d8803c462d7dddae50a710694a790a6924ef65693939dd60cfa8cf2b5d293ff4d35c7a49df720ee90f02ef0987dae83759ced70d2b3c361a422006da59b979d9a923d232b1d85ab0fb60ebb2985b8b3533846d7a67c93ea03bcfc332c756bf569b9292867816e440c0ddea77c4ac571cb9cec7a13598f4385e47a17b567de08de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c615b7860c81771514920942b875356220a000000000000006e9390fd57ea769158cc4138e296f28069e54226207c260b72e26af9ad42a989421f918dba762eae9a7145cab12b78bf58d2d67357ba7e4770640ff8a15059c26f85cf8275bb849299e5fc300841969db2a63779e3f0e48fc27df421cff6e98c9c49981e19a8ce5aaa8ec6f0fcd49db16ad570055ecc4e63acd3f16c39a7180bf0b64b72c7b6dee1e97198ec643a261917959d8db0048bb127e24c43184dd8bf8fa106a43f7394d1c52eb0fc00a49125effbe4028956a738c1ee9aead1156d5abdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0414b2d2c4ef0a84d1e5fe972b8c0f14f0900000000000000168e94c019e1408d986de77773ae1696d9bcd1877d866bd4708668a0119ef239882ca266524383be1794d0689598ba2b0bc68a06a9637a00a7fa87be3fb6627ab13868e3825f5078d8a6d0e6e1a99ca7c6336c1156c3e069a7b8fb589afddf89b35dfe45c27c5502e4a4b8c2acd21b41fb1877938509cc9b413a50b0fc3fff2a7ed70b80a60fbe5affe2fbc90a7306405007918d2642d7cb53bc5d56a77a9e9c6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d45313212ab982a261915ad5b3672f10108000000000000000158c3b9186c0e8f3c7e3a08f5666309ad1ddd6b694c0c5b724f67a7627738b09ad8792d26b65f98b4c572a28ebc2bf83e063c6aef2c6643069780925cb724bc8cbcdc8c73868db76213804e80ecf887deab839b8e4446e5a3be4eddc95fe28e86c369aeb20c8bc092bd4432c3d3bd39ecf0a279480a5623e9f5e9c22b4be1294f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2223c421a504cf8eb3fda8550214e4453760700000000000000a61bbe995c28489977eb054f33b9f2fb7c9b3a3bfe0ccb0f525a7fb6a4399f4dec92e0631dda58481024058a457aab213c555a30178e0b9993e1e396cddf98275c676fee3e87cab2ef9c78adf1e39e5c9fea0a943ee11356ace8faf356c7aa1cb2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e1b3435654ac516a14df972d509f7d2306000000000000003b6a555d69ed7ee3d28f6d53775d8b9ec20fe79b9ee57afba362b32cbb3b10d57d810f9c686cdfbd37949acbdd56910614c9e3fabe39e9760223b10c903236b5aad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64ced676f278bf1766fe0450777a029f0300500000000000000f9374a26d39ac57f72a526c7327836265b6b72a16c19d0c63845d359c8514d21337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c0045e4393c6e163fc012e300d9e31001040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000003f549916a0468e66cc449b496367500610000000000000006bb96cd4cca5c118dc4e7cf8693838c03941f359c33b185eaab84f0a961ec7389deaa6cda6d9040aedc674712b2a8d146da620c19067ec66d7794df62fb4649dcca9bbbc7c9136a4d3f7f2c486fadfceef8e19e1cf8e03a5c9033204274bae4b48f40d301aea6d86247b8a25688691fd0bba5a867d3ee51f4c1b46ad1c2ad7790a7141ac9b3c77c56c6a408aa89275d9927a7d009c5e5208a988c30150aea26b53f113c121038d52f7f77064ce14fd164a858b39fc2c0d4a56f1a030623fa36ee72a8b08d38fb456b247d783c70213706a01dc4354718f68f48fb36911b682aecb52d0a2b01b277bdb7d5022f3588b3fea94e292bfc8b2fee1958c5c66169ada17f9788786420893ba51b71a202ca4a0ae5b70479945381ab34757a122df3fe242a24196f42ea9375574a5dfd062ba15022113d6b8d672d04394f5ab4f376a86de89683e46815a7b989a7d2819ee9072228f41b02efd64aeae4c594a5c49ead083f482217e557c728b44474c76a7ccb40a223592b8781f3f5e97c753e13161174caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa266fcab13d7470e6a9a0c5e58683c2c550f00000000000000f85c8df5ccded55f549a4439253d8203a3ff3463cf555ca4300c3572bb0620c6e9598db5433f1ac704efd8a29709d27727171aa1838779e761e50a7b8afecfb3077ba788646b7fae401ae8c057af8fac61fbc3d03293f600324424cc161df07cc406f568826819c5b95e15d1883b53c3c7ba31438ab60fb5bd80cdbe8dcadee5bca7da234e157021a510c16c98bd007829361d78946577e3093e4a740f93d2280ec4d8d4a4d583f98a9f107235ead4c77116fdba1af22ec031f5b443ab2ecbc8216cb74ab6b55e42933806dee3930672e7f290eb7da853fea6b223354bc898f4889e79ccd8343f77e8982178d8b45e62d852f12bc0eda3d5b6e013fb27189446b1b2b40fa8d90dae2274ceb8c9c5b1809ed57305f9a69742cee216d9f5248bd0e41e88fd1844cdf7a8570ed131772a2d9d2183ffbf3b08208199c0ec4595f5732a80ff3e92c1193ecddc558f269b58c5fd4cd9f22a1245e6b8b4de30674c68bb9f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528ae099155db122824ea9a7021a707a6220e000000000000000359b86af3bd9dd8ba13fc79d546d2b86b43c986540b37d8ff8a62f6d9a4dd45ac78065c1ed20dc15a5a1ce6a7cb779b7065b69fee384075012fa3f5d93f4ca67eb3c0f2cc0f72698ffa58bb2f8b29cb19fd6a2c9cff651f117f07c96f25ae91c2600884aa9de53f130f518ac029b7b55d213b6493a5a58d4331581c06bb77dc4856ade494e951ab42ca76bfee069797b37142c7ad1f8727676d2a33f132d41f10aedc6715e5239ff8fd8fd859ae8ce41040ed81c497fa1456b5aa748f62dbdc09951e320f9c730bd41149e686b902ac3c6820aedba637fd79778d89d54a717c049dd10db8f15b507a1a6738fd05d54d38ce9f2e02bb0159af4ff25ef84666260e7932a3160fcccab749f8ed915bf541f698f5c667d7b7d768f283acb0c316556965310da1d4d2d16bf6baf538b8bd7920fb04a3a955d8a94186131d831c27ee9a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68b5595b661cce8850dd8e435cac53e71f0d0000000000000086b20d0b76a2c97ad7d2c7ad8ab4996e226715d2fc6f961b33aa02e91195e37186862cbbb96b0f4305262eb75084c196f7caea3b4a77c95dbc3dc346951c17c8f775159114b2f54e0ccd148d1c20a47602a1d7c6d43c624bfcffc38a3dd6314d2957cd3013e94221eaee5f1ab38c67adb61e0d71c42dc3faafc6c15e5be0678439df94f5245ca7c2d538929f90bbdda4d1332a2f96856098dc8d43357783efc8d6562277b1b5fa97a2996df377c683e5ab9a4e92f21c16551b56bef5dcb8cb7c31d265ed4da35b26cc8687aaa02a08a299bb61c9c35d0c109f9a6ce6aabf1eefbd80069eca4f089db8b2ab1d72a1b4888d5ba9cd8e4144115b1a8510694ff850d3083687c80b0b7b20fddb1fb4dbda4856e3db498bd39876a6ffbdda7c8d741e3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899992fa0ea1ff9491a6bfbd69848a5290e140c00000000000000c5d7cde5d9b29aeabaa76458f8523a1a065a1e6ce5b77c4d093e73794bdcc2b078ca9b500bf443754813b6bc2d143f90151bffb010653697b1b8f6d7821b72264eb62d67a4167cf155dcde71a77f7f7974c81ed94f4697d0c77ef6a3a55aad6bc641a6b0221b2f5f2ef59161b1211870e7560ecc5bd112faf3872e8606b43f1039b69d55a6942683b456884067afdcb30badf45525f2548bdbbe3a9e1cb4502d2da3b322961d7664b88316dd606fe6c4fbe3a91e57e3d04bc06c93c23e3557ee118eeb44d27fa927cbe042ba965c5c5a1313329e6b15d88928ed00b6c730c4a86ce27cc280df57b6b72749399ccdf5a499f9604be3fa7349710f60b6ddaf526e18a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24961d4ac44d05f1f0fff76e53c2106c0060b00000000000000b89dfbcac3ac240c5ded149d56f750216fcccd4b0bdd81f3d8c7fc12730573cd09c718ab8e736393b7a2c20488503107d17dd8c4298cfa50e2feb889a4552cd754752c30545c4042088d2124a0ea497528a793558730bb207df816b05e617336e75c2742ae6475870804282899091c7e701221810ac82a839c0ef79b3bb71cd74ab8ecf0c79cb401ea0fd98bbc285d5939cf579fa2268018992285e46f01796932486e3ea01b26287f61bbf7a74820b5b6a4bd748d11c5e0d11b689dfa812f2a302470f29e83031f6c3a2dc3a7d979eec42c2100d5f1afb02cc5fca83b7596a49ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c7bfdc9122506755caa120512e4e59e2f0a000000000000002ba5873552424bbd3d92a0151bf970b0d9f55773ab88a5f14c01644854ef9b0b5a54aefa625c67d24e13f127c64d5359c15b5f37e9a40069207bf8e46693499c052445a2c440c5f0511ba39e8cab0abd4cb6afbd0460cb914454b41d2e77e335c64851cb97bd86077bef7a9d8f6b913c79a1826900420a333b75c586b1b835d3bd3eb66c05ee91b9f745cdae94f57bd3545ad21d4bd66973b1730fb8008ad4203c8edeabb54ea12af2f61c2922cc3ae3b21ffcb5764c928bdc3af07435e6869593fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c07bef0b4447f1fa03db9f6c4fc962e54d09000000000000004e634a3b7c9288871f4a5fee6ce4c4f7539b2825d9fa16f4b75b4d1cab461c6be21e988b1313589536c37ac7c12a1e0fc2e88b7780815432c131bc95ed7907d5a2041af0256f19d34672c3d9788cb2f83b7577a77ac5469fb217df13fb8a492e9002caf3e201245f4638ef7f0c811472ceb84a0e6eebf3903631dfa729fbfcb30802b5d22b0c84523b83909b3c0692928436d0745860c11442e26c33047191379e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d8540933092cbff3ad56045590579fe6f0800000000000000d72d355b7f8e5d178fa4842aa26b53fda552ed173312eb3d93bef75ad54b5fc1019c5dbb5443747c3809d1e401347cf2dfe4afe573ea401823ba91572ef8336ff75de298c75fb65f7ac4723532253d6cf6f6e627b32aee4ed20fd5aa87ca323edf83c62d658c607ecbfe60a0ab739fe3524e853004323d1caa9218f41dc4618044136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222658e682699bfd92f3b5e6676d5cf0177070000000000000044378e364141ff10acf21ada58c392ece9258320a32f1de2bcad15d7386c457984d3f28a7458a7b70d462a28deba10bcf54fa47edc091dedab30a1b7c681a0ea64a73b13ab1a6ec13d26eed193b0d09a12934d88b377da638cbb1dfd72f712e5178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c54c7e0006023e781b5fa2a4707fd8770c06000000000000005272cb3042dfbccf42eaf998d1a5c199c6573e32c2fab185888753fc6ddf0eaa58164f9709b08d81b04adcd1f8ac8563158f612c36c3472384a88efeea3a19fd993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cd89e3d2d14d8713d37984f4ceaaa69640500000000000000f1d25e0ae3482f5bf1cef3cd43531e31b9ea871afaf9543fe8958173efe1bd0f49fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c55a9b44e8b4be55edf132b4981366e0b040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000008887c5444d474568803b85069461ed4a100000000000000094ea92d49fe3581d9f39527d025309db59fe997bc68c91dc0c17983fc6f8bee1905fe2092de33f6ea2c12feaa0a34f3c6a77003e4083936b27264e39f9ed79fb527bdda037d5021dc092e15cdf2b0bdd242bae4697f98057e8dcbc3690842e764db1de39d66e43cc8d1564bdea59fd5c49028036e676244739a916dc8f2d7d3f8d652334aacbaedcf7c887f82a1c633f4fdc24eabf9a3839a3ae57146641d8cd13986a8849fda880a468813e47da696ca9f6ecd6f3fb12e373113cf55df8976f1a639008be4d778845e52f28330435e7b1b59832987dd141a212ec24b250469f79d34084659317f39c6830761feadd8b7a19f94a95d0988c6179b205763881976df7692d4aed112f9f2a8342d531d93ccc386996181f97976ce45d8943a56842e12e26d23856b2c3fa1ac2c5960eeeebc52fbd7fd61e1a55e4126052505ed09506d9262239f067e6b73275f6b7932350b1e936d7469dbfe7d92fe479e99360d4d1d55e63c3300242173727887dda9eca516a2cce2802ee27ecbd2749c9703796611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc078134cc6edf79c75e5272b833d0020b190f0000000000000095756ae05c9238a6e3a6bbf51b72e7cd2c7a7d85d4927568c2f837d8ab3c43eab2c62a443a5c3e77fd4add7f6a87d2677232162aea3617ceea403559b4aa826915876cd05d5073cb35523ace58c456febff9fafea2317abed1eab178923fa8fe8f696bd2171d5a50af685e4685307971e4ade850ba758052d5da9b85e6df79096447a882f6e0e449c6299518e40626991ce5aa6ca9341ca56efdeb679538118ee9229bb4d14dafd6a8f82db4fe6fb3aedf1e5a3fa8709e3daff251d16e3ffd6dec78c2e325adbf54bf7d4350dfc1d03666647668a4e89a5b4a95b2d000a6070e40689d59542f99145ea7aee708b1ebda4c7449f359b5e2fd37544251c124486c8c700897bd5dfd1abd4f5c65b68d1b1876c08f6927463f56e57dc62ff6efedd06430727778a11465d107964ce250b65fc50d1fbb42f6b997d5a606d537dd7b8008885a51c33ab20d75495fe9a7a341206f8ccaaa907142868513fe3eb17e68f46f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19724d0637ea53bd776e783002f3d53d4d0e00000000000000e65bcbe32a003368a72d1fac8653cd0530bfa4509309e6cc320859992ef0d0761fe93aa14a75ef3a07e097c5f21a20bf5d3c0b55fceddd885b1b5c25c58b6e9d27f5e45e39b241904eb3ca2f845803c51acd6735475ce714062281d216bf4f06791d4141e7b2cddf876300aab92eae8425ce80b981a72c4213175b3129edf02dadb08ead80b6583fa4484f2a091a4977ed5ea8786db16b53a889f64e86cbe08c3faa60d5d257a9de2e89a64a5536522fdffa77825cbbef61f662b508fa747079d0e384302b5beb8e1a138b75286a20b1143f17f7a624270cd4375d02220d029a7209940062a511150b628a8de4119e7cf17a301eb244d33b04a908d692b38a35e1886a9354b8c49463a7eb9494f1a17cd8bba086fd1d45b6c33a9991c0ed06745c0c0d054c1df861340cc3a2389e1ec841abd2fb6c0509e9dcb738419b5aa570570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d74f14437e9ffa13b0d902d72a840b8230d0000000000000038e354c62ea86ac925ed7ac0fa3b7e9febac8b2aab9795de80818fd61b9cd55a54a08067dd60f5ccff2e317a6f4c51b5461a3e7b9c5614b12c8b3e60a74fa1706a590c1236aaf86f98546ad19e3213c947f55fa3e7ce0a6e92c8ee3e1e4b435788924d4b9ba0bcd53ca64dfcf69503e995feaf0e2e48aa5196a6d294d78c2d0689e4e696d0ab31a6b9a98bb3c97a5ee0a86d7619eb8f877653a68a6171697c89425a9cb409ea7300487bfe19e1519d135be1d257792bb3ba967f31128e7de254cf6976976b4f0023cab53143beae4a1465c60c775a8de0547b140ca2719c6269885019d88a2bf8122672f170e78a3413851988cfe0ce12d24f98f9fb199b53914d2e5cfd4fe22b3f742a9e2b48a1288a9661a7ea579d3f61c2c7fe15e4ee6baa7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9efabd80364b61e086f5f5f5e4c4e1e1b0c00000000000000ba7501c6a86211d187053fd986b6ec389676bc8c94cd42cc4eb9948173d741303c5afa3aff0129b8772804ed35c72955efa9dc76aed76a5dc90b55c3c94125eab67b24c21a960af7a88e05ee748ccad43201aaf4242c23f970e7cf9306e9a25ae43eb253707f16c2e9cd49be41c375e386c01561e23f2aec3e9796581ac80428cf46e30f05b5f042bd6c8f545f2ab37df3675444caaedcb7d1b140031c5c2e996aa9dbfd7bd19ce866301d3de0d3fd9a0a8b54837ff86288b923367121b0a4851ea681526e2e5cbc2a9e8fce1ede374e2e99f72a3e169024d6feff5677046ba1830203b82392e74ba5ae34c1615b67994ed5ea129f1f7393e9b41763ff62aacaaf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8a2ff56216007bf450428f91418f540540b000000000000006f52277b1f7d329bdca4a67cbe482597468c2480792e78c7d9b4296240dda2b32346701ad94d26799a38cb0f318933718efd18c30e10854a11028c57665ccfd0757ba68e8e96be21a7ce38daa72c028e51321630e4bbf38d241d5652c3f120715ec91f20a110f172aaa2a48e7ecf7902c561f8a1cb13db4a32073a8a1da443ce508f81de34f603ca5a4b26cd10bf9dcc65952147bb1220611f0bec1587ff1dedaa448d5eb78b6d0ad11b813e71ac794aec1a3ac3653c043babb35f222cfbfbdb24e5627396bb8c99c8cf2a0b7bd35d3d9f97e7a95d1a0520305c00676c12ba3385698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ec8e5092069fac34246ba3711c227890c0a00000000000000cb9c404d9558cead50083a779574bde3a89b69f23b3ab321366242a1652425f653fd63c69ceb10ddb0fbd6a06bcf763d2901ed78b8908caabbf1c02bf2ca0c74f692ac9646fd35bb8a932a72d668609ca7c87283cfb8879aba6e9bf588f6f115814010021e5b623b917805e14cb00f67ae433251339d04e0f5923a89daaa7823f57ed236de7c3b2926509d5504133ab05ede57e860603b7f9286134e92e5a5482708fca109093817616bf8ea1b4e2149dbdb0f7633db9493b3b749eae1e2b67afd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8d32034b73e90a389d293a6235f48c4e090000000000000065af865e93487d1c1f6aceb7f477784bebffc8b4da26813c66907d638c6ef4807e51fdac1307ebc084a85fcc474ea6e875a98488dac6b650690afb5ede75100d846aac849d0bc320dae2722890ef9f06d2176736a18659ea89b9ec9ae767937b397288e29dc39325616de9e11fecbf566c2c560cf2f8bde8c9f42160d07c7c66c1dd6e2be57067d41b6f4b52b6a7803b170d10d4600a42994628c69ea8cb29ab7f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcd8c2f811839db32b9fb41c639ee80f3408000000000000006ba2af0d7c2c75ee385f9b4f29b1611b11003bb834362ef86e938efd0a2393530cefb5a7f9472b773c35f440545211e6089f4d9e19d5b87d06ad1655e85a9a019bd587eac2b15b4b95ee1a70f0f2aad9d20a8d872b23b128a7e568b2f29521049daf1f9d41fe8575c3cdc00a687760f1d2af48ce0aa16440c5eaf063d9c1b2a93fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6c208e835fca8d150199a8572cd3735770700000000000000ac7f0be8c2b88cbe0bdd5a3625dbfece80453fc4d0702fa36ce08cc5e9f3a68e92b6c39b45423aef400616e75614161956678d0654b9cd4c0267a57a3a754733eeef29d9ef9599f23f4a2ba725dcdad92e889ba9ebfe12de3718496193d46de6f11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec29937d0c25b5ee2be361d3466d48d141060000000000000047864cbbe7466b65e4b5b876c41a345d22632a70fa604df1318ccfc1fa3274764b6e4e48f9e539e6675225d18adf6fd79d9d00f0af9af43ebca8c74966c05be6eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17ef8a0a4cedaab43ee23afa1cee41995b0500000000000000ca0556f4635fdca06a640b681a811869f1ae899e2ca0b881ef6a06fe46df515aef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979983376776900a8686e5f0c572042179c2f04000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000b51db528db75d6327e9d1d7770d856391000000000000000c263cdd8879ad1543d0bd2e6e2fd383d681805318395b502af2707d191aef5c9c1ba5e9a972ffd79124705318faf6a1d9f9e46ef165b8d646cf8c125b8a267e81b209b91238e1058f9c41f0478dd4ee84fae8ab9c5be6a5cbc8fe83407ae27ac42291207bb1050b766317d5023a67c47e370f323f75676d2830412897264cf429b061bb237244718413e77429415c8a3b3fd174f361fd1b426c18f453cd0d59fb281820909de539ab47de4b874f170a432a12c004313924a58632155752e8e18e03d0747a0af105edb40f215b2526570c777d211b8bd96a4c02796cb5992aa58758b1790ccc4b54b1f0eb068f8274435bc0cb0c0a5fb4d6c6fe596d61bf1e41b770ecb907b885c01b069c9e296bbe412e0c5538c64cad694a23b31d14ffea3a7012b65aaf861946ab8122e73f257b3af57e87742233d9348c4466e8cb27552826ffc8f55e12c9ecc196b81662b59cfa42ef85e40409160e5a08cb0b19550ae3944254e0619bb4ec9d3f056c9fbb48d8ec7d6785fe13b00f112d621ae01222ec17c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07ab498e6b11843b58913dcf4ea1021b510f00000000000000776468553baba2eea48397950f88dda183f7cba2c3d5fd8e81d1b2e76914d56425d34b849d272d1ed7cfb9f2835ac8925151b1bfbf8a91e132dc820600083cb70bcbedf831c0758d0a685ce89f4fa125e1ec9cd90e79cce41fe2a6f5a07277793a01f45dad40dc1df6deb79e8e1b924a742fac43ac2e2f880f3682dd5d5bd941863e516193796f1745479f9d7a4b494e2bf2f6c5682de8cd2079b3aa18f872b3e2e917fad1bd16303a0b52fb22179d5bc0adf196f3d9b41f97110b8ba15aa8b577d08636c53bf08b0f05e2791d1d087d13f6f0b49d846fb9c99a10ab7513bc4280ac59d6c66919f6d375773ae023dcc0da3c612fada3dc11793a929ba6c2ea502d295dc397bb655c71e2be2acdb3a3818e56ac056f984f4413e5d402b4f05c8167e62b04a35e23b8c847171e4d2ab021fc1c942274d4c32039ae64c342a8dd7fef607a8a53c1e7f9a19a15a0f5990b8bd64e699f5717a2e9423d50f57a4987c45a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1927df5d1d1f73d30b29fff23153ee5d500e000000000000007e8cceea53835768e7b1c5ecaf6e1538274bb8a29f1099d062cabc5577bce6a47c28715923368eb0cae36e0172b2c3c7f396a274481d30cd5f125ef4ce199aee805ea7cd929876aefeb62af214d954e38e297d302b697694ca694d74797a9b07d9ffca3f9f82d9dc4ae01fccab1e53530d4d99dbe5813d0fe6b3b0ea42f84fb79dd5187aea1e501463384ee26bce50f742f3877598c79d334e45e07c2e95d91598257acd2c889739ecb2d25ab8a4dc272fee4657090036cafb044d3c29c7227dd9c182419ce9087361185d62bb8d0354d371bcea066661ff9d877f327c3b33242e3ebda09117a0254ea4f090b05024cc84dbdafeb9a571468e0962978c361484f53571f55d294550fa1b0e32652a2ca7409f9e80d2587ce7a0e2a389af2c4d727bce60ad5ba1df7db6e287ad2f6923ea6e023ca02268a8f89df87545ae12a969b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817de7287805f05a98507484a233bd070e2c0d00000000000000038c2453735e033e6a1bc5c438094f5a353b0ab0a6489c1d12062ab21f1a43bf9566bb7bd48cd480032c933f758d56af6a2f2a6c988222ba9f0d0d4f3cbe63506081b4032250edb7d46fff3bd9fff229609871cc428284cb4b6537e34878ecd330138437b62fdc61f583250acdfaac483cf7f65d004b1963d608a9087874ebafcd5974fbff8207f97b87f3df0dc084a90f52e17a63d5280f86290742599e3884a23fd7c2f6a6d0a90f39d8462ac3658ddb8e86bbac2b002be83560990ba90bce4fe32f683b53180d7e90b4b26ef22cb2fffa667e821bbd36ff2a8592c6474caa6d887052c23747fa45b42781972c56d0b23d6de0860ac34f738078414f52f0df66edc23e27e7699267ba008576fc0b4c31ebf7406005b3b9c9723883f44287cb72ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff95eed7d65ffddb405614eba0f60cd09700c00000000000000427c8c505379ecd707cc1ebd3aa7b62603466ae9464b8fc50bed037620571bfb21e844b5f81c0bee556254eaa3f34c8d06a1a69c45e3f6eae9563da10dac14adb36b6fbac1e8f93df927da93cebf1b8ea08d66c9e74af39e0e60dbaaee5f35343628c49f0d71c4e082e4bb35a8cdd74553254518cf38a2cd7ae2f6c6d03fc07a42c9bb1212c6192dfd625f653bc803df056e201221eeb263ab9c4527c7f337f07a1c25a20f12d170b7272792ba468a0217b31ff9b24503677db2afd691a0d5598ef3af534887d21dbd734468b6cf3f4a7d907bc3106b3b7967cb891caf541cee39124992fec6d00b4f230b85d8aaa94ea0a91ac38021af8f89c2a63c24849010a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a83b1b50087875a30d34d45505f4124f6b0b00000000000000801119b57973a01994135d4630dc554468bfda95cabe91c6d253f18c6d4096e04abf91238386a9df63fef643166733b98825f20f5cb62cef5ad6d2f78c9ec4079f78a682fd1a4f8462fae41a278a9952d04ea13d2903330661f354a4da76747bab425db4293331f7034ca5a33c25a88bef7b5b12cdfcb79360c0862f768bfe6c337ad1506f51015ff7e2d2920d70e10cc6e7b67575bf01880bbbb2a6a41bba8dd922dbf6afecb20d34d5e642c111b8ac388c9c89930aa1b19960e2bc324dfe90fcc09f135f31da3606d1e522f7a9b021f4d95705f3e2728d54af109929c590fa6d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e4035b56c236d745dadd4255d2b090d5b0a000000000000002f8142e798184eac915f24080d91c539f525ca6ee8cc1c7d74a6122bc4dd91aea35a2d9e586994a4fe0eb6c4fd6e19b1536b2b11e0ad61183e1da9a589c3861ade2f8304f046711d7a897fbef33dcfbaac407e878b977bd309714ef4cf3ddd851821948c48e28eaf3dc9d58686f541dcec5228f5261e853bddd00e1a24a780b439943d399e2b2618c29be68e078ff6c69e83b764bf167b91ff7ad58fff5882e11a294f8e6d54ede54951edb8dd277782f99ccc3b7eb1b4fb1d1f7f00b7ab5a6388ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bb08cee1912ff6c2a08152c4d7f5c81710900000000000000467be4f6fc0925f8a69fd5dc33d86e32d372a6e5abd26950478c79ff2e69c60ecbca7a9e80bd8c942041ace259fcb596f12ae237b2b9c4a2a2927aa56166a270318de033bff05d61a3fff58cc9240db9fc738aba29e19b708b0eb5b91452627c248ab2cf28dc7f3ea286049b2b579b42047e3e94e67300629063b6f4db088e6a311357de1a8bfaf10c77a5f50345c331b40bcb3002f3ea85e1a32d3f05e4d783b61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc2bfd1e3330179a3c610665429d42b56808000000000000001595593617962a918acd36c214a1f31c3e25a78d63bd556a91f3f04d579ba5cd2a84831aaf784fd88e8d275427a7e3db0ed02fe28cc8bb17c56fb480640715e6506f0841425e42dc3680dec343884a7ac2aacab48886310fb6679fe58efbd65df18d1c5edc390d2cda509e191ad841857a62706e03ba8f3cbf4c2cca007a8be418f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a688e1353715243e4bea62035b4e112442070000000000000016758ae8668f18d7d2fc2ddceea642777634957ecb27ff34f425b2d2043682d888334b001397943ecad84ee03f29a99792575806bf109bd084857551ad6681ef25485267788b493e7c35cb97055fa549c279210a7562440aadf740baa3bed148b256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec26bab30cc5e5822e558d8f022893c7310600000000000000f7a8868508078fdf3b4b65563fac5e6e761e4c83d8e51823cda12db68aa48533cdb955c0cdc8109f9d59f25c6b0566a3efbcee0c2fc0c171e4d8d2006c957bf7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17b78dc30770579b70be650f06ebb6bf5705000000000000008505587024099a9b40c83b940ceb7c9d46bba67b8e0d6987db7bceedf5534658a1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af54b25a3462dc5b119f50239f83f36d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000f2a0364cf09c125bbf5b2347b717de50100000000000000055719ae6ab8b86a12c446d488a9827b9d42f7240c8268f0a5d35511fcc97cf892afc51d8bba1e253bf5332a859a18fc498374ecfde18e8a1cbaa9b36e9fb92c7c2ca24363cae242728d02d3522d80342916acf8cdc9b93ade869b51b6ee8b34ee760e1327c946654ddcc28170c0ffa8f34c658cd824dff39866c68a933243f0c82c9855e0c67547ae70025f000b561858dc27a728244bf4e970b2d3e4f374d1680881d4567b20761c948d82d595a07194f7e002d5d4d4265371c911093917983e11d2be0643da7dcf97cc4cee670ece7b36ef0948b29a67da5847b01ddc09f3db3d1100349ff521e3abb3effa3ef26f253ababca7d3b0e2261f67d7f03992be50b456e7b74ce43f0e1c197fba8bb07e324cacfbfa311afb947c12441ee863342c827f35ffed34c5139286fc7712e87270d728abbb021643a49b4617293892cd84ade051954a305e04adc6e2ad811563f904010a0eb7178e67cc26a6bdc97d8f2d1d55e63c3300242173727887dda9eca516a2cce2802ee27ecbd2749c9703796611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07f13bd04e1525645c4e0fc362ffac260e0f000000000000005661f664194e0601c17387dd7a37949b79920e7fd6bbf93b2f628c012cdf918604cf4cad825e5cc7ff10328fee6e579dd589cbde1f36450f2b623f83cd18657626e99448992e577e0d779fa6e12c135da506da7b316ce286962372c1a614bc9ba419ca755717fcbbf2028be1903d7d1d871c29cbcb76f07ea49dc39467aa86278e8bd47302319378366e78468baf209f698dea039d73870e0e90ad426653be3cdc6d894127069b930787b44052755a323517b92141f8c026e4b2c71d8a977995877ec948a6cf5734005c1e8d7c31ee1ff1ec0f7ce04ab795c3b199b2dcafa977d5c8ad6aad970a4aaae4f41ebb26d1605e7d2a4fad73db2d27c94eaf770a484e6b2912f55f0cf4e2dac60a2417c07dddc54ff9a2ff0cdde05dd5e96fba588f7d5a911325980241ea390d0bb654776e33ca54832090f66c58a71a4c63a1688dfa08885a51c33ab20d75495fe9a7a341206f8ccaaa907142868513fe3eb17e68f46f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a190dea8d3892237a4f86f2a83ef1734d5a0e00000000000000eb9e46b5f7cd48401b57f7f6961bfebd75fba4a27b55432473e31da474695fd132e44d366f3238e7d0bee2d9e5a6cc16059f95052b52ac694c03240fdb49a3009f6731c602262a6c4e0c6f9bd8f89984071980c2537aab9585318668204f88f8e1a48c58be429c797a7a4a455456bc0f370f743371526612e31264b8af1fe6e4101e9455c6428ba78c3f7a0c8e1cb074102b3185f2f79d2fa2ac84073306aac388caa138cc4907fedb811d36f897f223d75a638c655879ec923bf28b13fb3a3ecc9c52af3a8922605675c26d9db7be2abeb45bdc845dfab374ac43033c49e9ed4d73c1a2e170e269b4d5004d1b8dbd73724b59789d7d1bb339672d3b13fdff2567cb6940fd8aaa47d75f9a0bf55aa1f3933ce82de74a8c2ac1e61be2405444585c0c0d054c1df861340cc3a2389e1ec841abd2fb6c0509e9dcb738419b5aa570570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d1a269e4f5e22e1079e30ae17bf78ba240d00000000000000db1d0a42d875c27efab09a3c72b3a1b0b7cdec042d729214e1c49b9bc688f1c4023d6105ebaee9b9a2dd153fde128d7017773bbc3098400259b7da5b2bd5e199e6dff7ea7f9d7c81c5fcba31b131a29a57242bdd6039a2cb74f000f103deb58fc3d4ea2cac97b1d6d491b4be68c497a3dc09f01f733b7d8af79858520c15f4e54ad122ced88c5151e56ed8d15f50d6fac52358a5697e4e28f6dd8c256281a677b18421e008e88a96cd29814cf8cf470f7baf06af4a83e394cd7b91263c71607d7c950c5929dca43b04631bdc1eb6d1016e5bc3a6a085532c72e8f97ea0fcf1f5690309abc9bb61bca2e0d7a23550ea6d9bdf1dd14d74f57ae1a96ccf7f489df94d2e5cfd4fe22b3f742a9e2b48a1288a9661a7ea579d3f61c2c7fe15e4ee6baa7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9cdb6be06ef3e7c2183040c099747331b0c00000000000000c3f81c7cbcebd5751f8f3c01c01e0731ce15d8790bdc6e57642e58294cf4f2d01dc543ff3e7735ac9f2da5bb7c5888a5c48f35f9fe18124f3b7eb2926d996d8bb99b53fbb7e77a9ecbe505bdd11bc7bcc27379ce704ce6ed85ea2d2951fbc9debd448d2074ad29b06542774ed3ad90be56fa288ed477596e429d8ef9d4ff5544fc077e4a30ddbeaa05c7dca4b6f5f670deb918de891dde20cc0dc083c511405a18d2d015f6b17f24caa3654b17667487cfe264345e1af461dbe9ee0d18b840143f8628491de193dbcd06ee35408fcb27c0fe3b55c04715d65ac7f49c221b6dbb830203b82392e74ba5ae34c1615b67994ed5ea129f1f7393e9b41763ff62aacaaf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8c90fa9142339b343570c5d60f37991400b000000000000001da4ae573076134e64b236c6fe7df9297b9c08393336382880bd71df5ae16943308c269e9f94dd3582b8a06d5c40ff2aa06cb1550abf1fdb73fa2bb2c176603ac7ec9922e2e4227d7ff907bf0cfdfcb69f47be7e060ea62e22994650a10ce50c783045fa7ba9af2630315f54d04495862a3e2e996bdf9a0ff9418933e4efb74362906cd6253adc58ad2d6bc4bd69ae325345bab11db2f3035024a2fce254fe2a3832da79dcaae636a0e9345f08575276a23ad14c98b34ef10cea47e402725c9d24e5627396bb8c99c8cf2a0b7bd35d3d9f97e7a95d1a0520305c00676c12ba3385698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0eaab1440b0f70933ffc3909639d3999150a0000000000000037b652a32c16e736d1b915481d7c5b7ab76a58c2d040a7812dc8889065588881ff4de14313c57ab42c1e5af939e0d041847d3c799bc4ea3f26d4cf6171fc92c23c1a14a9997c1c46a53c99b3bb4547deea383972b940c1f5b57feeb87f3ed343ca87cc0da8d61593d8acc6c87d7701e8477cca55a27d2f885ecc5347ea3ce80b5928dcba3615b1b1d72cd73744fdfc059c27c68dd3f562a38397625df038d0922708fca109093817616bf8ea1b4e2149dbdb0f7633db9493b3b749eae1e2b67afd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b0a3b4c04dbbb6657d7c936154766693809000000000000001199e514c5e9332eb288a305dfccecbd20ec6004cf7abee1b66c25f282dd79ca7922a0d4b019baf30d8728729c61b0120f6d64d88d9bc4939a1a661c0c15c196ce2c5d75c8ea67ef716b296ee090bc1c351c187824a489ee85c5bd694a1b53bf5c3c21a619bc3ad36f6f0be47369f18426943a681494aae7d84ffc25a5e3b19bc1dd6e2be57067d41b6f4b52b6a7803b170d10d4600a42994628c69ea8cb29ab7f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc43e4423765ee2262085e0c6dcd486a520800000000000000e84c4e8a46f4cdaed2d15dc1b2dcd53cbdf8566349f984eda42c48f2afad250af18d1fb9dbb2b26b4170dec02ddf217f8529a767e75466d94792012bdefcc7b473dc1f7a699e19b9ee7076c14c8ed686a180165ee67c3b3327ddd3a73f7dfa1d9daf1f9d41fe8575c3cdc00a687760f1d2af48ce0aa16440c5eaf063d9c1b2a93fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6fadf62164b0fb52284b1db5d9f52c2190700000000000000cfac0cf0fbd6af279c4e6bd64b4577123d77a2367a74225bce174faec31c610d3f12eb0d9a9b3eaa6d2c411d1bc906be3220d98a2e78d5e8112373e7a9c5c2c5eeef29d9ef9599f23f4a2ba725dcdad92e889ba9ebfe12de3718496193d46de6f11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec667281316087866b7ca91404a53346330600000000000000e375be65eabe53815ff932af9245fa0ef361cb79b37abad4ab218b2e2ec3de9a4b6e4e48f9e539e6675225d18adf6fd79d9d00f0af9af43ebca8c74966c05be6eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c177ca57a0b1b47f369e97492305b83196e0500000000000000ca0556f4635fdca06a640b681a811869f1ae899e2ca0b881ef6a06fe46df515aef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979983376776900a8686e5f0c572042179c2f04000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000006e33c63f55a77c596b333e3cb2c02728100000000000000041f5151dd99957572241e868b4e397ad00b5ca9b51dca6c3dd62bf6f932b820c99c2937725bde6514eca67a0bbb12c62b369499d2c7fd03eda783020ce5a89967c2e226ef4f6e181963b9ec7b83c85750541b9db320692eacaa47654950420f5bdf8943ed419163cdcd9cfc854981914eeadc5c1da8e4e4f57d19f18b9d959667cf307bd0c0a2facc2f89c03de4fd9d695951c34bb909fa5ef0705b154955de398a1274380c5362d009f0c04e0058e596d7fd30225a4d3b96d9c599904d540f21ab55363bff1bba6e638f0318ae7e6512054155a846bfc5914a8dca84680376e53e6b05b43fd30541d9c5e13c91f84e4aa17ec95a7e9cfdd71f76831c6cf8f4a1e336d6c54e0510d9378a867148cfbe859a30706fe2bea7e66f2149491c8c343bfc9a98eb1e6d183aed7d2a6fc81e192e0fda33cd9d79d7cab7f8568a2127635b7201d70aac9fb232c6849b68bd135cdaeb300ae338a95e54375f3868b3cef05c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2cfaa523daced262a578b4242354d212b0f0000000000000017a7f2bd8ec48a33bc4aecf2eb4b4e132e61b28417485edeb5155aecbc67c353973555f098edc13306c055961e66ebbd50b220401c2384494419678b327e2dd067a2284eef79c6d9a0cbcb21a4d7636a81989fa61a95d0c86273d8f336f432fdff3c1a35057f10f4eeedc4f5e92ffec652f7dc2c878cef2fee8277070247538428c235e8b6143a7ce10ca8394f5796f45cc5d91276b4ef06d96ba29866c62406513b7cf89e7ee931d38ee49b051edfafa8059087bb98ec81b60d0b42547cf4a4351f139066814f7f1bafb4f90704b2d4467ee349f51ec38fc51cda4276f1b12769a04a12b5fdd19bc2b6a3f544418c950b8ba62968bdda59bc972d73dfdcb7b743e42e9df54ae99f3fe4a0ca95a5c2414c1a32517f0d40961155b34ee0284e80d99f014e747f9e19cae7ee5004abb04ccd951b9942d8f3fb3f9c023fd427ae903ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528194c5154f24d990605aabe75d40fb8360e0000000000000025eeefb5a83cb0ce7b867fcb4652cd44615a8c6befd500be987077a106dabf4de6afb96398fa03197a0a56a7c17e60fe19325301c92ec02316ea9f6b615039d56f11a5457de11e609ece4eed1c1387fc3649335adbbd3b1a0ba946e5fef162801887fcd4461417b216aea14cf8dec59d9ed0536eb8b697de1deaa939243cdb275cf48ebbfe5a4957b69d3804cbe005f797656ff844945559e23cab035f6109e82b53863369785bad4b0953a43ce03706fe08b655e89e4fd4324699cb996ebd7e974c11ee54860b9a46f0d6da347a834c5d91e1f9fe77aba5bae0edcde1428ed613d33730f23ddc16c44e2d9104fb5ca60d5ced838f8a1e582f2b151c8027d41c5318c683398b24d74f3b48b26b40c9431a1c84b2f52b4120d5753af08099bfa82b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68111a19230429be43c85ddd07c1d364000d000000000000008ca7e98625dbc22f2a411294caee868e377fd6108bb102058e11c8b9b30db1909171969bc45881f5b28ecafff473511d9ba881804dc5654ff293f98aac76247e1158259c19bce1f3979723df25c143096fe353a5302248a5adcd7669234e7d3d77bde6f476d4a56d3a7e3b0e2c16bbb59f7a6e5956665c270e5204264de13a32466d4bf67dfacfe99925a7c7845183eed7b7572cf6664135e0693f0610384a6f43c9ab337b02d3c32a70e0d60323ff3c3a5e169f64cc0427adffbbc74d5ebf54f4e8880bd0c4710bc8b1223914a6c98532a1ef42ba0089cffdca745334c5c68ca279cdbf6c2c5cc2d8295e87724d0ad5e3e46ac1e5e607db04df7b976adb7425c6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899993e7a3149d6b8dd295357810b68342d120c000000000000002566b75d45b469a2d6028d60ed74d4eb48b4cd2b8687d70b5a1638b63b4a209b394bb089c966885da2cb6af5488865df8b99086694ea654ab0374c3ad771459cac7aff17d2a852685d9504ca87adcdfc7fd8d6f9c5680960cd949c814465362cf485ff31942474753c00fc4236442fafc4a8fe52459074b2f31ef5311ab7ce7e4c722d1b95b7343f965b64510fbae291b6d742246352505cb8d569d714b98ef725a74b4fa7bbb2e1ef9df933c39ab784b90cb315b0a8d0c258caf74a842e0532d718e4f768670824e193cc9b1544100427803730e64bbee68b6321872eb6e6d4c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2497bb9bd2a65272308ee2f484c1e5de9670b000000000000004935bc1b006e4ced2ad4f10996f4e1b564f63c861619e0fcc5e28f212b5d900d9693acac998c61a2737d3569583f0f9c70e7fd0e5142991cad913faced5ed436e7fc406b8acbfa59537bbf15db8d43ae2a9ebff54d5a1a9a5f9fa563f92074446e961356a6f2e306de4bdfa73da156669b212a18c3f5ab0e9aa5069612852161de4e8fcf221e133d6671015d3edc8198fcda952cb0fe6c272365f5e0c512179e1368028f802b68f72a47d0d67e2c0fbf2b441416e669b022cd605e90075f6542b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c2386e9337543c54306436f5f2faaf90a0a00000000000000e73db2bce2472e08131f778045cf9b1b3856e92646b682f85318641c35ede97a4a081c0847ddfc00457eb0b66ef6cf68ad5cd545c592d596125ff06fd5cb5605b4b58d7ce81ce61fbf3e208ba7ed503a4298267adf16ffe57db020041bdce593bf2164585db667790f41b50bdb5fa4e98c7cf06b77dc987c3d5adc24e2ceef1b2ffcc9a758fd41a780b3b788952325821e03c6563a80cece779516a7755c9b49a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c06f17b82716508c0d4b3fbb13dadce9230900000000000000481b2fad7b19753188bed007c42c174d074f1df385e332259f30fc66c686c96688e635ef7c99406f3c5b04ec70e4055b5422b8e1195743cb207acb46795c88cd84126cb986e2fbc49a3beaea80520bb2a73537b76b0370219ea975aad391c71acb551f8f17d750546100a0fa1d6da2856490ec41a6ec639523ab66ca817550750fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d5a5cc33706e3351c7acaa7022848a65708000000000000006b36e9b62a234168435d96fcfac68e8d968003894dba737dea94f97b4acc275ec7d70df3604ff6d888cef22cb2e42e30fd836e161e3afe4ed12ee9fa5d6fcd791bb5d5e00d42af12453c47a087101cfcefc5413d41fef33820227cb5830fb6ebc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2229c4b4938402051257b97cf6897f7621d07000000000000005ad439e0c516fa1230f5ce1e9ea90f616d3f06a19c4c9d765fc5aac1bad22656e12ea28d7584e968ec8a7c5403a834f6a76f312f5bb497a960f8d29e62a288c7e489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f163c167e9e9de21689520030251d20b06000000000000009668579e90a0b740b03575edc134adc7be179bae60466b4f7e6984f19c5faf3b89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8906a06e75759b548aa28d63db889b5405000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000084898b58039f0166fe853f6a65b1b0311000000000000000efa83c9d99d4379d4a9af48997fb75a5f8b3d4be802468b26085b16202e2a25fded37e3f699dc8dfe35555208238c93ff186b84233bf325ecff9e80d3a25713d949820c66fd1a542a4e9bd159c3476f15fb57892316100b66b4f09084fc9479f6903ef8cb1da35bbb6460ccf6591e32c6388c247baaf9d08168f96aaef948bf287709c6f8a5c5104285da7c1fb3c2bdd0b624b88ee0d0433ef2dde6314d0d6888aab2f23745561198d8f5a53ecadf5862d4b7719f4ea817f29aa2c47093c53a48030a578e21a974421f08d93c028dfab8e82d97c6459b2900c3ccdcc0796c73cee8b7c49a6f905933adaaff7fa71680da810d2a43b930e267cb7bfc944f9cda2e4bef3ad88eeff64d5b7da966da642a0a8b7c1cf452893f948604080dccf5b15158e94408a2ddbcda5e28d4bd54d61d292b4a03d73e4929f47a1dee29c09780ce8e2b56e7f1d3bc559f1c214e8727bb557b9bf38d79e740d3304d6c6f1878024513286371afc377355eeb40e89cfd169904276bf89494ab6aed648cecc1cecca23a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa207d71a3c5e83b072722f2f3800269f040f00000000000000190a9c1d63902bc31bf4071708c4d7be5b9c7ed87bfdae1dbc51533afc34843526d80b0a23da48afd441a78fa3c4b11131b2b4e3fb901e6bddada54af75725fb056262d57c0a4feed317a8019b0ecc59eced4e384d890e4347f06b3ec75968b8f9303d2e8f5cddf021e30ce7652f3887b23a7ad68d35e02cc8605f41a93d2368debff5783b0dd91728c33c341abd885dbd6015ccd2527844468c630f07563596c70d97e208fe9c5e8ad53b70d188fa92f7aa0ed0f9509f9c4189277d65b7120550279b00a0432a36e76124df292e57dd0333de80e5d10d921cfe94da0a09e3f21822a3a3f095a520911187be262ce8898feb0fa6e389ab9cb95c347e57e51eb0af529b0f12dcf4afbf4479045a56918bbd8d49d9cf0fd27315659d409b934d43b0cbaecaf5846f6642633611af603172b8fe9cf12e1cec099c14b040fe7d01e5c75d114657a47c46df2c444ea29f7b8711eecf5be28906835bdfc548ef019d5dcf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528115bcb4dbf068d020794fb7753e357280e00000000000000d4772b035bd620773cb9e830f28eeaacb19ee0d26fa1eb6b73b77dda7d863ef75845af404c7f708c94f7440d79acc471cd553705947131a293921e9c70f2a6f526dadc4a7ead157614edf60290481b0e0086cb826dac5ecc6494037198c8302eca28b254b30e945b93b6b7c67e3df215b223f87fc51f7800158690022e82ab358805948b2ca471d99cb6e1f2c00a9f44c706f949591d40a4041f029fc2390b0b16ef94dc766655ed9f8e69142cfff33998ad98710b16bff6f1e8dbdb96e83ef5aefa5b4c756f2d1428dae7b6eb0cd07a9106bc949a3005cea8c945f2f70454adeca2c4aa68da5659b4b3308698816e9924b5a2d4c0008a71767711824695be3edfe6cabd693e3966f3a512ee4e1b73220d0f036c8dbe91b01a5214e1bac5a47abd7b647d5256118f8b4e7ef1dbc31e6aab716c67022a61c4fd46d39e5bd09408fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68dd12c3543dfaec64c702bc2915989c5c0d00000000000000efd9a312b3386a737f7d374f30a9075cbef52adb01d5c5a1fa37314052ac74eda2b9255d9d694ea0364ea0318db96541efea484fa2bf7a8dd795786059d058f77166d57235965e45a58a40104bff2ffb7449988fe99d5400df8451ac54dd726037abcadb286e3e6044451b8c94e55eee473496414d42c7a753de9d36dc617279c772cf551369bd2cec90cb08903b2fdad7cc987c81e3d8b3a36e3ba08930fb026e962016c3933e1baf69b6fa5745ebb624a78398fd44fea69e204e3695b1c22aad67b069fff282d7272ab9ab3a7a43eaea32fdd2b7e74a22a33e55bbf57809749cf78e783d17039befb83c53bd00936684ca74ecb9daa986fac10ed0324b71a5119b48d90b7c9e8233a9883c7d918e438274db1f9835e5585d0daa056f940bcd7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899993f5d6743d326ae06550a7b4aec786e430c000000000000006a7afb53a5076a8247b40b9df827d271a2dd9e4004045d38e3c5f5c0a953779f4bf136d27066d3a01ff0c405844c307f118b06b823f98ec224acb8f6994c7a6ab1ab1b3a1f73ab949d6e7ad90a9049c29d2cf1d83058d7fc53327eb6149432a1f07db65982698e8e67890815961da747264fed1838bf08b6056d55f9bd039bf45193f17e8f0cdf48922c4bde5b038396a3e4ca62f72ba257cec6226405242f12cdba0497cfe3177383fb46c1716f9c866f92cfe0bc22ba145b68f9910d8b7b0aef6f1ccc4a30bf39d965bbcdb33d07ef4ffc560eea5e984113175ddab485cc36ee859c8bf582944854aec03ae530e54b647c440af988f5a2590e5a47ba48e62419e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24973b0ac607f352d1dd06f4e74cf1be6530b0000000000000084cea51cf347cafa6c3b29e22df70eaa4c5cb9a5953b3b1d73d83b90a72fa3f0b2149b9927b3a13d2d4083975f124a47719ebe9d97beb696c9a41175e1278d498ae4f5fd7f9c1b0f88bd12935f99cc79d7d38c2858872997762db3115ce64a1c223ab95c804d00e4a4270baa861cfeab46fad5c911578d50c26a3398af69c06cfb0e7a32ba0d9fa93f65d4aec20186b4f12ee0e4589a5020fb8a65a084c2e8e5579ff85accc264c3591187f57ff6b2e9c5c98d82b3663c3c51129eef12d088d6eb358aec11ad4463cac6dd230c75e4ccef80dd4bde56d1feec20e89b5810ca1c669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c4a288e32885855368f3bde31a344e64e0a00000000000000953ffb8e1ea3ddbfc17ead79bd73966f6ecedc9506fb5fe08194ee19cf7426040d34b6aa10d79ea5e5e432fd2a55f1cfbc203b22212d681203d0f39894305628dfbb2045d83a2fb85d50582d9501bb153d64c37e0565ee97542a610313beb2d22574129be9dbe3710c7f92dc4ddeca013b307894645fa5f69ae949b437d54a09de6e7ce7f3c9bed1f0f9cd717f656ffbe3081993c3e498c7febcd64d327b518fe16e700aaf6477560b68691205855dd1ba1d841043fdf51a9eca9b01a180daa234a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0aa5132366121b65607e77154a1eb8965090000000000000017f2de88463f1d7646e09c89fb58757f2a0cdbc8d260e2ea0e786d80779e2831a170668350873d4458a0496dede235f3694761e038581806328218cef03443bdd298a564b8fe8ae009bc2a10357c3b6fdab082c3904d3c5dbd7f71659e9b559c20b5707f59731c9118082dbd7969ebb98035f1cd8e429083e3426ae2134bf4d85da8fe59d83a1ec12df6385fb9ca779b175a72537a86634cac4dd9db0faa77a48f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d7701a90bcb11fd395ce69c22ef6cd5310800000000000000ef321741e80e7bff62d32e7a01d48f45532483269c37deb86d995dc132207ba7fd9d6fac5a930b32b139fff341584841fdac95bafe059d1aeae383dedb9409b21b5d59bed2ba597dae3134f9e120de5ef7191aba39961631756855c4124217be9aad5927579ab7091268db39fb2982f9d029d4dbfc61dd1aec1f468914dfcf8a7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2229a31b62cdd8cfe732b49bc5eb7ca19670700000000000000c964030fc0fa8916dc51e4f72db78ef79ea64f39295f412c57317ff61a24f51b5daf764b418e859f25131a1e93ecd3c81ca9545cf8944fc0b742ea8b4ce92bfd789b397c7b3c0723c8c7031e89cdf1d883fc2c7a897557bb65884390cd1374b9bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c56f8d9003b440336cc0e62946840beb0d060000000000000050ec72a28ff79fa9cbb70dde04c93d5d3187f31c6d0e4343ac371c4e04014328bfa8d9b14697d38e0555445b493c932c45e2971b495ead797758ea5abb17ccbc12ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9bfe1f58bdbd4a39f7afb86a83e2960b05000000000000008c612d5ebaa7b67b60532d95c6ea59c42ef37bb993ae347a01a4f621b7da09b00b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbdb58b277b58cc48546828580e1f64500400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000001a37cf589b73d23adc1e081f96c7126410000000000000008de1729b9307970d42252673df27fade47f72e0a47d3da2c1de9b8900ae4a3b5a1e3d51046119dae20fd4312a2ba67f8c92e5efb090411b7d20bfe3f81a0791994a02dcbc54fef641062ade13afe1e5a51928bd5a09076480474f92e1e2eb3e87d8ee1c2b352014e2c91522dd02bec08f4f74433bacfb9a55f34bb302329e72cfe1cda7ea8504f8b482232d7d438515fb5886effd3b959601f0126617f3a60cd6c16528ba87511d8c5d53a500a89870edd310e9079fe12515539f43bbf7b24409be3fe6231990fe4b1f34c0ff08d646f4180fc0819575e6df0124c67959d37f6a832397f828144331e316b3ff6882073c10688907a221c639bc25ca4fe6476a678f81146ceaed9a5427eb8d3cfd4f95776b1b376c68e409efe1f39ec3734d8c356ede62d980640c20a73896b36e6433cfd61103e9a6bb7b4e93a61982429d6b6189bf925338aaf706e8c876d047936f6999d4a37188a0189c708d30281eae14956d5798e27b3e0b6759bf3fb2e144225773a47c58dc9fbf8ceb936e74b8a530ced7b98da1b66d7b0c5be6c014bdefb984efd0f034aef0ee91f3fc69c4447cd396b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29750e94be42abc53d028925b139c1c000f000000000000005db09096833b539f3824b9d069ea3866c5134b2b6ee3ae18db6ba672c3eb29a0eb62bbbac6da3ec4569ad935c124deba9f0db7bbc481605693808f5bc7f5e5d2d1e0b0387e0be65351473fda41c5c5b2ff772b7951b29e6d9963e85c8fa7a4c1f08cb78cb7bede8a69543cda870889b68a8fa6ef37d72901f5f6bea85eba8e1b3396051864074941b60f53dfa00d448f47937fc9b8638c73109c2757e97178338e81a9b5724b7cf7b9ae7644fc22e84742ec2a433f7474c28007cc3ccb24715f369cb7ba40b63581488acdfad7ba88e4c7c1902e79dd4c6121514d8be3438cf01c6632bfe3db86a058b58ad0f470e70f9a29d5a22ef9a1a5f36ae0f3b370ebc03ca02693b933442ad6c724a8e4162c82832e4aea510336349d0636207d46ad78c15bf45d4daa25f236b7b1a9a47be9302e108b8d91bc938c50ca00385f475093a8bbcd251c9db970d5fd3890606a395b3ffd3763b05513499a4fad320adda36504bac276cdf6d319a9902d4d21184174e2d43d1e4f7d39592fcb84925b214c943edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5286a9b1076523c5d0f22ef7c6ed31e91460e000000000000007779393b02413b196b8a61c6d55d96360450ed0630d313f75a7815ed74fa9d832f1155003a16f81b80c11ea48a37b121c8600845075ecbc234bb4f5ae8c55b4a93a509c71ce6d39c77a8d334bd8c7f1efe4934646ed0310d3a5805b007e0c837c006f42b31f200b4382440b63c483f565dfc5fb3284551d10a66c9349f8f4b2249db1e9a5db3dca9d59582e361c71547eb40370f3482aab8b1976630e2ec4242bd656f99b4867bddb1f9d3d16ddc73d83bd74964ef09e636cfec226376913453094861fbfe7bc2fc903ece0cb7c33c8f0755cccd50797ca95cbf2dce3cde7814fd53b5a027f12cb82353e72ae38f1331c6dba48b2982804a4513168a80601d0a373a42ef7dc2027be7a963b05d3d345f064e4ac0b2489a1ee4eb1c5edd9d9160274c6b80d319f7f253df436b1d27859ea3263f0fd433d28aba4f359a6b66d83d66ffc253b8ff89096b1d0e593aec4271cb6ea1177f19fb2a36ea985294bbd97666262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68a76070152775623881f97038216af5270d00000000000000e7671769fe5eaaaeae90367c6564b6a47b6def5f6d0a8eac7e4b3fc8999709e227c479ba8e3211e8690b83c021b7d2c444d22bc6107c8f2efba3114b832f5068cbee2a70d613c15d6f7c60b9f1165df79eff16a453376a2ab3579314826a371c44e17de4f3c6fd47ebd277f078799ce6bf5ffcc894840665b0d894341624883889347dad6f7a6abdb44b9d2a2056613a9f34f8addeecb871408c4da0d8d7878e885d95fdee1df204ae5160e0e3238a467ca43b4e21e95e26d975b2498f541c5cf70690e4c31fcdaaff03df421d3a1bf103169aeac1f5aee4eef86eebe81039e0cd824b97f0496a6a1a02cd9111eb6e951f27f9a66d84f16fdcd1216c56025e5170af849a1861cba87fb6c7d91f65c22ed71e18cd23f271d2e8e4257e7c37bb127b143b13b6ff993aaee89dbdb584abc2007e8e870a10de683d64f11432879a874b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999920aeac304a7cab561c6f15734d360b350c00000000000000c0facf8890e11cc3f1e97c748a19d81fa7ecc7bee0c741e5e9a75151c6d7c9bf2126bf0477605fb1a443b59126df0bba021bd81536c01ebed997484f5216a3281abb2e9988d5a1af125764fe3d434acb534b346976dcdbf155b1933768d84be7ea415bd2eea67b2530443e8af0fcf931450dbd1a0666defd2b8e09ce3c741a481814cf2fb34cf880ccd4e16cb941f75ce4615d49e551dde9cf7615f3c507aa18b81351c72fcc3ac92f39a383b6e245e0f8c7f1f1157f254474a92e82db039c8dd5377293c1cef83933f313138fe1f01e08807baa8ce64ac1f374656eb71dd07bf24dd3a912625c6cc125ced0a96f8248c90b74d8477d6b64e39893ebdf5ad17f9db489f5a0983bca0de50bd68dd6402ea56a19077ba469c0ac133918da47075890a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249910460553de17c3566fd1e2f3f2d78180b00000000000000c6f4637a3fca94c94560888f0b77950fb0d8b490354ffebd68fdd7b6f7c6b8fecf9fa37eda49b8fa7af8c21f7dd47907d01bd9db3eeece62c1d66491055bed01108aff118020623aa31822374f5c5bdeec474248e73a3ee4bb90eeb3f8c99bf18f9fde1c18c3f16e29493ca4732542b5d6a02abf3345d1b25a611b8a7bbf6c01a077d161fe974ee3589d9ce59c6276d008d3bdac76c5f828d1d197feca96e1d94dcb234c0186e09f0efa60bbe3a8e04cf34c3871b5ee74b4b1db0d20fbac8dbea0199f231733068c50778f74b41fe05f72df603ceac7cac288bb14dacb423e1d3fbaa3516bb98b10b9f2c40c4fe6509b1dee5df7c3f545aeb4f4fba2b0de1f13b8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cb50a8726fd1de761be6b4329c8744a4e0a00000000000000d267fc0d90bfc3c6537bccc2754f5fc797e0f10f9be97ab694489dfb3cc47d910bd7e0acd355a07b9c6791426f817971d449e1b5781bd2183df2a1a9ae99d07af9d98f560171bc660968aa85f9fd0bab08aeab51786258201889e308a4f173d2373cb660c4a9b11234a93ba2592c1a75ef3850a1d1bd4e5ffdcd0105ff090198c5ddb83b369ef15368a8009b3e8ace73e39df27c8786d620a41b7e47e60d60814562780a8a536d74a8317e16cd6e0f0e8c2f0b4eca1db21fb5ae840d7fee2112fe1220beed0017fdcf08ce68b5cbf258f6ab910e4bbd9f1f695ccde338fc67ad9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0e39b954b202d8245e0de6015c2c79c6e0900000000000000b6f46442dc3d8238d766ce942e1425881855e2036f8852f9b72b8d1c09d41f420f389c852f44ba506e94d56b6df3e3f728cf1c421e44a951b1163b9a130ccf1f6082f091d57dc040bfd1552d0e1198c5efdec5e4aec620921e6b7144f480e0ed6129cebb934aac1915a083ece4010d83956475c6ab9c3bba1c2d827c47882f736f73565272e5fc2a1b6d09740a21bcc1340e5615d933c7ef5faa1aa9bc443195c65008a848e7215bb7f5a75fa72d5950a228709f71b0c163125b88e1ff6a903008c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dee765474a57d9213e491af4a11312d09080000000000000023f3f504e15fdd796b79a1dc3a9941f1c21c56009b2f146243e9c4c73718fc1ceb2a84556e4f0f61001c7db431e4377aa73a67cc9cb6f69873e5100270154290cdedecd76518faa7b32d77183de7a76825d521365a1af008caa6aa4a37c2d80d7541c1a1992fb22d83bac207838524601725d546cf81ce82d4eb93f4b845c7fa49a556d0a14c66bff36a8d8090e73046670ceb890715c660ca5d04f8c4987120eb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2228013c144b38427013f618877b486b61d07000000000000005a26c977248fdc5a40261aea6acae475bb230a8f50b6155842ac5ab380c3b7f34214eacd1c241463ea5ec577549c88e29536d95d2ceab10b14ee456d74166cc542161729bc2d8dca528b8b6f1be9ee4cd482cdad1613c5de4f1428e1792a9e0e3c37a8e0ddbd6ed4d55b8a44b663b26898408ac70cc9a8fdf0036c527a9df38b78644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59e3c8f3be1901a0ce0ca2a6717fbdf74060000000000000082a764d1cbd15ac6a7db668efa17c4ceb6a9813f00fc9ffa2c5577b7ba78e5a046336076437c8cc9f71fccc64dd08c0d5241b52568b6acb5254f2cc97de6c60d389a3f098a987ec2a33cae63a691010a002afcb0f5989ca70c99a32a023573fbbdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cf449e4770c1e42671b7652433081650e050000000000000026a95937516f05a63b0be17be0ca3f4799c35b2fdab7d544bf483231608b07f275cb90e821784a0d8b1adc35d309470962071980997f497afb6761a1a755404f9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbe5d505a38e94043ad059923fd776009040000000000000073f04a5737aab81d10b276ffc2ebb75584aab26bca9d8fc8b5e8f0d9062abdf3d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c06249f66da2be0d5de3d306558b82ae69030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000010cb67002fdb293b4c036f5381eccc5e1000000000000000c789ce7e5764e3eda7a3536da5f88d82076b603dfd06f76a504374c7e708edafc68a8006f3b90e7abfa381d997c653d703e9e53a8c3cbb3abfa2b671738d353c65c4f8628f310086cdf739ea1ed08d405a3aa657d440b5ca59ad22d5a61a4df5347a80a0211d9abccf8f9a5363c90cb09391a5ffe3dce5f074c14a648e60f30018645a35745b5f58a9ac2866857b8aa7348ec3601fb2114ca2990b91d7debad57c4f73984d3c8d9ac7a9f132028af70ae334c5d0aa832c461f0f98022a1c8460dae5c9e7c7a63be1a29bb97ac3abc49cabd4e0c3867ad31b6b418439ba03a07521873873eacbce34a87395f9d14a035f33795b71bb325f6850f222b1822e37b5d196aa5e0e4516c52f37de1723727a6fc1febfb3dec5425d9e0039e22e7ec406c80d63d4f571f15828ea47e9092ffc5084b53b7db6e83adc767171ea2db100b9587af5b1256ba683a3b3312e6bac0f70f7f0f1eb88626924d0b10fce64fd3cd60a78260a94321a7634402c90d612aa8795a816b09fc6f4f1399a48d0841409d74de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2a7e9aa1a58b3863983640b28ce3eff710f000000000000000f5f16ec38479241f64bad6f5a90460bf2334049aa0087858c41f978428f852835f2f623e7f503b13e2963efcce6cf83879c001dc1e887ed8e1be23a459390d00079a3765aa72f1b07268d9015f0bc4290dc27050adce0256075e457a0d8e5b0c8019d19d27064fa3aa4299df76aaca21e4e3764c42bbd3a2a45ac6e112c9a7462ceffa9e648631cb36b8e3b110d19467dc734837a04b89e0c6b10f20a728ff2233579b7d5bdf2fe880f9f88b9c3e389c1c3bc1484f130e186df9a763a8718bd9b244e8e1d27bddd4857222e15556f23c4afc354f1dbfa2aa20e4120569a0531a17e42ca4ecbcf690bdb7e9ba1b76d600af0fdec7b3e84a1f67845ad92c0592cd989386063564874690423d399dfe5707b75b30b47a8928bd63aae966c8d2e295d29f4b90009ded9198c52e2a6744b980cfca7da57f4101f4409b40cc9aac366de37d3435b64b96a5bbbf1084db264212eb0d3b770d8cf4c23dbe91e87f99fe7896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5281cb1472a14f10309df6bd620a77910400e00000000000000a36271d931a03dd40f29a51a6bab3d9f5be134a993b547b6c4b9554d343b7f60734dd6ec3c11399f3213614475ef6e103f411a4e06874ae91e4a2704e649913ab2f2fbedb8bdb84f2a08b27e1e04bc7579f1b3db01d6bc3aa42915a5c6ac046ce57bfd3d067f4f086cfd9ee8592b4cca2462383783b135e4372d741cf800a15eb6cf2cd764ef744e59eddb6708e2d061c93fe5cc977a5695d725c5f9e8d2d7447fa98fd6c1af8910338ab94169d74b021bd55fb4b4095726dae2dd29380791a4b7d0ec72a2286e4b3cca0353b3656588d4e92693327a8e963daf84de8d7f1fe25a07313a01129f56ff71d257b4d37bc6753f78578ef56756d6eee7f782a6c97adac30b9d2b15579e4e3c47502a47ebdd3cfaba4f71c3fee2509a2148433e712ad8075e2001d3ea66d0d52092ece7b63203d68906a2688947ee75fb6264b59c961c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68d9b8b816dd8eeb5331f83810f902892b0d00000000000000770122c239177a4f54c26a4197710af74dcf59c77dbec54b9c2419f004a9d2aa306177b1ddf1140c1d18b57a78ddf5bf14a1a650f2adaf227140ad2c8724df4c9fc70240982c981bb42c68b00cc377953c149cdd4f89d7741906ba636704875afa4c9ab73788aec49a97c6c12a6db027db04d0b5531363bf0ae02b3d5086b19650b754a9d75d807a81eedea90a227caa156ffdbd2b1cd2835cb1fb8040ead61fbfffc1204b9cb7dea5260c5b24b2ed09d2425ed64a1a7b7f9721a3effc9215a6bf8ce4d8441262a1b8add9330f7000388ddeb08b4487aaa55f46654b473b77845cf55d4ca552a9ce11b6a57207a4be822502c2acb7abe311c0ddc4b6de465e14d3210288362bd4660d268c3898cf9d0baaca3c9ed3ccb9ab47313cc00d068eb2833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899990d571829b5e8ad3463c30d684f363f5c0c00000000000000d62caf8a0644d47ea27530a679466b134bdd096ed4710931e850a96cf5c3ad441dab4c436bb969b5745348cd488aeda5119181b3d9e61fd989fcb3d5211fbb9207b3c41aff0ce4b8cdc6619bfe3b5316d9258884edb677716daccb22a1ef99fcf64c7d16da2f4d6c40ae40f6657ad229e9a8415bc1db4f0e59884da96968b9aac41d4805b2c1e611134a2746257d94da2d8521f2a0f5ddb9ec80674d4ad5cbf701ce9c002f96f57de75e85a5bd682444b35bc88400206edf94d3cb59e8fd2596f56b5370b8def0e262f1626be8f8bfbe9c6a159ee15de2625fc7979b78dca5471ed715cca92cc3e02def4c2e3cf4c01f13ea58010bbd4912e7d3d9898cf8af38f20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249cc78aa2c00af0849bb99fa24112b94050b000000000000009964a5591fd0f4182905b2d37c37bd3f5bb6753994b855ab3d2f55c8d43c1d359405dc44273dfa629af08352a710e1ffe5d3739e4ccd705fdc00189e53322636b2be8521f90fa3108b777c0aa52c2efe96d6ddcffe1686925831f9fb6866da7400e550e2ed03d6421f713491c9b2787d7556fff3b9a53050965f7d0961cefae68e6447b8fd4a67e5b2db0ccef1c9d168362384d0093ce957b85b6daeb46c9937a48663b6e9761119e79fb10844dd32afb083b8afb6d605aa7ba9671795d0d583c71b35b820de8641c74c88f7b50d8dce8a367a3aa52d474b016f8f473cc8b1f5e3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c6182ef054f4fdb1ff63a750abeb948270a0000000000000004af896abdcc7b739e149458ba9cfe55c460bb4d026202a29ffd182e069c6a8479327b3215052502ec69973690e0e4a503c244f4bbbb4ac72977e09ebf221cffd09d256c0fc096e80c4a2e7e5fa42a2aaf9450659602bb122d8a72209f4928c46700eb9f763778942acde96abce4c3d1a5123be84fdf395793ccb3b0b219b1064aad948c8423209c270d2a604c6526e49be8099462e8ebd010b7720891861fc4c35f50f0369f776901db79cde283fc14f6d5558a9801a70217128543fb8f0f4dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c00baca25ed20b56461b5b45769244be5c09000000000000007729c2823dc6d2c2a5ad12a68061d22fe72908eb4f5156796f04af415c1867df84f8782630d10a8f01657df01cc4a07ed4c0b224dec0d043549e84a0c1e7b33f7b0821272b9ef8def572324c11fc1cc7db208d02b2d786691b32229dce66740798e7767438533c00a998326097adeb8e2f31c9c775673b195e8510aecccc34c753522af773ca5405bf8e76efddb9c21320b19c70f1ef37d122023bc3e7d8e20842cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d6bad6f5704b60b5be7c7830a1c5be7660800000000000000101a8a8e20e6a3595af608cf7d3f7cbc76cd31b8dff67792e980ee223594aa87e334cf3ab240d6ae6779d1ae66c65600ba59da79111d6318149aef9afd23745f98f3eb15b634945fc5528498ef6b978d51041dfc37cdb1b1ab4535723eb696c247f08793396be6575a3d34bbe34cf18fd12ec2bed39611afb388aaaad779911324c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222a0a55b3a177e1c3ba980fa52b5411a2a07000000000000000b5c528b2abe10217b92078f8660aa538f3e89a10e50bafdadd3e1df32a0c1cb10e2a1f1077945874f76e89b8f8384a40997934684d0a33e893457de76584b1e6762ab211c68c06cab9694926ccd52e66c5ef2dd69382b59ff6170fdffff31943ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f52eb9017e937d068095ca0aae0f39470600000000000000d1127d69d80bd36d4a625fe82a4f1f6aaea9aa259a22973709832ab81f7162dc7c6e9fa6837a935c027811fc9d5b07ea4b46d1bfa7153325b2c59832f6cbb8b770bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c615c356b0ae56d1d799beb534e03453305000000000000007ce12838ca2b8383b6a8dc3a446e484a02746a09ad76615f54c2b7ff663b6067baa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c72faca3dbe730c14e49a8e4a54765d4e0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000000d2d68045ce1af3d00561c3cbdc56e14100000000000000057f594a1781001d37b85779f13c01a5a75fed3027a1cbdbd522e415468f988a7c9ed2d33832fb8b0c0ef23228d4383b277b99e7a4537ed3098688d75d720c3d972e253c58f707321471e02c938d89f6360261bd06bda4f32e07f1a5f4259b09d954f4f021aebd2a3507103c8bf309c9357dc1fea6b5db008af38ba4e65368d78918fe3290a8a880e0ebd9ebfc906475fd363a03e54cd349708afd7c307f9432c37ae9d084d72322ab2ddcb2de7d97d5bd29b8ad0e0981eb4d45417e1d7fae6c9bfba173f5650f2438e59cdddc93710969eba0ebcbd2ece39c9fd5606cc29694fbcd60ea7e41057575a7b32c34f16723fae5588e3913592e8a4780a69e07afabc918089ccb8ebd7fc4189f5a7bc922d30ed9f1e09277c9d37b8c086fa912f69b8b0b0a1a097d606431a3273aa92e0556f7ff8b267a19a04d313cd85c31293e4b9c4260b58becd0457bd344961d146d9c46c771a8acbb88b7be4df09ee6fb406b0cb75cb47002f885e8689a7b58dd7eba2167e941800fa14bdf42fec201d6c57c6070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc072b79106543d6b1649a03235879a2b3070f000000000000004db271af3c9bee5bfc25bfb571c018fcb9a9fd73eaf9a84f56d5b1261f3d488803fd8d9145fc076dfdd5b9120c4fc4560d652ec3394a73417db449c3f74b695ddf8f121829cb4e19e762109cbba69a9621c54593b02f870c6c36ea50a4373e452c2fa73614f0f45157243e7b68c36c4ed7a263c50f6a1924d6769391ea0089a2a6b588221810a8b992f5d9e7b8f7014704bd41f1fc9cab9bf8b1fd8ac8aae61e23126a70d978eab1c68c9f2d58e8fe433b2b8213011411856cd4c30e26e98b89a25e403fcfcfbd1d59053a282a817fba510766f458b94ce1d098e46436d6f295336ab99a7481283cc0c1d593492ee7ddcf0bebe245086617e14a66aa989586d39fd6100dc742bb384ac0e14d01f95bb54b8a7e3e71fcfe6fbd4f7e4c5ef7e1816f64154e2fca7122bbb2b6b0096ca48223b2b39ddb6bb8bb5cb01a736b9454f0b49f782459cdb55b1075ab48beaa025953b828afe5f95ff1ff5eecf778ad484b226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1984a0371879a0d65c8ae5d11a6192a7590e00000000000000296f852ac2bf71e19f970bd2d6c295b778848fb641ba5637f8a055f8d84ec8d09ae8cd784d1401e9e3952f775d179599743042446708ee926ad1baebe6bb97a5268cb277e432ac232c833a9bae7d249b9ae9b2d61a714bd5859ecc7cecc0806032b4b2ce1d610bbedebac308cc5f5e61a5fc9fb5f283235e3022852c780f70d8c2b88141353ff0af2a687910551a45fecc3b369f39663338d2fe3d1667736f2e6177e2119d1f52f12be23631ba582597dfbc10877555027f72ec7cc0ba76a8c8cbf9172dbda8fcaaadd0a793d90c015f284d8b7460ca4b75f097ab005ed500142c843d1c3f57cc4be664bb765f712841d6c043ddd9acb5dce815dfc628e26a8dbf2e3cc4b88307fa734f17cd2955fee37d5b7be31caf0f7eb181a8fbad1b292c48057740020c5a7d6f63244f88d54b476a84835b427b660ac77b9a1fc2a3cd8bb966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d335ce058d05bf76e9916240fba6470460d00000000000000654c5256e0dd09df3c4e8414fb34769249281300bbf6e54feb60a6058b2e161f728a52c88eab669694d2e39d5aa9113430e6faeebfc3f192f5a246a4a16d0b0f7212607a962b90d85b7a2a789cc46147a922836fdfb22add90ea61c07e73ecd59e0053822707c536a9dfab0915b5dddcba6235b43b980b544279273f93b228d4f4c13a933c87597210d2994521a0e1dd0918b8bb0e1160961681da9f9b804d24bb8b05758f01b49aa5c4ca5c7545649edf5d579b0cbe2d81331d31a50dff21d7bf81ffc4a2c655f681b0db88a33952a0fd9a5321f55f90fa1cb9569a1ad2be6ecd040b806964691f30cae5675f1dc050f9f1f352f18e9f06a37b6f85137a0bb808fbf1be7efc9ee05cec37f7045bc3328fb4db03ac962795d8da0a944969c21220b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff97dda771f56a5042ccd554a5f0d2d1b080c000000000000002b32d6cdbe73406667a0e7ede4b6a15732d71712bde79e8de1d5909565ae44fcd752cec2efb95de2207bfad6efd75a258df60f4e451a22d695ab18d8740087bd239737dd9753c84dc03745c5e0799703deb9a2aa3614914cc4fb90af38e2febc254fa22ea3aed290586f66e24af23ebdd0984309599376f9dfb98cdf9f1dd0696e70e27dcba05948b9f5588be5c2e1a5858989acdbbaf4aed0c14678a12941a453100b77e05332d53d2472494abbf8528bf80aadacc4510e606680eea5ad6e6844e3530d44d543dfedea116545305b1a58da1ea3068cb71fc749b623b925c94e47170303cc684cbaf801b704ef7c649d94816ea9a6822e9448e81415997f74c340ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a84317dc3a1d8d2c16fbefed6be608b1170b00000000000000317ac453f0bbc55d416192f6ff01d76ece7f4bbc0cee93da9aeed41b8dbe03f3a32c740336e3c715a139ceea90dfc618da7f2fd76c21016b60b9fd4020305c065c6a5d76869d2496aef65ebabfa82cd1d0a84e61780f745db94a7f0fb2878112a057c9a3ae79f3398d93c42ca870e8226c7d5427da4b95e721bc25b5403736926570dc5d1b67aa0ddae460e276181401bebb3f1a69fbacce656fe8f72212b4e038701a89691d28ce4cd9e72595da5313137d8205979bae6fb41de20fd5240fcf1784d18a21aee14cd9210c1f0e7b72608f992f0500d0b46f4718c28c10bc0ddea1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0eb4377566383ce65a026d6403fea189180a00000000000000c1061918e30d878e70c41bcd49eff1384ca9307bcdecf8e2396dbedc94b8accc8dbe8ac87daf859dc0e78a086f707b9dda9153370b15c402148729d7262b906dbbee88508a5d2faea7b2552f8a0913ae8b9c67f2c8b89c344647b246814bd503121a962910d47bba5c16c80b34c3dd3e70be6b5dd99d0c8f904655217f98d40915a8d61c527490d587a404542a91cbb50566300b79196d28a6838f1dde80a65cc92082a700b92556a9630575169af24f60524922ea9527db7f94047e98388b99ceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b85bdb646ccf4e76322e9c13517647c440900000000000000d595f627b3954def70b4fb36d594271300670ab12edfc5ea0fe8204a6bef92d21d58472e07a928e258783c74ee1fab556cd827db054be5782579819fa3af1db9feb5812d019cbf7ce9eda28c325b2a33599838aadc7e17f782d64ad0d3fd0652964ead27ebb020f386cb2fcb711a8cd7767c39cb6b6b068e8a9072a8e4460f1cd85e8da90fee2d70b844129886b781ad6b8e194cb5d18ab562e171df2267812947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcd422bf5690b35b2f38d3b329d5f9bf2308000000000000006ec4bbd0a80d321a5ebe8568469258130566c11306b01365613dc183b4504be2c8f47ff469e9bc89fc13f1e709ad5494f0e8bf2f258fbd6b0bdd17d80ee8e7fa17f5412fb180cd80bfbbc71b82d90b4671f5e41aa48219a88854d4466900b080d59b643106f735659cf1b77a9da2598c512b4bbf0158b105aa55deaace92f0be4ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6fbc99b2730a61b24f57f0f0886cf300f07000000000000007165f156d011fce4d788307e7cb07d60e0f989eea0a864a8f4a3597ee104e927b06ed898c1319c2c39d15d2cf32d0f2f1d4c31155d656b7866296a6d96aaaf254c3cedb906c783c776945edf3b60f5d46976703c24e04c1d9aa6d4ab978dfda71a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec7dd2bc552acb3a6d7998f446f557703a06000000000000000021808d2689c169a60281ead9fcdc57120228f3a23be8a9a2d4583f6ef14512dcb779c8f9517a4a653b88caace4473a8ee7713b4846fa483fc9833ccb97c594d8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17194b1b126f55aa5be3dabb2f9c037f700500000000000000b8d2ba675822e746ed263e74fdb2a6c8e9ffbd8706567b8668ebaf6b8d24fc6dd093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979985d641620657e705cf74d0e570f6e305e04000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000e87c9c51d37b846fc710a5375099642c1000000000000000edeafb9a65c9f22eebdcd380b90eeeb7aff590df3b63c3a4d96c2b3414106fd8ee3fb76b83cd10e44f49cfff65e9e87cb8976de18cce77c050a389114311ec20d0f78ba115c3d97537f05baaa42b3793abff6ca149657df870b5c1fe26bd68b4b023820fc241a69227819a5bd8540451dacbfd4cf673f2ffb047c8ea9ff596fda166680a25cc29d568e9a1efda2dd78657a2e2eddf24e58a640cd2377e802c44f6774138ba982c3e80953440cdd6eaa2b63aa1159e85f5f9c51416e1fbecabac012f8e246f423902b8cf161a23ee13071bb1901de2b3a07945bace3949fbad79c9371a055dbf5e5a5c5e9647d660df19c45afa53b392bb527e33752b887effb3eaa524edae054457f0535878855f715db6566c715cf48cbee0decf907f15f71c126e45bb63862875b565c0fdbbd0127501bbdfe4990b92f0a243596ebeba7026a190bedb6ed627583f22fdcefe9f50d273895fe420b8f4f07291e15c13daa7ed97907636abdabd23c01dd5b39bc6034475d6b646c31194d786d510912b4764ebea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa200ba2f425c4ada25baa82a6091bcad030f00000000000000a5244da2e8a642f6e9ee8b497ff67710aed7688b873c9e562b61b3c7c1e771566da5f281210db984f1d761e242430dec39a098413d85945b507c8050fbab62290539aa59a33caf5553d871c54b236749fcb8c62047766da3896c307b49ebee48fedd6e1467a953a6c129434e37d80de01ac1a7163f02ed7c76df78ccfde030aba109453efda64ff0c26d3e42af51b4f31d30dc614fc170868c7eea8599928bdd803485b57357f3faa493718ecee7c62324cdb2d78e6671adc34918dd1372772a0b63cc31a5272058ddaf11db00d4e2d7905d424fc6e67e3d874930d11af2f4d278463bc2a0285231aeaf8ac778cebf021c315925f865d8bdfe5a6af88e6279142906d857a558d06df8406394e5b9954ce253782516f3a1b5f7164bfe3debd89a5bf99f8d67674705541503032f3a4c3c8a70523c1999c37531175e0875906711f89c3ec4aeeb356d840222a79bdce3fb2399e17af7c3b79865bb9c469ddb4b35872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528a90b922dbc8a6054824fb72e1c22104f0e00000000000000889ec432a646d5c33b91a86339d6b98ff6d520a30adef293ec4a1954850d002c1cef7cefc29bde3f1a964f5de815547d81ed9802f5a2321404765e0c5994740599ed60ffe10e5cafc45c42e7d0a91bf0b23a0549684ade11dc661c48f40908320e912b3f2dabc10d403678ca182d96bec4c47c0fe5eb4dd4d5a2cc18452c8f0d3a1efa63d32830bfcb99f50acdef10c50c96528b78a7e5d92b26cbbacfb99b40032e6648fce5d61ac7c071a1128b52a86a80096adc24f9efcaf206c846ec6d50fe04a45f7862e301394ec0f2a1ddb06b58d6adf8b688555585cd3f8079e6982f51dede852216312727282dedcdfa63f8a302283df05f04d2c4df6d3e3446ee57ddb6b3abc032cc7960867b0cfb9451f265abe9bd8713caafa93f69940cc11caa92c21b009297a2372f3a00c25bd59558fbb343aa073acb3befafe8016552e460175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68ffeddd691f714a5e3c0d530ae97a361d0d00000000000000e38ddb29c95b778d9ddc8071e720b12ccee432991c5b5ef6ba473c65530fb2ef9544db171ae07ddb59eed9af5e21dc317ef5bb8f3199d59503bd349dd50057ff575deae0a79372b7b495040acd78437900b8e864506337b1c65efa297ab5796695f407c05e638aa1fd5a0b20603bf86fbeb251951fb7174639483c6290492c08eb7c6bd35096fe82940ce6a295cf01c16ba127f468b03dd0815fa800851b2a15229395d3ea6b15f5492be652ecf9f66564c278de3ee33f20c6467b41eb60919332552d45484892e12d68968f1045ff089d2053c39b6e930deba0dd66505f496f9c1b917700be7ca2c91ac378acb9e16d232ec0b60467dbd58edd3e65ab5ffd75b81b3848091595273b8d308bdc82dbba93985dd0f169a7fe698d811c2a8fca752a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899993abe843c60a0d225a4f767741e6214070c00000000000000086af1844fe4ed95370e05f512904227aea20349c58b265e308f6122b4e329e8733e962960bcdc286ef1713af113015af9a33fbbf068dd3fadc9d23f6815fff9d0e4970e1e1484697b7f98e05f80085ed269e6e823932de3194ae418315a5c8e9dc600efb17439ce0af26912559d4741dbafeb03126cef7fe1dd4335a892a4ddfc18e47d8db5ed4dd93cf241b90bba07894d73a8f4411d60b5459c41985a1767c7c23d823d521b75b5c4dee5e7c2183d19d44b9b9166e31605a97b94134550b74d457a9d922204a6f7210baa8fca26368eecf773aaa0893b93b81adf7c3675abd63a58aa006e538adb19e31d3a6cdcd5b28baed25dfec17e1ad0e6cbad2c51ba9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24978cd784fcb8696545ec87120ac11cb3c0b000000000000001e935138e09c3e8658a6a71d5aaa7acdcf7c29fc24c7246493cefd33b4ba0a5c4c293ac132ecdc9566a90171d9c3be6f27fa1f8a7f9e7fcad2873e8281519add02ae758d5f153c8e3e26209f6f14aaef19936acd6c56435e2c3a77d68589aecd1c9657b1ab0ec7c6ba530db384253c468221be5be2b242f3b1949a86830a0f12b500825932e3c30f35eb12fae18064ae012239f5c5bff21acfcbcb2e7a9afe48a1936fefe5f01c7d11869295c0e46c948a1738287b85c6907ea1ee1b3c2b7506637eed03325c0e1d324208adc12d850cace8ba5e5de442d6852e1db07f40ff3c8de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c2fcde81311867b581418e115ee9030630a00000000000000293b68e97904007958c0626f0503addeff3b17ac7435bfd5be884fdd01f93d449e0958c9b53840666a88757c373843d3a832c1780c6b4661c049a5ccfabdda406693f26f56cbe8dc5b40dbe2885bf138c10458fc8a4da5f4678df0fd285bbaea4af70f2b558972b0b94a7e03068a54768df0c1d12c3f4f3304c36076f3fc6ee610e34bc7ff047137c8ea271f9380f4c30ca446ece58a8dbe2cadff96ce4aa97e0a7f3f4a96904e6faa1894273f3a93afe1b7b1776337e79acad12c06eab6c8ddbdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c05b6470651e2f9f235a28864f013fcc190900000000000000888275036d956b65b7ef0e6c66f1bfa010f92251e3f3b7a9735abfa57066eea201bc25ffffcaeb1f6ed170cfc9cd5fa2662c8c2ff82121e0ea0ff615c242e2ca76dad5df862a8ce8e5aa7174fd53519c7b769859b402c60746783a3541cc7a7718b82645a91c75dd553164f26a6917d2cb4c1843d99b7f1f6a600f4f511e2198c17f207b6ab11b1150466b7d8a3af077bbd78ed4722bd33752fa89b8fa64314d6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dd83ece44b10c6176e2c5064e9b95300f0800000000000000ed8c8e301d66b96fa31efec39e981a1c15bf109ad6e0cbff9f17b730a0f6522326f88447609cd8b9b191001db1753d2c2eaec6a10d5d7ad746384f971c5a1bb8c70ce61e1e762151b15750283fbec41983890757bc5d60634ee06d3fe8f932cedfc2e059c9da62f764ebfe7e0c01212557d249138649d65259b0190380883fe44f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222f2e39a5394b4c8417f3af901ac12cb3907000000000000004c31b98ea9c3fb33b40401fbe7c7a269e6a5a158e139cc249d4d9b906e5996e1009f415616d9b56e6111e514a6d466f28a8f69a6abbe0da3aeae0dfadd2d77591fe1e40941f14234dd4217efdcdffaf42a0b75d3baa8aa5156d3af5363653c33b2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c586451f1fbcaa6d0642894b25dee0ce4b06000000000000006828d30d57df085cedbfd0e43f88b2457296a3596d531849ea38602e909cd7ea7154edf9664a18abb0030921ce314f403161663e28f60e6e8d1f788a9767702aaad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9d50245323f4f53e19b8032458378703050000000000000046ad013912803d2c14031d32bb491c5ee458330670bf152dd1a3b4237e56816b337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbbe3991c601e6817bb4c4e144e72aa34040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000152efc45d9edcc4c91d79f13b0e387471000000000000000896b38546b053c94d015aa5fb716527f9f08b5f923efe46ec150444f8b06885060fd047bc57be7965a3dc5b14b9f8eab3647c3e8585c334553c8fcccbf5ba70a3d9df4a50151220d9385cc0b1876dac3e1c19ac63379d6c4a81ec4c8d2d37504ceb6688b84ee9947ee6cba7619f234223e81466a7ce773c9fbd3f639dde10e89af237090a13306b843dd55bf38acfd0749e61749b0b314ab7381f0ba273c4a672be88f13a43912792d8a0db0f993b86ec81b484cf924a367a94d5c3af23f55902ae758dc787b70f981b44ca88edc85b08fa06c3a48b9264edf022ae2bdb2ea27d2c2b25d1ca5a557e682480f7a55a5d030bd4ba7589a7b8caaeb7d9342abc7806101baab3de6e9c8a8491fcac70823ec14d950bb144c93c5771640e7feec75a830e66ee925828b28cd5346a4def2bdc1de52db2b00357b499b0419722db702851a8e80e238bae8b36f856d37b017c7bafde87b456107971e8ab4f55354161fe0ddbd7b205580096b94bc8c5e5765eef67761bb220d030c77da5dad1a6ecabc21caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2cf0d9d4c9afa1061dd5d1a67c378a86c0f000000000000008653a208c008f5c9d22b7a9b8af9d79dea2323be3fcf73a107bc131e85dc406c3f2efa59c8d276b935ed8579a75c70a0df60ce55d1e9435185b311b1afbf9402fc46720659a3729b5420157825cd07a1e8b10ee0225f3745c63d60d8570a78b587256fbff61aaaf2364ecb7b4894b8d75c3a9776016e8c82df60900681a569ba5dde16efef458cec156368f7b5e262c5be801b12b3e54fd5d0c62e4f4603a7b9f89ea0fb02e4e1a0a80c9ebe431ec9dc9f2a3cfa21017201801c968bdcf92fb90643682f3928b87f5a39faf0c9ee575ed7a43b9df651e9ca09dac879a946687bda7f48c9c92c18901a15b6402cb040869c33d4cf94b5e2e91d4dbd8bc43292a6e4d184ac29624648cc5602b2ddc6a64c9fe383d54c7bd09d9a1af53b850967e2c105c85c2b92df69f5b42a3b28d777067856fd8a8500601c01201d496176199edf33eea6b5469c3436d844b62e6e7a67d053185699a57bf2da9aa6dc454998f9baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528dc28832718c33930e041c472cebf98570e00000000000000d0459f92310df80cc07d7d5244117223a7d0db19079ee0ef9bf95dd09598e374e6a736d7f7be740ba1316ddc631f3410e2dbc825b18d7665cb3fe0664cad732f0c37ae10359284a2036be35d7af07f05e0f70c1b7316bd99d191a035b75812d8aea1482eb8bc5cd7af24d14878bf32c0bd4f97699efe3a15f5f91e9569bf7f1baf45ff64b2e54b149644e22d6e447d56faa27966330c214d424840fd8550f84010199a15c8580bee0f00b18c8d0c191a1306e02f3ef8097dcfb76d4afb07af1d11ac898bbdc05489daad3089efe6c48dd2df2956fa559cf92bb37889b07e6e911f5e980c54fb729288ce062c0802d0537ef45b32c3900dceec47656aa640e0f76d9f05055a422a4a75aea8d300fd2047c49ed5cf8ddf618899019f427ea1edf93d4461b031edde185b196788c6e9909de90b1100afb03256d1a93b63cf3559453441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b685c711c696671790d08d64150822fb4030d000000000000000e7ba9d5996798dba54253a1709c682aacfdc22e92e661855f4be28eec5893fdc6663257585584f54e1775279b108ba5c08f61b23ee9e087109abadb20f9cde9f13bc34f378dab6df7022e0273cf90fbe1856ef993ff2def8b92e1912b75fd98112d0d2f90f14c69ba2462cb6df16b7b486c21db99fd22d84f52217440375e832c022312e7548f761a4b5429a1e27dafa052da1553209d70db99bceebf26722af095409832306e8bfde712c97867391ba99a1ad65617ca36371244127d588c035c5c09763c0f6834943f8b4cc23b3abe06822c35404c60e8d4cb8b1872d85f18d4d9f6eef6f7614885f9f2bd8019c95f7ae17237a2f5835e12c43cc51010e473d789661eee5d0ceaaee5b6116490ad57ffd88925dace9c06845ed0f8d66f1ecddf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999251b8454a785b10d0d731e43c6dce9460c0000000000000047988161c88cb79b15f5767b54490099e60ad961e020279af37dc0fd78eac87b536cb9f359f65428d2817953f1d7bbfc73b803a2a23d427fba5d99e5817901f060b02b4f4e06d9cf04c610ad8d5de0a2cb007c633e24974bf4694d86d693c1aab1da652ab66ee09bfcf31ab0cdb81a785fbd1bdc55f949816c1d26a7fb31274e35342949131de91087d79f3029386c1ee6969d3c961a79d18f0ef1c3e8085785c5cdd728009456b8fd8f3b5d334722d753211a157ae7dce985763db3eb8e44c4a412ae36825d6c8f8406b9b27490e1a4a809b246aa838308f35b0e28885a6f5aaad213b87d56b154d25e9cc617921c4612ff74e1d32531b9829d6effb7325373cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249b82b085dab7c7c5d6faed11d142a8b080b000000000000004a1e10d631dfcfa49df080e871cc279c91775224b4060ed80873cada594ac151de3194b116f8e1f9fcc30d72848c361e4da1d1a8c29fc390b7dfd4ba79e2a78238cec1205e9b563644b5b3356c49bfe845a4a8818b98132c981f1febebdbe7ffb21f030822a2b378c6dec2aa1d5c9ccded27c4559670163af40342afed7b6f532659a400d442242b2cb6930cc6b4d11ea0791bbe36b247d2bf34e07664780406aa1f133fa13cd3c9d0d80fb58802680e7126e3f7b3fed18e9e6c1616f9019198c2cf306d7db655fcb7690e6d218a1b385b29b7ec89166c08ed10097877d3d14cae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5caca1a102fc41c8213244882b114d03320a000000000000004db0b378a3a529c895f1c78dc1e19afdbe234e76680a11177e6dc27fdcb1e0425afca6167f446b18cf61858eb020dcbcedb25ebe76e9719385cb33467d5e9288ec378b832b4c76d9b763016fb3a0a363ea753ca8c9b87f8f8366e584c66863ac4683c566de289db535fec11104c796566a61da208676b3784f431e9258ebc48fbb2e37e3c3e69c3125d3d2f59a28add177e4186e12c20dd0c520d1733318aa211072d53c4315ea2d8bb69a5bd0dfeef36d420c38389a5e4380488ad126e0fef819a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c075af4d279b628022dcd448243627b5240900000000000000a3a98f49cd4f5c44238ce4afdb0d70cbf53d9a7a87edfd3b730a68a8787a23f0caaaa5cc7268709bb43e25e56a5cea4c1bb1bd25f268f9717125db840aef6c4efe05d18acf298e6a05994e962c3d8c8cf735c3a2121c60d9673c31624c1d6a34432db5839a9572848a4e6c0677d7780f8f7d775fd5ba78065ae7132da67aa688f2dbeb1e32c98367dc926de6b08588f4e8f00b4c0227ef69dc5a6a46f3fa94f09f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960df3ec2d2875cb4d4197b38c6915afb71908000000000000006cb1263ac5f876a98ab411edf24e04405e50bef1f014666716162e41f1a1994135b83c522338a70700b5e45be89c9e587dfba1bdc28e0f46c159437a0bb4175448c864fa74827a32e625977636197f61d41d5f43c641ab6e57fd905192b9034afaacbb61196eac22f6f87ac612431dfae0ada97b8d944fe45e8a9bf3b7f74710206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222a8c0a3363e2be20ee5abaf0cf05cfe7607000000000000000cd9e40549af73502208cab3c1f2704f1e07b7158724829ffc5fd386961c267ca2f924a762a164d1229796acd14eb7c4dcde224c7131436fce9cde5271029bf9aead27932ce7ba47974191e00a8996a872b00ae5ccaef3f7cff581ba8bdd14fb2f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c580e23234471b455f249ef46bca285b570600000000000000514c6080478ec44fc74d967a79a2a803dbebae4139b5cece40fcba37e333983613935a4494e02a8598a5f923a9b2fec2af2ee718cac51f199ec1a660583c8ecda387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c939b770c0a89b235c8d7115cacd1d5000500000000000000f68f8b30c7f5cd817adb5a125ffd15ee8ed9f60bd834775746f4328adfc864c5bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbc657b6707347949ee81a20cb063461404000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000006656e94b651cc3452023234390d96861100000000000000067e7ea3946b2a34ab99396d216a946abb64e245accd87e7ca34946d2d641f8b4ecf7a6af76b00e298686c6dc3a438d11177970d6d393dee62ca508d0fd98eb2eb97935248677bd08cf3da9ed5b863f2b3cf3a8fa81bc60b7962d2d8f533824adca8d39b029410a724be1dcd6fab9d1e4800d34d07df922afb8789fd8e50def1925e0f9cb4f55c06cf00b8de8d8f43690378272328b830d86cdd7ebf9256ed2fdab399aa107f942e22511a9b7a7afb33d19f71328510a0d19296e89da68c0534cdc3fd511b28764b3a7149c7ee495354f716ef3da29b23da04def9db6daa1ac292c0b35182f512eb45774141e3c5184c51b89413bf3e9a5f6739eeea36451aecd315d9cf2edf0b0592435db1683184932fb9648286bd1ddf1292667673bb7e01ca3b798538bf56b856807e4321c1d2a5c27e6ddac8c8ba138f9bfa9ea36390fe9029b0feb1dfe4a7e81c6453e52b86d51b9748f2937a43bce334904c4d169606738d70804feccad9c1fe2e221d32e121a316536781a2c9cfdcbd173c94b7bfda109b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc071a94161e9648f038c119ff1eb7e5dc700f000000000000001956a88cbab17f10097c6d92e429efdfe9afcd310772e44e65a568be14ad649a1bf1a04b239d4d06fd630b118258d5ad2355c482eb373666390f0c768be4aa7a9d38a3e6aba28b293e2a0ee00cd0405b138d9ff519b5fe927f58d10a5f52729a33aca9d8fdc3f6ac7dd0d73bc755deb3ad0cfb5414f32b17b0ef40ae200f20dd43fc45231ccaba4fcabb933985e4d2d492e2a8b0f4cd39f1d932134ed19577294cf086790d9b84279e1226a597357998d5c37beff8a175b1cb6195f8deb5b77581b2888c4e20ebb4f361a02353b76b05ed75d3501de435e7d39eaa46dac78e978650efe45f050fd6b37f6b8c59c9082fdaaf768ea0b479c6984bce9f0c7e1a02e83d9cc4af5e5be13730fd089229893d88a754fc0fad72606cad406e41261bd5fd20724194b08b67d7c19c5656953f10afd5213ecf96e00c74fbbb22102643f31086a2accefef0f465913030b00399f876cc778a3c0a4af0b021bba79c7ae0ae93bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19f899a36f5f78a503b5cb7d44e53978030e000000000000008cb063a08a9477a2e318e60c7244ffce1ba6c9c8af7a5b134b5d59d703a3080724f6835cead7e64f87ce4373ddaabcb48ba75071d37337d591ccb8d79b9b476f8a0a1695805a0f91ab2946721d1551efe98c373a10ee507e4a1333877e085963fe3eaa370792b5365a88c7f354288e04ee319a020218748f5bfb87e2d95c8c9241b6ed7370ce03bb74cd890a6a45ecce8ba68248c05e63fdc3c14324669fd5ae0ab5a67dd00f0eb154f0011af294ade1b4174ec022eeaf94c380de95bd019480a0650e14bb24a8f72b00f25cf14da7391eaa5fb79387148a76c3d4ab62a4e54c8a376de73b162d6bed1a9fa3073c3425d5390f3eccbc5833ad96f18b3150021861ed11943c436d6610f2ab3015f764c069fb9980a4eaa96d74fd3e0938ab157224e40efd7e942fdf25085753b633192d30e1269d0177c1c2d068c634fa974b8e28870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817de371e81d04eb5c47433cc766d6e992490d00000000000000041c07592af2b878c9f0cb3b3f296da95e7f2d0d6104922a926b5277918feb2524440776ce1fc2b49d744dafa46b06f39ca39221a0fac0f6580cbd7c4cf5fbeff879766f8c824888311b0d5aefbcab321992967ac3c393ae6c4d5930bf320eaf2ff9478e4053e7cf96dd20c799262960611e4ab0ae72c796b7b02a308291c0eef15c8c258565d8da04de9ae89dbcfd5a5a63f27678ad80b7ac75c05145de96df633dbb818da8050206b1d98d2695cab144c442d1dfa1087c1218ccfb47befa3cbd6f12aec009c65f1c108106c3abc332153e8d0830ffc88dab935160c30607e4ff56b0cbbd7b53ce8c32409e902642ea8a8330b99239fd82b6d8605a7bb50f3c06a9af8bf6ad644d3c1f362d226ed83be7f5f7ff28370fb4213ee821253c417c9c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff934c36c3a51a0e1413934ec55e633fc400c000000000000005ab83c9f60b7d2b4828b9eb621a5eaff1d18d39a675e242d7ae5a24f79512a7179a46c7147f22c0be53a44a87c7bb7be917e00884a9eb4b013c00a97e7e66b20b3459383f4f221b060e90ebc2d8e57febe7262360f08c9dc6fcff798b41955593876cf397ce6e0d44719ade652618d150bf7ddd113f2c6d15a4242185136d3b9f02c3f646a34eb3f51ef844aed16211a8d68a87ae77d564de4b1e15adc2baaee7d852f74a40b9dae60f0ff7f7230906851474a34ea824786ae2cb430c9b2a86a6753c625f88a18c02a1ba1e6be1e7521c4af66e763880ff9bb560a94488085c1fe8103c090b9b7411d34b4718dd3ca52efcfff90a6ecce02969105ddb26ef9b56ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8726d824a3dddaa3d9d46ee068c6ccd610b0000000000000017a19165fdfc420665d4ad0691b673fafc820e2a419ddca3d0d8c953cce8ee235ef142871d4b6e1e9d23c233c8e37baccd8939060ccf079fd5182c3edf453fe1a3ddd4538621d356d820d80dc7dace3ccc4b933a337d4d2edd0a250d82b90c81dff43c79ed8d849b725f49c1e34ecdc6cfeaeb9422d865fb0365af52cc462dba64428dfae8240cbff3d119fddd7ee29d0ad1be1424b6f25d3d0ef6de18e2c1e18a73fdf03e95720afa1d7a6261ada285f8ec7f25a74c9f536813e241c0c4b17dd342efceb589aab8545b1a401911929b4b17452b4c469a6be5f83c480d30d6f0cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e5c516228ec1f125d9768b91b17579a430a00000000000000079110cf1dcc6b9d6ece2fb772ef578c54550e6bee9a92f46e914cfdfbbdd603753bd27b72dd12223f7e30cfc68c0c0ad1d47de8796779a6fe8c202c5c3e5bf78f56c1b2f6ee86b0e8a5185d83183f560be95fec448cda4d8ffd1bd5658114a1f98cf597cb6037ad61b15ebdad9e5ff2573970bc686dcb0aed307e72c98f636e73dd2f5d7f52c2841835c895d515c232858f6e5ed95f23c061f709624885cce536312c62d4690c5dc44a2998edd6412a56da90390edc81b35a3f2526bc8b59760c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b101f272c98c64b5a3f7a4f1bfb4540220900000000000000ef4e5b7b80cf8f2b59fe28aa2e432c9b4bb404f48c67695f5d7879cafaaf7b55c828513f08faa5a09475c1b8799ff5451500bdb9f9660fe82a0399acdf9787eacf08afe07ea08b07372d497363e556c13516f4796a6aaad9f648a767db4165f8ce1296ee33481f8faf5ec68f686e410bf44b98a80e68e97091525db03481ba7564e9c8b16f73d8f383e30cee5593532ba3d7f86d64a32d2ad0963b1979a6e518b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc0d2b8a381933a446a6721d749f78fa1f0800000000000000283c1bf5a8e033b46beba49620dbe0df4820e6a9d4ee8f00edf18611266f54807b386cd915381b0ce75c34dcda1af9f9f1370f0b3d93653f67c8a559aaf4eeca6ccbf5d22a1cbbf6572fb1dcdccd1e929198a347e53fd7fdd015c0127e4378900a3269d4a7d012ae9aea5f7027e9a0917abc0c7ea81e2bf8eeb18223d5b8c4b245de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a683deb853021e27700bc1123393194512070000000000000076d40a3dd069c5217fac8c6445fd0f520759e71a7355627941c3b89661f87f04b068f24349d97cd212a7fb16ce74ec9867bdc3ed645a8976cfd57d679cc38a4c8820b1ed02744c737a90345f4efb350c2e31074023f172ca0a509510a268aee6678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec129ec06cecb2b0716c1179652a66d928060000000000000068ad701f7ae98e19fee0125a6fd8a98a3273833deb96818777b6b1ff3375f70646839e0c583a90b2f4c201a875e4c178daa01e0aa4fe26d1d1dc08a3174d0fdd5879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17039c7c157f529a54a59f9406fa85e35a0500000000000000e40a87bde0433526a7bda9392994263a6cc2d84604b19f6efea4367557a200c7603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799809c27e37f87a4060e2b5454812eaca3a0400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000005bc7574304298b7106f8994bdfe25a3a100000000000000078baa6767ad4878288c678eb1a15a5b8ec65afb451021f012bb9f1f0b5e43cc520fdb950acc66feed46b093c4d9deb4f4b1b70ff4dd9fb55fd39d20cde34b220af0420461330d7ea06bd08f6f731a723f54ea84e0b1458a4957dba744e1b922cbb236663767cf1f125e1c8f28186b356c3645ab3f9209e004dd33bd45dd266868aea79656a069723dbcffd76529808e502433d4d0eb238fa56c780c04387d902fdc190dfd09ac238fc380d75c56ef946c1cda1569a56a4207b604e16b7f747f15104a94382e7d7443ddc4ebfa7bab281a31d2c72f3158a8b83bc3ea0f9f00516ef6c0af130bc39d608ae7cad73cd6d57409063bb63d6b99844c9d7af26266f59fdb89ae4ccee3f3f625ce4b7016ac2a4ed910d91cdc3c87750523401d50d120445a11a2387e6a0250e63cc60355fadd2332770319e78d670287bacb86c188fda5ffc0d3311cc04187b41bd79395ba81153c2e1ee9560546b0b66f03d5f61a6d3896f245286f80216346a16ad161330e2682ec8f8c0eea0d9ff0577095faaeb027b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2b4f30742a45cfa0c2d941e480860956f0f000000000000002e9b9ab92826406b4552555abe7bd3e77e35c640a516a85863558e5ddfb97f5ad1109c76601ebebc118e440850ca8929b8558c0283f66e29d7742a2c66c7c5d3830a008d64822a2bd7981e332f433522a90647de9ebd32f17678aed0e4b093f234dcd2c082d83bfc5d760d5d6899b08857bc16bcce34225f424ee82f69db005356b930b3dc49565e78cc91b96a62fedbb641172164c8eecf15ea71a45e8a59ad884c13048bbfe83df87ec5b719617ad23d6472adc7f5aa2a7d0da8dc32b8b1e4be5334b977948d9d841200d4f30548b8e781883769966f572592b2377f113f98d6e083e8da6e9559a14619e9b3a6bd33066b4329fa8cd311298fc4c158a0d4e6ccd44fdd8e15cb5d3eaf6f0e52c0e6ba74e9c6cf6fcd791dd922299642895185251a64f05a19d45b310a8ec35c8e2cc6e8b908b3e8f24cba3b55d59dbb1c35218d81e989d3798d87d1c75afc7dbde6121a89e62aecf7d116755438ccbf8d9b453ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528e039a571f99e0731979fc02359f68b400e00000000000000eca69a4488d8067f67c128c99ca9c45a7f4240bccd25d3f7a62c0651696cab3b3bfc8939f6dd36cb33f732970740a0284c0740b655eff2a5a08071d7e3ca614dbb4e2c94f3e6c653ff1b2f812a360ba9407f48e3ddb416995cdc838118eae9a13d59f8976e0d1469a714961d10b8da5084bef9b89559e2626852f9964c76802c40ef276ebe1ece3f79d8b2769b749f12a9555b36859fe4b5bb9e9fbdb5eb5a926eebf92c565602f976a3ea67a62795894389c7304326f558001ee34248235595e31f97ec9729635d46f46b133fca19b30a538f48b348d0554f896196fe06b71db9d7a1c1ff0f1687b82e076056410281d7b2bb66e2e7b754d5cff6a63a689baa564b41a521bfd29b15e3b4fc64a9d02b79899146872b3943e2bce93dbaba681877c959128079655deff7cf180ae1f504b99b61358985e64b6e12c658654dec1a37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b689be2a54166fc854eb06e1f1e2663aa450d0000000000000026bd8357c939a5f18dbe7fe74303b307fbb96c047a7bf1e4954165d584d62ef36e7d327cef89c0c8efee8fc19bf38afd1312cf07673f418cce03662e4f337c0cbdffe67db16215a5ceab8931ab9e4079ec8480fac9381d1649213f66467b66d0402c54210d86d64c250b0193aa5063b43fe5b15a8ee8e43c2c68cd68c04afe34eb94d22955a8fe7efe5c21553b1e135e85e94866bdcea6e929a9d184980f16d77c5abbfedc0e4355b99a1ff02e461a3dac5c108e30505b27622229526ff478ab27e5029e66d29b829224602b46496b370832f516062c72f0869609e0ae32667c4da2fb231866937187e98d4bea4acdbfaa3512864167ff8231127455bed114fa9e33cffe5033e5efdc0d9f1b8352f5eb0f531aedeac1b1170b3fd970a3c7ef42c3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899999d65f05778f4d320ac23be3e23d6e3560c000000000000002d25363b95acdefcb9e4ab3b5132091da037b6e125d6a59fa7ba785dac57f226e9adc2af88ff3ef5e39fe19c2c96cae3ca4bac714ebaa4cdf62fc2e6ec3a6d98cdbf89a7ce24aa5501529983f8db1e458528fc4bdfbfc6e0bb420da2cc9e642233719b7b3a7c3f0cb892ee5b5b2930bc7b4b4f98ee43ac84ecc29a020bece40573e41fbd6c3f37cf0502e18bd819cd8f3e5038a68df2d7bdf3499649cc8d94d4100217fde70c68ec0926f13879fe3529f3d13a8eca8d1c32d56e778821c2c6318d4f8afe2183f122787168808a18bea79264b93915f058a457a0d64e0842a1536ff9aa9d09a2ba8e60febece300d6bff4b55496b344b448e59a8268bae45f4a3d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249c4dac060304f74511a4167158b53e85e0b0000000000000063fc31a12701dd386349ea5486fffd16bd52e8ce8e747fbf2a74e73b382a22e2cfce22c3024a098fa34323144f623b1d4e6b74da76ac7a1ea02006873d84a65fef4cb1f00ad2e27abe5037dd9831b61e3fffa8700d57654c534d833c319a2c23520e9052d471072ca180b2e1b6f7f8d0af96db9a03afbe59d0e8cde8071e4b6fc09cc52068afbb66190947a01b522e2f4fc4d3f7a59060da1dbfc3e88390bd86ae0730c9f395c9609c1c73c098ddd4b92b25b089995e3f8959656f9ff82c54530d4e2509352cddd6f8ace2572f5fbf579cf3224616417c751b38fafa117a08685786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c7fb65567b41a176b6553e949a56249720a00000000000000dd6e49cf72df0f9f5c484849081ef0a2837c6ab122dc1809c25cff472094d02c8e76945a717039b3c8a83a153b1167719f9de34e3c23ba7120400d0a24c6b9b802ed18f455ed7562a69cd15c103f47057cf927ca63c5e355d0c1cca4195b3dea38cdb66be00fc77b3e73f7fbfd61afc871b11a0c9132a66db00c62ded05beab941cf8265bc7c32b92bb71b585ce8be6e538efde06c1ac3f8cde3881d4510880401c919531dc451cf8b8511623de9b26b0e3119a47f5bbfa6dfb2cdaa7cfe82a76be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c02431e126a7734052880405083467211d090000000000000075cac92ec3127ae8c00f86d60b15f02cd17ad44a88106e1268cbdfef40a08cb478ae6269d24af281f5da4dbdcc9623168d8da5cf70818881b7163c1ba0a2c245a5a6bd1b94add269d13da09d6bdede4d6af35b70a16aa2ccf2e03af564f43841a5cab870178ec21b0510622e759fbee16cb3e67c276114708dbc559c9561610d0b383ae99046d2e647e8afa77ba59142d6f2b464a0cdd4b0c33f62bcab57b937611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d8eaadc3c8df25e183e873d4e90b94d320800000000000000715e4a1672e4247f9d612d2775251d27213e2514a5f1486d0b6ca53eb2731adc9af0c453e54dd5da9def3fb061a81018d6f37711aebf32d99feb55b0951a40ec0f90c733a66b31937e4d2bf0b232ce76f5c4d177266fb2c16269b8a3856a954d3194b9399026400cb6a0bea8ffa3539b39218de9d262b26673fd461db907479411f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22295ed103a48aa4f21ff27e858dfbd141d0700000000000000db48999ef4653080321661b0abc9c1616db9dec86c4023dc6819fcd2e4486340560cd4f17da2a834229cbe454029b22b4cfe75b6b5ed0905287fc65183a2432d21b43b5374693d91a8dcb1b2f1f2bf51861bf0e4ff3034139d621f6bf609a41ea022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c51e67045262f5b0038cba1d314b6f2940060000000000000015f73f310b4c8f3010063f981dd88775147a33780b3ecb681b470c620a3b833bbd8335a75adc92a49aa09647f3fc6c98c668779b33cbc1784782920c7896af85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c5d3d5a230c40580affdb81462a48b2310500000000000000dd5e05576993dc35cea729c751f978d7f32a87dc12a51f3ebed7d6bab91d755913d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c7480a0502c190327a16b67329226541f0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000d5186520f3baca1c0fcd622e9d2422691000000000000000cced4ac3a682c1351b89b29a1f04cf3e811e4adcf7170b1c1e83b70e49e91e30a01972cf90261e30e5f59db67d2beb9621cb212c0f8e6e42bfab3a4ef266ca5369da0fe6ffadfb804c5e369aff96ecebe375e36aef055d7e943bd6466b69fc5ee00d11b33e29f5ae31437eb125bf8b1680a92313d169fb4ccd1aa00032af5f389da5611f76433060f9e36249df8c37cb675146a7ea72e775bfedf53934d4ab86316b371a4d160b7f1de7b923319701ad3d061d4563552e0c9d3c81760b2ec1722aa625149475e3447997d3424d7006da5ca06bff94110300d063668e20c1a8676f4057d2ea86dd5a606564718b05d8f6d25a37d2729c10d01e4d0158d6e54f21d196aa5e0e4516c52f37de1723727a6fc1febfb3dec5425d9e0039e22e7ec406c80d63d4f571f15828ea47e9092ffc5084b53b7db6e83adc767171ea2db100b9587af5b1256ba683a3b3312e6bac0f70f7f0f1eb88626924d0b10fce64fd3cd60a78260a94321a7634402c90d612aa8795a816b09fc6f4f1399a48d0841409d74de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2fcd56960f5a062346cf76e3317d6584c0f000000000000007d5ef4ec360fa2a55d050aa2ede911e58453d982075088b76974ba308e28b97b1886c36c24d9884439224e97a87be89c79a486e5a028a5bae3c740ad74f0c707b6f6916b7b6e9d88bcfd0d2692e3db764f72f6d7125ddb6f17048d50a45e024333f17afd288c473eb2a483f853e6e87e2ae31410015ccf2451c5ef7169df64772cd7d1abe8a066b4f785aab628970f774296e28a54e8b8ed95cf670f277c72f667abea54913e7875892c6f46d20f8c54999d5911894ce7ccd81d647fb7c1ba875d3d3f382d81709c0004033f6714565b2eb50cf06f7484139597ded3e3717267a17e42ca4ecbcf690bdb7e9ba1b76d600af0fdec7b3e84a1f67845ad92c0592cd989386063564874690423d399dfe5707b75b30b47a8928bd63aae966c8d2e295d29f4b90009ded9198c52e2a6744b980cfca7da57f4101f4409b40cc9aac366de37d3435b64b96a5bbbf1084db264212eb0d3b770d8cf4c23dbe91e87f99fe7896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528c80e036ada7e883b803c2f247c9e2e090e0000000000000046def0f629086b8047bb315730a46fd2a6e3290b516173ca5df05b54ccc3d6bb840d11053f2ec7c89ef2a897c78270268700ceb20a589c38795fd6a0c519aed1ce4c6484c1b16e0c75d859650a662f41e88a01c611aa941416083aaa3e819df7befd01831932e4f92361a6487f6e4c3da1a7bbbd12dd8e206be29ab6b44bf51686f247bf2551beb358e0f63565661080539aee00daa133a6deef31dcf381a6254197fb7520891b04af35913e6eeb92a758df9975b7b91b225fc585174e4ab26cb7d0ec72a2286e4b3cca0353b3656588d4e92693327a8e963daf84de8d7f1fe25a07313a01129f56ff71d257b4d37bc6753f78578ef56756d6eee7f782a6c97adac30b9d2b15579e4e3c47502a47ebdd3cfaba4f71c3fee2509a2148433e712ad8075e2001d3ea66d0d52092ece7b63203d68906a2688947ee75fb6264b59c961c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b688c0659744417ef2a05fa7f47d187b2720d00000000000000a91768bc632dac5d409d016dfc385b62dc3c6cb8ddcf72d13e4fe4d288b4457cf087b1c5e6bfcf67f458e62e0609a1fb461520478b146f16ec737c0a4a490a51697f8cb742ac46ef6b2b0e4b643587a19185cb43efab513bbb3b4a7f13fce8a5bb3f2ab9e70dd2f87e3ac4c949a1db339d5b09d0fb7c1d46b42fae125b25f4b3a2e7c40d1f82b5841ef4cd06e78100a85bb9904f9002b3dd12410e5664d63c4bbfffc1204b9cb7dea5260c5b24b2ed09d2425ed64a1a7b7f9721a3effc9215a6bf8ce4d8441262a1b8add9330f7000388ddeb08b4487aaa55f46654b473b77845cf55d4ca552a9ce11b6a57207a4be822502c2acb7abe311c0ddc4b6de465e14d3210288362bd4660d268c3898cf9d0baaca3c9ed3ccb9ab47313cc00d068eb2833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899995093c83874c0582df79e8b1eb2e2042e0c00000000000000fcd2ff7d406bb62f13858fd522bdf0103ea99cf60e2e62957967422b9bd102edd285facc28214bfadea2d3c7ac1adb4847241a202d6ec79d1cb1a60e4743d6c0a0240b4418ce36c3a4a40a40876a4ccbf2e0da311b653b683e4c6375ccd6f759522051786c181ff6d883f055958144a27a057e5f8413fcca8e778315222b0057c41d4805b2c1e611134a2746257d94da2d8521f2a0f5ddb9ec80674d4ad5cbf701ce9c002f96f57de75e85a5bd682444b35bc88400206edf94d3cb59e8fd2596f56b5370b8def0e262f1626be8f8bfbe9c6a159ee15de2625fc7979b78dca5471ed715cca92cc3e02def4c2e3cf4c01f13ea58010bbd4912e7d3d9898cf8af38f20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249d1d5bc450f247a1247aba1101bd388520b00000000000000d598d1525e51aeb311096eec89f1998e58b052185b88bd1bf703a30ecc232b091f70fe5c00f03bd53dd87115cbbc87fc2c8269f9383147604ff967485cbb4a996812699e84f6ebc6492f0e19d1d1228c736e890ca63cee9935a3747de4a5259e00e550e2ed03d6421f713491c9b2787d7556fff3b9a53050965f7d0961cefae68e6447b8fd4a67e5b2db0ccef1c9d168362384d0093ce957b85b6daeb46c9937a48663b6e9761119e79fb10844dd32afb083b8afb6d605aa7ba9671795d0d583c71b35b820de8641c74c88f7b50d8dce8a367a3aa52d474b016f8f473cc8b1f5e3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c5e3e733b299d0658a2011430308e92720a0000000000000045e58cdb71a588c5cba1e2a474c06818bf5fff9ab7913361debf8a508928e608c2674b7e4b61c4cb00df721dbf24f3bbdc2cfd86418e18b7c02e37d1fc884d6dd09d256c0fc096e80c4a2e7e5fa42a2aaf9450659602bb122d8a72209f4928c46700eb9f763778942acde96abce4c3d1a5123be84fdf395793ccb3b0b219b1064aad948c8423209c270d2a604c6526e49be8099462e8ebd010b7720891861fc4c35f50f0369f776901db79cde283fc14f6d5558a9801a70217128543fb8f0f4dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0e4ec17063675331795f6a970c9d816060900000000000000711f5849402c88933d317f18226ed3cc7fdb4389d83fb13d10738c3f1292be4c84f8782630d10a8f01657df01cc4a07ed4c0b224dec0d043549e84a0c1e7b33f7b0821272b9ef8def572324c11fc1cc7db208d02b2d786691b32229dce66740798e7767438533c00a998326097adeb8e2f31c9c775673b195e8510aecccc34c753522af773ca5405bf8e76efddb9c21320b19c70f1ef37d122023bc3e7d8e20842cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960ddd76f00b35e30440f09c0123910a492d0800000000000000101a8a8e20e6a3595af608cf7d3f7cbc76cd31b8dff67792e980ee223594aa87e334cf3ab240d6ae6779d1ae66c65600ba59da79111d6318149aef9afd23745f98f3eb15b634945fc5528498ef6b978d51041dfc37cdb1b1ab4535723eb696c247f08793396be6575a3d34bbe34cf18fd12ec2bed39611afb388aaaad779911324c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222a0a55b3a177e1c3ba980fa52b5411a2a07000000000000000b5c528b2abe10217b92078f8660aa538f3e89a10e50bafdadd3e1df32a0c1cb10e2a1f1077945874f76e89b8f8384a40997934684d0a33e893457de76584b1e6762ab211c68c06cab9694926ccd52e66c5ef2dd69382b59ff6170fdffff31943ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f52eb9017e937d068095ca0aae0f39470600000000000000d1127d69d80bd36d4a625fe82a4f1f6aaea9aa259a22973709832ab81f7162dc7c6e9fa6837a935c027811fc9d5b07ea4b46d1bfa7153325b2c59832f6cbb8b770bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c615c356b0ae56d1d799beb534e03453305000000000000007ce12838ca2b8383b6a8dc3a446e484a02746a09ad76615f54c2b7ff663b6067baa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c72faca3dbe730c14e49a8e4a54765d4e0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000782e874eb92386083edc1e6993dab0261000000000000000a0830dd718c2b67063bf94df1d918c538a7c31842c129048d224a6349ddf5ace86ec34d71d469a112891fe3b5343223956274efa1f4fa7baae98d49b7adbb180c6660d82e9f5fdfcc5042c90e4355d883c9ebb0e36f31c92af448dbcc43aa46318ce6ac48b26eb4f4b4e90e3fa1ddc3d0855f895cbb5ab5706b09a64d6ce288f0c285e65e7f51316b6988d4ecf1921bf28a21fd0222cc5a78fff6557ef3a58f9b0d07b6f3f239adaf1192692d2c5b52c0533ce19d4f25753e3814aad5e5450de2cd032bc0814230a3bce104a440b89317230528e554b721708bdc8adaccddc6fa89c11c8a140f0cc39990a406bc190f0ae7b9b683c968e04935adb64b150910dab72d47fe13646c7f329e2630ef0816f736449a1651199088ea11846a0a435117a06e2d87aba077ce4f19bf060e0105f0311992ed649554c604654ba396526a2bc872a4d88cb80921c93920e6ac9395c50c8be80b15ab2e888194923405f0da87595437d496d8d4791ad79b65856a87a5674aef36e282445e45fa212f3748bbeea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2e4d6050ee130874e3235ad3afb95bf180f00000000000000e5d2217a85a3abe55b8177c85b5aa59d9cb1749d47e1780b3e1db3d730e2e24994975a2b32ba9ca12cea3e2670fa006c1371ab0d2ac858fa8b5c25926dc0c8ab8d866840b5239397a466525a1548f9f74c52ff87c4afcb135f17cea8970442a7a357f23af781331fb0a09194c30a3d15dc1691c9ef8b124a07ac663251901812e6a992f0dc186c7635c1b3b07e998dd1e4c6fc9c3af8d1c70ab77bd37b213bb946d36584450773950627a78a743ea67e88d0284f3bfc192552a0af3321939c05aa609bf76d97ceebd810ffed37751d1ff650919b701d555e9e6097f9427de42c7a6e683cabd69724e04fa239e89560f9d8ab5edc16820082b10996d2a7dfc2a426604c8d8499e0ea9f067aea3c5a0ba571d641e2c61645a2e9880f1888b2b75b077695db429cb4fb7e561c9b8808cc167bff778945de2c51ceccb889de993eecb7fe5eac3253dd010323dcb5f08a8641d22247d4a7386be484f1618a9b8b414c872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528a5ce5b2c720eb25b9ef00b4320134a6e0e000000000000005d14cac214139c9f1535a7a4f0ef6d595012231d2438ac67ba49bed3009116c555d4efcedcfb47ecb56c610ee51503283f2d98e81b5a5879a4afd100c076631a0eaba6fb8e40b9af96b7124ac7212e5c7c542c99cea5f445c94eb65e82b852a894b7febb9f6816745a27721c1cef782e111d59f0ec2d995d2f9bc282be04ca1cc355f63586d434bddb2973602124a95ae3237262d3984d9d2ec99a7d74803d1e330817397147e43b042192834acbc2bc218f138c5246c46fc9ed1b06acf86c853bffeabbb105f4f2aef79127abbda6bd08ae3082789b8f9c812be05e096f188988dade1df7b44fe3bf20cbc82e306c58449c37055ba7cb99a42a1cafeb43ae869cb92955ddefb97033807822d0096641f7b64dd5830f4604f2a771d3bd85cd57cc07e14c7a9b7d223c05e22bb3968cca24a63e81f10baa719e559aa643508f26175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68bcd5ec1f1a242f6eeafaf56908c0c0250d000000000000002c3220a2ee54e276e7278ac584bba81a62b8425246cf00f3b123c0560bdd72f519006f26401aa646a7e28b685a947e02fd0242f4728bb89e97173d4e10aa98f6fc267f75eed6449279b9c0142ad570d9b13a62d69624ead06e0ff4b9f923c4cce6bf5a647dfc33fb71a427e1d86553355627c2acc6d900a8644abcab48c75bf61bd11a4fbbd998b35a06bf0051f36873de225456df1a4a573be08dabe6143c6da3452bde357f7ecb83e0d9dd5503dddff977dff483991a28c57aaea00401784cf07e4f05f842d68bc8b45b0a9e6e8fa339a3b92a3991182b60543f5c29cfaf73d0fd8905bd61f8cfcca41fe8f852085cb9c1da1711b679f4c4729c24efe84ed9ded7590d1724d5591993a6a38e6cdc2bd0b7f9d0c19c5a8f3fb484e141290e052a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899992e5be5488d5e7d03a8324c72a27f832c0c00000000000000e44a85db93f505180cc17071784a86b1f99b38f284caffec782f08f128915a253f7d0554a299461f05629db69a13127709c8dcf57375522d6f3af6a0613731cb2946919fe8a90a5bfc6ba113721c692e7d0d445fd575455932a80971c05166c895f44d605d18ab2b66ad04fef0888d4c8ad6d4c226f4321b769539b02081f81a450721644b0f5aeeafd94adb0129253d2ced6c3815116484510a4c951c70db4d0e5081f4c0a2c72474078fb457eb719786dd94fe7ebbc6c98f75995302275cd7340741bec4bc9874dc0d7f5d0b70fa2c9feb72d969b69655a82b48ba2d358b4c05cce1c7bdc9246ac2409f652814fa72254b7c7c033b627f6cd74a51087d5b3b9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249d749a108865927207d142b2837a4b22f0b00000000000000d0284e499c13839901d69e3ea81d83d10f4c709b0d76b9afc9bf02d44b91d66b3cd240b94dab7be23bfca261dc7e716fead3007147b3f167be4d1f9ab2744bc10eba8d39e5d62a1c6c018736f20ae0669f8fafa559d8d9a4cd5dc80bf15eca282fa872d6db1f89f6cc9faef727e3ac3e3aa3e7fb9e83cf57cbc54b9b7d503a27bf24e57018ad793a087fe0bd9eefe13fd7927793a7fe70b4d0dfb178ed2cd5c0a958b4f80e5f5f4f76c24fd06c2a414e247476042ecb4edd94090e5ed69d1d1f569b9292867816e440c0ddea77c4ac571cb9cec7a13598f4385e47a17b567de08de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cddde972400ef9c65859be25529285c240a0000000000000001d5dc752674e9b74193aac4d53246e8cbc6933d70908a5f73e7179c9a7e59c1ca69c888ba1e1dcf6e506b7a6986c292cffdd8e82237525a44e19c0ce3b77adfda98514c9147546788318fe22ce98e8f9d9c4a8be8956397715c316294ffbf877db334a6559e733974bfe563791eda02479ce6781746fb03ac61674947285ef3aadb3a9cf772da82c63301a456fa7461a9309af4eff29988ed6afd0ccebacb778fa106a43f7394d1c52eb0fc00a49125effbe4028956a738c1ee9aead1156d5abdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c092b3bf3ab3e9366299501b58e1603a0f0900000000000000f088f14808a2d4be88bec663e3199ea598f37b77cb6f4b5e0ed6e4a3900b22e25b6d42fc15c4be2be1f62d2f25f575338b33ec9cde8748366e3715bcef8385245a09cb06ab3c87bbda548efb93a9aa98d20e5857a6a5a3916ebd7202ee8080e4dd437be1259c4f74e986be8a6b5feb15806cbdc9b5d5273b39ca82ce6c4d206e7ed70b80a60fbe5affe2fbc90a7306405007918d2642d7cb53bc5d56a77a9e9c6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960df5815437310c0f388f0d4237c770556708000000000000003197121e2fec8cd88619724cd824a20156a3932012674cf03e58a6ae50e23fe64a332fd6a23731e25e6d8221cb328f8130fbf4ed10570641cacafe34b9705454188226e98789645cb027bf50cef75259fcd9548f71e7e3440c565cd3c05cdbfd86c369aeb20c8bc092bd4432c3d3bd39ecf0a279480a5623e9f5e9c22b4be1294f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22261cd616846e43c30aa05a3577c7fad070700000000000000bc2f4201a26368f30b9fd4ccd1e93154f93c968b8e8908dc04188367b758d956184c2a834fee9122450bff25651598784d3f80e2cf2d862620379f8e5b69278e5c676fee3e87cab2ef9c78adf1e39e5c9fea0a943ee11356ace8faf356c7aa1cb2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5b56146132d84d74aa578ab1008d2d6090600000000000000b80ceadaf01060c08eee1a7d44c293b46760c95bddf7abcb60da50909f3b7e827d810f9c686cdfbd37949acbdd56910614c9e3fabe39e9760223b10c903236b5aad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8e714d18ef466531d2315a4016aad0460500000000000000f9374a26d39ac57f72a526c7327836265b6b72a16c19d0c63845d359c8514d21337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c0045e4393c6e163fc012e300d9e31001040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000c5f73c2c38a0317283b36d3bdc428d32100000000000000035a3db18aee48227ddf5e77b83c85759bf58bc236eda3750e87d8906141d245ba6fff3ea92c9df4b626e4d6d65993ce70c351cedcd5901243fed109489b3288a713ec79d821426927aeaee65455820fc3b113882835f6bdcf3d7af65db2b058fb2dd9b314fabc4a2f7d946a62dec2e0ad59c4502adb5cb8636e19489080c6df915884981e5785fd1b5bdc2a2a571677d8f2b2872a6b5703a8142209f77bd7647918686682be06edae0002a72fd6f00f897bd681685e4ed9af31089b2902fee228d47fe9734bdb44d23696b948e723497f74e437513b0feedf52b7d7c1f9180675af7b1a7fe1d92e4bc42e889173ae4922d6e80d453831b33e2374bb1392b2010745fc52bc7ea3e83d19b1c1dbf8b80601b33afa23aa3eb37b68f21f12bb2bc0ad58caeba988335da8abd2e2664d3147159a34ee9537a6c685224e9bdbe28d285c7ef6219a8bb409e8bdb12f085981758c993ef445b0e2348d6b13a869dc6d6c88030b1f3a16dc197d0de48f57b71cfb6343163b7596703dfe4af0ece12beed5aa2df1918906a18d8cbced6c83dafa34f8554ef4875b4871e010ff0a3648b5eb2b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc073cc8ba1095d8224f5dda1d680036ab210f000000000000003fd6e9802c0e58e1742f60c7ae24048df550c87209474dbc185bf357d81b195631be2f4f26c9a22e0ed47c0413e487610f58c3e8bc1acda0b4b0578d47a80a8f9a9d0345b694fd5ea2380f39ce18c907300d42276a247a2fb46f2837bdf3d5d8141b37fc9a78fdb110766c69d14e439438c47766657eaf76f66b0980a0dedb699b078aa2b7498c841f5f75a5116865752fc33b253a1a3692f9e1f2a37454695e475ca0396bc057833bf900c4b10e2b19900c2363fb58f9e7cb073c6b9e90379ffc35dffdd6c2f1aa8827814b412f4b3c989df3f56e0fce60b0eea0ad915700c4842f75585156d3f8c691879ceafc07c95484bd1b7e42e9556205505b945651b4a1f5819a42ffee072f93216272cff9cc66da909a8563a8847b4fdf7f00d0eeba137e27a96220361b7624970507ed85eb17a0d030b1aa2a3081875b7e10cbc7579aee49c53afbd125bfb575c07e3f75911b1b693c36cb295f39d9dc5f78b48779c750708002c77a3bd4efefbc85ceea8f9103c84ba2cf8ef4c6882519682d4184153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19e332385c13b35a743de3fd22c63466520e00000000000000e246dc65b4f6dd70043c97607cda53a82313a3e80d98ae28adbf93f100fd2e42217a0d4d8a0809a8536d418e9f9eb638da6a109304718fd5b05d751ac0007b466f7ba54e4a548aac5e02bf41462164f8dfc1f2e63e1ee05605b12ae0d6aa42169a2b714a253baa45409f0197799d877af96c856b95c6c800ba0555b8c7890965caa00ed8a7c598fc76b2f5738371a752c71d384be33052f5fe2ed939a055e66ac951de4798b6b140ed04d6e3d8cbb7ffe6854ffbcf6dff64f47716f53869e57303bc600e5f3e0d4bc9132cca38ec5f23759083ea88be781501b94ba51e1d702516992278cb04f69e216ca41a8284e962f27c3f648c25d855e36afa2e99b20d6d9a4adbf1116ef73d8b860b6c5ccf5af9e8c77e30ccf73d1e3d72d9ee944ae07afde055ff4e2372d133899fca6efd4468fe910eeef4cbe3e03a49f23d530eb0827f225d572ac2d59570ca26aa633f56563f52c294b0578e69720a3187017376c266100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d5c600e42683c8562a87228396174ef510d000000000000007ce8ba58f700fefa3c03bd00d9ecf1adacc41a9647cdc1e4f72498736dc4737e1e115a09a6233565e1c5db00b1b6776ed2b914bcae41c93e7ac009d9cb2ca8ec6cbef0b2b9641869a2951c0ff9b9e63e758f3a6ccde853e4677c51d789950f1cb4a120fa9a927341941b065711312c06bf1d9c393ebdc2e1de14c4b09f297bd37a05993548ccb48fafde1fa0ee84a16928cec8b31b19156c67a9df902366dfdbf191feacb339673f7f0320baaf4d5d60f501c5b19869f47254ecf6e392a17a41cb3c5c94153d7444dc8450d810307c693064f84da7abf4d2cea67861ff5b649b5086aab2611a269fe904c4e6a1af890c284bc38f01e049f15636f091b74d6e6c198f7f7883d6d42782f281b3e97fb7216da2f0e3dfc9dfcc39ca59a8993ddac2e6a4e39d04e518cf39411faaa33bdd97a22c5ecbc38d99f243db446e215edb739176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff92ffaad4936a735066fe27637af1d32410c0000000000000059c829f9677f6e28ad6c3ef370fc801396e1dfbe5563529ce553547e8fd76696fea8826f05ae76caf6e00fa6ba6a64ada8ba2d5983c1b682557bcf884398632628012e64998bdb03457b475569a6b14561a8982f9ef9ee1649d43de6a3aba28d05a1bf4b95130d09a4e9f779fe7c9006f2e40d36a0d6ea0c6ae7c784498692cdc332f1d43e075d2de850a866043835e82287e0ddb75d247c82d44c7eec2cccbc052ec55a1c374c161dcfc0406789ea0699a0632dda16241f2f862f78e794b4add0ec7c3c1478df418ed3b320a60be62cd2a25348a0ee9a25f3a66d78f6803e4b79296730ff72cd89ece64e11b9f67e4d85a78a290429686a44c98931271f04cde33ed1c50cd41e3aa45ec6ab527efd05f3adc812d77b98b3f40c0a71aa12a3fa48226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a854a0da6707793208ce135e386d415a6b0b00000000000000463812f2710dd7c4b1b378cc1aff54039b51bda8bcc49fd8276ca07d76ac41898bb0e4b085df0521f92ef1ae22250ef0a2677815a06ecaa5491a49485eb7ff7de557f9f292222211dbf659b5aff5f8c8b60c21ff0f9ad61bc82cc379ad0e2cf3b5c46bb15ede69a8beee462d11226f4c193397087624135af79874345e98f66c21763a915d5cb2dc3947a1d96759cdebf04ca16acfc9beefb59817676c726f6ac3c9f6596a6f6deffc31c580e9c82be9266c9660ea9345bc18bd6f660d503eb62580d2c210eb1e89238bf63b2de82b7f58f3bd36ec9a097783eb7d4a1d6c40b4f87f3fc0c6df3301a9979c46ce9249c5e58497d7bf54fa73e381cf4b6795e24f02b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e365664605bbfaf0c1b41e10f6e6e70550a000000000000009d45c9ed143c8cadd7ef5bb79470efda5d30852ed11c20021c54f639144c6f1be54ed8167c9b0e9e0b59d2e04cd76330797ecd8e31e803a3ec753aa46d425ec4b7dc3378e223bcf78f87d1e7551595b8f53b0b970a85897536ffc99bb1558383adaeb67252adf09fcdf7ef6cc20132494ea343a222323cfaf6841d6494cb4014852fccbda7f7e0d74b47932268a552418477fb51fdbad5494d42c871777e06df0ef2de13e0d5ec95bd3a5c1d4bfd1130af0eae936f5bca8032c46cbfd3a19f401ba60f78861545c39b00c618a3ca058a59974ee1a1f511b76eaeb2ba50119397b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bcc227462470cb33f486e13740306e4760900000000000000de50c7d157ecbd20b20b225f9c1efbc94f2702a2cc20aea27a84b321461fd625c88a0c2a74d829d9bf04ea9555a304002e8bed433821d7ecece78b70de54a1193500ea9c5eede2e445c523370f04093780d8a37fcd59409e9ef8e7c271ed3840b9056e93f49c19e88df0ffbb0d6d9bdf2c85b3479f74455d3d676a42a59ce5ccc4035e3a7fcf7941f7b969e585e1a21c3b0baf18739176c1117fc02d07aac2633c8d329745c16aa7391cef54691100339c2cbc659519441cd0d3ff0d4dd1053175ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bca137a80eddff371f19f51039a593c025080000000000000056b7b3f6b51f7179fe1e794e45878b01e9fe872c3e71496ac28ff1532d184b668540ec5fe1e56d86106815856ca48c0f2a0e1860237656b2f4d15eed2244a45d70fe5485028b1ff8bdb8188b38de2c2f357536b5b00e0beff37eb42f2fe96df022e21edc71d9972cea1d231e9797a9f4d48e4408fb15c102a69dd43640f2065ce9e2ba6852fbb76d1249ed82fafd8d058bdbbfa8b099c5944403912675d94158ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a60174940dbd1308369d1b7605aa38f17607000000000000000ac5f515d7d0209081d41acaf42a7b82bd402be6d607d30ecc4651f8affc3823d7be1cea753fb89f828355162f5277d1cfdd30bd1f4323ced864cc594edfba6db87262879c355febb9391b53f7ad7907cb777263ba04314842ebfd3ca75422258b9a7e2071367f037721121ffa230b3e5dd3ebb613c4368cf6b60e801932e116a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec6807bc2a9f454d6d37b19916052dac3c0600000000000000a1fe15061d8a9f57531485636d4b618a80d7250bf77f7b54b99277a9a88f1d2efe464abfcbbb02a1d9494f2072fc881636190805c05077cc4736116080e36bc01a36f7b870fec922ae3c04949b363bed605391f356bca18200d712dda6bc815e36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17dbff420e64a94c6505947b7365f01d73050000000000000084514ccc5962e7019de405f6d438ffd8fa3b1a11078e79a66887035f07c574b2140096a24bb005345aff1bbab677b1dddb7953eae3a91849c8ce06846cda880b824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998a5ef7c5bd20a2a71d24f81387580662c0400000000000000d601cfc30bb5be7130011456c56dab7f3cc011c72cec94e617af7e0f698e00ca1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2aa74ee7132e8690c3131c611f2978a510300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000a5fd72539a68133086c8051db3b4462410000000000000005c03ca38f86c166f89aba69ac742cd5b5db43c8b57567b4aff5fc860b40709a8e5e8804aa98a6cf3e226c1a5b73fdd6b137fa5a0099e99d81f981166f925b0c472e4cd3510dbf555947ea6615ae02706b14e4a6f2c975f1390df757a696a500f1e3a6614c251dde6750e47e4794a3cead221c50a0b91bd809cc7cd8194434ec79bf53e7f2dac8741967d28b81a08f5766041b613b3d4fa1a67384462cd6340f3895480ececf3cd33749d70ccccedda9ae1c77f4d66d62d0ec24bd1a61cf53504790ffff7b3d9a18704ffdfd3fd5e5b181b47bb04bf2984fd9526ec39fc053f8219e4f54828215a05db1e430dee80f46542dfb75042f0f23e8d218b7725d25fbe4f1e20c0b0cf6cb7704213a2d8a5ae1d102a45848f218931bea47cd93c4360e20c83481eab9919abb461c12cc8e2acf5917e37f3551c706129392208ac691c383dc09b7e0391ab004b3e9c7f9a9467f887ad2a2cfe235b4dbfb261498c4d432fef581471d97c66e52072b52579760f0d7a69975ae72d1c2790f154368619d3cfa97353592ad33736ae6afedc29b10a741b662e9d2a9852e9ba9a8962ea24e4d4894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29f1d9b72f0633a3d730356135a13392f0f0000000000000083591f1b2050848170c08deb90eba461af4ebc3c0e23e167eb6452b0eb97970d9336e4eab47da720659952094cb4dd66a2e700561092cf1f2499996239b5f7421c3e9e45c7616ffa6b79b90647a80c3ef322d4a39ff915c58dfa557255cbd3ffdc9cb4f0377a5521ab1cef55ee68e5731022a4cbf8426e622afae73f09221e402cdca2c8ffed0a63b4910ce5b647c5741dff84f7d5693f5dcc56fa63a4f15338dd55cb697a94def316b62356ddcfbb7d83c3ebd16c53907a0c0d8f0bb8764b72583f0edc0ec44d45bbf089a0910ffdc0a5eb01ae9544095be13993d4475919bc64208d5fec30525f29ac44e29d13752b99ee4f33f6f5ea7a41c754c350bb5d3495d8ae1ff3f727a60593c17f415c86e908f41b9ef7c45dd568d6a81e4213db8ed6702dbd706cad74c93ea129b6fe90300affda1d6a40e9c78f126bb3001ab1eafa70fe41fc573ff4da45abcc02434e25d989dbf8d4dce43dd284c3803002e5dba6fe2c4b57371624f0b12c91cada374b2b23b991c207847c5a59024f16a78dfe11dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5289ae5a92663c9a361a4003d5a691ef1140e000000000000002c2239982228031cb7d29ead2c2c9446f220daaa547452114f22e87071aa8d1b5ac78277c9b5b47d66deca0297702499256c97d686f98053b3437e9b502bea571b1e7fe783cb744f4ebd7a381165c18f529f7f001595509525e0b6875b9f792e1e67b5e1c54ae9f180fc55131348512fab545370eeb83284a6dbc912c458d81079922d9cc517a9acf15d8643c8ec92f9fab1a9a36b82baad671b711e5ada9a8686cb7528c4c1c5fdf98ea2cdea1578fd4d09eca92dfac26cbc669a35829c453c9523d8e2ba8b785f3cb5f0a9f0bff98339b5750c16904e9dbb37f392579700290436df30ea29c4bab61d41b6f0a7e1e5639198380cd2e698d1fc8ce154b3b70f2c37473d897ba372b5913721c083a1bc9cdb719b4a4ffe6acc8ff4599fb5a0cfb452aa63889313f0452a5b27e93d68030b795c6adb58ecb38f4987fb4b1f8bf8ab74318043a440900187338770b2cdfe412f7ad40df0e8a72952c52b57538d39f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68cae3dc53a2d5c34ef055b425c6183b630d0000000000000061e6870525118ab0946ea514b39689b1afa5b517b27d1a5a1b57864d5ab0317ddd4b493df1b54b4e666bfc4a1937af918a19775a5fdc1ce690fe2c149ac5324f471e46479e2353a8aff6dc72f3ce7ed73cc983f385db707c35981a69aed230d1767c625a06fa072125fca24d387b22846ce1b98d57f2777f89b2e90367256b49abb5aef46f46a81ee61f5c8eb8790b93ff5a5e9be7babe5be1969ded786c8a883dfee59d9bf8569e0e4d64c297d1665472915e8f8a900e410f037209a41707d61183d0d2f3d816d83369781f52787c2f23f0c8e355bdc34c2dc895baf2e515ffbe9c46ecc8945b35b680d82e80066ac69fcd3f57866436d95323afe741c147ea8be07a99ce0aae09b5c3a2e181e40b01723f61a021e9bbad122304f63b78e11a8597c731da32aa2ab2451c129402f3188c213d7c1600179f32ba4a481d1aab597460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899999cf4c86c6f92084769c6cd32b86d60490c00000000000000f9f1f0a3101d451d0f510a0d885331f7536a4ca51b14eef6f2dc7df4549e00bcba97bd3de2e9e3ccf3433f308d5d7bf6cf7ea6923794d9c795c8f1154d728abb2f94b12aaed3bbd611d2a69b6017ff15045852b10fb6007934e05a2b347c8f2294dbe0623380e808f3ea6d8f29d25e80a56b2ed04fd19f74afc9bf381fe29094642eefd5022f42ed9d31e4bd04086f26d151b66a6530cd0544eba9e7c02f955887639a1ea1e422643502bb518381ff0c82a154d98bb1a2a18181756712f6556436a6b8745da241de075bf018f43c58976e4996d8c31c931f6e8a143dac35fbaa098cca0b9ac2adadbb36ca722524a091f72a2f786a67e952bff27cdc35d26c74a162faf25c82b73443d35f341595b19de142279b69b51e850ad15fbfb6b99a3231b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24932b2da72248e120dd6827d1e58746c390b000000000000002e74e16809e24f73fe5de4f57b337937fa761466c95a0f759cb96f4265f0d998e79d128ee3ba8de48ba9448d628f35d9b89397ac43e014e6b2bbed91df128acfe42f8adf9e6f8595b5e28daf902d2e6843c60f09d041dce8823ca6ee4b8f20ffa6f3b1ba5a1d43029e3fba8912cb5473c925857f517f2a10db5fdec243f9c74d181d8c7493b5c0b7590d5229ab973a5dbc3bc7099cbbfae35d182fedc192dcd41f6d5cc768d841298c593940161f38bb471cce8f68506da2d6632035af52d0ed863513822ad0acc594378d7019c317f2fde7d57a25bfcc6081e5d9433f1e921c624ae3f15808d4a8d5e02f64c36228b567cecf3fe14008dcddaa017bd36d1b5d924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c1f6446230b4ff262c57a4445a56d60000a0000000000000051c423e748475727604108de589ffeb74fec637401ccb2ac183a0067fecec5a672a024daad01e44bb0c7afb521e2c44bcd48f29ba1b149f4c86cc2428422ca2c6d419d2497508fb6fe0f7c9a4bbe88d1e9366f1975d46ade765e8c7ef0c4e6503920cdd9553430d8a0739b3970ea2e1436d1621a0f7bc28c8bb537e6a52f633baa28da576ed1890c6a1bdca96fe0078030474a161a9550fff1edc1d0232690365c5f7ba8ac7149ad5aace7eec834191af3d44ed53c236b95fc12674812333e86f801e35cfb7feb3ec390fefff3afac596d6fe656f9436e81f77ccff01e01757b6b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0e8ad66285438ed1f18221a2a0ba31f0109000000000000005a61aa05d0bbde881d3ab48043c7feac5377678189db65dff70ef623dadbeadc9c486047ea7239494a92747d63960a357aafe1bf497d54910d6aa354d071a90ab6a1b7c3a9e67cbb4cc2d04d1840098d7838b7316dabe1581718d01ab69385f775cf291c2ab4756ef9ee26ce66926e332935a0d47aff905add4058668e278361dd8101e6469234ec9222a0394597b8cb45405359f63200b6160a7a1dc74165654dc4ef82e8e899a923b77731fd7df21a98ecdf997a6169b55ecc8bfda3204a49e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d7fd70507c43469344c925e032960b7410800000000000000082cc5657d1b8ce4ce66808ddc6a788299d62947609f11bd39c9a91c1f311259eee017b25f84c79e080e9bd21c8c6aa2831f30a0b27df18206a87042959c0b570d512df771eea158d0874a19995d88c4651909144f51a45da347d00222c6f9ecb2ea0aa2d533686609d923b004d261d25c25464bf9ab75d69ec465b40861e622bd1debd101d82a98a0e497b99c970e3167265575280eb8071f8cf59b35b93336a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222dc98f13abcd9b80650db392358cedd660700000000000000126a12fbf7cb0db3a5f60af3151f59ccecbc07e0cb60fbeef58874d46e97d6cdd48b517f69554a112ea8a6ea3fb174e5a3882e69445e74c4e84036b42564ce614e654d77b7002fd28b05052090e2ea69170dffef48d8fc0fc42f9616399a1358118feeed4f85d738c3e35f71bb866eff4d6587980404afc55910d2c64aba6893278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e951eb704710d10029f13b6ea0d308550600000000000000a410129f5e208885916c0baf8a75eb6e37fe2cced3b18c2df34d20e3d9123998aad8a0f3cb56b18c16455214cf771bf2e8056edbe76e1bb6aa11cbac7decd718349397d71f0b8a3e97eeaeee05e2bb9774768bec0569057524618367cbb751f678d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c2c8aff41f99c355d629fdc359ab5a84a0500000000000000d1193d8abf591a9f83f728932c416ba62061078dfad31806b99c9a540f374b31a82cf43eb45e04663a72cce6870f46f7aa084966d454364ff5d923712e7045a308742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cf0342b3f1570b8363dd8c56baceb1c1b040000000000000059f536d21f555fe6190da4153434ef99255b2c408feab4b92ef400686434e178ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c01b1580293e462f19a72e4b49d81ea5710300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000003a93462a1227a86926caa044ae36ab301000000000000000e97f3306a713f0e65aad00e0a06018b9b6bb810c744d47845833493c7bd6bf1f09968dcd81aa93176b02186b4d07b6f37f5fccd0b810ca9f327dc83754272e03504f00573cfa1d7c3849687b4e418065df70265ba3a917f5cd2163b0660b9063f3e1ad7ec984a2fabcb109d1dc64125f0026405829e0b2d5d2edcb0d257aa99eb06bdd1289803286f198abb899bc80b8cab2830492268fda816a9faafa3c9918976fafece8c69050eb037dd946b74251f438439f6c8675483aa5c33b7f128911ff6b71f98b2a536ce106b3e19ee825c4d864300b7ed45f75b5a7ec7c91404b1ceeb007bd261ab8e3b23d998c8c4432f05346c30bd1ae7a12c73dcd3496c168ae364e41b66bc92a480710d3deef554dac89983411acb860ea02a0ab93ac5f9e8d5c083b18ca6d627413c65d46542e1b1f0242a5a520fb47774b693de5ba2c173280c22f031fc6f44938502813f6e604c034d65dd77fa98f260f87068eb9db98ebbcad2d10351e8bea493a47c0fbeab9bf6532b04c7982db4654ddb93572e65b6bb23776ccb3f48a478f483a73a8501fcafcbccbdaabe97cd6bd4307750958cc1855e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc075b6ff641bf5c6e35caa2d86ddaffc4330f0000000000000053574798255d9bef627a91a26919f9a9e54b6713d67c44dc9c857c6b838c132f6704329493cfd7d4a8530e6c518fec83f392c1d6ae2e45ade920d2aef74fe2a72d6b4bc15cacbf9f43f000c61e71152d0f49550cc4bb9e0faaf9839e663314de253fe45b91db2a6dd4b893c8b046ab0b2738bb08c74e75efd6c9bcf7b44e388ae37c069221c290e9773c26d18706e03a2529b2d64224be0f45e0faef564514cd9bd9f94a16c16aa58337b8a4d8ece83f8f5a9e80913786a5ac776b77b69e6db88231f4845117007176a34cfb792aa48910ae753118b073af391e741dc32ad0561776bfa3eb7cd1c9ef22b33dbb3cb769d2fc228a0cc78b2d079b0d24c17b7102a04567d1d01231cc033d05efca814e70e4ab04040a3087b07842a76dd1b12646064a9e5386c4b4078628e1633177c20074c391a25996bab77ebdac5a32cb52191b84d1ccbc5e89233821db874fc1e37f5bfc21844a7203c7643f10fa5b220769a3640e84c9db19c8b60bc0de71da734cbdef37fdeed3728ca24ce4b88679dc01a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19f16fca2ad685014cf06856774c2f45070e00000000000000a71819532c6ddc1184dc84ae9ae988a495c1ce8a46049ae80ceb922bd5dfcf71bcd57b7e286f5bc51acd51aedfaab71ea388b2834fa11ce4a4d77023e9911bd716204f1dc17c584d57fca16bce8f3de79a1f8a630f4668122e37cc7452d208e3312b00d2b39c230af6d1d713302218ce1308908afe3f2471af34023802870ed35fb1f6e6c7a2a3485fdc29c23e2caeefbb36b08177ea84ba50f0e99d223cdca9aea95564875457b053666e27de9209f01dc3ac61ee7a00b2d2d2d07a3fb2c261625f7a01a6e286f2df53bcd3ed319345875650926183ac9e3f5906ff04752faadcb43e440a3eade2aa0489afcb3d57556d6355398f590be8d292b61404cba8b91e657682bb95b9a7bf9edac7a7a1f610ed069ff0a382b7bf5f28b770b5363e400b614f3f2dbf3409c746b3d29f8a9d7aac336f0c130bc72e157bc71f9feb8b80afb2ea92c72ccfdb5c48e5acbcf0d602d2c582e77c3869c7115a5746deac0641fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d4e15cb1caecff04e2c97a046b6575f440d00000000000000d7a59075498ebf0a8d2a2cec012d19a4f556fea0b4b4cd687b579e0416acb75a51c18570ee9f4597b0af449b53e92102d35ad4e76d27c7a72c1db355b9a2dd38db50a28d6fb9761c5e3e8a2044b4cf087f1ddbc362ebb8706eb68f5dc356e19afbab3681137554ad2ece8c762befae2bfdc564ba9981f7c2adb5e8207abbf3d135554bb12efa8379f00c70cadf24ce87df6e47ede50b2dedb8cae1f32ec708c7c6cf34326c7de8b1341f39fc5bddf3ce8c92db142e107278869dd3411e19918ebf62ac82e74876003ec8767c6e038433551ea7234147576b2b219828b17d4d442d6cfca1be066f0612c7e37378016220ffc495975580b7624d28d0ad88503fb84b60e5b3757f90ae6b263c738422776e2ef94e1375201292754ddbab5904ed02df61d710a81b83d9da9f30a51d45f6202d8ffb0f7c644c8e44d39d13b7b9f80f1732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff91ed4b02b7563511f53a705449d72a1360c00000000000000d8a7d3052abcc448afe8a11a20e2a740d306aa7fb8f3a3d4655d4e3bf719a07435fa5600d95f1a579b92e0fdb6a221f3c67050ec13cffc2ebe0b0201cb58f2b3b328ac1e885cd120c0cb4543ee7431ea708c9795a4859ca75658dc833f6ab59dcca1d68385e658f7dc68d4c4a52f70b620f80123c28bbc77f7e440a7bff64f81f4cc0ac918756a5cff18e258ee76daa75b5eef2befb3dde25f9c59dbbd7e007034757d55b1dd4f695c02b9ad97a41e0516728155ce67ccc6cc391d3f8e20e4cd8ca90e5141d434c2219d72016b6dcd74fa8a7fe9e7301c4513dd123da3bbc4ba1720c3f61510d39386cc50ba45e905094e25b4d54ca65c444cfbd9165617005e6b262ecb30d3ce33fbb50e19613a2ec0a455417789a1e6b873f40c81df1a34d93894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a85613882dd8ef26007951fb39782e6b480b00000000000000cb2c3420defc7bf82ec2267842584b6b4f5c83edf137c00c72f717fc3f8fbe52d79efc97e320bd721cfb9c74aa106063a8adbc92865ec4ec1941fb864b755c83362b8a0763279f685c3a49a4ba07d5d1c89236e62777e38da3b817a83aa99fd0e30d1d5bbedb370c0e0aed315a6b82944f88a743c97947eba4a3139825a4cf3f189cacf0721c6a27f8c4c3e6f68ba800e2af90f54e1f77fac323ae08728d99b85ecd448b2ed5e2e98ad77f4a41fd8b36251d0f5676d682a815db68355342a28f8634a56c577882f3a6bbe7d67bff179dda9bcd4a55f97bc4c5fdd99e4b297806925cb0598b6ed4ef5e9a09224fc28a5b2305c212493ea13b1bdb385bf54da1768ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e4907a7420912fc752c5a844aacd5021d0a00000000000000880c98e2600b0513887fd5be99b3db64ba3c337eee2d515ee0000e06680739e762e0bd0fadd972c61763030fc05323ef09e7cf28415869cc760a74f6a1759e6a842d0043effeba4abc19c809c8053a736580a88ca5a8da211a25a431dba48c0c4f4bb834abe41fcc42dc0d5d476fc9ef8db6b2647ebd555d55f0594a7cb4300a08dc4207b515f81108b0db850455cb0cdc9258cd1b8118994c274de3252fd4469862b54c3e132f48189f3fe9653196c05eb054b02dd031c75e06ddfd8762013ef53a7125261db5af67b420aa658d9474b8263e258dbf05ee06db517df23b6ce27a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3ba5cd3472d2e9af4b5d537667000d51230900000000000000f42b4e21a4e9ba544f3382c5c3ee9e83a74f6c26065bcbbb1effa579239bb0b69448a419c829b34f9a3cf72558dd5647203790007c8602b817a5d2053ff2e838fca85828453295d8591f7623a9c15f1c09a0e09e8715fc4b8a7a04a2f68af6df78e331d1c493beeaddc5e7322e8687910f0ec732a3b7834283ba6b2b52ac2cd0dd114e00535aedcecd82b053bb723b29b0517f0bd424c22825f1d36da15e6fef3fa11287555514c70406983e8c7725739867eb190422f0e97f9729eedd936fa19368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc9e93f04f70679d44535b123267afe62608000000000000001dce89b8f8d76125045d70a6a6ee430452729e267d4eddfaf2a45c301ac607c61430fd29b5406ca3321715f630006b51c0de8d6c5bcdce7decb3bd6244282e1a26c552334425d9c8428c0f205b37f35af2bd6e8ae3d140ca3da469865865981692b8397a18d365be3b995ec25cc74579ff03a091d179b9ae900bb08c5f0042e77ec2fcf4e75cc32504f818f8172177811e06e3750818d558064e3a85d66c1702d3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a67b41ab0467e77b448da230312cbcda1e0700000000000000eb3f161a30f4d22268f24052b92cc9e6f8246acc9b09facf793652af040f0c939d9031c187d9dbdb9caa5ac19f27a576e8083981b8f2926f7a39e644b7bc0b3c3539561f658cf3923ce5197b0a055db6237c97f3695217f12ada51d1f7ca0ef0301180d1da54a5a34c7dc676ba76bcc49caf1ff199f757479295469f679d0b3901d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec528d29564294f76daaf1fc6f69e2d93b060000000000000058a0e9b33b9e38e6b719c6a176b28a6d8208318ecadef38d25ee4987b697f803fea37ce3bd577bb8e02771b0f443a26054ea284f7d660cb81e087ed66e5305f8c5ef6f1ec439597bbee71617b5c8d437a4a46431953db1cb5577f6ee2a81109f0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17582d565f1212f55463bf5821290a220c050000000000000074cfa9535d92211578b7b083bf474d2caed3a3f45f28655043e087cb032d465a60fce869f9424129bc7e55be036abce5cc1d861e4be1757d2439d40da535c55e096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799879002c221b8776085acb8c0c31a7901104000000000000008c444a32ed9c158a022f0bc7c710d2f406d64b7cabba038351de04316dc8f46dddef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e290499534fe1fd639dfd6af20d05c3c0f0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000009249f45e63e739349361dc3b6224892810000000000000000b036492299247dee74a53c4e8cdf3e69691226e9f1a3e469accef4ddcf1f76daa453187c6a001e33713b7ff4d3910dcbe763520a3f2754d1838e228040186ac5a8ab9d7478aa056263377efea81988f3ccf043594a1fb506cf4f92cd8668acacbffd1c2c6fe7e221d0de8c9b95338e7ffc70c554ff94d6f86732e2c55e688d93d3cfafbce19dc39af14e4088f6eee6e39a5b278b8e05440af92c46e9c210759ad0801c6e813493e6a47ec7ae01a981dd8d994777c7eeee58b104b1adb97aa7fdae5c9e7c7a63be1a29bb97ac3abc49cabd4e0c3867ad31b6b418439ba03a07521873873eacbce34a87395f9d14a035f33795b71bb325f6850f222b1822e37b5d196aa5e0e4516c52f37de1723727a6fc1febfb3dec5425d9e0039e22e7ec406c80d63d4f571f15828ea47e9092ffc5084b53b7db6e83adc767171ea2db100b9587af5b1256ba683a3b3312e6bac0f70f7f0f1eb88626924d0b10fce64fd3cd60a78260a94321a7634402c90d612aa8795a816b09fc6f4f1399a48d0841409d74de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa25d70bb2307b74344e3de9e1efc16950c0f00000000000000e2fb34016eb65fc5f627417e536f1370021da49d8423b9a61c6471e7f1197e4fcfea5d013bc282af4b326dfafaf56a94756941fd849338cad07e73107e052936f511d9b8fa5d09f88bc5a222e23e8af3cf4ab142811deba110d7d890fd970be549de48a3407b2562248a6e3c148c81bef85fb5c917821086df6a627a1fdae4e9009062b0ae8844fb455e53b00165551d8eacb3b3cfc6f5d074cc4b680bdcad38233579b7d5bdf2fe880f9f88b9c3e389c1c3bc1484f130e186df9a763a8718bd9b244e8e1d27bddd4857222e15556f23c4afc354f1dbfa2aa20e4120569a0531a17e42ca4ecbcf690bdb7e9ba1b76d600af0fdec7b3e84a1f67845ad92c0592cd989386063564874690423d399dfe5707b75b30b47a8928bd63aae966c8d2e295d29f4b90009ded9198c52e2a6744b980cfca7da57f4101f4409b40cc9aac366de37d3435b64b96a5bbbf1084db264212eb0d3b770d8cf4c23dbe91e87f99fe7896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528bdcaef69191afd32e8b84b36a61fe60d0e00000000000000b2463cbcc27b2ad0558e36364f322dd4f05f1a2a257b8eac5ac5e03e1670ae0ceef8edc5342a340c097b39a74a257e8fb35a06e8b2741dd3cfffb7495e10c2c5f1004abc112da5a3e4da07bf2664736c39791bd3abdba7b8891a56c2da8da2e0f45e8e629195b3c3347dd1968069d84301a147af04a48a3a31aabb56dcbed1eeb6cf2cd764ef744e59eddb6708e2d061c93fe5cc977a5695d725c5f9e8d2d7447fa98fd6c1af8910338ab94169d74b021bd55fb4b4095726dae2dd29380791a4b7d0ec72a2286e4b3cca0353b3656588d4e92693327a8e963daf84de8d7f1fe25a07313a01129f56ff71d257b4d37bc6753f78578ef56756d6eee7f782a6c97adac30b9d2b15579e4e3c47502a47ebdd3cfaba4f71c3fee2509a2148433e712ad8075e2001d3ea66d0d52092ece7b63203d68906a2688947ee75fb6264b59c961c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b681d584c167e90c1026ebc1d41f56a9b2a0d000000000000001b25837ccdfa5e9e21c0068be94d68234d862b25c5428e06ec7cd49ed23f684a137017a0fbc27dcb0e2de6273fc3a4efafc218d83f860ad52efd4ccc8b4bfe3d1b08c10cecf9ad8dcde36482d2bf51d069bd3115b94e03340e46d7ad110c5741fa4c9ab73788aec49a97c6c12a6db027db04d0b5531363bf0ae02b3d5086b19650b754a9d75d807a81eedea90a227caa156ffdbd2b1cd2835cb1fb8040ead61fbfffc1204b9cb7dea5260c5b24b2ed09d2425ed64a1a7b7f9721a3effc9215a6bf8ce4d8441262a1b8add9330f7000388ddeb08b4487aaa55f46654b473b77845cf55d4ca552a9ce11b6a57207a4be822502c2acb7abe311c0ddc4b6de465e14d3210288362bd4660d268c3898cf9d0baaca3c9ed3ccb9ab47313cc00d068eb2833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999a595ef258c1d0d137120d728bb5ad51e0c00000000000000d495fa4ac825245cb18d5d672204c0a69a62358897f8df609141bc318887334622c02dc51867aa22bc2e71e6289bf9d6375a9deab734a96c59eee87ecb8ccc0707b3c41aff0ce4b8cdc6619bfe3b5316d9258884edb677716daccb22a1ef99fcf64c7d16da2f4d6c40ae40f6657ad229e9a8415bc1db4f0e59884da96968b9aac41d4805b2c1e611134a2746257d94da2d8521f2a0f5ddb9ec80674d4ad5cbf701ce9c002f96f57de75e85a5bd682444b35bc88400206edf94d3cb59e8fd2596f56b5370b8def0e262f1626be8f8bfbe9c6a159ee15de2625fc7979b78dca5471ed715cca92cc3e02def4c2e3cf4c01f13ea58010bbd4912e7d3d9898cf8af38f20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249e7a4ef14cd71f310ebdac65c5eb6c7740b000000000000006e9793383bb38080f47c16b4abc9baef6d66fda73af036a9b5df3df2f43b19249405dc44273dfa629af08352a710e1ffe5d3739e4ccd705fdc00189e53322636b2be8521f90fa3108b777c0aa52c2efe96d6ddcffe1686925831f9fb6866da7400e550e2ed03d6421f713491c9b2787d7556fff3b9a53050965f7d0961cefae68e6447b8fd4a67e5b2db0ccef1c9d168362384d0093ce957b85b6daeb46c9937a48663b6e9761119e79fb10844dd32afb083b8afb6d605aa7ba9671795d0d583c71b35b820de8641c74c88f7b50d8dce8a367a3aa52d474b016f8f473cc8b1f5e3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c7202615b9e956b0ce852432b7877ad030a0000000000000004af896abdcc7b739e149458ba9cfe55c460bb4d026202a29ffd182e069c6a8479327b3215052502ec69973690e0e4a503c244f4bbbb4ac72977e09ebf221cffd09d256c0fc096e80c4a2e7e5fa42a2aaf9450659602bb122d8a72209f4928c46700eb9f763778942acde96abce4c3d1a5123be84fdf395793ccb3b0b219b1064aad948c8423209c270d2a604c6526e49be8099462e8ebd010b7720891861fc4c35f50f0369f776901db79cde283fc14f6d5558a9801a70217128543fb8f0f4dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c00baca25ed20b56461b5b45769244be5c09000000000000007729c2823dc6d2c2a5ad12a68061d22fe72908eb4f5156796f04af415c1867df84f8782630d10a8f01657df01cc4a07ed4c0b224dec0d043549e84a0c1e7b33f7b0821272b9ef8def572324c11fc1cc7db208d02b2d786691b32229dce66740798e7767438533c00a998326097adeb8e2f31c9c775673b195e8510aecccc34c753522af773ca5405bf8e76efddb9c21320b19c70f1ef37d122023bc3e7d8e20842cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d6bad6f5704b60b5be7c7830a1c5be7660800000000000000101a8a8e20e6a3595af608cf7d3f7cbc76cd31b8dff67792e980ee223594aa87e334cf3ab240d6ae6779d1ae66c65600ba59da79111d6318149aef9afd23745f98f3eb15b634945fc5528498ef6b978d51041dfc37cdb1b1ab4535723eb696c247f08793396be6575a3d34bbe34cf18fd12ec2bed39611afb388aaaad779911324c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222a0a55b3a177e1c3ba980fa52b5411a2a07000000000000000b5c528b2abe10217b92078f8660aa538f3e89a10e50bafdadd3e1df32a0c1cb10e2a1f1077945874f76e89b8f8384a40997934684d0a33e893457de76584b1e6762ab211c68c06cab9694926ccd52e66c5ef2dd69382b59ff6170fdffff31943ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f52eb9017e937d068095ca0aae0f39470600000000000000d1127d69d80bd36d4a625fe82a4f1f6aaea9aa259a22973709832ab81f7162dc7c6e9fa6837a935c027811fc9d5b07ea4b46d1bfa7153325b2c59832f6cbb8b770bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c615c356b0ae56d1d799beb534e03453305000000000000007ce12838ca2b8383b6a8dc3a446e484a02746a09ad76615f54c2b7ff663b6067baa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c72faca3dbe730c14e49a8e4a54765d4e0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000002705ad3063a0ad6dcdd3eb5edf67820e10000000000000000a2683143ff0edc03142e1d62293236b00459d7c0219608d77826542bf5121551c80d78236d040e66f690c73f789008671f34fabc2e0b2853f1c09af6b15b4a532c8014b79cff56d03f63bf138bff6c375c97ae10c61e82a00d55233b7df96e676fb7394069a48b047f0dc106084dc28118b9479c6b42862b4408e9fd32ebbb158952535180c14a457e1a7f8875f16826698c8be7307ce9dab6acf00ad1bda73f5b69aaa8ddd27a80225b70d7decd44e3b21cf0b9ad76ec043f7f91bfbd9ce7f8864ea47c10c95db274225e3e689a0829e03ec7f76953f0ef3eded80d753d33f4adcbaff14e2949de20c3c6b9b33ff1a6987320a7f8433cac5c0b88c1adfb9ea1e797d264a6ed53bfe656a33c7b16ef116f25a86edaf1ea6f06886e61872edcbec0d8788012fd2c195ccaca76b728a664d61bf5c19133fb16e80690e05c614b45d673de7001c2c4daa72999f3a53dd31c5d457ee1c26cdfb271be505ddef9d20ef581471d97c66e52072b52579760f0d7a69975ae72d1c2790f154368619d3cfa97353592ad33736ae6afedc29b10a741b662e9d2a9852e9ba9a8962ea24e4d4894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2c4fbb1673df1165aff7d0602838219380f00000000000000228537517b9a070c562dac64ba8330134bf2593f9b4fd6120595e703e9d9f18ac761ec86b3c7a6d810cbf0deede08d180f097e0cdcc3796b0e742941dc5bf41422dce7259b161723428bedd95d825cfb07153506c19d150ace427f39f0144e107ee59fbcdb5680b1a58fb7bb3062f7eb1a1aad089c4d6bf7cf105038e46387b24e471c8f42d402ea96b19c6d3985a940bfb48eccef62e96f0e787e859d9b39d104d311af6d810f970d6ecff109344c2e88dfafa1cb6895cb8b95b743e1b7c380d94e9fedf25df7b22e87f0950dc5c812d1341d16119c90cc12bcd4bc108b7cbbc096eb71f22e163cfb8381870151b5a2204458e542615e65661c6150d165fd1e46838a2d2ff016dc6c7b75fe47a9c5cbad4936a19cb5939139457571bdd3cac8cde96ceeb28899a21c9973ebd8b07a6936640e421d403442fa2df01ff9b3c4bdfa70fe41fc573ff4da45abcc02434e25d989dbf8d4dce43dd284c3803002e5dba6fe2c4b57371624f0b12c91cada374b2b23b991c207847c5a59024f16a78dfe11dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528bbb1d969da856a33e33e3d41232c62770e00000000000000a63b39954802a854d540b9010db0197cfbda80ce5c354aa40c55ca7d6b579c056e3b3c434dd6fda186342f11db5219ce2eb0cc2438a9b6e16ee36b38ef39013156fbacc2eb1b5614593a215b40ca627b6cd73e530f7957d99b6911cc689b48c6f2a99f7bfa237cda1d236eb5dd3e949da3e45180af1bd76bebcabe6a673ce8f16b594410216b80a4e88c7cfaa55c4c5e64bf63497595e1beb3d1aa99dc6291fc4aed0826256bc1ce9c513b023825127d9f6755f9f27a91c083c6f45206401706e730f84418274e512918a33abb9d7bdcabda74d693a1eab09fd121edfa72c67dce4a6b483608adb288b97878f070ad9e7755910f77afc0362edcec377b3edbad654c9d9611c18a188ef7395246cae1420343556bc5cfdf2f73e529d12a65bd74b452aa63889313f0452a5b27e93d68030b795c6adb58ecb38f4987fb4b1f8bf8ab74318043a440900187338770b2cdfe412f7ad40df0e8a72952c52b57538d39f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6833674b65926f5b762093fa379c09820b0d000000000000009ea16158d1ebd0115ee5690c8263d18daf57a41cf4d84262e7cc51a3f313e8b6c383d3a185b204a7088940ac88a6bb6864c225c6cc95d8c5cf33f8d8acfd18e70b045b1a6be8f410a1280128ed7c4d686beb3b03a0fac3f8c586d1cb79a81d8d69d352b5907c0dc19dd6581963e313f672733390c7bd9f9b35427876bad62537bb9c9e720af566827c53383040d5983eb69466f96ee9807811e7e2e53dc0bb7bc8b5100b8bea4dc51871db570d481d3884b307c62a2d898858628d1164b39f2431fde173536ce87f9a26c09bcbba6fac4ccded1849502641205f41ab48d7df1b078eb3d3073202e1107b6bfa03834b05db64962edaff3a02bac279f4dfcb9f388be07a99ce0aae09b5c3a2e181e40b01723f61a021e9bbad122304f63b78e11a8597c731da32aa2ab2451c129402f3188c213d7c1600179f32ba4a481d1aab597460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999c3c993200526201035974b46fb33954e0c000000000000009a9f48a26cfcfb78d9ea936b0ad53c8883125eb053401af4d9d0f37f0b73716d35f09d11fc71c0aaf051c75fe6ee4aacb30c6705a0ca01b1bf5a760683d37500dd0ec0d9a2732cbd4a7172bcfe19cd3f765693e66c8753a0b05d7d6cecd4b51b57efa438575d3461c1e75e57aeb8723d66b02e1cd67f363ed0fe00a7ddb033cdb33e05d08c664203463e2cc9b24008cd919a6b7979046e7b675bae6b4ef2c15f4440a89f7e3ee5c4c63743f07b048118b4d3bf1a057a2987d25804f86c446c3f98b11fc09fc0505358b667aad04fd398d53bc80c9a7781e72830f29315cf8ce5098cca0b9ac2adadbb36ca722524a091f72a2f786a67e952bff27cdc35d26c74a162faf25c82b73443d35f341595b19de142279b69b51e850ad15fbfb6b99a3231b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249963ef1715daf364efcd5f8011dbd21550b00000000000000dbe83a8ed39ed33454e35576753cdc7d66e397b6aabb6dad0b01dc6ac3b995281aee09de8757087bc0abc3dfe7adcbe3434746bddb54144d3b97addcea0ed806755e2736520e80f77147f7471aedeaa327c68a8a1bcf45a1c236c0d14bdf30703de0301a0722af2c166baf7da883ba7b5ac7ff305df67c500dad1cfe1b7e615918261edeffb7cb00a26a96eefeec9e02608c1d295377470b75dea110e2ad96bf621595170de885cc1451803fd3b711316ca421ea486df6afada91fdb0e0f3af4863513822ad0acc594378d7019c317f2fde7d57a25bfcc6081e5d9433f1e921c624ae3f15808d4a8d5e02f64c36228b567cecf3fe14008dcddaa017bd36d1b5d924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c5208fe3ada1b88625056c1085506834c0a0000000000000083e595e2bf1bdacce242aa4ecad936d1ddcafacf5b06043db633eb3e27af08e74621db62ef2665707170b15afee4a8cc72d8803bacdae71d032f03b2ea6e20e0b9971a5bae2892597fd94e56630339e1e255f8b84883d6980122473e3aedf66c4e730062b76a3708a2c44611063ae9cdf52712ee1d0ff30cd4e0c5e467d07c7bf477adfed648c2940e74f0e805bbaedf60a442d390290e39cb3ea6f3917091c85c5f7ba8ac7149ad5aace7eec834191af3d44ed53c236b95fc12674812333e86f801e35cfb7feb3ec390fefff3afac596d6fe656f9436e81f77ccff01e01757b6b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0ade7593f73aa9335e60e6c3c9d97d63509000000000000009ca5ea9884925532545dd5ac09a911a2bc9210223d4edbb3039f8479268f37c97ca9c9f61fa47040801c7de88f6c4759a5e5007f2d67f6d4212a7dac3d4dfbe4c8c42c6636eba2c628f356ab4d10acd6b121757833f68996dcdefaf645626bc6812722514729dcaa059c8a04c1cdbbbf8b1b604ff3a7590655174ce1c8cec6dddd8101e6469234ec9222a0394597b8cb45405359f63200b6160a7a1dc74165654dc4ef82e8e899a923b77731fd7df21a98ecdf997a6169b55ecc8bfda3204a49e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d17fa671ea548400c8848d4467104696708000000000000000a04c4ab6c734144ededb74d238df44efe02048d0089dc5e2dd58976cf74b37933ec1146837620828b23c2bde6cd3e41d6baf278c49805ab35e3730e23c2498f974f06880347aa495e1bf7ff59a6fd8d880534b12a81a160bbf01f5bff18be11b2ea0aa2d533686609d923b004d261d25c25464bf9ab75d69ec465b40861e622bd1debd101d82a98a0e497b99c970e3167265575280eb8071f8cf59b35b93336a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22286f60841789917461b2ad35641635468070000000000000031b82a3ead43e28f5b244baa94c29e68f46c9a369c40949b3113c5ae5a2871cc2591ec5fe50be2dbaa904656f49e813f5474df6ff1b4df8c3ef83040a52069444e654d77b7002fd28b05052090e2ea69170dffef48d8fc0fc42f9616399a1358118feeed4f85d738c3e35f71bb866eff4d6587980404afc55910d2c64aba6893278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5aab1555313b7fd4921f7d215a3bc5a5c0600000000000000ea5abec6f5ac15e3d0453c20b1045e3afbcdd58436fd02f69f2264ce6e3187d3aad8a0f3cb56b18c16455214cf771bf2e8056edbe76e1bb6aa11cbac7decd718349397d71f0b8a3e97eeaeee05e2bb9774768bec0569057524618367cbb751f678d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c872773021efe202d2a2c194ce90e901b0500000000000000d1193d8abf591a9f83f728932c416ba62061078dfad31806b99c9a540f374b31a82cf43eb45e04663a72cce6870f46f7aa084966d454364ff5d923712e7045a308742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cf0342b3f1570b8363dd8c56baceb1c1b040000000000000059f536d21f555fe6190da4153434ef99255b2c408feab4b92ef400686434e178ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c01b1580293e462f19a72e4b49d81ea5710300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000dd922736262b500c7557706bfbd0ad7510000000000000002a2bc7f43f0f5b9164284a669da341f5fe2f7c10f7a4b2493d97c94d8b44ae38541bd26ac98b81b82f40f47a6d1765466f125b56ffb8b44d28e2b30e1db283326d0788aca11871b271a57299b671eb6db6108af1781460e2e3c9724799f4e9159fa6da30739333af66dc31dee0393bad4605f56298ba5b90b9344e4ff19a33f8c008d121400e326841a478254dc717aa79b8a50d1e35cbbbbfdd7fa2edf0b3c72c9222d0528b4f5935f6eb63cf57e1f158372d4da79a0a84f186a50b354b6c53aefa49d772d2f810bc67b5a0c2ff388970785bd5e457f2208fc1cb666c143a048a72a10bc22ab47571233ca2b29a432c373ede2683363fe89c017541ad453b35a0a690e88d1e166123a80d84f4c7cab86b13f637e8fc4082038dc2ed7eadfcc3b0b0a1a097d606431a3273aa92e0556f7ff8b267a19a04d313cd85c31293e4b9c4260b58becd0457bd344961d146d9c46c771a8acbb88b7be4df09ee6fb406b0cb75cb47002f885e8689a7b58dd7eba2167e941800fa14bdf42fec201d6c57c6070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07f2797362fdad2e1451002539805901610f00000000000000deb8f05ef6d2615f9f2e0f121b725740d69edbf7c2f5bbb6679830f76ddeea7f3fc5087130736d12ee0d75762668865195c680e6df72d59b05af3286d21e89e2f302b41c0a7fa3dbfa2190bc38f8658ff4ef2b8d8e615693ca6a19da693ad9d89273d5978c6a5500874898a4cec288d3d9dc659b1c7049ef80673dabe2a609d57e2d952614c4678728e43fe74b004b3867383dc79b17098b253131fd85bf9b7a6e6329536779d4e246f8b91ba507114b569556e1c699a0b51f1f9ad6a994ee16ed7a88951491cb261745388327ffdb8669b8482627e5aa836a2696ad0a91c52c13a6bd21cca6055802bbfcc429e37d5602eeb08324cd6feff8d9109f7d14b7489fd6100dc742bb384ac0e14d01f95bb54b8a7e3e71fcfe6fbd4f7e4c5ef7e1816f64154e2fca7122bbb2b6b0096ca48223b2b39ddb6bb8bb5cb01a736b9454f0b49f782459cdb55b1075ab48beaa025953b828afe5f95ff1ff5eecf778ad484b226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19b6e82832721c54161e8c61703244863f0e00000000000000640a668c0d095ea08e6d3b79b1613c32075334132721e33fae44689780efb63dc648a1269d43b8f8a98335f0b6dc8e338d33836ef43c0c2b8efd34ceff9d3758a3f0f907ebeb1b645bbbec452d9e2ff9fa5d7b2b0a94b8dee80cce9f80786b16b2444a10950948c54c86ee6fc71bfa69e812ffb2ddacc6ad303bdbf84134ce2e81834b86568d1c0572af7a62c4a1399e00a5fddeb9fedb1ce5e9ce609f974415d6ffd93a3fe8772cdec0ec88d5330bf0c9408b8a9c6d73f72d17c82553d21f99f53e12490d3cfab777c1cee5ad325b7d417e52b62347dc5b531f9acd728d0cb42c843d1c3f57cc4be664bb765f712841d6c043ddd9acb5dce815dfc628e26a8dbf2e3cc4b88307fa734f17cd2955fee37d5b7be31caf0f7eb181a8fbad1b292c48057740020c5a7d6f63244f88d54b476a84835b427b660ac77b9a1fc2a3cd8bb966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d3d77670f2c57961669b1530fb78dab270d000000000000002549bec215d71f6dc287961e69eecdf05e8667d1f86c188302d060c99733bf26cadac131c6bd23a548c789633fe2071c62b1dd6ea71ae32289afd53d89816b2f96461928ea0531d6cc72c9ebbbac120cdd1cbc79304e49472e862f1526a60bdca2ee55901581d65bc1955d3a6a488a113b429425fef9e34eccb871cf4fb8702a486bcb668f152d44bf1f94e8522ea6dbbbe6ff2be2bf19d5fe0fac4b9a618ba7c43463ecaf9925d8a297a81513dabfc20a7e492b6be5de55277e1ac682c4e2bbbf81ffc4a2c655f681b0db88a33952a0fd9a5321f55f90fa1cb9569a1ad2be6ecd040b806964691f30cae5675f1dc050f9f1f352f18e9f06a37b6f85137a0bb808fbf1be7efc9ee05cec37f7045bc3328fb4db03ac962795d8da0a944969c21220b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff92a4f6d70d0583a09eb51d50a27a12a0e0c00000000000000f76f80018c65e7c76382c76b9e259edf5665d25c9fb17e56793712f9c4641ceb63dfb91e153c0f79f2c1c885b8934a66c08129f27cf9d5d4edff40967eaea0dad8c880133e537df5baba121b337f2cb309a0de6b2fd2eb4b89c21f7f5a9f36d5e18f8ac6832a26897480c4b6e31b0cf686e32d08b77692b6c907a1efeb91c2ae6f2592ff659bca56ac93e15ee40809df8da5ff2d539077af8a7ce5b3f7f4449c53100b77e05332d53d2472494abbf8528bf80aadacc4510e606680eea5ad6e6844e3530d44d543dfedea116545305b1a58da1ea3068cb71fc749b623b925c94e47170303cc684cbaf801b704ef7c649d94816ea9a6822e9448e81415997f74c340ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a888fe9e71100dee63064fec4f7b68e71d0b00000000000000cb97c4a908671e1b221086219a150878c8b04da0c6d234f8204372dbd5e3795d988d5b4fd2d0fa74893308f6a49f3c481b107b91181846895a68ea90f711aeb52a165773fb62ba63cccef06e7ab708612ee084f1dfbdaabcbbe49c68088f2674ed596253be411ea127c072f957747123260523c96d5f633c0d851bb7c32e60176570dc5d1b67aa0ddae460e276181401bebb3f1a69fbacce656fe8f72212b4e038701a89691d28ce4cd9e72595da5313137d8205979bae6fb41de20fd5240fcf1784d18a21aee14cd9210c1f0e7b72608f992f0500d0b46f4718c28c10bc0ddea1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ef845cf108ab407140e83ce13332aac3d0a000000000000007938a3d2b9551d3c4fc04725322e747252f8e6a2a13d2d0c94eb134e9be6a2e40042482fcdd07e3757a54c4e4de36312fef44512b720098224376e070d5aa4628af4a2fbbdd04fe7268a0582dbba6d2a96335e9019b6515329536085818af81b121a962910d47bba5c16c80b34c3dd3e70be6b5dd99d0c8f904655217f98d40915a8d61c527490d587a404542a91cbb50566300b79196d28a6838f1dde80a65cc92082a700b92556a9630575169af24f60524922ea9527db7f94047e98388b99ceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8efb8b395f94947691556540112be1670900000000000000d9080df9b564e0e64d362359298d1e36f47cde043af716d98187eb398137b09225243281f3a8f94f16919ef2e5c26de8a18447275787a960974efc6ac2b4966bfeb5812d019cbf7ce9eda28c325b2a33599838aadc7e17f782d64ad0d3fd0652964ead27ebb020f386cb2fcb711a8cd7767c39cb6b6b068e8a9072a8e4460f1cd85e8da90fee2d70b844129886b781ad6b8e194cb5d18ab562e171df2267812947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc64286b0005c9ae07caa6230748d3ae1f0800000000000000034f9d5bea37b2965b0ab017eb8f0a2c89929c1ed03af094313e4df2c5537a98c8f47ff469e9bc89fc13f1e709ad5494f0e8bf2f258fbd6b0bdd17d80ee8e7fa17f5412fb180cd80bfbbc71b82d90b4671f5e41aa48219a88854d4466900b080d59b643106f735659cf1b77a9da2598c512b4bbf0158b105aa55deaace92f0be4ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6e9c55c62d1f68362bb97134d7e35582507000000000000007165f156d011fce4d788307e7cb07d60e0f989eea0a864a8f4a3597ee104e927b06ed898c1319c2c39d15d2cf32d0f2f1d4c31155d656b7866296a6d96aaaf254c3cedb906c783c776945edf3b60f5d46976703c24e04c1d9aa6d4ab978dfda71a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec7dd2bc552acb3a6d7998f446f557703a06000000000000000021808d2689c169a60281ead9fcdc57120228f3a23be8a9a2d4583f6ef14512dcb779c8f9517a4a653b88caace4473a8ee7713b4846fa483fc9833ccb97c594d8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17194b1b126f55aa5be3dabb2f9c037f700500000000000000b8d2ba675822e746ed263e74fdb2a6c8e9ffbd8706567b8668ebaf6b8d24fc6dd093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979985d641620657e705cf74d0e570f6e305e04000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000034fd0529c102da035e23317230106f221000000000000000a253abb133d5458b77e08bb57425abe0363c096dd63f2de5cfed81a6df473c57415d9ba3e4d13dcea662ec6344a1547f57098b6c6dbf34f93565454f012055eb03062e1e220455f8023de7db92bbf6edf58f7305cc2f48e16622c1a00dd8fd24d76baa3bda2fe992d4f7f9bb975db9b65a39b74ccee66ecf5dfe1d69a967d442ead5d8e8ffdedb8d49766b98ab7af7058f16517ee9e0c828e0dae5e637a275fbce06cf0f4eaa333f7b158a215a89048d77c0a274770c8cdfcf8597f12386b1f9ef9501faa6a402a8acc7616bdf867daa78ddcb456666429c9f3b094594a8dfdf68750dbe120a2541d38f16859ae65842e3e6be76e88e27d653d1ae7e7fd3d964610d14ff012f18d09735f72afda3ff3e54b62a4023db33c4bb3705dea0904e4c009a2b8e52787585536ebc8ab4c2244a18eaf2dea7bc13876c2c638ffc0f33283ae084b04528ab64c1e0c2c645df72a1632bf8c7678fe75ff1203d0879fe9d6238d70804feccad9c1fe2e221d32e121a316536781a2c9cfdcbd173c94b7bfda109b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc074a605b62f8a0a9718e9f256ae7a44c590f0000000000000029c4dfe8b6f365fa683e46dd3dc2fd99ac442d5421bce5430dc1c073f7ce03c61d3f6df70d8afce59c730be06eb335d9689b60847c6019110ea59ffd5e9aeaf85714fe146bff8387f05a1a0144648a5ac5f29142507774a5f857c55e24c07d29b27ed1ab40f797bf80c74020cd3936407b34a70cd95c1ca1574c1cb12447f1abca67088514c8b846bc1d2898690a959d7c177bdf41e090cb10b9f1a78150beb251a0f110e2d5dd55130f4d4d59e5207d57d25620ddd9f328b8a0280c48ee46129c0aadf24ade618d2266fadc6708eccb02678c9e6b894a3b2d0ea785b3990751e1268ccbcc64cbaf1dff6737aad955abe96fd4ecfa2eb7c60d51dc7bc8dd120f7c091147232e0d0ebffee2d70dbbf102ff96cc0cff96d2c24e3fd0ece27b1d9d0d3ba833d68b16b1f661ebd7f801b6a93ece1c0b4e935168eed30a30f9491e5b1086a2accefef0f465913030b00399f876cc778a3c0a4af0b021bba79c7ae0ae93bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1948f373614e9184291bec631a766bfe6a0e000000000000004e3dca4419352b0f2e6bccc90badbdcb6502b09cc7087467202668cfc5f29694bb9942c3bd37d1f4ddb19d79dc92bc67b89f21f84850822145ea2a3f219ef06cdcd15d2d6a6bf0a2e4cacb2d43bcc3c247666c79a2add02a87cc64427fbbd70b2e56b6cf36c5cf1c85d690e93b203df4fb4df6dbc097ae418b924c6a21ceb006dc315d7c0a66487dddda2d12d2095bc9dae8c4cb324f741eeaf9acef10135052b21bf7e4460be6ef500382927bae6ec2a44325f2cfe366da62e19cc5ff5bb92daf69c0010527e2c7c0ac6a1e30cde73353f9822122d4e88d2ec920caafec1db6397d6a47613ed5dc58ba1b63c242f76d07f0a037bf2ea0ecae3196bc0e304e2ca24b7777ec463b8c22abcd8ee78a6a50232d54abf86467b78b4849a09e89f3ab24e40efd7e942fdf25085753b633192d30e1269d0177c1c2d068c634fa974b8e28870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d85e9ed5ac5a551279625fe6fdba493680d00000000000000239dd5930a2fe983fad0752939895b3b5688e9a5cf91635455c5e2c1ee93432dc8bdf3caad3df8acc9a8a68f9f085e7f107058e01d3c549620f9e3e5ad7587a484d0348782e09cbb9e230a38cfac1b6d47399f2d6b7b816bc0734ebb54261de7fbddbc43db9db16ca58fa0cddefd1dee3969c00960e387c9c753249caede7d74f7fbbcf942352f7a4e5fda667104a1daebcdaf4e534c1366a22c93a9e51872772d143a838ba7805d57d22158464d6b68fe754f0c7b97e3f23e19c260d3d704ff8f8b67090a865599ae8fbf3a956f6973281dcf29876a0bea5759eb6e29552c76f7b2475a95cad60db0c68e30c7d194d887656afd6e3815e38570e185feca8f7906a9af8bf6ad644d3c1f362d226ed83be7f5f7ff28370fb4213ee821253c417c9c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9ee08944625d8e05fc60d035a4e8162040c00000000000000910eed007b9100c77fd33f8df5f5e9c74770e2405c938bb78911ffcd730897f015f414945d915988b20b4b1132c261d46d3f652c06a18152a274785ecd587fe2ed01ee3b7f5257be5c8de7cdb8ddeab883d7542f96979f4d3f3749a4dae21f9112f0f309ec41be4c517973222845ae16547f2f949603e295501bf50dff92198a7e48e175aa9b9aa4c24a4e198f353c95b37c5402760704e331a16ad5117e56fffba29334e5974bcd79f22f18b22d6ab12f6951899741446528f46ea8173e6c614112f6b66a077714f9108fa71190288cb00b190c8c9c9d96051b95b24acfc7ccfe8103c090b9b7411d34b4718dd3ca52efcfff90a6ecce02969105ddb26ef9b56ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a81c80e76c28e23e1f3072c56f4d4b8b1f0b000000000000004a19f226f8f44fc9b330ad3e7a0926c87d73da076dc0120b261c1e495d0471b4ca6f8850a2bdf419395d0ba73d16bbf47cacbb167d2a45a955e6b64727ff445d841f54eeefdb7f9e77932ad9a0e35f01a19d49f0ec59022477332eb36d301080b8d0a57daf8dea60272d77dfd9546198b020eaf8877e405df9fcabf77399a27ba65acb98df5c56a1341c0ee7996ffc7fa299c8b40a5c3f4c2ea5c451eeba39b5efc827acb1279f46780e1770450a187a2cde62bb3d9087b0db0bed57297277d9d342efceb589aab8545b1a401911929b4b17452b4c469a6be5f83c480d30d6f0cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e9ad1446ff338d7739301f91c58c48e150a00000000000000b3fb02ff8831474efde39dd2d07b893e58e3ff672154192bb4a07c0e09b5dedd9ae60c015595676724be3838b8906ca0b1e867ced9d4373eea62844e86f538c5129f1d4417e33dd64a5b29bd5813d4f1f6ce66aa2b89a1d35dd93e27377c2b9dbf3fda844e3b9a7435b868c9f33083a0aad1b190f9e2dc2c4d7c95b48118350000a1f5e393a818f2564db0de78876f86a7f9b4f9427457f339bf318a9aca2c0736312c62d4690c5dc44a2998edd6412a56da90390edc81b35a3f2526bc8b59760c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b153404197314262129331545b9665922090000000000000018cc1e3d1f3c72150c226fc4466595c4e1f3af3235d889aacd787077f9c380f99821a247ea2512eebc1f43f4e273d537716fab73efea63643bbb044cebc74b3b9d372d23629d58c7e1096a663988e017c4389853b4fe84e825f5d145ef97beee9d4c5a6ead2b80416df3a5371a2ce180af78d592a1bed4b0be7f884795b6d52464e9c8b16f73d8f383e30cee5593532ba3d7f86d64a32d2ad0963b1979a6e518b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcbf8f2c13a550a856267d6512a0d3170b0800000000000000be14e02b31d7d04e551286e851fe84dcc00c13a01183fdb277609d260a653fad73b4f99ee4a5ac4acfabf8da98eda6acc815ef3fefc73692020292949f3a67da4f33bd1affc67a2a0f03b59538febf7b90d87fc3667aa48e718b2f03e1696b860a3269d4a7d012ae9aea5f7027e9a0917abc0c7ea81e2bf8eeb18223d5b8c4b245de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6cb5f406e75a1e353d392265c2f29f6340700000000000000e8d382225982bfb7bbef83a3a8d92499d32e867481b6753ec8738ff44e843bc4a165b5466ffa1faef0542cb2824ec49a5d6b721d7bd408bcc3ee0b2f5c3bad8a8820b1ed02744c737a90345f4efb350c2e31074023f172ca0a509510a268aee6678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec765886168c3f2129cd6450169542fe0b060000000000000004522fd417f71181894e1404e173a379bd06cf2c08378878f3188655e3ac89af46839e0c583a90b2f4c201a875e4c178daa01e0aa4fe26d1d1dc08a3174d0fdd5879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172013f261d30dd5617e77d9419199851d0500000000000000e40a87bde0433526a7bda9392994263a6cc2d84604b19f6efea4367557a200c7603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799809c27e37f87a4060e2b5454812eaca3a0400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000705fdb6896d1b60a8cc93a3bccea00301000000000000000b7efade360825185a1f7059c0063f4d31212e1c5dca5365fe348772b3264863531ab8c4dfd40d44ea98d6d9c9f856b052c26265d58f1809ab8d431c989978250480226c05671462ed766f4d45ea57ed2d1d27c87f28b90cfe3567285024a5a1b2665b3b3d77c6de2de2a716895e23e24f47970a6173458afb7f728bf5a2704084562a39e6cc43a771aaa5bfafd52006874c88207db4862165de5065ab567472d45e9286d8a51a83f6207d0d0af41a4bb7383559faf23e0139cbbbaa99e16bd5e921ac01a23c4093ed642da3fc0ebd8c748fb5dba81b0a9877701f3cb3d28320318109255cfbb0797c3ad15da84d7b12e84db754e5cf6f2a9a727eebe740f0b5f3ad17193e04e2f9f8e51bbb84c4fed68121b49ef66f3ae56c86b24a6d00979650df42ee7ab7c2714a3f40956d2c78ecc79510c43fb1dc6adea93a6d6b22a764bb56d0805304e3b3d6390d91b591f19f9fd78ff1bba3068cb96624e790f1b2f369b718c3b72dd6cc74ee39b843cf6d08ad4c65ebbd7a5fbc991fbe0b3d68401ddccb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc076970a22ade1c9e383d736e5137f1254e0f00000000000000aa8b71bfc859b17b23694e31b54c80608c93c5c70ed197bb71b9c952a6359fd299114b459433d5909202ac578f5e2daf5abe5d8f8d23ad4aa54e9513300e0480c2346e4778f77c891db39a24c182a3aa49ab662d593072085b41fcd007d1c8476cd44d97cbcaee3ec44239d87ae974472b4ca7b8abdb17a683fd70e622834ee8030f335070301443931b73242a326e5db3562c0daeb8c614673c281d67c0d7549df80498c3195cbe338b0bb1b6a1c7d5f1d75b77ab2e20e66d8aa6b535c8c5d1ddd3f9eb6cfe1aafc71451e62b4672caccdf6a580eaac53f440b3fbbcf6b42d8461a352a6ec610b6344e5f8b50de605d974a4b67f878bb8b44e2ccecd59a9e0ac5f7cb94fdec2a51590021a57eca53e34cd78da728c7f84a30ae4cd79929c842ceb40c72bc44547d9eeeeb10bb0a6b408b8d555c52a34fbfdea08dc4c2f57b95181695db998982566b00c6d1f4ab0a1c65ef7d5edf65a1446c4082820b35ab030db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a198584243da696b838df183a11c4be25630e00000000000000c7369e1d8f2d2c089efc7cc968050930a37b2d305304bf7623a170cdb6408b875cdec081857a488c9d7ca23643334aeaff8c8b916c67e911ff62e61e95b1e1ac23e5f9e7db32121a2de16102c989892d27fcdbe4b9e11e6bdea097861db23b44129dc30d43c2d097cede7ffe70535a38311170a4ad28dab7e0379b869201cec157cc84d5f9db5694e660031ac46b208937bacce38e2e0eeccfd30bc58efdde947652230e1fdd9c850eedcfbcb1594c9b0c3799b30047b716006ce9207764434dd9bb0804685eacc5eb01626237c3e5853a2a76d4402e4dd2dcbe885db2dc66da1d0cd2c9cad46cb0dc7f6fa58fbea112f8f5f2146070a505211fd89f4381c73453ae7e320a725b03ee75c76be585a16ec4f811a507ba9d3c874acba4d078e033abdf5d7588b6d8a048cffbbdce2a7b19e4fc1574123d4edbd7b4de263666cabe24b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817db312be39e32b1244e8906601d95a9e130d0000000000000058cad75f4cecbde6856b41c8d192fc2fb7eb2f2344bc2ef2384e993dbeaacf4994b5acaac58a096271ad22a2fafffce571fb3eb58709ed46a02be02dbdd48768399d8eaa0147ac404af92f2a288c6e8236fda36066d0b04839bfea8ad67e7b44a803661a16316e1afcca55dc90e90e556d88d7cfe8c1576e59e5130d95fea068c47683d3141997021cab372226bd0181e6969488701eb3c2f3f1cba0bad2b8a5eb5dfabb725cf34ae74784ef3afc298a57895a14b872117f309715862e917695a6fb8714a8e07cb5744a94da6379f1e8e943e6bad5926a5a69ddbda933e59f4e925c928c4cb701a5dad8bc81d9457ecd83cea5815e1eee5408805b77d43988e914a0fbf0b9285369f7c2670610fc806a5c527c60bcddfbd15117c5e32949748cffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9c2ece241d02a1a5fd37a5e75cd59d5330c00000000000000e4ff29061e557af0c8acefeddffdaeab34eb5d674d3f2ac86bba9e98b23fa80cfeefdec9eade58f3725aebac61b8609c895e04e80e121b0141878c48013a917c9b4e64f767f9f3361993ec0ab63c5badc9cf710ce9afb320be734b66a73ad3926f5dfaa7392712c37a12159f488e0eefe422b1427110801814cfcf72ee606576a38abab818ac6c9eb51bb3d057925c7c616c244b988c8d69a9eecb05e56cf2bcfbb4073e483adc9baab74f755cb397f98542b57729086f93146412dcddf72358bef2d9253d631ff11aa1414c68c8f11fc6384ab413f5e8909a64550d568a171604c168013c7d9dd474eac54f87b5b1b8bc33ff546741fd8caead6397975062af38a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8db64e03af9bb8a6429f4a62483dacc380b000000000000002ac072a8ba603ecbb9f673c3e5d151d5932c3ecc4c7d58572e559972da440da457af512e426ecbf3d1a220f0b2b8dd4fa0aeb1c789c7c5676eb9e520c2911bef7d7f21e5e711f51799d08847ffa0f216f2d4167062296af15b5e815077bf6105c5398091afeef4521e490d1e21aa5f3b183f2a361883964d0a52a5ec6a0d99b08bd97009a894ce93885770c75a856d8cc69246f86e1663e55ffe3e2e32642f50c68558f3500b7203d041ce00d9d0cd375a9a726d3c6ae4b66db153ee6189b0c6de97349a0deba13249fa36993295aa15e64c6639f975813b9891f306a0bc9b90f01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ed86109743d964a1b366cdd245415940d0a000000000000006c7e52b9a05a7cd80870c134d191d91fdd76ac750078b45821b3848167235bc45d5a1cb1870a3bc2ccc01898628f4e0877ff8a4754345c1351311079504690b999149f1b342fe49d7300e928105bde0fdee418ebbf24e50637729ad3c31534a55639d36c4bb22b19cf5b10d51738d0ad00c0ad018edb8f6d3d4d055648c2e8c7dbb8e00e09c849c4f3f50942fbac22ee25e63a79af1bb98844b8e9159110f3c1e2a521e30ff872390e550f96f0019736e22a236c2bf60fc9c5e2d7201af0a4f41d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b7be02f303a457702b8888b1d082455450900000000000000bc5838d1cffcfb3e1a0a43deaae743c59abd08a47e689c3ca157455f173ee13ce70ca37558e71dcab582953aa020dd187eaf531f75bb201410a0e3778c18e688129d08a2c48daa6b24d72582f1760b4086d506cc2b73db715111cf744e2566e9ebfaca4444d214bb260120035d6397bbf4e46857c19eae955bf17f5335aef0818813c4317fd8fd9da98ebbd529c9cecda3fbf074f3cb92abf243e480eaf9133e388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc99336317620b86059b0b6a466ceab5400800000000000000c8823b4b3f36c7b29c7ad83bfe5926a3f58c891465e982bddb03f5dce2d942832e8acf8801f51d71db52656da17d75f55bc453615f1e5dc26e8eb01468dec20e87d6798d2cc3671b9c68439f2a2024fb814a1b6cb8c11a9b23f26e18b69d1c990c5e35b60dd07b96449f7e2715b9b5770c6231f13973f35ea598bfdf49ff5618c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a671f6df650b54a52be588d24b4efd70700700000000000000143a90df4dc8313c2b3a508cb751f34354000f4fd18f20a05a4611abd8f90cdcdc27d5104c410533511d8d9c435338c5601926a95aea8f6b1b5707f5edb2fa584ecfca66ea94b6eb1cf4df038e5c6a6a55fd977a31b5940dd4fb97bdecd33bf09e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecff8e663c98120c5b88834453d7199154060000000000000060f4127f647f6cea75868a5ccb03d7e497ef992c90c41dccb19cfdcee87079f9126a1a2df0aa0be12960aa9fcf13d7dd4eec3057fc815c636908aeb0cbdf37c0492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17d466d73746dd6b32b876044e9d4141700500000000000000664414ea5995adb1f2ac90d91c8d2f4463ecf032495922e516ae4e6ce95d05e3d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799813e145401be7840c840d5366640e673004000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000008d5583355412c6177f0501221cc6e962100000000000000079a975b2724b50183aa29f6bf9eee2aa779c49d8e2f8022b437b268f82be9fa3975c8a4e6e70d58a0c7e25d6edd70499b262092e92e4ca0ed651f6769c80fe9732bc88ea4bbc8d96f3734ea68858c680d4cc059eece1ca9a4bfe676f0752ded2593e7458289aa628f10fe21e4d0a82b4e2879136e47a4de48539d6840656284e82c9855e0c67547ae70025f000b561858dc27a728244bf4e970b2d3e4f374d1680881d4567b20761c948d82d595a07194f7e002d5d4d4265371c911093917983e11d2be0643da7dcf97cc4cee670ece7b36ef0948b29a67da5847b01ddc09f3db3d1100349ff521e3abb3effa3ef26f253ababca7d3b0e2261f67d7f03992be50b456e7b74ce43f0e1c197fba8bb07e324cacfbfa311afb947c12441ee863342c827f35ffed34c5139286fc7712e87270d728abbb021643a49b4617293892cd84ade051954a305e04adc6e2ad811563f904010a0eb7178e67cc26a6bdc97d8f2d1d55e63c3300242173727887dda9eca516a2cce2802ee27ecbd2749c9703796611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0747ddd436e98bb8280d31f528b000521d0f00000000000000820c87c8fa5bd840ff854f08fc5db228a82a3d246b7e0fefcb108a68e581a1aa1751436db6973df3f22493833046c8c7c5c0fc0379e2d45fb234b61d6f0ed59882710d8b175c109fcabe9e78d2ee6667f1d0f3953de9e8bd1acedd7d0f1e590aa419ca755717fcbbf2028be1903d7d1d871c29cbcb76f07ea49dc39467aa86278e8bd47302319378366e78468baf209f698dea039d73870e0e90ad426653be3cdc6d894127069b930787b44052755a323517b92141f8c026e4b2c71d8a977995877ec948a6cf5734005c1e8d7c31ee1ff1ec0f7ce04ab795c3b199b2dcafa977d5c8ad6aad970a4aaae4f41ebb26d1605e7d2a4fad73db2d27c94eaf770a484e6b2912f55f0cf4e2dac60a2417c07dddc54ff9a2ff0cdde05dd5e96fba588f7d5a911325980241ea390d0bb654776e33ca54832090f66c58a71a4c63a1688dfa08885a51c33ab20d75495fe9a7a341206f8ccaaa907142868513fe3eb17e68f46f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a197b8f5b3fccfbb430ebd090319ee5d6370e000000000000006991e4637b07a70379cb9fe1017ba977e978569db9f32931db9f82ecde5db07b4ffda7155cce16b107c29eec8b45393044de1f7b5abf67059d72a40bd64e2bae9f6731c602262a6c4e0c6f9bd8f89984071980c2537aab9585318668204f88f8e1a48c58be429c797a7a4a455456bc0f370f743371526612e31264b8af1fe6e4101e9455c6428ba78c3f7a0c8e1cb074102b3185f2f79d2fa2ac84073306aac388caa138cc4907fedb811d36f897f223d75a638c655879ec923bf28b13fb3a3ecc9c52af3a8922605675c26d9db7be2abeb45bdc845dfab374ac43033c49e9ed4d73c1a2e170e269b4d5004d1b8dbd73724b59789d7d1bb339672d3b13fdff2567cb6940fd8aaa47d75f9a0bf55aa1f3933ce82de74a8c2ac1e61be2405444585c0c0d054c1df861340cc3a2389e1ec841abd2fb6c0509e9dcb738419b5aa570570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d7666bb3ab8ab5a2a5bda69115dc040090d000000000000001818c67f665ccfc362ea6f5440a78efefb140ebc7bc48e5e6e5d3b9a47a16171023d6105ebaee9b9a2dd153fde128d7017773bbc3098400259b7da5b2bd5e199e6dff7ea7f9d7c81c5fcba31b131a29a57242bdd6039a2cb74f000f103deb58fc3d4ea2cac97b1d6d491b4be68c497a3dc09f01f733b7d8af79858520c15f4e54ad122ced88c5151e56ed8d15f50d6fac52358a5697e4e28f6dd8c256281a677b18421e008e88a96cd29814cf8cf470f7baf06af4a83e394cd7b91263c71607d7c950c5929dca43b04631bdc1eb6d1016e5bc3a6a085532c72e8f97ea0fcf1f5690309abc9bb61bca2e0d7a23550ea6d9bdf1dd14d74f57ae1a96ccf7f489df94d2e5cfd4fe22b3f742a9e2b48a1288a9661a7ea579d3f61c2c7fe15e4ee6baa7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff952e9fc4f8a12413b26b7a834d152b21b0c00000000000000c3f81c7cbcebd5751f8f3c01c01e0731ce15d8790bdc6e57642e58294cf4f2d01dc543ff3e7735ac9f2da5bb7c5888a5c48f35f9fe18124f3b7eb2926d996d8bb99b53fbb7e77a9ecbe505bdd11bc7bcc27379ce704ce6ed85ea2d2951fbc9debd448d2074ad29b06542774ed3ad90be56fa288ed477596e429d8ef9d4ff5544fc077e4a30ddbeaa05c7dca4b6f5f670deb918de891dde20cc0dc083c511405a18d2d015f6b17f24caa3654b17667487cfe264345e1af461dbe9ee0d18b840143f8628491de193dbcd06ee35408fcb27c0fe3b55c04715d65ac7f49c221b6dbb830203b82392e74ba5ae34c1615b67994ed5ea129f1f7393e9b41763ff62aacaaf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8c90fa9142339b343570c5d60f37991400b000000000000001da4ae573076134e64b236c6fe7df9297b9c08393336382880bd71df5ae16943308c269e9f94dd3582b8a06d5c40ff2aa06cb1550abf1fdb73fa2bb2c176603ac7ec9922e2e4227d7ff907bf0cfdfcb69f47be7e060ea62e22994650a10ce50c783045fa7ba9af2630315f54d04495862a3e2e996bdf9a0ff9418933e4efb74362906cd6253adc58ad2d6bc4bd69ae325345bab11db2f3035024a2fce254fe2a3832da79dcaae636a0e9345f08575276a23ad14c98b34ef10cea47e402725c9d24e5627396bb8c99c8cf2a0b7bd35d3d9f97e7a95d1a0520305c00676c12ba3385698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0eaab1440b0f70933ffc3909639d3999150a0000000000000037b652a32c16e736d1b915481d7c5b7ab76a58c2d040a7812dc8889065588881ff4de14313c57ab42c1e5af939e0d041847d3c799bc4ea3f26d4cf6171fc92c23c1a14a9997c1c46a53c99b3bb4547deea383972b940c1f5b57feeb87f3ed343ca87cc0da8d61593d8acc6c87d7701e8477cca55a27d2f885ecc5347ea3ce80b5928dcba3615b1b1d72cd73744fdfc059c27c68dd3f562a38397625df038d0922708fca109093817616bf8ea1b4e2149dbdb0f7633db9493b3b749eae1e2b67afd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b0a3b4c04dbbb6657d7c936154766693809000000000000001199e514c5e9332eb288a305dfccecbd20ec6004cf7abee1b66c25f282dd79ca7922a0d4b019baf30d8728729c61b0120f6d64d88d9bc4939a1a661c0c15c196ce2c5d75c8ea67ef716b296ee090bc1c351c187824a489ee85c5bd694a1b53bf5c3c21a619bc3ad36f6f0be47369f18426943a681494aae7d84ffc25a5e3b19bc1dd6e2be57067d41b6f4b52b6a7803b170d10d4600a42994628c69ea8cb29ab7f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc43e4423765ee2262085e0c6dcd486a520800000000000000e84c4e8a46f4cdaed2d15dc1b2dcd53cbdf8566349f984eda42c48f2afad250af18d1fb9dbb2b26b4170dec02ddf217f8529a767e75466d94792012bdefcc7b473dc1f7a699e19b9ee7076c14c8ed686a180165ee67c3b3327ddd3a73f7dfa1d9daf1f9d41fe8575c3cdc00a687760f1d2af48ce0aa16440c5eaf063d9c1b2a93fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6fadf62164b0fb52284b1db5d9f52c2190700000000000000cfac0cf0fbd6af279c4e6bd64b4577123d77a2367a74225bce174faec31c610d3f12eb0d9a9b3eaa6d2c411d1bc906be3220d98a2e78d5e8112373e7a9c5c2c5eeef29d9ef9599f23f4a2ba725dcdad92e889ba9ebfe12de3718496193d46de6f11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec667281316087866b7ca91404a53346330600000000000000e375be65eabe53815ff932af9245fa0ef361cb79b37abad4ab218b2e2ec3de9a4b6e4e48f9e539e6675225d18adf6fd79d9d00f0af9af43ebca8c74966c05be6eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c177ca57a0b1b47f369e97492305b83196e0500000000000000ca0556f4635fdca06a640b681a811869f1ae899e2ca0b881ef6a06fe46df515aef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979983376776900a8686e5f0c572042179c2f04000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000b95fbc3ae49df201ae67bc26fa6d59051000000000000000f950f6010ae8ea2856b321787446cecc48a58ead8b7691511bd2259586c7b66a73d4967bc7cf52d2e2d82fba9ee7690c9a3d7eb120b64ddf2c1d9f873707b82c30e1c759348f3ce4d3597c421965f9954aca7bead5c28c0592669461a6360b420a84ca6ce799150f94f221b2306e2869d6d00aea207b18072caf76d9b552c27e6b66dec9596437a15a7db89692108e6410e82c8937517c4b149a7bcfb796181c5523c70fa067aab3daccf183af98a2134b1c6b6ac2515124c25fec29eb225fbed3c2bd5b937191d292a6497b22696198100b758b556c466a077eb9b9426406878b5e50b45c0a92d1bdceb5f945d0b7bfc82aee6f7db41560a558e5f98be76fb730ca323a67701a333cf4b84b051a67c02af53e129d31b7e6da331ae64cebc0719c41c33b3adf504fbbace88aa923b5dd56ca992342c135de861771bd33b4a48924c9caf3552d7baef7db03d5a89485b4cf5fcbe230bb62d2683162b504f441ac83f482217e557c728b44474c76a7ccb40a223592b8781f3f5e97c753e13161174caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2278c481e8e27566d8791a6235fe807150f00000000000000b9f549b05623dc408076d544afb93d2cefc33e879a8a25aa095e9ec29117128990fce45ae8aa6f73b2420133c9ba0be9b1331b5f2c36817efa8978af965587dcc64438532305ee4a9f312c72d89b46cfa69e53ef0d702d5828f656474416d62d7bddcc9f632afbd5125fa18b9f50676f989070945f01550b7b1ce0eaf82cbe98171853802940e9c2985dbd430ebe1e17b08d7518b801ce7f97770df1189f9702dc856e6a1c4050456cf50edff802bb0e6be0f595239ae5ed7a85fc007c7fe01a21c6c45a0609a01344e4e03a406dfed2f53174e532410187888dd9ccd44ecaa48cd82997e1d80b021759410ce02a43125484f378205008d73b8c382e4086a5272f04e4b9813bd7d487bd072fbcccc3fd9a97cff67c5f67f24f5979260fbfec8873781a346bd300abfa99f9ed4beb195682ffc9464dfa31f3b5f102152b6680fb2a80ff3e92c1193ecddc558f269b58c5fd4cd9f22a1245e6b8b4de30674c68bb9f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528212d752d297f6c5acf34e04d9189c7480e000000000000002da1e0099fb740fded7234379a0020592153df71159dda054a8525b0516a27ff99b0fa3a568b4c55e328b2edb7fe06cef93523cc4db657cc2a53f9c3ac42795233a0e4dde452e32cd2667a3b88ea9761ebf26cd1ad9a93ae4798c3cdc3f3bd75309917f2f64b8156a8e11f96d34a3bac954e5b72fd6601f6176d986703a55ef460adb30d6821d28720e84f4b58a2e8056d4f90f65499b1994a4877443316aa71fe44ccc3deb2d290a02667d219be140ccd3264c0bbd0fd822a91e019837ff9ca69232daf6166e25e5d6af430a53c3dcdb69546d61187072f673694f80f7e718c5ca973c1530d89616beca3538bd016ffc5048ddf7e51b924a3029346e167a9fd73759b15c0ef11b48309abb891bb0c3a00ebd028baf4a4f536244627c96836846965310da1d4d2d16bf6baf538b8bd7920fb04a3a955d8a94186131d831c27ee9a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b681227c95c733533319802c10683509a4a0d000000000000004855f0e8b0ea8794c6e46ad53b0d3b1f3e45df0633770dad6b87fb6457249aebb5b1863a7aac6ee035660a6a303efe914c388762a9acdfd66f344c8cddee83ff723d81c751797eb9fbcbc67e5ed32884c998074eafffcf8dd1f382f67ad536df28557d016da8d6fa044480f1b17bca4f720affeac486bf821e94b72481d4adf3648608a22339058d1fd61e882e7d9afd297078d309164664f4d515d597dab4713c22b071725caf47fd84bd427975942c517481e6ac316cdaacf78824831e8927a5db98ca8a6ec69a942e4ead536e497512b5a1f2f50d1aa60df4155f47c045f6fb254f06181001783eaf31011542078f9c4b15cc386996f4124e7439757e05aed3083687c80b0b7b20fddb1fb4dbda4856e3db498bd39876a6ffbdda7c8d741e3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999963506f72b671ee4c07a59429bb8b06730c00000000000000ccc63273dc26e102a02dfbfc099c7e07c17702331e200dcebc53783d47008f97b73e9bae28a54902f3a6e3a04913f6100a6568270c43728a10bd5d0065d5f23fcb2f89165d6334ec3c49f68a2115083daee81ddb64793b9b5c2c02f490f018dc62c5c5d614bd560a1ea77a982d3de5256034c67adc86d51d2d6721d73558613a2481e61e6222fb863c15eb7aed16524729b250c645177265b443759959cafb535f7966836260d671ca93c413e5e561180cd7ce433548ca4c1f9244c79f4eec10fee7136e8247a6af334276d91ab8fb7048ce1ad795e7115851429c292d1bffca6ce27cc280df57b6b72749399ccdf5a499f9604be3fa7349710f60b6ddaf526e18a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2496f62e836676bc42c2d566b40e835423a0b00000000000000ef7006f6b8c166cb5def71140c5b222c7d2755b366c2b89016a025151a79e49cfb1e77f0e604a0ac630a9d3f40227c721af9eb0974c1429cdc98c35cb956a3bf2f5c304ac941a5273aa35babd58e052c8ecc2772d762f9a8fa742748f56098b7c679634c0ad5f4a6c83ff7e58a201c1eb76127f68498a6540a189d8d061ef601db6d63c52244356f3147e10421bf189a8bfc8efeada959b37714c9665347942b2edb41bb48081875c29bfb813aadd89dd72b1056be73d1000f8764c9611e7496302470f29e83031f6c3a2dc3a7d979eec42c2100d5f1afb02cc5fca83b7596a49ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c6a5e380ad4886b3f16e25104120cef400a00000000000000924727ad161bb36c7a1121a1b1fe177b07a26353bc4f85e74d0be83856fd78c9ef602c1e7dd77b6aea1b7eff86dc51d27f4708ba81103e7072b3c4f6bdbb45d0cf99bd5fb9cb801224e07a465a1ec25b7b1bda15db4a23169cc0ab71ad4a6f2cf2b8690b554f6fa7923b3ed5b3154c4ac64bc42b5c0b911773a13f945a0226c91ae7abe6cb4038cc7a5898b307449805b95284d8f76351f45450af3dfa517c113c8edeabb54ea12af2f61c2922cc3ae3b21ffcb5764c928bdc3af07435e6869593fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c04348ef0a5978a561cf78d02412cd3d4309000000000000004d736dc290d4968861aa48369f8a51ecd0933a4cbd1be69936eac374d2fa53444fa0f23c437a842e2cb6f0483bea66c5d6afe38f93a6405958d0070c30794880a76bb65b7196e2a8728aac49d2b1a8a294923b4bef2044a6de48675368e8c03633791c6b7cee37f708c256359e0a6fd19824e37e1fa5f05253de72463b5445e40802b5d22b0c84523b83909b3c0692928436d0745860c11442e26c33047191379e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d92d1bd278bb4433dfe534b17a09b65690800000000000000928a82b2a76bc3964f92372fc13a9de2b503d37f286772bc9096151a6e8c32febbc4c098fb20f7b854c1632885d7938685fa6e10476d427b516056fd15bc26713298fe928feae5161320f74dc74b2e9d9dfa5026998ead686c7e05d8960a113fdf83c62d658c607ecbfe60a0ab739fe3524e853004323d1caa9218f41dc4618044136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22284f8737026cc386d7e872147c9d7721b07000000000000009b1e6635c7ad78201819317f6c2f04bc13cf773a19b467ca948b579a7f1de46c47e5bd7b16245262045bdf932f83c5434987ba36bb9edfd169c5d89cd8e3232164a73b13ab1a6ec13d26eed193b0d09a12934d88b377da638cbb1dfd72f712e5178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f0d5aa08d4e17451a0929a08b485af7006000000000000000119602eaa29c2bccc2720cdd45a69592fadfba2624c391e87f886648629981258164f9709b08d81b04adcd1f8ac8563158f612c36c3472384a88efeea3a19fd993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c76387370bbc292503f051a5c0698346d0500000000000000f1d25e0ae3482f5bf1cef3cd43531e31b9ea871afaf9543fe8958173efe1bd0f49fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c55a9b44e8b4be55edf132b4981366e0b040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000004c8e4314eaf3b534469590141c3fcb371000000000000000a9c4dbde5d34356ed01691da98463ad5b36302aa622a096a6d80524784c0b9cac797615610cac40e37cf9405aed88ece51280ed263b09564261d06bd7a3da77473f0f766f1a5d63da8716cf6e96eca059c09a5a0988b0e9ea8beb7a558d3648a9c705a044315f8a8d8750e384e063eced25add197527ed7a8722ffe5c3d149015e7790b93d513c452a71338d445b6431aea4eb2df0b1452c64c3d33b47d178705efdba0f331463b930c22a5df0babd191ee4122c019c4893a8365bbc4d5558e6e265ef564eb25177c7404fc9c74586a0ea629a6a0a49efc316f5d108caafd32f31f97fd18f47b51f3f550fba46b794b40bbd2ccedd90018a891192c896924786700e7f28ea83fa1e1718045d55a59d8e7e34d83b99232e986a38c586167c0706012b65aaf861946ab8122e73f257b3af57e87742233d9348c4466e8cb27552826ffc8f55e12c9ecc196b81662b59cfa42ef85e40409160e5a08cb0b19550ae3944254e0619bb4ec9d3f056c9fbb48d8ec7d6785fe13b00f112d621ae01222ec17c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07966c7465a6a6e9229e4d045db73f6e190f00000000000000bdd677c646a9cb445b5cf459d15722cc2b4c3ea8b742d885f2bf54d247821c2d5b2e18bb45f8880f5e797bd198cd7589d86df99fd91e133fa1a42bfcb1522d7557995a1b8c8fe4846b7a46284003df748cb2d7ea2be8783183de7fd193284f43892c4f87364157889162fc4e43b175dc55f54452467e6950c1757ac9b353d16cee578b7a56446ef724837c2ecb3a4ec0e589dcc2d68f6b74b047a6d4e47ad982228b4e3e4ff27f248d36a0d5aa19ae2274cf1027f74a809b2dda2c61b97b629806b8ea98c4a85184d8e1dc93691c1d04815044461b4c136dd08abd6ee886efa519c1af38375ce00678ef3796f3cb00ab5ad69c33ef41d3122ed2e4eaaff2fc8e2d295dc397bb655c71e2be2acdb3a3818e56ac056f984f4413e5d402b4f05c8167e62b04a35e23b8c847171e4d2ab021fc1c942274d4c32039ae64c342a8dd7fef607a8a53c1e7f9a19a15a0f5990b8bd64e699f5717a2e9423d50f57a4987c45a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19ba1c643e5eca9564ea45c03156a3412e0e000000000000006bcdf60fb1bd6d3d1465b15098a5b826d9c5c8bd235303c8d6669abe8af8c55dbbabe2a0da15e2f719e8ac01892c610fe07c0eab3ef2a4968785ea2899879f396d9c5869e6a2a32870331a5def3e7f45bb376b73f32d3559578bb851e7ac99ce585df0aaaba0dd95c58e4bb39e35ed2105eae587cabbf92fdc09bc16e2ddb9c09563f212ce335c14cb38fbb1b9b5d3c48168c0e671c9c7405d9c5a36ec9c9a227f1fbcf7492f0967bf2856eecc8dda8e5114858727d59b925d297e6e16952dd165d6f279dcb0c0890e07d0371f391a3357a7e302c46dba81a7ac1edd35a935dd2e3ebda09117a0254ea4f090b05024cc84dbdafeb9a571468e0962978c361484f53571f55d294550fa1b0e32652a2ca7409f9e80d2587ce7a0e2a389af2c4d727bce60ad5ba1df7db6e287ad2f6923ea6e023ca02268a8f89df87545ae12a969b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dffd2b330dca3ec5adad5d66e3aa4b23c0d00000000000000746e61e2962a70c36105dfd28ea66df93b0ce2b90df1b91545aba6edc29c88d7657cb71753378acda404789a425809fc516d356bade0c645e7fd1bad10cd9884ab5351f585915e354c8317e5c71dbea74ef79b0c07e54908d353eb95ec8ceee82f44e6771d76930015a6289e2ada7371fd643991f8e195a78a19656a0f258df5be2214d52e69f0f9a9a879d8b31b09e8c07734f17992b2291a42a9055a5f014faf416583d20c4bb952248e0043dc0d80222cedc11a5dd85c894a26f1b5a48d2b4fe32f683b53180d7e90b4b26ef22cb2fffa667e821bbd36ff2a8592c6474caa6d887052c23747fa45b42781972c56d0b23d6de0860ac34f738078414f52f0df66edc23e27e7699267ba008576fc0b4c31ebf7406005b3b9c9723883f44287cb72ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff98091c2720f594f73b64c760aa33cce230c000000000000005972c330d459c19fbfdad913cf7fe1612ecd46b756fa9e49e79657bd0df524da30934cbd5baf18f30409136198c76ffab8e2794584ef73d0bf52838f29311d1812197e7352cf179944039ddab8ef6efadc0db6d416ec036c5140a082d8d169172a6549fc91e0150d866fee62ce627bfcb58186953d0ed60bc10439832cabb7ded22b1270c6d15ea062ebbf8b5f6f6360c176b7e2da99264b82820abdc0d25a387a1c25a20f12d170b7272792ba468a0217b31ff9b24503677db2afd691a0d5598ef3af534887d21dbd734468b6cf3f4a7d907bc3106b3b7967cb891caf541cee39124992fec6d00b4f230b85d8aaa94ea0a91ac38021af8f89c2a63c24849010a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8f494865baa711b52b19b2b41ccab782b0b000000000000005f3c9723b1a7259533114442970fc0780c05fa347e8c2c5b2e0e21fd5afd3a0260d19d6387cb0b4d79ac777654655d8f4056634ba5f857772ff8f6d131b226d69dba62879aa90d3da140e30ffadd9642b3296589125ee5ddc2559cb68b66dc29ff88d92f411a7e88dc2d83c2602a96b428a6b0331bc1ff8b7c348ad82ca04161337ad1506f51015ff7e2d2920d70e10cc6e7b67575bf01880bbbb2a6a41bba8dd922dbf6afecb20d34d5e642c111b8ac388c9c89930aa1b19960e2bc324dfe90fcc09f135f31da3606d1e522f7a9b021f4d95705f3e2728d54af109929c590fa6d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e5adc72373cf7373bcd0d9f6693dd5c2d0a000000000000001a47b4e88d6082cb2142350334ece060876cbf244ca4c2f2be825742e5aae614ac8f38f7fab0a7c2f30dd2ebe991a91d1f98bec1e8da20133919ee280057ffee36cf53003464daecbac9b12e803c9d154aa87c45bf586052c0a61621f27652bd1821948c48e28eaf3dc9d58686f541dcec5228f5261e853bddd00e1a24a780b439943d399e2b2618c29be68e078ff6c69e83b764bf167b91ff7ad58fff5882e11a294f8e6d54ede54951edb8dd277782f99ccc3b7eb1b4fb1d1f7f00b7ab5a6388ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bc0a3a9213ff092712a06cc442c77dd5709000000000000005e8798827f5c65a6c0d03f044885f3f0c63b66e3b1d7f55a03d176b2c2050ca74ee67093717dd23dde7a4c92e185cb9552cf119250582065759c8b04fc5946c5318de033bff05d61a3fff58cc9240db9fc738aba29e19b708b0eb5b91452627c248ab2cf28dc7f3ea286049b2b579b42047e3e94e67300629063b6f4db088e6a311357de1a8bfaf10c77a5f50345c331b40bcb3002f3ea85e1a32d3f05e4d783b61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bca4472877112b510a7c11121f0f0a64070800000000000000c7d1cafa20d60db07ae979693b9194dec94cd78737b241ca4c0a6f29ae3385e92a84831aaf784fd88e8d275427a7e3db0ed02fe28cc8bb17c56fb480640715e6506f0841425e42dc3680dec343884a7ac2aacab48886310fb6679fe58efbd65df18d1c5edc390d2cda509e191ad841857a62706e03ba8f3cbf4c2cca007a8be418f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6034f7b0607e4e446078dd43f0c44ad5c070000000000000016758ae8668f18d7d2fc2ddceea642777634957ecb27ff34f425b2d2043682d888334b001397943ecad84ee03f29a99792575806bf109bd084857551ad6681ef25485267788b493e7c35cb97055fa549c279210a7562440aadf740baa3bed148b256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec26bab30cc5e5822e558d8f022893c7310600000000000000f7a8868508078fdf3b4b65563fac5e6e761e4c83d8e51823cda12db68aa48533cdb955c0cdc8109f9d59f25c6b0566a3efbcee0c2fc0c171e4d8d2006c957bf7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17b78dc30770579b70be650f06ebb6bf5705000000000000008505587024099a9b40c83b940ceb7c9d46bba67b8e0d6987db7bceedf5534658a1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af54b25a3462dc5b119f50239f83f36d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000009d44881f2f686c602cd0c73c88c2b323100000000000000033375993545c95a0ef3ccd1abb804cfad6389a2e2e2a8f91ab0eec3e639a7ad9f32b62fada805766ac4e91fcc840dd50b2b7cfcfc30377341121bdc53efce886e4812cde7518e4d3f4ea0dc68714f7cada27f9db497dccf1c2cd8091bb73eb09b73a395b9a1005e60c6241b43d3581b59e267650b07e187368c4156777834b0ec5f22eea92124651b295eb49df1b2bb34a5e1438015f8a4603638f24930fb2c6de489601d02fa253b4b73595b1f4a2e7bc6b7344fbc05751d75ad2ca13e68b3c790670c38713dbc9c85ffe793cfa3ee461c030e367eeba531377ed1ae397ec30086871ca3adf0c1094432d7210bf83f59686f4336cdd7d8b7d910f369120e080034f95431ead32d1c8caea359eb84abfd27b086404c7d14b37a1254bd819dc2ed486267b26f88e06f6441dde2f5a04bdc89a381eb00c287531b6ab80dad26f6451c48874ddee690af236d56fdfa9fdc769a1ad1b68ba67284ed49976dd28f90260120c75f50146c4e2af19c7693af06e244864be56d26ec55a41eb22d9e39afc7c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc077a53f149e34357464c6ea3010919c8330f000000000000009d71182d1893aa8e9f032e5f6f3b1a69d1705df63f1640aec79e4829dd5b4487065c38c86886aa8bd90e7bbec837f8a2083f32d3b8afefcd8adb897bc44f8589947c319beaf0b46c956c82ca01d25c94423c1d9acb3999ab42048c15913cf54017586a373e2f92c9647e27817c7ffd913b9027f733ddf2f5e8d18bd217dbce4b444af4b0ca7fdd171c75f0ccaeb88872cc8ebd65aa1d65494a940d0777d5c6d348362823748e40fbb492f9ef319b0d791057923c5fb02f7379528e4a799bdf38363ac5bb6b19d307d790a0d6b92c8f5acfb6c2fe584c1ad488adf378a99cb9ca401deff82329aa966c77660baf6642195a8c56d9254ad23ce4d66fc3c51159856c4d7084f7ba5d84f297cf27a545c21d804990728ea796938427c03a52f3d572acd808f92d4914fc7756580e9a3523f9629a6a242090a71cec65ef5e3420d35ef2b01537c30ce28b9cbe68a45186e90c1d06bd5292276d1fc8ac951f674732095a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19b87913318d8e823f4d98fb1229083b420e00000000000000177e365fa7b28ffe88105af488e9ebf02a599b73624c021cacfbb1e966370abffc1134b712dcc645980e88bf3c2c3629e631e1276f7f089dd9d3f8a8517ac8e2a7554ac249006da8d937eadf6a0a29cb3179be1c3c9a1119683bce73ff81e0345e3672a740459e7458c66012f0d9918ba096311197149827155861c6d7e5109829124d9f38d2a688f6dfaf4f9ee6fc2bca56cb5a3f87b7a6a85d1ea83afea4c2e221b45daccf9ab49aa63c347e58278ce51f025450eecb8462d529c6754034409d1c74806912897b5735939f1c866943b53a925e8d0d3b30c54f7de09bbcf5861dc03a4825a5bd971bdca68dd82875a69abf9e4332925eb1c72aaf2741d1129acb2c7dbbc960aecb54608fd9e029a5b7566b801ed0619caef3e901fb97a8969eafc4ab823c39299596e22eb53d46c61b27f374e04ab1d591f513594d5cb35656b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d090c9707c738ed6bfdeeab23163480660d000000000000009c4ddf3a6c4820af87d724ad8c2895d3856323333c9e2fa68f29b037910a89a8e15005143931cc4067c826153fd3c0383383ecb1f83ac135d8d879473cec3dfea48d8973042825ed0c50c865877d7dccfd127fb0973ed8858bb9fd9c7fee1e4d2a19268f89e5f724de952e68e3aafc7317fd4d0ff0ff8e27a7aa554190abc1fbd15fcefa4e1e1cb53bf44d8273eace9b84f2d5b2142d641a5bd33e6cf1a001ae679077fb1ede5f7a3d843b5cf3615911de1f6eba6e8decf451b617d04ce7704f593f63bc457c9e3865b8fde9092f82ef57e57ea3a64f7719e8e108b67af107f28302b7f21d107420304e7d20443fd2737d0890af32f2498951e55fc83ac22770bfe63894c6b8de553c0d5bd67c913899b4f39f9511685bbe1793f8771c6157e472ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff96dc4c90f4796986ad1ffc54b8a57592b0c000000000000003fda22ef9495e630f023ab531af28089b314b20b41a1975a2fa7cac4e593fd11fc0b00c84a74129b5c1345deda9d0f538c720abba15cc37569387b1240b579ed173d5c6a29ab50b880344b7cc428ba685d981aeafa0aa0874ce18f2dad2d3976a223029168503befb03aacb3e572974328fafad70adbb87faf584fd3678e4d51a9c1ce780a086b860958907f1f530ac3c03ac11fa6dace7bc02148fd983732eb1160a41b426b66d68933b78d96acf63357f4dfa7e1a7479e09a8cfc48336c3f6c56c6d0b3feb2f31078e455b74922354d4603d9d778dc6c40486debb51b6ec59cc237bffb518e3d6eaf15f30beabf7aaba2847dccb203ec23589b1de9c9cff34a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a80ae9402843550435b240fb209fdcb90e0b00000000000000b9d2f188000fea475434050e270795b1b77cdb6b6e6268a6f689a7ba3799f96384cb752ac97139f6be7927d7f8fb2f1988d3d8f6ee7993d1f077706f4bc0e85986f6beadc0bdfb2d6767dd01dadfd8b84ceb5048d09460e5f2eb733d177c7436e75ad6de798209b4b900798c293ac5dcce0082104142c62a12041dcd58bed3dd986dfe161b8c9a56b345bf3dec18d14e05524b7a42c11aa45905c33f3844a7abc8d6fa9a929040318d59fd0d3710a29232e272c74d8a32224b74ec1838c39d37930693947cced19036f475a7b1f6217702af6eeab4a6e303cd78fa5a617fe9a66d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ec4f511289d144052fa16c50848e5523a0a00000000000000e9fd3204cb1b0493a247f2867b8700a47a315d2dd3e22fb08b2132c663a180a7bb2afb4b0540abc842c63cdd1b97fedfe58fcc1abe6071571b7a400be9f0be03db63184c345cfb3c32b323b4d11e4b89580ae9ffd54de465ec50424f595c37d0c875a938213d3bdf32ad477df43d27bc380bd0d9582ae3de3d6d4468a8fb176ef3f9dab753cf51a67ba48fd7aec3c69fbdf1123a03508a24307b5327455751413aa4ca041fa70d26b6219afda055fa135ac1a018769fc9bdf9328ef931038b5d88ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bf02b80698353f22952cf7a066681e0640900000000000000b9f78707397adb8719a190db7b7bceb188d5dca7938569a2f15f3ba36f27eaea2b57885c3cd9c4742f8a63a91d03af66bf519c40a544ab671472688bbf67a46364de49322338f2c46851d6defbaa30f049e81ee9600761e2b64111ffd5f22c1e3db2f1a9dacf3b1c9f6d823df7a949fc5865be94794ad6e498a7633b9f2b407c571676c8a7fc1a84c8ae748c6360e1f420d833e1e6ee3463ab5ead4eaf9eb65bb61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bca9008438f750a775f05dbc48976efb5b0800000000000000771d4df15cba449760ce4bb8674eaa9bde5ccea46d57ced345953a5aac5c33e653cca3a6f39078c02be5c412706e4bf91cd776c28a8d3b43002085f9ff95f9a423d27e59b858dd3c1f896791f8110f3edf83c103a62090830f8f7c3e0f7601729d886422227d7586d1ecd91a055201f736cb85c44bf6a4d43341e7fb1af48a6b18f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6d040e9341c44f058a178c968f284725d07000000000000009b8e8d0cc7e2b89f2722fc762355b001cfb74079812d293457acea75f8d2faaf286adf985fdb02bbc6b3c0f33ad903b3080ef0f27a9d4e8e00ffafadc7d2f7a5ed1b16c3655bcd42d508f142358ca999b5b1773f5485c4bfe0ab513bc82c1c5bb256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec0f9ee515be7115309f32650ef7abee4b0600000000000000b83545650fa9e4588e9c15d2a250db7ee4ec4dd152463b2996b83941e5d434f841a961d269c5ac357a35cfaa1b9cb086397eea9ba31382d2dcdec38be30157f7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17679c386878625b35665b62427bb8851e050000000000000094a2f290903ab4df493d9a557dd73f3836a3fecd1b60b5b6596d767171ab714ca1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979985127d92de63f2539a1d4966da077f40d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000069880607412c2a148329971fa1c75073100000000000000029682425e8e9cdcce6a9c3795ce262f3c4c5305b5c6d2c89e622df505e97db4da0b23937f631136f6711d998486d0cfbb9f382b7e0817a868af5d98f6c95c2b30679586841dc93a3558f932389b506635e7535422013edbd2d5ef93ce5ab5c980e3d3ed3f18cec9a116e717a53d0f403cdb662595aae55557eb88473fc7cc32092ef3dae248276c027fd5f72530e1bd726a76b12d36bcda97afa8a633f0150e038f95a9d93a4b87474a6bc038a51fb0fa86cdbf948b06057406f5de734dcc19423e52a02cbc57dae84b2bab6880dd378cb6daa51d105654a7bc71b07b8ae17a2fcca72a7675b511a65b91ba0c57b4b8c0a17995b35f0170dfaab687bbd0235a671c3249d1e002b1d08dbdf19bed078015b8ac42206a77e393541bbc6ae624de239c3eb62303c338b3e71c577976f0f33d190b8c205ac7f89919ad2ecbd517ab9620cd138a0a0bc5e207d39d5e15705b240ca2bcad4b3d258f73cff17e25375809a22a395eea973df81cc1152d3faa86ac9a354e92d4e764953115e79412936bded7b98da1b66d7b0c5be6c014bdefb984efd0f034aef0ee91f3fc69c4447cd396b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa23ecaff6bafbd126ff71b335188dfac320f000000000000003b52ed8e393e7378ec916b0e376fc874148aad9a01030fcad71c4f1cad00e3e5da90837a7c52e283a16b42b956ab29e43cf3906e07f63be92f6d3efd8e0a25ebf2f0757e50e6ab2efc5933ccca9840b72db00bcb17329fc693d441fc8ac8a902384d8e20c1be9117895b244e5c583c8c178da2747e531d4a6e3ff65ac6532c39f74b7d3c2f198cdc9178e1629a27b11481c725393d13e0affbd8901743bf6056ef8735b0d3c3d078501a2582c765de43ca85a9823470ee03026371c7f6205c068b2ed095a1a560954b0df350f80a72c73dee38511dd212e7fe8f11d854e3e5851d5a5d83b0369643e167de895fc032c0b1de82411ab57aa97a6ffe2092e40559e7c68ac3b3ef08591dc722b80598bbc8ce7e890325102d53930fb4185f03836eee7a275b73065e1254dc4d633a626e3bce4bbd231643c5a3587575aba8076f290223195224e69f5b96211096455dd2980359b76e5c64d2e5de4b0417cd84878404bac276cdf6d319a9902d4d21184174e2d43d1e4f7d39592fcb84925b214c943edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528ef14325b5d01ff67c6de435fd16dd0170e00000000000000ba3ea77b782d2796c43014162ab1e2033ca0ab3601ca4bafe673440877efe41976f0596cb78bb57ee203cc36bdfaaa886b7de8d6012e4307f81d0699c28115f4f6578388b271d1c8522407f31f6bd70dbc685db18e1e96f523afcddfb2848bed7afced787431fbd613a42923034df232d2da15e40b48ca4fd88a875db5f6b56698a06fff16b859cfc0bd1a988f57843b1cddf7cc69c82f2fe40391304bcaac50e8f0595071e81bc5b2c0766172492f5a0df77332a1b6cad456d77425fff0be50174ac80272008624481c3fcc51fb0a30eeb107e60fe9de4be8ad5605085edf9c4c5641c0aa189fc07e6ea7a982a8c5981cc87ef29deebd827782eca7abdfb544a841b1be4541929f60270a587ce39102795a8b081e86999dcbc4addaccedebc119bd9de1018b92ab35dc4b9c651352f157a49d957e901d28788cdd388d9c17d166ffc253b8ff89096b1d0e593aec4271cb6ea1177f19fb2a36ea985294bbd97666262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b680e2e38615fe1c33e01aa053cb6c282450d000000000000000ff0974c7bb0e961e8b84b3b626c17b6cacb1f93a76cad073c524ec826d6ec0266b8c3ceb5a9fb7113d8fe9db640e2428f850f9eb40e1233d84216105d16d2e3f2093c7b4c1efca4760cc5994751e254242358833403c9ba523b0b9f82f978c8c15f4a1da1d75b0003159f847c35c51c686ed231ba4047ff6738cf86d4ddc28e6aff28346f1e31b1cea5623b9f577f40a285a07a31124f8b5af33084a56eb822df9ae0c444ae61665f0b93781023462e33434a22a857c4e3c1afa105773c61de64fbee20cd402794bebafac33fd606d54b2a6801940db4ad6ef4bda12ee30523774581f696e1d88a4ed0db7faccb29fb605cb19e01736a1b1c43e62450a208721bf0137ea0a138a966b5389df6873e688ab675b05a667f35caa9c1dad9ca43ab7b143b13b6ff993aaee89dbdb584abc2007e8e870a10de683d64f11432879a874b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999fb68156b291b7341cf1b5d09e83ca10b0c0000000000000087079492c1bd356ea7cda365799e8ca8fd0df9b9900bb55ab341c8fe0c0ca8c51b878223520c9c0d961062f324cba21af57207d0c417f4545fd738e1751c60a0ac5d2d9ef139e753fdb5671832c984dd29ff9993f2643480d7f592326e1a868880c9612de241a55e59f9510431acca92db3e6a3ed0f7fb825e04e05f35ba509d794ef6725f9a9d9bc7afe1fe58da1dcf86d469420445246f33e484c8ac90aeb01c366c2bbdeaff1fa9c4f24ad03ec689e5f583b6673b2167bcae07441a2828f33bb16c9ea666f5c5896c490100116d809bdbed3caa556e1077eb1bc5fb8bd2856df261a29cb2770bbaaa860c9fe48655637b04e8a829e9c98a910dae8d5cd7bf9db489f5a0983bca0de50bd68dd6402ea56a19077ba469c0ac133918da47075890a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249fc003d5866b6e21e58daff1763b9530e0b000000000000005638a65e6e46c3acad601ffcac8492be72d0c16fa7abac459536dcd35ea10210a64b688a8e2af9b155665fad0ab7fa4896f0a558e191d92e963dda27c3e673ddc6eb10b7331d27bd4b4127160f4e0c3b61853e2cfa2ef78d30591782aba0a7b907b23c28e63c1c31a80155dc94bd2147b25624506188338bbf3f3da65c4ab91a6b5159ff562f0dad60c392590a6153b830909eeab883fd38beea1f9019868808e4d6f51fc33c6d77daf6b1ff2df473889ded31f82025570285184577031758cb525d129eaff9cb0de215548bf29dee9866d4c7728dadf4174340478fede34d393fbaa3516bb98b10b9f2c40c4fe6509b1dee5df7c3f545aeb4f4fba2b0de1f13b8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c5ca576166e7c5c6c3d0646566cfca10c0a00000000000000dc65376683321b9b0c754d87cd08724662769558a4e621afa706861bb09b29dec516d9b9feb5a575a8449a40f912c32c980b3638a671a386ecbb0540102eb6a6bfeaef9d5adedadf6e9063127467cf00cf3b21d08874375e1be4807218459f7918f6830bf39e2b8a36591ca084bccf17aa5260aa46e8aa0959dd5b053690f7cd0bc905f7def9be04eda87ec7bb3c9ba84ce9fc5f689fcdc6ef282f35c51681414925b2581cb8237694c8bbbfe1f56eab43576996cd7c46d373b7aa2c199286aafe1220beed0017fdcf08ce68b5cbf258f6ab910e4bbd9f1f695ccde338fc67ad9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c039eda9392279a7660ceebd321b3fe91f0900000000000000bd0d7dbed43a58dfbeb7313e8da59222852548411600fda37ca5807964b1eac8fef6591523803bee27a4e0c4cd504905f4a50299d0002674f49c9886866e0f99e87c959434210b772513436292be45fcc50851107d22bc8d6e782ee25c52e0fc61db85b02433abd791a9e65f4bf6704f86b340b23d6131356b3f1016c2bbc7a1aeb7a810cb9e1d59b4331845a9b52840305e8edf085856b6e31b1b0d7fbf94a1c65008a848e7215bb7f5a75fa72d5950a228709f71b0c163125b88e1ff6a903008c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dc989e91a7c90db360d41d83ff7fb6b48080000000000000020b734ff7b9804719bfce0cad73106e391c367de9857948461dd50412f8be8fad6f1ed86ac7245b5e97b6e1d587423f2d889087d7c67618503906ba78ba09ae2259894a9c1376d8adeb065b098d5435285855552ed3569e2950ff06c4cb52f077e60bef563ce8db7d87a550d992bd7c093e0299af9090819f388a205d9492da649a556d0a14c66bff36a8d8090e73046670ceb890715c660ca5d04f8c4987120eb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222db3a446149186f03a64e1348e956f109070000000000000082926730ac7bbaec583768917e06632457280d8653f22b405f96a491d90bbb9234ba082764e9515a1be5061faed162c078116170ad29b8eafa4642cc4b63b36ae9fc7617b8c1fccda2ae6808f3c4d21ec80222dd8c3a98fc81859b8ecda2ae663c37a8e0ddbd6ed4d55b8a44b663b26898408ac70cc9a8fdf0036c527a9df38b78644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59436e166d739471cc6837107c5c92e390600000000000000ba85777897ee679a2846020936671457a56e60106f549d176a20c52a0492363257ecd8127b491c7f08dfc8b9cabf4d51738d15cacc54f8d118eb8a82b215d45c389a3f098a987ec2a33cae63a691010a002afcb0f5989ca70c99a32a023573fbbdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c38406d35873b6d16f6b36139dbef374305000000000000007ccca2c148e93e9a5a09d426248f11bbc72a84e6664ad6cf49a1f736c64f141675cb90e821784a0d8b1adc35d309470962071980997f497afb6761a1a755404f9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbbd524319c7aef3de4f3466443b06a2a040000000000000073f04a5737aab81d10b276ffc2ebb75584aab26bca9d8fc8b5e8f0d9062abdf3d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c06249f66da2be0d5de3d306558b82ae69030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000003eaa586423bff70992906d1e03c8872a10000000000000007e54fd2c654d10b0c3eba6b30787f5bff01717f7749799e3987b4d61bcc7b11e134a99065e5f2308feab9d51cac6ac56961fd6582e80e26a21dca341c7630dce519e58e60ea49f090ba3d2d2068790f375771c71be6896eff31f336b8c7b5bc756e3b68ccc8570ef7b7802e886bd5273a2a99a6056af2891430643a04def7cac77ba38625a95d36c77f75eda3478067537466ec301775a35c0a63f1f0143773e7b8c25df83cd851103e615dcad7d55f4aa6de1c60b0c5af46283ffab1d6ca361c746e4d78fa7a13aac31b5ff5ecd64bb76b5e4a0b1f44b7e3310f4e08ea2c6884aab76c29f312e360df9e9c3926548fbd530aa1a6ab04614a4ad359e4090dbd43746476b627e16567664623190f0507bd27b3c49536388738e2b138503651d35540d337b6152fc3afb4501abd754bc1a791033d2778aaf8ae0c8ecd8ab8ce61f6ffc8f55e12c9ecc196b81662b59cfa42ef85e40409160e5a08cb0b19550ae3944254e0619bb4ec9d3f056c9fbb48d8ec7d6785fe13b00f112d621ae01222ec17c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc071c6270406f79ff1328af031532dc8e050f000000000000004110f56dbd5b9960371b0a36907242eca0f18b0c6225f424f18c981b105ace9951031c720fe44b6b719baa0d4688ebf4d759e2a55bc5fed65023abd73043611ac6f1c9f8c6fc34ff847defcfd399261270e313c83d016169dfd4a957341518bcf888284e8962de4aee2abbb053c9a06977c60e2bce3e0907aa7c5af6d148ebc848979d35170144ef139dd99c9f7787ba2328fe3f23935c481acc5c0980be4025e546dbb18bb48195626f86223d478283ae5d83979dedc55182ca669e377965fea506f0110abe62f7d9631cb326fd571f2af02dcf6dd0f3c0573aa39c184bd7f5ef2f15b4bd3a3a1d80a4ad9b269126eb9071f2655d268c7af681c2c99c210d0e5583c05e45ae7619c31245544d24186235d87f9e0e4cc9d9958a94b305dd289467e62b04a35e23b8c847171e4d2ab021fc1c942274d4c32039ae64c342a8dd7fef607a8a53c1e7f9a19a15a0f5990b8bd64e699f5717a2e9423d50f57a4987c45a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a192e958607ff2a66102291e73c817a41280e00000000000000f7e512923b82bc15eb14470cd0360dfb67f18232a6419326bf4dd67795dca8319cd345492f91dc3ed1456af79a581a1819323360f8f76fe7fb43427a49340cf90c313b78fd755b21263999f069a945c9dc0a3500eea73ed16ef0c901ffc18a024f9cd291f1263e42ec129a1c2c0878e7f97aae22848ef8c88188b030845c874d548926f862082174548dafe38f03bf80cc4d8ecdbbeab5670c5301835bbb8589e2616f2cce82cefc523eaf1001e1d7aa912a3711f67ed5e8af6d1d63fb9e18d13b5b193534cc22de480bdc5457d40718d37a3d10de84e35c0b0481996cf4f85f73ec972558bdf11fe7e25d56ca353dd396b9c9f5114b5906fce85d5b3051e94ff53571f55d294550fa1b0e32652a2ca7409f9e80d2587ce7a0e2a389af2c4d727bce60ad5ba1df7db6e287ad2f6923ea6e023ca02268a8f89df87545ae12a969b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817da0947d204ef6571d6d315a42eb1bd0190d000000000000001850bc811f97e255522222816a9db4f289493ee86afe28fa8917e03c585b84e9367107d70baf54c6ea86fb2863e392ada0aa901880bfd552c88b3b1423d07f0e606cec8a7e478c799009e1454ddba88a998c78093711f2fe385849bcfc9487fc2835f8bba20e6513ad02b397f07153f56ef1b735657e964c4a99eb5ed24afdf38b6c31d0c31539627d39b3f354e23995cb9fcb763ded9ae6e3c4367d2b44a8ea1c36c2617cd21626ebfd386cb3caa20b3e17147ff5ad800834dc5138678e41513b7e0f700ba8177ea9539a6ac27a5c99e58c81ecbfdc2831de8ad3452c14c14d6d887052c23747fa45b42781972c56d0b23d6de0860ac34f738078414f52f0df66edc23e27e7699267ba008576fc0b4c31ebf7406005b3b9c9723883f44287cb72ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff922497e6c85cce2542d691251ca881e3b0c00000000000000bffa1ea1b42697eeb765c7cc293c8ca114245268dfa5b325f2cfc7ec060d360f06f27c4fe601053d040caf6b66b4bc27d73a42676523dc574ecb3f0f17a30c3aeaa328f450b4322c4117e2552e84e0bbe1f3286d832289fefd068789d90fff1b308b7559344ba85bb3e2605e2f387661bc5bb6e5908584b3df83ae9cd8b329319fcb84c10878c8da4d52903b931ec421bbb7df0ed5743547c63031370ddcbe190d4f31c2d23786f0c33551aab52296d26be066c5e09683e22859d30d43045fa38ef3af534887d21dbd734468b6cf3f4a7d907bc3106b3b7967cb891caf541cee39124992fec6d00b4f230b85d8aaa94ea0a91ac38021af8f89c2a63c24849010a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8cc23fc19cec5a35c7ddedb63293445060b00000000000000584b48d44511a6a0546b792b2a7e31956fc655df973b8d1ed965b4738cfe4c1bc75161bd428850ca9b0980b8bfad73ec615a2a40b6c8ac858e7a21772eed9a2dbe76d981e15c5772aaa6b25940b11a5248eb7ed9fbc1084d8822ae4370dcf22ed8ea6366b4b9030411739cf83b803868198dfbe64c2bf320023648dda4906e70dfcd07f0dca09445280faf6e6bcdf0faf5a4909d4c089e84dadcb1718950c8ced922dbf6afecb20d34d5e642c111b8ac388c9c89930aa1b19960e2bc324dfe90fcc09f135f31da3606d1e522f7a9b021f4d95705f3e2728d54af109929c590fa6d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e82c53508bc8c8515ec34630889fd980e0a0000000000000059983e48368084f743a6732bd09e0b6d0f4215fb59f5498538dd582afa27bb2134e8b1476b68ad29fe4e63a2b287b08770935fc30c1ac84f7c00935b5b00c726b0e778f6745c847a7ffca3daa3abcc3d89d3814d2033cc345f4bdb02c261f43f795b1957063f0e6be43067ee1899ac62f665ff292a0eb3f4f632b788c2dac10439943d399e2b2618c29be68e078ff6c69e83b764bf167b91ff7ad58fff5882e11a294f8e6d54ede54951edb8dd277782f99ccc3b7eb1b4fb1d1f7f00b7ab5a6388ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b714b8b053eeacf44cbcf7a3dc1dc1e2f09000000000000002d5d7939afcd3c7b3bb4d4c09463138cf0a64572bff0efa067d725abed64b45d6e656964bc2b4cb0a0e1ea7bb35083787fb9ce1923dd8a63873e3a11cc70a7995ff47dc7dfabc96cfea9b20e052a864d12d70ca7dafae388d53020b22a5194af248ab2cf28dc7f3ea286049b2b579b42047e3e94e67300629063b6f4db088e6a311357de1a8bfaf10c77a5f50345c331b40bcb3002f3ea85e1a32d3f05e4d783b61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc86f7010421d31f5b31d1793ca54dba480800000000000000249efafd53aa6442eac3d82b1848f02f0a2e31428e250caf22d984b6103b13bb513fd9b2ff7dbe340421671a4ede20859b29a3c7dee0ae73a34eee82bdb8fb84506f0841425e42dc3680dec343884a7ac2aacab48886310fb6679fe58efbd65df18d1c5edc390d2cda509e191ad841857a62706e03ba8f3cbf4c2cca007a8be418f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a620e300063d1035724a40f606f4b36f1407000000000000005ee509d94fb5f534479c1a61061e7fbcfe118df9137b3f3495191401b6be4f7f88334b001397943ecad84ee03f29a99792575806bf109bd084857551ad6681ef25485267788b493e7c35cb97055fa549c279210a7562440aadf740baa3bed148b256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec5b1ba458c272d6747239c052db0c350a0600000000000000f7a8868508078fdf3b4b65563fac5e6e761e4c83d8e51823cda12db68aa48533cdb955c0cdc8109f9d59f25c6b0566a3efbcee0c2fc0c171e4d8d2006c957bf7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17b78dc30770579b70be650f06ebb6bf5705000000000000008505587024099a9b40c83b940ceb7c9d46bba67b8e0d6987db7bceedf5534658a1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af54b25a3462dc5b119f50239f83f36d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000029c6fe729068aa6d0b56db4d0074042710000000000000001f84de1b9a0684a3a2a292f3b16fca60b832eeba1f20205325a57c1e86b4f1746bacc6b526683569582283524ecd0642501fc1c9fc2ff34602cfd9fee6ef9c76ca2145a9f3e5b1db0e01606c5181a5eef10b701902f1922edfa69f85bc82cae47305bc8bd02dd16783f440ca53f0146abae43eb6a35da6f6b3b9033372591be39a8550c02e596df1264305823dd0260994470972e27fa6d0571a6d4e8a1458f31a84cb466c9d13f5c334b9282409f4f9fc06c33eaac8157b8d55ee3b462d00d3459869d95f6eae91f09d72d6dec3578adcdf69072a1301ee2dae24d31dead9752247c686fbf4495ad7ccb92caa114a9af592e677960c34267397b53f2a9220bc4119bb4b10b788c0f8dda927721839f899bbed196b263dc442ace4a8ba3b5c308b25db426761cd03c39b04138a6e192a0ef048c6641a621f4910e12f0b5da035b7201d70aac9fb232c6849b68bd135cdaeb300ae338a95e54375f3868b3cef05c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa245fc6e0f34a3ec1b570f665e52d0c6340f000000000000005be943a982f4a08eb17173fe2ba6f9293aeee82beb063a6adbd280b9655ff13196ce23ba05b53732f3ba58ee4628fb825c1b9ff187aede48282f1f80f603750ae12c02c315313ea993b67b0230fd4554fcd0fd838ea6544d1b2466114268c54cb66e6538f51fec4eeca26d45c40a6192cd69e85d99a4e7725bd07696ea41add8ce6f8ae5dc932ae492dd78b03e795380fd9cd0ce8c48c10b30c08d1ff7c03905815ff8004652afb845e592c801bf678173fb032fb42bdf63f56364d71fad88dd8ab08f3aaca4d5313647a7a40d953d0444283fd13aa541f5d41a7b1cd42f70b506f799ad4fe6a0a04de2f78cd4a69a87ad65372d1b6420419ee7cf9834265354349fc14b0ca194beaf1c57215790abd88e900965565fc16a4db1670518931071d99f014e747f9e19cae7ee5004abb04ccd951b9942d8f3fb3f9c023fd427ae903ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528eb66372173259f710c50a42096038c2d0e000000000000002e3c4a32d089814ef782f2f07cecf6548dd31792b53a1feb5501646c740a9cffc00171d504cfc0ed27b4ad6a331461f4ca1881b590e3c6f72963aea908cde60af1bb97236907bb459eacb7262399b3c7f115d5c7cdcdc18e4c3d0f2bc7890298df69b475f67c8041c84f1946ad5bc8abd126c899f88a9f3878b53cca663f0968934e970eb6e9d4a4ba73e05a64e3cab024947a0119709112976f9048c81b04d7363e0ca70f9915118331064c3b732cd6a84bb6effa66a3b569400c4005a024526ca378e025f80774d797fdd7d59639460c155af9012c454649ce72137a5da025beab07e6f1d9e82e7d742df76dc562846f413b03fbecea1c3e4de2c2a0a6557c5318c683398b24d74f3b48b26b40c9431a1c84b2f52b4120d5753af08099bfa82b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b682084e95f2cc24761c0eaee2b237d910e0d00000000000000eff7e44a9f684ae657222cc2b1c8239755556fe2f4f6cbeb0358d84ca8217c28bbf791b2075e69d6e8c16b2a599af6376c1144957ca04a5be30bd42fd25816605e8df040775f261381eb98ca2f41ef17f423cddd1f395ee1d5a1206de3bd0994e1611365127d13cbca7735563f03cbabd3648a49415e8db26a46ef54cc08e49c03b9b4608884bcb9fb1167e2de5375a787c39a1b6673522c6105b117d3a1cb259035b8f1fb4ed075e56e6fc113e2b029b185735e6305db6aed5398b22114f395e3ca666038899643bc7fefa2dedebc9be8ca8a55bc5e1640c4a7cc99d7c20deca279cdbf6c2c5cc2d8295e87724d0ad5e3e46ac1e5e607db04df7b976adb7425c6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999922190576bf7cc16599691e0bbfee51210c00000000000000eae218b3c6a73c2b90848069886c18531fe9fdd55b2679736f749842cd01990d689beb3610db447cab268c9ddc584d2b8314b1d3821250c8301c4b5b230d7479692ed2d2dfc794e3474e07655995df41abf50c56b88a7270fb2531e414ad0817a98464ac99a1ade4ce0a88e71fa12b52981a8174d46528f368ab3311d019fa563133f7f4a96e321800422912ea34c0bc393cd92baaa7659fffbf6b412084010a9bef6f833885b5e7e1b4783fe1d03dcaad25985260dac718d3d90f450941e6e1d718e4f768670824e193cc9b1544100427803730e64bbee68b6321872eb6e6d4c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2498e0e9d058fe78e3c71bb39423cdb1d320b00000000000000589cf937f5f5352c3356be03a89b6bf6db1b2ffaa037b6e17cde79078ad8de72d4d8c414f5c1345ad71ab6395a356d987f55e3cf6da36f17be336e0e48fe16d2ec7b5fdb16b46422cc0a155ea2894dd51b103f6cac97335bfdc08c880a1bfff955609ca4dc2347f4d64700a4b50acd47bf97b179680ea22e2753b8af2741b4f15a9561138d6000b0c08cdb3d8e550c7c8b56f11adb5396b2142d5e7bd4e665b71368028f802b68f72a47d0d67e2c0fbf2b441416e669b022cd605e90075f6542b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cd2c66102b20b2824b7d50a77259352700a00000000000000617485f612c2a743ac267c9f33fe5a3a286e59d2c39fdc2ae7cdbd75f0b9125f8544347609f051a3536275ac30f1eceefeef46ef1a881f7d7abd67b0624e314c01f84120b60d5ad424dd0156615c63fa3224965255606984e39022507e13b2dabb21857077aa93c67caba06b8c06b5944f4535d913d090b0ddee2721125aa7a62ffcc9a758fd41a780b3b788952325821e03c6563a80cece779516a7755c9b49a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0a117df2286f19533d4349355f2b11e4f090000000000000033450e8992a044df600ab1b37ecd784ff9e506d2c99cb767420a6e2c567d30939a8eb433b1a8c79f26c4b4fc11318b760aa6f2dd4b6ca124ded7532a9f864801c293950e10c48a2cd506f7a2c60fa16c957e3de4b3a9062bc449c73540bd5f33cb551f8f17d750546100a0fa1d6da2856490ec41a6ec639523ab66ca817550750fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dfa814858fdd1311150dc7a089ab235640800000000000000aac233aaf85a5d719ff75aae3b12b97a3b67301b1675df77a27acc138516e1c9996defda2956d66e37d79bebbe04d4421e271bda960e1e9464cf0f65761048671bb5d5e00d42af12453c47a087101cfcefc5413d41fef33820227cb5830fb6ebc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2224da3d572df77f1523a27a94de0f3fa3c0700000000000000958e41c84a638fcee29f38e9d213a026d5478ea54bead5aa80a20d713076cd55e12ea28d7584e968ec8a7c5403a834f6a76f312f5bb497a960f8d29e62a288c7e489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5ed031b5aac45966f6fc7b00a6bed727106000000000000009668579e90a0b740b03575edc134adc7be179bae60466b4f7e6984f19c5faf3b89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8906a06e75759b548aa28d63db889b5405000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000909c4b078848ec43a5844c383f61b24b100000000000000083190376b0c274b294334145b859eb79e18e7563a00b72de565e24875c5e4f4d9c9a7964d379b28ad73b64958da68314fecdb5fef6762451cc456fe7cb60db2274f28fa16a6320145649d593c3bf6f3f9143e76483a12da5767d4bbcecc4b95cc943ca43794f8ac19d881b311d961014934c1829a0273e563fe3d208c85a5429f6ea2d6f5712f0228e6828d12b00d1d430bbe27f5663a930b69428dfbae79a53749f46eb414d20e9d99cf6c7c017b73f33faf12740b911453ea36beaa2d1d329461f0da7b12cd1f1a044293060257faa7000a260890ad82318da6829707c3297f306655dc7b981f3bb22e787f2ac061cc475306f0c69aca5aa59982af371aa93c8f72a905c06f64e47432b55a6ca0fcbbda648e7fef73ef2faa1c8b1a065ce956ba291cf402f6075c4950bd2bf9276be865422c8fe724862755e3ad94d105156e36e25507f046ce21b9135c568d11f2bdac5846dd49c3a0d00a6726fba7a7ed79eb0c9694dfa8f6fb6d7103314c00e8cdd00b60ea716a31008698c5995cc3ea909b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0734995436ae287f2327c3005b5823ed360f000000000000003e9f8311fe6d750212b4409e29cf8f0bcd243c65fd193cdf2660b142eb7a22832a75f281af54510e1b1f95d4fd3ff1df4d00ab21547ce535276272578906d282a6dea111874a9dc28dfe9486dd31b5bbebc28ac25c6be3a0a0d87f05f76d8325a2b4290b379d8c0b80cbef05b74440750c8109499f78337ab9db2b014cd1600c09f1fd13d4ade841d010b0cef17cd95c7da148f2e89bcf9bf5360a3664bc0dea3d975a805a5be8d32e7a1089fba433b8baf47b0ea84d3f5db2df92e5605546e1aa6525b254bdbe0182259336beb5c79eb31e5eef493a676ab4e90d2837c67c2226587e96f8aff28ae95254bcdca7a49041ddb14cced9f66faea97e0f00039a948a358eee172135c41ae6b1da950f67784d2caa641c28d3dc6b6f8569ada6adb995ef2a497ce87f7e7dca7be8c91b73c7ae023bf4f1010ad382b36af2ab8087c80b359a7c82a1341ea6a7cc2bbd0108c4db8153b2187278e9f4334a15ee0e26f693bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19bfd7291077d4682bceb3e722ba7e750d0e00000000000000a94f6c0a3f752c386c4726a25b1d171b702122a080534427493c4bbd5bf6adf8d46c6e6fcfbdf973f5666a59e70d26376e57c26035671913c06f43e3981cf18b9981d09df1196ff2d8c8dc62ed25c6bcc71d158adfcfaecf5010006ae9556c7750d12b9f960ae0b7bfdb466573635fbb9b086e862a76a3ce1226ba74ed6db1dc5217b8ff77caf87e3f12130fd3e42378aa1b200b775ec271bf934e49316a87ae89118aaa1110da0d4b66f0454a346b6bc932007cf848123546850946f43c63b0acc0dac53ddcf0b0e3df030e06dd7a35c5a3f4f0f6a54ee5f84f63502cd25879e7cd85e0226f65ba0086541ebe437bf749e299c493ae4270084b505e634ee088c78669c842063d14fbd4bbc527b241cc30fdbfb2d4ae5f50f216a93724471fa7b20255e366baa8d9d5a29a93c9b6600d8628abe6d0866a4b1e14e0e6b12e441928870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d3fb614080f9b613d7bd9c033e580ed1d0d0000000000000073b2b7e0409b43a0c0bff8b25ae95b0d7bddece48d171491ea2ec21849d59ae24299ec433407a6ff4602b1bdd3eef6020b0213f8a4ba1270ea425986b5735588eeed9c9541dd2ad4353857c8c8e2720fcb56724b3ab4b2758fb15795bbd0cba6e5b6337e563288c0b848ab6dbaf06e52f87613229278a840bb1e6d27d8dbb6b0118c69ab0ec2c0e0a2a6a28c6604708270e7af938a0d927e3ac9fa8933d5b0afd04d1640213d7b5616db6479e9b9eaf3513365b7020f0a759a893596cb00a75a9cf659ec40f6b6c89c0ff6a020607578dadadcafd29fde6ce094f670172678a4af041cf5c0a0b983d11bd1913b240ae32854441f64eac376fb19e71fd4f46f9da0b3ca881b177b8ad3ebe5916a2d90cbe58b8b6de272b8ca2d30edb255d2fde69c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9dfa59b09c6546400b250f80419ef9c150c00000000000000aea9fe29555333a6aae4454b8f721282ae90bb86a215a443db45c46396262843bbec548fa20d5d8f8f200662532cce8eadcf84cc48b5d9c5e130cd5292e66bd50d63886904cca145c9f4e14b6990afa7dcbdc2301eb7dedb0847210c239f7f2d680a98ed19844021de5a5838f72e293fc5e8aed8e3c6de15c23ccafec5ea23a3214986010e8872623e265f5fa385f7b9f0ac789e079d14089de365e97770a036a2e376531436ccf891c01b7e4bbe43a4fec8fee5f2e4f2d7d97e3a82a7ece3d8f2180e6daf161a69c831e48780dea57aadb392f72556de110592d5d2c1db0b0728fc507beec550223324cbbf88a549365f01e58e50ef3ea1abf0cd23744a187d6ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a877a000167ccc454e283f703b5eff60700b000000000000004c6791d94cc7e7177ffc4f26ddf0e54f5e16fb4cccb976c3a8074a2be5f854ec6e53765c5177189a46a794b2d5345bde0232e191bf8b6e1c6ddfa82dd4f3fb72e1c524b006cd60bb983c5f02a2bde6cdf6b253c31b5d07598244fec4974cca3647fed15b8fdadb14fcdb99605ca7b9680707fd35addc2e9283c8c27f960b3c5520ce7bdf620fbd1c33e07fe505eb751b409a2bd91ed241594f354e26711565b79d3151c22c2227f08b65bd5b1dd16ad7c82003f3c31be1c1155f6d1c19e557f4086078088ce9ab92aebaba7c120dad1775d399f8bc909c0ac0057220b1636325cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e610e4e4498fad2099fa7ac0d065e5d500a000000000000005e83129de6d3986c65dba46767a535d72d66c96cdf2dfab59a4dbedceb9899ace082aee694037f0f1f454ece4fe688f964b10123a5ed408cf82964c6425c9f3ab93a4b13931b7abe5e01c01118a83f8aa680e4ead950dee86e32273c3bb7cd200120cf4a265288d403854dc340225052e07990aa65ee0490857e08d9ea7de3908f3911dd1713600fd70833454327958c7cab56d1e25f5e392d3614d7e6e7a98f11eed12d7f09a5c4ec94f583167abdec3c38101c4dd906608e28fbbd48d4aef80c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b9b40105f5c33255f9eb5861b9def0275090000000000000009d947f066f284bab4b1bd6b828088e5fcc2a49a7fb192a90d721d92bd861cf6870534c0d49f4f0b0ec9bc3dd88348f9ae7e104ccf83daa2952181bb09e66213bdad91be5a50aaf4e8c8e1b52cdf420aae679be94dd7650f62b4f07f7cd87148f16b6f95274abfbfa135fd4e7fdc503effd018f50fa75901fad511b41f9e2fd451bd87dfbfc0255cda8548ccda542597260538c87c312f2b5bbe1684fb2aaeb7b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcad6ba81e7edb5430e5be3d60beee0b17080000000000000039234218b0878a14f51ec299eaae9cf08a3e85642d16d7035ead3148dfe9511ba651f7684f7458fa9710bd1fc7e0a9121a6d88e7867920d0dce20521550198b2bf5a799c97cc504fe5683cb95ca1ab19fc6316adfb59bff2f394b6182a22ac44acdb6f0daf598875ab5864855042ac0fcdc8b6cd8e9671f7f21838cd5228cacb45de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6d981554b3d58b5747146e136c8da67200700000000000000c8c7fec624c4c41214a50919ced921a4bd6bb1b0dc8825b9359f0a8ffd4ba68380a000ab3e7bdb16efc2a7b9819975d54b901bdd72293c07bccfeb03de66bdc28ceb37314c904ddd1e99166cce7ffa4b76cbbabd5d53f35a06e5b0d110c3d98c678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec93fe3927923d916e8bc17d6e03e567500600000000000000064ffc4f53be05654389f6da81baf18ff5dbbab3441151d0e85a209208e2455e444190bced1461029c4013616530c923e090b2a46a409f33fca8ccde50e3a0b15879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17f3411262644fcc4053e5742754860e0905000000000000009d27b6f5b86b4e4b58900094b3829d5706be17a95038a8bc45abc45c38a0256b603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979988fbbf94036ca1351025b095fbe8e46440400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000007158796dbff4724a9fcb3b2988f5a11610000000000000001e22d73634ec0c38cd55198429f042e89eb90efc675330234118a9bfe159d918dd7e62ef53d23510115b0a61e79ad0a973e525c08add5bf6476b99fef9760c1c99e302417833fcba96a5e74adf1abdc99b52b2dc38ba1095495278c8d60fdf03af9aadcea142d9f0afeb9e5cccf8bb28a8b18e0ada77cac0aa7b7420616d435eec589ce58b2319ba38ff45177ecee1a8f9a945777badceacfac462124bb9d64ddbf11b5d5bab3bb245fb4041ee14b5a26e736ba2c0f39c241949df9a5afd5d1c23c25bcf835e71108f67626cd9480b62d5e2b0554111c3bcbe776ee7e65c8ec707fc753a8cb038dfe86fb7a4170fa5925c42088e6a86d0ac24effb9fd5fb7d2741b179da3987ec06578a5f7f898ed489188bdfb2e7339d41bd739bbc6fbc04a2eff42db9784325be123ca1596fb04dd50e0f3b8219ab0927c6ad4c385b6888cf324988251efe0159d814556f8df8f42314ca229fac69156b2e2cf6c46e6c5fae8030b1f3a16dc197d0de48f57b71cfb6343163b7596703dfe4af0ece12beed5aa2df1918906a18d8cbced6c83dafa34f8554ef4875b4871e010ff0a3648b5eb2b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0798e3df4e341e3107fb647a2b18535b4f0f0000000000000001b268675dc84353161b67fa19f2576aba288131d6e6808f3ab1e2d5fbbf6d8f33ca14494cd9afd00f89d631a771650fcbed64d40428083644b305ad4cd86b5425b7ee89900eec2925af12edc495786c8c2efb31f76d1dfbd3529c16f0eefe8301525e7f8f894303ab272ac1e729da2bf258acf979066bb586b3701372195e03c0991de3904fd125413ae5980252b9baf2606ae5ad75d92878739306130b8fce173652f4742f0d64b095d251a88a65f35895a0dce59efbf03d5a67ed612db6804b171c6d794b29b6748f7074ebdefc2054bdb1eee1e15dbc68f942584bd1a2da24a7a2d5615375abedb527e21e3b4679af5308dadb91b2b0843ff710909b2932f5dd36f843c9795c340f8be05959a7120ae3a49bd2bd20a9695cfb489d6abc8e3f0ff39fa002ad22399585eda895b2ff91d9b442ce9a3193e819c7ff2d558ad39aee49c53afbd125bfb575c07e3f75911b1b693c36cb295f39d9dc5f78b48779c750708002c77a3bd4efefbc85ceea8f9103c84ba2cf8ef4c6882519682d4184153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1915e040384570fe33e6054173783eb44d0e000000000000004abdc745d6e71b4ebb5049e08a9f5da0a8b66c50a5ac4e0c02334dcb5b1496b22a8b6b7af33ed4b1b31406cfec51375749ff565e63b30fb75325418c74202109338112bcbde750c7ebd4dd637fe1383baaea0f8b98a96a1210656e31147b26db421120a4bac46d01526a95854a00ff9ee094847bad400f7298f43935840c0baf6d892d115336fe43f08b976c549ba6c35a4cb6b20b9243f2d05216a92589c5b5933afe797b65ab4cb8b25738f05c4a2cc6a315ed437d84001cd36c59fad647b6befc847b999122a3ce27d1d68fdaab708571767878f87b76a91d9341f9eb21ec8f42ae99c3a75db5be95058c5295babe98435bd4be69237b371aed2260947716e9040c28e12c217595d3265a6d7ab7d23955a3a137fd00eaa5387c761d984dc3fde055ff4e2372d133899fca6efd4468fe910eeef4cbe3e03a49f23d530eb0827f225d572ac2d59570ca26aa633f56563f52c294b0578e69720a3187017376c266100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d3afe991dec669e24e447b74f03a951140d000000000000007a3227e79efec5d7b569bd796a0cc5d299d4f33e5eab4dd82161a5331153390bfe91a1d87a1d302872feed3b1708167410e2088196f90840e3fa402b43c7e5b59d6928f1201c2747eed9b8fbd1f24a560c406a6ea4c0a87b15eb0efd8e3af4eda7049716ca5b598cea927df72a2da93c71987c6d5f4799f758afb973cc1802bb8d161eed3c03c9875d5998e533a436cb2fcaef2c9c1690d811b0148335023fbdb74acc2338b7858f9642c42598bff91fb5959e36ccaa5a439b20ebd02b426017395561a2330cfe14fd9e1c160146695d5339bdd2064a803c6997db8cfef9276bbfcfbf98993df6674f348cb587f0bb2109553f0c18cd46b3ea0cc9ae5c454df0198f7f7883d6d42782f281b3e97fb7216da2f0e3dfc9dfcc39ca59a8993ddac2e6a4e39d04e518cf39411faaa33bdd97a22c5ecbc38d99f243db446e215edb739176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9c215ce3571516e2a01d5af2612c3ce500c00000000000000b10ce71d7c050929be67bdc5d894ed0c89afd68fb57796f74451379688e2dd62723949d4c3c6193b9cd2cc446b7f597c80d1c160b47c9d35f468280e281d116a84d28e0609bedc03be9a5a7853418d17a08b3c15bded1531ddef85e92ae768917a14973f9e71c74b154ca77c319efb24dfd3ab27e4661adc422690d057e98b48c328bf761ac1a9972a335bc9ac4ad5a8df86f7751a2b338b7ec72040e362bc7348b70d52eb56c85f6953adef7e1260e2cbdebf5532ee512932951ab99565b1d0474e5c4c47bbee822db48a52c39e563a4337915089b7102c8e0b2a09a50045b779296730ff72cd89ece64e11b9f67e4d85a78a290429686a44c98931271f04cde33ed1c50cd41e3aa45ec6ab527efd05f3adc812d77b98b3f40c0a71aa12a3fa48226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a825703a4168adba32d08f521ea07537640b00000000000000bb77094e9088da636c5f5e7328c7fea7123a8d6096d655e416ca6e6dde4d2a89d2d1e2aec87b0d8042d1eb36f039bb6c52862312f8dab981b180a0a635f9b73c38768e11ba498ffb54ebf0cebc1a9892d6a3b8b2596b69a7437948164ada5e40256e44b9e5d317d9a8cbd830b759aa55093e6acd2dd09b5065d84ed8ce23253f67cb0f19d32118b0cae6ff1ebf1efc29b6fac58e63dd0f8dff134dfcd5f5201e720846e7a04e07fcb625ad34297fee9fcb2c94b259be9b4375528ab2dd1ea8502580d2c210eb1e89238bf63b2de82b7f58f3bd36ec9a097783eb7d4a1d6c40b4f87f3fc0c6df3301a9979c46ce9249c5e58497d7bf54fa73e381cf4b6795e24f02b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e2ae66b6666436e176391f162339b83330a000000000000003f9e14a14b7bb45fca749cffd44abee7fe6fc873cc08cc187751654497d614322a0e903173f7d9eacbf2a93a49e1bb91de698d81f51961cfcb1645dcab57f73e54e3752f26dcaaf3cd301db0427d08c5a1342a067449429ec3542d48d40d06e3572aeb208a6aee25a05b63c3dfe816aef3ea856fc41a523c9405848e2a8d09887d7d1a6bae564d2b6ec765ef22c458753a233e31b63df4c7b1f27e4c32b5af8e0ef2de13e0d5ec95bd3a5c1d4bfd1130af0eae936f5bca8032c46cbfd3a19f401ba60f78861545c39b00c618a3ca058a59974ee1a1f511b76eaeb2ba50119397b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8df56f76bf447c44e4e9eb73a35dcc1009000000000000007cd55507b899959d1b4eeb89a57d5c2b129202ddbf8b7f1e8188c309589d3e8ba7baa4c8d2084295359d6640f410327807c636e45504e7c0ed718821ddd87eb895cfc9de55b9f2b10edb35000fdf9ac3a8a1037496b7c742ac3561ad90105976262679a2cee0380ac17509199c112c208f6cadc3f02ebdfcf60724a349268bd5c4035e3a7fcf7941f7b969e585e1a21c3b0baf18739176c1117fc02d07aac2633c8d329745c16aa7391cef54691100339c2cbc659519441cd0d3ff0d4dd1053175ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc27f9e43d66380047d2f7fc6373e6647308000000000000009fcb2ec1e5cf4c63133076c2b8f7557f145169039a0dafaf41f227152a85ef7fee8fa2cb94a806c44092f1c3578b9b1138e79ef3a46c6db66039eb2e718cd883a4ec677932bd5d019b813c07f9d2d596e1aaec078bd870dd9d999eee23e6a72d22e21edc71d9972cea1d231e9797a9f4d48e4408fb15c102a69dd43640f2065ce9e2ba6852fbb76d1249ed82fafd8d058bdbbfa8b099c5944403912675d94158ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f80f0507756ef0453903d770249bc44c07000000000000009bbdbd862e2f97c06694c1e413f1b8212d79192e8f438513ad9ac9276f9860184694bc1126908814d47bc5c7df6b7aece42c440c224fc6fb077c0b49418956edb87262879c355febb9391b53f7ad7907cb777263ba04314842ebfd3ca75422258b9a7e2071367f037721121ffa230b3e5dd3ebb613c4368cf6b60e801932e116a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec3b658c75a7ef71417e92d10cb683272906000000000000008541022838d0c1e79250869dd0dc9011dd244d6632a2c74b04a6d3f20a800f84fe464abfcbbb02a1d9494f2072fc881636190805c05077cc4736116080e36bc01a36f7b870fec922ae3c04949b363bed605391f356bca18200d712dda6bc815e36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17074f8b63e56ea42396e3cf00b1d1f869050000000000000084514ccc5962e7019de405f6d438ffd8fa3b1a11078e79a66887035f07c574b2140096a24bb005345aff1bbab677b1dddb7953eae3a91849c8ce06846cda880b824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998a5ef7c5bd20a2a71d24f81387580662c0400000000000000d601cfc30bb5be7130011456c56dab7f3cc011c72cec94e617af7e0f698e00ca1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2aa74ee7132e8690c3131c611f2978a510300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000000cdadb39b58d1037251e7d5abe38be621000000000000000313b23ff38f37a89f4f14b77fd05db8fcd3b3af08e3a342ba66f4d92c8d54ca1583aebeb1c87a278bd835f98607b4c4dfb4ad30088aba71f2d8186f542a69e2b0efa9d0fd5ba62cafece1a08aca0cccf252d7af4b85c6fcfebc346986a9325a0e2dc5c29b38ffbe31c428b6b3e8776e829d2b85e900da4ff048f8e83f13454ffeb5028f5f99040a7617b742640ba0759a39aab8fa0df59c3b2882c20d113f540ea20299b00e14a805febcdf0c67b46ce01035fb9e6052279d62949ae1502667f96bd40f50966f09e52840865e9f2a11a30f7abf066ff5c777f676cae817b8eef7c6cb041565d3ae13e17a44cca0068985e26ef28691e572270b11f7850a86ed1b1a021f53217fb01398968851d9b211f0994ea208233c22ab370f33e914687f1d2d0d30bf7e57046954bfd9f4beac0f603f65bc6243f19dfa203e2d8bf997949d80c6379bf298bc554265bcaadf0b4ff5128f1c383a02ff861ffabf9cb3fc940cb75cb47002f885e8689a7b58dd7eba2167e941800fa14bdf42fec201d6c57c6070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc075c90c739ba1f4e0181c5f53e0682776e0f00000000000000a4f4ea45dacbd3171e17a842f0c796e708629dc741346b64503844a738f2e7fa6e4c22e0e0e578a55547bd81104787e1cfb60addd848671d0a1c723aa429d89ca85146c88ee7b226cedaf978402316e79700b2c7ed9ab369fabcb3b6486c49c69189171828895c8ce15ce63fa1f84cac1b86e3a27ccb1b4efc8dfa98e85f8bce2a7dec5d126b004dc0fb450e9a901b56331d0fddf13302d2ee91f1e05fa7ee8853a75f1c156b73053f77549be9b23fc8a6f767f94e8be0904c713de80b33123354dba9b1983b3be38ebc84f4969a00009697f73a990f55147abdc129be6b9a54b245d5ecd3cc17f4f15f93b97453df5cf04cb63c4c71aadd3557725c81411a09ba34dc56e1e24e82bcc19198f65d790f3a2d22e2e14c8d036140894db568caddd279abf9f526bfa9548a5cc20e206bae40885a668dc0e688e0486a2acba09659b49f782459cdb55b1075ab48beaa025953b828afe5f95ff1ff5eecf778ad484b226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19d78f86158f2a6455a670f52afcab5b120e00000000000000118b2dff3b9f45d3f9c683468d0ddad600c3beb4de73cc768e2854e3eccd33218af5fa5ae2c319f2248666eca530eccfbdbf3d3cf51e4f6e5f4d7825d61e0b75ba1293f11db333f30659ae97d5fefc00567bc6a23e53f71a9968eded3f540ec43184ac4db0ea575ec611418197a59901d90bd93eb7f6a45ce6c7487245bf25ce08025fb07bc444425b0ebbf6ef4715c6e28ae39e8d6bbc50c700e4079ff6412c8c2178224bc157ee97c855ad843fcb1e36fa4fcb087f397a0ccb8c9391daeb09e143f3555b3f2968dd4c873c8d05c4b015b432f92fc703a961b8d6463b179beaf1d2fc086d43c9a97f87397ad36fe05b2a213a5f907f2ec2d0759fabed695caec3557571d9f32c4133a3343724b144f922fea24252c390ed67a325f34b621ee148057740020c5a7d6f63244f88d54b476a84835b427b660ac77b9a1fc2a3cd8bb966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d78e1c03217bb89700afbfc047d63ff1c0d000000000000000bbc1d449b85930ffb41dc010e6a111bf07c4cb84fcefcd27fe2d4b8cb8ee9c500d3720af8db862396fc1b4912309cdfced4173d0688aa4e79d65fc888c2f8a34bfb43aa7677ebace47f4484b5a03d4c3c31cefc6e3e7f5c7f01e59921b4a301e22deade30a142801374740e81aef367943d15c1cabb041bc9a7aa2c4c9326c286de8a1c61a55bdd4f617de6a583adc40775325950fdee61b173da3c011be95b891a5041b4e84792cff22dc5321b6c15545bd94bbeb455dd08fe0c8fdacdca2f99ba2420512047eb56742ef1e08d39e679cc6d46c22d120c65a55a49ffec08cbb6d6cb388513a5af8d1f76e59e73e6384b79dabf3483f9535c1747a013793bc008fbf1be7efc9ee05cec37f7045bc3328fb4db03ac962795d8da0a944969c21220b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff919e12f601bf3a43b1dfa670c9cd81c590c00000000000000c82ad38d3312c3f20fa031e2c87a089f6841fa699563d61c995e63c2e56341d3426ee7c94d1d82b2e49e45e0e1bcc3512d79488dd3929469537b997af532176c96e4037539a30d9dc290a074cb35dfadc570798bd33a46d692336a74127969b4f81222ac65b30f8d06d5a52ce6d5bf5b3808ee490f3607af258948461013b39e45674eea0082ba050b7c41dbd73ab0c31ced82f20228733b3d625fc4c85b726360ffec75cfdddad0693065327e242545fa3badc365bc027a14c17820b2766cc901ae4a28b50fae96f9dbf003e64df5f44a6ca32197adb1b6e1cd41d7368b062c47170303cc684cbaf801b704ef7c649d94816ea9a6822e9448e81415997f74c340ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a83559a12b3ddbf00e3a78280e76eb1a5d0b0000000000000085f6cded1b6fcc83b77cece12cfbf6b58ed213f45ead729533e238f91a2f6f3cbc856393dbdbfef3b1b8fa8c05942fa9341bfba3e46046ded3ef9236c34b42d5b71fe1921fe5f05360033ea477e07f9e1e2f0737334af34c820e3afe4b04879237986a4047f688322f6ea89d78dba2e282144e29ef3b39928c8b7da0edfdc8859d28cf6fe5c9ff812d2e6a1a4f3fead5fde91ae308b65b0f3b1020ec12f36c0d1a5bc0392c4ed2f883edbf717086efa6d9751c9bc7bbf49ec5088de8b3d374a21784d18a21aee14cd9210c1f0e7b72608f992f0500d0b46f4718c28c10bc0ddea1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0efb5715543cfa5070d599d26b706b20220a00000000000000563eeb61b16798374095d4e067c63204b5e22e83080fe4aab9bde2feaf3c9ba46500126bf844b145d86e4d8efc45184dc87aa8cbf386e5bc5ffacff09ab2dfae72f06c560a8c18b166a8d309e1bd15e1a53806fa25a31359397c6c2c747dea2e3521fbea76b444465027317e6f6b9a1ce9c3ee288e2e6b982da4a35d6c216a3670686d5057f621fdf07ca8cc7910ced8b768a25c559e8ac0511952ccf792a122c92082a700b92556a9630575169af24f60524922ea9527db7f94047e98388b99ceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b4720b166e2654e25cef0bd387315823d090000000000000097fe66738d5ff5259a9bf1f63806c5da84883a03dfcfa943872cabd5ef23a047efee906a35dd107cb9b49b437d93d4bd172e3a7e5afa7e972306964ca19cff2eb5e2dfa17177786d17a0df3afb4f93bfc846145e15e88ba34a62fb6e153ebffa5d3b21c747b2ddcaf41bb19adac832491dccc5557849efbc7184e723da8d5472d85e8da90fee2d70b844129886b781ad6b8e194cb5d18ab562e171df2267812947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc1843d0114c270346aef2f35860365e130800000000000000415f0a86b9d3093c5e216bf366861cbe9265453a26a3c5d9d8d9479a229d04379818e83e960bff8aa88032848d3949a0e153cce2807ec7eb44229b0b862a67845f386d3086124361ac5de8e2bd1f3b28dc7c185d0dedf95cadb3ea5c5e401c31d59b643106f735659cf1b77a9da2598c512b4bbf0158b105aa55deaace92f0be4ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6956f3b33f39ddf53f21eaa04cca0cf38070000000000000043d3301fd90396bd1f12c51853efef590093a045a62baa7f840ba433c01ae4f1d14b8e33bcb3d2fa1c734b558119038ffcb15f5372c961f82a1fc2c5cb7876904c3cedb906c783c776945edf3b60f5d46976703c24e04c1d9aa6d4ab978dfda71a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec3bba970c8e23fd478103a54b9e4ccd300600000000000000dd158d5ffe8143b18be09943af13249a449533d39a3a19bda56c571cb56d791ddcb779c8f9517a4a653b88caace4473a8ee7713b4846fa483fc9833ccb97c594d8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17c5b8bd07b5e09b4c06759d736400d84b0500000000000000b8d2ba675822e746ed263e74fdb2a6c8e9ffbd8706567b8668ebaf6b8d24fc6dd093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979985d641620657e705cf74d0e570f6e305e04000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000005ddcb00dfee5bc1fd9d15d402f6fd25d1000000000000000116b9c83597d02e2cc0483baaade72026a1f2ab746e730bd74910864866a85b4803a39851eeb195eb1d572a4c36f0e387240be54bdb6df85b3842e2f9eb579f7909051058eb97efad0c11af7f9cfc2d9ea743a3a31493cf8d11dee017518b1668a840cd3a1240f4078f7b11fb9f929ea7322f31f63357b6a7836fb38d99463b87de2570720bcd5357e14f13ecb5e0956d94075b6b59cf12563e09411bc1af9fbb9b31d2363fd316179aa363909d064c92335eb30bf5e054873251893b3083f0bdbf5c622b4f78fc0a8bd58d819ad4943bc27623be1c3a209581540a47cb17daab8fae62ce0670ddf061c47bdaf8df143c18ebb647468a00dda16a454ac7dd26d4119bb4b10b788c0f8dda927721839f899bbed196b263dc442ace4a8ba3b5c308b25db426761cd03c39b04138a6e192a0ef048c6641a621f4910e12f0b5da035b7201d70aac9fb232c6849b68bd135cdaeb300ae338a95e54375f3868b3cef05c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa22d249e166be9a0587273c12022f8f6000f0000000000000074b927a897c910c475fdda33476e08fc8a1280a7f644a92c15d78751894830b9758d34e3e90f66529218d94c6984cc90171ab950cfef06caf3ec19fa445ce6d6ac565706e2a7ed4c679bcd47c6b32da1a57f92dea47b16e626d277085c05e9f73e840aec654eac16419923ba9dcccaadfb0828ec0d3f975f029da37be775fc24bfc1bbbd4eb1e526025bd029796e3674e9953fea7cd5dfb3b83207c157b58b528cb2d8fb38db912cb896220c252257ed88c62317b62d552d3f9883b17b486393a47e44a3aa19ba4f8cbdf1c59aaa0d1f1a38c30698970be2554484749e3c3f9406f799ad4fe6a0a04de2f78cd4a69a87ad65372d1b6420419ee7cf9834265354349fc14b0ca194beaf1c57215790abd88e900965565fc16a4db1670518931071d99f014e747f9e19cae7ee5004abb04ccd951b9942d8f3fb3f9c023fd427ae903ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5287e21be1ec25ad906f278c33d49311b3d0e000000000000007afda715e321080c469e9715ac4aa4a148060512529fdc3f2ca8bc726e64ca9440213823b619f6655331e3ba02ffeb346ba0c5c84b6b10465e0e6f104c8e71cf1bfe6d0d0107d7d2ea6525a0eb82efa5ce96148a738a63ec0a14eff380d0b2a92e7dce2e738e0624c436f39af6e5070822f9b39b1113ba9051ea953b2dc92cb90895ce0d4a82b2dd713a59e8eb274146f5ce0eb9e631f528c08fc9da82bdad9fa095808dc2663db978d7747562971b20bd80b70080622ea0ea3c40a193f8d7506ca378e025f80774d797fdd7d59639460c155af9012c454649ce72137a5da025beab07e6f1d9e82e7d742df76dc562846f413b03fbecea1c3e4de2c2a0a6557c5318c683398b24d74f3b48b26b40c9431a1c84b2f52b4120d5753af08099bfa82b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68fb07245038e66c6bd0f7cc188880c0040d00000000000000a81ca0097f404c81ff414c4dee54cd84b01212852dce50a2569c3e4bcfaf4c6cd54b9669610ffbcf91013b775841cf15f430e63532407a89e088f82656539d1faf04b21286271c7f8fa7e75c3cb155a6165c27d72dfa6942cddc5ee9abadae79693b1e27dc8a827747cfe878f9283b0c488b1fa89a4f8989b4a8ab05e6f86cff620a072463821532c7b2bf3af4e87a0230db88f20f5cc39b2507dc57ad9fb65a9035b8f1fb4ed075e56e6fc113e2b029b185735e6305db6aed5398b22114f395e3ca666038899643bc7fefa2dedebc9be8ca8a55bc5e1640c4a7cc99d7c20deca279cdbf6c2c5cc2d8295e87724d0ad5e3e46ac1e5e607db04df7b976adb7425c6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999a9ba20296d959850048e5964bb438c2d0c00000000000000e852908b86bd31632d1b4f94492a7b4b934ae9be0b8c3b466953902718f64418ecb7f7e28b3a40a87acc4fa70f4604a8cfc712de8fa247b32de0fddaa344e42305c58568527de714ed4404a68c01cb3a942474afcc708eb1d95c38f9eefcfb70a29ad33470f976db161423ac4275452bca1bf7e5f8c8a2fff503d00b4c0c56e93133f7f4a96e321800422912ea34c0bc393cd92baaa7659fffbf6b412084010a9bef6f833885b5e7e1b4783fe1d03dcaad25985260dac718d3d90f450941e6e1d718e4f768670824e193cc9b1544100427803730e64bbee68b6321872eb6e6d4c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24996de6f61e5c4336a4f97f458990f2a2c0b0000000000000054eb2356cbb2bd67be1083caea250b5c27d6682a3cc1009fba18a03ea6e4f81d1296eb6529f13a320c97702cb6cf41bfaeac4bbdcc9f7cd50869671b3ccc698a9d8a0b48504755bcdae77dd74078eee29e89a7b6efb25bd0fba0f11e94298e3055609ca4dc2347f4d64700a4b50acd47bf97b179680ea22e2753b8af2741b4f15a9561138d6000b0c08cdb3d8e550c7c8b56f11adb5396b2142d5e7bd4e665b71368028f802b68f72a47d0d67e2c0fbf2b441416e669b022cd605e90075f6542b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c4be3f6419fb9a4734838c53004548d310a000000000000002cd70dc2f8656492e1aacc6b41186880d343f194143f6694a932fbf9b17631c09cf7b40f3f83d91132886be121784b4d05c9c94cd7733f9822c33c8f898a8bea01f84120b60d5ad424dd0156615c63fa3224965255606984e39022507e13b2dabb21857077aa93c67caba06b8c06b5944f4535d913d090b0ddee2721125aa7a62ffcc9a758fd41a780b3b788952325821e03c6563a80cece779516a7755c9b49a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0c9e518423397bd2e08b0452691b9f3430900000000000000e92c61e4df4bd5e4da1f6c04d0c8a6922820c347ae7270d4dcf4907e953ae40f9a8eb433b1a8c79f26c4b4fc11318b760aa6f2dd4b6ca124ded7532a9f864801c293950e10c48a2cd506f7a2c60fa16c957e3de4b3a9062bc449c73540bd5f33cb551f8f17d750546100a0fa1d6da2856490ec41a6ec639523ab66ca817550750fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d5baff524c840ab36a7a82244449f1e050800000000000000aac233aaf85a5d719ff75aae3b12b97a3b67301b1675df77a27acc138516e1c9996defda2956d66e37d79bebbe04d4421e271bda960e1e9464cf0f65761048671bb5d5e00d42af12453c47a087101cfcefc5413d41fef33820227cb5830fb6ebc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2224da3d572df77f1523a27a94de0f3fa3c0700000000000000958e41c84a638fcee29f38e9d213a026d5478ea54bead5aa80a20d713076cd55e12ea28d7584e968ec8a7c5403a834f6a76f312f5bb497a960f8d29e62a288c7e489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5ed031b5aac45966f6fc7b00a6bed727106000000000000009668579e90a0b740b03575edc134adc7be179bae60466b4f7e6984f19c5faf3b89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8906a06e75759b548aa28d63db889b5405000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000e4cdd90ed142864980194a774c0b696510000000000000007490608249510fe09297029fbdc8eb1d351ab6bec884b0f08169e593ac37ef58ea7c9bcfcdc2eac3fa52f0cd64636f342f5ae27ae2983be49779f9fb74757d9facce15d4b3e33c68aa72f37eb6cb02e6ecb9887dafedb1837fbfd0c4204e415b69bef051b201b2b5acd1aa1c35f7009a9af5cb893baa4bc852d27d3fda9a1092f8597dd15b852611e5cc8d59838fb3e58bd2c306d8bd7235984c98a3778d7d4173fa9709590b150ec2475bf14305d27e3cd00b011fcd46c81691f64ae06800e54f2524d0cd837232a0d179f26ed71995240b95e53325ac0fcc362cc82d30b6f2f750118d6bf9bf5bd4ee5d7ffb77e184b9b0844cd389cfe58fd2d4d59e4f52dded6dd86f1ab6b9939b057372fed68c7370d82da8ea220800edc21c755a9788108804e0a9daada17465268f87dfeb42e75f8cfdb639ef827942468d433ba4d779e36e25507f046ce21b9135c568d11f2bdac5846dd49c3a0d00a6726fba7a7ed79eb0c9694dfa8f6fb6d7103314c00e8cdd00b60ea716a31008698c5995cc3ea909b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07e241ca2f72b86805a861e114b4fa18160f00000000000000a47ec8558f9a868c24dc3bfe6e71e43ad4f9a7187f693de3ab1bbd937d71d837dcc6a5c3b6a7f849a76388d59795e207790eaf04410e33383d572eab1d06f65697bc5f947ecea93f107bc79eefa78dfb9e4378a6e0c90e9519a8f0c25697b2c41c334e77887d11059388f878144ad62ad5a4cd7ff4c6f14227ab980ce553934ed63ef509fb5771d773611d79742c2cef1ff097c1ec6e591bc3fe24fa121c30f55c4195e4a14dba74c7408579f8133095df67bdcce264759e2ff96ac7e522168746ca1d8bb27e4653743c5161b8c68bce7f252fa61b55af2e31bfdf7418655c0467894dc51d07fdc9daccb230cb33ef5ef560b9f3d1b36f90c17cb6a6c7dd64cc3be419449a9df2c868ac2c5ee39fb971d536552e2a947bf7bd323c6ed0d22ccb95ef2a497ce87f7e7dca7be8c91b73c7ae023bf4f1010ad382b36af2ab8087c80b359a7c82a1341ea6a7cc2bbd0108c4db8153b2187278e9f4334a15ee0e26f693bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a197fe4cf5abf517f3a29856360c493b05c0e00000000000000df3c442bac57ad63b6e7f5262a29372457d1b792f784489ee4391d88c4ce61014c3b78fdebccf651fda2f8a9873254477b748e9041fc0817ca5e127c3c6052f0b947d2bf901f92542caca25d2eebbd8e6d47d503f6247938d96da6bc33dfacb2ab219039aa60a3a8649c4cc23e4d108e432f4feac610051d9535df8c1ffc7ae4bf2cf92a04f348de70a8702e5779a1203ea8eecfcace74e542cfaf2afe0d5d49322e9a24400003c5f06a95385c7a5c203ecb9fc3cac51304ac31ff28c3940a36c9144f3ecf75bd2a8239ecc4b0b599ca7da9de729acaf915bd0c587cee4bb63554769ed63ef7f95adb7f17e1054b13ba51ac164121970dc7c643f3822794c054c78669c842063d14fbd4bbc527b241cc30fdbfb2d4ae5f50f216a93724471fa7b20255e366baa8d9d5a29a93c9b6600d8628abe6d0866a4b1e14e0e6b12e441928870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d6150df73f42caa3734e1a12dc52fd4310d000000000000009f42027ed9abef29a897a8cfa0d38eed995592e54b78da2aa27c7f947e9c4d38d2775ca3965e61e6faddee995aac1b462e2eff42db85bed886f90529ce75512cc8b28e8d5703a73dda67e32e62d61c3c0cd04702c1877c01896659e1749cc59594d5edc95adbcda8ccb90173611281cf23d6208adb875b6a2476fb52837917db1e08161033f6f296c7c1dfacf169c73e3ae7c6008efac6aadaf6f39858204b8159a012ddbad763f71e923cd2467f80515d94c98d0f9c6dc162b842f6bceae5480eb271a0983a9041c6f563666dea1aeab906a8c96d96b2bc3893136a0f9e4910af041cf5c0a0b983d11bd1913b240ae32854441f64eac376fb19e71fd4f46f9da0b3ca881b177b8ad3ebe5916a2d90cbe58b8b6de272b8ca2d30edb255d2fde69c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff95b61c8489f134f5c9e2f8146d471cc600c000000000000008cfff2f7ffc951bf5d11614562c7f218d7b1e852a34b2ab5e4f75ddb8e3b214d3985a7eb683f652133c972a230d7889ef0398b03f5d2239c864526a41c3209bb78021faaa69144c0aad30dd02a1aab06b7f16fdaaa1d68b485fb30b7da7f7584c624832c17094d825b85be8ff6e6ffd08a5581681769742da75928276f93af9d54f93e2df2743541023175db0d97414aab2862e56fccf99e2763e3030b38956942f31a21eea0ea9ba253f5c1e76495876f12b16278a7b2ed99db7281e0a3be63f2180e6daf161a69c831e48780dea57aadb392f72556de110592d5d2c1db0b0728fc507beec550223324cbbf88a549365f01e58e50ef3ea1abf0cd23744a187d6ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8394d755ac7d86952ed928632a70be2560b00000000000000a60b1d2c2b00b4073378a4e37362a11e2f8785f0a93baace01402c2a909fce19dcf807c486c61aa4634f8786ede5aa6ed5d4de77df3a8c553e31375f445210f48a2aafb33284b9972492290e83cbb1e958c1f427e33afa9b6adadd3d3feb281a122fab18ea164e7a6177d66f441fb67b9159a65063e6344e7c3f9346fadda371d42d90024f26552b0e2387cce54f59e981fc9fb34eaf3c64bbd6524283b936579d3151c22c2227f08b65bd5b1dd16ad7c82003f3c31be1c1155f6d1c19e557f4086078088ce9ab92aebaba7c120dad1775d399f8bc909c0ac0057220b1636325cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e6e0b9b39e05dcb0c10f6524b8efee4100a00000000000000a115f5811e34a0ec44b9d729376b9bd18c0a4e6c01e5694529b63f150c65a3a04a9811fafba6a676732b526233e3ac4432fccdfe368899ace1a6f31f2f7b5ddc586a606e145b34161aab63221e124a69d63a9e5b822d9964d984afbf6117be9b8904968a9c23f1a1e088e22cf483bd9fb340e3b923e7981c9059ffab0a8023d68f3911dd1713600fd70833454327958c7cab56d1e25f5e392d3614d7e6e7a98f11eed12d7f09a5c4ec94f583167abdec3c38101c4dd906608e28fbbd48d4aef80c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bf492b344c5956d02037a10555cd586650900000000000000c14b5c8b03f58432cf2336468356a520015b421935e924791db0b29eb8d1401a20e650a8bedb4ae50e4fdfd77de86f9189c007d87dec28117577b8b591b371094e3d19c61c732f548103e81e316426bf7fc43ac6a29d593835e182a0e0a30370f16b6f95274abfbfa135fd4e7fdc503effd018f50fa75901fad511b41f9e2fd451bd87dfbfc0255cda8548ccda542597260538c87c312f2b5bbe1684fb2aaeb7b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcd88f9544cb3d7e6ca3851f0763dab1550800000000000000b133a6da273ac42b82dbb2f678437d13db042349aa8df9b1b00a3a38ed1f3d335bda6a31b27e77239f8bcc31e45431efce5cf7700e73bd1ec1e6c607f4ef930dbf5a799c97cc504fe5683cb95ca1ab19fc6316adfb59bff2f394b6182a22ac44acdb6f0daf598875ab5864855042ac0fcdc8b6cd8e9671f7f21838cd5228cacb45de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a68518061da39e3d0f02be485fa02576610700000000000000561b2faba7301cfdc0b6578954cccdf88bf83357178d5435ddbac6918a465a4f80a000ab3e7bdb16efc2a7b9819975d54b901bdd72293c07bccfeb03de66bdc28ceb37314c904ddd1e99166cce7ffa4b76cbbabd5d53f35a06e5b0d110c3d98c678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecd5a0a508f668d26d7b192e5ad9a064370600000000000000064ffc4f53be05654389f6da81baf18ff5dbbab3441151d0e85a209208e2455e444190bced1461029c4013616530c923e090b2a46a409f33fca8ccde50e3a0b15879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17f3411262644fcc4053e5742754860e0905000000000000009d27b6f5b86b4e4b58900094b3829d5706be17a95038a8bc45abc45c38a0256b603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979988fbbf94036ca1351025b095fbe8e46440400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000006a496f1950dc0921f53fe141815c1a1e1000000000000000f8751d545c3ee28229304a711a5050cf726e2bf13f073c138bda33009aba380869167a96d787caafe406b1c7394520160198a2b37de0ff2493bc6157de9babdf31086502ec1ca1afa57615592835992d31c0cfee3731034245aae6a3754a4d7860ab98f05bf75115cc203e7446626b50f303d285fe8c11d71074f9426b191df46aafd134d4e402e2ae999fc6e20233037757457c6c343b59799ff80eb03b8bcb7aadadffde4b7a56cb184c73c5d57212d9e8cb7bd992bec5e0161c8465160aafac27051408bab5f7cf38f4899e0086636a2d52b60dfe8c752ef963a51945548abe41b353df6971ec2687ebcfd660f4348d64f19097f0c4b06539858411e79e40645a47f463c28ad0fade5c18dff1e92a47f1907464f5c7c9b595017b2305a4cfcdee57fed8ebae1e9c24c22b3d640884bd74962cbc656cb04d21ec85a6c6478c0f55073509c28c50d42e36a01faad27287683188c4d9ac6526502e41146e445be377ef850b02fb9ff26e29daaeb2c530c70b6a05a7a39dc03547e69e4edbc797070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07b408d81416e7d611a8b8bc67d509e7200f00000000000000fb1ce1e5e4274a8a11b171ea5be66598d650c0d035426dc45769fd10aaa569f7ad5b55205a2a62496c4a2ad1fb1b630d44d3dd754f8f407486c90a212e05ea15a9cade5edbd645505d7c3591a123a51cd7e158a2853a5cb2b5addabdb6d0c0e2aa5b17ff7c38b7fef3fbce3332aab80f6fc6d35020a4cee24d49a0997a178a73b00ddba78e475899f58cc1449ffbe3f99bfaa1ca92150c0a795accbdd3f4859dcbfe53f092a6658d6215c287434eaee834e2530cad5a54bf37a8ce12753879eebfe67d4520976692101af7e887026dbeddbaef94eeeb94015f02e34e52fe59e96c4360ba7a6db4d855e442e5ee0d81a7e09687894771a4319f72cd976db3a353bf1958ed55f455346a8d1b08b5cf8db66df486debce72a27cfa9295ddb1d563687d84520ea3633df597bd938dd2a053fe7d7db879dc2d70d26ad437b799ac496810cd32f4d8b00d78077472b64acc0dd7eb87ce845e07d179613a7c66a0c6053226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a198f6c205863c6ba472e6cda530bc827480e00000000000000e66bffdf411835802517218b632619fc43574abf8b5bc8a65690401be4e27bb2b356348778b85016a90d581ef6b865368427fd8ef082cf33da1084946bf7e75b3b0ce2c54edf852fb07c1b4faf545e0c4dbf0be6c146658b86c957e1fb7d9c1709713b292b546ec4b2cf54072d6e6d3d5d743d6c274b734931345b6afce8a6e601fd15aa6c0aac11a4af458ea6c41966bda9d938a35ca5c6fdeed6425812e180e06756711c326d53c0b7354bfd5eb69ff9701ea9fc0a0a9b6c6e48f35fa8bc8ddf7108d455ab0191e0ea92d06132ea5ff7961d48f3e4bd0ccce07553682bf9c936e5f37dc89087adbac0c13986e0d1577d5b195123445ea7f827b031050edbf40f4e6bab8991f4fdbd9008522e698b3c8f588fbed78ca1fcf1c40ce05324301d2ce0429990e26198ac602b20767144eebf432dad48a25fd0201e9993566ae9f7b966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817deacb537572dce32a31c3fb2927ab0a3b0d000000000000000fd6f581954cb4173528a5330ea79d383ed2499a69e564b18fb4dc05f551d5089290bd4f9ef67233cf30a64d26dd5dd55c89fb19ac43300535584d9f294e645a4d797858d4b4dc09be5d4fca9e34a6a745c1b7186302d4af029ad44a33d1e1dfb470adbbda5af9837d8c761204849f928394a62435bc5362a05802c455cbea1598e15b6bbd6c2ded113de25edd106f970fa7086df6bd4f221693132b035ca084b59ff1b2c1843a3c268e9c20e6c12e99fbaddb65427ade4ec154d08d2437e6f712da6f6c519f086f16b2f1558310ee1be90a6580c67cd179949d1aaa775a9c6a4b922794d4faf872924974f7faa26caa999f6cf0fc0ec5e29167ed4f12181d5871bbe442690f57190852e723d8788b6a1ae4058cd5271af3cf3f88797f2d680820b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff99f89b82046519f311b0b3671c01370690c000000000000007e95b8cfbcb9abff95944b0700953d93980105f13504d99f1bff2cef5342844d765dd8381fb0d7862ab7e5da0090bfed39d16609388527a9a9790308b2549ed8289d54f10a8e5004b1113fcec5858ec190fe766db5ab7b71958b9ddad5827c0a3ea125d0cacade103547ba7fdd38514c9158107e45317acf9eb6271a1f9c11a9fbb2a111737e96eb089ba49ec995164b160f43343b719a358019366ed30cfb6a7ea144c8eee2df756f686cdd728a31c598a0fb953121ce8453ccf9b984f6be84446a02a23fdcbf8b234141471e9feaed0dc9fdee8171403c1fe939bdbf0620bbbd36e764ce400789381fa03976664a577758586a679a9c606bf76f18ba475a9540ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a86e56d34957447123b1ffc872349825030b0000000000000003de20a9bac9d08c7b9a199e20d6f3bf03025feaa94d2314fd941443f673134803b0180032042de7e3d3913157bfd7785d61e876790c2d92365b38bec0baf21fdc8b7484e07dcf7ab2d34a670f9e7565f9ea9030a19e4517ad513449d27674d7adace51c58e994958a026f02085b340f355212327817e08fa75f36cbb01bac4b42e9b26a47554c62d517899b7fdf6ae772d4094291443c99691617679f5c0b9365f8cab1dc2dfacfb6e3100d4b51d4cdb3a82ff6e8aeb5f08290ccb24235d9bea82ce8a62eb8e0f89a657b0048b4b10ba6c9ea2c453e338d1f5c8aebfd82f3f7a1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e6383d064d09b4c234cfaaf05301295190a00000000000000d60b4ada2a5fd1b1e66c10e4314b4b259dcb725a78d5aea9f53a456859c37a91ba215abc35e19de6e4ba5d34066a65fe9db55519d3f1012f4233c955a6e04e29f7628cdb6e250f0f444b973d0c4abb0ed3ce501a83288ffc305999b49ee20c0c6236bc31749d47d95937005774de89fab9c2063cf962bf257ab580162501a5b75bb434e6222aee6eaf14788912eda8ac42249e22780611f334046c17097bdc3884ea67d320d70d8208a365f14f2f4c41691fe49b7a2368b8c0bc9c67aedb2eedceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b7a53c305d530592f308d2a5955542f1709000000000000003fa36466599f71a3325bda0db791fcbac60847e54609f63c6c7df535bb6671e56b7bed4f570c179153bf6e365fcbaff2dbbbf8a61c790614721e82475f7dd6239147279ade35a72fb71e4a984390e0af17200f0accc134e1b33a6a100c350acac86e11ed53c3b7de0e2a8826f0a569cca9106099e3710f18358e8e1c289cb79613428ce26ac20a017fe64813c7517860c8d2fa15e67a880007f2d69313c7636947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc8bc44e2a7690c93c8531216b3411610f0800000000000000bcb4255c0fca8502e3acc6d4a724886ce8228f623411941e52c47147a02f88698357d11f0b09bba43bc61621227f07244bcb382911194018a46c712d407f71bda16103410d288a0afa7b6567aac49f9f2407f4879af01ccc9062a81dd2ba560c920ea25ee973e3eaed3a7c55e4ed854d7d18a6becf42dadd21ee253ceea76dc74ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f4852568e2a2e1144fb3432223c6b501070000000000000075c1f777b3a12c49bd636304472d2f3cdca783877fcbe2382bc56b76af0aa02f0d9ac83ac9dd3b212ea8d14c3ab8ae3911d2c18fccaf44bc0247e49c5fe801eea81baf0f4fca1ebef10e94ef23773ac4ecaecc3c10b55a12a18cc7f0950e996a1a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecd9d0ec0576670941054fbc6e48c32872060000000000000003f784ff6429ad49e737ea40c5a75fd2e2ac3e05aeb127c3b7f2469024a1635464fedb9d858182898e3c62797838a9a8cc218cfff939a30940a379e66dd8defad8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1739d51b2171be936318eebc2ec9d6dc0f0500000000000000bf14f3d9afd15f51fcf3fa70fee281d5e377c4bafca9015e26e98e3b2ed298ced093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979987ea6252d77781a266600d04bc2f1d93704000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000006e0f6b33de5902684119cd1210ddfb6c100000000000000081a3c7354dbada81448957515d60218cb4141aa6d94225a9a725306c3fc56380c75f2b77ef6a2ed3b19ed719a8715f4bed675345ec3ca177f479fef9eb826340da1ff93330802553f27d096415562f7901ba89cd919ebcb6376b2dd2a28ad2b1c9e83ce6c7fd99a921e54171e503fa1a6b76d4d3b94e5b77d13779f63166f3b51d9efbd49896c661403dd59d40d8f769292e58b29621fddc4fadf4ac3963fe955086da5466732a228d966b7b84e65440b30a7148d234150208549ca8ad1f1f863020bcbf89cd22ccb5fcc8f460eed85b87e9f764c154d4eb14b45f1d037103f26f805da4ff8e1e677d67167a25eb51cdab4429612d543f10415f6091cb5db145bef89d0b5cfa31b7d31213292f8729e556edd81ed46ce9f7080d69ae488f2950a7fc0d8032b629ee16705aa207d4286acfb3357421449f26f1396ba526064eb2c9bcddb6bc4176761e4f14f6e300f64ee447d3b1fca68432b4be4feaad5be951b65c67a6de883a72320360d97d176701e05469e0374d77118d2d4b8ba46175c649e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07df12285816841c50c922b9605987f0510f00000000000000d623b670f5f51429a5a4a30b8e84dd4ed426d9cc359739427846ba9ba897212c11c928ae0f3ff30082ed38b0b45d778c2a84255403b465a6b1054d039cf721625cdc10da7fafb3a074598dabbf381f01fede41de90acb613b767b1a422bc7b45a6cb36f04cd819e0f2a33a1287d23af21cb0beed38f8d2c741345328f22d64c21b20fae557fae964803d603908752c7e70004223980abf318f02e5bd2d93dac2654d4435a446b9b573dec1c294f6d7e7dc5d57afc55d40c0c8356367158487d3097405770257042678819cfa0849df10dc2501e382c15c6b0c6037a59d27af3586048286009ea33dc74a06cb58ffe29393204b2b0a3f59a866159b748c887f4c76e3efe4329549c3cd4070c2889331daeae9078b5616fa18d2e7e64bf340424fe41082059c64bd6355d11811db8873622717095bb491a034e39851c56b8ca79308c2ae601910ea3b0718b39017639d604d681a4783382f9bb6a606d332f33d33c5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a195da73a292cfc533fe232b735f2bfa2170e00000000000000e4f5d70d94f90208e9394e5133d425acb00124743d4866e84a7eec040af50a5fea479d1d6e6abbaf101fae0cc2741aae2a813875fd28916f4dd52134883542bf4fbcfc91668dd394ae6ed892804f2798eb8514ec5ce24427817e1dfd80cfee5a9ca733f866d6d80bc3652c6430b78a2387de2f64f57133789eba41e9e6a107c97287e55082470bc8e9cbafb0b1e1abdb718b7055af3df2e525f73846bcb5d590878d4ab6bbed2f0ee7af736af04977b240ee2431c54aac1c9826e57df2c3656b18604461f0d0b73035eedbe1692826184f321a6e8ba77b09c535e5e06c72461de9d4113d6b3a60f16d25c096e5c4c96fed989381a03f768b803c3e0b3e208fb9d422594a5983910a986da7a76662075ee5cfc2b5a2986729c743c286174fbd97f952cff82aa40431271b5f5709edb59b8b817db9c3a425558f863da2c1b7c9ab4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dd13ce94be2cfcd34a2bebf37d1d5c7540d00000000000000bb7ea0f0800acab617298b76481fbd7a1a798b02bb90c5ac93cd479cd1696296cbff8b3230eb7b37096862fd8122cce72f64ac8429a5039762f0ed788bd86d0c66624628b3dcffc0adeae866acfb95596755a955f9738e2a49f7c21a45be871292e9574fe8813cd13fae013c14b687698ab3988579df2f114d5534a86750938c094b22f15bc65da8ce2dd447173dda4b3f0cbdeb1d3c60eca13a58ca7d257f4abd4bfdff63760a20d4e2803bc2b81dcb3c53afb21ad35ae9e495b077b26420ec240be1d7ef847fedcb356a17d31ccdd87af83f11f300d7741852de5bde111ff8c7389ccd027be97c9f6c021f63bc221aa7b7521d5c561c02522ff428af01933c96863e54a8a247872ba2d2f8a3877f913cf7553a297eb39f6c2dec7599aa2c70001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9c3e2934f3fb8b042936c9c45e419bd0a0c000000000000001a3bc1dc834aef7cccd8b0e40e12ed437f0d2082bdc26855afe89c23d7b83691b1f3260d10bd1245ebba80cfe36582c5135458572b0717b0fffe8bbcfd8d3fa25048cbb59e9a8df037ab7f17528cdea37f99737cd359cfe4f67d7fec797e632043790aecf3531bae552d9d7371cff400c6b635e3be3db7fd04845e573b531fb9f447e1d9e47618ed58eb2e45fe42906a6d1e1e4019248f72002990f64a546824da8f92fbc5da11fa60d29e90a67a97c881a59c19d6d6c0f9f860cf3d9b7c46cb2b8513e62d8fa3bc589a5f8690037faec1820a3169392dd8e35c68368ca9fb7f2b791fbf2194a35afb6f074cd3a5a40406b60f116ec1763f10b506f4d731ee8396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a804404d426b01d259723f581446d0095c0b00000000000000da757954b94139d89ecc4e6ab978ead5e572b6f1b45fdcf9fb1ce4c86e1abe6f3ed8aa7f0e926e494bab173f0bd0ab4305562b69ff56aba71103e3de0690852a0bf12c8dc8d7fee454f3d43111f282905bbe49c8164129124e2a9544191b334511133b706118049eb21414df186b97bc4be65bf630ff7f06f27e2602974ec2f980e751802ad3c32d64517e32c068db4ab28d26896f69d0f7ebc1c684c1c5cf85736e9e2ccb563edc80ca97ed1f310ae0744b769ed671c833fbb87731ee9b22fcfb44227a9ed3934a7b8d30ba039e6cc0bcc078c982b77dc247cf27e0fb8cb9e7da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e35e7051b5b7ce22a33a8ad069131a7340a00000000000000af8179045871caa472f6ff18d59bb897f31b1abf5e7c87d13f2591a3d5f40da54c0c13e79c491515b822f2935f255e0d92561ac93b6ddc13a3df423f77ed5b3efc1d0810f1ad5e59072d57b54c606eaab2c9f23f2c895bc7fc020934ffc197dd36c4f2a60bdeb4e276fdb31d682bb644631d3c7b3441db649374be61bd8fa42c0be7cf6ebf33f5be4af98a5f66deb91c08357920b02d40865356c9a77818a73bb79394b390709200944e833ee4eaa05e8150e361cbf28b8cdaf6873856e753f2b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bded6af5dea04252b11d8c95f57a7d56b0900000000000000ff31f89ad6c178ce7c2b603c33a2742d03310cf237c4d8e8e5763ec5598002e6ec9a0fae0c295165efa4d0cc92ecbc7ab020f0ec295f4befd08dfa702b7cf694c0dea2860c8a136ffabc1fd6f8391c9a4fd498b029f97fe47231666a50b7a9101dd1cccf3d2197385af3c9b646de580e2aae140d526f21fd73326c26012578b0fd4d46167bb82308050dda3a6fbab0b6278a11e63bbf52d612b81ad228162f42579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcdaf0fe5e802b994341a992137e265c2b08000000000000008ac675bfb3da624e046e22f1b47f314f31ed9f584268d2083ac81e85f27f9901ac6fcb8921f6371d68b0908bc3fb318f752855ceaf8f7b739272c2bd4b3d501cb7f344ba48457e838ad43dd6676ba1788a6d906213c0a116f4a1b15b1069c46db232271a5dbeed672ebbf8c62bf9fc3491a8174f6ff4394b515b187612fa1a9ddd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a662d8296d821caf3862c1b71ff2ea7d410700000000000000499d47b7d1d482eb62eaad40ee4915d6a2cfffa1d333e1875f7e12e502413c657b8368cc8c14d4dc57cabeea43f658767c681c18b0b58da6243bfb01241ccea45c6ceb1983f07b093079e80678a0b57fdfe6ccb5c232525e0f58ffed512a83c99f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec34592c39219f9e0c640b166812b43c620600000000000000de743b780c254df1675ad1f5e508dbd358d62fedd7c580403770228fadd684b9814521d9a000f41b12b4450875a802957e5169bf5bf279f13d73ca27cb4b3bd3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c177266b53602e4f31234c659415040eb080500000000000000a16b71ade2e8c83f09970d13212a25d10b5437ee158849cb3524ed8126e83c90bc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998cfdce316d4edf8661be1fa428b188b0d040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000025faa5037c84012da639346c5f1445451000000000000000a4dc86fea2145d3337b88b403bcc898ca8766f9ea62829dc2c4a586746db906676bd93184b9e4b3c61d8c5448fad7d9b7143e30e911598f3f9be93082f1b202fe15c040f07b2efcdac2136c4d8884695f6f7350c211cb159b0b153e714a7d2353096b7b958d3f4fd52142aa0b436d94dec716e8f2fe5fb3e63eb6814f9136320ce982bf240c60f7f489a7f2211b347a7eb320a8a4074e8f0fde8794fb6e673b32db6db9bb7c373ed3481f43279228805a8b083faef2dea295b52dd7c119fb43dff905a7b30dc3f24d7373daf17095631c2afdf6f379861e5c56331bfdfe9590709ac282a230d2a15ad81a5cc49d4702f9dcb794ffbc7108140c0be0fbcf682953f887cc6a4978d32637474c35c86a2110c67f2c03d7fa424602ebc80c5f5490db8b755103d397cd52d2c808b9cf4b51a7b6ab185090aa5ec06658897c9a5abb5f14814c01993e186747ffa7b7635aeadb135b7ab0ea639d3c7d5d5b687d4a20aa7b01744a608bbd789a30207f474e70acbf2b2bca4fc4a182f3948b73036200aa2df1918906a18d8cbced6c83dafa34f8554ef4875b4871e010ff0a3648b5eb2b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0732b6830c5732325b7b694a204a8214510f00000000000000dabbefac486bd4a4284d45f1a150c73f7dcd27e5dbb10966adbee02441a45af1ed2d27a35765fbcf258a779a01126f8b41c9c9a0dc9a434e120b608f85c52099a9dbc1d9b58e5474fd2907cf2ad07a92f0f8a9a0dac1ca51225956a08d4ded8745932e805568a4f09f3fa1df90b9ad44f9c6c98453c9f0298522426f4f80cd69bcc48c3aab264066ab506d9a39e214c659f28b5c3985297de63611d6b5f96b531714be534aa5899d78e01352a609f7339b9aa6e9b979391520dfa1164b7ef89008a1d39b5a042bf232c96f50538364db4645c830ca1a7b1b7dbdd1fbd625716ef9de1f70c00eb631ad6358b560e5294b1a75947dbc3037e8471129cd85b21d901e0271d28e020ac735d1779589bd4afa2682992cb17b71cdd195da0b35614a6e73c9e1dae05c90d5e8481d8b4c7bbe1fb4ad9ba74bffd18b6c125f503dece34eb8fc7da5b43417cc4417e91d67bbacd377e9002f00c816bd8e809f5eb01ef391c750708002c77a3bd4efefbc85ceea8f9103c84ba2cf8ef4c6882519682d4184153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19b5ecfb39984e890e2554b8508febb3270e00000000000000cf100f2b93a6a8a9c31e3b0231adf50a4ee07eff7d41eb9f080c09d6a5255dd6fcae206fabdbbb56c6892f76d4c0268e7d2cae092e31ed03557a36bbae31a3e143c9b4cc831d5ffb11f352c8797564c61b4a5df8be0b1ce4f6aa02bda704b0d20ce8953239fee5bac39db9bb2d84e8bac060e2fdb1770cb8c8707cb0a7a92e8203cfb1a4394583df2fa95d772d3a8ef2c773c92c4cb229022838c2b357ee9488f914de5b61d1ccacfd55a71e27128618beb84bb2a9b0436b30c9001131d6d35c5ca372b761329913ff715cd55b5a8d87caff983266bdd80fbe8221ecf0e86fcf9ed0fbc98de08610763b4748aa22ecd9616c07d3671627c31aafddaef632fc11cd68759e60daa17c4b9b2afa82d70de963088e87e5311f72e0eaa91e76576cc91c3f448d55aa7fa10e061b109c8fce919a8a7367e0abec62b0a6b5d45559c2257f225d572ac2d59570ca26aa633f56563f52c294b0578e69720a3187017376c266100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d0868f330dede3f17b8e0e2260b020f100d0000000000000071b71b3f1bcbf8599b1d24120bdb31e374ea682a01389ebe1086521cafe5dd372694d5dd3ac3947f79e9e558dd3b401f458bb9f29dc286d2aa45300f0fe81a00b8ccd881c3cefa672d067363479582cd514dfec41a3e51462213fa4a5140aef2d1b0ee2018b3c9eee5821aa62e256690fb5204aafa3689a9a2af132c12c6b523ce4b0e71a13c086dc16aa45ccf31747a87e674c32f14d1771d57480f802ccb6b47c5c51a98733cba9902a0a603b2d30ff4115338d1272c64ca75971044b3ef9cf9a32741dc272ce44b2b00e9b3ba9e7b1c22bcf102093ed18a92c7faef80423b0d7bb4b7360702b28501aa9ff9c9994220aa948191cb70d177341c55b55a8cd4a74bd32bbacf79ad3046c2cdcc5f9d1063eec83e062630f7d4d8c7fb8a0d496ae6a4e39d04e518cf39411faaa33bdd97a22c5ecbc38d99f243db446e215edb739176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff904356435be979164d7000b1271dd4f2e0c000000000000001cfcdc10a5ed6556659b97a00e7343281befa3442c0d651931ddd94d63fb2fdd2a17d7e39a7e5d28b416e9eaf76d2f1d24abf5b6db47a96f5c1dd5e2e6b5d49d32d66696a1323ced935e3faad1d4d49fe1f6a354dd83e7f27e4d9eb009579b76512ba2af7bf74f2ff1eff549f4de0102a9b3c2315157ae13b29b3414df82e9edd588b0a1358cbf6b6df34d1a346fee49b8c6063f13f80d65e9638e60dd7668f1e00f5314c39813d6d8d4e4a7165ec13353a127f40bdec105a9bcd55a5bfb0771f575497e7e1e895e1f247b124d0749d828dab62d3cf3fc115dde07d69b88c32461debced195c82dcf3b5ba2331640c7fb0aec9e7cbcc845d1599cf21cd8bd759e33ed1c50cd41e3aa45ec6ab527efd05f3adc812d77b98b3f40c0a71aa12a3fa48226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a891766e513a26806ce7a57e4bf4b7646b0b00000000000000276dbe7eefd221f64a946ff0bc6993e6f785b18e1688b28681602db7718d883441b50ff21ba80afc8dfb662d658ce6d076dd8158dee0222173380eaf68efed55873222776d59290c0380ef02387c810e6b471531792a7760d4d3025366946eba37f2fa1997d4e72bc86d16d80b6aae5a3930a3a10223412f935f35afaf91437f3d72de8000784f4616bf543000cd691e38ce427fbe78d43b146068b09c097c51db7699908a53469d3e7611ab2b393962ce8c56af0482f7661e80c8c7c641f714981077cb33656e74db5670c8d990487c7195ddc6c1ed6ef41011fddcd139cff7f87f3fc0c6df3301a9979c46ce9249c5e58497d7bf54fa73e381cf4b6795e24f02b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e99915c673574c61c83cc983abc4751280a000000000000000f89ed32bee16d23bf7721a443f1a1485219bd81cd82854a11f3091d3543bcafb238981c5b1f8ce1fd2a09854175f02b91dd3b81494d85e139b12d4310e58b1777d3ea5349cea3edeb48eff7a665db7f39a26e4e57ead1c04046ddd7322912c0a1f38781f3ed6222d435dadc96d3d66c4874c3118bdb3c6609bdfc62f3892caee3d10ee03e796ceee7ffb6c82ee0f9d3b7d9604ce722e6cb13ab2d0807844c55da212802b6147d155cb79f3c49eb3d9ff6c2d400947ee3faee016e17eaa29c491ba60f78861545c39b00c618a3ca058a59974ee1a1f511b76eaeb2ba50119397b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b7ac2ea53788d497237659d0bebd2f0310900000000000000a4f54e9a03cd69f4d1176196e5de9fcf000f9db19550f4c404adcfc276493e944fb85ded5d4e298c84aa3236e293f793ca23cd9d124628a984d164f2211d077c0a71f08eabc1304ace27d694dc0846552c44f4b30071bcebb95cc8b05f61109dbe766a5a31da203c042b711a110e1deec2dae6640c563d4a18be4918a4f23119159bd679a31a56e1bcea5164844726e92fc4501dcdcdb1216383890a562290653c8d329745c16aa7391cef54691100339c2cbc659519441cd0d3ff0d4dd1053175ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bccebd3e22a77d1d55a6ac911cf8183b580800000000000000add0fd10cf69c7585d7ac2cd12ebc8ae172d6381296f4692c97b96ad816ba16c9856fe02b5c68ee6b8df0a1556602ddd69e5b67faa8946084f62ca9afb5cd55173542bd2f0a61f241113b6c3105faa0c70b414f8c255be4abfb03c1d073900af4faf297ff7fc0c268ecd55ea9cd4fa8661417b8fb522ee426594562d252d5e4ae9e2ba6852fbb76d1249ed82fafd8d058bdbbfa8b099c5944403912675d94158ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6a35b7e5545a3955a94e17a250528a2190700000000000000605be3844f9a02972f24b814d7eefae3df6d07af75d53a9759e065eb99fc1dd1c30fbd24bfe38e59d0842a183c0dd67869ea4719a96f1fbcb674f665c698ce645b83be9faebb99f34295eae5f3e32c2dffe003e21a74afb43141aefcc5374ccb8b9a7e2071367f037721121ffa230b3e5dd3ebb613c4368cf6b60e801932e116a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecf1b8d53d78b8ca2711c7156713af28030600000000000000357b13da4cecddb265e320daafa17406c0e2b1521a11ef3992c9668f79e40346a387ffb5e338f14edf66cafe9d9d5e8ac5027d6e01a5a6722b97d1638b8e18b91a36f7b870fec922ae3c04949b363bed605391f356bca18200d712dda6bc815e36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c171a0bbb344985d810db928a45daee770d050000000000000097d6c302f075df24d55f939158cabfb4e7a9b596d4269948e8e1762aad2ff946140096a24bb005345aff1bbab677b1dddb7953eae3a91849c8ce06846cda880b824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979980c979d73390153124fcb2472b6b5a9090400000000000000d601cfc30bb5be7130011456c56dab7f3cc011c72cec94e617af7e0f698e00ca1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2aa74ee7132e8690c3131c611f2978a510300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000080f0e21e8558f11e57f2bc2dd494dc581000000000000000f9a8b93ba06669c80592c1f697611b17a6cc5b0e3b563394d6d7572302a20a53c52bed5d1399f52373d5f6b230eb320b8d0057c1b536152a31538c77935aa4c577c545ba1c977a4ee5c87767ac64471d45d875339f9ab236e1354e6d382e15cc4676557b8c1135663ea2d7a389d142ecce62899084fe212515e44ca7f7406e9ff1a668fb051170d9af0b10325b91186ae2a302afdc1c66b612b6e90fd753be8274406e861c7459a2a1ce9682ce121c3abb7ab6e6bd71e011f3b616425882a90b3773785efa4a56652cdf00cfc9f278bcbaad01794cca48e67e11003bf68fd321e719f57d6a8a88995cf4dbb38ddf9988245239ae082600e3dcc0a49f1d0fecff5bbd06a9041245be1b7e62070c97e57fccdf82f571feefbb9c88946b7a3b2c2c3d2cc9bbbd7a875598651bca39eb9502eab564084d4273a40e944ac856ac03d3088b2ef83b38ac0f2f3d9745364689121610b97c1125a24a840d74f571636ad50a78260a94321a7634402c90d612aa8795a816b09fc6f4f1399a48d0841409d74de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa21f54f931c8673b1561c99d6117529c020f00000000000000ef67b2ab8862f04b505bfa18d6eb15c241786ecd70885f30ae4ff1908894979e743d3212d0e40f32ed104284e80314e0f1279e0a41762455783df080473e74e75474e78e0f10d8058d60bfc920a82c5c7059169830a31e1897587e5091e819c19a9ddca7529acf6a4f8c772ee9c1abd4d01f5c668ada9eb84cbcc1b713eeb14bab3b675f798dc9c80798be7f93b81907496dfb358db36161c65376904363be8cd0c78df47659c92a82d1f6050ecafe88f901d1be37eaf5966a22be4ca5c469ff387754562de7470bc516f581cca20237473e0f2f67f6df4e9781a1f4b2d89d35bab56bce3d2f24e42fec3b80f3ee85e50d80f40364cad0b6013ef3e9f60513516b50dc710ddda46588d763646db5056e380284a45364209cd230355d3e07589333a0d932faf5ded0db75d68c9d1111bc1a2c6fa024d74ed9aef1d86daa8f989fde37d3435b64b96a5bbbf1084db264212eb0d3b770d8cf4c23dbe91e87f99fe7896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5287462eb3e1acfe3561d7a013941ffe5530e0000000000000070a13e918377f95a9753263eb2e1f5fce49122906edbbf9894f907ba6c20d16c353fadca5600ae013a2187c0a4eaa4bca324dd7d41b0b29121c951f8617d776b7f3bd624dee9a82b2ca287d8f031b944c5f260ee9a9a10f683d9694fc4231d7599612657386c9af13453b2561d41434cfb234c7fecbc0eaab84f7abd12b8c71f523cd9c7d740549b998afcbfb4498c78ddd32369e8c44855a880e11b3347fbb2e699fe50937064b2e54a8b2283d9dbabadd1f874c2fb5f010832133966df363e92149385174a60479aecb3e1dc153ecd34d7e7c66e6092aab76593d2b74dc557219ea324eb5b645c81a8e1b527f8dc89572114ccd6e1d6658aeb3152bf01b0aa8f8c2ec748924f2f96f13692fffb38c0222a8b4002bc7b4ff78417a0e2ccd5d0d8075e2001d3ea66d0d52092ece7b63203d68906a2688947ee75fb6264b59c961c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b686cab8276a46c7f1cd3c2326714fc0c5c0d000000000000006c073f7f24882f5f467c2dc56967ce0482eeff23be5b8ebe158eb8297a208cc29ab5621cea7927744a9805131270a02cd751964c4df6bac6bf3033d24b8d854a70cf0b1c379ecc14cc604bc16d2802bd224f42da7ba1843837804c0bd231684a3742a18bf9543dec44200b6d6b3f556b825c94754e81cca8c1cf0a36386ccae17457d777cfa001c88a8a1d3c0a121095188582cac5e89304df4b9fc92da70e319a37f2eb3525569a05f4f9f13c6d609e11d472dd6909350d54fe46d63cc5e5560a350f809079734806ba3ac3759ebd620c07e241889168d8c8a91cf1bf2e44770e47719e0a9c71a52c4c8beb61cc32aea4dc64b79043aea4a394c952b01deac3d3210288362bd4660d268c3898cf9d0baaca3c9ed3ccb9ab47313cc00d068eb2833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999bb0b516d95baa76ddf4e80609fce9a490c00000000000000a5315c7fbe2262fc58d3f7ecaa45801f296f38bbcb4c1b471b9ad63b0dce61aff94f31826fa3a176cbc42dcf706424934bae597d645e9325c01471d59e6ca30ef28bf71f2d578e926373e76462214b893be895c1addd4edfe4b0ffda45e7d537625bfe55fe4540a1a12dd93017956fce7df2058e8df5dc0cc6713ab27ba03b050f655c658c5a344bb4aeb87b0d9572d91d7cb8288d29e31dc58882ced85ac4ff4779189dc7547c6ed0359a265fd6b18b565e77e4b750792760386cfcbc926209d918202812bc27fcdb9fecb49bdbd0f85d8396dbbfa337199aece8d18c8c981e1ed715cca92cc3e02def4c2e3cf4c01f13ea58010bbd4912e7d3d9898cf8af38f20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249d836b25352142e06ffabbb3b03de4d4f0b0000000000000000d82ee112d2b35985cf4eed594f8a3d738f70f269943b102751228bc92e40e2c5e03fdbbba8d0eadb3d1113c5c506a0c363a3bf266d58d49060cafd5f55b15faa618240cdb031a991ec0a214c5aeb4d07378cc7061dd2a6dd2be0470382e2f0bb74ba3476ac84e52ea920019ab1a10dcdb1f158e7502c1bcb8579bf01ead71dc5e23b1306f172a9d6c7e56cc1792c5222810ef853c797e19c4a075d0381e7672c2d8d729c5b66b19f8f8f21023e8a6a934120d653974649c6a144ca5920f59dc71b35b820de8641c74c88f7b50d8dce8a367a3aa52d474b016f8f473cc8b1f5e3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cd3f14e6d2f140d54d41c152d583564470a000000000000007749f7b06bb50442895e6788809a49f67c1dd35102de18cb9360a26b4c9f13c9087d69fc0456db8b75416dd3c138b9f3088a2894f4be874dac42f35fcc3e4a484bdb967ba34a7b3b24a6391bbbf55b2c0a860d6e74ce8061049dd305649fd6ff7c73f32ff5498ce3be2a25a509f30f09987320627fa7a4b7d870ed30e26f16deaeda40d620a3ae142dcc7494557b4d30ce6c43cd87ddd81ac80a0fd2d201fb08c35f50f0369f776901db79cde283fc14f6d5558a9801a70217128543fb8f0f4dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c07323de6edf707c178ec2810874187c3009000000000000005d50cf61ba7d9ee48d87254e6fb7f2d430beac7d8725a2314259874c27d10a97208e4b348e82152ebaea2d8fbbc4114f9e40a55df069ccc338b7cc886f7b8a821b3104b7bb3c0c51319a1cdd97f1c74fa83149fb8c4ca7bdb4ccc66e0ddf6fefec5e4f56b73dac5950dfd4f8de93bc4ee3685608cd921b8b26521ef95fc0e1a753522af773ca5405bf8e76efddb9c21320b19c70f1ef37d122023bc3e7d8e20842cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d75c11e61fe4e90388926921790dc0441080000000000000071db556430d173a0f7ce3f9ecde8a5105656900beecb47a24be10c96e0e01b6f835ff8a04ea0936bb218bcf22ab10f108c7f3e2e4d944f9b87300153c6e4cb78ea06562e04d8edd1f74a316edbdf4a962319fcb30c7da5a223a4e0cc2cb6e29347f08793396be6575a3d34bbe34cf18fd12ec2bed39611afb388aaaad779911324c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222de14c4354dd8e5290b8ad668af6aa50707000000000000003017d86da6b7f3fe02764ea757f36e488cba872a501b55ca8b25cfdc01217657bbd2d3d79674a3c433d4cc53d177da5874eac48fedb6f7c0f093117b66db408d6762ab211c68c06cab9694926ccd52e66c5ef2dd69382b59ff6170fdffff31943ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59768bc21df3445288d60dd039eef491e06000000000000000d95243c9fb93ff3cd7e3304ee84b6cbaff3789de553eb6ccf56fad2c8411a317c6e9fa6837a935c027811fc9d5b07ea4b46d1bfa7153325b2c59832f6cbb8b770bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c87dc4704026e173845227d019a73866205000000000000007ce12838ca2b8383b6a8dc3a446e484a02746a09ad76615f54c2b7ff663b6067baa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c72faca3dbe730c14e49a8e4a54765d4e0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000dd2438716cba3f56210e3b17e5b206061000000000000000f0bf95305686aeaf523931b13afcb077b1edfacda24f1e8827443d07e5621aa08c13a16923edcc3b051682126a4d478445aaf14d23614165648fc1c66cb17a0ffb1d6442b50b6eeca419e2cbd4a10b58dfccbc1e992505e650815a9a8c8cfb61258df10ecb0277cf779b09d3e8ddca603350cddc2ef6e800bd34a0a4d9b124c6b74e89191d9a7970bb9f2d72890e1d34a8a795f284e3265bd8a55e7215849855d7f1e81b2f7c7c42925434de19418abd2b9e097cc80d7f5c90bf86c95f39621aa773b1e4dcf14b570ef7470fcb9f5597cd85625ae5c4de600277a8634bbab51836a4038210aedaeb369fd4c4f31810b8d12176815f0f32d6b816ab57b437815f603cb12bae0dcb2f14800adc221c2781dc4cdebe0f515ec82b05c2209211e5722c22ef88cb436b5b677e0d1a65f1712dc67804ce2e756f9190a4b46cebc1fb9fb9ea25b035004f1b752f7af46cd7b10e91552b931aa539620a446da594cb1636ddbd7b205580096b94bc8c5e5765eef67761bb220d030c77da5dad1a6ecabc21caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2af95aa77bd15fe2d09e3ae00107c22560f00000000000000f5b0ae1e890ac8b0307887a935b8dd7cacaabe5bc1968d183c70322ccadea91494070c9c5cfd0ad878c298b8a16847f36b08382c8514fddd6d037f6c97364ec52a348c3ca1a5d867977e0ebe79070c61b0e5f7c3604c2cfbe8c0942ff6fc2e91fab1c06d881a281ca6d2d14c68f1f147adc3d883914e7496e0c34696b2d319cc5e13bd047651b6fb99d73cece842388acfdadc14fa9fb25ffc15817d75c0706fd3a9f1b271167ef6f95f03ed60d9708a36d78662a5b45d7ae14e980954a25ff93bc8ce38399832d040001dc6ad261e8585097de9241f03551340d4dd8f08284a01ae160272244a08c754672e1deee33cf3e7a7d42183d8eb130c536deb7819e44a32b616cb9cefdef56d93edab21eb59e32bdbcb7a799dad2e9b1da44c73c4940e94cac4c2ce397965d45d15a276509141f71486b13e2295af3c23f0da18c6aadf33eea6b5469c3436d844b62e6e7a67d053185699a57bf2da9aa6dc454998f9baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5281ce33c3527fb1063385e2e39cab38e340e0000000000000080df397e3b4a94967bf526cbb87223e2b61198eb910f7002e72322d9162697e1ad32b911440d2f68cd51f644798f8d14133beb6335d7d0aa19890158f7d1cae8ed1aa49ef732c261fdd0382807291c03f15e66ff341e8431d324bc4122e5bf7f2d71bb31eb32606fc28537a423271e6bbf3e264301f774b751dbd9aee8d92d4053fb4b7ec5119768339a4d000ebd1d80178399fa77379d4793c55665f397cee3f8acce23b464a14d16015fcc07af8c2f6ebc36aca06975b07722882cd430ca335f29fb3ddad9a563bc17bbf51ea8e1929c79664dc4112be809aac9fc2586a8e7fcb348b56aa0ad5a1b14f50174af0a74bd36cbb8482f76effb7080adf924a311771f64ea07c117b7f13dbb9cafa33e6730a32953d772e97f8ffbae8ea729ae933d4461b031edde185b196788c6e9909de90b1100afb03256d1a93b63cf3559453441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68a524a822f32a54311a012a45c3137e090d0000000000000098c3f751128f3d20b0cd87f682923b2a39d96f879f1769bb02e4225203d7a47dfa31b06b932a7ce813ce21d9fa1cc9253df3fb60f1d757e010959727333f584d50b4f11dc88f1fc5485a7053cebcd6470858cdf5620414512760d527f359589a1b7e41170231231e98ad8f687ddcfbbdff53c01e928d6798e59c74d50062fc7354b7a4750c1826eabef897668d4969700b0092f53f4a5bd5ad24f9576cce4e77fa24234f6914a984edd9e2aafae09b892c8552842efdb53da54dca9873bbc8ced6a97e1c981720eee7b4f563bc7a43b88178a37d72d03e12106bd6c073ec3a7afb22e158c4bf19e92f3eb843afc5e82dd63c9b78db257fe990d55b14193f9c1fd789661eee5d0ceaaee5b6116490ad57ffd88925dace9c06845ed0f8d66f1ecddf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999e4a90b579ff23b1de8ab88740ac328270c00000000000000a219c499d92930906b8b2568f189723f8216ca4ca2f1c8000959ca2361318579aa812fdb276c45da927e95554f3b88c508935c81abc4bc589b6cb87aca261f3b0e2ae58d4b90f84ac49498f8fce1e33c5536fcad5f148022f2f5df85f6052726d85d0094614a6ceeae4474fda1dc9613e73f299a395cfd37c514ca259333da769b138fc846daebd4fa9a70dbaf04c18b6ae50862c0783f3eaf2eb8712ac72caf9c4e3f6834e2ecb8971204663641ebfd7ddea416413ce6e692f71a0f21e0ef1a580b60c8f0a25d45428f0ebd79c1edd38b8dfce6f0d1a072b81b34493ba788baaad213b87d56b154d25e9cc617921c4612ff74e1d32531b9829d6effb7325373cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249c4c3a22c42f1f91d01cfde6e92db7f050b0000000000000084cdd8c97432ed7cee3a2c118d4b3e3149da6d3af612279884405fc8214e4bb93995288c55278de5b421432f15880432c7ee9e49d4b532bf3cf1f8b7c0df39f86cd86c6bc7ae95a99a4a06ba8bc0802db6c16a5ccebd770a5db7c9baf5b6c0d3d44b326095e16ced9751d8fba566020596bb7414abba85ac423d31ad4b3ef306e86caf0225901cc5967392c4aab8de365cc563eb945991a7d74b56ab6a4ba46322769be1fe33b3459efa15f48cb2ccab19ba765c1a46da7d8259d2cb679f2fd4c2cf306d7db655fcb7690e6d218a1b385b29b7ec89166c08ed10097877d3d14cae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c9e51f3299ac7c5122c13cf32b38608480a00000000000000b3d071c3612a2197670715fd6a6a7b38f572f341c6a8aa419e3abf2ae25845e6ad791c0d401c21e889341a18ef71e191490c8db0b91c180414a4e31463351d71e6127a9fefecd0a56268799d72820fdeffa22a99841382a0655a82348e618654685b93d57b10ddedde1d9ef2a64a4ec678903dee5c1186f2ae811a2d2c21158ff096d4265c2d78052e2b23d495e44e92cdb0946ee6289b1f652edf719eea071b1072d53c4315ea2d8bb69a5bd0dfeef36d420c38389a5e4380488ad126e0fef819a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0b3bbc401dbd80350c2b1da2c978b801f09000000000000002f3f8b395917c85f2a664a5705e650b3323a7952b5747eb4057121d11a8ff39cd452ff0268deebed363650a21cb849513680534edf09f18bf58864b5dd6037c010566881819b29b967349a8bf65a7e4926f6cde12ce6598a9681fe8ee388fde9cef18a4a3e48bc09f3768757074f66f619446fe741be33f59447bf41515adf98f2dbeb1e32c98367dc926de6b08588f4e8f00b4c0227ef69dc5a6a46f3fa94f09f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d114ca72235bb836a9021ab1951d11010080000000000000078bb57a407e1b0ff09c8ed0535a12a5af5dd8178c637f17de70ec4ab737fe18a59fa817360a5f6da47af7c0ad6db12f46fa4ba25602b216d28d1464cccb831d25783ca9502afe5db74815507dda04cfb00b24538ba1211e621694f90bba9ff0efaacbb61196eac22f6f87ac612431dfae0ada97b8d944fe45e8a9bf3b7f74710206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222446779046b381642712925069c1157580700000000000000fabae0602048b6c41962a2fe6f384cd757024b72a9893bca3da240d89bf5f6b560f08ff00b5958d3c581876d134194a5ef033e18034c5c64c4f3544439a43e54aead27932ce7ba47974191e00a8996a872b00ae5ccaef3f7cff581ba8bdd14fb2f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5951e6959e961bd77cbc1e74cd32ee6670600000000000000089a090dbd2d126c699d9786d3f2e70aa95ff6cccf0e8d1bcd68deafc10b3a1513935a4494e02a8598a5f923a9b2fec2af2ee718cac51f199ec1a660583c8ecda387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c64244a6ebb5cec56130c5d45420096730500000000000000f68f8b30c7f5cd817adb5a125ffd15ee8ed9f60bd834775746f4328adfc864c5bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbc657b6707347949ee81a20cb063461404000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000759f1835b8edb66d8e361c620afb9f6e1000000000000000af00aed37b52eb6960bb47e90f39045c5e2b222fb7d290cb542e2b710a97adb754aca94b6aea195d131c58eb33fe1259f24147dfd4728803f7bd7234cce9cedf4fca0af1dd128373d3ac96673020ce1bcbd4eee8e1176ef57d8eb276411d3532596bfc6db9c215e8af30b2b4ceed6838747475120cd05a9f04226ae0f5586d43d6018aea8eee7d7825aa6d1825d54cb7174b5c805d2a67a6d88d3d1b0dfd708cf9e67282b58c9efa01b668ce934783c22633a25277ea14212de0d1fbb0611ee17774c5d5cc67518fce5f33935565dd4ef64ad25c267e65625a838f846cae48e0abe6709449a25acbdaa8771431a6438ea9c57dcf9c7bc196b99a6bc87917cef7784487c364582c5a06b66f4e405a55cb6101203a6857d5f33aac7677c781fd1e0bf57fdbb5b5ad7f8ce79d00932149d25ce0135998b9a674899346278786aedf5f469f6f85f8550407f133b757d9948a8be5301eb21862257ed57a85016b63227595437d496d8d4791ad79b65856a87a5674aef36e282445e45fa212f3748bbeea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2fd01b02673a55e263fe7d34c8c5d85060f00000000000000ed4983c5fcc52c0ad9ca81a55dfa356cc5c460c2ab41a8959e81b74b5a6de132eebe36851607c67a156344c0887c61e6215b11649daaf774a3a380a6ccfb1deda584c7e13ee54d248edadcc3d4325daa4783d907595212d57b75468940c4861401338be72531b0e0a422c4fea66097f049f1f7c63d9d7d1e02a8b6703c80357449824b3bd26139c2eaf495f607a1293e1c98190b88528d5d0bb6912f8ef7fbb0ee46f4f6e2e53fc621042399a92ad552127517acc98f9914db70a117fbfe3ad193a3b8610249db75bdb48a500d90c5b3dee748a74da98cf7041bf799d7f443e71772f97fcd0fa7453aba2b939a29f6951a1bbc0730e5e92d7443ba89e5ba7cec9d8ab971f7f8b488d33a903b742b587104fe4774ae94dc9d151d13f98de270db11cd9582e6899d76bffa22dc104e2941afc1a2553b8ee7a520b42589c978a036b7fe5eac3253dd010323dcb5f08a8641d22247d4a7386be484f1618a9b8b414c872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528ff2b57123d2fb17782c816685923041f0e000000000000008d00ffdf94f59bcdb920194a46cb1f22c0d0ef00b1ab2be2458512bb76643e0749962f96bd8e65f81cc1f378c2443fe46d2ece8719870aab97af957f140240df0c0dfa8c310f6304de18ab27be3cc196f7f653167e0440e8f7f0fe197faefa90cef4b28c8480feb221f9f0816c1455fcdff689e4ebecbc58ed6ec83307067a845fb1a21787ddc9929d6e361ff766c50023a6400a0960ec07c1927b3ce9f74ce0441f6fdac1ecc2fb969e1a3d1cb61a52e5717123d3bb5f33fcb8b283707b1e32bcfbcfa4bb54768765df3ca36d3c91e5b1aa673e5aad0efd7b2be19ffdfccacba7e84c3cac17716331bbacbe6dffbceabbc414731d0def6609169d141bfbcb3555385f4ff06f6f93d84f23b6c61d3ac013853e36b42ee384a7e3ae92482b4adfcc07e14c7a9b7d223c05e22bb3968cca24a63e81f10baa719e559aa643508f26175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68c73755567a868a16a356634eaa5d6e2b0d0000000000000068a8470334d44074d652135d7aef95206993d5321aaca23df18ae37feba7009f829025a00c39b0e72f9fbf5d5f197284d498111fd691854d9d75f5cf7228bc263029a8e288a13b8193a9a409bd097316d9d8acfbd019bb3456f89252d82e3b8644e828abc90194e3af2fea67812e3b8751a1c3eee6f88bb937d929b15999e3c1519c6e5f11027e7af84d617e7902dfb45d7ac227287d3cee7925aca4eeef18409019318df881e3ab8cc9863480998da455f7c0a55f403435046b0b98b389da0615a464b6d2a831063de4954995fc28ecd0604c94cd12edbd34f167a46675e4aeee778ad1ff982a1b1034b9018f19660083a8024e75b0758781e23af675320ae0ded7590d1724d5591993a6a38e6cdc2bd0b7f9d0c19c5a8f3fb484e141290e052a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999b6c4bd5bd84f586883b8ac14b61cd7140c00000000000000b584e8c27c142088b953b82d39b73122a56d129507be8387e32b28bcf69ecb7249193ba38da9ee5cc91fbe3f4b6cb579487302d7bd0e664c933cae27dc7737bf36170e47d52159f915597dce95ff76be0d822e86e8e8ea24045a629e80dc7dff3a913b7c32fa5e69bcf53a3f4b495bdc1b9c443a9b64ad5aef41fc0e026ff2d831a218ab470c18a6a76c6ef482f33aa8855406b623442fe8e38217f5e51a0f9253d173b7f65ddb046b9cfe622140bcc71460cf4a454a6b18bce48ad6f2eb377b8c154186cdcebc82544b98b440246b09f43fdc8b79864eb91735da6f3686925e05cce1c7bdc9246ac2409f652814fa72254b7c7c033b627f6cd74a51087d5b3b9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2494346e24200cfcb33cf922058287ee54f0b00000000000000ded67d2c30c530c5e63cb8eba9d060ccb1f68a54498a978cd4aaac1fa7165d475ee01fff88ed8318a716882c088079a0623b951d79726b345e32b4f26a18526645cf9bd364057e2152ff25d3f9ed3915a5a8017be39d147c242b8482e8af7b9b98d8803c462d7dddae50a710694a790a6924ef65693939dd60cfa8cf2b5d293ff4d35c7a49df720ee90f02ef0987dae83759ced70d2b3c361a422006da59b979d9a923d232b1d85ab0fb60ebb2985b8b3533846d7a67c93ea03bcfc332c756bf569b9292867816e440c0ddea77c4ac571cb9cec7a13598f4385e47a17b567de08de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c615b7860c81771514920942b875356220a000000000000006e9390fd57ea769158cc4138e296f28069e54226207c260b72e26af9ad42a989421f918dba762eae9a7145cab12b78bf58d2d67357ba7e4770640ff8a15059c26f85cf8275bb849299e5fc300841969db2a63779e3f0e48fc27df421cff6e98c9c49981e19a8ce5aaa8ec6f0fcd49db16ad570055ecc4e63acd3f16c39a7180bf0b64b72c7b6dee1e97198ec643a261917959d8db0048bb127e24c43184dd8bf8fa106a43f7394d1c52eb0fc00a49125effbe4028956a738c1ee9aead1156d5abdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0414b2d2c4ef0a84d1e5fe972b8c0f14f0900000000000000168e94c019e1408d986de77773ae1696d9bcd1877d866bd4708668a0119ef239882ca266524383be1794d0689598ba2b0bc68a06a9637a00a7fa87be3fb6627ab13868e3825f5078d8a6d0e6e1a99ca7c6336c1156c3e069a7b8fb589afddf89b35dfe45c27c5502e4a4b8c2acd21b41fb1877938509cc9b413a50b0fc3fff2a7ed70b80a60fbe5affe2fbc90a7306405007918d2642d7cb53bc5d56a77a9e9c6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d45313212ab982a261915ad5b3672f10108000000000000000158c3b9186c0e8f3c7e3a08f5666309ad1ddd6b694c0c5b724f67a7627738b09ad8792d26b65f98b4c572a28ebc2bf83e063c6aef2c6643069780925cb724bc8cbcdc8c73868db76213804e80ecf887deab839b8e4446e5a3be4eddc95fe28e86c369aeb20c8bc092bd4432c3d3bd39ecf0a279480a5623e9f5e9c22b4be1294f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2223c421a504cf8eb3fda8550214e4453760700000000000000a61bbe995c28489977eb054f33b9f2fb7c9b3a3bfe0ccb0f525a7fb6a4399f4dec92e0631dda58481024058a457aab213c555a30178e0b9993e1e396cddf98275c676fee3e87cab2ef9c78adf1e39e5c9fea0a943ee11356ace8faf356c7aa1cb2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e1b3435654ac516a14df972d509f7d2306000000000000003b6a555d69ed7ee3d28f6d53775d8b9ec20fe79b9ee57afba362b32cbb3b10d57d810f9c686cdfbd37949acbdd56910614c9e3fabe39e9760223b10c903236b5aad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64ced676f278bf1766fe0450777a029f0300500000000000000f9374a26d39ac57f72a526c7327836265b6b72a16c19d0c63845d359c8514d21337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c0045e4393c6e163fc012e300d9e31001040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000092b6bb093430a90ed369c812a2aa1c2010000000000000000b67a8e012228e5360596b2b8361ff663efa678537e9b4e02a9818fe2103910da8a0c730360d8ba6207245d73a953a35bfa71566610e15cdb1ea64cae0c42c436c736974269be3664024e4afcdbb3b2064a1f762b368bbe9d8641c4fa75302f4054325ac37d67790d4f8447fb47f5708e469e749b71c446f659abfcd875a66d3d9fb601caedb025a83e41519fc0e7f788524ca2afc180782225bd7a72df6fddab5b5bb034fd60b34e50ff6cf1a00d54276be447d488c141ca0d6450e5532fc1c0e4b9e1896b5b6e1f06c48d763f7350ec7a5da2e52d6fd078720cf51605a3b8dccbe4dc25759bb65c3f55edd4f97be73f3a91609ba0735dd633c83010aa544f6315d9cf2edf0b0592435db1683184932fb9648286bd1ddf1292667673bb7e01ca3b798538bf56b856807e4321c1d2a5c27e6ddac8c8ba138f9bfa9ea36390fe9029b0feb1dfe4a7e81c6453e52b86d51b9748f2937a43bce334904c4d169606738d70804feccad9c1fe2e221d32e121a316536781a2c9cfdcbd173c94b7bfda109b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc076b32054a9eb5af38a9c67063620cb41b0f00000000000000d29d8c1e3c1f266e0855787c35360959d9a5a5f5b6e74d8b00d76039eec6b3f23d2481127c0b3cd1ef647de702eebc70102a55ecef12e75a8a1c8dbaa28b5f1ccb43321107745035fbda554f773a158fbdb84fc5e730316e2ad07fdf28188f7eac2e3a9d1be0ce6e6e3fd614600a69a74c65fa88fc45cfd3a79b4e969d02c259f876a39733cff8822335aceb9826a2125f254f091205c1a45a012163f4897eeb8474a61475fed08be54ecac34b9acd3d76e23d6e89b05af02c1a27b9a75d67f9368cf3e741588f52daca6d943a7b62f92e5fe0c2a1051e2cdae21706849a88978650efe45f050fd6b37f6b8c59c9082fdaaf768ea0b479c6984bce9f0c7e1a02e83d9cc4af5e5be13730fd089229893d88a754fc0fad72606cad406e41261bd5fd20724194b08b67d7c19c5656953f10afd5213ecf96e00c74fbbb22102643f31086a2accefef0f465913030b00399f876cc778a3c0a4af0b021bba79c7ae0ae93bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1977c68774757a082fec79e42c6b60924a0e00000000000000ecfb533a51c96c6a85637aa4f5bd1560a6ea0717bc15f56d06dd6972e5473b8a640a3f3637f78b4a4ffd2ebec6283882d1f80364d49df626ba160ae23ebc58fbb0228b4f8b0b7505998aded38617598913e4b09308fa11514152ebb23138578df0df2d2190ef87d0dd43b4522ba9f036a403ba5cfbe7d5de12646223b4fa988a5a193d38a3a1170764460bb053ff83dfdad140613ab28d476375221d31a12073b67c11eddc3570b897a0f057f7227da8fe9a3277d032d15f20a0dba0d6795dada0650e14bb24a8f72b00f25cf14da7391eaa5fb79387148a76c3d4ab62a4e54c8a376de73b162d6bed1a9fa3073c3425d5390f3eccbc5833ad96f18b3150021861ed11943c436d6610f2ab3015f764c069fb9980a4eaa96d74fd3e0938ab157224e40efd7e942fdf25085753b633192d30e1269d0177c1c2d068c634fa974b8e28870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d0293fd21da5ab472b6f7491a58a13b760d000000000000009fab5ffceee3e518d3e33903e52496da9d17e7f292aa9a4226703ca2fbf43a76b46fe95d374faebf4a3142698a96451245760dfcbd43c1f11e96e108d0736e1be4aa0e21f183418be4f4f455fed2a2a69dc0369e4638564e70ca6ee28b46ee51ab837eca32e4c9863a30533990ffecf341436f06c02615359fadaf4229701e4109c069bf15cb4f61da582adedc1c0a2672a1cdff4895ba5191e6f79f84dae2ae633dbb818da8050206b1d98d2695cab144c442d1dfa1087c1218ccfb47befa3cbd6f12aec009c65f1c108106c3abc332153e8d0830ffc88dab935160c30607e4ff56b0cbbd7b53ce8c32409e902642ea8a8330b99239fd82b6d8605a7bb50f3c06a9af8bf6ad644d3c1f362d226ed83be7f5f7ff28370fb4213ee821253c417c9c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff97c84b260d8e6617414a13810c45b8a5b0c0000000000000058a486898b88f0786d8cd4100598a659ce8179a34126d3a386d11a21c9bf5dbc7a9cbc79e91f652dc9107c32cd89f0f94c99ad31702532a7b7d342ab4ebfa5fbe0dfd2e46e494697e07bd78e6cf569f950ab304fd1bdb3e33aa594d82f54893a7877c3199e245a7e8dce15257fa970c27d0c98137ef94c308018f7eeb5232878f02c3f646a34eb3f51ef844aed16211a8d68a87ae77d564de4b1e15adc2baaee7d852f74a40b9dae60f0ff7f7230906851474a34ea824786ae2cb430c9b2a86a6753c625f88a18c02a1ba1e6be1e7521c4af66e763880ff9bb560a94488085c1fe8103c090b9b7411d34b4718dd3ca52efcfff90a6ecce02969105ddb26ef9b56ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a896b85d69f799a6235fdb8d6408daa30e0b00000000000000c4ad63b04d99890513dceda51a9278b3eff1fc14b4a0521ae77e8ae04f94abc0564f6b04ae62902154a86f2078f2f2b64ae177ab735da064c991fe5db105cf6debceb3788b2df8641958ba904d9c2deb9becd6901bf30d18d0165f2b4fde6025dff43c79ed8d849b725f49c1e34ecdc6cfeaeb9422d865fb0365af52cc462dba64428dfae8240cbff3d119fddd7ee29d0ad1be1424b6f25d3d0ef6de18e2c1e18a73fdf03e95720afa1d7a6261ada285f8ec7f25a74c9f536813e241c0c4b17dd342efceb589aab8545b1a401911929b4b17452b4c469a6be5f83c480d30d6f0cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e0a34235264511a2fb5e27f3d4b9657180a00000000000000e792fcca31c43706671e48ddb6ce9e10d18f8c9a0a7c24827bf7093e15a9870f9d69f1671fe0d6616337bf7be19e78060aa18b36c2cb0c98c53e8b7fecf143808f56c1b2f6ee86b0e8a5185d83183f560be95fec448cda4d8ffd1bd5658114a1f98cf597cb6037ad61b15ebdad9e5ff2573970bc686dcb0aed307e72c98f636e73dd2f5d7f52c2841835c895d515c232858f6e5ed95f23c061f709624885cce536312c62d4690c5dc44a2998edd6412a56da90390edc81b35a3f2526bc8b59760c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3ba2b23c03147c4041e45b051a896e203e090000000000000081a4dbdb89956f9e4db3b22b39c03258dbd54a55676e2078d504b6a907476950c828513f08faa5a09475c1b8799ff5451500bdb9f9660fe82a0399acdf9787eacf08afe07ea08b07372d497363e556c13516f4796a6aaad9f648a767db4165f8ce1296ee33481f8faf5ec68f686e410bf44b98a80e68e97091525db03481ba7564e9c8b16f73d8f383e30cee5593532ba3d7f86d64a32d2ad0963b1979a6e518b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc19e70631c971c22483616c642dd5681a0800000000000000283c1bf5a8e033b46beba49620dbe0df4820e6a9d4ee8f00edf18611266f54807b386cd915381b0ce75c34dcda1af9f9f1370f0b3d93653f67c8a559aaf4eeca6ccbf5d22a1cbbf6572fb1dcdccd1e929198a347e53fd7fdd015c0127e4378900a3269d4a7d012ae9aea5f7027e9a0917abc0c7ea81e2bf8eeb18223d5b8c4b245de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a683deb853021e27700bc1123393194512070000000000000076d40a3dd069c5217fac8c6445fd0f520759e71a7355627941c3b89661f87f04b068f24349d97cd212a7fb16ce74ec9867bdc3ed645a8976cfd57d679cc38a4c8820b1ed02744c737a90345f4efb350c2e31074023f172ca0a509510a268aee6678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec129ec06cecb2b0716c1179652a66d928060000000000000068ad701f7ae98e19fee0125a6fd8a98a3273833deb96818777b6b1ff3375f70646839e0c583a90b2f4c201a875e4c178daa01e0aa4fe26d1d1dc08a3174d0fdd5879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17039c7c157f529a54a59f9406fa85e35a0500000000000000e40a87bde0433526a7bda9392994263a6cc2d84604b19f6efea4367557a200c7603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799809c27e37f87a4060e2b5454812eaca3a0400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000de1cc06654007a3e79aee70410f6514210000000000000009c3e9449c5d587ac49e440d619b0bff991b9530afb1d9c7573aca328c610230159fdb56cf29afa4fb11ad3e4d7b6c5ce79d15babcfbd54d201f04af6de093658e45cd4b5afe09c024c65daec05e76c0f4857bbdc21a5dfbadc3dda4292b53964c69b2775d4c39862b9bd67e43e51a9728dd6c5571628bbf334913e0ee25134e73c3a62a04dc5892723886b7b025f3f9b1a6a0f6ff4e26279391ecb94b4cdef41a64263a78b3e29c47e2f6ee09cdead63bf4ba92bd19aaea817af0e0bda2fbf8651bda099b7ec5a5b12bb46f1767e20118f5cbee248f54b035d355bfd0b865cb6246f6ac5b6a958cd13fd5d5885fe81e57f997056fa3b5483367e02ee3be853abda4dbd12904e5e3b4e0f186a5a4bf49ae3a3aca3678a78ad216143a1134fb76b21b61488b746be9103217627e5484864fae2b162296eabaec75eb312873d15a5a682b23af185bb269b1ab767bab56ceb4e94e38dafd7531f82f2e8eeb9fbc49ee377ef850b02fb9ff26e29daaeb2c530c70b6a05a7a39dc03547e69e4edbc797070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07aa6d7252d8b45d184dcf7172db605a630f000000000000003d239d0a59f5c0946acae9db8fe31e46a56ee28780058f20fe753c1795d487d8b6202bd67cb1bb545e14a9dd50abba280c5e8bd03335da1f5ecf312485dcd04b00996dc92cbbb491a5b21d61e51fe9aa163a9f8a976b0b4f67123ead165c8dafa3fb594c439b02b40f87a637dcbf2e088e84ad551f05a0ebe99e00dd1314850a9415b7e6c29b6eed793a13dc4ad2530d350e0c50668f81960efb381ceb77ce4df2df6d7df4c358f2dd42dc1a0d50c2adcbd0e048755c9be7bebea1b8a96357842a7f5b046ba88e75157542ab033270ffa3c634eb720261a8e349f097a207944caa47b1d1b20a33860c360906c60901990fe3eec3b32a9e6a7315570f796e20a9773220a571284f172d98481530995b816f3fa28e8090c46e8f13064ae3cac7ff6f2cf895f673232ccf48c06d1e2fbe07e3018feb5343b88a6cb60f35d0e28dcb810cd32f4d8b00d78077472b64acc0dd7eb87ce845e07d179613a7c66a0c6053226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19ecc4b51cecd837720847c976d0784c6d0e000000000000003bd914de638290f0df283a9a3edfea59c61aad881c76438f5b70bed5e386feac0663af6fe459e69d8323fe3ad8c8519ef27beb94cc420dc9e6ce1ccb5ca080aa2a8b7cca5d99e07da1049adcab8f4938dba6edb74c40aeee5e95dd4f44957ded564c9c5c5d512100b03dba87b247c28be23f8e0545129f56b74eee4e54dc552b0c3cc37706c1e4992e5ea97d9fef870335483e2cd65d6c942b3b8fc1444dfbf62533a27643512e0578ffe39ea172d93be817fefe5d84ada9351f047a5499273d8117c4e48d46f2afc9412def742cdd0712accd1804ee88f699e3b6dbed091d6208e9397d48f50fb22a9855a736893a8693579f100e3d8bfc7d1b9870b56c010a9d768e5f7fda31810bc3d649862fc683b90b0da9a6a340f6b74da281c5161cef2ce0429990e26198ac602b20767144eebf432dad48a25fd0201e9993566ae9f7b966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d8469ae3177b34a1d24d4416cf49a764f0d000000000000002f0354132939fd358bf4a4d64cd60d582a48216dbce09912f562cd3622c36f427a926cfdea0614799ddb8f8810e0d827749195b3db5b8d3d86d5aff9709437588100d99fed8720643f1dee0151b5c8424c67d9aa5297622ae8151ce58275a0dc71d87ac94dbb89fc2d211014613ee7ef38e16194f34ec5d4d3af41e9418fc7e3c69181e1011d93b1416ef075baac72f43a062b9e335dfe810332f462e891c121ba83806c3c9713ebf49acfec1604a37a71b527b09c5c05e2f6822de3dff908f99366054f76a4f9a63a20bc8fafe498acbcc3a1c9655abdfc899822104f3814f712a701c52819472f9de30cad6fcdafe41f21da33a466119f10b2006f0d83d14671bbe442690f57190852e723d8788b6a1ae4058cd5271af3cf3f88797f2d680820b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9c3c81e6a143d2954a3a59d6cc37c04150c000000000000005dc99a847dbd381a4e3929eb1a8ed68e9e0c4d2ccac28d14a3e9fa7f05cd4dcb4840d20d6ee98af98aac66a64d7e0ea712e042f9807732746309e9b01c0e43c6c562ab528781c37ab8baeaad4534344f4d74d3a4ff809c6f0371d9b2e9ca5f49a69c5303e62a2b3589663029eb4cc5f4d81bdcbab1b67316ec1e81e2e2378c352db33cba21b1a408b8be19f47f4f970b6fb93d35c078c5e8012c71fceca0f1c3c15fa89db22667675da6fd0955ebd48f3daaf0a8874d2983ece96d0a26e4a3638c8235751686003467420a716962e30b9872e0610909b99f1aefb2b16a8be68abd36e764ce400789381fa03976664a577758586a679a9c606bf76f18ba475a9540ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8499718119b81900477d77133a38401070b00000000000000832e9454de7ad4516fdc5d7580c8eda7729e5ae3efb3fb7ab58856b8e9a1ed40674b6a2dfcdaab3cc2795376906b492f596d977c38985809eaf285bef13831bcd535a867da35e6e67ead7bad66924a19a3fe954a29bcb4572444dd3f4ecb7757e9fbda7a8a95f00f5e5beef02fcf74307dede3a526746a69eeef373cbd26d12c81f9bee0182d1e44c57fa4ec760fb786f0c44e1abb33a35c097f703ab88d472856fc7429a11960ad93b499b8065bdb43c321b92ef2a83faf1db30a656c73eee3a82ce8a62eb8e0f89a657b0048b4b10ba6c9ea2c453e338d1f5c8aebfd82f3f7a1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e4616446e4a2fc33c3bb0177741dcdc3d0a000000000000005b7709efa54ab4496ac06915a325a80d507712b2b5fedaf64cdea97b2a6b9147d8f601b0c25eaa4ab8f08a74f2115a26033f2befe18914d5694e0e578659940b1f20039bb191374d73c18182e776d136084ff3b6e5f1dbbaee871ed59089adc38e15988e4abf368918fc7959a97ba6d8e9bbe5b2dbb58f2208f6b9898eebbea4586d9ae96d1ff6a916aedb1173e48ca68a625e7cffda26da074f32f984458bac84ea67d320d70d8208a365f14f2f4c41691fe49b7a2368b8c0bc9c67aedb2eedceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b792fee2c28fe421a4f01e2647abddb2809000000000000001fd436ada277d634a04f854f947749fd20b9b670403ca3b294ab6a4590ecc508eb5bf47b0895a01785cbfe0abb50271e238296ed52c836ac31834a59484344b89741a6d9f1eb805c153037ccaa674c29806db512b75935032506f013b5d6dc403202a94c82c93e68c4292871a593546a47f3ec4979a1f0b7f47b96927190f74f13428ce26ac20a017fe64813c7517860c8d2fa15e67a880007f2d69313c7636947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc76cd9e3134ff112f4a8fc80a728b1b3108000000000000000e24bb39d046c0ba9bc0cc4e1f926f8fcc77927b0642bb24fa5c1e042209b1dfe6be5ebdd77b6c959671868b7e5d8cea4f3cb7f0244ba0fa0b6f96e00ffc51b8ba8a5aff392cebc7a5a3906e4b581953062670323c9b31986954237acd6fc60a920ea25ee973e3eaed3a7c55e4ed854d7d18a6becf42dadd21ee253ceea76dc74ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a64b73bc42425f7e07d2e408747a8c855a07000000000000003da43832862164c71b227a9466ef7712fe4b62b48c9c170115c0ee6595e0748359ddccb4c518b9a269b01c9fb9da5a2db328341f0697f69276e4ffdef47dc899a81baf0f4fca1ebef10e94ef23773ac4ecaecc3c10b55a12a18cc7f0950e996a1a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec190899456741c07161c0d461463d7e0306000000000000007793f5ea5eade3775ba914e266397695483684e493ecf0cfafc782560f46a41064fedb9d858182898e3c62797838a9a8cc218cfff939a30940a379e66dd8defad8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1737a7a1040b25ae12f80f7a0035f2bb390500000000000000bf14f3d9afd15f51fcf3fa70fee281d5e377c4bafca9015e26e98e3b2ed298ced093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979987ea6252d77781a266600d04bc2f1d93704000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000561af25cfe568a1f347f7c12312c15031000000000000000c639289ba5a4a3ac8113871811e5feafab7ccb3ac4926716df83819e66d40031813c8ae1bdfd81375949fce8de680df2114ba4961ff6811c27bc9bb82a61f28d08df252006192a9a757bfd22cdcf56aae684f63ff2aa0e839cafab6bd52828c291b85fa9c6154f8bd7e600848e6a6f0b79c2b8b8907ae1085a3956b71fe493ad530d9d8489c4ce19e330c1e3a29c73b732bc43caac42e693dd9959b1ed8650266a8c61aafa43bf7ab4f0852465d96abc695dd15a52a14dda9298bb80f16dd37fdac0d21ab596d5e5a8e6dca407b1fa1c606bb4e5fdc695ecda6d17e7d610d1944543f28d6753226da8fe3c581a1f5378b9c162d63049ae3b62316b47e51502ae4d9d16bba60eec10b0ccc5599a29e13b41d29e9eca9b625edb4b1aadd8b9f7ee30e66ee925828b28cd5346a4def2bdc1de52db2b00357b499b0419722db702851a8e80e238bae8b36f856d37b017c7bafde87b456107971e8ab4f55354161fe0ddbd7b205580096b94bc8c5e5765eef67761bb220d030c77da5dad1a6ecabc21caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa20c22f645ec02334e74953e1691eeb35c0f00000000000000099eb130d377e06e41a21bd391c56ee832a7bba1b78637f78bf5ff36ee56dbf9588c01c177b0391faa2748496cee4c6c1c271a88739a0d7a1ea825b2c98ecaf9872da9bb6f4386b0d47ff93f7a338ebb0444b3b3aac03ab1ea41d466c8ef052cb4cf7e71ef5e209258eb556fcf3b26068160501e6a560e63c94e6f72f89f39eb740c98172753a01c0ab2249ef0c02d26e76047fdc4d165473d2ade5d36f5982732b7a9b387ffebc82dd93e621fb8c2f920a2e4fe216d501f74864b79115576829f942d53eefa01b6f173a3e6703b2276f0212c473dcb32476ed66315760516571bd533dfebab3c4f0041b837eb86c54f7305e674c507fa7fd953af30bd576836e4d184ac29624648cc5602b2ddc6a64c9fe383d54c7bd09d9a1af53b850967e2c105c85c2b92df69f5b42a3b28d777067856fd8a8500601c01201d496176199edf33eea6b5469c3436d844b62e6e7a67d053185699a57bf2da9aa6dc454998f9baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528f16c8d6cc015470a342dfb2640fadf1e0e00000000000000303a536f8972880e777f19fb5d45a6a22e44d5c18f6df36e11689ccefaab22b9752d875b9da6d1a903abaa12102af14438d742ec7dacafa6c64178cf0d97e8a5241cf12b1d8d40d4b17b184558a8946a73e677b1575e36b1086f5fce161cc3c47cdd123649db3178f8a31d0c56d63389bacdc77f6eeeeac1b8a2b27c3b4bae0b2c084a5410aafebaf38bf23a3e3c22de58b27135421211275f823edead4f4ee516c69efdfa7a36ae3d4c2332f98ae877490e5a808eb520ab0edbffb366ad796667b42eba094f533a2a993f1170bc8ecf98d38e220d33c20d09b603417b57c3fb1f5e980c54fb729288ce062c0802d0537ef45b32c3900dceec47656aa640e0f76d9f05055a422a4a75aea8d300fd2047c49ed5cf8ddf618899019f427ea1edf93d4461b031edde185b196788c6e9909de90b1100afb03256d1a93b63cf3559453441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b6828ab6f3fcd7a7c084c4caf565b30231e0d000000000000004fb26e05501eca1c77c166e1f482a6ff08a64a75da9b394872a70214cf7e1de7412a93a3bad118ec9c95414fdfd74b72c4d9135407df304153e5e4045596372ae76b5fc4e75ec1afdba9ca9fbcb4a8cda25d0df37e48b582d3afde568bdfe7549c79c699e4265aa6440bd99db858b93dc7e12b6a9a0ed662f1e85b9b81059f4580588a7c105e3b1479e508b73d2b23674da4b281a2fdc928258c9e1609ac7c1b956e30e86a810b6717f3c09bb96da90c35c9cc74239a326f6a3fa01adcaf6b205c5c09763c0f6834943f8b4cc23b3abe06822c35404c60e8d4cb8b1872d85f18d4d9f6eef6f7614885f9f2bd8019c95f7ae17237a2f5835e12c43cc51010e473d789661eee5d0ceaaee5b6116490ad57ffd88925dace9c06845ed0f8d66f1ecddf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999e795ae11090e044044c0b048bd810f730c000000000000007540b58971cdc86e0d41e686e30ad9eac12b8a7541bba9fbdd6717436ce8a51a2c6589c81dd1691ad3a4a6eef348fcae26656a6d17453f6d62cee60a6199ba1b5c94451eddc5609f64f2c835fdb6972aaa01dd769afa5c9c644b18009b61dcc8e8caee86a880f07bb36cbf0df425403e3905f56840fc290a78185b6ea067eb751e6080526a52d4f911493c2c9243892e5a95d46e18c559c00969a83f45ce44e0c5cdd728009456b8fd8f3b5d334722d753211a157ae7dce985763db3eb8e44c4a412ae36825d6c8f8406b9b27490e1a4a809b246aa838308f35b0e28885a6f5aaad213b87d56b154d25e9cc617921c4612ff74e1d32531b9829d6effb7325373cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24934f7803e2beb03096198f15602aa3e090b00000000000000a19d9e0686143e76595695d0cf465bfdc797a1695bd940d32796bfe6a1aa2b36b33f8c0d74e67f7c77f3028317419c06a5e7e387d6f11e0651ae855bafc6f5168ccb75c84628f56b8ab71c6eb556f6988afb74031a71eb7a30e86c4145cf53476c3b12b9f217c798358b7ceeeff1de121025c8e3c8804abe647856382d1cf5b32659a400d442242b2cb6930cc6b4d11ea0791bbe36b247d2bf34e07664780406aa1f133fa13cd3c9d0d80fb58802680e7126e3f7b3fed18e9e6c1616f9019198c2cf306d7db655fcb7690e6d218a1b385b29b7ec89166c08ed10097877d3d14cae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cc2c5561c3cebae757b97e44757038e440a000000000000005b9b25c03dc7c3c499a34eb515cfa6ae019736fd4d866cddc99305d1c2a3ffaf667fd89f59c978a5efa82f80197c6809806ac1e0d9108fb1e14ee63726a4f08f6e0b02ca04f677963750f65723df11f0731c9f6567e8da53b87215d56507b38d4683c566de289db535fec11104c796566a61da208676b3784f431e9258ebc48fbb2e37e3c3e69c3125d3d2f59a28add177e4186e12c20dd0c520d1733318aa211072d53c4315ea2d8bb69a5bd0dfeef36d420c38389a5e4380488ad126e0fef819a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c08ecf9d4677f656672141573d2acb6f55090000000000000041d50211feb121348b1d6dd22d6c63fef7f784df5e2d6698211c79f6c89beb3a68e42f0d2a9addb37437b02adbe67e7db663aa6d945b5f060d986ef605421167fe05d18acf298e6a05994e962c3d8c8cf735c3a2121c60d9673c31624c1d6a34432db5839a9572848a4e6c0677d7780f8f7d775fd5ba78065ae7132da67aa688f2dbeb1e32c98367dc926de6b08588f4e8f00b4c0227ef69dc5a6a46f3fa94f09f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960daa63a441b9ad131d094d4528da9f0c630800000000000000f2dbf33a50f1ddbf24083aef6c2ff2f76556fd66c71129ea68833ff5cf2d78f535b83c522338a70700b5e45be89c9e587dfba1bdc28e0f46c159437a0bb4175448c864fa74827a32e625977636197f61d41d5f43c641ab6e57fd905192b9034afaacbb61196eac22f6f87ac612431dfae0ada97b8d944fe45e8a9bf3b7f74710206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22258e1ca0a3e51b5246cadae6f7415f35a07000000000000000cd9e40549af73502208cab3c1f2704f1e07b7158724829ffc5fd386961c267ca2f924a762a164d1229796acd14eb7c4dcde224c7131436fce9cde5271029bf9aead27932ce7ba47974191e00a8996a872b00ae5ccaef3f7cff581ba8bdd14fb2f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c580e23234471b455f249ef46bca285b570600000000000000514c6080478ec44fc74d967a79a2a803dbebae4139b5cece40fcba37e333983613935a4494e02a8598a5f923a9b2fec2af2ee718cac51f199ec1a660583c8ecda387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c939b770c0a89b235c8d7115cacd1d5000500000000000000f68f8b30c7f5cd817adb5a125ffd15ee8ed9f60bd834775746f4328adfc864c5bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbc657b6707347949ee81a20cb063461404000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000008ae7f675f7a6c85b464c74421f0da4261000000000000000d4fcc6de5a74440b3fe44ae8a4396c9ba9529de257d6e7785610d89f63d56d416119d1ee2c04b58e7117eb754a8ed2da240bded421d60beedf2872517e43839f4153ab0159651e33fd5e72bc592dd10413d0219423a2b53b152bfff50bded76b82af6fa75f8f4f2c6d4413eecaf79c6196d1dd2c8528d478240c3f05aa00805b5249a20cbd8b75b6045753771c5f539610e4c41f8769e4ed34949583794758362e766c002c83f80f14019232ca8e2d0abb2f2df293a4f9824dd86f7dae3e05d592b0da23b878bd59d8471fadea6455d9adab44c1fbd0232a68a67cba5aa787cfe3d9b1d5d6a3900330beadcd52bf80277796662315cf9cdb245a01b9ca38b1f71c32b7c9a15d56c76b68135c2c27092c64572e78e308ec64a60ef391882f43fc479e5c6e33c89f7d85e771902088824314f584c328c8d220b4c059bd083d6ee180c22f031fc6f44938502813f6e604c034d65dd77fa98f260f87068eb9db98ebbcad2d10351e8bea493a47c0fbeab9bf6532b04c7982db4654ddb93572e65b6bb23776ccb3f48a478f483a73a8501fcafcbccbdaabe97cd6bd4307750958cc1855e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0799647268415b163ef480600febbbe0520f0000000000000008d7ace48e1d66e855431571b38aa784ab55993ecc806af9d6066fed12bb23d7c71cafe6111393d7de7b14d1a23884a6fdac31c7a1e237e879c035da5735ddceb12f611ebc88665c0c985162b5b6e98a4fc5d9e9d4588630037059d0430445990dfd1f2cded2c98b06b1bd6f34fe59acfddfa70ebc77f460bc48b3a5bde0b9e7fd689a2b8fc78502aa794a31ec48f6698ec1a018cee9b55f019592ec98affdd97993806f7e7df82744b6de4a67bbe9f22f6d9b579541922df334d354230c66b94b6e4448187fb14e8bed1c617b1ba65bfed9cf5d964c46d7b72866d2964d034755e4d607b243010033ef2c18e8cd477eb5de56ca8b8bf092dba0f25a2a30f33d0334fb461c35eed75a4289ee19ddf2148133063d916f580d0eced7fbaeb73ee8064a9e5386c4b4078628e1633177c20074c391a25996bab77ebdac5a32cb52191b84d1ccbc5e89233821db874fc1e37f5bfc21844a7203c7643f10fa5b220769a3640e84c9db19c8b60bc0de71da734cbdef37fdeed3728ca24ce4b88679dc01a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19db49fd5e83a4b528362f4609a4ed1b3d0e000000000000007b5ae7dd07864156cb218847cb39ecbf0242f373b8d23ce29fe50035961eec51d34d818c37e0f20ab66e5cded53ba489157e870e63953874bd52976090e3746661f61b4256fac062b792e06ac4bbbab07f4544a9fff3d888181cbcc8966f1e7d68fcb1e1823cfb177bd6c82b578ec373ef3f738d4173c17c81d5705a092870576f3e030892cc4c5576d4c0520e940f7d82076d421542ecf42fca4d493e423427d9be4dc66eb40cba225267ad43c87556c463261802c6a787bc236f65290a245d1c706e85e9ed38af9f8ade5bbc3a8464b0da304313aa15ddf530848dda4c3e95e636d51d848df0ab03108c701ed5d901b5bee367fab9455c4dac5f870b594a041e657682bb95b9a7bf9edac7a7a1f610ed069ff0a382b7bf5f28b770b5363e400b614f3f2dbf3409c746b3d29f8a9d7aac336f0c130bc72e157bc71f9feb8b80afb2ea92c72ccfdb5c48e5acbcf0d602d2c582e77c3869c7115a5746deac0641fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d1498337482f24265487c525a34d9d7390d000000000000009da5d7c3b80266472a0a330619d0896f2285e045b7b9ef036228a94548c0150185b66dfcfa11bd9bda804a156ef30f61fc25ccf29cc30e8f01e2aba5dc909ced9a80a2a93d256f87487646441c99716c707a9a78086dc226e472bd624bf47763ff2bd531376e81fe34c2662d32223efe7f0d2119800eec3b6c56986e8030007bff788eeedcaa00a9a0fa07e6868318d3c34f6397d7c6176dc5cedd7d1221e84a114e4d82426afe3061bc04bb2ca809198d0db64e818f2c745579c67b8244217f0ab7c67409d5c1d171dd47aed82ae9673112a3401ecd5dcb172b29e728eefff82d6cfca1be066f0612c7e37378016220ffc495975580b7624d28d0ad88503fb84b60e5b3757f90ae6b263c738422776e2ef94e1375201292754ddbab5904ed02df61d710a81b83d9da9f30a51d45f6202d8ffb0f7c644c8e44d39d13b7b9f80f1732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff972450c44429bc506e133c22a1fc37d2a0c00000000000000fb8760a23347d047810b1746816716db33da9fbbe14df53b440a4172b4f93b17c6918fa4fce3ecb4e7ef3264df85ae5869d18e1327a9ce7370b2c590a0ee0445f25e2dc41a0751bbc0543cf8f4015b1f2c18f21e61f50b9d6782a63611ce1faa0aa1f36478c774da94b9f2d9161dd4c7034f6d4bb2b57020d0e8bc3b5339901a9d731fa9840a4bf0816fb5fc7088b56a793cb4dcbf802decf9f2ca8c4f3db0b1b33bd681088b7c358ebf04e2d84eefb506cb17c6ee2c9cbc7d2d05e157cbdad48ca90e5141d434c2219d72016b6dcd74fa8a7fe9e7301c4513dd123da3bbc4ba1720c3f61510d39386cc50ba45e905094e25b4d54ca65c444cfbd9165617005e6b262ecb30d3ce33fbb50e19613a2ec0a455417789a1e6b873f40c81df1a34d93894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8c9fa5f09f8199b62e0b021077866290b0b000000000000008cd4c043096bc9d0408b04cd899daea51697d38f1a09a70669c3fa56d3c8f1bd2e582e7a1e4ac97bb0430c781d8293ca097b23efa3a8c5880461d68ca5ef579e68d4bb0649d193af56754e2d4b425812cb73d8f2c6bbe57bde7f04d7a095237024401d8faf04308255e2cefaa1c4c5c203a600585b2c15e24974e08929f531f146f84359e579a319b022b35d7d22eb89591b992d1bfe7c89e959316ffcd723e35ecd448b2ed5e2e98ad77f4a41fd8b36251d0f5676d682a815db68355342a28f8634a56c577882f3a6bbe7d67bff179dda9bcd4a55f97bc4c5fdd99e4b297806925cb0598b6ed4ef5e9a09224fc28a5b2305c212493ea13b1bdb385bf54da1768ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e70039d3bb2c403103367497611df426f0a00000000000000ae5ae6f0f1169ccc2725822187463b8f31994a13081e9d4329158d7ccd14738499c3ed2b854bbb02f05a3fd117eed3f819b03d9da2d844fbe7eaa21c240afb73f51165924e00fa9a986664f7e0a4321a6d80b1ea6e6a37fc38f216c7732a74239ae5650cffeb7f1f8e61e0a5871ffda2421f7dec98f5e1025f75c63b998ac10d08dc4207b515f81108b0db850455cb0cdc9258cd1b8118994c274de3252fd4469862b54c3e132f48189f3fe9653196c05eb054b02dd031c75e06ddfd8762013ef53a7125261db5af67b420aa658d9474b8263e258dbf05ee06db517df23b6ce27a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b2d442f6eacf3770a864cab33e1fea80b0900000000000000eb5bbf294c3937893adc8292d24c620ec51245aa03e471e40e8ec56caeafca7dec724154555166a9c3713b0bbf1d95d8b448afe753e33d0e33c48e86f6b30de8f742eed8226ee5aa4eb8232711d851e84d5bbc38a4c804a18db7775cf2bd8edd78e331d1c493beeaddc5e7322e8687910f0ec732a3b7834283ba6b2b52ac2cd0dd114e00535aedcecd82b053bb723b29b0517f0bd424c22825f1d36da15e6fef3fa11287555514c70406983e8c7725739867eb190422f0e97f9729eedd936fa19368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc610b65052ef9fa33b2487a5e10e54f1608000000000000000a8dee6d11f95770243f30b5ed6560bd962b27f34d73e52c5909160d3451db2a05e1823c09ed579edcbf4a1f1d9ec94c0765ea2393b2dce6973ee91fe59e7f4426c552334425d9c8428c0f205b37f35af2bd6e8ae3d140ca3da469865865981692b8397a18d365be3b995ec25cc74579ff03a091d179b9ae900bb08c5f0042e77ec2fcf4e75cc32504f818f8172177811e06e3750818d558064e3a85d66c1702d3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a67f5f3147927dd76109879339652faf01070000000000000074e97c46e5d1157720d0fb80745b256256f94a28c92ecbcdcf154fcf8fbf91b39d9031c187d9dbdb9caa5ac19f27a576e8083981b8f2926f7a39e644b7bc0b3c3539561f658cf3923ce5197b0a055db6237c97f3695217f12ada51d1f7ca0ef0301180d1da54a5a34c7dc676ba76bcc49caf1ff199f757479295469f679d0b3901d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1eccb9db007611b2760d49ead3d2c5ebb69060000000000000058a0e9b33b9e38e6b719c6a176b28a6d8208318ecadef38d25ee4987b697f803fea37ce3bd577bb8e02771b0f443a26054ea284f7d660cb81e087ed66e5305f8c5ef6f1ec439597bbee71617b5c8d437a4a46431953db1cb5577f6ee2a81109f0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17582d565f1212f55463bf5821290a220c050000000000000074cfa9535d92211578b7b083bf474d2caed3a3f45f28655043e087cb032d465a60fce869f9424129bc7e55be036abce5cc1d861e4be1757d2439d40da535c55e096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799879002c221b8776085acb8c0c31a7901104000000000000008c444a32ed9c158a022f0bc7c710d2f406d64b7cabba038351de04316dc8f46dddef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e290499534fe1fd639dfd6af20d05c3c0f0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000001a9c903bc1ce273eb7c5921ced0eae27100000000000000030e437a9652f5b7191dec642a77372286f32ff4c8efe3f4cdc40a5c5764d2a91f77d7a713529784965148752a070735833b554bfc3706633a1f3e2335130ddc7ca9b180e187d6ac1ea2e6b7b44d400022a2dbcc0cd215712eb6d7dde4419a614f4026417d0ed9894b714dfa8350fbf0ee04b530bcab2871ceacc324360eb1a9e7ccf919c379925d2686cd59b9eb1c20147a8079485fa07da93eb2180916b1cae8bdf0b7d6b9584b674fff5d3e366204807d71e9a0e3ad80889b32123daa0a50d361ad9d0411bcbcb0911dc5c4ad6d74e3b2a06f504325f73d9be82bac13ad85c0dd8f9c8ce05cf157d06d06a61a770771e52e75c21052e308ef17a9e1a5daec34effee61a732d2d10469761223d273a3dd65855598fa113379d50099d480a8903a914e26c0a93b34c5f76a3cc05c4923b6dadcaac1d5827ccd1c543201407647c1158d340521c70223f88fc5fef92f276bdea2a91bb80f1fedc1ebbb61ca5eac251c587558c0e7c9a8b43613008536a9d5ed92bd612d0d5909fd62aab158af1d4de93880e8a7643c7dad7c9d50c90537c661341d64a6515cd9339dd0b3f616a8c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29c89c910d564c53007cd876a8f92ab700f000000000000003ad3b8307482cb1e9faa76fda1845d06062d7fbb1fb49b643da991cb2186b29dab939d1dfa72e408da7792ce383944e8a96597b5685359819c1d5fcf3d4984d7dca0db1e9ae5f82cd9c717b973d1b13d305aeaafd6a2ccca54043577392f7dfa6e2ff80edb124733ee9d9a81f96dc05bd51b252983b8ea58c691325360fa6b5e7723aad21d4aefbca7c20f4aa1ea7a8e5008befad5a6c6fa8850d55d332cbe47359a931092e3098f9fd8ab67d4e17f387647faf3b4e9ebb4516edea7c0af6e597c545b86f950ccdc26b10629ec2374bcc0e955bebf9699078bbffb32e871add5a5444e928798052871706a7f512ed69281446d3742c95bd7d3073bafaf886e850eb829e7bdb07426dc66deb026a5b5d2e0d244e491879b435dd56b6b517b14a6fc7e01982c23af119bdd9e6edfabe9932220b8d658fc943d02ca3b663cc93c78d5303092b3b297ff85e5d43f38251343fb851f8ce9f8922ea9225a46a3f997d0896aef8af1fe749e339ce2e2671671afd7685349e2e465f7b50ffe6c1ad1af64701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5289e4a1064f304a741f384a30f35a331250e00000000000000bf80dca820d232b2451aa42e2b838f7575a2800841699dfbb34cc2dc3ddfa996d4c320aba81e78fc877f65ab0c7324b5cf2059f72d3b9587abf553eaaa5c565b5974b754e6fb88b4de527d9f8037dd28582fa7d2b0df6db361999ab66e273e35c7f181b698599b8b7404b5f0c08ffc2fdfaeb8390b7770788270621252b85fee5a3a47eb04779ed3b828bd811c431a74220ac8f30301b9836abe84b23a37017fa627551dc75c61761c051afab7d4a285efd4ced4eb9975e3574edc67d6c1f6f2629b981a4d102e04fc338b0c00e60a229d560b4aeb37a712e06ec0cf6e06c174a9e181eb5a437d5c801ce7a2314ae0ed543fea8ed902d1077e9b4dc9300a1b5b15eaf557321a446702e0d56fbbb432c4ba639623c448258009225184fd279b41347fb37d59b3bfc1a8cff2ba9eeb0a492d026e76836e7575d69c29d30be9cf821c37cb77ef87669244ee945125e3ab1bc2e1338173795d0f6058402d346eecb7eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68e6e1b919964fb21c730aaa73f893c03d0d000000000000004f59ac6991df3bbfc2add539e2a8c13bbe2f8bd61d843e41747585051000179248df4492ec0d45529de9e3cc3ae6b5f9ab554a138fbf050f93bcbf23bb389430b4de671c18732f76eeb2581bfc5b84f8dffe0d96fa275da902e54412401437f8a62fc523aa1233c290175e181a7c2eb8e0fa35d54c258b8d4f482d47315dfacab3c6faef1f5c7c16f16ebefab848bf5d4c410b647912a83c86d1ab6aa1f0113403adfa957656723ed310a550c882ddabef68797b113d5a1b9b4142853ebf859baf9898358b59e3a765fc68398912052392d63affd5e9886d56b1be15c7e28ea167923545884e287407447ccfba46eee279d997569a6f8fb134f46b55703d3ff815d85f4d7efd8d52580a8b986cd58d2f6ca352ca15a8368119c61c61f3e091a4833001c52c887530aa470217eeee4bb204e4604806a50495dddba2cbf23c5e30af4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999acdcd11fd86353139fcc836fe413a9560c000000000000005f654c3aad342e397c760c5eed14fd38fd0d9fef42fd98c0090a375204882733129553a4389e26c9e5429f5376060a67c7afce8fb0228ef692fdfb6f3beb714721cc522dd861e38fa60bffa15b6d54aa71e918b5f5b205008ed1e4db02ace225464535f20bfdf982327cba1cd8a6283a4eac0a354a9ef8a4ebe1b5e7dc26f75b5de6477d8ba1729118c42517a4a516576a25a7a732f0678e0c6dde9865fd60364053ea5b6f9ded763e15f8cec6310e93ec4f2388f2706fec31648e0d7dd052682986b19f7a8a0eff2d4168b41e3af6e576bd6172f7653e6096d8c912278b0af695ead5014726f4a2114e2ecc9604ec4100127da22229de3b3f1b98dfdb198fcbf20cfceb88b4fd87658a8834bb7f17bdb0a4dcb5c340817c3dce4a63d02c132ca99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2494c0fe366f317aa49c1dbb16863ae231f0b00000000000000553c5eb553d2b8cbfabade6c59ddbe50008c9faa090bdefb0444f335b1344e25adce1307cd13ebf89989637ff759e635917dbe64d52d735755d3bb833f6377d78417b190c7d39de1f6eac529a3c2485fe5c188e13cccf97aefaab34e1813267657227159f6fcbf9b9948d520fe9c0cf1d437decf0ddbcb2c1c17ee608aeda2073974e9f97ed12a5f06ccb4660adb480a14aa19bb18d0c06d8f7252339b98c31361151f63eec484d34b5ef0b8e9a7fa595042a6b0d0b9734c357af6995a5d450a002b17c6478ae6174d588f3371e04106e5338c4a40b728278a7e0a01756c3c7ee3693e61a42d391f4683c6b9e12acc7a151b08b2f9c1caca5db5c9940d1a488ecc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cae39d841fdd4c62e99c8ee5825a663580a000000000000003b7190e72db4ddc987a30ef74f45cdeea6b87be9bddd4d71374235e36af706a120d2229d98b9236d7e7415f7b4ca82a784c1a3e03c95013db40fa6384a85efe7476fb3b9af38a901cebf3ae058c2b25c9e0b7ec5509d9fd19d22b7cab87c9aed405a8f631a1a2f717fa47c5fd24ce3c9082b12ffb2c25f326ef5c55ecc678731c232cadce2a543d8a38d1f8d3e128c5a0c024c6e982e54186f78891132bd2f3fbe9d1cdb3babdf31cebcc04f480eb4fefbb926b5acc5cde4f0e9d395e529635dea59a21c170c5556eedd5fcc891810552c4da516c7a526407fad281df12a736a8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c057e45d2c4af4cb6f00622c710a9bd71609000000000000004268a828022be7cac99612b614a3b0f5669abb8d688c6f0d9c080bf0ad02d6bc1e77f437d87b9905bc446d7f5602ea87f435ef69a5677d3980f52b6cd873377692956e66298572070d703fec76bbd47173a251a677f2e874e919508aa0a1da909cc43a72cc77a348c9dade412a23f63dcb64eb6e19be464311405e905bef2940eadd89795539e440304a9169e069cc77430bf785cb00782174f50a8658ac886542cee34227f86b1f9f5622a41dfb67182587ea96c61d7e0c9f7a729b6653fa6efcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d59287513419eda3d18b5b067fbb1104d080000000000000095d0faed85512b8b8c529e3c3c41bb548b4e64619f0d58f8a9e1733469a7214ab097f6dbc2c3a11fb28cb5964538253a79396081231de65cb216482b9e7d52dc0c67c7da8c652f67bd1279470136c57d4ce45e5402bb40960ae940d5a2fd847d4fa9d4c007e43e13c580148a77b81d96cc6f95fb7b26a8d42859fc6cdd60e80224c15dd5ac9004880a7ee7af377c662c435f500ccf83a45ba22c72deb9bed909a8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222825c1d6e0c6458037022b6435988fd1007000000000000003c9a38dea7bcd928b986aaddee9193a342b2a4d7a36a9cac95f747e0303ef70c16acc5c0fc50426b7f8b8e9bcf323ce3e888b24227d7f710081339991458d62dde43f29482bbf15f171e0c761c4aa3a5b64d4fe6845e21ba7e221e4e694adb1a3ff61557d757bd2ebac4fa73f69a62f3c877e4ebcc344f36239bb1df1385bbef1d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5455a515cb127c9555e71a5658c70b03b0600000000000000e21f0f12ba19211c523dc8afd14ea291b0f70455f99493d20d3b0b217c2c88da89de7b6741bbfe4539dcc223a3de013b839dcc25ebc3b53f9c2a8303492b8c9370bccf1eb97b05a8403a9cbead60342068aa3d98db324e83798851285a29be91bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cd3b5d6512ef72346d5b32e27fc68266b0500000000000000c273f5d1d1c5006dcffbc50b4559c03ee0589d07bfddbee66e1ac97a2691233dbaa935baab7c6e5104691d92d150c5e1d0e4bb7f15899b8437f01fb0a6834b31b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c2101204a86d4654011a7501c99e4b00b0400000000000000d401090ba510c51a9966e2bb3cff567377e74b8a78a9c4bc9556974a0b86677948d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c000c2ed3b5eb43c6185f12609d911e34f0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000008fe1bd1a3aa2c74d7391ce2a2718505510000000000000006964118cadb5f293b7f73f37afefec19a90cce9a77e6f0c600dca3954e293f16b935cfce895cb70f35458bba82721435288bfbcf63c109891d76b9c5943b8344176ded8f11edc8a6526eb2f793c5bd87220fee4356849a0fd463a50ae757a86bd21161df45526299472be0be459c18cf36715817ca5c6dcccc71346d106d57b0e1c547ce57e447d69fae387f52f2aa6fe3315a3568b7ce98f5f2925b72375a8346603899f625361c186ebb9d04985448b1bf5fcbb7971c886d9d7fd9554bcd7af5ad1690a8f66450928ad62f08d2d10eeb92ab21f004315f302c2e826cedb924784db751578b5348afedb1f9b3322d81eec79f898cb67d7542046431945c81043d3661f21047bc270f53a3e73a9414cd58fd5ebde940290eaedc64133a6ae345c3490de5b738f1ccffe835a43fb587676e16b44720276122ea2ea1cb6ccd40844770f021cf07ef1f237fc336a2b37d7773383a168d44fc5e6e3b6e88368f71a2b65c67a6de883a72320360d97d176701e05469e0374d77118d2d4b8ba46175c649e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07811509300bd7005ad439b11f7c331c4b0f000000000000005a67ddb2104b40ea654b9597866ddc2c051d9f68f3a4dc8973f88fe1d22e17e3c72955da50931e3fbb08b2f2e511729a5137c93d888f0a63a5353deafbbf2c2cdf1168373d4f986ba0632e2e35ee5cecce24673b5b3d1171399f076a3508818735c61fbcab9099a297cf54bd3c4de46c71f1b153cfa44a95d74613a5457649aa020f883af786ad38db6dd1e427371cdea9ed50cb759ec998209ca3c8472b0ced7e8e86de60c533f93f54077636621c5825f3180443886b414a381c4354cdf10c2532ecfb420addde976c8736cb4febec8e0cd71c297debd715dc131eaf923a832712ed5e7111bd1fa2854ab5e76446ea4a9d88cebdf14cc56d9c41b20c78d0aa1e0b1af519ee179d31830c4bc8bc126f488421610de313dc1be660dabbf0ce6c0610c1abca043a3afd38a85e1560ea82e43b781476c7609c2f4dc5abc01df81008c2ae601910ea3b0718b39017639d604d681a4783382f9bb6a606d332f33d33c5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19ce9dae6e5c3b022a7f37c216cc12ea0a0e00000000000000f72ccc3ec7417516c7a942d09e7ecd94f22139424b6631068c1bda782092251189aff87ecce250ee48e1f7815c80d4aef5fb11a238543477b511a154250772f8f78aabed61c16d0c21fdd793a60a35718feebe950fbe1de9e2387816a05cbfd0fb437ce3125a2b618c58e4c2e7db69476acb337a0c7615b831bc3d4d53354486767b3779f457f33ede928f3a5bcab310ce4c389b7f6230fc1ca3809a304a055fc8a44d30155fbbc2d37916777f06312f391788743b97d1acf45182894613dbd0ed4b7fd5fff980e5c560e258c297962e3f33e1a493366127cfb0061157e1427feffc1d83b5aaf77a9b77dd727138a4328199ee822aa5d2f8ba1d5796510cfd0a5730f51f453f41c53f96d4e1dfffd45f6dbf55224660e9a23ed32d6a2d7294a8f952cff82aa40431271b5f5709edb59b8b817db9c3a425558f863da2c1b7c9ab4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d5ccdd75a75d80a1c0001e1519c97de380d0000000000000041c96a2e925049c3b62073e3ff5d1b4874cd775d030489f7ff674a35e2a783d912b58a509e99c5c89498721902530f12f398240dc29d48b64252c986879fd39a40a6f9ecd0229955b4e8947f05b51669fbe12cb588286f645e32c4395ef35b9854e195d2af0bcab872cbeae21c229954e0bf08e94573fbcd0c500d29de4daf46dc25a2a1011084b7caacdad0376c1c274b4d2afa7fd51e90286b2c317494e36e3193f91adac9d129f11cbacd057d063b6cf207adf95d80156c0eedd6233d027ee0a0df7a22c1b0ca6e889b573bf43db85d83957f5964172fa90657c8adc7b6ad7eff29b8f8fb19a8b10c60d37c1796b1c15e552392832a584be66446b0ee899696863e54a8a247872ba2d2f8a3877f913cf7553a297eb39f6c2dec7599aa2c70001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff96d4f5c62ce7c465f99932c44a9e916320c00000000000000acc72dbb8a33e7f89bde41c5618f1b83d08fc9b5f35cd4ae62a89eaf412be1b20b34bd515b89224a682811ddcfbab0f33b07b043d04ead3a49959591c1986a236abeeaf546fe8aeabc6948d42caf74aade7fa8a64b920f318af22f80a3c92da8f78b53e0eaa2ec86513adf6df9dc065c820266ad5523a84f664d6482a10fc3891a5b188b4d8ac6863a89a9341bd984e19247cf9eeef15633a547a200c99730e24cc9fe5c1f41e874326d81aa6e1c279372309537090a1a48975f2a14ae0b2a3a9eff52c3a1041505ffd8176f6e383f3c7dc01c205d8323bdb442e2062184bf402b791fbf2194a35afb6f074cd3a5a40406b60f116ec1763f10b506f4d731ee8396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a833f82d161d99e8614dda51754ee45b190b00000000000000a60edbfeb830fd8b4da18baec7d466029b407431d22ddd87f18e7d2b4ffbb32544ead063d230a81f8d0892275b3cfeb513d4e5254d36f40c83fcbd9ebdbb57722be1204e27231db3c636400369bad2d571618516ce0bd082edb6a8a737996d3c5d3c051dd78ccea17f33998dcc948f16c1d025ae187b8b8a1ab4a19c893048df00e4d98c3bac048c06fc3b5a94fa7ba61d778bd719805ea804b77402be0a066f92acdced3a4b09ed514762090e16e269048144671a43e4d6273433de6160386dfb44227a9ed3934a7b8d30ba039e6cc0bcc078c982b77dc247cf27e0fb8cb9e7da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ec4c47b39cbdadd6ff705aa23c70445770a000000000000005b5a08e7602ee1e24a2c3410ba5a7e14b1c1f18634121ebfa53f435a14d2d063ef9bb3736becaabb6a5ffe0741c91a00b4963c3f8a75b919b34acd92eb29c101681dd5899664c38eabd7aaa0338f9616a68b620013828f11e5eed25ce4e9fc2d529efbdd0e50ca1f171c01bec9e9d3c051ac404637cc59e176c337e040e32ec62d5950db8608e8d1165d46b946e6c4313e26a6065261d6f555164991f1ac3ba7b79394b390709200944e833ee4eaa05e8150e361cbf28b8cdaf6873856e753f2b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b71c333283ea5296c6a736548d8da9f620900000000000000c63a8b7185a1a3dbdc9c8c4d32837f5c1f81508c68126f38777c2aca7aff76a1f659b5ef3766e2dcc66766b46567fdcd39e67a1642572b22a2f94ce196b7059d04e68dd6451c86ecd0f3471bd119f45f7dde514e8e2e45470d07f2081da087f4b032a90f8c862555b7917a76da1c9264ddd0e6a5b47aba4425ca943cc04d0b92fd4d46167bb82308050dda3a6fbab0b6278a11e63bbf52d612b81ad228162f42579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc18d68e1e7463cc5cbc32dd46c597956e080000000000000052d9642c1e284ce36d6a3d845a5b427f697dfc3ad4b15fe11c7cc096b40de152eadf784f5796695148d1eca2fde84ad7d132f1159e855fc01e9dcf64eaf87304e0a4a1ef0ac518a5558e47d7d79a423aa6bdd433752e4fe95d311fdefb19d2f2b232271a5dbeed672ebbf8c62bf9fc3491a8174f6ff4394b515b187612fa1a9ddd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a65fec12407300ad0f5fb30418e1620f430700000000000000b19703257098d16c60cf544b4fdeb03668ff575f64e73c635852eae467163b6b12fcccc261d0831f5736474f749f965749600515800238ac96bfcb9973491ec25c6ceb1983f07b093079e80678a0b57fdfe6ccb5c232525e0f58ffed512a83c99f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec5a05b441da82ef1a0896261eb6b69a41060000000000000042b8cc81352d2a0d37fa93483f47efc3d3560d56f9d4819fcee7aaea21fdbfa5814521d9a000f41b12b4450875a802957e5169bf5bf279f13d73ca27cb4b3bd3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1724644c60bd66865086937266930a00290500000000000000a16b71ade2e8c83f09970d13212a25d10b5437ee158849cb3524ed8126e83c90bc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998cfdce316d4edf8661be1fa428b188b0d040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000a6e2565a905e4c6dbcce325186cdc8711000000000000000fc0349a605c4c12a217b1cb579696e6f7d929ab489a29f5495199970bb86f05c3605663dbd641f89b1f8ba753de74b69907a04884706644a4e67ac29d687aeb2d001c540db9f6b7cf501d0e8622a8702e0be82b16494c1cd10311334a621a53c2a407deef73baf17936ad10a9fbb62363fef206f0b049ef6a7dcb14c8e4409ff62622bc164eb007948a88d51e48162ea88b49bc9124599ddb985e17e58506214256e1dc8920ef910d5b1f8d05687b37ac8b4dc579b1fb98183e0d5bedf80a07e5e2613faa9344069984fddc1a8d60d3b4723696538a53e039837a6d6d2655c6b64e9a773ed9253acd0e22434607611a38f24ec76ec7e46a1d1947e79e9b7a0256f20a55deaee5e18f35fdf17930e8979adbd5a58fbd6fe7ddac921e0964a29a2e33d0cec002ea7c6284958414fca53981b468efc124ee36b3100cb9a27b2e7a4b38b4f579540b51329b6f2d3f1f77728aa5e0eebdc0c30f2d3f1ac5a36414bcd0b4c260b316ee82b50c83c8a9a8cd61f9de3634ccf98e53fef49abe4f8934a0049e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07b82b8b70c74f5564b0611f26754dea2f0f0000000000000009840e94dd62ebeee0b3ec33d35b9be28a2c39f2f0051774a16d0f3dd68ad993602c7e506b6850f37ff262d1eb46dcaf3b5974d521e0807b372bde29a7bc0d18403ebfca1e38616defd2309c3189b6d119e6d3f0e72754a1f095ee50906d5f1cd7725c7bc14001ad2c50c27abe23c8ccfc610ecdf048336e6396096cc146bab57e355905ae37ff76a85bb1fb8240eebe2b923a7631729f51a6c0c855501f0ee7e508dfd174011ca019b7f8cde6861afbc2750fb074008584c967a2480b28f5e9238dcb6f7e36d63149a26cde0779bbb05805d4882576668100fad7b3c605487503ef8d570d37ead5cf6f0aca59eef026e3ab33df45c377e783b670ced20b971386b3e33c7ce695651560410d226ca249198da3e019b9a0a4df48b82edb1b95840145a4517c3e10e1ea18566a9d683520816c64ae5efcc5119082aa3efb6be26b83df9b0800fc719fc558a966bc8649b6a86229f0e6645c5ffd28d8633e6cffcfc5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19d8d41744fa3a283110b2a9124acaf6590e000000000000004fb2fa30282cc5853f6077c71ca25a9039a0a6bd6f69dd0110d37be3ccf9d37a75f5d39b3401df0fc7a13ea782c0aff05dcbc11bd6603e22a7d0ae34648c86b0d6a1c4c933d9203eac5303fedd326c0e73106a53a13007e53e50e1730b3346f1e2f3d6cc3d12f6489bcfcbe3766438de783e83c9ab0b9021f7653cccf7bef5255ddad5f0310847517dd4aedbeee40da80a569b9e6b2196f71758a4b78e172b03fb31231ef4b8677bdf40cf511a3aebc5affe4c4395d19cce5791cead43907f0ed03d786c138868c1ab2e543ee020849a211802995e8a65b5180a2075b796d2dd085407090e1706f895a13444a9e393321fe84efa744598e0ba019b3286d832c78471662dcb642c1e23a47f1fcc14cf9b7c848acbb7982e0216aebcd5240c66af85256e8e1c933abf3dad7157f44b9fab0599491d9d0ad27144d80b1328105dfb4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d5cb92b2508d95d1fa503a140e10356560d00000000000000a946fc517abc76c0dfd417048229b42c1bb80e6bdcc667e1ddae43c0c8b7b5d5d3043dc764572c0dfbcc90465cd9b381e79e3b8256a8a76b47473d3e6357052c283a584f9714df13a292db7fa5b5cd890422fc9a33d5bb5e991dc0184a374a818b1e8b5a87f9c7748e17993ed8c4fa6463ab4d9381c20b3f05b4d3d84b41cc15e8d3521862194cc1706a6c12fd996a214747ec2ff233caca56cdd04cf11bdb3b9cc295e9dbd2702e9bff5ac5ffaef7db9db56725ef03f8ec381b0d8036c946b7c4616e96d7a5632119fcbfd37e2f87c93cd137486347ac13e60f4a9f3f6a4f11cca70efbf74556eba3fe3d081bd2510e310432d6ee0da5b90d0adcb9b555f4dab7b02e4d42392ab275e93548ea0ccfdee278a4dd454e44e4f2dfa0e550b362fb001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff93b582443a450f91565d4c3403e21820b0c00000000000000a758104ae11d0b3d2e151a640e94231191320929bb9d0572e0ed4c28bde47d33c6461aac36edbe09a12b7d72ba3952a85641a22f1dabfe415c326f31df79232b89df1c581aadfd5ac48b2063592c5eb08b83977480ea916405724bfa27eb4c4bc2a577d36318dc6c51c7af7ad9c20e21d34dbc7dd69956ac8216e7a6be351b7f2688960550251d1303818604fc81776acd397870d7f01fd47558b6019eca349fad075e2bbdf7530edddc277716131820e9d36ed47f55ab4e1f18bfb9cce9793ed3ac086602a459c4aedb7763276c7c6803ee036916047c3e6e6df69064675c8e6adb67290d1bef3f2973f4aba88a7857816291194f327111a27e12b8fbbd845396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8be7b8c3f680fab381ba65111a6bf1d170b0000000000000091c38cf373eb59c293222df5b735e693ba67a81c8ba079dd298cc3b58f4d96e6d2d805876f5931c42c88770640862f8f9530560fdf846afad8f1a24801987f1111a809cc67880c59e7aed3a994ac364c4af678098435f09d7efbe25520e82701ab2f2dd287ff703cd67c96c82855d70ab97ed632754ee74e3745d4243a1941134128d103f4a0862c43f5cfdd03ba571c52494e4d8c7784ecb01479447b0d579ef5223d809000b5f828b219ed35203f68c30e9951e7195023ac9bd8ee972cad7a9b17c506fcf44bd442003ae8f053e043be63406902961fcb3c3e3349bfb86ef3da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ecf1f9102f75b7a5b24462822c91cdd490a000000000000006a6d90c3ee786cd4c21f638921f9679e41648627f059f3f8f4ea30ca09d618e08bf6c575837ffeaed0eb6a5c5240287a994da3450b9d1849a4e462c64f42d78c612dd0c1339ba850c44a62bacfac7767028f33a447061eb68185e05e0e9822feb33a8e0a668e3089a737fd61cb5aacb2e45f6451f77851e18ae7f3db9dcd25f6c3cd7dca98d8cbfc23d690a00a0afd5ec30d00d2f7eef27c99e7f6805235e9131877b8bba0141a34ac59a6499efe992233540146045ac955f3f1eb4a80c3e5d4b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b0d178131355be66a60c71e2a1a4ab62609000000000000009625560ed9e7f547e782d3f33cb95804c4391a43f3a098bf1cfe1d53a6d4ed359d57c053199a27662dfaed01120e3f1f0dad89611127934cc2f81f8d4b82a6da4a75afd9a2fd34d29c470e42985224b307af2eba609536c9465a22615b89a5f044cd348ed3ab320d87c8e84275aa8094770218afafe10b9fca0682408152c698135b2d697fafe5304d72f156b075372193a61cb8cabe44f2d2e876b75f981ccc579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc02dffe239a86be6c2ac759321082e75a0800000000000000f93f4564eed6317aa379f426fc99b992f9bd00359e7d0b8b479cc2c4429f2b7b55c8083af01ce4a15fe67015f6dbd0ad81b0a745202e546c5c777f7e350da560776bc22e45564c4eeea58277b5fa28be39a552b150621bf5a1521aa058dc296df1ab466addd7934ed99ae9a00f8ce4b8ac18c52422b9a20e40fbb6f725b9e4addd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a65926646e9c3ba62d932a882fb0cf043007000000000000001857b6cb5d1ec57291fe6967804eb3c8d37df12888d4c68ca6ac4b9a5b5c3bc062cc799e06519d1d93432d1615243d2ea9a275ef2345b85415a461b1ebceb8e206f13ab929687db3a11c64418dbb4dd26a52bd681b0f35ad3ef343748da547579f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec8687f615ca47311d96839e3b34218e5d060000000000000020022f691be7fa51e4aca4a204178cbc744d06b898cf0882106f7bddcf54d7b28a86c873f001c482ad15423f419b1be26434cbcfd71c0eb454c4998528fe7ef3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1749fa086325e2ad2acba3f3460d83f16c05000000000000002602254f22ef23de6f52a919e2d8f299e892d74b0f2312dea6028668c479623bbc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998b74b14753f0c932b96bdeb5b8b03bd0e040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000ea0eda26265ac136c60fa56ee00ded40100000000000000008c12f45a3980dd01689325ce0dc97fc0d90e41f63c34ac6044a8bdfe80903d6ab634680808181726cba02e2ce9b7076f07d5d117f9f2177b45bf1b87036a032c1be0c4c90acbd30ca57e1aabb716d18e839d441c4e6e96c9cf5ee25d82ff14d69fa29bfca8fadbf01473e59abd5f65bef66801f44bc53b6316364e45eb2686174171b87020c1da8a5ff506d2a67fb7a18ff98f3970b073b3461bb07ecaf14a843dfd173f8eedddce694fdf14647db671d88f93cd331b383d178f8a009095c2a9e54d516f4a6f098dd6d5454243a3b2526b6decef57e26adacef8bcb8e18363e5ff15c837cf029db5572b11d22624e30180d4b468a2060304eec37717812251810e70c7ebf12ed3116673f7c20e6babbe71d0170824f0126faaa020f4b734396e307e6da956b7e9769e02954eb40eda71308ddcebadcab187289164a9e3c2b991a8e80e238bae8b36f856d37b017c7bafde87b456107971e8ab4f55354161fe0ddbd7b205580096b94bc8c5e5765eef67761bb220d030c77da5dad1a6ecabc21caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2eec6cb36e4aa6b6466d6bc041b91ae320f00000000000000f619dccdd077a96066f4d158150c3dbb2f22e02c2f5fba5af1abe55b7bce6497cf409c36928f313d2eebd9d1f6a8fe769dc3d5a3cb4644123144468409e79b9003f9a14558443522672c3700037fb3554ca3e4e0053d9d59467ae95d6a856406b20a913d43d639a37371f27814de602e1361e90b48dd26361313559184791371347780e0875a429a3c6c262b065d2d18f21b34dcdc5e8300abbfbf3b87bdb6b9af2480ff3c991da4c8da1c7c199e541d8cd09804fbc9864cb5823d488bfd9dcd3af27cf87ea5ffdaee84ea73d2db5979b7ec5af2b568cb068c058e7339cd52567e7d24810b852151a4cc90597a9d3228a22528b1c82f7ae5aeb47f1e69403ffd629ea0bb0fddc33af3f80bbb8a36d02e3f5a59399bdafce7ed98d3d42707a797c105c85c2b92df69f5b42a3b28d777067856fd8a8500601c01201d496176199edf33eea6b5469c3436d844b62e6e7a67d053185699a57bf2da9aa6dc454998f9baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528f2c4cb689e5b890d2ba16c47719a603d0e000000000000009d12209fd70d91d55c459992d97f2acb9bd781517411aa781cca47ce905254ee4bee967e167724b90c73043621e902ee79e70ce7117ae0efad64f8c0a97f8132a4a7d9a56683ffcbfc7a4f016efc50a2b62dfd5474d60ff840ebe6d93ebffc34e8addaaf2a148f8629d6d445384cd6fd7bee5a23d311804b2f4cf0bf9328f33261178f4ae3d312722a9c1e6c18b2c4be9d0014f5e5c7f00ab40f465537893a82a5d82f18ee387a9107dc0daf83812178a72a9802529f7f4ebbec6930548dc0db88d2e2ee434fa826b463f558365121f3f540c8b5c5c59c66c02c0e204e0708c7dbed903aaf0d2023d5d594c46f5a74480e1b3d61d7620fa664252b4d23bda6b06d9f05055a422a4a75aea8d300fd2047c49ed5cf8ddf618899019f427ea1edf93d4461b031edde185b196788c6e9909de90b1100afb03256d1a93b63cf3559453441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68a84e512981ca04672d1e22654758192b0d0000000000000094c6ea29c0787512a12cdcbe70294deedabac965c2405c0edd262b256c2472274bdb651172980565a85b56e914890401c936f90e618c508436e37ff503cb558d840588cbfc5e32249befc1b2c2f80b9236c47f336890ba04cebecd953759bafcd5ed48e4b71660e7e495fa9e0348db807438dfb71c77d12957c0e97ed9205c95b8c0e0a3e0d305e90c4df9fbbc709ec91cd25dc5c76a82fa7823778f222def570d5545d1fc18edfeb0a621a0afb283118dfb30a831310229e3ef264884020ee73e9b875fe62591208dc7c1a3822266909483765c923de9967089e6c53aa994c5d4d9f6eef6f7614885f9f2bd8019c95f7ae17237a2f5835e12c43cc51010e473d789661eee5d0ceaaee5b6116490ad57ffd88925dace9c06845ed0f8d66f1ecddf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999b45c9c4679c1a242d0db9e0671da33040c00000000000000cf577c86615575d34f2631b69ef8524337253b25748b2d1ef653195b07456a7a6af97b75a57023ae3d73bac56bb9e071b016a84315c2f1052fbeec3f3d64a531188b138cd6029a777dc601ca7830f8990234cd618de5f446968922aba3ba6e869d826c52eacca8dc7204e2645dbc1017e81d3398473a428ded4dc9f1160590525d9456b92ac92cbf0cdf0bcba6228c0992fa84edf846314406fc1916088ea78c3a7f0a2a4f23e3d00444f265d16cabd5b82ebd381a4efc9f0841b28e5a16735ba412ae36825d6c8f8406b9b27490e1a4a809b246aa838308f35b0e28885a6f5aaad213b87d56b154d25e9cc617921c4612ff74e1d32531b9829d6effb7325373cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24972b4d04d7d0a8a49d380467185749f310b00000000000000790bc95b4b226954c9f9ba60bdf7efe9d3aec45832690fdce348828acf4587e84e3bf00edf7a5ec9420c6d1f4e3af3bd64a8fc8d8c3474f11ae717f31839eaf96f82510a3b34c7eac184a1014c9ed65aa739651b5f76cf4c2325e4ad40e23e1d42074b6fd4eb1e1ee7ffbe2fddd5a9625fea133f8d75ffea7d0c89277ebc43da844adb469a09cb3cc3718959ab1456cf8790e0af6b96f4c5efa2c49b3c2b8cb8aa1f133fa13cd3c9d0d80fb58802680e7126e3f7b3fed18e9e6c1616f9019198c2cf306d7db655fcb7690e6d218a1b385b29b7ec89166c08ed10097877d3d14cae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c62886a30cf0edf22e452b617c7fea4070a00000000000000990845de0a5ac235cd67ddf099fb7870666c0e52c52cf16e90658a03033909420e148e649d97d841294d265f6e7162c68cc48d354129546c79ab62ee36d46f3894fded8a4f4111dedfbd5c0a9b7b9f157ef79c5002427ab20edcae31bc81e01da085e7dcb7352e0aa91302b49eb42bed2bd2d27120ea92b2cfb73fb98488b3bbbb2e37e3c3e69c3125d3d2f59a28add177e4186e12c20dd0c520d1733318aa211072d53c4315ea2d8bb69a5bd0dfeef36d420c38389a5e4380488ad126e0fef819a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c057b186118e146e756e3a3f41b543d669090000000000000086f8d40ffc274b682b36098ed0493e966d3a022b93cec36b1b2891187729b5ab268ba109b4efb6080354ff045825e4ad1c31b603d8ce3de101c6c653d95d64278584fe02b2be9b49e85d5311f5ade7c54a25fb80f38596d05cef8b03b8d48af7432db5839a9572848a4e6c0677d7780f8f7d775fd5ba78065ae7132da67aa688f2dbeb1e32c98367dc926de6b08588f4e8f00b4c0227ef69dc5a6a46f3fa94f09f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960da2e557136f36084ed5d5892c83ed7b680800000000000000781a2ba52a3b3898b7430718b41556197b16046b125e9d5c166240f31d78d901f753257aaff9b669a2402a8caf47ee00b277d7af741a22e751a133f1892b9de548c864fa74827a32e625977636197f61d41d5f43c641ab6e57fd905192b9034afaacbb61196eac22f6f87ac612431dfae0ada97b8d944fe45e8a9bf3b7f74710206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222abb3dd65c065bd6190b14818e2e0e02707000000000000008e136011418b9ede33ad5911c39167c47a393508b57020a3780edd57c0fcf5f7a2f924a762a164d1229796acd14eb7c4dcde224c7131436fce9cde5271029bf9aead27932ce7ba47974191e00a8996a872b00ae5ccaef3f7cff581ba8bdd14fb2f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5bdcfed34acdd89338ad6394afd30bc430600000000000000514c6080478ec44fc74d967a79a2a803dbebae4139b5cece40fcba37e333983613935a4494e02a8598a5f923a9b2fec2af2ee718cac51f199ec1a660583c8ecda387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c939b770c0a89b235c8d7115cacd1d5000500000000000000f68f8b30c7f5cd817adb5a125ffd15ee8ed9f60bd834775746f4328adfc864c5bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbc657b6707347949ee81a20cb063461404000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000e31fdb475e35083cb0a0e20a2d419356100000000000000084671883a9e1c7f3a7a2f4dd8185d7853e04640682da30bfb16fd70eb7d96bf6256042b2e039bedf66f3c2e10bac6c10b533a76e3e7bbbc52aa350fc3608e04a7fd01eb3b3bd820a8503255d301ee9a97c2c86863bbebe760997240c80aee47cb1daba77cfaca6a796d839577369ce8ed0a5f2e4b9b936903332d241e3949013a9dabec5dfde1c0b9b5e8ff9d518a29f33e1dec5450dec5590051a882718b4b0d142e0cf889ec38785e571ef89c968db22ee62e6bf61f32df1d4cd41da210772251cc8217ea7c551cb9ae8ac17d56cd84646b3bcd9a8f1752e53c1a014a88749940c26083a88770d3b9a6bde4b5b5c5a9ae4e1c33c89f16dc5854c3d9d64ab223878802babb978cfaaa6668ae55640b51e09de2ed1155c97a402fa10c0f69151e307e6da956b7e9769e02954eb40eda71308ddcebadcab187289164a9e3c2b991a8e80e238bae8b36f856d37b017c7bafde87b456107971e8ab4f55354161fe0ddbd7b205580096b94bc8c5e5765eef67761bb220d030c77da5dad1a6ecabc21caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa24c9c110687fcda10e3078b5bee48911d0f00000000000000beb16a573158768272272278fb99a836d3caab68fe08d9bfc9622b117e9d55f9c8c0feee540828fd4fc627e3e63236f7eeabd4fac47857d79fabea44be6bf77dc0045c18d0a1add78fdb4e9a9cb81d6156dc7b63c414bf5c70a50a38fa6d16d245e038121986fc88f9be6086f7b0e4e02d73efe028d2f793751d234c11a4f51a11c74bb8fe9bdc9510988851239903370160fda687b8a9fcf2497ee0bedffb93d6d3ff5194fd5d1c3832582a78b18568d67d04b0d8495bea461acc666aadb85cc543357a7e2d0df86ddf3323ef0bb439720db1653ba9e5bfb21ffdf2ae01676961ef555fc79ec06e29d1209cb877f05569da72befa18881bc3cc5b7bd669ce4d629ea0bb0fddc33af3f80bbb8a36d02e3f5a59399bdafce7ed98d3d42707a797c105c85c2b92df69f5b42a3b28d777067856fd8a8500601c01201d496176199edf33eea6b5469c3436d844b62e6e7a67d053185699a57bf2da9aa6dc454998f9baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5281abcec1f8e494f337e1c9347a97dac430e0000000000000012790e1413a0939efb7bb5f5cb1b11eba52b75e1c0da20bdd6c69a0b86b5882b9bfc894dc79adb3df12e494bf6131151ec5c9fa395d3b01c1131588e76f14d6513c80b1f5d36172460d7fa2c05294ac69f4b8c1aa39d09077667c5b79d7155e00b8b9ebf82ccd5e4b04e535f8620c6545052d91afe2800904b8031b88b0f044060f160a437b4f0fe1ccd1464fd79355e4b5534d96b58a5468617e4ab921ac45351240020afe16f34cc54bb57b81dccaebcb97af0dde1f135cd02d69832228dff202068f7429da3d7a65069847b49700feab16d94a605aa27c7a5cb0f35539d9adbed903aaf0d2023d5d594c46f5a74480e1b3d61d7620fa664252b4d23bda6b06d9f05055a422a4a75aea8d300fd2047c49ed5cf8ddf618899019f427ea1edf93d4461b031edde185b196788c6e9909de90b1100afb03256d1a93b63cf3559453441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68753bfa2b696fb05304a81e649f6d59070d00000000000000a0e13cf3ca0d0dbc1e5e70970527dbca6122c17f4fb1529341abfb84623cbbb06b28b2f5b0318fb28a9553462e2c663143cb7487eb2e3ce7b05104cb02708529f0319227e23d15b6a09731406e65921ffa02820ede0e6cae604ce7b8dbd264465355667440eabb0284712ae82bea2ca95e112145812aa30750e4f6fd80cbc325d04bdae5863c8595f188b7bac698a933a0014b07a9470c519c622928d0587d42ca58310d0a9fcf39fb44fd3bb2ff1435c4a91f1ad8a73b02d138b0384fb9a76a3e9b875fe62591208dc7c1a3822266909483765c923de9967089e6c53aa994c5d4d9f6eef6f7614885f9f2bd8019c95f7ae17237a2f5835e12c43cc51010e473d789661eee5d0ceaaee5b6116490ad57ffd88925dace9c06845ed0f8d66f1ecddf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899998afd11107a51ee275e80e177bc7c88120c000000000000003fc723d5c8d3a65a4ee36c4a2692048b1429494500987d2e73aeab8e0394dbdb1eead56f737684134df2f70f4bb0be101d22d2ae05759855dae735e0036f2db0b6f9fab3904ca7429077b05725c9b38164ad7dc10d4a813cd2e37627ffd7719e64415dc3144d30d97d4da8dfedd068b1ccdaf53259fd411c749c94df6c5cbd4a04e030e42b6c186eb96827ec0563ab121ed355d20f448059c612b69f762e85df3a7f0a2a4f23e3d00444f265d16cabd5b82ebd381a4efc9f0841b28e5a16735ba412ae36825d6c8f8406b9b27490e1a4a809b246aa838308f35b0e28885a6f5aaad213b87d56b154d25e9cc617921c4612ff74e1d32531b9829d6effb7325373cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249df61e81fdab83048b2d0aa3bf350d80e0b00000000000000a5556d177e9dba378104132f8b0ea1764e93618a2dab150226dae53e73e71fb00ef3a8143ffd27d9f1b68eae3952049b94c30f62acb697c021a740c41163a05a788426fe3f42cf8f595635f689ae4fb699b1d06306e01b0745991329cfe70f2b068adfef2ce3ee0600ce65ebf879e53bef701c36276a39a4b40ba925b9916099844adb469a09cb3cc3718959ab1456cf8790e0af6b96f4c5efa2c49b3c2b8cb8aa1f133fa13cd3c9d0d80fb58802680e7126e3f7b3fed18e9e6c1616f9019198c2cf306d7db655fcb7690e6d218a1b385b29b7ec89166c08ed10097877d3d14cae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cecf53d483c28200057cf514ba2c6861d0a00000000000000527832713c719dabafb8c5f1e4c7d2bce55e3330725d8e95e967ca3ca74ec5cd1feb546c2ef529f524002857cf624bce019c86b2761dd0d36c50666aee3972d3d420e4cc687a9703a097fe96290f60eda7784ddbb5e30c72cd29da1c17a7602ba085e7dcb7352e0aa91302b49eb42bed2bd2d27120ea92b2cfb73fb98488b3bbbb2e37e3c3e69c3125d3d2f59a28add177e4186e12c20dd0c520d1733318aa211072d53c4315ea2d8bb69a5bd0dfeef36d420c38389a5e4380488ad126e0fef819a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c03ff73918a545ea6f8897d04963e7e16c09000000000000007d878e08f3cf19fd53c6e55f20ccd789bf13f1330903f9292675d6d942005f2fd3020bbf1a5790033738f70e611170877a9697f97d7973d9495cc9341967d0e38584fe02b2be9b49e85d5311f5ade7c54a25fb80f38596d05cef8b03b8d48af7432db5839a9572848a4e6c0677d7780f8f7d775fd5ba78065ae7132da67aa688f2dbeb1e32c98367dc926de6b08588f4e8f00b4c0227ef69dc5a6a46f3fa94f09f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960ddf9e1d36025de827013d00142a5b790f08000000000000003384faae4e7260db01a80efd6a66997bd14bd450aba9b108426f98070fe3612bf753257aaff9b669a2402a8caf47ee00b277d7af741a22e751a133f1892b9de548c864fa74827a32e625977636197f61d41d5f43c641ab6e57fd905192b9034afaacbb61196eac22f6f87ac612431dfae0ada97b8d944fe45e8a9bf3b7f74710206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2226f939f56d95e2731174114395474ce6707000000000000008e136011418b9ede33ad5911c39167c47a393508b57020a3780edd57c0fcf5f7a2f924a762a164d1229796acd14eb7c4dcde224c7131436fce9cde5271029bf9aead27932ce7ba47974191e00a8996a872b00ae5ccaef3f7cff581ba8bdd14fb2f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5bdcfed34acdd89338ad6394afd30bc430600000000000000514c6080478ec44fc74d967a79a2a803dbebae4139b5cece40fcba37e333983613935a4494e02a8598a5f923a9b2fec2af2ee718cac51f199ec1a660583c8ecda387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c939b770c0a89b235c8d7115cacd1d5000500000000000000f68f8b30c7f5cd817adb5a125ffd15ee8ed9f60bd834775746f4328adfc864c5bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbc657b6707347949ee81a20cb063461404000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000008937080332293d4f2cf3856eb7d82b1f1000000000000000c8b97826e8088a2ccd82a78348dc2f2b032033cd9ac7e2fb33eb4f74128940a0d0648f2bce507c4af887f43a14ae5210ece426a0754cee45b8bce5dbde624f1601cb2b5561e1d89be7b84f4ce284cd1cac947e21f0ebba3c62750fbd0489a0d098e089d7e279c0bb175152d0fe9f8abf5a6d7c746c7c03d205f236bcc517e45b02dcc4902885a26951eb665545b17826a002b36d9f5a3ac895f433dbd2d901263860c4d17749ba5b743d9b659dd0f2752ab2655d627973748b44a87cf5fec93948e2e45c1cf224e54673190fe888e0b7e5cb8774ab533a1a065ebcbea7a02bb51a2b02ac31b1af6630b5896b4d2f6bc8ac336c03712bb4833aecacee22ccd020fb359ce9f64e7fe2145860f2bce4a04afa81f73928bbecbe93fde62c0e66e14096431d6dd0f786545e9edd982a3db3b2814e5f48ce3502eb86e181d8a71ad74c971517b376db82afea57a76037da600bb04179bff037447bc08c2875f92a8060296d849686414a107c0f342deb18b8f18a3df799d92ff841754b638d874087d8611487f4a80ca6fcda3a27484e86dc2d80d09f818e640e02f1c744f305c5b179db1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07b44c0f25a289f719ca02645881cc4e160f000000000000002ceec9bb6f32eede8697d693e3c463e06a270a60833d556ed9b70cc2600ab0366bfeb00f63f132164c48420dd7aeeeeba8a78aac6c8d2c48b86d02fd2f79ee9279c2bb59493eedfe87511315c67f30a45507a64c9a45eaaa6b1a8fa6d0926f12cfb5eda558c605b494344a138f1a93f56ed331a4fbbbb8b5bfa1b4138ad8e71742895140ad6a7508c9c134ddff596eb41d888a00ca307d21577d4de0f1deaee18b071e4e1f938319da60ba2d338f5914db0aa55cc701b237e6536d46e743f5873eb6b7f1151707d8b90c1c6f45f58ad37c4e14130037194d51f032a1f8ee9617cbadcef61afb0ed8b6aa7bbf5ceea37e3e04347b63d9bcb3797927895a96db67bc6468f89483b6a59dab0e6a8e81cfddf3ad93b6757e0562c75a34208e723e810494950c5658e448d8505619cfbca876050173d73c2445285e6df4036e314a78b8afd1bed37fa5f87672aedb5263705f78895946fd9039d9870accbefe0b89fa6f6a91e67b62a7b654cb2afc971acc5fd1e58fd98fe73a9b70d3ce1ee948e6d5aeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1914ef543931ed41568579e02dab348f210e0000000000000054161c704b639ee4f7a8ea9342e60dc97864ac3b44d8fabdb0923d6fe01c6ffc8fa94cca59282ffd956e61b87c1fb366defdc0fa75c9b7b95cbef7446b60f6a3bde20793dc9b2989e292f399f8da9c887645fa23f6515f1453239ebac72bc94eb625969f2117e4b77e119817c6a1ffe04a679de276d086409aa5ea28734074975011c45977d3af8a24e013026ec3ad18d891cd155a1357dd0f86b39b6a8af96de0ebb41f985fd7099610ecafb7b65956007aa0af61d7a32688cfaa125d987e6a2b4edc5e3f6a9542dbbf4d53e3812d790f9505311db65996dbf3b9fbdb2cb39cb6d0de4395c085285485192297d2f1b73e528bd4b2f2e87fcd03f9ea6920cbbb1e64137cf587f147f40521a3b787ad281c639306eb0134657b1b3a68f8285970e4fa6c4d10d3c31fa953c559d3f184fe2927831af1fd4a455af37cd0d2fe0987570458c823a77970416ea3769869439a4db3984010d54c7acbd6693f7c69eca609021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d98c8d502a5d79654eb8faf50d41680110d00000000000000b1eb4bc69fe14c185a90a55e07383cb7792a04e1f5a421d81e8883dc8f17f6645887c3a02de2d2ee0430bc735a305ad1940cee998d07a222291935ac024c89d068c206c9390a10e6225eb5a1a18ed6ec6a33321172d0091bc4344718241b8027fff12200c2d509780c76dec9bdc326e7d6d5aeaa7ef0489351a5e30d7929b3ba03c841d97e92d6f1abaa9fe87e2702225eca5f02e8f2ea9ce38f5d9a9acb8fc9fd5b4bdf78ad5a409ddc6567e968e2c9d039651b58151a5eb4f6e2b79ee75c385045e6e2bb61026d7b7fefa4d2a3b0ba0e1d094a19389c1d8e9d39b9a02aba2e6264e1e0d4f836995b0f9fd9c5dd65f1eee79316963f8f98f223a9fd56ac3cc747f488d9c62e1da8b76684f68ccbf1dcd125ccb80ec03a0f54234ededc5058de7f18a0e080e57d9e09139fdcd184aa675f9d96e6007ad58b00f5dcd1e4a50e2564fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9c27d7f7539009243788edf3fe6cfdb550c000000000000005419e6f9b59046209a69a15bf84d968c70e4bda90bbab746da5f6b602a649f7ff032fc8adf2ae078d040e14ebe1db6449251c6074254d315583589426c5d4282d15769f68ff04fe0add72f5e331d5f0ed217a9ea44b28cf1a1a0aa75060aeedb667603cfa2a82bb6c92113eec9e3680cae48fa4e37d361df3dbbea6283a9c444fba129dab77db8d4337b7511c1613147601db9a65f57206a74e7d7c845fc78fb02ad4b6dc9baefea1b560234525550229131074060770eaee84a6808acc9d58f5c95aa59fd45eb5d25f0b292d2e512ae7bf00ea1f890c6dadecf2e03a2e556310a2a476cf7a2dc231d72f9323590186e281d2ef7079552e831d9b8ecc5e53d5daf08a5182acb7ce04cbe7da4302a1dbd34827443ff60bd88b08bf91ad6fbcf2957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8cfd4b719e9b8144b6252d770cd566f5c0b00000000000000d2e1a69ae9fd34bb3151334b09cb121a6474ecd6a606ca79b77c5a9867030e8ce3c581244f3526459972b78b64bbd244df902cb1f4b5d1a589af7df592c8d4626e13d398353571a59620971da077746d029d05fd8eef2888c602e880c22387dded48b8527736a2110f01bb50d3648a8e32e1e765d0537ed6ed9d593dcede06ab218d3d7864cc3818fc53e8d743b3a4ae52ddf4a14b675df0976ea30d03a427b3ba7fc37fb11639e015fb7f7c603dec3008b71b79eaf0596723506da9ab89dfe391fe596ed6cd022a6eb9a60dddcdd29f947efea1e628c44bc8d3238f76c25c8585698e838b72e2529503193f0f4d4511107125812431c9d9f82252f228b809e32b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0efb22c40496d4014550a3f35b04f925750a000000000000005b6e4769e998eb0c7905f9a00fa6fedb6e9a2cb866e651f445b48588d6dccae2aa3062771053f94f0b75c17d6ee9596ec534aca9eb8292724ba24d243b523ff1984a8e996b6a54dda62f5a0574187b7d02a1611aa8b6ecf289376ac4320c078743ccabe23dd15db6e7c9fb8d712eacfe3e1c739ac162dc1dfef76f18d69afdbc8b4dcf68b79a8d3a2fa2ead51282f54aae66fc871f437ef4819142cb95173be489e45b5608f1778bd36713a7f7ccdd8df32f09b15a282435c5fe21d6237c9298fd8f1a0d08c2f2013ee64ae245b2939f1a1e38d13ddcf88fa0d228f57fe554d20ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b703570676e60875465f18c4210f20d280900000000000000a6f99390dc144e72915b7306fb0c716face37413fe0efca2524e3d980ce9b64e431cfef706a84b903d699e6bc45a5afa25f8eb9b8d8ec852ff20d6dd8051b7ae6a99071ee99a2e3b5a3bd67adfa66d29b7c9a7367270b076e6c33eccf9be404f8a54e2ad5da5ccc587c4b2930be06f1bbd3a0bde5f29e6943fcf995a6077ae313c0259dbc1bacf6e7e75c20a6dbd3372700bf21f719985594134c0d66055f6957f254ecb313f3ee39aa750e411746c61f36d433f2c478bcd456cf44f23c2ec22089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc51e2f638ae8d7640f4ea1c5df4e146610800000000000000a579fce48b64b8eee752351ffe6289767a956eac46b6c43aa8f53ad0e541106ee3b66b58e6764e9679acc32e8e9a73a01949d3d3bb7c4d4490a817b2f5d53f7ddcf5cf2c8cb0e091941c0fc5a9b2b3177587231af9273357bc191c3256dffd6c4d78def79c0d142ae0d347efdd41c71eb66d98a807e2714c7fbae61048628e133fad5a07fe4781401909970b0c532f61191cfd658f4d74b16366692d597614d8c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6dc8715410bdfa66507098127c65b7f2707000000000000001f240ae4a375065e627e2331dc17007b3424c3d9992fb48740bef1b442deaa954d9cbb36d32de04005369ab50effa451623a831ae5ac1ec0c44147167880eaa47902afa5614b55b40edfdc1d8dfd355a5f752a7fec06c565ae7a6d007e1a957bf11f176c4b2bc3df5c8e961e44c293efa0c16b283bfdd0508be860fd2b98839b1d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec99d38731bdb8f12128bb0977c3b2e62a0600000000000000e44a03979e2c7df98e23e26dd9ddc93124794d3b093cfae40c7a5a938a3c4eaac6aa466a567f30759133158ada71ad5dfc7d8b41c465b3c1425a89e8eb846d07eb3e22828e67c294fd239686d469166fcce420ea00515576724a1d858823facfedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c178f89375e483e924246870755d995a033050000000000000005db904edf69491a7a5ab57eb86150be61ca9d00cff9afdc875d8a5818f1a429ef13e3c83dd44f820da93e34c0e00691653e3c0e7e1ef2953e8b2d7cd5fe5f21e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979986b6406738c330d108d32f65899c1167204000000000000006eb01f4453a98d3cefcca9eedb300cafff77552dc5545af355361f70a55e0821dc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e29ab6c639b94e6e0185a7ab07fe9d892c030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000a6a4773c754f91010a247a0aedc24a3b1000000000000000a0589554b867ec04548b8148ba30aff691c73ba0ccd25366eec60a2e1123e7676f0b4b64ef0bdac9840fd584344063269f375f8359b35200369e36183793d8a1484a1d613415eba2247a7545e0c4bd57346c9d497fc8faf801e4878280965f0ad2ecd58322544fb1ee18f9c913ca69ccc2e4d2a222d95be24de3cbe54c7ff2442215f160312086c38b00ad42e437b87dbaed9fb7a2b269dce0a07c65986de6e8f4f0b2e6ce51ae5ec4bc2c08657d0d18f02adc9ef265defaec3d285407dc99ad5aa849b6749222439cee4b4772c81ae95ccbc22b6144a4acae222bff7241356d9295b9633c19c15c4ff81336d6a35867b413908aa0a85ba6e280debc116d7e5bc53b81f3be3255f459ba51ed5d4eeca14d40be094e7d3ecb162e2dadfaa94eef59d647fb68fae5619e29407eedc1371e44852def4d4dee88a4b1fc7ddca2fc3d898a2613ff529fe2940901c475fce6d01863580e9d5883457ff60f392f0e54aa6a5f06cfc6e6690f1ebd71d3bdbcb3281f86483dc5f2cf16fa9bac6a3b811838caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa269c27400ac3d5627ffe6bf2eabd6125b0f00000000000000c79bedd35ab7ce8eb802ccb6a8d127e69fd28e63dad0a72b9a1f0e62cbc85f3188b838a1801e4ddcdb6baa33e316def8567aa1b8e449b08fd4cf0d9a425d36f87069b63fc933c153cd54f1a93a20ead598f6ae984e64870d06796aec259e4a4c0805da7d4d8ae15f6617cb7d75a914caaa8299ff45f4ef3a69e5bda6fb30dc5d2b2b4a407c43728d174d3dcf912f37b245f70c3033a2dc53a6d7b206a4e5772b905d6674a7d68efdc13ec8ffbea98cd254ee335d26c981227b863aa93b32f651da9f2d95e6ec98d6f26cc3d272ff098cfb21c5dbf34731a1bbbc6dbca7d48b707a728b7bc75edc4caa93e2ad4788d2e1b282009901a3b0ff058e61dced67b9e1b9410a09759aee64519f4546ebf93b6734fc9e4a94bdb779056efe8e84f55ea3dd393f98f07fe76107e8d5c06144d32ada8069c4b998a35b8457e945c21874bcfd7eb6ec7d49174e2ffc667c7bfc3fd528080effba8e3ebb36ea891e936dadd6baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5289ab1866f1293d62ccec50905048b945d0e00000000000000cb0dad964c4807b64541920b89951aa12b44c52ab2a430ebe05fe01a1896758a2f442308fdbefb5d3ca8371ec06933a3515fffc3417c619ff042d5ce659601929e10704bcc00a00acd36e438f51b51d0b0dfc3bf9dc8d9126ffbf41c9dd766513eb9798b884d62de562bb0c4df5ced40d70139821ab1888a0750b896736e933289b1e2c01aad8f378c7bbbe5a70bbad700e2035d9140f57b73a21d822222a08ee98f7711894e05e245f6b46959a3ed5e68c0819278b9ceefd3f848c58f2baaaba621533474f3d87291114b0e56cee6868df67912afdf0c7b098c55a7ddf01043c42111a0164ac1ae8998dc560b3ece7de51c18ff45c5feb47664c359eef20f806ae22cabedaa7b264a6703d8669c2aac014076bf890af2242042204835aa605a1df321c66c4e977b6731772b6b6be25893602e57944cc8cea189a01ea303a2723441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68da51456ca5a21f4624b8a7474c98664f0d0000000000000035e7367cf3d916adcbe714f92792cda7f5755a5967d147fa3861e15f50851cb7954ad1e95716a987926bf7ea96db685b8ffb73c67b300e32b5c6532134819ff2d22d75bc13a1c8a3a7e4025057aea2dc343b6084643b1178858658dfe3c62cbb067b97aafcb4b8acc70a02668f217f2c12e205208df84884b6f4491c93137aeba7128252fd0ddd151d812d6bbb5fc32b6f9edc1be6425481594fda9802f28b3849832d5b17936687815975846e6c4bad06cca14cdea9f8f9113a5e866565b72a808abf41e292a5ab52d95bac510d849f13b386401da4df02c121104e70afd795130ba4dafc6a3cf634fd0574277437c48fbe1c433cc37811d515daabc0414df37f5876374bbe82832362ed376d349f8772592e5733b9a867a01151b5ed05f36bdf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999cf4ef96928440a0be29d9f4d60ce35530c0000000000000061bbfa3fe2d5f9a1d2d35ab514cda3a223e2247d67fe45679d7d163737d65939886ed27f0fc93d3b7293b107e894bb6134221982a33313119c669cea61846316cf79449f4e009956fd34c619dd468aa676bc734f6dd2ccea205bb6a3238493f9ee1599bc941990b22976b3d334f7bd16b21f7e3b514c761ebb2e7f18463f52decf1b86b88551ce67dae74d3242277e1402bfc3c6277e22a636b14fe89ed23c70947c3aeb44df2dd72aa7a56a0ad73ca7db82209887237340b99f0a485411beafe25ff711653b25d94ebadbb85f0a87aa7047fa0633d046261a69b835df5849322763e866fea32aa1446f6a42500128f1b6e45d6d16bf951aad90a45108d0a442cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249b8dd45176602a273501e116886909d5b0b00000000000000006c8bd285a256bc6501ecb563b086795be6431d4a43a57f6f594e8df6cd991064466007a915a6a49fa00cef28e6ac874b2c48edd37dccd8736debe180b2712d5a784fdd33272bc9e713fe2292411b8eaac9f9ce869002ea46a782fd6effdad5ab662b525871ba61131b72fe8615d21199d6cb64082f4e639850cce03e3c161924293427d66f338cd10b72130205879fbf8b9d0c05cffd1b523448cbe658f2fcba0200989d569bd549c2d86213ae2fb91d71b5be08da3853010bb70dae319c4d645efa534c015cead3c9e19fed274952307ff09baa7f93bf45e6e5d423b5fca5ae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cb830e903769c1a6bc392a3528467af0f0a00000000000000dc36636f544b2680fdab7691192866251c16553ea3ea3ea143545e68b5f76f7e976cd4735a64b4e9089992ae21f1ed83934b096ef9d8b7e16bcc75a525e5bc82ef1a9fe5d6e1aea407c0834f4d45610169283497ec237e86188f8aec775b5755574626b4e94d1df7521e7d3971d9eab8c0399d28404936da69b3c32fc6fba06b205bbb82287b66a9ab9f0d3622df00432e523ad5757bea4ddb8bc8b8ab973080ae3db3ff4176793736c48a5338960a86c8fa9937e1e83caa55e134b4908f9f1919a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0dc150702b4b767242e3e081d355e186c09000000000000006e2917eb1bae6cbefc9c8dba45d9dc4b7b76e3a935a1841dd8fc7740970d28dbd7d2e7be26f56e11359d7ba0e9382325088626a924b3ac92fb4e8c72aab6589118675fe488efaa36307f9b3e48a05f905832d429d7ea797052ba85cc4d9a2a5faa27af613da84e660666058ea81f7190571fa777684ef98e83f889183e1d89eeb27226b884c301531455f1277b56a2f7bbe387988e9fccc71e399cda0e7bcbb69f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960deb3fcc5605da882dcdd9e00f1f81030e0800000000000000de9595b2324dd484de2127e2b46ef9ffc7827f936d491866f1e2dfaf24fb4cda4937958ab457b1e88f37e37091e62bf58ced0293b8db8aba8746f01ab2a8d79ae0444eb9f837a6a94d573b47fe42dd9d543d4024a6fa400725f57bdae9f5ae22aad79c42122eebf42e8d5a3b9da986809cea6e6e29ed1c7f4ec6bfa385583d80206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22205ead412f8ac84388483142cbe8ea64207000000000000006fcda376705ecbfd70e07aa3d715ef868afc88f2c05c16a00771126bb08f5d5a9a7a2e8a2dcdae8657fab59740488ba9cb11e7b6dc3a4f88f98256be9d2b2e5cc04fa7383d49daa8cb4ac09dec4e139a2e2cff5018cf7b101de277f81edccc202f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e42fa640b6e10f6bdb538940972f377406000000000000001e90531ce49eaae71dbbd0bfdb8794fb5878b3d6b354257776b584b12af1429af8c9a8f7f03b898cd42061b8687d3ab0f5b1db283a0432639fd504e65a9b1bf8a387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c3144f9211a6b7501acd93a60bf8965270500000000000000a5058a45aa6a40765d2d71d4a784c57edfcdaa104be774106d62d9e0f8b58524bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c29a8214e72f73f507ae0c7702f7fa55c04000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000a5ba2a2604808022495c371a863faa6b10000000000000002a31e3936aab559f5f9bd5ac21a4d16da2c990d186849ef869a315e022999351a7141f9d85bc32f645e769905f27aa30f53ee8129f08a7e5c366b06ab9fe744fab5b8b156088502ae9f517eebb37f87b27c8b0ce51e93b421aaeb397fc133d92995d20f435e45af56c6e3f4e9d0263c0033600b2c32b7498cc5e15df449a40370d242e6efecfe190b9d3e071276e3f1701fcd70dea069ce68f0c84cc2a4f4d597a7bde738b2d205b12d90b923d3fcb28535184d1a216c1a9c316c09c324bb49daa2d27250170274321591eea513cbc647fa15a5a35254e7bdab33bd65fbbc4d5d689171a0c072886b05a5b9255ef5b6e4bf1782e438ebfabb27762a17da6e1c9384c250f56cd9465e8591b93a62c668a4b0518289f1d4147455294d1fc5c235451c1824e526998b6c1587964404509bdd1d334e5c812152a38c906ab392db342b38b4f579540b51329b6f2d3f1f77728aa5e0eebdc0c30f2d3f1ac5a36414bcd0b4c260b316ee82b50c83c8a9a8cd61f9de3634ccf98e53fef49abe4f8934a0049e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0702a9c82507b1eb0975fb096533974d320f0000000000000023a180fa92761e30bb5e3f351dd160543fe2ed8ec6097f806c3e0fd8ef3b7792930c97734f9411e0837b760913cd139fee927d8d6dfebe761c5e4b64eae784b99a3460536912a65270cc62ffc5b9a757395c1b8cc041ba2f1175cde932d7ebba82ae70df31b797627630a2afe285a7c1d9cd54efcb435396a4a35cd5ec5ec6b53229be69e8b0d366fc4b84bb0567078ae82fb6476fa477c1709c57977d6bf0dc333a939e2704274d31264cc9bcea50b8691d32462d1c7162cb9d94a6555f28797a83bf7a956db3c1de87dc8af90fd1b3d9ddf38f7100e30b0d300f22425116def0866478acb8336921599ea849965a24258d9637e1546dc1b30f1ed53f4848d95766961b05d8262dfa6ccce816b99abbc2294c5f2eff9c842ac615ac41a957110145a4517c3e10e1ea18566a9d683520816c64ae5efcc5119082aa3efb6be26b83df9b0800fc719fc558a966bc8649b6a86229f0e6645c5ffd28d8633e6cffcfc5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a195f1a00398a9b1f619cc4446af889ae360e00000000000000bc027df7f516928336edb857cd34d5d03db1319bf7e4ed09e58271b715769a9334705e8bbbc31bd3b0624ec530a7ca6d10542af2f2f0335270dd1ed038f2adb02c0d1592359f783f61b6c693d7ce02167371ed1308b41661697db6433af2e22c82ec3a1114825d6a750fe7e7861c16198fd0849b83ab2e2672a7299b29e268d711cb6b637ec40edfd32ebec63b8775867e7bc00b711642b8d5851c8087555b8024b4a189bdd66b979eb395488a00cd35785183f0c390e01efe999b3f5ad2cfb72ed8238d5f92944e5c96e4b9478f2c7c5d000bb94e67ddb0cb4894d958154972df32120dbed2b27ef2f24a41e7f744974008afe7aaefd2acead979f9e8fdbf1c8471662dcb642c1e23a47f1fcc14cf9b7c848acbb7982e0216aebcd5240c66af85256e8e1c933abf3dad7157f44b9fab0599491d9d0ad27144d80b1328105dfb4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817df3ce7e73e72a4b1e0ab5773244ff5a2e0d00000000000000e3f56415522d881ea906df5f660f29667d60c5e73ac0d3531fb7c9a8160a2e13c2f4fffb6490086256b5544a110e072fc2046d2bb181adfe6daa0066f90d5c31f7f588c3394a701ab7c4e3840b48947544c9cd24af08637640f3547bc23e34b040d0ce162040749db224bc368b04694dff9932cd00d30c480b106ce6254c4375ca3305d930b8bf37dfcefbbf71118920aecd436fa6d24443c5809caafae48617a7002d8f912aa21786913e99aa79cd397481e5237c56c4f44c89c5ac05ae82437d00680337cea4145896598ded84f5e7f207210e0ae21bdea65c2dbfb952ca56cca70efbf74556eba3fe3d081bd2510e310432d6ee0da5b90d0adcb9b555f4dab7b02e4d42392ab275e93548ea0ccfdee278a4dd454e44e4f2dfa0e550b362fb001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff93aa1eb6567c2426bdd4dcb3d1901ef130c000000000000000d1a134967a27b42ccb8e229f48b3a4d45902c8f93295e320a9ea3bbed9e026295b6ae7a1c35efbcc15de3e471e522e8b5a1bffa9353e0d57903d92e2aaad26d4dcf8b00d39d8a565a978865587ab6fb5b1c90f391cdd3e415343ab57050c95a4a069bc9045baa58dcf324d4f41d877e3f053044538ef0b377f8f3bb35aa2e1d8a9cb85deaf9eb53b1ccc3b7ad2c2118fce5e59e964057b3ae737d5d21c6f2064ceb0501b3615ffcc756886506710443002954a409ea52361079d8ea66074969d3ac086602a459c4aedb7763276c7c6803ee036916047c3e6e6df69064675c8e6adb67290d1bef3f2973f4aba88a7857816291194f327111a27e12b8fbbd845396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8f77d2a528e55ca1ccbde8d3a0012454c0b0000000000000093e8294d2ecc0dc2554f82c44d76691f0900404fdbe41d617f4f68e6d8156d55abb41dc10811e8e7142d665b0e87de4eaaf043153f95080898ba37e25b6a3aca28fb3ed7b29b6fc9f408e6e2ed5fed0c07dccecbfa7216a63c0ae299da28f8050a53293cd0bd52f69758329740f95f3d8ee876b8b07ef880d31b25d25f8dee1edab89e319840f9f634c8786aef6f1414ea37037f2f4be136a2630548be671140f5223d809000b5f828b219ed35203f68c30e9951e7195023ac9bd8ee972cad7a9b17c506fcf44bd442003ae8f053e043be63406902961fcb3c3e3349bfb86ef3da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ecce8d4327d1ae6344bdbf523ae036d380a00000000000000ec5b4548a12a3972843be576e861aa19a198e667c5cbf85192ec736265d1625e9daa778ef12a69393fa63137219356451aae07b0178cd23bdeb3d71f5c18fd99dc74b5fa9c0d32bf76fa198eead077501bff6c86936ca999abc2cef7510ed4ee12c1f4846ea15263b29742514cdbf6b461792cb187eb2be6f3f2da495a8edb86c3cd7dca98d8cbfc23d690a00a0afd5ec30d00d2f7eef27c99e7f6805235e9131877b8bba0141a34ac59a6499efe992233540146045ac955f3f1eb4a80c3e5d4b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b068bd00ed2ed0472371cd312646c2d2c090000000000000087e7bdfa09e351f42e0065045ae81713820a5087c36965b5154a34e9265a71730880bb1994856638eb04ed798a4e056f3d688d35619c51eefca47976d6ca0801b5c3a946723580c9bbb620c923288cacdacf24aff2cc7e51a0648588fde828de44cd348ed3ab320d87c8e84275aa8094770218afafe10b9fca0682408152c698135b2d697fafe5304d72f156b075372193a61cb8cabe44f2d2e876b75f981ccc579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcef0858610eec68617ada8811b3945f490800000000000000b440ef4873c112c2abcffe7bba5964920af15ae4bd9c838c4b66282e84fd20e04ff6621943a85b21a5d6d1c63aa1028819b976c5c91b2ae53a65a511c3bec6fc776bc22e45564c4eeea58277b5fa28be39a552b150621bf5a1521aa058dc296df1ab466addd7934ed99ae9a00f8ce4b8ac18c52422b9a20e40fbb6f725b9e4addd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6b634cc6e519d310acdc7d226ed55191e07000000000000000a13c279ba417a5295e80873e73a85ff1ca2c050075e28cf1b8cbec15dc99e2c62cc799e06519d1d93432d1615243d2ea9a275ef2345b85415a461b1ebceb8e206f13ab929687db3a11c64418dbb4dd26a52bd681b0f35ad3ef343748da547579f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecc25b3b33818a2011c945a270c49af519060000000000000020022f691be7fa51e4aca4a204178cbc744d06b898cf0882106f7bddcf54d7b28a86c873f001c482ad15423f419b1be26434cbcfd71c0eb454c4998528fe7ef3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1749fa086325e2ad2acba3f3460d83f16c05000000000000002602254f22ef23de6f52a919e2d8f299e892d74b0f2312dea6028668c479623bbc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998b74b14753f0c932b96bdeb5b8b03bd0e040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000008b7a1c0cf622a04dc963d359f48a43601000000000000000edb980ede5617a89def21e7e751390e0edaaa57e52ba711e5a92f970d187b765000346e0f7fb23e87ae6994c0403c24a52006beab63de59517751704ce525c0ae8151808c2ac7064ca2f3a858b89869706294f4b1f0cc1a53b10765e402f1608214e859a372b53916c45c8d8444c8bc6a8349cabdfd0578a7c7cdd3d12ade8232702d0fcb29da1c41e231222962bc0bd716d080b298e2fd89a5547fdd2fc782d492f294f591e527d261d7845e3806e92b1c4cfa3bf4650c701a24fbbfdfa7f4dd22b3305e732708a558d06a7341da528bc9f79edb3ed0db7320625de539cf58b20c7bb89fa8582d574ce3f424be13025114b74f0c421af273a8eac82d23429a77d9416b36eb2372ccc22b1f351349a5c3272df604b500888cedab662b54acad4f305d669818740a831316a054c431f0dcf4ddf548ccb9f2e1bf1fd4e9e4a1becba9bf19cbaf851804582f5ec5e3aff27d63eaca7b2b29236af6dbed5a863eedc49cacbfbab7c72a01d91c9700a909eace4a5f0fb40e1ced0d8e30a6a3c7dd9627b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2540e371f619050127f81691e0f4612080f0000000000000053c83c50b044d0c1c4be85f6d2f5322ed8378ba273117bc9a4727751eecac4f55a6f8eabd1c38ebc86f42846875d044c12f3d089481c390c97ac562fdfc2e250f128597da6d8bbcd9a5953c78c41e3d22afd921fa015eb50428999dad2ba2b0d619a4d08d209fb052ecd4c698ffaf7a41a1af642ab6dc1c6ed54ed76f5871426407032be7f69a9838abf59e937f4dfc9cfc539227218b800d04674184bb51b2884e9f505fc4c2309138e4856c4b249e7a295de5a13480c3e8abc17acff99ef5eea0fe2c4377280543acd8ed037e13a39280a5e949c22364138fa132774e082e0861dffa4bd768b1507d671c0f6dd298cd94a9cba2d03d609d67dbfae0787d02e3b683c525dfc90baaa47c306b2d15798bd325bdc78ee37cb59463ed297ee095c087cfda00bdbda34860c2d69b62555f4a65d20598d1d242baf52bd25b31068178b60327b94c8756f2b9f9d39fe860eae4d38b033a1965c82b404f1c59359ca943ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52862834c62424a776a2392ef3b3fbcd50b0e00000000000000c5840ecf5b679ca97d9493e276956e9d717083fbc3ff896ca514ae2f0f7eb86982d06bc83923405f81275cffcfa2f2ab8d3b055ecdafa8a0f1d15d324ff8f93ac532b546418c1016b4e16bf9039fcfc9e8e89b0faa8fa7bc2a7fb5bfdf7d1adb2c658f8886cf0a1208f17e35bbb5cf9baf1b061178f9fcc490a5758920af74d774818a914d8b4fc20c0a5dc9cf1cba564555138f8d619aac6bbdbd2ef63bcf080390ee3fce7306a12d42be6f8948d1ece370aad75f0bec7458ce5ec4fad3dd14c6aec750c11cd24e7831465ea101f15cd8054032e43f67a52ca3dfc244172647d0b248427823b78a8d16cc8dec707c73587936f7183c31f5de7bda789e9d852cf31b6d1a0ac28ba0dace53567d6c166726f0aafdbb1869fecac781630e7c75688d7d326950246b54407590ab26cd9ddb6ac6c9afe60af5856c607a7ed618960e37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68f1d399555bf42261825b7541dc2730380d00000000000000ade289e9ac2dff415664d99b1ded8cfdd8d6efd2161fae2038b7af8f46d849a1e8a47a88fec0d968f3617e7a0747af8afde54d3f26e2411bc7bbaf10c88bb1b7499185f66606402a575add4b6a6ff9b6d61247b86b2eb35923d2a984540469376264399b52fb5010953131f911df1077e43cbe08d3a05dc5b8d13aa27aad1acad5ac7c4a506a3767dfc11d4635edb17027c41ae6d234b68713ac892493a2bf500b21b1f1aec7ff14eca30b2b38855928e8efec2d229dc21f401d9dfe38c9823f4c5364521f1e365497a966a7f58961413ae94bad976d0f55fd0cac980e9adfb525a694479f168a9e1428c0413805009d9a125d2d133f8a16cc0d4b46a214b57a6bc7b5e1c85d871f1f9d03898dd3170d885a55f08e0d08a4316f75a0346a0babc3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899999db35d50fac43c04b696072046c467220c000000000000007dc39b78f4dbeda2ffaa2158b2f934ca1b527e164dc2279ca9aa724fac81e88d64ca0621306b8c338ce4c37af7d109021c6bb5eb3515200601e793df63aa26910d6aaaf13b5a459e6ddab7233113f0b910d4ab403fe4cf185a40c0f543ab4e3d80ba9c7b1147b25aeeef44d6ba185829534f6425c45069bf82eff8f4f241d6276d8592bdd64e346cee6e4ae291b78e73ca0ba0fbb2b2d44b2c5f101a68e9a9f90e07460d6f54674601db077570adc0ef04a86debc4050de338abfee956d3edf173ff48db2ea06fa7c1a0bc0fc0f254c427bbfcb7eed5b8242e0c8b1ce809c6fc6164d6845e6e89716c08b1c1b5e78a85b240aa229654f5e54c980d069083fa99d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24992d15a34b2906c475c511360df861b040b00000000000000bde6279a6efd771395edcb81e11295fa0a6efb0bd3ff96ca85b356e8f699602cada9ab34a12e205730a2fa04ecc6a46db8364a8deb845bbec1a0d42dc8ebfa9632a2407766c2c077c0a5fd4f65488b39ba2ff782e776e9baf9f7169aef33b3300cc0c0353016b54fe3adedc2dfc9bf1539911df72918464fba7569408fe26792a970d90adce837c4680758777463ad904f879b35f14ce4352fb526c1dfc15f6d67b3dfba8139abc33431da1391bffd9c94b44cb6a5944ae9e046bd0b94dfbd17710e5744052ff2556dbd942ab8b112da1a65ed297e2af4a10617903847bfaa0d5786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5ceb69d348d1c785004b4cce330d1bc3110a000000000000008c01cf21907533b5d3f0a7bf101a30c9c85b35aec76cacf83a48e8b138d9044fe27c356717441eb20329ba9f23efb5f59e210dc0a8e2ee55de84258e7da88a7c6d4b7f8e0afe9764bf63badbaf129eb1eccca31a9ee05762fbe93f17586941c577cb1adb4feb1a18a5d2d776b270c43417ad55f26619cc8a4d131ff3219518569656c1d2e383ef05c6cbdac02ae58da4f112dbf9696f21c40faee9c221548a2aa803e14be6aa15fbba8e21e46c4450142ffd3284bd2f997567c13bf8e14f87af6be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c020e01b2865d1d96f38d07b456787b33309000000000000004da92edfc543aefdd934bbf5cdd6e3e0f3fadb52257e20d979c7889cf5f94da9e65777e2c76e4a6920cf1ad6c8ccfab5f154cf471b81e2e9a409673b327f29407fa84569b65d874375d045d24fe9dafca30ae5df21a9990a03c491277f032f17bdebbfd052690aeae724fb1338cecfafa8d58730fd0b32f74d36fdc236d314fd31b6c0336b0419f6505de60c8ad3a3ee89a212f98dd9be64a6bfd65a92a66a1d611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d1e79e85191937d2eb831656b2552b8100800000000000000babdf52b94ce87bced2344677a5bc83c12e8703041982f70424d21c2d0948bbf468643e08e160524c66dd94fa443f565eda6bf5c7fded5186779cae2e818446de1157caee11e33829b2cee70a5ffc846a302c3292c82c47ac6ff4280552327498e56d66a8df35571e4828b794815e724327a96b2930aea57ca1790313df7c57111f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2221003bb07d01baf1c13ea86288920335e0700000000000000b8bf93f41795c29806016b054b67cb3c46daa6c232d6a25457581c7c1285ab5654a3465d931a44f4e5efb09619c6b57851eff5cdccfddb0d8449129adfed5e241e1c0e9c910f574a05c6704f35138a4c622bbb1f7e75c17a74dba00114d8f345a022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59b343b24c06cf5321576b535bbf4ad6c06000000000000002580ec69e68439c0f1071dc0b38e636f3a67db4d91f55b03bcae9082bdbc606846ae41cdb568ef3345a8dedd5f4057bfea705921e55b8146559fea30291cec85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cd650a66b61d6e6021e432e22455c153b050000000000000070bb2c301bc17753bd1d60c4173f3ee16104293295360be9cf515e1d153b12cf13d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c79b9f55eb3a7c20a4c6c7d1b0f557b3c0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000baac1b3ae1c0fa5c6572486565bf8e501000000000000000a381e5ebae3db5031d845cb17f465eb2178f8e78703b2217d4c7383e71a9203f6b1a27cbcc018330cc398312aafccedaa16eb8cd22ac61f2af34e4b95c681445679ffe0244234e9f9390a9d0b3d4a66c3cb20a2d5c40ae40ffa5e1116e93d00fe11891b5c102059ba536d416fca05eb38125295046a974d62c2db4e475123a4d7287093a99e0a3e4ec99ac39f472376b61a67e008d055fa9cb90d99de154840b9b3789fc010e13e496de2c0b26e806d3c3b849726d05fd555ca424858480aaf8ac27051408bab5f7cf38f4899e0086636a2d52b60dfe8c752ef963a51945548abe41b353df6971ec2687ebcfd660f4348d64f19097f0c4b06539858411e79e40645a47f463c28ad0fade5c18dff1e92a47f1907464f5c7c9b595017b2305a4cfcdee57fed8ebae1e9c24c22b3d640884bd74962cbc656cb04d21ec85a6c6478c0f55073509c28c50d42e36a01faad27287683188c4d9ac6526502e41146e445be377ef850b02fb9ff26e29daaeb2c530c70b6a05a7a39dc03547e69e4edbc797070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc077481f539cb4dc95e9f46bd05ea1502460f000000000000004a8add0d9ab9a8b15772ebda02af4a0b69ff9a8841d56cc7b5a3fc47fefd3401f5c0f75712d23e3b272d5ad9adc213b34bd8371c7217f2797d048d8f00c29bc44be63f95a3bca39146166b54803c5483e234451c3e2de07dd903822cd1f6d437a5688a6cd838289c885cec974f9d1214f2d974f0cf2593e8696ce41645f2edcbb4e7c407bf4f8a2997f9fad23adedc7d90392c8e668c6cad46f6e865308a25ebcbfe53f092a6658d6215c287434eaee834e2530cad5a54bf37a8ce12753879eebfe67d4520976692101af7e887026dbeddbaef94eeeb94015f02e34e52fe59e96c4360ba7a6db4d855e442e5ee0d81a7e09687894771a4319f72cd976db3a353bf1958ed55f455346a8d1b08b5cf8db66df486debce72a27cfa9295ddb1d563687d84520ea3633df597bd938dd2a053fe7d7db879dc2d70d26ad437b799ac496810cd32f4d8b00d78077472b64acc0dd7eb87ce845e07d179613a7c66a0c6053226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a193bf155218d651b383aeb593cf126ce590e000000000000008bdafb405f093709b395a21f962a17c5b65384e583daa99a2c80ebc7454314a463726de2c2138349cc66a9c47d1dab89934daf31311e0163bac2eac3ff3fd4bab3f6b480851367a78d187b2594d1d6ac972237b88a8345fe6f46aaa27a588ef8428e5a19ad035a1b084d8d1c721e2af05514b2bfdb9836847af564d41717eead01fd15aa6c0aac11a4af458ea6c41966bda9d938a35ca5c6fdeed6425812e180e06756711c326d53c0b7354bfd5eb69ff9701ea9fc0a0a9b6c6e48f35fa8bc8ddf7108d455ab0191e0ea92d06132ea5ff7961d48f3e4bd0ccce07553682bf9c936e5f37dc89087adbac0c13986e0d1577d5b195123445ea7f827b031050edbf40f4e6bab8991f4fdbd9008522e698b3c8f588fbed78ca1fcf1c40ce05324301d2ce0429990e26198ac602b20767144eebf432dad48a25fd0201e9993566ae9f7b966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d584b284adb761d34379d202eeea39d6e0d000000000000000cf0d4cd638275bee07171f9bc1d0fa10e422afc305c637f9a5cd5a18e77ac35f216e429a5f300d09638f4093714f556787eb10c734ca574bb0315a9b4bcfe4bcda20ac4018fc96494bbc225b04df8f3419d867a8d4a57f8582020d8a01c5b6ab470adbbda5af9837d8c761204849f928394a62435bc5362a05802c455cbea1598e15b6bbd6c2ded113de25edd106f970fa7086df6bd4f221693132b035ca084b59ff1b2c1843a3c268e9c20e6c12e99fbaddb65427ade4ec154d08d2437e6f712da6f6c519f086f16b2f1558310ee1be90a6580c67cd179949d1aaa775a9c6a4b922794d4faf872924974f7faa26caa999f6cf0fc0ec5e29167ed4f12181d5871bbe442690f57190852e723d8788b6a1ae4058cd5271af3cf3f88797f2d680820b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9308a400ffc0b3130e621b461a56483050c00000000000000d720d8749ee7aa2bc9345ffbad323f9b0bd8a43bd8968f18f5a4c9655bfc60c080fc8b510006321e6bfb0a7ab9877677d242aa84b6ad06831a92b095a4cb0213289d54f10a8e5004b1113fcec5858ec190fe766db5ab7b71958b9ddad5827c0a3ea125d0cacade103547ba7fdd38514c9158107e45317acf9eb6271a1f9c11a9fbb2a111737e96eb089ba49ec995164b160f43343b719a358019366ed30cfb6a7ea144c8eee2df756f686cdd728a31c598a0fb953121ce8453ccf9b984f6be84446a02a23fdcbf8b234141471e9feaed0dc9fdee8171403c1fe939bdbf0620bbbd36e764ce400789381fa03976664a577758586a679a9c606bf76f18ba475a9540ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a80603aa5ba5ab2b184d7ce2627ee981170b000000000000004fc87b273f2b415b405470390df5cf25f5a20534dcd2920f6cc62b2ceb4dd2d703b0180032042de7e3d3913157bfd7785d61e876790c2d92365b38bec0baf21fdc8b7484e07dcf7ab2d34a670f9e7565f9ea9030a19e4517ad513449d27674d7adace51c58e994958a026f02085b340f355212327817e08fa75f36cbb01bac4b42e9b26a47554c62d517899b7fdf6ae772d4094291443c99691617679f5c0b9365f8cab1dc2dfacfb6e3100d4b51d4cdb3a82ff6e8aeb5f08290ccb24235d9bea82ce8a62eb8e0f89a657b0048b4b10ba6c9ea2c453e338d1f5c8aebfd82f3f7a1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0eabf1ec0367ee226b33a76f3d12eb3b130a00000000000000d60b4ada2a5fd1b1e66c10e4314b4b259dcb725a78d5aea9f53a456859c37a91ba215abc35e19de6e4ba5d34066a65fe9db55519d3f1012f4233c955a6e04e29f7628cdb6e250f0f444b973d0c4abb0ed3ce501a83288ffc305999b49ee20c0c6236bc31749d47d95937005774de89fab9c2063cf962bf257ab580162501a5b75bb434e6222aee6eaf14788912eda8ac42249e22780611f334046c17097bdc3884ea67d320d70d8208a365f14f2f4c41691fe49b7a2368b8c0bc9c67aedb2eedceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b7a53c305d530592f308d2a5955542f1709000000000000003fa36466599f71a3325bda0db791fcbac60847e54609f63c6c7df535bb6671e56b7bed4f570c179153bf6e365fcbaff2dbbbf8a61c790614721e82475f7dd6239147279ade35a72fb71e4a984390e0af17200f0accc134e1b33a6a100c350acac86e11ed53c3b7de0e2a8826f0a569cca9106099e3710f18358e8e1c289cb79613428ce26ac20a017fe64813c7517860c8d2fa15e67a880007f2d69313c7636947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc8bc44e2a7690c93c8531216b3411610f0800000000000000bcb4255c0fca8502e3acc6d4a724886ce8228f623411941e52c47147a02f88698357d11f0b09bba43bc61621227f07244bcb382911194018a46c712d407f71bda16103410d288a0afa7b6567aac49f9f2407f4879af01ccc9062a81dd2ba560c920ea25ee973e3eaed3a7c55e4ed854d7d18a6becf42dadd21ee253ceea76dc74ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f4852568e2a2e1144fb3432223c6b501070000000000000075c1f777b3a12c49bd636304472d2f3cdca783877fcbe2382bc56b76af0aa02f0d9ac83ac9dd3b212ea8d14c3ab8ae3911d2c18fccaf44bc0247e49c5fe801eea81baf0f4fca1ebef10e94ef23773ac4ecaecc3c10b55a12a18cc7f0950e996a1a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecd9d0ec0576670941054fbc6e48c32872060000000000000003f784ff6429ad49e737ea40c5a75fd2e2ac3e05aeb127c3b7f2469024a1635464fedb9d858182898e3c62797838a9a8cc218cfff939a30940a379e66dd8defad8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1739d51b2171be936318eebc2ec9d6dc0f0500000000000000bf14f3d9afd15f51fcf3fa70fee281d5e377c4bafca9015e26e98e3b2ed298ced093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979987ea6252d77781a266600d04bc2f1d93704000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000a3d198508c9b9806b3cf8635ba2ee80110000000000000008f4184636b20f07b06655c692cf4ac55214f3ef9838cf7ed8188878053037e9ce10b87b4121d7673a5de7539086f81a0fa04fa06053cacdebefaaa26b82c56bd65745d444c0749d1b91d088047b5acbe653d3600f2ab371f45d089c354f0626add8278f04e65bbdbee7ec794b94749b06e2e6f82a0988782d32bc156391af5b8768b81d56d57761fae18356c241893a23b04c581c601f8365e9e8f80c205c1ed10efe94d30f4d168527621dcef8d0880ca3eabc3f318b3c8ce699c5a9178e59519c5b96466efca4ae00300c3b0e544e099a266696a1521ce070300cb1853675a83b095ad748ce6341e6fde1e6016e55d42ac60a23c338f7d17de42edb06478ecd12f0f9d70d03d4555997cfcc46a31096d1ea9df8ffab056cb83d949f8213a32f0875cb43e782787dff8f55209b206a48c22de15abc6c95e512d02d8c5d60a9cd366561cc7f084ed90d3d4e13bf4670be5e2f0d65a74a5504adaf743d16ba74456d5798e27b3e0b6759bf3fb2e144225773a47c58dc9fbf8ceb936e74b8a530ced7b98da1b66d7b0c5be6c014bdefb984efd0f034aef0ee91f3fc69c4447cd396b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2f523fc4813908b10669bca6e38cd494d0f000000000000006a55f293b06f9f6c97edefc9f366aad1fc3a0354a703357db3dfa3d09953c59ff1ae7a4994d9180eec09d99ea9b916d767c1e1b5fb898c468b3cae2bad1ded40d823afe2f27ba8af7a3db1d8f89c9a345042ab03e43d7a76696639d96a3d5dec4a6c420057bff17da31ab34e93c26ce3d346f606628722cb27580cd2842f110e48f6b6765513b050ae59dcee0dc04ef746c0727ad2bc39094809522a6679a4bc4c703e15ec3e6b39c1cbf1451f26511b813f5f0bc064c7e2ff447d561794a1f40932af06c7cad6ad97ee524ec46d9a63466e3e5f64465d4cad5e0e5db1d1e946eb8efb0f61a3cffb2155b1bdaf8b1f435d7391227920f79b0692bdae550c1ff03e02d320d34abe52ad7ea3b0467f2423f512b710c241e95f3afa4f1e6b556d4e004aceccb7306ac065abaeda842fdf9efb8ce03b620c3cafb9e662c3aee15686a8bbcd251c9db970d5fd3890606a395b3ffd3763b05513499a4fad320adda36504bac276cdf6d319a9902d4d21184174e2d43d1e4f7d39592fcb84925b214c943edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52863da0e15b5e3c30672c83a6d529b63460e00000000000000610c6ff44b901c9a2db829287cf73a3c1f38e43f57c22cdd7bd872a5bd3086a33e209d0df1e02ee1ce5b1b45d67421d63396d6ed8e062bc9f69a62bda3f13e4139f7cb3f82d2216183d5a32e1f5b4a6191bcebb4d90473b1253db87c04477ef6fc31d27da375a1e45b6a89546f3732be3043d654a4159a89bdb100c25e955dd1c0b463f1e7c7eada28ef300c2acc9a9135cd722528854732f84e114c33e8808c0fce1fd058fe91ce0b11d1bfc0b0f0c10e7c39ccd61dbce96f3caa917c68aa87f3d63cc9b72376c8b4649e134fbb7c47cddcf9e3daddc9774abadd6bcf61f2d15e6f8d7e9bdb533719a535fd646eb76ca6f74ec79a6b107f477eaba7bc14e9a8a68aa9f0ca587d1e9c2c999adbdf0ba588ab0e24af447c422af1545e75b302de274c6b80d319f7f253df436b1d27859ea3263f0fd433d28aba4f359a6b66d83d66ffc253b8ff89096b1d0e593aec4271cb6ea1177f19fb2a36ea985294bbd97666262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68d8ba6b75107b9f452a9f31218c62b2120d000000000000007731cafced91fcfa113aac5dcdde4518471ee690904f32c6fc627ef56d78c2d7ff2cf40a0849dcdcaee059471c8c13656bfecbaccd3f919bcf0e04d8f727140b88fa3da102a773b6590e847d80d8935538d945028b4ea5adea0f058fdf534123298c33ae896140d6160d7b46d77735d7d4ef52b553a5e9e4c3dabf14a2ec4b5c1107d7a39ab188218174a360ea9e3720a4824be284a0886e76f2b850fb669a6ba0d956bdadc56c6242aa1938e09873adfec808eaaa2fa44f6ab89145312f48d029c588d7536e584ad9f47267bbb5aee1dcd27b420e16a2b008e0f2ffa4dafb377800f5431a67f66f127529fb348cb0146941d7b4e4e6a38658f32d7fcc6aefc170af849a1861cba87fb6c7d91f65c22ed71e18cd23f271d2e8e4257e7c37bb127b143b13b6ff993aaee89dbdb584abc2007e8e870a10de683d64f11432879a874b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999ec0a2a4a45b2d149190cda4a9ef134730c00000000000000225d602429c05b9df2f3ef1e80595d0bf7d2435553ad4ee59895e70ee55f80d4ac040b8d607ce473825782a0b80bcd6ae6635d884797baa4da3c89127f49e2edb4d7e10594879aed762a95aac1c5f329b25acc6422b2734099c94f0f892f61895d4a1de0e5448c1d4b1618bd61335e6798f38d07395aaeaf0f33c4b77719adcdd2aee390e650a8f14c6410b3d8729ccdecb59a4584a06a864e3458798a141ae253a9e6cdfbff128ac3ca39904618b6dc4dd20a7e6558db1f43eaa818d1d8db1217d934cd5c985836bb669e58450c5861ecf7e26bb4946b6cf4ff31086bf91e7af24dd3a912625c6cc125ced0a96f8248c90b74d8477d6b64e39893ebdf5ad17f9db489f5a0983bca0de50bd68dd6402ea56a19077ba469c0ac133918da47075890a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d24987cd50233b4bbd2717b8144c9e681a270b00000000000000d316fb5324f648345f1cda0ad852d30e87ed3f82f57b54c8773eca6871725b22953daaff32bdc9d5e9687097bc2aeb64bb70dfa4ff7faa557466bc7f3ad16976c76de36663304f280c2cacba1bcbf5e2e86e6f16ba1d6228a9530ff2d93d0dc90327b18f5d8173c82ce45f5823523c61605bf678186b8559f1a2d472fe823937f686322b0b17772cc24eb83e5aeb006451aa07b58ec7ba7f6229c5dcf53375d67c56fe5ea6d0842f58c90cc14a55cf18cae3447638c0d0f09bd1ad565e4d4e3aa0199f231733068c50778f74b41fe05f72df603ceac7cac288bb14dacb423e1d3fbaa3516bb98b10b9f2c40c4fe6509b1dee5df7c3f545aeb4f4fba2b0de1f13b8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c83f18d0f2819333fce3de366c39bc10b0a000000000000008bb5064830a7b1fbe8dca683bc4fbc6b5a4df23870051fc0c538adb61391d7008fdf04d99b52d13277f2c0f5cf5dd3c8128632e026f0e0e77fb2197190090aad6bf5d124802199308e34ecf244f2753c5bfbb4aefd9618d5bba73691aa697793f1c717a51d66d58a577aeb630f160d66304216a5e178471eff74692674db171d02d8a5c07928dd8fa71175bc0507166998e91cc21cfc585df9a19166b35194334562780a8a536d74a8317e16cd6e0f0e8c2f0b4eca1db21fb5ae840d7fee2112fe1220beed0017fdcf08ce68b5cbf258f6ab910e4bbd9f1f695ccde338fc67ad9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c09057a83ef1bb1404f58a626bfec81b2c0900000000000000c0f62233dc3ca210dd4b3fe521caf40309fcedecedc340d5ecfb480430fe224519b9dd1b3d1658c16394f88bba8d7cb1c4dbe190dec6a1f270cf8c6038f80faa3927cc0a9d76457240f8da857f0bf2c0c2688807e4d4c60bb2f8e20a4267d69713e9ab9592da2913ad6d48bbb92c682e2ffbc55775fcccfa94f1640d3cf5baf76f73565272e5fc2a1b6d09740a21bcc1340e5615d933c7ef5faa1aa9bc443195c65008a848e7215bb7f5a75fa72d5950a228709f71b0c163125b88e1ff6a903008c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d35b7bb7076818f0f9d76710a9e47335508000000000000004b0fe3f1a7e2b3852acb7565e54e38c6f2d8da5d6e7165dff59d2ecd892afeb9581a94dbbb77a09253e05387146e996e0051ccce5e83c50c4b2d2343345a3fbdae0de9d7a9a444bdd0385cfdf818cf08c530133d6ea9ee9e64b566cafc10e76d7541c1a1992fb22d83bac207838524601725d546cf81ce82d4eb93f4b845c7fa49a556d0a14c66bff36a8d8090e73046670ceb890715c660ca5d04f8c4987120eb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222f0cef12d6a267f692fc1756e825174360700000000000000de690b71e2a2b7628d7a2abbfb81f36fac680ff3ed1310a3c3fa47abf55fd0f5a0291f4dcfefdd8a026efacc4ec9619f736dc0c67c505716ec8e6e9240945cb442161729bc2d8dca528b8b6f1be9ee4cd482cdad1613c5de4f1428e1792a9e0e3c37a8e0ddbd6ed4d55b8a44b663b26898408ac70cc9a8fdf0036c527a9df38b78644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5b45cb35e8f0feb58987db640fe05dd760600000000000000f961db1ff5c37e705d54efbb16d1788e6cee4a12634176a71058faf5525bb40146336076437c8cc9f71fccc64dd08c0d5241b52568b6acb5254f2cc97de6c60d389a3f098a987ec2a33cae63a691010a002afcb0f5989ca70c99a32a023573fbbdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64ca7ffa34789a75c07f887586225afd518050000000000000026a95937516f05a63b0be17be0ca3f4799c35b2fdab7d544bf483231608b07f275cb90e821784a0d8b1adc35d309470962071980997f497afb6761a1a755404f9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbe5d505a38e94043ad059923fd776009040000000000000073f04a5737aab81d10b276ffc2ebb75584aab26bca9d8fc8b5e8f0d9062abdf3d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c06249f66da2be0d5de3d306558b82ae69030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000bcad300d935481197bd5e450f4c898331000000000000000aa862a911e857c87683a49543ab0682e3461f43d1f45ac1679a1219e2aa59ec8affa1bb00d0b973d02ab6c7873ccc5335f43e9632862ad745f7e0d5f027536a94e4e905b6b181a3508b7b2671100700581735a891a211480884c0ad212f6e2c7ecdb97200d81d9f281d74c758ae3b92a9dab7de32b787adcc193c006f44510b02f39c18361fe161c5e2bc3f101ba1c6458344c2a922bc09651ebb2d52bcdc046fef5d2520ba1f4c647348f7086b78b7731a6f00f2f07836d99bc45e40acad30f34ec932507aa9f507f3f290dca9558efa34a8e2bd5e2598210656ce57d58ff93b3218307cb8341cf819ebc6ceaa0cf4496230c394949b446dff775dc1ee558637e593db151befcba1df78a086a963662db8d0e9424707c863ec8691d6c2f874f009a2b8e52787585536ebc8ab4c2244a18eaf2dea7bc13876c2c638ffc0f33283ae084b04528ab64c1e0c2c645df72a1632bf8c7678fe75ff1203d0879fe9d6238d70804feccad9c1fe2e221d32e121a316536781a2c9cfdcbd173c94b7bfda109b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc077b4ae762af6f0d218360c8663923f61f0f0000000000000045ab8be472037bd4b3eaf84b382c39cf49ad70cd45ab3e50f0f4d6b275abdf764e39d392d89a80f02d7045aa7cc255defe425185e871f7d00236d772090f6607ac7edcbd7394382eab7f0f39d3e7af1b5582946a1d2c8fefb25e857724d260b82bad4bd41f4e0b1dae5a0f790dd6efe537dc868605143fd4572d9593718b8655123ed9ef0bd4a2ff6ce2c1e963ffb845afc35c58600ab4806717ff6398a031a8e273cb101cb0641857531619d5ed1836699dcf6f8f97deb863ed569c03dd8b3d77a646397e29b197ae8e43b121e93e18f019eaee4b0c9fe083a7c8f33d0d37f3e1f507ebd886e2790c087024dca134ca12ff0be2882192b2b1f2884f23043b907c091147232e0d0ebffee2d70dbbf102ff96cc0cff96d2c24e3fd0ece27b1d9d0d3ba833d68b16b1f661ebd7f801b6a93ece1c0b4e935168eed30a30f9491e5b1086a2accefef0f465913030b00399f876cc778a3c0a4af0b021bba79c7ae0ae93bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1994d7eb3c06654b063ebd4d22e73c09110e00000000000000136721d1bf852891d457a712fc6b7809a64f66a9261e93ae927c48b189464d8d3b905b6c7203d026d652c7eb35d8355bab31326781047e7ec79dc9ea37f00b8810747fa17ee150fcf10cdc16e5c337f69a7f0023b813cf6723c7af5935623733fa9c5c1b7049a6c122c34a9318a2cb52185c9e4babfd0b4d9473dcafc5fef5eec13a4d90b974790944e52054761d9dc5a1adb86575446475ca811d874b0595ccd0e2b8314cc821356b81c88fb924dcc00b12d39ad970e8d3d740aba704d1a4865b1f27039eeb42d6d03f2259a0a367644e4e01837f8a59162630f0ccec83f43d397d6a47613ed5dc58ba1b63c242f76d07f0a037bf2ea0ecae3196bc0e304e2ca24b7777ec463b8c22abcd8ee78a6a50232d54abf86467b78b4849a09e89f3ab24e40efd7e942fdf25085753b633192d30e1269d0177c1c2d068c634fa974b8e28870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dc330cd2435b5e71225c63e117d5cd64d0d000000000000000188ecd932fb8840dcb7dd79491ebee8fe64269544f628e2ddd6c84c44a5898819c23fa7fa4a7a10549616b141ebf3b8a9b0cd69766c590614a012e79f445284f35b9bedca71898dd9ebe01f2b80550e24dbc05df4fc88b44d0b43c7155fa15359d7c19da7b9440ea5d01a071a3270e42d1d14d68a6b86d425f70cbf5d9c723fa0a26e654d21431b1c1fe300a87ee94fca06c4c859da0c699222d8b1927385b73927e23c0f9fecee712d0b8b0290633b10173bf04caf6155af7ddb69789d46bb8f8b67090a865599ae8fbf3a956f6973281dcf29876a0bea5759eb6e29552c76f7b2475a95cad60db0c68e30c7d194d887656afd6e3815e38570e185feca8f7906a9af8bf6ad644d3c1f362d226ed83be7f5f7ff28370fb4213ee821253c417c9c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9cce1376b494b2b3c4d708747af0713140c00000000000000494f5868441a11a8f19fa65b785e4806662ef6d85e6f261512d185a69f100f8cb90690be00b1f2aef5d6b3ef9f909d5f4d657b8e4d663e60767e5114b60c619f7c6d9441d526a725bd732a33de3ec3819f4e97fec4b9d46f70ff15d0a8170a37652cfda6bdf78b6913b84d0218bca8ee48f04237316393e5cc2bf4c96b6f3667f184dbbe22e819a8748f85ab98093f5dd313f5118f873de676ca309196fdc3a0fba29334e5974bcd79f22f18b22d6ab12f6951899741446528f46ea8173e6c614112f6b66a077714f9108fa71190288cb00b190c8c9c9d96051b95b24acfc7ccfe8103c090b9b7411d34b4718dd3ca52efcfff90a6ecce02969105ddb26ef9b56ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8c229d00101b40734c10e76278ff01a0c0b00000000000000d580934f93043997c16733ce9d57c501496f1ef06189e24d3483a5cc17229f68f6f0979c20f587c4208fd4f024bd9d5c117eba6b8e5f2cf81a7285599b6deeabd11a5b318c69507b6e44c678af95f064e822462b7396bb1d92ac6e59623f8879d820f8c9cd9e3a5ae07c7563e6075e706697c70239791ccc4a8dfc1b5375905fa65acb98df5c56a1341c0ee7996ffc7fa299c8b40a5c3f4c2ea5c451eeba39b5efc827acb1279f46780e1770450a187a2cde62bb3d9087b0db0bed57297277d9d342efceb589aab8545b1a401911929b4b17452b4c469a6be5f83c480d30d6f0cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e20bae5043652a0493c7da0542f09ec6f0a00000000000000c1539d819b9d8a47babbcdb2dd9f01fed2e8386601b3aa53696780e13822a7c5e228b728b008bcc792275c0f6ffb195bffc5e3cb8d5f8ee0ba36e2003a37456565338ccb3e132c5575c2c9b37062e26b7dd06062bec377669d69ec282883b42abf3fda844e3b9a7435b868c9f33083a0aad1b190f9e2dc2c4d7c95b48118350000a1f5e393a818f2564db0de78876f86a7f9b4f9427457f339bf318a9aca2c0736312c62d4690c5dc44a2998edd6412a56da90390edc81b35a3f2526bc8b59760c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b8aee48483fc8cd7704295e2642a7b13c090000000000000051968723a288fbbd5b7535b3dcf6b49e7910b3922b9a81504e54138ca0084f677d8c0618032963bcd02af091588328ddf80933f76aeeb1d6ba415ae2d431c3b49d372d23629d58c7e1096a663988e017c4389853b4fe84e825f5d145ef97beee9d4c5a6ead2b80416df3a5371a2ce180af78d592a1bed4b0be7f884795b6d52464e9c8b16f73d8f383e30cee5593532ba3d7f86d64a32d2ad0963b1979a6e518b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc495cf41119553e5899c0ce1d369d32370800000000000000616f1e8623bff0868d8c2b5ca331ecaa12105ae7ea485f9ade766f5e97043bed73b4f99ee4a5ac4acfabf8da98eda6acc815ef3fefc73692020292949f3a67da4f33bd1affc67a2a0f03b59538febf7b90d87fc3667aa48e718b2f03e1696b860a3269d4a7d012ae9aea5f7027e9a0917abc0c7ea81e2bf8eeb18223d5b8c4b245de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a64e79ce50ab367950579e7e2600734d200700000000000000e8d382225982bfb7bbef83a3a8d92499d32e867481b6753ec8738ff44e843bc4a165b5466ffa1faef0542cb2824ec49a5d6b721d7bd408bcc3ee0b2f5c3bad8a8820b1ed02744c737a90345f4efb350c2e31074023f172ca0a509510a268aee6678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec765886168c3f2129cd6450169542fe0b060000000000000004522fd417f71181894e1404e173a379bd06cf2c08378878f3188655e3ac89af46839e0c583a90b2f4c201a875e4c178daa01e0aa4fe26d1d1dc08a3174d0fdd5879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172013f261d30dd5617e77d9419199851d0500000000000000e40a87bde0433526a7bda9392994263a6cc2d84604b19f6efea4367557a200c7603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799809c27e37f87a4060e2b5454812eaca3a0400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000df6bb56088a9c9588d2d3e6c1a21d4681000000000000000388f8a8c734d82f111b8bfe3c574102c142b21c12c711dea5241117af77113d4b6cb3832ab548a9b96b1a695d7a08cdd0c0f0667735d3d8c9ed2968b281a5ce6e034a511a6f9ea03dd2a4ed9172f5cd22e3c9396c546ebc7980afc23b16957b0f248b37a8e6a4dcff50afb021523f0d03957c0fb0d4d9bf90217aea737e6c75741e252f63c222c8c1c69228bbdd6b346783e01c9df451049a094877b016f86373e5a859096d2bb4c70e5ca195c7039e12165e1b102f1135c4221f86a30911ffcc5a54f25b76ab5fcbc925b701963ca2b9a40766d055c8a319fe72b56e2c774efeeb79b44c8da5e0f8a67121628a1c1b2dc871b77176a8f89dbdb7a941a86984c11c5e5103d64dadf4c2c212a5e463d4f04f4ca1126125b451161b7fa971d8aee8b81fcc9087a2a81ff63fc54235db999430bfb6fd2ff936d22690bb6a69423d2b3278d462446706dcdac14b17718d29a055dc7563c7f833192717d8519eace26407e23f89bfc38c502019b8c2287c18df6c0fd930e07e04f0ddfb1cb5715a9b523a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29b7e97307ae48268bb1e1e3adfe6a70b0f00000000000000aed9f4082652dc656489c40d19af17e268ec0606e8bacb1cca74883b27db686424f235b268752df774e4a297f43c6cc7b55bbca49d0824bd23e1b96e25ab0ae81e95c98985cf2001c1251342ba8f760bcdfaa0ea00f3c8afa31a553efb44a9cd4dd54c1b650992f9a86b82d0165dd5c68384fc0687f6b08fbbbf02c50cfae5bf19a26c7b2935df4be99ff76dadfab09e54ca364b23a058646eacb35a07aac0d387df5f9b1cd6be8ef0993ad55591c58b4efdbffe33bb7bb1075e62617839ec09daea4a8dc9e89c912f30be717ce68d5f23930766258d1759fbe8074e3bb2d7a22b9a9167bc7ab004f30edadc7d38cf0e67f2a2e7fc1b62aacb27cda249de29d2ed477cd97cf536ccfbaed23c22ca6c17448570d3a64a9a5f098be482aa48dc7b90e4d1e031f7f5a449cc7e42f57d7b0c5c4673aebddaee7b03618bc149a30d2f86fc6bab113fda68c1f91f916c648d15c5818a6c577936f934b06ea4da5ca3e4cf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5282adaf119b0a35c0394c2ed1c66418f770e000000000000007c7ff54b5050ee22ccf37391bddc3e49c38778fff38b4468dac5dd8946c56a10d2273fb77bfe7bf9f0b0f43db3e009c80b9b0c1abbbc4fb92c7cd88c1f403c9730c9efa84bc95c05116a266577c0584b5d93c3f16cbdcbf90c383ab391e00219d45a3d5c2ec48cb8a1532567ad630ab8e6b8668afb29d14b6ebafa125fffa208630fb2bfaa621ae450803e96de7839e0c3c47cb4f941fcfcaa6c0f4ba37262a5fb5e59682e38418e2bc337b9ff0af11cc034d8ddf5890b0ebaf550968013aa0b48aba0354a8cab290f1cbf7350eaf17aca32f205f1a580404c9ef7c6dd3fdb40b8fd6137ff53af9bdf955d2a15e4eefb2c0deada052e7e170d21c76516eb6bf64b03090d2cf5f859da713eb2d9472aa0c21f2d4763b370f59892b1ea61bddad7fae4b1adfb8da750f1620e3ed9db0b7995f95afb2d72a898d0530b4fd47add81fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b682273631129e6112fdbbe2c283f916d450d0000000000000013d724543a50765cc0982d30ef74e7ced1ceb4c80796037756fae76c8a0b0f83bf570e8045fe688c9078df1d60a11a7eaa49635420c9c66e60d3be67423c4c138d8b329d9b60dcddf425693d4179a5a50a32b6663a6ab117c02f744131367c52958e6c7dbb02556de7ace3595630c019b0bce62803c3d5b120ea24c7322efac9e1a3c8ea470a2035bdae1655c2b331156541c8b243e8c3485886d807670b789f39b855464b5a12d6052659d6dafb6ac4280281ab9684bad9597029ae7e370c98bb6f8b38d38ee9024157a2fe157de0912008951784d2cea34f66ce174a5b68d7fa0ab2cf0c725a7f03c2c70076ebcba4bc5d953c9e42bca5ffaa7a68aa2a69a93fcaa92ffc598ae2dfa2894eae9533e0f29f3dd79365246f9c81d0710016a38e7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999adde6a565141906342cf93206b82e6590c000000000000003c5b721eac0f7de5c614de322a8d24b04fd910f1697cce6e83dff393032d6549ce4dc077d7db13501bca01834c63f525c4278e198c09e550eb88a2b3971f96ef5e8b119a14e597dc2e069e946b4deb4b8d9f94ac27fbf482b9171ea6710b1fb7138eebbc5d957d9e9429c3ca4f37b5514289d494e0225d346e606294e73f1f9ac5b8ce56872246f5d92203edb3d91e0f02e97a2b19418c610b590572116ae12f246324b87a08ebed194982d9b141f26bb3d3b342284cc69b4695cc835644ab9b9513ce2b919079e32816c00cf6b071ab412ebdbad1fe12649a841f522768741bbbdfc9a689119fa8914425f71a0a0bcb7a999c622f2a182590260e231a636be919e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249299d216c12d72c72fa8d79228cb24c1c0b00000000000000bace09c33c45adafc16d7c36c97264f032a201217a5a851b3b25042e63cf44bb7783760eb33f7ac2e8b7d08189b4dfeebf8f5ea595f889e14b64f8294e1ea51a5e65be5facec7579c40a67181f30c2c99700d61bc3b1f39925c94ef9abe1850b969462bf050977b327a14fdf68923ffaa0eec3bfe0d1f2098aa8667a37581d16ab69261507ac2f7b09641063af992ca329759b59b36eb9100b378c6958e97ec487638091cfa8676568dc3246d49a710afe68a7cee0f710b420b24164df9e45fbe9ac071318e227900cf805716f3d20bdc331827de7f1325cfbe267ac53e45baf669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c56d6cb1f2558cd5186b9470e92b685070a00000000000000603eb9baacc70e31ce60a6d1e153dcd940d180427a40f0853d0b1376a64b23de453c2290008de748751be6a81171cffef5225bcd592c158966c97c505b0330d44c394acb8db55bfc5974d780858999e060e9201d48c3ee1813f6310d30a9e578ef7fa51f14faf5485f8f9df856d0a958a2f6258fc4c4ab9d25e957095a739c80173404619f507e8fad344307651f6ab0564c3b1c89023e157e1ad8f7c74e79ff3fddd4fd09e6db195402de2223c446342c43a9d6973d6412074a54a30ea0463634a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0f5413c3aef026573f0fc4c0f4746976f0900000000000000db2f96c97f80f7a670556157eda761d5fc104f742ef5139003a390b2f59450f20eebfd8b5911251b305943f2a675f3d2796e35c98ae7e93adc562b9565c886f941ef6f6c6e51cd4d10acf51daf848c5f7c1e76416dd0d60f0a0387f26929c5bbb81e67334ce2792f3eed3c50927de8017950d39fe4ec8531adfe8b7095ec7c575b70970ab498aaa26d428e4ea378a4637b59a691670d6a927e25e075c9b839648f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d27057a2e27e227078a4f4b57b43504210800000000000000f4cb815e4b87c5925441fc129e8aee136c722a105ca31a42c387c6c9af07adbfc5a04850472a80a90aecc439bf9be9c87271c4cf86e9297431b4e469d374397aea6854c6b4aa904c5af5628ede515294ab06ad8deb763f5bb38cef31425d995a09a75ac1a1e0d1750748c35e9cf6bf871f39e1c27c3b1354e0043b3a904fe26c7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222fb0a5b31aa10cb5b830838558c9a681f070000000000000063642cf4c84357626959ed688be88ccfe6a6d4897ea7d32c5861c42c49f10bce3894a41f0b7e5e275cb64db8aa39c790affa11e4e10916047e750e470059ae3a24c6576c5b83434dff6e5b0cedebeb7a31adf7914897eefb20f1db0637ef8677bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5b6ef4a5791487a1be4d79c0d5ea9ea740600000000000000df257adfb1efee4e745ebbe0223cdcd0eaa9cc30d987e00dda64919d720fb31d1e8502a711d73886229d9a1d429e3a63fc42042e83047715414ec4bbdcad441312ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c2b85b640c8c8fd10a6861e2fe382680f05000000000000004241c932cb93cb8df1d4040fa3c8eff32558667ee796cc27b07ff84d139765b30b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c8c55991f881eee15cbc3bd6c57a71d210400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000002e4cb60b8ae7a658578fea356673ac56100000000000000012a32fd9b3202925c3effeb37c0fcd402ea1110bd1b11131de669b279a38c28c9689f6cfb4327c6e957485db99d8c9c36311a626f76c8a433ee4b1103fc3180ebfdd75a4ca6df310231af7590bff94018e8170a1c99ff084bce8c2e6fa2c38fe166042cc22f7dea14ad460a23d70346d02318be0a2c34a914388e0cd5b8991e8d4e06bd4e64ff830bf128e5480acf510be939d3b2498282a07126b4597986e9adc8281ba7e6318e1e4d6165b81ae9fd7bfbd2c5dc018f951026c20ed2e57a3c5aa2e465ec4588f57ebe5b32b6e0e7b2d5beb700634e770a151948f1ffaa1cf3f80cfbc7f5371ec5679f15eb32bbf1ea332038051663a9be056668347301a5d7cc6bf91fcdb2ad754740b76371920ce7964d841c5ff3f1f8b52fa6dc8b6740af760191dda1bf950328f790e8f25dd07bf14aedb1161dd6f4d8963adb4f7ed0b941106489923d24a1096b33655a3126c0fef15eec5c95e20065da4689d4f1ec6cd4f277224f00188eaa5a34ff0b3762422bf7d1adad3acb1ceefc9d4822e7f0d1accb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07e1580139c58e0f233aa6ac3d79e659720f00000000000000bda06b97310ea2c98c3fdab9e7d3fd7f86c74a00e82ab1602e105a9cccf302d136768118da5ef917917e40b017351210d6cbc0851365fe10b33b84a3a8b1789dc2a55a39dfbd4bde59d879d57f27ce804fa6d721b765ae461b6155565a17e9587c3efe46581581fcc3b23a93877b7c1ab68dba93c415db61fa3d36943ab12c182ada50d302d2c2ee41ffe58d54f414c00b2f64f91166d180aa2483a430750f301b048c10fb4a1f303fb840cd6f5fe6788c52e830e491c9cfb24e22f50f5daab8c3f0e7f9b4ba3ea3906e83da62ee1f470a03b0c5f1868d26143cfffc840b39a42880e6963691913aed950436bf744c9d4aa3e0de2ec1a18f972022d4f7f1b2bc13ae49ed2ebb1f1df6c57e723cc5e68281a854680f690130cb2e4b1fd9b4115c33d01e56206ef7e3cfc3f7d93cf4e6aa15a07731457ca74726fa98d05b4205813090f7d6dde7e20d9178caf380830edc05c82975a11407ffe93437d493ec3cd80db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19f5e858417905782e1dd3bd682f9f0c280e00000000000000021d413fcbe924c7f375e0e5b2fc035b5a10cc07cbd274424e1e36a70fca102f8bcf30b44ca5a76eee9c40d3537bedd9307cde416291ecbc5edc5939699f4c0a6a9fb905f23572c338b14897666024142a2dc68c10f5a48105cf6b1f23ac9b608f76de1804a205ce8b34f4249ea0bb03cfdd17e1e304b542b3b75a6408d2b48e6bf26d2fa732aab7b95efc89787f8c79b29bfda8016e116c444c3595d4a646b519b974534ff51d6583356a8b69f61b477a10feb741cd1c50867d1e528982a501ff73ec3d4531d8ee0044c7055a882c577a932dc6b4d7938d6832677b2433827021af0fdce520d11b66bb1cc6e931cfc9863d89307be0eebae8b097add8c8470ff45cfa4ac60130eb8f4d1a614df8affc1654596b5c82feff90b5cd8a1b0dd5319819f11f750a8ec49687f94091e0dc65cdffe1d681159dd86070a9f34a28f40524b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817ddc565c004196935ef8a6136282807f190d0000000000000070875277fee9cf5b60b3531f0c7221df5163fe167dbd6ac0d7e07318d0d81059836c3202890e41ae7991d6a40957792612cbb53d5d8cb47bb28f4cf80bcb7a7ede97b119e86efbbdf92e0e1aae0066097ec343a35ebe0450978ac3cfc2959f2bf62a9677a2f43fad17942bd4afa017d8551eefd371f3467cf8c9ccac52c35c1a94bd1455afc4c1b080281433c28251fa91e833b1fd881558fa564da0f3f5f74f72125a5d8402828b3d89bd327aefba2b3be278269791ca73e852bc276e684191b748e1729fbae68b8d0e54db49e6211dd26fee57025ad7019c8322248290ac997ebd8dacd4708648e58722f26ca276cba22ee144ff77109ab623239206a470024ab1ee989dbfdbbfe182732bf5f472904436314e7b435996eee6539cc0430707ffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff992c4490b3dc0805983cdcf2ca7e339720c00000000000000452fdfd3bd61e980a1f699164e5dceeac6588a3f0bfcf53b01fdf151b41a64cff3ae0676fa4b9c659fda89a16594088806fdda33e0f4e60553c862d2cbc32c8b2995ba60574205e316532ca68cfbb22a0b5cb954a63f6f0e79a54d4f18d7209094c256762be573999a6f90500d463de479f39cfc1590fc73c17b3aee30705e6d946ce6e396ec18773ea7a75742f0a62db1d4cab239aefbf8763754a9d95bd3ecf04aafe47a873295a1d3640d575696fbedec768dc94faccc3930bc35e610888b4a77a632842aded13145af67ea1b7d776ebba6221317b76aab27f18a7f95041ba32ae6ad5adf236ec0ab1736a1582b2fce0fdbda646343b22a7b08bcd7aae21438a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a86c3e7065969fd2077fcc241b86478c170b000000000000004617ad582434c21db3d6c93f79766fb32dcec90995a099e3d4a7da8ab8f1302a3a91981848be6a873c22204dfc47f189e3d93be7f6e69aafe9d161d419a7838aa20eb47ee0e77ea714476e897dc93ceba8a22d25981dd1fe695a492bb1aff3a0cac8b288667c4e0d575db3c8bdf11de0e3b4058de686654574a2ae5bf950823308ca56fc3c643bbd4b4a993006a5b6cd8884b1f226a85ba09c14327cf645a4b3259e23bfad8e178fea6961706ea86f1a4bc6ad1e6f41738ca8daccf98001885e219f4fc54828d3400469a8d46c8b1d7428c11aa3f23853d69897c00e1ee3400ff01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e401fba283d5e0b0a0775294d6bccb3700a000000000000005256b89f84489c12dd1848784dd92d83ee7e67bc45a2cae0da0df1fbfbc0a85a8d0c4f7403d75bfd8e46f3e7a45117b0913653fb0ff7885bbebb9ec7fecbdfb69853850d015bf3d971a86220ecb5760854dd330154f784442d9e2b66b5f49fbd40d59501c091819929122870d208b119379c56d1e5b165b8ca10f309a4b435b16fed5182f5c2b15abef207c4eed6cdef96b0538927e3039cd0cde581c0ac2148644e5a579c9a1da55e1e0b9a63636675a78aeb15230397d83ab854c78254250c1d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b4797e9032da588309ac1012d88255663090000000000000006e334481ae0dde3eeb425dd98fd8312d2220132ddf074061108188437293aad520ea4ae62320be9ba38d62abc7d3f06ab7eb7b9808bc1fc3807185f819b8dffa3f5fa8bfef9b2956f73a517a03d592997b7b562dde007af36d2067d137a25ad8a41db2282c9bcd4f7529677f41193abbadaa3834d7dc8bb153046b9defe12a3468e97549d9ed3c1a5cbfa0487abc73f69458a14b693a7c1a8d5a46e651358e7388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcf380db25764d1871521c12641bc016640800000000000000063820a7c07cd6d5d92fe1c9541311ed62b44031002b5083fd6fe91c47a5af47afa9eac90356ea8de9233092fac2afdbabcdf1268531fa02b0284c520a34293d45bd65f5a3372383112388108a63cc9cd05b333db94ea64c2a0778ab036800971efaa822ba0dd32820ebafd0b74be9367b63e04a1c9a8838cf707c5453c25995c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a679f2e921d8df2960d7ab7510eabedb6f0700000000000000ebc59daeb8c4c88720d1e75d259ad66f36846f1bcd21320b2c494584c03ea94b8169ccd4a3fc76d438db04c446c822cdd479585b4d7a151965533b4d00d235f6ebb571532d30f2b323c96adb7b71cac56edbc8895af1a50dc285df5306b3c3ab9e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec096416716686e300b032c019133a8e0106000000000000009466afe97eb3b4b2aa1135f793c0290aed0d189ed9ae8f32f586680e893301b77109561fda231ab5896a4b509c7b49303b0e796ff21bae5b99fb6ec7d00bd8c9492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172fc9420957e5041ae46ec2311ce4155305000000000000004f1f1b2fd8af737ce82071be8f42b079686c51788bf719db79f3ffdc08848eb1d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998703fe75862403e0f62e29e1239c5067604000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000004f57e03b399695342acc0b5e9c2942101000000000000000fe6006092abbab34896e46f428b2381a7f67135db00893a237b5ada07eb961bb2cab906d72730d3a7ed06e2063ac526c4af3dc83fa90951e549681df275d75295630a79e22b24409aaffd0cc53644c36db21938155cfb28e78f2151489b89a2cfda7b5fd795f9f12c35da3478a85b566fb67c628ffc9651ca98c58b3e5cd1d11533208bdb04eb3b8f9d8070f07ab4b44191468e8bd234d14ad7c67a14b0a58c770da370188c0caa0c3ab8173eb23f880889f28217a5ff5bc8117d03aa8e870b705b8acd353659bf323508ea2abab8dd7350ac4eaf1440ad511b37c32daa1fbbfdb7acc06ba7bf04a6e76342330c87a7ddc6c80a7797bb62a51d774605f06d41d437098ea88fcfd900f27be881356cc0df4fda5940ca9a8f20f5056466fd333a0e33d0cec002ea7c6284958414fca53981b468efc124ee36b3100cb9a27b2e7a4b38b4f579540b51329b6f2d3f1f77728aa5e0eebdc0c30f2d3f1ac5a36414bcd0b4c260b316ee82b50c83c8a9a8cd61f9de3634ccf98e53fef49abe4f8934a0049e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07aec22e2ae274001678258b2ace4753270f00000000000000fe92c802ec529e10007cc299a858f791f3d1cd0b4118664ab74dddaede932c4c535a9c0479cb30fab98d150cb58adb42af55a51d4c98fbc74417744735e51517f7a6bbddfe5e3ed68ff5bc5c00ab054511187559d5a1e3fdc1dd2771fe8ccb070cbe3bcf3c3188446ab914602b0ff19df1cd78d66ff5e106cc660faf4fdd9b2cf17f3eee751ba9f91440e7b65a5908b7775106c714be7aa3d261db9e7c352ea83437e68a83c81499b003815938d921ecf4a094bc63c6e019c12a51043a70dc7107a59fc83fac70be77e31eb01aaffbca367106223ba16a926579a0094c5efa08ef64c0ca4467ca11f56ae74581f3c947e6a91b3f6140b69c2766df45d7504fb886b3e33c7ce695651560410d226ca249198da3e019b9a0a4df48b82edb1b95840145a4517c3e10e1ea18566a9d683520816c64ae5efcc5119082aa3efb6be26b83df9b0800fc719fc558a966bc8649b6a86229f0e6645c5ffd28d8633e6cffcfc5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19cfed365b314efb2262d4e9668aaa4d670e000000000000007c9454a9aa1a1f65752561f12d3ffc6f1f9f34db85659c45306a6ccac14a0fcc0f0f6e6ac3b85c373b797f10d9e88f2a257312698675415fc0177a9236c427f5e74d9c18ad6dd0a37ff79e906a8255afbd0d4b1a18a247360d7a7e344130d39b9977e144bc89db3fcc3d7ad37bd447a0deeae641724a3005cc2e1a09f33ec373ae921d0cbecb5948fe2c3cc6ae02f4e7d88a6fda2ce73ef38bfd6a59d145524b27e597e44cad45b7ae2e8bdda9dfe13b8dafffe73498a18f352c456e49b33d011dee9b457b9f7ce099353ef2c72bb749229e99b26e26ae778203d2cf8bf40934085407090e1706f895a13444a9e393321fe84efa744598e0ba019b3286d832c78471662dcb642c1e23a47f1fcc14cf9b7c848acbb7982e0216aebcd5240c66af85256e8e1c933abf3dad7157f44b9fab0599491d9d0ad27144d80b1328105dfb4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817de4e98a03da8a4708e89c33230f1f565b0d00000000000000c2061923035b6fbace6d29ab1555f5344e05581db9364ec84d97677dc128f49dab40d86d0ef26bb6d6a8b0393d1db02a780c8ddf11523d12d01fb005efbe6ddafe4689988534a7f3954eefb860d5a1ae1f4cadd871188261f8fb2ff0622e8b32bdde4b29caad417a4b43632f214d758ea5ae58f1fdb66d497dea873a061e62a9792173e2e506e6b1e5ab9d3fd206aabefe71d4f4b6723f5154c59e31370ae426dd54f64648a5cb13ea4cf77019f2c23f3bdaacb908e3085c0bb644f0a4382cf0c4616e96d7a5632119fcbfd37e2f87c93cd137486347ac13e60f4a9f3f6a4f11cca70efbf74556eba3fe3d081bd2510e310432d6ee0da5b90d0adcb9b555f4dab7b02e4d42392ab275e93548ea0ccfdee278a4dd454e44e4f2dfa0e550b362fb001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff911a6c63b76cf2663bd9cdc36a74ddc330c00000000000000f2f3c23c1396abe826746c6c7c840c5b67deec860efed9d5c0b35b16e3553f84603f9aa669ad5071f4f1b92f51462f4ca56272263c95885bb8327797a19ceadfa7c22dd91351e364fb9288ea76862d1373f6a0b5afe13d9f8d2fda8ced77b6f5cb58dfeaebb1c491e4471afbdd057f0ecf09988c88a2ffaae43fc70fc69efec7299affcc899dd68d50288fe59d4d5b4facd9b279acc49b1fec0d738aaa409c33ad075e2bbdf7530edddc277716131820e9d36ed47f55ab4e1f18bfb9cce9793ed3ac086602a459c4aedb7763276c7c6803ee036916047c3e6e6df69064675c8e6adb67290d1bef3f2973f4aba88a7857816291194f327111a27e12b8fbbd845396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8750c405d55e38726353881361f2cd06b0b00000000000000d86c83c768ec5caccf7bcba2c94532547903b1329add5d2923eb16bcfe6a9fedf78d390599be65c5e958b455f94436573d5cb5a1ef88799144c996d9347d92c129e2380833b203394eafdd0011da752fdeaebd5f755979c80077e0c3c96e5eaeee25c8c7919b53b859fa4ad30d158adec054fca1d2be277d3c6da3d279cb869a4128d103f4a0862c43f5cfdd03ba571c52494e4d8c7784ecb01479447b0d579ef5223d809000b5f828b219ed35203f68c30e9951e7195023ac9bd8ee972cad7a9b17c506fcf44bd442003ae8f053e043be63406902961fcb3c3e3349bfb86ef3da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e300a0b376fbd17644b3085596177ba1c0a000000000000008df4f3a83a3f33062a3284dd1bb77cfc683e36c9ce0a62b44b68cdc96a59a822727c738f981d7d11fb53fe7d92c478eb7522fb34f1b9af4fc38de6ef54637240d6f3e67e326fd65d08b5c9f7d2a43d9c9745a15f9af4550868e537316836b895b33a8e0a668e3089a737fd61cb5aacb2e45f6451f77851e18ae7f3db9dcd25f6c3cd7dca98d8cbfc23d690a00a0afd5ec30d00d2f7eef27c99e7f6805235e9131877b8bba0141a34ac59a6499efe992233540146045ac955f3f1eb4a80c3e5d4b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b820f733a5591cd4c60197446fa5d7f220900000000000000725108f8b7bbf927792d4a3c31ab37b967f62cfd0146edf41b9b5c40cf94e835e7ae2c2ebb578a314ef0cf7afc5090fdc65ca5036604c7f1c744a7b7515cb8784a75afd9a2fd34d29c470e42985224b307af2eba609536c9465a22615b89a5f044cd348ed3ab320d87c8e84275aa8094770218afafe10b9fca0682408152c698135b2d697fafe5304d72f156b075372193a61cb8cabe44f2d2e876b75f981ccc579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcb8e8b36427f67753d7ca2f7296605f580800000000000000002914b507c4c3748e0be996ec452ccd7623a32fa4f5910469f4983fabefaf2e55c8083af01ce4a15fe67015f6dbd0ad81b0a745202e546c5c777f7e350da560776bc22e45564c4eeea58277b5fa28be39a552b150621bf5a1521aa058dc296df1ab466addd7934ed99ae9a00f8ce4b8ac18c52422b9a20e40fbb6f725b9e4addd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a637ecd24968623f44ed9ff119d0327a1007000000000000001857b6cb5d1ec57291fe6967804eb3c8d37df12888d4c68ca6ac4b9a5b5c3bc062cc799e06519d1d93432d1615243d2ea9a275ef2345b85415a461b1ebceb8e206f13ab929687db3a11c64418dbb4dd26a52bd681b0f35ad3ef343748da547579f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec8687f615ca47311d96839e3b34218e5d060000000000000020022f691be7fa51e4aca4a204178cbc744d06b898cf0882106f7bddcf54d7b28a86c873f001c482ad15423f419b1be26434cbcfd71c0eb454c4998528fe7ef3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1749fa086325e2ad2acba3f3460d83f16c05000000000000002602254f22ef23de6f52a919e2d8f299e892d74b0f2312dea6028668c479623bbc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998b74b14753f0c932b96bdeb5b8b03bd0e040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000f4df8751677a6972e42f814775c86e25100000000000000031a83d853b8cf55b95510ea3aaeb61d19a4855f8fae2671d75bb197eca6379f9a879ea449c512550161ea378eba21e0e8d9317db1975617d87984aa34be61acf19509d905b1faf9a70f380e77deb9ca8dada2f968d6cf5c9237d4af5f2d9dbb314b1ea74c04f063e5b75691817544bdf8875cba8ba97afd00eea8a2d55b3bcaeb36f4e605dd8159f7a0d016c5640013ed4397ae5c5bc2445b40bd48716d07a1aef80b360d4a839dc69993b4d7163eff277fb61bc865fcc236d2a77196f602a518847b1ad4cf6b4fb8490c15733f63ab324c2cc8d7e6a516a79ca0b76b8b3dc594b9c9da5b3ee1e8dd84296dcda4aa61adec85a2a0b7659a01370d1aa2dcc06a9754d5de146f1d03fa0d4b3a38ef4558d5081483c46eb896c531f205be32127fef305d669818740a831316a054c431f0dcf4ddf548ccb9f2e1bf1fd4e9e4a1becba9bf19cbaf851804582f5ec5e3aff27d63eaca7b2b29236af6dbed5a863eedc49cacbfbab7c72a01d91c9700a909eace4a5f0fb40e1ced0d8e30a6a3c7dd9627b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa25d1a3133e19f182014b0655f99d2d85e0f000000000000005e6a01f69fcf960d848a50d1f46308207ceadfa99e848c53f1b17c2b7af6cb01344a828065094ceb7384fd98203bdb18b894566b19d6c800393135ac4c4483bb6e8a5d88cdde472b38c93405c296d58b12d9eb15461cb6479d41827745e80b76c1953ef3da2d2b7bf9e266f9bc4219c4985debf63c4f07107dec6460837806956a8328f62503ba352cee00f8fe65c7e19a78d4dfc069220066f966cf0db5a252df2687928e4dc52078ba45c5473aefb95b40c13dce2777718efe63b03de87fc894e209f21739183435b055e28b6e39a9da6a4e61ded04ba68345cd4b5574f5867479382cd066faa9d4907049e65728592f9af24dffe4c0d75f71fbb5745f22a93b683c525dfc90baaa47c306b2d15798bd325bdc78ee37cb59463ed297ee095c087cfda00bdbda34860c2d69b62555f4a65d20598d1d242baf52bd25b31068178b60327b94c8756f2b9f9d39fe860eae4d38b033a1965c82b404f1c59359ca943ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528e054b725d6e9861f6048cb0765a8ab200e000000000000007dd1c2cbee9037a2329f6d958827607b817fabdc4f2044ae52b49ecc17dedaebcfff9967cd52e919f5ec6073d7a01a1e0f126954a929f5eaee05c39cedded174d107e2120454f8752d0bd1153668e4fd1705d9616531087d52e9ae0c4078c65600512ac8bab5a3b4760d97684bd416bbc1d21889b82b112c3fd5eb4ae2f41c3897f7a3d930475c7337d1affffd5fb1a8f9383f682971233101da82cc6c8306fa6ad6ad7bf22a6ba207cacc09f2a92c6861fff37a926538de7dcfa55a84924407ca18c7abab1552d9d40e986ca8d77a5fc6d693d456a1865b98d7703321e57686d0b248427823b78a8d16cc8dec707c73587936f7183c31f5de7bda789e9d852cf31b6d1a0ac28ba0dace53567d6c166726f0aafdbb1869fecac781630e7c75688d7d326950246b54407590ab26cd9ddb6ac6c9afe60af5856c607a7ed618960e37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b680c843d770ef3130c62c3bb0a17df2f3d0d000000000000005f58d132d75faee5742e78fe69ba74b9873a1fff304aa284f19aa0d34753d2a8d233365d685944bc84e9baeb48cca710d33c6cb48f37ec7359a7effcedd0e48d2896b621464a2264575839679909d53a64f00718baad1721f94b285496c4858a622e037d736738cb3ebf0c7353c6131499c244bee0b5bcef2503ccb956de3a65bfd20a4e68981389fc17078c339c55fef642dea8feb08635f5b25ddfb21e03b169c2f1dbab98cf29ff3b8859067a5a4bbcd28119b2fa1cc9b42a18237af86c4f4c5364521f1e365497a966a7f58961413ae94bad976d0f55fd0cac980e9adfb525a694479f168a9e1428c0413805009d9a125d2d133f8a16cc0d4b46a214b57a6bc7b5e1c85d871f1f9d03898dd3170d885a55f08e0d08a4316f75a0346a0babc3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999975a75a0103d02349dda02a2c32a9412d0c00000000000000b6720199a3c4422974290d121124db8cce7cf6be748a1e17be7ec5163c29427d105737991075f0b65c2235eec824169b7efd5fc32b872f07c78d3afac74d540f75842d9662980b01faa992834cce37ad32b12cf5d4cf4791f390f896d297e581313f5659a5cbcf0b5f56e98a28fbbbc1a87749182913518a809f05263e8d725f463e0abeefbb77ad6b717e11be0b65b259a1c82ad6498a1c0d73adc061359ea90e07460d6f54674601db077570adc0ef04a86debc4050de338abfee956d3edf173ff48db2ea06fa7c1a0bc0fc0f254c427bbfcb7eed5b8242e0c8b1ce809c6fc6164d6845e6e89716c08b1c1b5e78a85b240aa229654f5e54c980d069083fa99d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249bd1a086970ff7a01c093734a162b343e0b00000000000000e42008d324456349b44d4dd990795ac18206c23b39004132e1070d71a468cb104827a72c3ed3a740f07cc244ea0d35936bd5a79ce9d009fb44c8359247f705902ca0938b841363c9585c096ae7d14d531fde975e2ed3e38db7a9f797268ed25727e6ab6a050cc448b29edad99b9f2437bbe590f8676168b869e5220c5ef099bfa970d90adce837c4680758777463ad904f879b35f14ce4352fb526c1dfc15f6d67b3dfba8139abc33431da1391bffd9c94b44cb6a5944ae9e046bd0b94dfbd17710e5744052ff2556dbd942ab8b112da1a65ed297e2af4a10617903847bfaa0d5786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c5f81b04ef16024344481f333bed7d8340a000000000000003e8fd0d1bb9f4f57e9356296cf843514042b8d63f576332c82fee15a52e17adcccd7a5469970520835a6f6778f865f68a3d13cbc51c9698ff5f893aa21b20b49dd5e18aa36a0f7dd0a63d26fc464e3aa592a75b01f88a4bab42260caf0e5bec577cb1adb4feb1a18a5d2d776b270c43417ad55f26619cc8a4d131ff3219518569656c1d2e383ef05c6cbdac02ae58da4f112dbf9696f21c40faee9c221548a2aa803e14be6aa15fbba8e21e46c4450142ffd3284bd2f997567c13bf8e14f87af6be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0dbcd8237a453856251b77954d8e54e53090000000000000083337e4dfb38a9ed0a516befeb1cd18cef7d54f47558e337fbaaf4f96bcb71b753d9e54ffc922069095ee2064319699a17d85629b6277d217a303191764300867fa84569b65d874375d045d24fe9dafca30ae5df21a9990a03c491277f032f17bdebbfd052690aeae724fb1338cecfafa8d58730fd0b32f74d36fdc236d314fd31b6c0336b0419f6505de60c8ad3a3ee89a212f98dd9be64a6bfd65a92a66a1d611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d6e718e380134db2c93352d338ea53a220800000000000000cffe535610d36e075dca9b7ea9f31a2d2e61b6a8e5566365b61668e9c194cc74468643e08e160524c66dd94fa443f565eda6bf5c7fded5186779cae2e818446de1157caee11e33829b2cee70a5ffc846a302c3292c82c47ac6ff4280552327498e56d66a8df35571e4828b794815e724327a96b2930aea57ca1790313df7c57111f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222f203d973b5ca13158104c364dfdf1c0d0700000000000000b8bf93f41795c29806016b054b67cb3c46daa6c232d6a25457581c7c1285ab5654a3465d931a44f4e5efb09619c6b57851eff5cdccfddb0d8449129adfed5e241e1c0e9c910f574a05c6704f35138a4c622bbb1f7e75c17a74dba00114d8f345a022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c59b343b24c06cf5321576b535bbf4ad6c06000000000000002580ec69e68439c0f1071dc0b38e636f3a67db4d91f55b03bcae9082bdbc606846ae41cdb568ef3345a8dedd5f4057bfea705921e55b8146559fea30291cec85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cd650a66b61d6e6021e432e22455c153b050000000000000070bb2c301bc17753bd1d60c4173f3ee16104293295360be9cf515e1d153b12cf13d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c79b9f55eb3a7c20a4c6c7d1b0f557b3c0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000006d9e1e658579420a3ec0f143062ace51100000000000000049f343293427f0123e95cff3672bdf0e19e4405873e3ab36c769035ee25118f92eff2afec342669480a4aa8ee96e7f92901c3732ce52892cdfbaf3e1864b0990234e9645842ffffde619a67706484b8166a57f5665f63ff61c29b23f7255bc954ebc791d2b7037c9a95b110b9895f562e0332c79c303b6e1dcca4b500de764601969b078ab256fedcc8c997821a4b7af5250308287eccc2b6766d771fad9ac1137979c7275d3350c072fadc462eebe62beb51b42867feef1e67fc841b0e4c34198aac8716aedc2aa2edcbea5f971d5c6d3d3d0e1d35037bec89d720c2ed11d7b00a1cdaf875fcd88fa97cb5c09f8cc86cb50fae79def9aa62b725a2907400d1c9d0c4535a460ab6a4adc84248403b7e3e6a1ee6e45b00cba111113d94275856bb642748dd1f1c6784e999e996521bfab88dcb3c5a78a4af147b8884844bba9716c67469b1feb95c927d8e7872e5034a5e7a0fa0ebd7f01eb8d03978fd69526f7c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2f4388338a072923efe1f0663ea9ccd050f000000000000004121cd33080a34d696ceaa0d57db2733244376d75213be39436fc4c5d2fabd8b5a0d67f8a9828aae8f1ac51a433cad87cadee73906b61ca20530951c29cb07bcc33fc9cc108019c68ada75ea5427e2c8a67ac02e908b89145bcc12a67cd61bd5e2790e29631fc96d001329d5027718174d8c47e7292757529acfb71592d631dca54000a119b9f6397c3ee099ea0b1bee2ce46555d5b4a7bfac14056c6dbcc9d8b01d7844f615847e0eed3c21af835af307b4d895780edd8ab055b600c4357737e2b9432efdaa33e717407d6f0a0d3c84f7de5a3ec40da3004386f777c484ea3a37a260c2832133adc58798fb5985d4bac1da9f89b8e3e81ca0ad205ea28e8e936a1ff7111c532c39557ae8459e56ba8558323ae91df97bcc1ad47788bad1101bb67b489a49c826fc3955586282c144491aed87dfaf5690fad6966baf58a7d27b3ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5284cf2913b59ba9c16d34e425560601e140e000000000000006dc59b3d3581c33184d2cca5c32944aae8d892248591bde40a9fc8dc692dcd7d4c5752bf45df017a40941576d70ddab96a69537f412f3bbb2963c7f46b740afcdae2b40da1f73621dc7f72bbe3bf6a69a4e3bb1f5d84455f9cf7fb5ab780b85fe8599c9251f9b0d4419c8473aed6842f2f73fa1a0e7ea433d348919673b3119e296bf93e6099fd92866c691d68325048e854966caf4e46ee08993a61c2a3eeb4111d32a0d1e918700d1b257d9403e23c06c8ecd4a20ec86fd3d09e853cd36bc863c5e29f1321840ab206bdb60e5edbae045f7e0b117d7d7bf1ee3f03c7d8cee87f9225c8a564648e41770b0dfaf1a270653ba1effb2c625eae9b979d03af457f651f5a087d9763a640543c1f321525c058edaab97d197b6869e920a99c29ac492b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b688ea46750c8942b56e813b605bf14f5640d00000000000000c16d806248c81c2fad20bae6f8e210fbee09094b6e13699bc1f59ab826aceb384e627735c5e45e820850ad4102f9a8f2a079fee80a3774ab1ca62092eec41fb043872555fc500d3cde583d017131026f3fc3f628d75af1172169458cf441b6d3b779102af47af4e6c94e74c305b18f30d6ac6d2a75976fedb20085c155e594b8a545b609bcfa83135ac1812c4b168abe1b646053949502f6a927ddcd1eb7525e1e0510bca676895606a7bf1f1ca099329ebc549dd575b500363c9cc7f1d83ded06a26bba1a55e57f8dc5d3a7d5d858863d565a3f0f12fcbd765dba6fc7387dd814f162e72a769d84594dfa9ac40768574f22a3a56612ed890c0e21a8c59e299fc6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999fe35b01c5e54a1753626891c9d12f6550c0000000000000084b215f1b92e49fb6a0433bf20e1f3a3e6731ef72c480000ac94d01034a36a05590a17eca74639d84ebf929c6b8f987b37b62a910cc02a14c127f85ab34ba7954d7637bc767dad4ce37fe2093bc2a6f9eb7f63ba88b52d61970e0ccf5b4efe544aaf912d1acb54303af0dec37fa782086be4e594d274023b83cdbc6393ce534834d0408748fc83ee6e48acf4f4b8d636f0d7163590ad1c7940d3d55a68eea0f65a7df292e1a4f82c979c310a4c63a7817de6d510b485f99a1434c7dbfe4eea02138d1f59587871a7ad0abd8873a42c95e22edacf747cfd908c5a1e4630211048c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249fb82fb2961a1685f0bb449599702e4130b00000000000000496d8b1b040f4af1310aa63eecafdeeb1d6f546471198f929adde2c2c78e3dfc25cd440c99971a5aa2a53731740b86336b180a76adebb545a3f75febb88f83ba03d9a915bf52403f3a93fde47b83947aa3b69c6aa4e0cd5cca11d6a8f604b456cbcf477d6665313c5c850bab095b0a84ab5541b444a24c166fd52f6f6cf81db05965a00f0ca287c04dfe82f461883a7c40fad628c09e0ca0a3316fbc6e6382abbcd92b27a4d9a7a807584a13fce4a4783afb754fc30896ccb85b5de2f88d6307b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c78586253c923215551f6783e5ff518110a00000000000000f00bae1dbb3c013b468a9f17738336937d12251198df3c8484e914ff4dbc3b7ddde573fa31c29f27380990f60359fcda3c06ff04918f7727f8cead3e6f1ffe3aab2cdd855697771986823f97edbb622bdcb65a001647be0a50f8502c99eea0c9009f6e1e1048d2b48aba53cb89be349fe82ba06758d762774aa40ed2e623124ae37dcfd97c815baa1439f166e4e17759ae239c1660b4f5fd2bc31590c7236f65a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c01b201924b8403b0a99d86e37d26a097209000000000000006c2d3b7e6867c3453245574f386cbd6c9950e9439a7c27d51bcb716784c52cf93a9f1eba0c7de73811b808e91f2871beece87303ababbca18b1f55d62a8e16a68501beb105be5c8461ab900eb0a04fa6a6c56248b2db1eda430fced55a02c3dc634752204ff54b585f4f7c7c92e86a169173c66107d16cef67ea8e03667370070fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dea7c65695a4a17401f82a7368489ed320800000000000000ce97bc5ee6130a6688a0e5ae685af7dfe8a6c58ba7c16531f57f6905bbd5625dc7472f4e2312d112dee146fb56bf6c22059e8ec7dab236cf399eb873ecbd4ae65f84e30fe4840d6e21b24ce074ab67908f89b6e16a579e09523b2f0f68207a9bc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222b25b451c187c2f53a5dba1241bfb09600700000000000000ed23c1c6cdfa8a9bd8bb95929c5c6d05192ba869644549e556a92b0456b276a098b3ab18400376be63b22a0fb1659c1d6c4bd2c073db2ff1968cc9c3bc3ab1bde489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c509819d1a4d2076714f0c22432129ff4f0600000000000000223c388fc347f334772267b7570b83d519d81ba477e7502fdc1d32c32cca118a89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9db2e63838b03f1abca5832c6aa2ab4105000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000f5dc646a9792be1ed93d6b5ef82cc03b10000000000000000ae8f51c327cd192decf98afa1b28f144d4ac48a7e44916432d852b68db396908cae976c4fd544d9064408bac1aa458ccdd7a9d9284ad667cc64d07a402c4e43ca4ca3c4da338043c20cde494c2b3c8184094e87b0316436af75787e4ba24a369822dbe7923106bdae84cdef787bb601afd00d0a794386edd2a860ea7c2addcf94e601af427fd84fd84ca4c0be6f5a9d6e0b75be46ac1106ba817b281b90cc303af6898b2fc759d681efada0aa258529b8012ca75bfa9487208730c6ae8b556fcb237c49e03f627a3158de3bd2e0c430afc8328b622a621883fa72004a2b1d6af0bc52990c0f4fade3b116df7a00fe7c0e9f33efa85d6b6d009ddf5cb90f508ff3f1f208664aa33f364167bc1dc7a1faa2f7d97dedff354b26334583c7c4fefb0c83481eab9919abb461c12cc8e2acf5917e37f3551c706129392208ac691c383dc09b7e0391ab004b3e9c7f9a9467f887ad2a2cfe235b4dbfb261498c4d432fef581471d97c66e52072b52579760f0d7a69975ae72d1c2790f154368619d3cfa97353592ad33736ae6afedc29b10a741b662e9d2a9852e9ba9a8962ea24e4d4894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2c22efb7634c7ed3876e73e2f467c95430f00000000000000b25f975d6b87de5817230f07b88cb02d8dffe4adc22fe7b5ddf7476b96a059259b3dc5b32d09b3987334e440ff5db6195a2deceeb403c599e0b409887c53543c1e6a14ea14e7f2a1e51786a8d784565265aa1276a7f0b6aeec91d16ad8d21be87624541243e3c06820c8f04aa1b419f89cf16d88ee40e62768af6442febc9248c4ed283a03bd13b7cd3949891e7af471092f7a78876be3aa5f8f7b28b7a71a413af33262e52fa1c2cb879dcdb89deb9ace632c97665f7274b5e0b802cdc8332e122c5fb16baeda801a0ec90221120e8d02d04650ab55984756e477b17c417498805e4d7c9f67ea88df8b7830397b260b0672d260760200724c256dc6cad4b8ab95d8ae1ff3f727a60593c17f415c86e908f41b9ef7c45dd568d6a81e4213db8ed6702dbd706cad74c93ea129b6fe90300affda1d6a40e9c78f126bb3001ab1eafa70fe41fc573ff4da45abcc02434e25d989dbf8d4dce43dd284c3803002e5dba6fe2c4b57371624f0b12c91cada374b2b23b991c207847c5a59024f16a78dfe11dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5282936ce35e8dca65ac27ff43e803bc60b0e000000000000004e83041af643bd0435e1042a2f9b16adf61629368e7dfb4ad2ac9a1ed305e7cd43be7239c6621797c9d86cf02c281a6a4b0c39bb265afb86d2d17284544e43c985792469d87b2f0ef342b978b4406db05280902dbc6b3904d62a91e763a18cb72005c90f4279f30ab73968bc5b9b00cf69720b2ef16edb7056386adfb12b48907bd29f6a2608d0c782573733eced40d45da9d870dfa6fd8db4b470c33d8fe2e5f60069ec6f36c50f8227294e2bb6e772c433f7d2e7b4db3901257e1001ae7aa627330cb84c05598480565202ea5abdbeba25af683c9d87bce79df880d66e53460436df30ea29c4bab61d41b6f0a7e1e5639198380cd2e698d1fc8ce154b3b70f2c37473d897ba372b5913721c083a1bc9cdb719b4a4ffe6acc8ff4599fb5a0cfb452aa63889313f0452a5b27e93d68030b795c6adb58ecb38f4987fb4b1f8bf8ab74318043a440900187338770b2cdfe412f7ad40df0e8a72952c52b57538d39f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68ad7b0d2fd40a0206ad10951943c30e500d0000000000000044436f606bbc1969fd15ad7896a59f018058a1cc1aa6e9a164c764fc0150e5ca159891cbb2599dc9da82a79b2041581297456d8fe44def8286a3d524a9fb7dae5093f0399e0ff44b0b88e1e05e9d9450b2b42359b1343c8c20aef4c001d5142f3e8cf434176d46bbcbda5564bde968598b0bc560b400bf37586a6a598e747db189bc3a959c5ea38c73df3dccf9439fdfcfecf9e2f89581a085f2943bcf38ef9885679acefba0a1333eb11853eec46558c4be64d0f2ccee5c308de2ff2c9f581a1183d0d2f3d816d83369781f52787c2f23f0c8e355bdc34c2dc895baf2e515ffbe9c46ecc8945b35b680d82e80066ac69fcd3f57866436d95323afe741c147ea8be07a99ce0aae09b5c3a2e181e40b01723f61a021e9bbad122304f63b78e11a8597c731da32aa2ab2451c129402f3188c213d7c1600179f32ba4a481d1aab597460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b048999982aaba2c44480a0e528320421d6e98040c0000000000000020cdea26d81034883da5e405cada91d929ae76c74d1eac6cea79418f9ab7c43c7e82e2bd35dfde69f783c5155fc9712bf850306cbcaf6d19bcc39652606e45757a37d33275984c262bd128268fef00be89c74396e67565e5f061ea9ec295da99fefe35542d7894e5a793b4ae2b64fbf35344a046994092285c00e8f40a86e2d4f9070cdbe3de589ef30867d5c9a8d3e4bd110abe54998b836759a49d7a18ceeb87639a1ea1e422643502bb518381ff0c82a154d98bb1a2a18181756712f6556436a6b8745da241de075bf018f43c58976e4996d8c31c931f6e8a143dac35fbaa098cca0b9ac2adadbb36ca722524a091f72a2f786a67e952bff27cdc35d26c74a162faf25c82b73443d35f341595b19de142279b69b51e850ad15fbfb6b99a3231b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249714c965bc7d34961a2777f698c5dc2330b00000000000000f51ff7d70289def5a1ac78512a58f50558041ad18660fd7eda763630c319470a9d80b8bad9fef9a83a332e39682760e852434ff579d07584ad220a1e4cf65ac6a2342df99b9dbff0f1cec6b89caf6e67b6466b7d13eedb0eed129eb8ad4628aeb928d7f1d87c3dd03e3249c8639b9d4e753b6d2353a05d17013e398904dc90b5181d8c7493b5c0b7590d5229ab973a5dbc3bc7099cbbfae35d182fedc192dcd41f6d5cc768d841298c593940161f38bb471cce8f68506da2d6632035af52d0ed863513822ad0acc594378d7019c317f2fde7d57a25bfcc6081e5d9433f1e921c624ae3f15808d4a8d5e02f64c36228b567cecf3fe14008dcddaa017bd36d1b5d924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5ce7c070138971932984013040b5a05d3d0a00000000000000756e752d72fefc83afebc24860e508b2b4407fb5ea4bc01b3f88a9eb085c68ad378879816b153d1654bfd6240b079c9745935061b5b992732b33ff294d4b192d343e174165b10cc6655bd2b2df7cc0a655dbbcd4afaed3ed8ac6ce278b89ea083920cdd9553430d8a0739b3970ea2e1436d1621a0f7bc28c8bb537e6a52f633baa28da576ed1890c6a1bdca96fe0078030474a161a9550fff1edc1d0232690365c5f7ba8ac7149ad5aace7eec834191af3d44ed53c236b95fc12674812333e86f801e35cfb7feb3ec390fefff3afac596d6fe656f9436e81f77ccff01e01757b6b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0727b3939c18c941321758c620435c75c0900000000000000be21b0b95d5bf031a037704f5a76413710eff3ccc513756dfa86b1c2d424722046f4bf1405e2fe23b1d32b60c863fd5b21f86dce819ce7dc981bfae5581044f3b6a1b7c3a9e67cbb4cc2d04d1840098d7838b7316dabe1581718d01ab69385f775cf291c2ab4756ef9ee26ce66926e332935a0d47aff905add4058668e278361dd8101e6469234ec9222a0394597b8cb45405359f63200b6160a7a1dc74165654dc4ef82e8e899a923b77731fd7df21a98ecdf997a6169b55ecc8bfda3204a49e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960ddc9efd763b4dcc2443f2802ac3d986580800000000000000d642ae19a907a06fe8068000fbbcb6d5dea86c4f171f3e99ac624b7527c83097eee017b25f84c79e080e9bd21c8c6aa2831f30a0b27df18206a87042959c0b570d512df771eea158d0874a19995d88c4651909144f51a45da347d00222c6f9ecb2ea0aa2d533686609d923b004d261d25c25464bf9ab75d69ec465b40861e622bd1debd101d82a98a0e497b99c970e3167265575280eb8071f8cf59b35b93336a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2229d0a833d7504a20777319927139ef34e0700000000000000126a12fbf7cb0db3a5f60af3151f59ccecbc07e0cb60fbeef58874d46e97d6cdd48b517f69554a112ea8a6ea3fb174e5a3882e69445e74c4e84036b42564ce614e654d77b7002fd28b05052090e2ea69170dffef48d8fc0fc42f9616399a1358118feeed4f85d738c3e35f71bb866eff4d6587980404afc55910d2c64aba6893278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5e951eb704710d10029f13b6ea0d308550600000000000000a410129f5e208885916c0baf8a75eb6e37fe2cced3b18c2df34d20e3d9123998aad8a0f3cb56b18c16455214cf771bf2e8056edbe76e1bb6aa11cbac7decd718349397d71f0b8a3e97eeaeee05e2bb9774768bec0569057524618367cbb751f678d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c2c8aff41f99c355d629fdc359ab5a84a0500000000000000d1193d8abf591a9f83f728932c416ba62061078dfad31806b99c9a540f374b31a82cf43eb45e04663a72cce6870f46f7aa084966d454364ff5d923712e7045a308742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cf0342b3f1570b8363dd8c56baceb1c1b040000000000000059f536d21f555fe6190da4153434ef99255b2c408feab4b92ef400686434e178ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c01b1580293e462f19a72e4b49d81ea5710300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000c49d630b2a30742b925ce0011a715e5d1000000000000000aab5acf3c5ba4f447c02d4f5a910261f47eba82b5ccc402fecf0a4391789ec63958083ee8d384480a94df210968ef330e8329e3f44696391546fe7916cd058eafb1c3783e141de3bf9bf539977b8ac00fb903ce5b37c3cda9ba6d1bae627cc6fb46347a06912c97132ec7076d678e988f81e66affbbfdb6d542400eb1530e367c792b0757fd8c1c48fbaff822df7830270ae89cf3e6b3143d786668352269aac9b3789fc010e13e496de2c0b26e806d3c3b849726d05fd555ca424858480aaf8ac27051408bab5f7cf38f4899e0086636a2d52b60dfe8c752ef963a51945548abe41b353df6971ec2687ebcfd660f4348d64f19097f0c4b06539858411e79e40645a47f463c28ad0fade5c18dff1e92a47f1907464f5c7c9b595017b2305a4cfcdee57fed8ebae1e9c24c22b3d640884bd74962cbc656cb04d21ec85a6c6478c0f55073509c28c50d42e36a01faad27287683188c4d9ac6526502e41146e445be377ef850b02fb9ff26e29daaeb2c530c70b6a05a7a39dc03547e69e4edbc797070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07381cb926e31a76212247636552b64e620f000000000000007101d74580ade9955cc955db5f86bce0ec50c00a6107975f5e6561af29a01a63b7d8e97b886d83067d2de64d4634e716680939e8159f8989ff0da1f3f109d0134886326159b8b2aa9d0a6b40c867ae614dc5a5dfd2b9ac7b6e3e0080096e8fc69482a21f2f54c9c28b20a9e56bcd873cd1d46370164f24045ff8c1f3d64ad400b4e7c407bf4f8a2997f9fad23adedc7d90392c8e668c6cad46f6e865308a25ebcbfe53f092a6658d6215c287434eaee834e2530cad5a54bf37a8ce12753879eebfe67d4520976692101af7e887026dbeddbaef94eeeb94015f02e34e52fe59e96c4360ba7a6db4d855e442e5ee0d81a7e09687894771a4319f72cd976db3a353bf1958ed55f455346a8d1b08b5cf8db66df486debce72a27cfa9295ddb1d563687d84520ea3633df597bd938dd2a053fe7d7db879dc2d70d26ad437b799ac496810cd32f4d8b00d78077472b64acc0dd7eb87ce845e07d179613a7c66a0c6053226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19fb9575036ef7593033214a7420fb5d010e00000000000000514cdda9ffe54977c1bc5f4fa2fc258b73a933c49f1453ebb37f472eb8c1cfac5eb3f8949a20fbae16a2a4bc90e6ced4e71f3fb90e2c88868f50debe25da0d545982d3bd1edb55b24a843b1d4cce8c9cd1f831fa692a3a7bd5f8883a76f59ff7428e5a19ad035a1b084d8d1c721e2af05514b2bfdb9836847af564d41717eead01fd15aa6c0aac11a4af458ea6c41966bda9d938a35ca5c6fdeed6425812e180e06756711c326d53c0b7354bfd5eb69ff9701ea9fc0a0a9b6c6e48f35fa8bc8ddf7108d455ab0191e0ea92d06132ea5ff7961d48f3e4bd0ccce07553682bf9c936e5f37dc89087adbac0c13986e0d1577d5b195123445ea7f827b031050edbf40f4e6bab8991f4fdbd9008522e698b3c8f588fbed78ca1fcf1c40ce05324301d2ce0429990e26198ac602b20767144eebf432dad48a25fd0201e9993566ae9f7b966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dfe8b35159a5b4529bcdd8e1e5b1460530d000000000000001eb194b01f2392f9b5142f24114f454f0e363a3f6a2411e30809c4402277191e38e850cf38c8871cd0d4c306c7c8e883339e786094baef745b4cb4834f069312cda20ac4018fc96494bbc225b04df8f3419d867a8d4a57f8582020d8a01c5b6ab470adbbda5af9837d8c761204849f928394a62435bc5362a05802c455cbea1598e15b6bbd6c2ded113de25edd106f970fa7086df6bd4f221693132b035ca084b59ff1b2c1843a3c268e9c20e6c12e99fbaddb65427ade4ec154d08d2437e6f712da6f6c519f086f16b2f1558310ee1be90a6580c67cd179949d1aaa775a9c6a4b922794d4faf872924974f7faa26caa999f6cf0fc0ec5e29167ed4f12181d5871bbe442690f57190852e723d8788b6a1ae4058cd5271af3cf3f88797f2d680820b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff93e634d34e4a66046ffbf7f5880415b680c00000000000000b79527d937bc3022f871a19237e402be9f3348b63ecc4ff8b719134d9950c0d680fc8b510006321e6bfb0a7ab9877677d242aa84b6ad06831a92b095a4cb0213289d54f10a8e5004b1113fcec5858ec190fe766db5ab7b71958b9ddad5827c0a3ea125d0cacade103547ba7fdd38514c9158107e45317acf9eb6271a1f9c11a9fbb2a111737e96eb089ba49ec995164b160f43343b719a358019366ed30cfb6a7ea144c8eee2df756f686cdd728a31c598a0fb953121ce8453ccf9b984f6be84446a02a23fdcbf8b234141471e9feaed0dc9fdee8171403c1fe939bdbf0620bbbd36e764ce400789381fa03976664a577758586a679a9c606bf76f18ba475a9540ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a823ab06212e7eae759b743f1fc0a77a4c0b000000000000004fc87b273f2b415b405470390df5cf25f5a20534dcd2920f6cc62b2ceb4dd2d703b0180032042de7e3d3913157bfd7785d61e876790c2d92365b38bec0baf21fdc8b7484e07dcf7ab2d34a670f9e7565f9ea9030a19e4517ad513449d27674d7adace51c58e994958a026f02085b340f355212327817e08fa75f36cbb01bac4b42e9b26a47554c62d517899b7fdf6ae772d4094291443c99691617679f5c0b9365f8cab1dc2dfacfb6e3100d4b51d4cdb3a82ff6e8aeb5f08290ccb24235d9bea82ce8a62eb8e0f89a657b0048b4b10ba6c9ea2c453e338d1f5c8aebfd82f3f7a1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0eabf1ec0367ee226b33a76f3d12eb3b130a00000000000000d60b4ada2a5fd1b1e66c10e4314b4b259dcb725a78d5aea9f53a456859c37a91ba215abc35e19de6e4ba5d34066a65fe9db55519d3f1012f4233c955a6e04e29f7628cdb6e250f0f444b973d0c4abb0ed3ce501a83288ffc305999b49ee20c0c6236bc31749d47d95937005774de89fab9c2063cf962bf257ab580162501a5b75bb434e6222aee6eaf14788912eda8ac42249e22780611f334046c17097bdc3884ea67d320d70d8208a365f14f2f4c41691fe49b7a2368b8c0bc9c67aedb2eedceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b7a53c305d530592f308d2a5955542f1709000000000000003fa36466599f71a3325bda0db791fcbac60847e54609f63c6c7df535bb6671e56b7bed4f570c179153bf6e365fcbaff2dbbbf8a61c790614721e82475f7dd6239147279ade35a72fb71e4a984390e0af17200f0accc134e1b33a6a100c350acac86e11ed53c3b7de0e2a8826f0a569cca9106099e3710f18358e8e1c289cb79613428ce26ac20a017fe64813c7517860c8d2fa15e67a880007f2d69313c7636947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc8bc44e2a7690c93c8531216b3411610f0800000000000000bcb4255c0fca8502e3acc6d4a724886ce8228f623411941e52c47147a02f88698357d11f0b09bba43bc61621227f07244bcb382911194018a46c712d407f71bda16103410d288a0afa7b6567aac49f9f2407f4879af01ccc9062a81dd2ba560c920ea25ee973e3eaed3a7c55e4ed854d7d18a6becf42dadd21ee253ceea76dc74ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6f4852568e2a2e1144fb3432223c6b501070000000000000075c1f777b3a12c49bd636304472d2f3cdca783877fcbe2382bc56b76af0aa02f0d9ac83ac9dd3b212ea8d14c3ab8ae3911d2c18fccaf44bc0247e49c5fe801eea81baf0f4fca1ebef10e94ef23773ac4ecaecc3c10b55a12a18cc7f0950e996a1a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecd9d0ec0576670941054fbc6e48c32872060000000000000003f784ff6429ad49e737ea40c5a75fd2e2ac3e05aeb127c3b7f2469024a1635464fedb9d858182898e3c62797838a9a8cc218cfff939a30940a379e66dd8defad8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1739d51b2171be936318eebc2ec9d6dc0f0500000000000000bf14f3d9afd15f51fcf3fa70fee281d5e377c4bafca9015e26e98e3b2ed298ced093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979987ea6252d77781a266600d04bc2f1d93704000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000fa66e5328bca771dbb1bac4b20be84321000000000000000835a2395affc1bb65dc90061736013c9dde24538221b82152fef652802c59832508cccde4a105a3f598096bb0f71c7c13c03bdb352d5ff92aec92f1f0cb46ad1e9f01e8fa4886f2de944df58765ee522586493a956a71536a0fbb128f8e097259f466d59f3f7e696edd1dcde75931f92285e26c41e4c61db6a8dd3487ada1e403c404816dfb82544627fa2f9fb8a656ba75aa16909bdad966d0beb8bd5eb377c3a7e4cba15419d7543ff4f2deca387259bf712818707ce80fd6f60f891f0581bb796ed5366fb56a69d885fbef46372b433b4189ddc563986f7d1ac1769bcb15212d60d254069000b0961227a66d8591eafaf2528597e4208e74f7670ec5ead26405a51cfa955637de9244e8ad04fcd35fc7adb2b039b47a57012c94377b2cfe44127a4cd321ceee6d71a389da2ffd2278444b362363147dbf8ef1834f8461b0d189bf925338aaf706e8c876d047936f6999d4a37188a0189c708d30281eae14956d5798e27b3e0b6759bf3fb2e144225773a47c58dc9fbf8ceb936e74b8a530ced7b98da1b66d7b0c5be6c014bdefb984efd0f034aef0ee91f3fc69c4447cd396b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2fe3d27680386706e261c9a110f1f7f110f0000000000000003c7d9a6ce4621f12571e14e6e149238a570cffab4060aa01a9fd347c8048e1817055673080884310c243fe4d78723726754184f2efe053498f88fdf482bb82c9565e5b49acc634def80fd3c2dd59d3e21ca1da7d453df6807050db3de20d1a510a75ca0bea9e310521fafe32da08caa7bb0dfb165d7bfda45808e2bb41d7b455dc1c3aae6772495d0a12d87bb50b9fbec9f71ee36d071ad21c1dcc99500080c8a90a928dbe7c2a63303446c6edbd6c81f6c3387ac2096a1057059afc81fd463762bba24543139bac86e89618cbde0eb4018b36b116ab71612b4137d6bb474e31685b458bd6d5ca9a357fd21344b16e06b295aea8a10702d9b816c087cb9c96fffed0682bd64d544f81f6c08b9a66d3f439e98e9c2dfc6bf2d4b4263df5b05ffc15bf45d4daa25f236b7b1a9a47be9302e108b8d91bc938c50ca00385f475093a8bbcd251c9db970d5fd3890606a395b3ffd3763b05513499a4fad320adda36504bac276cdf6d319a9902d4d21184174e2d43d1e4f7d39592fcb84925b214c943edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528d4ef6a41b4ebb34139fb1427cd09c6200e00000000000000a5aa4fe43ee1c5f75cb2f31bd0b7c1bcff5f371684d437d6485f1cc9bdaf24a4c7a4ada1b4bfeb19791607a47f978947ef4285cfaef4982c9e4f03dd94c1dd7a5dbb0b7b32ab7e188cc10c419845a3802894cb60880c0ff5cf2c7d611736f7730d190a15188c228a4977eb7ce32627b69e3cfee3d39f1d40475cf980a0deee026cb95ded0c5855ac1edc2b8fdb3ef73d55ae7a7a07682c739e34c28a0e4f2aa9df7c54411377e88da149f4a802134b911241b1a563ca8fbf5e3029898600f1a48804b560f680805855ca1bd5ba5dd49925d98d79643ea46f885421bb773fe488d9fe586fa4966346fe4ae8c64f7b024140191a3c84e06f70eb6212b92b820914373a42ef7dc2027be7a963b05d3d345f064e4ac0b2489a1ee4eb1c5edd9d9160274c6b80d319f7f253df436b1d27859ea3263f0fd433d28aba4f359a6b66d83d66ffc253b8ff89096b1d0e593aec4271cb6ea1177f19fb2a36ea985294bbd97666262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b685b977f52f1ef2331dd9c000cd9ab53730d0000000000000041887747e2e732efd8faad2d4ca7a3d860270a09e2adf8e20dfd88aa54db8847dd1785ca8d488b91d453ba4aab6440ca8fefbd2d7be546d5763c8630f4fc0a1afc081c0ccfc54dfdbdb81ee2e70be9f2754685e7a9efad608dd70c01a0756c529deae17f891490862e224e0f3eed95b70c182deb2a6a7a4b2cbfbe88421ef9bf8b14912b295c30c9224a86aab811f95ab5654e8f8454e0a34644f9fdc3350f7f27de0a9953df9cc8a8e18613ca2e60809f54b4bb91a84063f9075cbae2c432a2b04802d06bf2800222bfe8996b8ef8fc04b351ef2a4f642e9578bb23de14ca0fcd824b97f0496a6a1a02cd9111eb6e951f27f9a66d84f16fdcd1216c56025e5170af849a1861cba87fb6c7d91f65c22ed71e18cd23f271d2e8e4257e7c37bb127b143b13b6ff993aaee89dbdb584abc2007e8e870a10de683d64f11432879a874b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999cb77552c2304ad161989ef6434ca19300c0000000000000085ad128201ca05923327157c6d51cd5aab85bfab9436d2b788840885f90c89c99819076a1d12b91d3ee59e5c3af5bde9f92e0fd2fceefba49357e0d59ab13d5d4c67087f074758fee8c3b4e7b947520aea51cba5c98ad895c8a3da66ec4e985fac5159bde1f5f3c3aa0fc7943e77852e43c300e61572ef72860ce9153f782754a7efb37d0c46e03b5d503689c004281118ffad15bb995c57fb5955d7b265d3cbaa59b3bbbbc5cded34dd7160ea421375ea10f3a744c57840005b23234eb60a0fd5377293c1cef83933f313138fe1f01e08807baa8ce64ac1f374656eb71dd07bf24dd3a912625c6cc125ced0a96f8248c90b74d8477d6b64e39893ebdf5ad17f9db489f5a0983bca0de50bd68dd6402ea56a19077ba469c0ac133918da47075890a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249db6ff76770192f1a66fae10bad9f31350b00000000000000d34047fe8019794433844ad4d0bfff76ab6e57d46bebff6eac1cd32cf007330dcdceb303d88bcbbb91b1c8290e9114ab78a0fe1d48fea787d46ec7b5eb4bf7cb78ce827782a76b763f6e6eb8f4223fadb9ed9031b93d0dbaf4fbea8de7e137775cd68203b3ca17982eb11996803a1b5c3b30c490a2e0cbf11437e6e8f8033a4934de18ab67f3c05ce7f6c30e4d8ab8496ccd166f6326f4d9cf029953a34f9cd14dcb234c0186e09f0efa60bbe3a8e04cf34c3871b5ee74b4b1db0d20fbac8dbea0199f231733068c50778f74b41fe05f72df603ceac7cac288bb14dacb423e1d3fbaa3516bb98b10b9f2c40c4fe6509b1dee5df7c3f545aeb4f4fba2b0de1f13b8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c4c3d2271b3327459312b3b1688af15550a000000000000005b2e8e8d3f1e74c15c223a06b40bd66adde6bfb73c640d88e1c257fd99676e6127b7ed55f5784c1f95a9c6be235a30bdd7a10188321f3cd1b685785a5f0376e62e7a5cb156e46f85b7d4623c2eedc7718836b0193224f13c1b4239db08bb0a9e273ed10ad7dc2c8fcdfbefcb0414672831c61b2c118279f06f79a9aef300b3b6c5ddb83b369ef15368a8009b3e8ace73e39df27c8786d620a41b7e47e60d60814562780a8a536d74a8317e16cd6e0f0e8c2f0b4eca1db21fb5ae840d7fee2112fe1220beed0017fdcf08ce68b5cbf258f6ab910e4bbd9f1f695ccde338fc67ad9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c05cb44953c0aac76ae16631670ba7264409000000000000003c1fcf365bbbaa832eeabfa128aa84f4e54edfddce9cbbadcf3a963690c0878166370f0d37723281b1fb6cde0584bb6f63815e7f2bfec53178c9232458a2b7eec58edad38eb1791f622d76c4a31b8e7e2d17e4414f4f698d7702333c8d3956a66129cebb934aac1915a083ece4010d83956475c6ab9c3bba1c2d827c47882f736f73565272e5fc2a1b6d09740a21bcc1340e5615d933c7ef5faa1aa9bc443195c65008a848e7215bb7f5a75fa72d5950a228709f71b0c163125b88e1ff6a903008c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d5ac3c7252f15b305f8782473251d6d3108000000000000004c865270f8ddc693e290db49fc7d3fcfcdce0fb9f3330f9bd1066d9a2d18bf219d4a1a4b258309816b2f70d639981a3b0ff60fbaff14d47652d9c1487c3eeff8cdedecd76518faa7b32d77183de7a76825d521365a1af008caa6aa4a37c2d80d7541c1a1992fb22d83bac207838524601725d546cf81ce82d4eb93f4b845c7fa49a556d0a14c66bff36a8d8090e73046670ceb890715c660ca5d04f8c4987120eb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2225c80110a61d1163b29776d51fb671a080700000000000000e21b8e28cc3b0545c398a0940c87394c86403b0ebb6db4b797a68d5a44639ecc4214eacd1c241463ea5ec577549c88e29536d95d2ceab10b14ee456d74166cc542161729bc2d8dca528b8b6f1be9ee4cd482cdad1613c5de4f1428e1792a9e0e3c37a8e0ddbd6ed4d55b8a44b663b26898408ac70cc9a8fdf0036c527a9df38b78644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c54db40468583b2618c621ba6b85738067060000000000000082a764d1cbd15ac6a7db668efa17c4ceb6a9813f00fc9ffa2c5577b7ba78e5a046336076437c8cc9f71fccc64dd08c0d5241b52568b6acb5254f2cc97de6c60d389a3f098a987ec2a33cae63a691010a002afcb0f5989ca70c99a32a023573fbbdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64cf449e4770c1e42671b7652433081650e050000000000000026a95937516f05a63b0be17be0ca3f4799c35b2fdab7d544bf483231608b07f275cb90e821784a0d8b1adc35d309470962071980997f497afb6761a1a755404f9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbe5d505a38e94043ad059923fd776009040000000000000073f04a5737aab81d10b276ffc2ebb75584aab26bca9d8fc8b5e8f0d9062abdf3d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c06249f66da2be0d5de3d306558b82ae69030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000008794da3e457e911d641c884b96fb5e5f1000000000000000c73beadfde9e134df4f529a8166f6be178cfa24667bb80b7f6f605a2081d411ae5de0b56af55d51dc409f68fa00e020509a2c7594835c6d176fb670ec04e4af43f48017d38905c033886079f6c4df405ef34503dce6c917cfc9b89ceb0ef2e03b853c6fd391f1902461e204f74af3ad7926cbf2c563a6c212c2a4cf59aad7066378beaadf261b306c68e599e213b0d9cad6bbb87293d8d3289acbb3fc529798defa59c9ff989cc9be0279fdd1e219a68c021b0a75d8555744bdb607c3cd024082e635f0f2f2f1ebbef2b255fbc47053fe227478538a9eb3ad05c0e073a14446b4157563beffaca3da53fa5a2cac053a3c5b698fe0805750928cb025b3da6d6c956e54eeb759b9d0fe0d8c00b028af455ee036cff4978e0bde2545c0ec49e6d3cf73f56a404c36850e654f5378dff5b73ecd1170f4485fc9713111174ea5a723518ce3f92558dfdc7bce3ed98edef44f3ba37b0e1df0e22eebd17a8f81288a0566a5f06cfc6e6690f1ebd71d3bdbcb3281f86483dc5f2cf16fa9bac6a3b811838caabc609ff8b187dbc2d83ce8304762e05c5e374e9f165f80343ed66f50c5afa894d9ef3d341d178408cae7fa70cbced0fe574b97ffbb7096a2865427067e1afeaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa219209761af4a866bf65c4f37f98f1b0a0f00000000000000a6b88da2df722f7ef80fd015987db0add06b37f927799d3e80508fc3770daaf4f7d0ea4b7fb37d7dd3404f06dc510f01da5c5e6807eae9f14b9b14ad418ca266d251f804833113f8ae27397c1f5c221eb07dba4d269a2efad670809d8643a289ebf99e79378f15c04dfcc3990aa1f93ade9a1653d5c790467db7d672a02a7adc046bbfeea8e262ac7e618a4084bd8790e5f782b85e89fee38b010c8bf1eb7118a2633f4c9e06901892a9a9e9e282e64024243bd19875b86f82c30b75f4e1853105771a4d622c5f479b3cbccc462fd65708b137f887b57ca5013015441420f9e6a4258030ee9e5628addc23f270d6cd0f1eb397261be32271793f20ab492ec9af1595bc99310cc10f8749e8d2e730a457063355593b5d66995276d167527446b7a052610966d2361c309826a80ea3672eb3dad83f775360ad8b002b4ed9e8ebe4fd7eb6ec7d49174e2ffc667c7bfc3fd528080effba8e3ebb36ea891e936dadd6baf64a9d4a79c5c383fb0dda6d0e4f2cfe94950e9d5fc0f6b0f0be01fe3a936911dd7372c8eee3078b3be50f90102a5379b0296c490380b0492af837cc7af31cfc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528fec8aa1ce696d73d134a8d5ae35f64520e00000000000000f4c9e1272e0d7ba18e7eba201475ffa420056d2441663e905a330c32728cacdc6f94293071977c379720ce972cc20d1d8612dceee69834202ce86de215a516246cfdc6d7b6605120db12abf3504c620d598ff655c97032c16713cc87956be65bdbbe5cb13ec782e755c5f252454e55b07cbe5e71c996b2331daf6b4d58614520d5501cf333b90df6daec9f773fc3d75cb00a65a775157808793ffa5f57b49ba5bfd26e4d46d82195287e40429db595baaa92af389caf143130451a8d96bf41e3dc43df77d9de3e707430d5b02cd25cf284f3df4e59a93a1ddf548c391d64da13e19d01a1a3ef6ab6b2ecfe05228499f556a43c209deb298d260bb901613172e2d06981b5f7a04bb0593bee0b425d058c8e157e66fcd1a3bfbaac19bd028b36c01df321c66c4e977b6731772b6b6be25893602e57944cc8cea189a01ea303a2723441687c8d9f20551e738d099fded7fa29e47158a859a2765b073ea537cb1172f772012d1dc5407ea49d36f9e03b4367bb7b2fa743aa60aea45c147b0a060d4be85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b685507396f6a64f34e1278ba0b92fbfc4e0d00000000000000cb4137ff8c71b271295d4a85730c44febb3ca2a72a971e05757e97567a9ddce77e16d225f4336218465d2268d1055224c537d6edb5422350e42c2a20375a2d03fdbbdd8d411b3523108544a109382547bb09d014ef373f14b1c0d03f222dd7609cb42fb8551880e92c4c1a9d0570923cc6b41587a68bc1e597d9195543b875f50f63ab36c9124e9e917825b83a6804fa38f4ae72b0bc6b382312eb8b4d60667768d712d4f7d687fe5d706a64511d419adb2f1acbd407bffc432c2aeff6b57e556162430ad15e2f41c84695d34fde4a624777e8c69185a7650774d665d3260ce1462aa40354cbe48010b67ea5987091feca072fbe186736dd2f9ae83d6f3c85957f5876374bbe82832362ed376d349f8772592e5733b9a867a01151b5ed05f36bdf03c4239beadfa85f515e0c9a1b678e7349b1cf96d8e5c36ebbad99f3df9cfa7460e9994d7526f9aa26530fea544e0ef713f2e577972e3658a6b9a238aeeceef74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999ebf477497151cd04c409df064d9b4c400c000000000000004634f5a6fda4a2d128a0efd9c9803756b6879134ec4802be1d849772e2e8168860c0133b0971644320a03641155fe15f7484296d4170b32507ac0d8ff8020c782b3aedaaa04196eae5ffd0e1938dfb42dcef99429a9c239d13eb0938e29fef2295d876657d801c3d4963e85f8f9914cae15b1f8cfdbeb2e9a8420958132e32e400848e8e115e63fbb81a467209f0bb371daca6eb4a195c512e13f821494239219dfb554a94eb3558408c4f36483fc3319926f84a16fa75a92d910bd8416ace33bef54817b3019713e12b4db45fb20c4338693362c9a66424b74ff35430c5ea002763e866fea32aa1446f6a42500128f1b6e45d6d16bf951aad90a45108d0a442cf0e1bd2b564c5b4e14f04b751b6214403631fc3316fdd2bf2bc2f5208f6f85731b1bd7b41942fdd97668d3e4bcbb5765f16ab0ec7406def7eda3aef55b03bdb64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249deb9fd6ea3b290103dcf8e694c8874330b000000000000000ad359983f1024258c0a96a820136f1008284c9a27daac27b84cb81d37f0e9048f9af8794657f835c25e8a341e498da14df23d513e319dc091ff25a8421c354de6dd6b3cfc49780d5acacffbc522eab377083bd6a21724523c76be329b4bfa44e466d29326c29c89ecc84cc17a37a1b856d3148a436a677952ae54fda7bfa6dba218dcae8ddef1fa6c7db8ac3747e048b1d100936f08734c8bc253bdb636d4f990e027f1986ed269d89d41598f818d9fff889b2e5b15af70e76f03bac63c2046645efa534c015cead3c9e19fed274952307ff09baa7f93bf45e6e5d423b5fca5ae979015e99193dc72cf85dca87e27f670ee35d8b6195ff868331da0da57aa82924bdd89f1e7af9994d4bed43f3cb5ef1f59f80523f4d2f04d6bd28964aee41e495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5cf375254d49df8870319c5854ba1094750a00000000000000de6ea03724107bf3a6c081109f8959faebf01e413530e598d6d4462ea42d120e262cfb78d4ee3bb4dbfa3d562f4914e6b427348e2531691ea58f8013b31976f603acef9a1626e26561d0c6c1df25dc8e65883ca4d4bc017f1b6e946a1a28dd3320d87e0ea65b440563b024f881c525d689a91eb9749e5dd1b89a9236cd31903cff8cfb793fb25181ddb6edea5ed59cb581a947672db4fff69d3883afa5ba43d2ae3db3ff4176793736c48a5338960a86c8fa9937e1e83caa55e134b4908f9f1919a12b1e8f3844ddb8569eb8038a0b37e10b778ceb750349f5dfddca2a91e5176b09ca101a19e50b61f8e3e94e368ae519425081c88392301a016f39d9d7a149af1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0715ae0617d5c727674e0171a5474a8170900000000000000257364fe7b64123df45dc7e3da22a1ba05d7b244893e415b6aa74d46de056bae43086b668364e447e715b75636b04147c9defb3bc5ecc4baf555bae7511928e4ed3d52961f82a0556d4245a0313c0e0031b2ae6ee2b76776ffe32fda07c9c9deaab237924849e42ba35a9efa8643a87b13d769cf156239c225cd0bc06c8876c0b27226b884c301531455f1277b56a2f7bbe387988e9fccc71e399cda0e7bcbb69f6add4d113aa07de0ba95ac4fd19cc4a8783159c99e41a163f2f3a4d41ee6f7e8ef3a0dde1412f0b76ff9897e2319ce24bf057ccd31aa60eff23813ff42e4d39f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d866bd53461d6b1725d9d5b0fa56b666a08000000000000006a517799132d8b5bef5f6e457c0db3d1798a260953e958381235dca1340ad3cc865f55a64cbe044f699381da17edd2473eaed8adad62a5309c0e7f48f577000030562b3e28b1f1c0cc08a0ac05ad463fd021902fa36e10737b30fbd4d273b588aad79c42122eebf42e8d5a3b9da986809cea6e6e29ed1c7f4ec6bfa385583d80206c1c8cea53dc0a5d58c5e6000e3092b87bb7bdf32b1f563fe086a7f81422d1a5b14e8859a77ab03843db39df2f193508b3d037400e728e80c3d776790e7a458b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222231340553d90155498f9af0cde0dd8140700000000000000c020f6d91d4c64935ba6272efc12aad60204308ad201bfd8a990e25bccc7997b7c1b0fe0db55b8da6a9115e03f46b86f8ae1ddc4fd23f9a384080a3684c7e75fc04fa7383d49daa8cb4ac09dec4e139a2e2cff5018cf7b101de277f81edccc202f0ead8cb60da6e47ac8f25857095f23ebdf6c9457af799e625968fee6d66f3f278923086f7b9e952d88c26588e9e476a1f4e160540afdb7e3a153632b331135a67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5ce14a0384652c522e3eba918656a3d16060000000000000078877eae18b9ee7f7e8203598391c229a6c2ce9f23959076fec3c1b63dc2c590f8c9a8f7f03b898cd42061b8687d3ab0f5b1db283a0432639fd504e65a9b1bf8a387f77662d5f02afd3d5bf6a383bc85cc8b58aee9f63722cf93915a269b489378d99c9ab23b9a40fe63e87364b4913a701b39caef3b3ae82e5f087994f5b1495dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c44cad15c7b59940bd2bb6037e5a788310500000000000000a5058a45aa6a40765d2d71d4a784c57edfcdaa104be774106d62d9e0f8b58524bc1b57662d4603aa4eb6bdf49ef4d7046b6ce51878d6608cc4a5cb92ca098ce008742ae4892be8039a78b6269784240e8c86801123bc5382f048e88aac04048e01b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c29a8214e72f73f507ae0c7702f7fa55c04000000000000007f6e63b8bae95124061f496609206c72cbf6615bdbf3ffa51cfaa4b24fb786b5ae46da7f39095cd39b39fa1b7f2c9d55944609c6d8cb872bb82d979936004a935e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c075904a6a637cae3963d75210c9ce44340300000000000000d0c8573553c8c2228b750a8ec98a7eb33450048fdbac11ff1bd4ee48f3bb0aed42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a6d8daf65a027496349bbf5751a729ba440200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000039a27416e943562c44279a2620bbf80d1000000000000000ced1efcd053f2e61edb2a56441b32f8cd963a8e25470b590322f7895d322b8ac57ed0f408038390267a348dbff2a03af934ec71f4247d039595e527b859a448e53936e8e511b644ac15e6d2dc09e34780d07ed779f23c7955fb60e5323e234af66a246b9d74a7dcbb7f86dc4a8552cc3e359a5e16886b0d93ef4059188bbaa1dde0f21640b7a7ebcec2cfa7db53d2990a7c5d2a48b09fbec26b4b8e5275417ad3b1516e87a4dd709d3c7e2afbb373cc955faef06f328b9ab6a8a36d381420f94a396fb79bda526a781fbb1451ca19973dd95040be76ee8cdf4e17db42b55fa307381b20c61e2474bc41549b1e14df22e5ee9b16695f740d2519f9dc12aebab6b8ed39968de1f7814c188916057f0a91b37bc3a25e7b5540d53f73f61c1c290bdb93e01a835bc4a3e3407d89292ab8823f11fe8433967115442821dca7658cfa6e8e2b56e7f1d3bc559f1c214e8727bb557b9bf38d79e740d3304d6c6f1878024513286371afc377355eeb40e89cfd169904276bf89494ab6aed648cecc1cecca23a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa29a845f5f59a3d209546e6073a78697160f0000000000000078309e8355fddd8ca778785f0c05bbbf9a30342387524387f36b8ffec45986deefc48573d8bd78f324eb5352e43a513ae824a18f34f093102f35c1eec67b6ae8f2de04cde89af8bfa34ece627805d6c5082f0f5754f8f248d975c2037c58ca18189c108a2a79c5f81fcaab84c35be5124e15a5943fb353ee4ae6b6f3ca1d2f7cc24ff416810a40d0f2da3a38d698e57709d1a0702deeb84e91329df4dc3a2a0dd6218496b55f84d34d45d969d0b723d4da596e21f89b9c1654c6900849b94bbb7e0cb5411e53364449ccf37c263a8dc31ba779b192e27a845e9350b70feeea48e3e3c81ff3003c41c4b8d7ae80129b7fd3b7fad881d0144fa9fe6bad132d961e2f6d11ec643ae25c87bd911e39fd8e475a58cc03773ca817d9054ecfd34eb016b0cbaecaf5846f6642633611af603172b8fe9cf12e1cec099c14b040fe7d01e5c75d114657a47c46df2c444ea29f7b8711eecf5be28906835bdfc548ef019d5dcf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528b3b93262e90c152c96889334fd2a8c140e00000000000000d028ddaf7da334dba53f789fa4a219fe451ae184deab67b52e990c9a8b56b635f3f1a8b94e45285d22996188612fe566ff01296e968487161eb9257e0dc0ddd28e254a9611a47e398f28a584cd72bd92fdf393ad222cda9ae52d552ac90367e61d4e8ef145deaa066a8734fd5f8fe6e5ff86e041b4b21a189fec26f89e27b1efeb1674b22d1faaa877e08aaf4296c6637ef3158e6c6018778bc303e9da537f267c41dc83cc00973536a372fff0002750172e6f618fc5196486b97649389f894394a9833cf645d7d967e4120bd0f12e99bd2c0b3127897c5fefcdda5353b25ee1b3f3a6a2fba0e6a56f033f091a1d82129e6d21f0c35dd26fd2d63296d7e590f4dfe6cabd693e3966f3a512ee4e1b73220d0f036c8dbe91b01a5214e1bac5a47abd7b647d5256118f8b4e7ef1dbc31e6aab716c67022a61c4fd46d39e5bd09408fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b680705bb30709fc604b9e6b1669e01f3500d00000000000000d5f5912107090225063f1187b612a2f4ad7c3c6aecb83c7f2e91b36b14ac68f59fcba370360a4b54c5b4b763e31bba9c576ee3bcfad0b6375697ee2d15dd4001cf6639bff7ece772793e5b2330c790df15be5416752acfbdbf7a17b6591ae5e802f7778377e25bfbb4a15a3f06d3deeacd63058788029b5c4529fd210a4e828059ee5f7ea02d6c6884d5203dffd411066625f052632995bf7696ffcd7ce8c2cc2adab90245a04f360d5151c74f7a2b8f564d2486925d0bb9dbbfa202906ff50b109b2643324777e1a2b4e1f3e97d1d9a4ef2e53bd8780dd1da6bebce4f5fe84d9cf78e783d17039befb83c53bd00936684ca74ecb9daa986fac10ed0324b71a5119b48d90b7c9e8233a9883c7d918e438274db1f9835e5585d0daa056f940bcd7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999851d211f8d5e6e4edcc04e03d607ae600c0000000000000015cce977bb64bd04438c6efccf0ddb85d32a1503cc866e14cb7fcfcc401d3b3e32f4f5749d27173640e4305ff436b0694559330dc726b1e7e17958d54d035dfb8542402afd51a027974d1d4325ef8b8fdaa78ef385a0685a4ce903bbb98be0a1e595e2aec52c2e48c9d882ec2c83e7af83e6c3bdf4d56999c7d25fe89887ae15d85c22bfcc49cf02a5cffdc580793eeac6f4e18171121baca0de6c896bb207a909bc547fae3c3e6fc3dd68847004f96622cd375fb9bc8a128c8df01ab9f226c6ef6f1ccc4a30bf39d965bbcdb33d07ef4ffc560eea5e984113175ddab485cc36ee859c8bf582944854aec03ae530e54b647c440af988f5a2590e5a47ba48e62419e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249b4e83e4991286118f9e2d35a4bdc8c390b00000000000000549522b5b6f8be720498a15fef9e8a93667d0a060d4971fe79affce6db76a9a4b1d41c2c271605e15c4b459ac8a1e28ae7939ee0ad1a770dc6174c32e54cadf137c68d2ff9f9dca88acde07d04a4492d0a147b72c4b329087d592e0c3721f4be23207d9401599db9aaacd2c20e3c75c1de43ecdf86f9964d9fa5018adbd5427a56d530d4266c84409c2c88f65d012899f3438530fd47a203f5f51ddd95bea533579ff85accc264c3591187f57ff6b2e9c5c98d82b3663c3c51129eef12d088d6eb358aec11ad4463cac6dd230c75e4ccef80dd4bde56d1feec20e89b5810ca1c669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c9af1a90b83591506135a4d359e53ba710a00000000000000cd790398c82aa63adeaee0304745f442bf6923a39802438c288fe3991ab0a83fd450a4c5e51f19ec0e2c6a2425cb198f3d68765097e495957350de7f6b06c2ab458cc96106cc4a9e90ff071b265ae82b8444fc9e0702204cf081fe90876b1a37cec8bc62704f1a9de37652b442fb3ac1ef84d493ac2aafcb3b80537795ebb7c4de6e7ce7f3c9bed1f0f9cd717f656ffbe3081993c3e498c7febcd64d327b518fe16e700aaf6477560b68691205855dd1ba1d841043fdf51a9eca9b01a180daa234a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c017999b23e5f73e436db6864d4c65a512090000000000000002707967fab4c0e365a00a3128e29a9928dcee5aad81588b1034b8ccce892e9b06bb3329a62bdfb73c358ee4185931e5904d9a88bbbcb7fccf569e37a7268c862bfc222f07616ecd44a6ab9f08cc737af2c421677d98f66b1ad36c6495561e8e20b5707f59731c9118082dbd7969ebb98035f1cd8e429083e3426ae2134bf4d85da8fe59d83a1ec12df6385fb9ca779b175a72537a86634cac4dd9db0faa77a48f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d9df4d2640caa8427e95b80507500635d0800000000000000ae4566d679e4aa03ca190c6721f3ddc22b94c06e7f074b008e522c9de207ffd399b799c047431ff0072a9adffac63ba4177b06ef7697356fd7e9295e57607bf81b5d59bed2ba597dae3134f9e120de5ef7191aba39961631756855c4124217be9aad5927579ab7091268db39fb2982f9d029d4dbfc61dd1aec1f468914dfcf8a7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec2223766ef705313814a382b7b3370d2fd300700000000000000884bf708573e91713f225dcb5bf82aad3633f0acb2c8d8bc724a4eb485265a915daf764b418e859f25131a1e93ecd3c81ca9545cf8944fc0b742ea8b4ce92bfd789b397c7b3c0723c8c7031e89cdf1d883fc2c7a897557bb65884390cd1374b9bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c536d26615d6b1352f1f71cd288552a94a060000000000000050ec72a28ff79fa9cbb70dde04c93d5d3187f31c6d0e4343ac371c4e04014328bfa8d9b14697d38e0555445b493c932c45e2971b495ead797758ea5abb17ccbc12ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9bfe1f58bdbd4a39f7afb86a83e2960b05000000000000008c612d5ebaa7b67b60532d95c6ea59c42ef37bb993ae347a01a4f621b7da09b00b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbdb58b277b58cc48546828580e1f64500400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb03100000000000000049895e22d7f047763ff7f1472137124f10000000000000006c6dfc657fc034c4925fcd1377c610933c0fcbe441b45a68509367bf29ca9bc750279d5c5c32274e1cc4ddf794b361e04a0b27878abe8fdab739f85d0e5b5c5ac7cc8c0178c57604fe87378b8a293671c63d8c2fb539de694395ab6075aebdad08031abd9daf3278cfd80abf1dbb610156f995edd5f2376a4b4cd11e50deea092c6329b1c083274e5b3fbf548f280ffc66a95d3b69935496802860ec0eadabca24380f7bf8e22c8d2dc312032832b90a86759bd69812f157dfe98a8961ad72d7dabbdc00e8a003795d7195c3193239893e55238a4b9e6a882a4fc23f27fb22d318c823dd5f7cac33594b15ca70fde8eee2a6369b2d86106721d7b2cdf24f672d83c2991fb390aa15ce74ec2800b5a5360adb83f2672d1e98233de515841b924762b9a44fe17f6f55f02c0bdea3b8a0298825dafb7e3a0c0cbd29410f0e5cd24a5ffc0d3311cc04187b41bd79395ba81153c2e1ee9560546b0b66f03d5f61a6d3896f245286f80216346a16ad161330e2682ec8f8c0eea0d9ff0577095faaeb027b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2672e4e3b723a71162f90904e468dc1110f00000000000000b83c5ff8fb3028f49a7dd34688aa537a388433c10abcee8ae87e73f79d7db3396600b85eb38f04f1b2646ae4f793bad429156763c3b3f57913d320986b94fb61cb42f94ad40d6d2e6496998a24cceed79295d0785c082656d79e7a6da38113c7956b5898c8edbcef18995b9dc84727da564320d47b83ee31fef9d8a3d472b01ca891bbe5592dde260adac63e6d61782a57525d740904781e0584f536696f3dd827c39cd70af39645109b181fd213d1785a013560b975e9a8d290778dd451f4c3e3cc257d26f21768cdc93d995bb7dabf7236e7203b652042ceb8c082d7b3e69e32b8bc3eea5ff4d761cc8f3c69e600956f9f52607972aaa202c24a115dc1cded0eb27fd3a19048f9e3b72c7b9b5236ef64e2708bcc2cb592f5f4b9272934dc11251a64f05a19d45b310a8ec35c8e2cc6e8b908b3e8f24cba3b55d59dbb1c35218d81e989d3798d87d1c75afc7dbde6121a89e62aecf7d116755438ccbf8d9b453ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528087b6235ecf8617263bd4b191e37df540e000000000000003dcd50bf6da54ef129c6578406b6543877ff968006b980d60ce3cc387ae13aff0958c01caa130d483cffdbeeb610c8355d55ea154d79d23527b36a463397b733ac7d6ccc3a15c3d151152705cfd52cdfe9a8b80ef8f394c691d8efa5d4655106721827004468504c978caef52409a27f72ff5e31c3c6defc46cc44315d7b5ad26125f1aade187e665b141568540cb78a18dcb18b54d3a3e16aa6e70d644173baef9741e0deee2cc57a2100d6d64d530447c850820d603a6b0ed7c07e5ebb4f9d8e6e26a15f98bc5e64fded4f88bce9a60e2c22cdb1ad6531df60107e8d82843999c4f05969b6d3f7e950b53eaa65d9866b5e2f5f6f59a4b7c8fe32883a1a4a17564b41a521bfd29b15e3b4fc64a9d02b79899146872b3943e2bce93dbaba681877c959128079655deff7cf180ae1f504b99b61358985e64b6e12c658654dec1a37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68936a145d5db925166cc3750b2871fd340d00000000000000f4162a4fef2754eafa6a7f51150c73beebf7bd75ac107a2ade33e12914570a5f7cfa258ec38086ef1b179414feba4a4d0d93b6c476e274f41f7bcc812419cba469da2197d15fda3ead3ecb7293ead52ae68c810d7d76e3f15e8f3b5a7535bc90f9c0893797901f895789b12516cca43b6ffd979f0a327f6219ad480134e6084a1359ed88bd46ed71e0d3b5da766d435a3de400b44dd87f97bfc65a9a50099921f8250c1d69e66e149a5589a720fdcf8adc1bec51fa7f528877243c28a21bcb60bd07826d831ea0b4dc056b74321a5505bb82094d58d52e49c5056ccbcef660324da2fb231866937187e98d4bea4acdbfaa3512864167ff8231127455bed114fa9e33cffe5033e5efdc0d9f1b8352f5eb0f531aedeac1b1170b3fd970a3c7ef42c3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899991b7d3f0982508c05c296a5378686ed730c00000000000000903479a3acc7927b5ab447e75a2ace8fa2d202c2e9795fcc03f14da8229f07e6f737812fa9a84d4409f547aad00c30db6cf6240da4d7a182198f9b7375bf65e3f16a145a22acb15dc4f7d131a39816beccdc3f201dc8b0e9d4c7eee4b99b3e028e2ab2c2b9795fb4070a0332bdd8abb47db6a6c52702f830ae39b3c15e8e2e994b9616adbd43f90731adc2e640c0a42aa7fae95915f8de2b64cafcfef0034fe5cd72e131c6a70cf8fe730aa9c8f88ca831d02c3da4ccebe6ec9fae5c48fb9d018d4f8afe2183f122787168808a18bea79264b93915f058a457a0d64e0842a1536ff9aa9d09a2ba8e60febece300d6bff4b55496b344b448e59a8268bae45f4a3d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2496f0bb005a7d09c3759e49810feedef1a0b000000000000007559f5cc70c29070eb08fa71c0db6120a038069f47a49daa7f33d4de8804f312b72112674467514e80c699478d294fa850173d1c0a1849f80aa6473a27c8d3bc71a4dbe3f232eeb1f87fde081817ecbbbec24a9142ad4f87e986a93a52647470ecf38bf84abdd8ba339d8ced61a26c56e2bacf064c2ef7329c9b69650f221bd9f2463254830c0e38042636462f6c57154fcc04fc3d63e26834025180cd4aabd2ae0730c9f395c9609c1c73c098ddd4b92b25b089995e3f8959656f9ff82c54530d4e2509352cddd6f8ace2572f5fbf579cf3224616417c751b38fafa117a08685786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c1c953e5ce3756204a2b5965ca165022e0a0000000000000004600d22956a7566870d61d64c2f8403ddc884f9c371aa9df50151724f1cce665836a19d6494d61551b442be948c7d5d32c78c911c88a139f91db062cc5528220485434231ecadefa2200a7ceac80ac1130158dbc93b6fa46642d00ad50fca303f15efe246ae675cfc9ecd3762b556fca7d7f5d5af208b45218b94289f4b64eb41cf8265bc7c32b92bb71b585ce8be6e538efde06c1ac3f8cde3881d4510880401c919531dc451cf8b8511623de9b26b0e3119a47f5bbfa6dfb2cdaa7cfe82a76be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0731bd62f0c8d073f89c2934654ed6808090000000000000047d099335962f170a64111785048a816b5d19f952d604cecbdf1a384a50f305723a65970625ed685084caec67fce906558cba671dd3b69e439b6af792bc4a815b52f29284d3db7bb4bcebaf969aa9257552952ada4bb4733b1f535c3506bf9b1a5cab870178ec21b0510622e759fbee16cb3e67c276114708dbc559c9561610d0b383ae99046d2e647e8afa77ba59142d6f2b464a0cdd4b0c33f62bcab57b937611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d1ce5b955d5da7127dca2511c5bb2a62708000000000000002fc4a33b5fcafaf5a0bc47a3e95442bda24f90e190778b07e6ce05c80f43e3812bbf33f1cc30bdc85028bc448d775143c2c179c88c21e679ea48ae9af914a4ad0f90c733a66b31937e4d2bf0b232ce76f5c4d177266fb2c16269b8a3856a954d3194b9399026400cb6a0bea8ffa3539b39218de9d262b26673fd461db907479411f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22210ed4d1915e0326028520e00483dc1370700000000000000648e52eb33c005f35e56cbc9a35f40a067634a73977b02e86dc12bf035ce67d5560cd4f17da2a834229cbe454029b22b4cfe75b6b5ed0905287fc65183a2432d21b43b5374693d91a8dcb1b2f1f2bf51861bf0e4ff3034139d621f6bf609a41ea022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c57928de46a961c014d3def95149f02708060000000000000015f73f310b4c8f3010063f981dd88775147a33780b3ecb681b470c620a3b833bbd8335a75adc92a49aa09647f3fc6c98c668779b33cbc1784782920c7896af85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c5d3d5a230c40580affdb81462a48b2310500000000000000dd5e05576993dc35cea729c751f978d7f32a87dc12a51f3ebed7d6bab91d755913d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c7480a0502c190327a16b67329226541f0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000d183191a5500295da4c7fc4441d1e24210000000000000005d8fb0f21f9153974a862b6515eb5e500353f76d02b8de7f9eff7549bfcf9cdf423677bec8bcd71fa96bd81400ab7e7e3b64a8e39c43df4eba380d4f9f2731454a1b25e41879fba646c10bbbe3ff23892de93fe30a173b05c09eeb9bcabc3d2f9a7a5d8123e4f6082eed7dd04f36c7469bf2d38e2adfd74be6387ebee6be4dc3af3cbe9d85d3d793ba018629433a58aa62e40fb383b76229f39eacaf2809042289ce3ad36a36b29e843b57246f343afe66ad0df69789a43e2a4d6d822690e3ba193ded4a8167f47dd2893d8976b177293775cd1b7a5151870c7967411ed96d2b16a84ec9f0fd3e18db755075a289fd4318838eb9c7288a6ad9330e98dfd2556abd4d2db6e303091ac6c0506ae1758eb29c57a466f9308efff36e38e7082ab9a68e1e6fe2db1bb003857a8adde6843143b0c579d417395c720433fe3b22f1b66e06c34a9025b30664724b992e66d49aa3d9ad30d7269e73daf54abe725d6737b3407e23f89bfc38c502019b8c2287c18df6c0fd930e07e04f0ddfb1cb5715a9b523a9c593ce6499dbeb9d41bd21f0b32f9d4c3407b40fb888c63014c90b824d28c4981cd8eb0df620b9827fec63041d5c7577acdd5c50d7072d87aaffdd1174b247a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa24cf6b25e0a3507209d1711301d63d95f0f00000000000000b4eb424cd4c9b9676fc00fd936a4712d50097c69eb361e1b2dfdc647c561e3cd964af1a0bdf7421eff8118ad0a54c346e30edc477ae5545549c5b4983501ab7e2bdfa798b52b6b23e0d4399ab94e22690ebd924c2daefce35517e312c42eabcd4a171ad90121722c7d2d0b712d2e0bb89d9a17dc31615040fa478ae0ac220ff80b24417673346c2377edec3f51eedbb41a918a219f54e446dcb8d0f6acbc0096884c37652ddbcd704244956699edaff8d33ebb829394d447c001ca79fbb9e3b233a4cebcb94316490561c125cbdca1d7518b24b67743433672cfccf4d3ef632019286f147aea98bfb318c690f6dec8f70d9504e427611602f7b2e40eddead47e128aecbe2796d1311b0ac68c9dd20e1b1fcb6ddd0e5310f0839ed256463a271328ccac9590bfbc5b890778dc547c16133a29e19dc52d9092cbc8ea6e4a31773b86fc6bab113fda68c1f91f916c648d15c5818a6c577936f934b06ea4da5ca3e4cf4166ad345b5c5b60da767ffcfe85e9f099019d6530e757d0d8ad5d643b10bd701d4bbda9e92fbcc225e782cb49e1d2ddc701e0fc63c155e33b75ad742c4c73ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee52801c54775a2936732435a6529b2426e460e00000000000000643108bbf6f7bcf184e38832c8c986cab7b7891a70d9961fbf6d43b6a77632d5e2cb8ac3deb717f56e3cc8efc9f18f83f8848f976122583cb887bce33b57d9eedb6092aae160908da3ef58ada2bdaeb3cc76b310a8d0d4f2853df4e6275ace88c700bd63d6f203a808e4922cd8ac405b238bb623c030adca074cf25534e85971db121b25555aa02a3ae0010f5c90b7a3053ade3ee60438524fbfa0941e9d961f3f1eecab47b0c93e726da4e93cf4c004db97ff0ca722bf8879a0ce110d9f389b305c55e1db267d0a37da6490ef2155a27a13d6257fbf65efd9710320e3dd480034602ea157ef344bb3d1272e68846c130965ea04405d24b3ba7c193f3b46d1fe602f97af386a193454adf8474fc98e8515e7b765ca73b3205180a27a86df8c18fae4b1adfb8da750f1620e3ed9db0b7995f95afb2d72a898d0530b4fd47add81fd147988228217280e38fd92e3926f08ffeb8cd270897461736cf79ab91453c0eced93026b4b51200148f7a7c0bf66f01c91fd688faacffc8cc90291594bf26138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b688da12c74635b0073e52cb7186f84bf610d0000000000000012990e281092694df620c0bae44da8a506987b644b0a286b9cc6f45166b1f5d1698d0ea9e7b6087df3aa3cfa3f4d81631e0228f13b1d11347affbce2084850f296adc051858cbd5d9d4387e34a174ae24a08daee83585a84e7f75851e995770a63abf1cd4de34782c157f323fe5b7b09e09509d0efc0c1def0a5b3041db2bc95604fc35d0e300fa49dac5db992fdde510c57c290431faaee7c4a3f7dfcf5823c1916c981e1cfe268aba96e25b264d857ca53f6711999e23052c299608ce126d33191fb49314de3af07c458afd885d401d29269c4152efbfe128966d8262dc1a2f765df559f47545017339c4d3568ed068778de3539a26a7c4774d3a01df97dcc3fcaa92ffc598ae2dfa2894eae9533e0f29f3dd79365246f9c81d0710016a38e7ece2ad3db0edefa8269b1fb952c909cd1542ac4ef0e0219a6a90d8104231f5caf4bdbb94358d1f9a7fec7afe59401e6bdaab4673cc1555886ccc76fa2c271652d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999c0bcc14459cacb26edd6581863ce60770c00000000000000018c42e207b26ff428256dd2e203285edeeec7d6067e415ddf9f2aabbe49a74bc72ce4c9fdceb56ee8cf1f1e2d4c558bdd42bf172c6c13d112ce297e0a4440f749e067dc0d93c4134dc86d5bc7bca4d50d8c7c238512923157b995c8ecc11ff6f69ee3123ba69713f90f3f020968d0989f135f5cfcd41993620900e6bf62588fef6b20d8fab1be8722dda5d6299492d736aca19c127e829c85a38208c04a210fddc07a2ac8874eb61036daadb8e6f4264f94cb65a291d8adf9f3e1e7fc4a273e47b211a2bd49c3c3bfcfe4f9e9907b00df3396106cbf2bd98f09036bc07b4568bbdfc9a689119fa8914425f71a0a0bcb7a999c622f2a182590260e231a636be919e4f57ba203406a54e8e6ce9a4cf16e3e30492e785015fe28cd2d9475c4ccd8a99739b070d7bb1ff05bc06d1199abd1c3c5fd535d3301c7185d946949e030c3441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2491376001831ca120ba3f6ee5bbdcde11e0b00000000000000e1d5523c5d8e0f225c82c54f7e2f9e5113325d789360ddba2d0a7a4fa896574efbf7551673553d5d98c93cc23266ff0dfa68bbcc88f153129cfa519995f9d9c6b83978f29d8d3d0237fde11ada7d805b5710fdb9768d3d9e8c3283d0ee5a7e44228587bbbc44571ee1aa5d8d58d82bf9947e9a747ee119dd3927739b64f1e934681eb0cdeb699f275e36b8bccb756e740eecdcb33bfecc683f55ec1e9e58cf01de29e67f458fcaed85a8a5dc22db1651c6aa674bf3b5a2e1cc1176b17b810a00e9ac071318e227900cf805716f3d20bdc331827de7f1325cfbe267ac53e45baf669d8a3e2c5a0990fcd64229ea303e9aed2fc58621f67013659a6d07dc120d00cc8be0579898c9b6c5e01e88c661ce9d87d2b3f228f5cafdcdadf9cbbfaf0f58a9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5ceaea5a1bcd7bb2239bd53f2d589e9d650a00000000000000853f5c289fe1ff1d31e68e5d589ba0f70e7484ed2cfc9864ee69bf407ea6b967be3df595d8b1023b2e807622ba3102c49f447bcb3efd5eb603b0f509f7ba2c248f415a3827dde80d79d546613173a1e595b7304f6bcda0e838a2671d1bd6fd1537bdbd79138751d1537ab9fe1b66beec09bbc236420009e71f561308ed2423cfe21a0580b4a52829a7e72f0ecb5fa1e34479fca346cd1e437ce86faf5418f8083fddd4fd09e6db195402de2223c446342c43a9d6973d6412074a54a30ea0463634a766d167b432676ec6d6b4b7cda5d933b6a744e4d7085cc4a9a2290308f0af8e9038a876d2c9c07ea65e28c8a704016107ad58b06e97ad7a569da867a041546aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c031fa776131833424a8c19b77ebd7482309000000000000009ec215bbc5d73727e1d9c83c3438e0f7b7541e9a06898705e5a89f9c37b067de7455194e2b479297f0f53425a4f366afea7ebc35ff8a325994fbd734beb6ae1b73707165f6aa2067e08a73fe8f4663e0e841d89d6c2c5d67ff16820d4ab2bfcfa54dba1f53d4cb4fbac3f5590f0eb4ec71b3e31a8bdcfae499256f254999476b5b70970ab498aaa26d428e4ea378a4637b59a691670d6a927e25e075c9b839648f401ff6471498d07494610b4edc3a6ad0fe731b532219d93ea5e228f66fc276fcc3bf62b109179b024ead3b5b8ea5ff9e5a88e959dc32edeb6efd53e5239376cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d917d461b5040f30aba02e4735296c92e08000000000000006615a2da69f6efb06e97cc3791988ab45c374cb26cc39bf4127c0cfc914a9cf6b428d0a0e3e72e94905a52206c3f77f090c653ce97014082464478afb1edc0f551c6318e9e4ab79cf239e2e2d23417eb401a7ebd0bb4d0b3598707e0ab60cd7009a75ac1a1e0d1750748c35e9cf6bf871f39e1c27c3b1354e0043b3a904fe26c7841a5ce2b3576f8e366e0c9e28b9d795ddc1496c429cc644b6bfb557c38c6bfa8578caacf16bb4984b4c49a13d9ee0a92b88b8520376d665a37277a6da8ee67492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222434264195dc7906ce9fbde534dbf6f3b07000000000000006414b4fc28e4eb060d26074dc8c82310c10be01dbb45dd527aed04a239f321f24049628860741ed0476e33994184f90c8aa8424efe8ef2770ac53a1af578808d24c6576c5b83434dff6e5b0cedebeb7a31adf7914897eefb20f1db0637ef8677bb5018d984c6775cbd246d1a93ec81dd1be0f653b7aa59bbedc64f1d5dcbf9391d211467855d5842984dbee2813e2e7566af48d573353df3a61880d7533e0503ab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c580c20a250083225c5c09875df91e17660600000000000000d5c44033dd8e5201af7853242ad0b4f75b28862177723b2629f29efe6e0b5c511e8502a711d73886229d9a1d429e3a63fc42042e83047715414ec4bbdcad441312ae3377116977894e6a70810c6a42ab238dc44a7a56e49411159424b1ab1890bae6dcf7d5cd7c5a74ab6fcebea9a006c992caedcb99aaa0a3b1aa492c13828f7a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c30d5f438aa047d0e7d69c2313f54de6505000000000000004241c932cb93cb8df1d4040fa3c8eff32558667ee796cc27b07ff84d139765b30b77a6881bd828429fe13330689c8c8c28d54fca933b2b9525ff912d369c6f28b0ee35c71104ccf1f17d1b3eb8d10e8a3dd03d6f33d00d01e724146cb9cb8bef89a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c8c55991f881eee15cbc3bd6c57a71d210400000000000000c4b1871091d6336718cb9c0c16c9fbfeb5cb8d5a6bfb20ef02ba788359a18b0548d737511e37c4bd52aad60a4fdff4bf1b3f6bea6766407dbe548a132c5d7d1782bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c013200107f3881446ae8902529c49c46b0300000000000000dbdc18a11c739e4f5ef9f9da7a2cac2fd48fa8ee44c61399539a66b5e99b721d88342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a62b5b9c3a55713c157d7f7c7702ca161b0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000005783f11eeed8682873ebd81b0cc266511000000000000000be6cfd422bc804762ad05f138558951e9386ebce1829bf12e407498f485f59c02be7fea152f3ecc1b2b6d78f02d05978329486a5ef166211293d2784ffe67b406259b929b7d71c54b78eb81bf363f4a4469de70c3ec19dee9577d833e4a1413c9bb554e2f26f75c67a997f824c4c7c2e24d2cd45818c190133ad4628f244997bd587220f07a9b883a769dcf70d89555ec0f7bb3ba19150efbb9a15dd9c9e5bff999a38dbeb77f046c6e363000996669f0d799a4451826e2c007bcd0be4246099d2cf0ac6fff9646dc931ca770c5056b50424cd96df60dad6ecb24e2d6753cd33e4a47a3e59865402fe4602b87b9379b609a4b2a3b5aad2368f7cf625f6affab3caf767d4237ff4fa7d5e3bbb1d48d03078001f0885e9904f97ec2bd012af68e3bfc9a98eb1e6d183aed7d2a6fc81e192e0fda33cd9d79d7cab7f8568a2127635b7201d70aac9fb232c6849b68bd135cdaeb300ae338a95e54375f3868b3cef05c45e889afbda80143004dbefb30c64d4c201d78eb2a3eac8bd5c5895f0d667154caaa1725c2b28af78c137be0e9a0afc350ca7b8a779f12f8910d876be87bb3293c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa21160031d5413d963e2e002030aeadf650f0000000000000019cbcb978d331d917601cb3128bd52d3edc093933145fafa2d9913e75fbdf2db79f004bb7f25b3f8b8ad7ecf6d009c8ccb333beda0e136f92fb49804c92e6f9050c0df3e7bacdbfc4e4c6f9200fb92765b69b9b42e10318e8df2fc5038eda16d9fa43233f3e73fb7beddba52bb8520285922e87daab37ce06609ecfc9dd88be496d78a223fdfdb26ed9fc1f403a44e2547e98ce68569370cc0239caaf8c9cf51be3b475d0bc695246c079f0e2ccb369833b4c074097e382b6e728d14404592b25808ff9600ed5bbefc186fdd0c89272da7efd88da7c7d3635f48dc9c7046803919df36f3258c918423e1bba9cf8c6160b4c2e5280f49b4b4c38a87598f358b1f43e42e9df54ae99f3fe4a0ca95a5c2414c1a32517f0d40961155b34ee0284e80d99f014e747f9e19cae7ee5004abb04ccd951b9942d8f3fb3f9c023fd427ae903ed82f0899a918e8db0973927fe1f21ed7d45205170439e7b09e9b16421ea4549f4024399df51a7e0f89d82f16168bea6a9452f2709aa10dfdc7c1f7d7b25d7ff5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee5283167963cca1e5e269268d40d47f86c3b0e00000000000000f0e94721c39beab4d4010db4d12eb1f3bd81f1d724d7afe4a3e097c417b1fdf9b911c337b3e9cd09c724ef6cdefd3e0aa5a8f159ebf3743df632d7b07b4538c1eb76bade8b1de1ecece781ed88532df41700dd43a3e32553606c362827b64a714a48a85ccd59036a45ef913ff4c24c73b53ad8fe22e9609c4297e79b517a084507766595058d51bc0aed7e3e88a48319f518d34288718b216f535744c65f99eac64a8064da2a13cbbbbb6c2f2fcce09be7024cb6643b1f36cc13bd31f86a80f80ad1723332c59721ce0d89841981c4fe4276170bc0780ad7ff0b26a5836ede0813d33730f23ddc16c44e2d9104fb5ca60d5ced838f8a1e582f2b151c8027d41c5318c683398b24d74f3b48b26b40c9431a1c84b2f52b4120d5753af08099bfa82b9813d45e6c5ca29a8a87706cc0a7b5ef1913eafc6af7965f22ccea182289289a8560ea451136fc78728d0ad9ebb8b4a5d8e52e15bef92e7b2025dd359fca009d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b680329dd4b06012764ad70f7647d026f300d00000000000000d4a9651bf9a6f4da636800297a685c49d30d7f2977a6b144b47ec7d5a01651fb14b966ac110b899cf4cf470db2641246c71931f23564fc2f98acb43f9fe6d9dcc986594b4f66162670dec20c5a859100959054e5b4cea842f53b7e5160c1204bc35fe5afa3f574c987efa1abf84ab2cfd068f4b883d5eed3086a9808cd34498e14b2b587895ff4ad1010b31d69f0775be7d67bb83f59888df0ce2bf4a2f317c67e5c4966b750e94dac288e238a0d74cd3722785b1d8b41c0184fa78305e45a5cf4e8880bd0c4710bc8b1223914a6c98532a1ef42ba0089cffdca745334c5c68ca279cdbf6c2c5cc2d8295e87724d0ad5e3e46ac1e5e607db04df7b976adb7425c6454c04b9863aea065c0189bc623e9d1ab4ddc3db3aa66e328741cc4a8044be3d31a73455b418d3d6a228677de0a613bb89049237d9848a200cfefd3a25c689aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899990c0d4566fd932162745a8e2e78a7c3040c00000000000000701d1c5e683737f7a35ea8d6064d2259ee93c6d3a4e6e2c6874a88d21a575ed78d885de172bd15838496604f881f931c80f1601d7073eff73c590cd9a14c8bedfaa5abd8d93b0b15da841fd250546f2c033360df794202ecf945a2133dd6c9dd114a91ca91bac4c5630d94a1b1c7e43bfabc0136460d8e1bf455dfa7d30a9bcbf7beddfc91b24b73e7af295e9d9c957e19c0cc11646d86aae8c034b62290b6bd25a74b4fa7bbb2e1ef9df933c39ab784b90cb315b0a8d0c258caf74a842e0532d718e4f768670824e193cc9b1544100427803730e64bbee68b6321872eb6e6d4c41b658e902b1cacb79a09d388742751e5d711527ae70ca00d13ee05b61610a118a819a65c58d9e7043029265afc3a287dd06c8fe8bd81adef3e70e7cb586153e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2499a15bc4aa112171c812c7b34cd2f6a3e0b000000000000003141e197a63da9974f145b852d0605cb907d8d1b0dfc3cae9e168a4ee3d4197afb538bd98c0be5717773a6516f7d9c0b3350317e0c369318832b95b57f02e4926f4f763db3b08890fc0a3e78bd70d0f572304af4a50055a73396153efa9ece34bf0c5ca205f3a2d907a64164255506b3fbb7d5839e311353b6793e9dbc3863c7de4e8fcf221e133d6671015d3edc8198fcda952cb0fe6c272365f5e0c512179e1368028f802b68f72a47d0d67e2c0fbf2b441416e669b022cd605e90075f6542b6157c4fa3531906ce912349774ba5a28c1960e5f40fcd1b17cb0add5736aef89ab79296edeb4eecf0c60814535034dd6ba04370cebf46ff6e6c1f217bd5c05b34ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c36bf0e69b6b7356892c3d12293004f240a000000000000001d3a2baa220db9e7aa9bc9059cd595b3b08cfdb53e8395097f5a4a02a6b759b9de2e86f4d48a9a95f48676d1b9614404e4920fac0ae9fd873044503cc26072c084f84e0a598915ecf4fe9aa31510aa20b674b2730b2666119daa8db672eb5ae2bf2164585db667790f41b50bdb5fa4e98c7cf06b77dc987c3d5adc24e2ceef1b2ffcc9a758fd41a780b3b788952325821e03c6563a80cece779516a7755c9b49a7f74293ce8676693852bbf277c861210f45fdfc10112e564050577d0c0719e493fbc34630fab5c4974f4f53aab4555a4c294226a478a30b1ea24041fd98855471d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0a4468e683178bc2befa1bd003b542c4c0900000000000000e49cdbb37e0f150a7ad8adcac35db973438eb293069eb6b121b2618539fcdaf205da06db844585b9b19a253d4bac893466d520b340f308b5f82f55e5dffc362c84126cb986e2fbc49a3beaea80520bb2a73537b76b0370219ea975aad391c71acb551f8f17d750546100a0fa1d6da2856490ec41a6ec639523ab66ca817550750fa87593e420283b2caabf0b923a094c76001843da8222c4641d65f5043c89d99e88deb91cec91634c8b9bd3f849748d1206fb26236372f0fa8a875ed1598b5fbeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960dc72feb6bc19b5651b6cccb3931d88a6b0800000000000000eb3b147c520c8ca845d49f15a868477340cd944e21892e38903257ab6e4d1a79c7d70df3604ff6d888cef22cb2e42e30fd836e161e3afe4ed12ee9fa5d6fcd791bb5d5e00d42af12453c47a087101cfcefc5413d41fef33820227cb5830fb6ebc392e98d2871c185a15912efe429a8e7c79c9c3f39a60efd0bf80f664c876b0e44136c99e40d465ac6d9743be45340fb6a72a160c08b7d99b4f891c2508f33f4aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222e3820f4b6bd3083230e958581b84866c07000000000000005ad439e0c516fa1230f5ce1e9ea90f616d3f06a19c4c9d765fc5aac1bad22656e12ea28d7584e968ec8a7c5403a834f6a76f312f5bb497a960f8d29e62a288c7e489c9487b65eb48a63701746e7e8e0051e6833a6f9e1ae3d64c5e3b66f935c2178b716b475224de26378f3d8f9bdbacc1bdd2528b0d698d4c4937ac65cb1070e55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f163c167e9e9de21689520030251d20b06000000000000009668579e90a0b740b03575edc134adc7be179bae60466b4f7e6984f19c5faf3b89bb7c6d0d7167da232529e7d3f8c227edbfc1fca527a6fce8534779d6c73e40993bea149deacc1aad7aedd7c3a8e80d1e2b34719719d050e299959fb199b125a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c8906a06e75759b548aa28d63db889b5405000000000000008a0555213dd1bdc78005642e4dabc3341047dba12f2b94b92d380365ba3cb74049fcdf2bab0b84a9cfc06ebcb509b9d2460178ca0c047aae5b67c0ed8f312dd1475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c4b0b3a6b0de2a31494c7f26b6ccd2a08040000000000000042459d70012aba158fb15c1bb9a2b5a7632a83e8c2f87a77bb362f0bf401c602519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0f7ae190c5928fb07dd62a52156419b320300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb031000000000000000d2e01f33dcff5b555f34811c9da8bb04100000000000000089006496f52f05470063dcc734b1e2f027bd726d3ac860aaa7079209f48bafe92cdd334cad6469d8cb0b22f2d6e537247040a8380babe85a0a5878fd02148398be486a7e2c22e6cbd6da5ee171fbc6cc44cea26be9b9d557dfee22c588682a41da0468f76f09425889312718f19258bc083c19e7ba4a2889ebaf203029f94481087a03860fd7efae1d4e89d537d374cbdc35c3e081ab366068fd0c52adff2043f3a1875a5270ba7c1a17e1458033635fb1ce862dc3dee2abb43f210cb0a77b16411fc9e34fa951a32b3621df0e5b95b15c7628926061e0e34023207bf5f01df2667877284fe1b1f602a9577dc0da751f384d2faab06f05d1958429ed496b3f2a3b51b36837679f0dcefda38f211adaeb94157fbf976cfb7b6e0766a4668a31ef4fceddf6889e7ebe15474801d0cc9ffd4383efcb503dbd7904efb15d57a75c2568a1e164a8ca644adc63ffc5e94a101d823b1750b831fe2735076a1797d3796451a5f49dbc08382d1fd3d66b60ddaed6e5d771e01b90cef520b2b393fed00337b23776ccb3f48a478f483a73a8501fcafcbccbdaabe97cd6bd4307750958cc1855e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07d21ab82a9dcacf263a81e00aa477ce650f00000000000000d6302d5ff45c08d10ac7c8e42ceb2b84a4a0ce8f8b80be8e09bd12e61bfed87fe1cf208c588edc2da82d3544f94fef7e877dfa980e3b60f4db74fc635913f0258170f3e8157d86051c45dd4182c4217fc9da044555a397650c3460343df2951e129291c00056efa6579096fb7708de3642dd72817b69cd99140438add9cfc2865a0d50c6e5c7fd0feeadafc15da20485aff8455c61d13ff8fc18aaa639127b82d93c56281b4c8e70a417313a675f7b567fd2843d017e35cc712782bffc2ae2f50f2f912ff903b538af9077721e97137ce27047d9357b22492584354a0e5741fd86b025fc92358625d5f5ef328271782d2dd0beb9115f87d869523e35bbf5254b08bc18c01e7780f4ac57cf07969eb5fd6dd92d1a81a6d257edb22bc98581a0366302a022e2fc100028ba0e3cbfca9750d13c7035b21b07f098b201d7884988c374aeea7d408d9c241a9cdf95c7ccddc130e492d32572afa0b620638fcd4a58dea3640e84c9db19c8b60bc0de71da734cbdef37fdeed3728ca24ce4b88679dc01a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a193befb40063af345c368cba09fd1ab8720e00000000000000fb03c0b25008acab6e9ef32f6d790013d41191d8b5308f32a3e436eacb1b277f8c89aa10bdeeff8b2ec9a991862db0a63f2d4a5ddf13950e7e31efa224259e77c12c5db0872e637d2528c53add03bf74391c42846133ceaacb0bd5d45a820fbde9a5168bcefaf9ae9a7090717f778a6c21e9bfb3ca714bbc69cfd971ca9f137f3408de9573957596054eb7de692e3ffd76c290eb2f45c3290df59c3f3199002f960e0b93b884398720667d323a53be73d6783434206726eed65494eb62ca207770e3063566d6e14ef5217bc62b971f95019fead788065c0ab1c44a21038076ebcb99aa77ac6d56546c7bbeadc9ec0d0abe102852876b5cb6c51275e1348e2d1e6357b1e7abbd91f4dcc45dcadcf98db48bdca786cc776b479fe5ce8f5689f99e63c8b9248e4910bea9ae5829b89902c3e6973569f62199ad34b3a915c49440a4afb2ea92c72ccfdb5c48e5acbcf0d602d2c582e77c3869c7115a5746deac0641fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d41793b1dc258d40fd6ed03413dda0b290d00000000000000e317d0a7ec490858d722e0ca963405a3e96fff71a0a6288e3bc3e5f7f490caf7986a1dfd9898fa9a8531767e3f3daeb959ab5f4f7cc7960cc6a264b02b369a015986b8303deb2025bc9352e54c544debb55f44fe1e8d0bf3d4873df83f60d25c9a5b8287ba2e3d0d876023175c00e413aff599294accb9889adce3f235acceb34e6acc1dc5118af9eec32f6fe885699bdd6a48fb572b3f7e2a7b5e4b4c9b67b5c47f30d5eaabb5d654fd1e18158f11fc7d74ad4567f6451303e884663bad9a47cf3c0edfcfee7a83cf18fcc7ea526b3c09d95cac5d1b54107d05d5d3987cccf0c4cc59265ce8d8f1d6c9c8c90a843d196e0261719560ad3b77c662715f1a5a827fa3a71216f7ee96268cca7be9453b81b653ef4dfbe6c9da39062fa6f7160497df61d710a81b83d9da9f30a51d45f6202d8ffb0f7c644c8e44d39d13b7b9f80f1732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff96ab081030f70c004c061113e4ffc9d610c00000000000000cfe74dd158b43da2b446f759dc3eab631a44ab31e573a7d8d6d58eb34229c8e1f3f3fa8913be1f7dd9b00618ddbaf04d04a9c41eaac52c66da37ae57a0e8e895489fe36ccd66957260cd83e6e0c90e698a8e1c2a15ebee126cb70e793a4971384faad1f4c992cb7e749b281fbc16189e91f16a23900b878622bfcc8c70bffa9f495a7a004615d9935b836e9c64c4d2b6be6a3ce6639215e14d40d0bb44d0b0c9d74aac1c1e391e38244f173ce87e05ebec6beed592b99d26d857a31b99a77951b23748d809a03aae138876395475dbb0ba4b4ff419d3870b149db82f884195f781c711c50beef8d40c77eb094efdf0b86bdec86e864e5e5edc3095c99e8a1f9d6b262ecb30d3ce33fbb50e19613a2ec0a455417789a1e6b873f40c81df1a34d93894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a88e8bf239f0c5b84ff8fd090e2bdba26c0b00000000000000da47916cae9bc3ad4c225bf3b594bfde072bcafc4e659a76451e7c5705aad24829dea3721e22557a7e7d2a2c10af18db1f7030ad0708d68686e79ac31a78768e6e3d5edb7d76cc5aa86008a80aab69e7e286a3f14f991535ffebcfaa7c8588219336aa5f8ee11f8e80435f4a6722d11112a87129f84ddb42af222130bfcd518881ba245cb212ab6d33bc0d3316d71fb6ce57155fe03f265d1288dcf93062610a170f713907281657ec3c72d0a893e5c5b827dc87b4739181b9f2bcd673bdf9d46a52740c18b24d57cd8fd2e292a4503a2356e42acff3d2f9aadcb61e5a49d30c925cb0598b6ed4ef5e9a09224fc28a5b2305c212493ea13b1bdb385bf54da1768ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e73d543573951375845e7753ee9bd2d460a000000000000000cc90b6b41ac5c21b5277d51bd7611c2a1edea61afa41a4e85df7d3cb41bc7809839a52a21e3603831560ca7ddf8534d08f749b217f0144124ad0889eeeb8302a9aca1090a1c3e0d7884a461d59231349b449c39db2517baacb80345a230a02072750395f186f14e191c77569bcf51fcd5f4e8a8e818750c33473633eecba4ef73a613db889211228cd8bdd5850ca67b6e0f87738d2f8fcde377da3488297fe10c9237f2d531026487f607d9b64adda82ed02a142d9d5f3880ec02d6b0852773f53a7125261db5af67b420aa658d9474b8263e258dbf05ee06db517df23b6ce27a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b81653851c7254450a01d5e26e9e07447090000000000000078c68b24e84fddf809f2012de0596384282d0738431b47bbeebc222a23391bf594baf93e9b3c78029cef17a848761ff371f5b6d2754c3cbed6d084a6a9de5b53f294943977af305ab276e14f1f06077ea7bac385ff6386e26b9e8ac2dce6481ab8c8a209d09e66e7a51fc4a7d9d9e79a83e5683cf86072d4de6f266816eb17412a5cd496f82b76d8fd68e8b4a97ff15dea38a0a65cbb798f6ac1046a3706a6653fa11287555514c70406983e8c7725739867eb190422f0e97f9729eedd936fa19368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc7d59bb0bcd63dd564da47139ee118b180800000000000000a54ca855f0e1401b7ff93b57f44d1f55c2b6010e7ffeb862865fc6b23cf794607381d3c56b2b0763eb2ad095daa0ab053039d545249d81ea9bed6632f90347d70451f7d7d65acd1fcc4ff279925e84b7ac9d8bd0f09722f1ab14cd9a03f569628e4f23f73f914f7a705def374459630e324610f734d74cee35df692a08201c3e7ec2fcf4e75cc32504f818f8172177811e06e3750818d558064e3a85d66c1702d3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a61376b91314156d596468853000a6e8230700000000000000c13dcfffdd095f4cc65ce4b8d5e6334ae77f88262b15c0eab93b84696c516c7e5084681af252b9b572d57fa7583b0d7f6d9c45cc2e0a20e5c78af7431d10c8a4095dcc1f0c8bb7c195d511914a6355a924982f8ecafe790fe37f7375e53320cc301180d1da54a5a34c7dc676ba76bcc49caf1ff199f757479295469f679d0b3901d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec575c575018bc9417210b6e0c357ce4020600000000000000c3262a821adba058f9db9e2d2a717e12dbd7f1ca19e3b5f2c1d0f5b768c471555df6a2a512dd077da94d3bdcf5dc094a54dfdd95a59b6db20c34f372c44733aac5ef6f1ec439597bbee71617b5c8d437a4a46431953db1cb5577f6ee2a81109f0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1735a31844061cf73ec4e53b60d6c0435e05000000000000007ae789f17d146a2cde1a33fedab9f35645a14116819e56c95254db49e445b31760fce869f9424129bc7e55be036abce5cc1d861e4be1757d2439d40da535c55e096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af77ef4af7601c0856584d29be3c683804000000000000008c444a32ed9c158a022f0bc7c710d2f406d64b7cabba038351de04316dc8f46dddef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e290499534fe1fd639dfd6af20d05c3c0f0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000064bf0c067f77375349b9d80a1206ea6f1000000000000000dd76bb286e6eb872992fb43ad3756f47317913f673bdc48bec0712d66042d0dd95ad6013d1fe3e89b3d9c9efde0e258acd4a6a81a2f580b8b5ee14e43f30eca0a3139eb682d3beadd3ccaa37b82aa6676364cba9d5fc5f2ea5ef70a60b9ce9ff6537ca14b75afa433e731593ab3fb3cdb425b6ff3e87b0309a60d87f51161d90c5a9bbbe92486d346eb8daa4a1f32ea84fe7c8f37d3301597d69ef172b4941eba898608ee361bf0b05acd838976ef2f4dcf106a08eb4e27e0fb6605806c6208068a4199091119c0bc7a9779c129c8f036de2e7053aa066b85a7410f5c7180a75e193bde6584c700a2e735f907d949b611898ac994123155415cda78bf867f76b479a90a0405d26ee2dddf11947824523d6df76c758147c7a98b20fc0646f7c6ffc2f353c4861a0d0c7e056c830a3e0a3725657fe3a867978778c134e69b0aeb3a682b23af185bb269b1ab767bab56ceb4e94e38dafd7531f82f2e8eeb9fbc49ee377ef850b02fb9ff26e29daaeb2c530c70b6a05a7a39dc03547e69e4edbc797070e1cb406c3e999b01884c73d59f05a112896c25e1cfe2cfc293c83502159e555e5c5b251080203b46049038e97a1ac846f6730c38516ef1d2708d2f54e2f866e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0724d56459637c2328111b3e5daafa461b0f00000000000000ff28255a9092ab53f7a6d6ee62a9d1e8a71388a2e9bf380de4d1691298ef05062fd0e7d069bcb6e5b3391469f3c060dc0125ac6d5206d6ed8f581f390941ff003ddb16cd20326011f18172fd956654cc67d1ca3f9358038864821b71be1baa4318e803be16f87fdcdd8a64e68654807a70189a4c191ec30a17aa8af51b93ffa5558dfa4a9fc7327e9794284fd8b97176b854440569ab6b9b484f6ddfd26e3abcda771408626ade4926e8b0ad7c450eb4f5c400a11aac2bc25e31187b3be08b9219882edb6a47ead6b780acac117a0f3551b7cfa99b75513dc69c8e9b188f6ac94fefe93edf94cd09ae30d93b0721571a7b1bcabcfd74f94e5d34b6a82e4ee2bda9d15866d78e2e0f464755fd729735f4600fb993826fc782534a23da5d51852b6f2cf895f673232ccf48c06d1e2fbe07e3018feb5343b88a6cb60f35d0e28dcb810cd32f4d8b00d78077472b64acc0dd7eb87ce845e07d179613a7c66a0c6053226651c05fa9811faeb558cc2c3859700da1e4711824c327189d4a7f910eaa49a79acbf3b2742e43c763943b4e3805423229dee20d1a92c2f025d28052086500fe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a195b633323ddfdaa087589bb2e1875f66c0e0000000000000064df849a0baf74440425ef59aca2ba913ae1891ff7f98f7c54640e4fad90c785de44f2db72421135a1f1fc27bcf1c90b2b8ba3686d9e1147b2b8838f3f8fe74d3d6538a524d79bcd3783144cfabd8016809718c28758c361545218b9157e454d1a8cba1b7964424dc5bfc03d65d2b809048d866e6a23cc1bcc8029d539ded783ce8824cb27fc88ddad259900121f0e61bd6967b4ffe6be4b5bc75fab13219122c3d0efbf9bace850d726ef11c194dab3737460c17e9277256c625040abb07d169b3a67aec01f57dd4265cbc31842a805e55fe2961317afff1d440f1f2e47379fdeb5c011e417a812caa0289d06e53395f3c0226f252ae65fe4ef33d7e5df7ae29d768e5f7fda31810bc3d649862fc683b90b0da9a6a340f6b74da281c5161cef2ce0429990e26198ac602b20767144eebf432dad48a25fd0201e9993566ae9f7b966f0c7cadeba4edb233070e72c7959307ca4aa3ef1985bd31f2c133940afa5fc94563b607afe4831f9ddfee2031b9062d11ffef7f401ca0868ba4fcd6bd0e0fdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817dcfaa390a68f1e76db05da760bbfed4460d00000000000000261721d980cbded0a1828961780d9b1d0dd60d5adfb4e4627cdbc56ef864523d99c1812c4c5e69faf992cb4218420808b86bea86dcee8150e076817ad971151a1ec02978c804cbfaddbf30c68a64e403109f2a532168898b9df8fb1dd8323d04bf3046296fc6f7a2e30e22cbe6141ee8680995520746f40c178f540ef99d2b59088b1d6550245055fa100744023efb3f57cffef862626aeb4a033a681f8623191d5950a0075b068217a7a2457dc276a0899cf3a8531ad57cd1e375fa3284d75af8d0dfbf38c94eebffaec9bdfd5ef50586a4590697ab288635cafebacb210fd812a701c52819472f9de30cad6fcdafe41f21da33a466119f10b2006f0d83d14671bbe442690f57190852e723d8788b6a1ae4058cd5271af3cf3f88797f2d680820b02425e04e8eb2eaf473e1122c1fa2cc7fe068b1b42a59a630236bb6ee31c21732f4e549ca3a373f03d63983b789acc274db867ece8ba2a744b878405c9ac26b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9d6c56f360a86e5290db5400c6d11fa230c000000000000001c13f18cf4d5fa7e87f10df0509e833fcbd4f7ab58b5a854dfaebd98f9f65e2763bfbdd8ae39506fe22dc8175fc1d157603778398e1b1df8555cd49400dc84bb0b0a683b78a3ac02e8f0f3b5e2a8fa3818391cf46d78948b009c27e9eda5586483e6f472c180431d63712eaa9ed561de7835e1333455e06bf0377e49d3a02badc014179eca2ca09ea22c704131838bb15b08f5dc70d362e582a60ee0e6ef142ff699b91f649b5b955fb0c5e378dc4a9ca509886e32e83b2d52f0433a6e5244df8c8235751686003467420a716962e30b9872e0610909b99f1aefb2b16a8be68abd36e764ce400789381fa03976664a577758586a679a9c606bf76f18ba475a9540ea9c5c62ccfae6f36842ae23e9fc624af2c061eac454599812ade36e7abd873894a223d4055afc1110bca6613024292dbcff1386d8731b5347f75afe87e786c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8ce06175e582479506742d41d3d0b19500b00000000000000766564912bd79ad420fad25191549b096c251401a17c83a76cd1ddf8dbc03d4086c178e894c08125a334b48106160fee0753e8b54da100b45626e45bbf89812975b82fca6ed85c87315d07529f4c66f250974fa6989f8ea185939c217ab92f456033e864a117ed79f14d5a900234b94753b2e9981f0a02a571aa8ace462bb711c950c00df0cf3c0eb02239ed0796f51abc1bae20ba4754078bd823a840ca731556fc7429a11960ad93b499b8065bdb43c321b92ef2a83faf1db30a656c73eee3a82ce8a62eb8e0f89a657b0048b4b10ba6c9ea2c453e338d1f5c8aebfd82f3f7a1ef10fa3559507dab1cd025e65bc705f97af3db36c45430ef2e7490022f24458ace33f83386b121368242f8e4a529d05c88ac55bdaf1f565599cda1c1d6df7198101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ebc7f451b8d34be64617602079c2c38340a000000000000006898fb537b1243913724e8d5cd4f51141344e48626f7b13de256a3aba7042bd964b576f322cb46a8c69b0476d32d8f75e1e7923170aeb837eae7155b1e3420a30d26a1c62c59a068663c08daef873266ced3632062544efb596ff5d784e8efd3d0829802cb269a92577dcdf0709734804590ca1b2c3cd92d2851aa4133f990a5586d9ae96d1ff6a916aedb1173e48ca68a625e7cffda26da074f32f984458bac84ea67d320d70d8208a365f14f2f4c41691fe49b7a2368b8c0bc9c67aedb2eedceae7f9ba111f66255dd90eaf1e34813be4e7060561d1b32b31277d0ec620ea57a14045c85d0cf44dfda9607f4e1803605eb7d7a5152c515bf0b752f61e78cc134411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3badecde28f67e2a58a454b03832478a380900000000000000e14e890cd7026504db4aba68eb4899df0a5190d93aeb545c818049704c7d7b0a38e065d4c782056d9cb5e0a402f20e96d878dcbe8bcf22b1fe24fccb6e976f3f98a2d96f872adfe8b82a8b319f0ad277d3a787e72776098b8158c34b504204ba3202a94c82c93e68c4292871a593546a47f3ec4979a1f0b7f47b96927190f74f13428ce26ac20a017fe64813c7517860c8d2fa15e67a880007f2d69313c7636947cb68d01af4c5c22636406c68e778bb4462dd551fe2edb1f16ff53463c1c9599368cee8f589a1091bfa7967dd361b1cfe8f2043d700c80b71a9d61ce73fd0290f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bca7f8f66bc27cf213d2b9aa103c61271d08000000000000007db20c156a4956fc2134c97c59f8e9dd71df0a4129a59e61e4cad393cc377e27e6b52f96fe6cafd475c143c94e8c4c98fad78fe4fcc15104c617126845ac8ee2ba8a5aff392cebc7a5a3906e4b581953062670323c9b31986954237acd6fc60a920ea25ee973e3eaed3a7c55e4ed854d7d18a6becf42dadd21ee253ceea76dc74ba14aa72637fe64342725d804c8ebe06ac9700541e70a72d2166f17d50bff9fd3deea6bd72b0b28c55798f4d2d81df43c56326eaaf61ec70ddca78df9a61ca83b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6ca11415e7609950313ab9400ebc00e670700000000000000848f8d3d6bb37437527cb96bc70b0ad0f829162f1e93ffba73bb2e4b85dca35a59ddccb4c518b9a269b01c9fb9da5a2db328341f0697f69276e4ffdef47dc899a81baf0f4fca1ebef10e94ef23773ac4ecaecc3c10b55a12a18cc7f0950e996a1a7ce38166c14a5becf470d61e52a06c0e23fa1c5b077e01e91e3a494d8c1cd601d5ffb61adbd61330c2543f0612779dfce5b42833bb605314cbe49252ce998e2245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ecbd338c6cfc20b20ccaa00c74f4a0cc2006000000000000007793f5ea5eade3775ba914e266397695483684e493ecf0cfafc782560f46a41064fedb9d858182898e3c62797838a9a8cc218cfff939a30940a379e66dd8defad8461717197b80f0022299113b245930822e6e0d86e3e18a56a19dbd5e57a19b0388f4d700a769a5f0640d21e39eaeaed60414fb9b6ec26d329f1d85a630f2e48657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1737a7a1040b25ae12f80f7a0035f2bb390500000000000000bf14f3d9afd15f51fcf3fa70fee281d5e377c4bafca9015e26e98e3b2ed298ced093b68d9ac9d53717ad0909a4e084d8ccaa48b79315725898f1457da2e85504096ba7b3def5d9c40bc70b3f73554df48f0cfbea5cd259f9af01895a1ada7e11c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979987ea6252d77781a266600d04bc2f1d93704000000000000008e1fc66088aa48ad153bccf84731d909f1ac65acea32c1cc4387e75aadc8b30addef65cd11d6db00e3d7aa3777d7c60d7758079ab33cc58c93df36f40d1e567fb9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e279b148435bf84501d2dfba4cbc506f6b0300000000000000ec911d8f92c0aa71082446cf76055c24a50860e587059af8e0fbf73598e4f82af8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f85040d73b402cdd3e96d3f22b7191f5540200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000ac38795f385eef0236f6953845b6bc501000000000000000cdda96c5ed97c16c5dd9d0b6f32b3f22db30d4bc5a94df117d27076e4b91629deaa4086013ce7fed71c2b1f1857ae929827fbeb53ed29d674b8b9f5b9450ad66af796c7f2144c95e6f1a558d0f935ca3644d4a6217e2ea75216cce7457d67cdb847fe81f47044d193d89ea70f52f620e2341b82bbdd81c434fe51c27c20de0a1cb927818ab7c76585ea2b309b89ed27f13875511159a57e3a01d607c5e1731a945f5bf25058f8cb53fdf7136f3aae765c704ef615f0fe6cfeea4163d757da2d8d4a05fd8183fe1b2103938b5e340571e000b295ff1fea1da5180ef80fd0b429cf4e34a8472a926faff5829a332537db8b4b8b463a50923bd5cd6f8b6f2436e8c53db19cd1043f79820d6b88fbf2a9d038d79075cc5ac4a1ad34ca9e51a5eba0294a003c754a0434245582f7538dfe9120dc7662c21969b52ad0cbc3e8a5796911106489923d24a1096b33655a3126c0fef15eec5c95e20065da4689d4f1ec6cd4f277224f00188eaa5a34ff0b3762422bf7d1adad3acb1ceefc9d4822e7f0d1accb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc0707706d40fafef70202c3595f5f5f5d1d0f000000000000007a928120af33771172fe1aa985487d913585035b2244352f926163eeeac7ebd42bf7ba1208d50d2972ae90d866729d0990e3a3c8cb56237014b66491ef6fea423351f26a5457424c093a2d9636bb8c5950fe4ea873527fd7cb76413d3a4ee2ec1afc0bd88efb1c0d5ef1170b3427acf45d0ee94dc0eb588b4bc35e883fcb479f0aa8503136bfaa6254d1137cf879b9159afe770aa3dd2a992287ca52c7494ed06c213c53897dca07c8014ca2826ceb205e7c03bd2613dc4a525e2bc6642654548751fd1a92d3d39656dee1e7329cc96ec90434c1e105b0aa6afbc119569c7be0feabf5b87733c6638ae95e9c48057660a6ac5f16dbc4ca5caf8dba12d1224002425398297a9dfc663ddc1710b50acdc4e2413ef5cec9f79259ee77828d89670833d01e56206ef7e3cfc3f7d93cf4e6aa15a07731457ca74726fa98d05b4205813090f7d6dde7e20d9178caf380830edc05c82975a11407ffe93437d493ec3cd80db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19c67b6e1b1fd94a6820501f0a32cb73650e0000000000000094dc934e1abbc33d8d293ea057841ccfb726cc5ef0e003e2796863bc3c831a6e14085c8aacbd3b3b148be5b5c89cbd13e608d35024f944429f0b4c4d85ee908edf3fcc8cb809333e0d9e895cf13fc8a2e18fe9848b7787a99c6ebb667ee9453defe7d574171eb1bbe7f2a55fd537af67f64a379b21189905c10191a6e5bfa0299b1e339e35e172c6170e0bb9ae78ab06f4c43cf0550a370b270df45126cb111e4487a20781123926cb8fb930ea5fa8f31022a169beee46e81ceb17df063e40d47e267666a13a3053af49a3290e88ddae2886ba1e7af683f67dffbc0aa637b61a5ff30c5c79120b5d4d465c7410b8467a780aab8f8b57c22c513a664338176b89f45cfa4ac60130eb8f4d1a614df8affc1654596b5c82feff90b5cd8a1b0dd5319819f11f750a8ec49687f94091e0dc65cdffe1d681159dd86070a9f34a28f40524b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d18ba54584ffcb52a46fc606c4f7f89680d0000000000000091c5ef6d38f7118e135d77eb579a9ceb280485392bc73ea99a38f08bbdfd6314035bb7b26663780d2a92d0e18696e5e9916d093404b817a540b9e8f69a1bb5903979e2593506748e38cfe39e2e2ef853251c098f5ad5dc91b705c6fc94565ead2ee1a86eceff7407f2daa67d6a162e9c6cab2a9e08607ff1af4ddfc7cbc985274823458eaa6855cf17d5f0baba77aaa53c7e6abb0c1d962c374f0ee0640c87e12d25a53e8ca8ca20f71a03130fb8985dddd2bf8b4bfd345fd496a18838baec61f2c201318959211ca7c6c031408ca7cd482b93246515ac85af38697e7392b51f7ebd8dacd4708648e58722f26ca276cba22ee144ff77109ab623239206a470024ab1ee989dbfdbbfe182732bf5f472904436314e7b435996eee6539cc0430707ffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff928f67b24bccf6d736a5a2737f4c14e6a0c00000000000000d758a35c569bb0e9891c098ffa0d15bc2712fa49df0f7058c0cfd87f80c2de12d9d8ba5ecef1679f5b25918b3f6f63c0a5c0b523ecc535520a12b2588a0ed13e909fd9f7c3293dc5aeda635216b1b3aed229d920e250d2e483de45aa8de8649c41c04faa67d1bb4ebae8736381003125ff2bf08583df1da44d1278696a78ad2ea092e50d0eb2cef4ca8b916d5584506e15374a81afc6603fd38a7bdc3601e8167be90ffd8c56cadedb0d7539511ec559f339f00c46931e11ae13ab6b495c64ce4a77a632842aded13145af67ea1b7d776ebba6221317b76aab27f18a7f95041ba32ae6ad5adf236ec0ab1736a1582b2fce0fdbda646343b22a7b08bcd7aae21438a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8dd826730dbfef51d7190432186c035180b000000000000008d2fca0d91972ca8af935a3977bd38bb94b907e42e782194a18b6e85c603d09c40e1b597274db0eb66c6b2093e391c8bb46d297370774eabae782f93ea6016db4c5bbdf6b623bead62743bc6e694a4aaad0a94b3c7d7682457e4618ccca8bd8082e10525c0558effc6b174e107ddd35b26ab561bc937f155227f9aa911be6527f49a6ebb743a4873baccd63d3b9eeda2092d46ae430f3284a0a04d33f485b068259e23bfad8e178fea6961706ea86f1a4bc6ad1e6f41738ca8daccf98001885e219f4fc54828d3400469a8d46c8b1d7428c11aa3f23853d69897c00e1ee3400ff01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e8ae6393759835e44d8366d48fce27b380a00000000000000215a83268516da9652a8bf902e4c5fe121342f3b30ce1cd2b3b8538fa46d9f79c6697c329d1b6ecef0c2e6ab30ab542405216d213a6f22a276b0be5f382a849cef09394530fd37257343fb15b9b347dbd90edb4b5f5683ff43dcc8a6e970ee70e80ac6e401f7d288c50b89a7caecee1156780582c131b284be655c949c2ecec46fed5182f5c2b15abef207c4eed6cdef96b0538927e3039cd0cde581c0ac2148644e5a579c9a1da55e1e0b9a63636675a78aeb15230397d83ab854c78254250c1d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bd73e24612498c618e4228a04f3d13f1309000000000000001b96653b960b05c573668888236176cdd7de3b487df7ac69742865b471338efece189ec5718faaec91cd1a82e6ad42cc1b65cd76e6e89c3cd15f5caf462d34fe7329845fe8db78ec2533baaf97436f8c143750ac93af11a4182a91f29d6376f68a41db2282c9bcd4f7529677f41193abbadaa3834d7dc8bb153046b9defe12a3468e97549d9ed3c1a5cbfa0487abc73f69458a14b693a7c1a8d5a46e651358e7388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcc055561e4538c61d135c66177c4d62550800000000000000a26062c045a728f4b0f74285cb652e7f16aea1983f02b0592179f77a1bd9a397a7d7485bfce0aae513986c1ee762f2e94979702c0f9f4d10763f488084e940d145bd65f5a3372383112388108a63cc9cd05b333db94ea64c2a0778ab036800971efaa822ba0dd32820ebafd0b74be9367b63e04a1c9a8838cf707c5453c25995c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6927c0a047858ba5d5657d576cf5f5a320700000000000000262ea4bf2bdb8e38b3128f735ca6c41023198bea0ca3abf505542f31262d1b838169ccd4a3fc76d438db04c446c822cdd479585b4d7a151965533b4d00d235f6ebb571532d30f2b323c96adb7b71cac56edbc8895af1a50dc285df5306b3c3ab9e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1eceec2e761a9c96038c4b0ed2205ea001006000000000000009466afe97eb3b4b2aa1135f793c0290aed0d189ed9ae8f32f586680e893301b77109561fda231ab5896a4b509c7b49303b0e796ff21bae5b99fb6ec7d00bd8c9492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172fc9420957e5041ae46ec2311ce4155305000000000000004f1f1b2fd8af737ce82071be8f42b079686c51788bf719db79f3ffdc08848eb1d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998703fe75862403e0f62e29e1239c5067604000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000c87b26491926a8269038ad37947b15451000000000000000031b6b82e920d0178e64a2a14b3b794f0f1932b657f073447aed305a22d952cdc9537e1bc820440e61d54507aa19a1f80ac487065f95bdc413baa02a3a65051611eabbb83e1ef76bba49d80c2a18ddcd75bbd62e0b3a532787fac69bf01a37bbd52da6c6e4330befb3cf8931f4d696333fc4f5c1cbc40451aa024393a81deb954a40ceb92ed5ee0cc3cd1ce46e4ba98cdbbed7909861c71642f52fa64453e03d54542c873e1afc65ed0a9ce993b39fb7c7f92a261370722155aa0a9378e4b61f5104a94382e7d7443ddc4ebfa7bab281a31d2c72f3158a8b83bc3ea0f9f00516ef6c0af130bc39d608ae7cad73cd6d57409063bb63d6b99844c9d7af26266f59fdb89ae4ccee3f3f625ce4b7016ac2a4ed910d91cdc3c87750523401d50d120445a11a2387e6a0250e63cc60355fadd2332770319e78d670287bacb86c188fda5ffc0d3311cc04187b41bd79395ba81153c2e1ee9560546b0b66f03d5f61a6d3896f245286f80216346a16ad161330e2682ec8f8c0eea0d9ff0577095faaeb027b94dfc12dc9f1a2c3d18da53ade2485468365c602c40f76b10e1a02350c04e06b5f2a71b83cd350648c395505607a34d44229965e19ce24d7ee3ef82f100c89eaf672e9a4f4308c24fc164ded9750300e697350cc14ced0ecdca9a8cfea838e5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa2e431d041f07a26041f1f016c4e7dc9770f00000000000000c735f11ca3611da074e5d48578955aeae0eacd72bf3cb40d0640a3d71fa6817c9493040750c2a28b29b52cb13a28420262e608d7e397241720e0768a08c3a6e73ec77b6dd7386d47ecade0c25ae9ca468a05c60d3363140ce7f81b75f29f1c11caca5908d7f9379912dfeda870961a16c6880c612b456bd0e30ab3bc05c99335a10bc8958b475d81d751db0ea404ba0b3b207bca83628df914d75de1c1d75d1f884c13048bbfe83df87ec5b719617ad23d6472adc7f5aa2a7d0da8dc32b8b1e4be5334b977948d9d841200d4f30548b8e781883769966f572592b2377f113f98d6e083e8da6e9559a14619e9b3a6bd33066b4329fa8cd311298fc4c158a0d4e6ccd44fdd8e15cb5d3eaf6f0e52c0e6ba74e9c6cf6fcd791dd922299642895185251a64f05a19d45b310a8ec35c8e2cc6e8b908b3e8f24cba3b55d59dbb1c35218d81e989d3798d87d1c75afc7dbde6121a89e62aecf7d116755438ccbf8d9b453ab5a1973a55c8db7763b733c2d1ce8c42e7f9d357989fda8c3b79800014b2803edcba95c89e0cae1e5bac30547738cec41d183600311841ebad25acf86b6e22fc1862e6101828c7f0801b7869de2b71a79c331de626ddcfd6133e5bfc58400a0489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528df260d1bc76e4b0cd86598704a7bbc430e00000000000000b21bfbdfa854f611495b85fe45d64f2e2f3e65b62c849b22250bcff64d1930b74c46de9bcefbbe52f14821046b0bcb55ea4d0dfa066bc476d2604f2331139087f2df8da6c81814f673765416a35858faa03a2d6f9bb5c95010a73cb4d667e5576d544662b3adf32290c7cef448026bf0247707f9a7a9cb88a6c5512f7f19855140ef276ebe1ece3f79d8b2769b749f12a9555b36859fe4b5bb9e9fbdb5eb5a926eebf92c565602f976a3ea67a62795894389c7304326f558001ee34248235595e31f97ec9729635d46f46b133fca19b30a538f48b348d0554f896196fe06b71db9d7a1c1ff0f1687b82e076056410281d7b2bb66e2e7b754d5cff6a63a689baa564b41a521bfd29b15e3b4fc64a9d02b79899146872b3943e2bce93dbaba681877c959128079655deff7cf180ae1f504b99b61358985e64b6e12c658654dec1a37efe4c5c7ad89b60ed900e5a851690be9a8c9f5918bdf041760152974502d6866262922fd0e5d8ff84c368fb7b4f2601de628426387f7761cf7fec27a4d010ee85d077b402408af2bc827d6c6c82e789c5b8c43cdd6b54c1de525da12847f654ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b689b693c5fe1947404b8693c30a697ce190d000000000000008fcf3c533fd980f61d757d23ad3c7b2ebff21f92094c35c1360c0d5f3c420ef8bad2806454d40b303fd502e698fc8a49850c8d6f9275ae826137eb1b316731fb1896365fa319b4d43a10eb7228db4d80a1d2cc986b06b24fe7a6261ab93ea9f0402c54210d86d64c250b0193aa5063b43fe5b15a8ee8e43c2c68cd68c04afe34eb94d22955a8fe7efe5c21553b1e135e85e94866bdcea6e929a9d184980f16d77c5abbfedc0e4355b99a1ff02e461a3dac5c108e30505b27622229526ff478ab27e5029e66d29b829224602b46496b370832f516062c72f0869609e0ae32667c4da2fb231866937187e98d4bea4acdbfaa3512864167ff8231127455bed114fa9e33cffe5033e5efdc0d9f1b8352f5eb0f531aedeac1b1170b3fd970a3c7ef42c3274baf6b6299e30f5385d2de6c4b2faa9ce4a3fa1d931921129a466d6a0b214b9bd1d8df0a13aefaf582bad935b14a59c6284b57bd146ec0d0ae9a176912c3f74d9057d6f5f74d8b114dfee94e0ea975769864772f0e47d5048a1dae6a9c0d60550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b04899998a24bb4562a29b546c5c107787e23d390c00000000000000ac4f648be5a4cc55ce8158d88f8370b0c8f5585c3d35c95165ab43673afb8f542e73570437c6c452d21178b04f1a423482ea3b55a94abec2a4a8a6345c6208edcdbf89a7ce24aa5501529983f8db1e458528fc4bdfbfc6e0bb420da2cc9e642233719b7b3a7c3f0cb892ee5b5b2930bc7b4b4f98ee43ac84ecc29a020bece40573e41fbd6c3f37cf0502e18bd819cd8f3e5038a68df2d7bdf3499649cc8d94d4100217fde70c68ec0926f13879fe3529f3d13a8eca8d1c32d56e778821c2c6318d4f8afe2183f122787168808a18bea79264b93915f058a457a0d64e0842a1536ff9aa9d09a2ba8e60febece300d6bff4b55496b344b448e59a8268bae45f4a3d5f977eeda1f04cdb3b052fb1d44496328a3bb6ca2b4a35d68e63526e6dba01990a3f1a157c2f29861e120cca3587a8dee0895aba9e6ffa872ef937525dfeb5d64f1c1d1078ac1ce37d489e00da5cb24aeef31f1b91625c38a8afa0807fb1f9bae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d249ae3d8c0dcc075b1ec2beca082b4cfc330b000000000000007c12e886672992553642c6574af7c6861027631e9d1056fc7b9fe557f2cc2187cfce22c3024a098fa34323144f623b1d4e6b74da76ac7a1ea02006873d84a65fef4cb1f00ad2e27abe5037dd9831b61e3fffa8700d57654c534d833c319a2c23520e9052d471072ca180b2e1b6f7f8d0af96db9a03afbe59d0e8cde8071e4b6fc09cc52068afbb66190947a01b522e2f4fc4d3f7a59060da1dbfc3e88390bd86ae0730c9f395c9609c1c73c098ddd4b92b25b089995e3f8959656f9ff82c54530d4e2509352cddd6f8ace2572f5fbf579cf3224616417c751b38fafa117a08685786cc8b96b7ff972f7c35971391a082ef9f931b82e5b6174cc5b9278a6eaf0eb8fbbbb0beaafda62ed53d452eb1af81b84b837d48e52af8a6928f18d5870b12495a42b81949cf820947beb44af09810ab8842651bbf5618361f5e94752bb6451ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5c4780250e8fe9f56ee40d9d5edf6493520a00000000000000dd6e49cf72df0f9f5c484849081ef0a2837c6ab122dc1809c25cff472094d02c8e76945a717039b3c8a83a153b1167719f9de34e3c23ba7120400d0a24c6b9b802ed18f455ed7562a69cd15c103f47057cf927ca63c5e355d0c1cca4195b3dea38cdb66be00fc77b3e73f7fbfd61afc871b11a0c9132a66db00c62ded05beab941cf8265bc7c32b92bb71b585ce8be6e538efde06c1ac3f8cde3881d4510880401c919531dc451cf8b8511623de9b26b0e3119a47f5bbfa6dfb2cdaa7cfe82a76be6a5a9e534d15eb64a4a9d792b8b58235918d4159985d74c9faf0e023189bc9d092c64645a43f9c75eed907316ffe1e8e098d3bde96c33f2c44c9ff09de84eaf1255f001b3b5ff34d13de21d8b7f8fd0c45b1f9bc7f80dc98abdf43de288eacf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c02431e126a7734052880405083467211d090000000000000075cac92ec3127ae8c00f86d60b15f02cd17ad44a88106e1268cbdfef40a08cb478ae6269d24af281f5da4dbdcc9623168d8da5cf70818881b7163c1ba0a2c245a5a6bd1b94add269d13da09d6bdede4d6af35b70a16aa2ccf2e03af564f43841a5cab870178ec21b0510622e759fbee16cb3e67c276114708dbc559c9561610d0b383ae99046d2e647e8afa77ba59142d6f2b464a0cdd4b0c33f62bcab57b937611ec1fd1279adf26bd66af89179e1cf69dd3f9ecc3f732e76374efa43c8b96408c21a83e72e02de54d4977e050134bbb65620ee30e5853e0ac5420751d559829f362cfee6dede93d5ff30a6cbaf878b0e6844ed9dc195743e49de503cd831669bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960d8eaadc3c8df25e183e873d4e90b94d320800000000000000715e4a1672e4247f9d612d2775251d27213e2514a5f1486d0b6ca53eb2731adc9af0c453e54dd5da9def3fb061a81018d6f37711aebf32d99feb55b0951a40ec0f90c733a66b31937e4d2bf0b232ce76f5c4d177266fb2c16269b8a3856a954d3194b9399026400cb6a0bea8ffa3539b39218de9d262b26673fd461db907479411f4508c608bd09adc45fe96c371d6bd502d157bf62f302278af31e9fa9b483eeb92c2edff2677123c076aa71828f9aa28e0f08b6fb078a192991aecc60aff2f8b5529aa37754c396e10f7bd307ae5df6be2938db15c187cecabc0455a318f80dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec22295ed103a48aa4f21ff27e858dfbd141d0700000000000000db48999ef4653080321661b0abc9c1616db9dec86c4023dc6819fcd2e4486340560cd4f17da2a834229cbe454029b22b4cfe75b6b5ed0905287fc65183a2432d21b43b5374693d91a8dcb1b2f1f2bf51861bf0e4ff3034139d621f6bf609a41ea022d4d2b1af8458e7863887b282bc9e1971bb4bb1c00db912c73d604b7468a178644f99f3f7cd2ad7ec2efad5273408f40bafc57301d1b2afa7ca6306273e0ea67f26273a5a940d08a411bd347a1190ab030c2b5a2c8ef5c70ff2a88b954e8296deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c51e67045262f5b0038cba1d314b6f2940060000000000000015f73f310b4c8f3010063f981dd88775147a33780b3ecb681b470c620a3b833bbd8335a75adc92a49aa09647f3fc6c98c668779b33cbc1784782920c7896af85856d11135fe01b8e681b15dd24e1c074115256be61616daadd4c8f0675177fc2bdb0c48622d2ed4560c0e72c4c61b448205e31cc08edb719892f4a426bdb8b165dbc3807d3b555fdd12f061833dbfbba3de713f5d4cbf665885800b7c5070b7625e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c5d3d5a230c40580affdb81462a48b2310500000000000000dd5e05576993dc35cea729c751f978d7f32a87dc12a51f3ebed7d6bab91d755913d96795882a45a4fa5e24d53b819581533d7fc6ddc8fc8b63c703018470c05d9dc0d6a2b55614abf78f459bf3545b0e2060beff1c057c145be92f7bb94381e801b14f19fd5ef1516983c3636039f83313edb6fadd340aeeb4f146fe7cef6ae3b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7c7480a0502c190327a16b67329226541f0400000000000000e07b254a45f320dd6d5844134089985f71e9323412d9ae0779a95b83447cc4f0d6f1974d9e90331a74211f749a3068cf52888dc58217227ae0359763bc365d7a5e645df3fb97687cac1418817e890c0bf7298c478f2b0c5e9a4d75f2bbcc8bc7e86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0a029394a55175569b696d24890d59152030000000000000066dc759e9ee2fc171a3c3070ae2812ac0fcb08196e48503fff86c79c5c21d7ef42b4ce57dbd4397321b0ef8ab75a7b6d8aba73e95d6bc9ea7dc30b2b9b00d6b61a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a66b8ba53d3915164a65296d5c14b3d2170200000000000000479bb6e1d70874d63258a4c0cc19518d23cb57b6bbd0ca0bb1193f16b1c3f125f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e26f86144c5e280a16627b3339e791af4c01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb0310000000000000009c3b663d43fd9273ffcdd309226845431000000000000000da764a981415f9ecc532abcd16ae29574930a931bb35dc093f4fc40efe54c6ce7ef632b937920962a41514740355cbab3d43fd031601376c59154ce77ec80d0625cf7e4851a63a24ff7b9a8d494a5014f222b99702de8e0df1fdc5c7972b8554b9b394c0c1c4bf23b92ea3eba2989cf28337ad80c950f8a26f40523025932126262c5c82560f090c0a693417c7db44a416846964f99b1cc4ef51c033bed5c656bef8ec1b3fc57fec5e8ef10423718557af2f0fe92b8c926da50311d72823474b54c37a99f76f2600ceedcecd86572e0491c5a4ce63a2f5d5c222e50e733f4f74402c0835e08e4cf03af93a666d1438be0d6c2a0359feb0f2e10bd33bb517f57153db19cd1043f79820d6b88fbf2a9d038d79075cc5ac4a1ad34ca9e51a5eba0294a003c754a0434245582f7538dfe9120dc7662c21969b52ad0cbc3e8a5796911106489923d24a1096b33655a3126c0fef15eec5c95e20065da4689d4f1ec6cd4f277224f00188eaa5a34ff0b3762422bf7d1adad3acb1ceefc9d4822e7f0d1accb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc079c3dec63a61bb15df8354406988f76480f0000000000000040dbc741201a36af9cdbff6ef17a23fc4c72ba96dae871e2a5367af1e8497ccdf44b80303fdb81f4c7cddfe54468dab30aa0ec64b387294e986b70e118943e25c10769fba4171a50e998bf23b968f2525386848e4439b555acebaeb2b197100751e836eb7ba7b6395a230d69cc3f1a8814a5596d09f759d8c08adad822b23e5e873bde133a914c99417a8fb4e65b8a62e591e21872e87daa46b9d74041ffae3531d190a5a00119b706a497e470a8d6623ba73901d9670f6974b3372854e19f11c9589cd1b2c3a32d93ceb2877d75c0a921d863e4ba1e004194094d03e2d148a0feabf5b87733c6638ae95e9c48057660a6ac5f16dbc4ca5caf8dba12d1224002425398297a9dfc663ddc1710b50acdc4e2413ef5cec9f79259ee77828d89670833d01e56206ef7e3cfc3f7d93cf4e6aa15a07731457ca74726fa98d05b4205813090f7d6dde7e20d9178caf380830edc05c82975a11407ffe93437d493ec3cd80db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19f716ce0a4fbd52483cccd517599030260e00000000000000602ce156482386d3137cdab4e81b98b7a4eca431cf0e42314f9bdf8ccbfd300215d3566a58c431729bb1122203a18aecb1f985c7fba9e35e2d0bc33d1eea2890f14f194b46958b42f2cb5955842d8da2c4ad4fe0f46812520bd89a8a18657c0d0bc38c03a38c1bbca8a6deeac1a8fc3c3078538b4955b3760987b9d02528562c170331f738b1cf258772ac7ca1eb6b2e69dc0381f8370252cb55e342dca02830ccc6c926e98a611dd4555a51c67df98adb66494d2c03b54556a9a14f769bffa57e267666a13a3053af49a3290e88ddae2886ba1e7af683f67dffbc0aa637b61a5ff30c5c79120b5d4d465c7410b8467a780aab8f8b57c22c513a664338176b89f45cfa4ac60130eb8f4d1a614df8affc1654596b5c82feff90b5cd8a1b0dd5319819f11f750a8ec49687f94091e0dc65cdffe1d681159dd86070a9f34a28f40524b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817da0e133489317d339ad836d3c91d1c2770d000000000000006c1ec710f6c1941a2766ca0e3aff57a6403e5ae5999905c300c706758b5eb4f0fe31cdf702b34ae23c8ca77bc340a53832ee89298032ab12ce7388122b5065ea0388a0641255f66e19cd8c8abdae9d1ca016e9c322ac358c3a954b55557a1542f082a63bf6e4aaeb75b8ad79b8f1a049267ba5fac8e5d55d230a1d48937c6a57002409e8cbbc396129b420d0ed5dad710bed84ccbb9572162d8bff8b225fff822d25a53e8ca8ca20f71a03130fb8985dddd2bf8b4bfd345fd496a18838baec61f2c201318959211ca7c6c031408ca7cd482b93246515ac85af38697e7392b51f7ebd8dacd4708648e58722f26ca276cba22ee144ff77109ab623239206a470024ab1ee989dbfdbbfe182732bf5f472904436314e7b435996eee6539cc0430707ffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff95bc922320d465900db155455d6bd91330c000000000000001c7dd069127b51f29b51d8bab3e93215b717faa16b4c05ec6397ecb425aa26b5a8e0c13348ea3e1d6409eac7eda7b0071f64cc76260b6ced0a3c38a9cc7c79d64755fc737ce001cd4209af82b3973269e36b8106d47e9b2ce26f1f62c397d244637ca8beb161315fe7dc404dbff37e897fa07a2f604f2cd27b8b0dc87cfb772ea092e50d0eb2cef4ca8b916d5584506e15374a81afc6603fd38a7bdc3601e8167be90ffd8c56cadedb0d7539511ec559f339f00c46931e11ae13ab6b495c64ce4a77a632842aded13145af67ea1b7d776ebba6221317b76aab27f18a7f95041ba32ae6ad5adf236ec0ab1736a1582b2fce0fdbda646343b22a7b08bcd7aae21438a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8614ae04520fa8652323f952eed7474750b00000000000000fe8ca1a3fa81a7e0d925e0adeee5833ff0cba8d2ae905e3415f648b8aa623ed08b61ecb06349b809d5d2f94608b2550f16d9f466b1eefb45048ac803ae33ceee43d54af5917e0f14ee036579bd65b13ed3d639be170aa367340da9a671d6c5aa82e10525c0558effc6b174e107ddd35b26ab561bc937f155227f9aa911be6527f49a6ebb743a4873baccd63d3b9eeda2092d46ae430f3284a0a04d33f485b068259e23bfad8e178fea6961706ea86f1a4bc6ad1e6f41738ca8daccf98001885e219f4fc54828d3400469a8d46c8b1d7428c11aa3f23853d69897c00e1ee3400ff01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0ef26e025ee778fd2afffb3a3e44928c180a00000000000000343430619f90676e751f88788ac367074ea36db54625838d9dede2a03f8b73f224558d34c9a7125fecb244f909f02cf96fa6f1dfeefe858be2b85a5e55ab5370ef09394530fd37257343fb15b9b347dbd90edb4b5f5683ff43dcc8a6e970ee70e80ac6e401f7d288c50b89a7caecee1156780582c131b284be655c949c2ecec46fed5182f5c2b15abef207c4eed6cdef96b0538927e3039cd0cde581c0ac2148644e5a579c9a1da55e1e0b9a63636675a78aeb15230397d83ab854c78254250c1d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3bc149532092b32c65aee2492a63b9434b0900000000000000fb00e403cdea0f00bae5f2ec57dc4cdd49f708720592658046696601eb449236ce189ec5718faaec91cd1a82e6ad42cc1b65cd76e6e89c3cd15f5caf462d34fe7329845fe8db78ec2533baaf97436f8c143750ac93af11a4182a91f29d6376f68a41db2282c9bcd4f7529677f41193abbadaa3834d7dc8bb153046b9defe12a3468e97549d9ed3c1a5cbfa0487abc73f69458a14b693a7c1a8d5a46e651358e7388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc24c5916ed2ac8d1e29de1142809ecb2c0800000000000000a26062c045a728f4b0f74285cb652e7f16aea1983f02b0592179f77a1bd9a397a7d7485bfce0aae513986c1ee762f2e94979702c0f9f4d10763f488084e940d145bd65f5a3372383112388108a63cc9cd05b333db94ea64c2a0778ab036800971efaa822ba0dd32820ebafd0b74be9367b63e04a1c9a8838cf707c5453c25995c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6927c0a047858ba5d5657d576cf5f5a320700000000000000262ea4bf2bdb8e38b3128f735ca6c41023198bea0ca3abf505542f31262d1b838169ccd4a3fc76d438db04c446c822cdd479585b4d7a151965533b4d00d235f6ebb571532d30f2b323c96adb7b71cac56edbc8895af1a50dc285df5306b3c3ab9e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1eceec2e761a9c96038c4b0ed2205ea001006000000000000009466afe97eb3b4b2aa1135f793c0290aed0d189ed9ae8f32f586680e893301b77109561fda231ab5896a4b509c7b49303b0e796ff21bae5b99fb6ec7d00bd8c9492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c172fc9420957e5041ae46ec2311ce4155305000000000000004f1f1b2fd8af737ce82071be8f42b079686c51788bf719db79f3ffdc08848eb1d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998703fe75862403e0f62e29e1239c5067604000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000006ef05567b2bdf46143e4d41b33ba3f2f10000000000000002d49c6f7b65a796a8aecf59276b8351d41bf7d12c4926d4802d8d0a0a9654db01dc245ac619b58c2fa40c3b8da79d3d8a3e51e9a5acc0494e82bbbb39f465bc27b44a1d439b69264331075a96aae8620c75fb6a8d2ff872eb2a1b3aac0ea9113ed0201375ed8a7ca8f52a60f81a637a39b9ad36b9a047b233cd2e61959738791981865f117028583c460c131929f83eaf982cee0ef42f2cd4d752d6c1577f270840e36c7ffe3dd50de90a7ba128a7f1e1f800a02ae772de4c0bd9f2c01a2ff235e2613faa9344069984fddc1a8d60d3b4723696538a53e039837a6d6d2655c6b64e9a773ed9253acd0e22434607611a38f24ec76ec7e46a1d1947e79e9b7a0256f20a55deaee5e18f35fdf17930e8979adbd5a58fbd6fe7ddac921e0964a29a2e33d0cec002ea7c6284958414fca53981b468efc124ee36b3100cb9a27b2e7a4b38b4f579540b51329b6f2d3f1f77728aa5e0eebdc0c30f2d3f1ac5a36414bcd0b4c260b316ee82b50c83c8a9a8cd61f9de3634ccf98e53fef49abe4f8934a0049e3efed6a519880a3dad1d5cdde2a2da489dee5e296b048db79dbd503661205b38a8ba76364199b6e95b332eeb373b643ced6f53d1a85b65a0b718b7a901164d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc07499c053910c14925bf36b26b6988a4460f00000000000000f70762c8cb300604b386ed0f1f0248cf773185f4a28b756b2514afae7feff5a1ff211278c7f55be2b50ac653be51fbb20c552b74f512d90116238bf410c81c0544d1513b7da8605952acb62480d9dffad7619103d55341d8094e679d0e4526d8a511e678165f4b9a7c8132b5c24ca4ea44cb51d3813428f51df311669bc9ff4c30fa142299e2364207affeda1a21295d6d23e188e4d1b757346a1e2a4ccd1edbe508dfd174011ca019b7f8cde6861afbc2750fb074008584c967a2480b28f5e9238dcb6f7e36d63149a26cde0779bbb05805d4882576668100fad7b3c605487503ef8d570d37ead5cf6f0aca59eef026e3ab33df45c377e783b670ced20b971386b3e33c7ce695651560410d226ca249198da3e019b9a0a4df48b82edb1b95840145a4517c3e10e1ea18566a9d683520816c64ae5efcc5119082aa3efb6be26b83df9b0800fc719fc558a966bc8649b6a86229f0e6645c5ffd28d8633e6cffcfc5a85457909865a1884879fa37490e3ff85830ce04d273840598a4c1d21e7365153e2f3d63c1866450176629e453f5ad1f1073fe7852e647bb1500a6abe0c3ef3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a19847c655b2fbeb3167599c46a7e6986020e0000000000000072f9a046ef6252299f40cdfb55539d4ea1dbae92295625458612d5200d4b96757b19e4074162007cd3efa7095e1d213322683526cee2db666f5ccbdc338c12e0c39ad36ebd245d568185a8e5d16bed4530f606e8a642067f1cfbb3ac11906ab37c02f32b741dc16a912f3c770c26b20a14c4f886b7262e8cd7146266c9f1438f5ddad5f0310847517dd4aedbeee40da80a569b9e6b2196f71758a4b78e172b03fb31231ef4b8677bdf40cf511a3aebc5affe4c4395d19cce5791cead43907f0ed03d786c138868c1ab2e543ee020849a211802995e8a65b5180a2075b796d2dd085407090e1706f895a13444a9e393321fe84efa744598e0ba019b3286d832c78471662dcb642c1e23a47f1fcc14cf9b7c848acbb7982e0216aebcd5240c66af85256e8e1c933abf3dad7157f44b9fab0599491d9d0ad27144d80b1328105dfb4c779126a7eda44db32230ac42737c3dd890920aede49d9ddeea0ac5a41a48ec66100a8f337a9196e2ec608f9b9b9b2b9d1a18619c22697a3dcf2bed0953d3c47ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817da1a3b549958fb305faceb65b5373ef290d0000000000000051136502daa7f697902117c29fd1ef629a87a5203f1454862f1b6ef0494fce8e436ff1d1379ad07f5dbccdb0a2a8689f6eb1cafc3b3093f4a4a44447b7c5a5d0352a6600b1573015ce7158df9f4d486b02f373aaf7b606aaaeb58835f34cfa348b1e8b5a87f9c7748e17993ed8c4fa6463ab4d9381c20b3f05b4d3d84b41cc15e8d3521862194cc1706a6c12fd996a214747ec2ff233caca56cdd04cf11bdb3b9cc295e9dbd2702e9bff5ac5ffaef7db9db56725ef03f8ec381b0d8036c946b7c4616e96d7a5632119fcbfd37e2f87c93cd137486347ac13e60f4a9f3f6a4f11cca70efbf74556eba3fe3d081bd2510e310432d6ee0da5b90d0adcb9b555f4dab7b02e4d42392ab275e93548ea0ccfdee278a4dd454e44e4f2dfa0e550b362fb001e7d9788e60f9c8c556f63b4e236bab4c414fdc4397ab8427b321603f520589176bccae21147d5f9a19e51ae36b3a6d2acd5a301c5ca37508e020ce96e26c6fffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff99c9f666ac3280a04ecd2521d90e8cd5a0c000000000000001ac9a9a2c841408b58112cac9531c491ba90fb4074ca1c1756741e31844939d0e787b268112ac835fc394c5aa67e7fcab0aa305c9fc7f3183fd8dfd67b156f1889df1c581aadfd5ac48b2063592c5eb08b83977480ea916405724bfa27eb4c4bc2a577d36318dc6c51c7af7ad9c20e21d34dbc7dd69956ac8216e7a6be351b7f2688960550251d1303818604fc81776acd397870d7f01fd47558b6019eca349fad075e2bbdf7530edddc277716131820e9d36ed47f55ab4e1f18bfb9cce9793ed3ac086602a459c4aedb7763276c7c6803ee036916047c3e6e6df69064675c8e6adb67290d1bef3f2973f4aba88a7857816291194f327111a27e12b8fbbd845396a42981e9fc5ff9f38ecaf6afa45f91cbfd7f182c20541a416144858825f3b948226f2c726cd9599b82364d8f0c7feb0a0ae1f9befba53644e98daed9c091b7d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8dcbcd53811698e3b7907d6301d4a6a200b000000000000007c8cd948ed603265642b37e0d7b5b3ea44e252a8236f9243089c692fef77929cd2d805876f5931c42c88770640862f8f9530560fdf846afad8f1a24801987f1111a809cc67880c59e7aed3a994ac364c4af678098435f09d7efbe25520e82701ab2f2dd287ff703cd67c96c82855d70ab97ed632754ee74e3745d4243a1941134128d103f4a0862c43f5cfdd03ba571c52494e4d8c7784ecb01479447b0d579ef5223d809000b5f828b219ed35203f68c30e9951e7195023ac9bd8ee972cad7a9b17c506fcf44bd442003ae8f053e043be63406902961fcb3c3e3349bfb86ef3da533af25aeb88bbc751bf7cc176fc4083a3f8f433045a191678e39c16b147f502b56df4286461e5feca8e23940eb4d9edc5aafdb56d250c4d695b758e24198786a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e9b44b117df6a6e516693d93a129603210a000000000000006a6d90c3ee786cd4c21f638921f9679e41648627f059f3f8f4ea30ca09d618e08bf6c575837ffeaed0eb6a5c5240287a994da3450b9d1849a4e462c64f42d78c612dd0c1339ba850c44a62bacfac7767028f33a447061eb68185e05e0e9822feb33a8e0a668e3089a737fd61cb5aacb2e45f6451f77851e18ae7f3db9dcd25f6c3cd7dca98d8cbfc23d690a00a0afd5ec30d00d2f7eef27c99e7f6805235e9131877b8bba0141a34ac59a6499efe992233540146045ac955f3f1eb4a80c3e5d4b2f877044888e138a681bdad242a08d566640e446531221cc9346d83b31f3148b855a5536be10ae5bd67768940969dd249c9641e9f5b1a67bcfb76444141608fec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b0d178131355be66a60c71e2a1a4ab62609000000000000009625560ed9e7f547e782d3f33cb95804c4391a43f3a098bf1cfe1d53a6d4ed359d57c053199a27662dfaed01120e3f1f0dad89611127934cc2f81f8d4b82a6da4a75afd9a2fd34d29c470e42985224b307af2eba609536c9465a22615b89a5f044cd348ed3ab320d87c8e84275aa8094770218afafe10b9fca0682408152c698135b2d697fafe5304d72f156b075372193a61cb8cabe44f2d2e876b75f981ccc579e31002b24f564f489d29c6162a66469b801d54be42701e5a84a112245c55e75ecd3c3e2c16362e9a609d8aab9e47696d994f1bfc4d25cbf2865e35e77a845adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc02dffe239a86be6c2ac759321082e75a0800000000000000f93f4564eed6317aa379f426fc99b992f9bd00359e7d0b8b479cc2c4429f2b7b55c8083af01ce4a15fe67015f6dbd0ad81b0a745202e546c5c777f7e350da560776bc22e45564c4eeea58277b5fa28be39a552b150621bf5a1521aa058dc296df1ab466addd7934ed99ae9a00f8ce4b8ac18c52422b9a20e40fbb6f725b9e4addd3756cb31e73e4d65c6ff15a681bc9aeac7cc3049686fa40100a0844c4272d2ffbc93b7b5049f851169748edbeb94e8fb6aae1c009e4a2587b3ab16b7458843b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a65926646e9c3ba62d932a882fb0cf043007000000000000001857b6cb5d1ec57291fe6967804eb3c8d37df12888d4c68ca6ac4b9a5b5c3bc062cc799e06519d1d93432d1615243d2ea9a275ef2345b85415a461b1ebceb8e206f13ab929687db3a11c64418dbb4dd26a52bd681b0f35ad3ef343748da547579f9b7d38c8e761d1bb523829613d94fe770641af783f8306974285b8293a86b8a13357db331de1ef972a349fbb1f69f75070d2e37c551684321f37d7f874a140b50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec8687f615ca47311d96839e3b34218e5d060000000000000020022f691be7fa51e4aca4a204178cbc744d06b898cf0882106f7bddcf54d7b28a86c873f001c482ad15423f419b1be26434cbcfd71c0eb454c4998528fe7ef3744cde680050e4951b261f4bc41275590d08050a9d65918bafec0b1b716a5dbe36e79f194cdb6d4992aa056f99ab1262fbd4aefa6494c943eea7687cc624e3018d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c1749fa086325e2ad2acba3f3460d83f16c05000000000000002602254f22ef23de6f52a919e2d8f299e892d74b0f2312dea6028668c479623bbc9b42995561090a4b1916148d1c0f098f67d20718a758b449cae10a44fb73b1824d3aa5a02bbc597159925f2e8aa4aef88311c5c8d6cb36a1922bae4fa1ef450b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998b74b14753f0c932b96bdeb5b8b03bd0e040000000000000012f846eab944bda984a3967a0aaf19a244dae70a57b1a5535561996b6521bb6e1ba1da9a29f0c566099bc5341fdae2a3534462a503fca40c205ddc45c7cb7d6c88f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e20d63a80abe2cdc76116110055154b86f0300000000000000ca09f3ed44ce5c644906d1010bd11cbe6057d35fd97d4dec0a3e5956d43f7ea0659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8422c163f50bd495191d230575f59ba3702000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000aad56b4560e0c47684899a4dcf0eda481000000000000000b0e2e2838c2174733791d2933320f60eccf776db3c549be14cf4ea9888cc186cfe4dc1dcdd893de9d895a8a82befb9cb7060cfd0fc9283228c77431149760bdfef6e088795c313f218e6d83f973f9982649bae44d579ce2f85710b1aab69de59c441840aa36eae3420f42ac1a017bca1c55390cfde8d2e2f45276d97db0adc252c9e7baacf6564815221861784bd34dffb5718b29fa2d7dff2ede6742f06dbe3e28956aebe65b9d40829a9456fca3c59170bdbd13459d93d8a81a1c9df64043d363eb98176227c95f659ff3446f5850f1268ad4a4be43eca98547bb3dea1578b9f66c49389bbddab5ca9259df558b951dadb6c2c43c936a413737fb6055f8ca79526df8f51e0c1f224c1c6ac15a666bd7a033553acfbfa7e61e2e1d0f790033e5a7468c9d927a72ead5ac1e732d0f54ac050dc8d56b0c04c2b502572312b14707002d861d0b8be78300ea4b5dceb26a191212ad5ac17bbe7589469319d45cff39eb0c9694dfa8f6fb6d7103314c00e8cdd00b60ea716a31008698c5995cc3ea909b8b333ea3564bb68f2bb47025a1cc9c2b954e44218df0d749c206a0093136fdb1a7302e121d93a952f984c4e5bed625a689637efa7c1e3734f2cfc6990702a6e7bb91bfd6512dc63009f3885c37dff4080b020600b68ee0a5ea042b4fd5d0ce6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc070fe88a6d0e9d4c51122ecd3b375e330b0f00000000000000f572e5133f3f86bb62750ed03b9d007d70e9f7d7807f2dc4a40f18776989250c6b941514c2f3e89114ed116886fb4e4b125900e35745937a54b57b055862fc6bb3657ffaa1dfc218ba5251e720667e056288228bd97aee343df852b3154173de75cd5423994961cd5c939b022f7ef096d88512d87f18d2e790e3a68419312e9edffa674dd29dff348f9366e29c520c1b521a9eab0c58a5e027c6ddf826af0f89227f4cc1315a4a3da08679e7ec193c99a3b32c31ee0f6d0a09f42ce2360c83db41924430688ab7a9d334f6a95d31c568b5e50a4cf19deb0600d4d7b3b8e575d4a5c78a82547ec6bcfdf899e1acaa0f46650c241ba8062ad78a64bd52f584b9b9b83230e04b374e3de504984d493e4ba7917ae819477a41217d54bc8d7ef444fb8ff159dae98a206ba4d9d421317eaf1a45f91a3356d62b63900d12be41d0a49f0b359a7c82a1341ea6a7cc2bbd0108c4db8153b2187278e9f4334a15ee0e26f693bf6b9d4ad093315c7b523ae5363cc9055826dc76a8f73899d3005975781e9eaeae03d49e7c7777893860abf34b1bc185f3354c19b272c088b3254bf90f06effe603fa619e859e3397b47e5d305b409d7fcbd7169ff9c0c1796c67577eeb414bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a1919130d22aca9604b7cd55c5f87ffe5480e00000000000000ae09fcbd223d2ca743637e0c15f0fa61e48dba934f4e9f4158133f91d76c9b9b43207311775ff8b607816d14bbe537cc327ee10e7d2f2a0ef110fc068d80004ba255e5f79cc2f88148ae9536abe8e4497765b63af87bf90969fd974e0e2fe32334a6a5bf0f5e99904d53ba9b12ac9c1630f98adc6de9fc02b12a4e03b2b5b8e7cefbc9e17293633f606fb3a2ad11496fca33987f117e6eb145a1c78ec75ef9f58a06c85e1a05ce47f4fa1fb227ab04f904a3b4e21b3048bbebf25107dd06b760c8291cf7260463a5297945783e600010457854637f621b3136e30874a54719763de3f72293541cf018aa050f8ca05d9191991af5ecc6c5100ff2a0326b73c8c15e7688644bab748559a29d5f6767c16d3c4c666e6606eaac55421fc4d431e3c2b20255e366baa8d9d5a29a93c9b6600d8628abe6d0866a4b1e14e0e6b12e441928870c9e8bc72e99fff13cba3fd4482fcc12388d234594059d65b6624799a12209021e975509b65c92ad2872087a12361456dea55f4ef5eb8b3756009746d3acfdae927f98aa2c28b50f1753827ab60d2ee5a6d69e7a37f9dc774579c949caf0dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d5fe7024d44b51014ac4bbf4b5228de270d00000000000000efc797337ce43fa64d7b8179fbab32df05f2a9329e79054f713abc814b0dd37fa9060e0c659affd1855621054f22ab06e20cd6dbf32d20436aa7bbc11eb450d68962c89cef4b1797dfc4bc8b47000ddb8d04c3df73a65d0a18bf1f613eca7571af5aa876c1116c42bca01177fbe6b684717049e643777b0faa78415c439b0fb94b1d6653a6ed949e74363b7251a93a9a7d8b02520f9bc65727efa2cf2a70f9586f20e8cd4383def01c9066c809c3cb7950ff9d0d7bf2ecd8e8fb2085fe81144d8d4ee75c97cfa0544e6bdb2e7c82e3a50c89234047a89d5e0a27de16e9ccb14012b9bcbb32aea95e549b85ec907d76e9d5f68bd079aa62c4be38d76f2390a600a0b3ca881b177b8ad3ebe5916a2d90cbe58b8b6de272b8ca2d30edb255d2fde69c63abac14fe61d332f4c0f92812b2873d254a0a075538e11af75b5c17baf4e964fcd736f774543ca4104cbb91ac1f09074049f8b0fd796450870d0a501e0e076b73a160cc22e170592c8c789271e1121cf84a665daf134233c83d96f074a26e105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff900762464b517643b4a40323c5fcdfd520c00000000000000da7d4f487db0015bc5bcdc775fee238b65849c692b90c1a0ac808f62761fb0b8502f38863de171d4c11108f40397704f9a504d55fa82cc1a4b1b893254b31f4101729d89bb65e81dbf11c19e16a7ea7653fbdc3f56792bcefc6ebea5d8aaa1907c5cf9294e8e4ffeb176c1302e59d78fd285f497e3572bb010fab1f6b854b385aab286511628e4580458ee6566b3434ccee146ff2726a564969f853ddeaf16031bdb1dade269b9e494cd098e0b664076ac94eef4ee58b951fc9470d06f03b2a37f27cbc4d0d71ed1ff601265e54d1094e6d2cf184a0bc46e28b71d5a21abb8bd28fc507beec550223324cbbf88a549365f01e58e50ef3ea1abf0cd23744a187d6ef3bcb5739ac916fa13e5308a3b243c365599e0a67b884b63c020931638cea957c4478b1f2d73425b29673a1dbf34680f4e855113c990d764b64cf703b6a519c431c7f55d2aecbfe0d36c79d15e204e6dbb60a7379f15bbd4de333d252ca73aade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8d507d756c318964f947e1809b410b21f0b00000000000000eb8216eae055787060ebc8ba355022803f4f5e65059c0fb66df04e7655f4f5ac9283cfce7c64f8d06a2dcd68b7ecdca81971b2668ae91628af266990d40ec5c6ee72abbac8025257a0d4f8a54739dac600046248d6610fcad680295deb626d29403cae754b258740d6c4eba8d2b636b57ca11e00ca2f0f2d86d1627e7ff4906d35ec46187c740a59e7c7152239d18124cf88908f27b0198c070872e86afef01a570b1ee7821ea8f0a19a59de8b44f504ff0beff72f527c54b9a2fc1378e7cbc4086078088ce9ab92aebaba7c120dad1775d399f8bc909c0ac0057220b1636325cbf768ee03db91b46d8d63fa1e96d8b28950d9fdeef4478eca7b31e23182dfd72b91316e013486f489c80403e12dac99836a7fab97ac8b0d0f0aa245a624601e98101a87fb5f15c94e3f5c6c053d42dcf68c859972da4502f499772fa880a5bd30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e4e357e25e9b5c85bc79f1c6274872a0f0a00000000000000c5be15275b90ad2ca0b0fc869bd5b91aeb00ac00a9cd8014cd410dfe661092a115f026224caf69462bb5f254b4ec67e3eceb5881809ccdedf611c5a6357df3cd95a398816b02c77974ea22c273a20633782d5e18a44000e0a911e7095ad3b86ec8bab2f82a1e32cd1cfa1bf90c9dd8809a9ac4ec010ae86c6c7ba112a78f0acd9a502e415e8e54028a160ae705459d8af2ce1932f9f640bb1cabe2afa61cb6d811eed12d7f09a5c4ec94f583167abdec3c38101c4dd906608e28fbbd48d4aef80c7292e95cd04e78c64a50cd7c4b480473b7815d8f785bd63018fecc5e7294e40ce630f69a8d3e8fd0bf6b977b5e61b4f74576d03597b6583a98f6c289a9117334411afe46ed380fdf275414cc924a875bfa316e7cb5a490043edd57f97133b868850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b79e5a43a1f90fc491aa15b25f9af8f4c0900000000000000bd9c56e3ddf8977e17738d237fda0cad4440744eca79a609459ca94d6bcf00fcbcdd17e0e9b74364118000038ad511eeb0d90e777b336d8fcb06459c90e803d6bda2d631014fa7dcc431a76d6153d8f304f03514051d2fc98c1c3305b82320209c8bc600b248b0e55e6be5cd9fdfef2a184bf0f304a2927d27e04e354317095951bd87dfbfc0255cda8548ccda542597260538c87c312f2b5bbe1684fb2aaeb7b50910170b20a0d6ac68718f98bf461e1a02d8a6773f8c75d52ca016d12bde15089a09ecba6a936a6de309d566bedfbfd9858d67a46b31eb2d6f3607e96236b20f52088b72cede7aca14bb42bb0d1c1122c49a9364fa8afc2d06846e88d39eccad0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc2aea0538febdb1106c09c647c255b0760800000000000000ce486d7c8bc80e260ab492413c98d918e35373779cf63874d3eeffeea8476423e8c8197a4b26129f7180ba13eec7764f8545bf08e646e9bf4cfbea3c7d2a1fade6d5ed60b2532ec77c1101009f706d02a0e79edf80c07bd6218478d4fbd6ab36acdb6f0daf598875ab5864855042ac0fcdc8b6cd8e9671f7f21838cd5228cacb45de989d58e674aa1beaf28997494ed6a6e6a9e9e8b68c468688189effba7191c41e4152e91e4b61cf834153daedd035e498533dbf5186d5354b3ecd51f9b0d43b7fa6f933ecc926f644170263021412a580fc3015c2fe748b8344918dbc1a31232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a628b595258ed47c4303501a0b8567a3070700000000000000b083d74e9d779c2ef10866b430b10f802f777f31db8bac4476bcc322e452f6773fd366edbde8816778aaad68a612a698d973806d4048b0295318ba1d4774779a8ceb37314c904ddd1e99166cce7ffa4b76cbbabd5d53f35a06e5b0d110c3d98c678a9e0309d4930094a83ff005c20c6ed7b0610d8fd4b0b442f04463c1b9eeb11d2e4e2b528d5e41fb2c0a5b3535aeb2d92220f1aa22a2e1af647e8c5ff167c22245e099cabe0b7a99d1424676ebceaa9a164fa24563daa7a94db16592e0bfb100933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec4390276a94579824860301749419c830060000000000000057e622e72a5e3ac4aa5135cf5188245403236a30f42d57541e405e71b6617715444190bced1461029c4013616530c923e090b2a46a409f33fca8ccde50e3a0b15879a8a415059fafe8f3a81bfae01fa4fa1634b86f8a5db935103f3c1556e78bedcfbedf8ad6196a1e80fe2294d009364ca7bd45996d7c0d86ec71ac03fedb9f8657d90f1e7126d8005cd4bfa6de06c6315a23154d0099a274505995aaaeb6d663f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17890c8827b37677496a5ab100699a304a05000000000000009d27b6f5b86b4e4b58900094b3829d5706be17a95038a8bc45abc45c38a0256b603977f192b10146d4aeec5898f25a54d54fee2676e4d02cd6bdfcfe3625c733e7d50b185d7c03bdfe0597126dcd0045c08163e9feafcddfbbfe0013cc7f2440c2da34f7acb8370a609768fa044714bef6fc251c77e89ffaf7ea3f1b848825dcfc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b87979988fbbf94036ca1351025b095fbe8e46440400000000000000d5c92e2eb92f96879c11d83416bf6bce84ab8b9c79c05197f8dd88b1765bb92adc7dd17530424dac9d27fc41cdae62f1cb2fc75be68cd1d5790ef5cdeb71dc46b9032faca1714a4ad626c0dec28596ea7635afda1d9ef897a812515a24213d40ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e237f08e2f086f59031a06595ae4342b24030000000000000002ce9106e2f9cdd7bbf72278812aad60b58b3a86f907d0661d6e73105104c722f8489c77d5d12845e334b347893e9227180215bdccd8aba48f84620bca61a0e5f6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f867d3d94e92384d0e9e3e181d938f146e0200000000000000d022a9be0c8af36a78cce178fe48f8a73ec90f0103a444df14b518d8a0dfff9d88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e28313d82f84652ad5648611ef727f831040201000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c2310000000000000001e2f032a6f2e8a6605d3b0014b6fa2111000000000000000c1c8f17d12d1e2447349acf5477050b23f67a1e71cc17dd13dde3df8512751a6efc934402be9631a6b42f418f177e85900528fcdeefbf5592ca1c3a2b83dc099ba1deb520c3291a548f9e1c99707980595fdb1518a0cc9e9836e1ce5e2a289924c4829ba9246b3c00ae5a580d23d8792a8292c25af597cdec6999c8e1d1947d08d122ae7812b74afc938cef8fa001a1a582963d11a28c39cc32ee59cce5e910698de7fb42d924126e12bbead05e08ecd3e683b6626ed7c458d38da95633acb31a0e62b64d17c6c6ffb0f27c8a520887ffdb13558a9de9fe401ef4cf9a1d493c9a2b66b96d45bda497813cc53f6168f97e702c43d009353038ee83c8a5dfaae79ebc6c0600380e85b1fec481652558dc57793ecd7f3dc8cac44d178245ef2f4dc540d337b6152fc3afb4501abd754bc1a791033d2778aaf8ae0c8ecd8ab8ce61f6ffc8f55e12c9ecc196b81662b59cfa42ef85e40409160e5a08cb0b19550ae3944254e0619bb4ec9d3f056c9fbb48d8ec7d6785fe13b00f112d621ae01222ec17c03a2a8a019c5fe9154b2cfdda8fd0e370cb8545f61846593ff0ea3a44dae48bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc076f2c1b3f5e8d856cee440918b39af41f0f00000000000000bb57fa9ab889b5977aadaf0009402dc09744a22742bd0abf2c3aaedafd8ddbbaa9d8fa17da1e989be056a69ff9c80c0c862b4f034ffdaeec2e973fea04f43704e8a9801a44420c9940c7eae9eb7e746697233f09a078c8583e8bb118961b7a9e9c6a2311b4af063a20e9c47e49c65f67bd8b84eb4bff228d9dbaeb7f0146f260ea728b5db8c5c005c9689162be26fccab0c599d993ecf746b16e205d7fd3ca647f9a06ea81db8a40572c05d167ae20ef9a803aa01599f2f0dcf521e8b671bfbe03d478f7c15d8d0360f83ffbc12e3ac14dbff3a6e600853ca4840910e6660d0324569d802d0754ac04cfd2e19c21d859ed3c41051a877152089530006fa9320a5583c05e45ae7619c31245544d24186235d87f9e0e4cc9d9958a94b305dd289467e62b04a35e23b8c847171e4d2ab021fc1c942274d4c32039ae64c342a8dd7fef607a8a53c1e7f9a19a15a0f5990b8bd64e699f5717a2e9423d50f57a4987c45a4294c76d3e2767d0b62e4a20f7d2f8b5893174398b4f413961d99d2e9353e3ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a190e356c079be46b28dad73a271718590b0e000000000000001572ba46de040aad4d0553507ea7ec31fdf1ec4e09a25b88e72af4979f69dd5f7c031d5ffd8f44c3f951986cc3470c385e0eb00c8dbc6e1af61a6f25acffadd8caca1119ed23bd0e362c860323313d290ab4eb2fcdfd127bf576bb8a601109d0ea6c484c5b7395304aa8509929cbdf31dae1e464679b70225edbe680eaf7ad56026035c7f5e5ae233071f9cfe93c0008de869d6b088402a647e6481449072c810304e3b3fafa5f7bbea2c95c2c029ce53b2d19612e19df65794248cdc3125999beae8fd9c1f82c3e72e216deba930d1566ab8283b3f7ecd82b24a9b51490a5af73ec972558bdf11fe7e25d56ca353dd396b9c9f5114b5906fce85d5b3051e94ff53571f55d294550fa1b0e32652a2ca7409f9e80d2587ce7a0e2a389af2c4d727bce60ad5ba1df7db6e287ad2f6923ea6e023ca02268a8f89df87545ae12a969b1866e17bfc6afffb25fbc0b5c985c24a63c548161477525d96be6b9262eeafd2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d6e90cb6c4641ca4b525cdf1e75098b680d0000000000000052daad349dfcd8210ca0fc2254c35734f1feb8a73f23e0342aa83e0175e2566a7138c137db04cf045ab4979a5b48e04440695b107e92a794a2dbf9544b09749e1655bd39c4948cff22e72703229867c8ca6eb798cfb7db7fc8148effe0ff0b472a7dd8be2e35bc54bdb7a03ca5048d42e75e632d4b516c7d0dd3a5aaed7efdf8f57f0c19b7e0fac9613b7cf068b18419b31d894d20e18fe4ae50f6229752c87091a3b41e2ce731204916bde3110d0374fb8fc42aad1f883681d276e88756d2bc3b7e0f700ba8177ea9539a6ac27a5c99e58c81ecbfdc2831de8ad3452c14c14d6d887052c23747fa45b42781972c56d0b23d6de0860ac34f738078414f52f0df66edc23e27e7699267ba008576fc0b4c31ebf7406005b3b9c9723883f44287cb72ed38c4c7d8d0e656e65935297a73b22aec8a5161ec46caa444fda39e6bbcc24cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff921f9d95cf04d6c4a15c3d86e749479680c000000000000003ecf2bcbd13639c9d4e2265c20aafacfb99a2f48940e8f76a954bca76a1d724bfde65c5c2bf9f505a29fb15fb3cbdb54e35fc3b0621d2d60980d30ec50ea93c5f6c2d844453aa9d06ea9ad842f2755289e304cda022e3f0bff04be0a45bc9f8a1f330e67a86caa096318d387545be7fed94b600bc31b20ca0e7bd527a62c35282fd974e40e59e5378db333393d9fabb654846aca79016a8e6e8029348ccd3d8c0d4f31c2d23786f0c33551aab52296d26be066c5e09683e22859d30d43045fa38ef3af534887d21dbd734468b6cf3f4a7d907bc3106b3b7967cb891caf541cee39124992fec6d00b4f230b85d8aaa94ea0a91ac38021af8f89c2a63c24849010a7a673c0ebf9a1c08d7818eb21b3c1759082f4859e6645dee9467306202caca18bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a8a2f6362cec07b0581057051a06ece7700b000000000000001097637adb97b2f768f76192fca636bcfc242e61cd210defb7c3ba3db9440ab894898f7932865f158998301aa3a6757ed22f0f1ed1364a644022552bc9e14fca4c740b3fb8f62a3e5f42ed2374cd4d9204c0a01d7c3c4ce1696a630621c86a1018a3f341c7af62fd36891b167855a90b1270aacd0169da6b437d37c1d9bab1a8dfcd07f0dca09445280faf6e6bcdf0faf5a4909d4c089e84dadcb1718950c8ced922dbf6afecb20d34d5e642c111b8ac388c9c89930aa1b19960e2bc324dfe90fcc09f135f31da3606d1e522f7a9b021f4d95705f3e2728d54af109929c590fa6d2b69092982145081d6847a8d39f3f4a86cdeae96943f5438ff852e6e4016892035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e22c903385992b61abf7d282c514215440a000000000000005b6571072093eb82cc0735026a0cb406b47466ba58a4550d71f87f9e8b7556ff36e288145416c50611987ea31850537ba0cec0dafe243cc58055542b09e5e7bcd60fd15df6c7728f9e5358b95c80c282af03a5b13618c7a9f53b96190e291e12795b1957063f0e6be43067ee1899ac62f665ff292a0eb3f4f632b788c2dac10439943d399e2b2618c29be68e078ff6c69e83b764bf167b91ff7ad58fff5882e11a294f8e6d54ede54951edb8dd277782f99ccc3b7eb1b4fb1d1f7f00b7ab5a6388ef24273a1c7db878db4d008f0e3d29ea86cb47a88fcdd83fd0f823d97c674dc8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b02f25a2db5bc4d5e2115bd0e9c4eae7509000000000000005b20aeffd3a3f3dbeb1e7f5a3aaaeeb8240871b9df1bc670fa860e16aa425b71cb4f733d4c468ffad8cd30ea3d5fc2252f4fef9e18c0ba0a0ec24d07ef352f3b5ff47dc7dfabc96cfea9b20e052a864d12d70ca7dafae388d53020b22a5194af248ab2cf28dc7f3ea286049b2b579b42047e3e94e67300629063b6f4db088e6a311357de1a8bfaf10c77a5f50345c331b40bcb3002f3ea85e1a32d3f05e4d783b61c7858cb8fdb1a6c1ac771120a10dfc16da42a171808406c3f4880a44b9b73406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bcdfd062498ca2c12cf0e99e20c02d2075080000000000000012c5e016bbaa2f7001adc5c506848384c7f18dc4c21b40c359bb407e40c354ad513fd9b2ff7dbe340421671a4ede20859b29a3c7dee0ae73a34eee82bdb8fb84506f0841425e42dc3680dec343884a7ac2aacab48886310fb6679fe58efbd65df18d1c5edc390d2cda509e191ad841857a62706e03ba8f3cbf4c2cca007a8be418f96f775e9a69c6381fb41300abf6a5b36737e499d3681a2b98322ebeeb1c602a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a619fa4c72866545750438651a7885c21807000000000000005ee509d94fb5f534479c1a61061e7fbcfe118df9137b3f3495191401b6be4f7f88334b001397943ecad84ee03f29a99792575806bf109bd084857551ad6681ef25485267788b493e7c35cb97055fa549c279210a7562440aadf740baa3bed148b256d236c3765e957b26beda9588d2fc5b859f5ef854ca3d973d32d015409d46565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec5b1ba458c272d6747239c052db0c350a0600000000000000f7a8868508078fdf3b4b65563fac5e6e761e4c83d8e51823cda12db68aa48533cdb955c0cdc8109f9d59f25c6b0566a3efbcee0c2fc0c171e4d8d2006c957bf7e9348867f59af4a1b3273c3f94c0fcc138bac446ae8ce977702db1b178c03abbc8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17b78dc30770579b70be650f06ebb6bf5705000000000000008505587024099a9b40c83b940ceb7c9d46bba67b8e0d6987db7bceedf5534658a1eb7b8baee0009e55d7d7177b421f669cb3746b0f2f69804c6129d75d881cca0e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b8797998af54b25a3462dc5b119f50239f83f36d040000000000000062f0a3586c697eb430ef7d72d1fc964a0dab1874ea009ec9405a098acaa6dd0b8c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e2818ccc5b855bfc7256e49034ef3c02090300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c231000000000000000d8db10469c6b34386e792f3d6fbee6331000000000000000033cb5b9d332f5b4f188ab05b6367ead5c96d7ca36d62f25c4468f4559cae6713d161f8b66bc00640fc9ec1c4de83c72dd85f736f7e2e3dc91422e0011c756e67f625375ad777a42e50008c54c94255a4479bd6c61590d817046fc8b69779a67ba1b3559e9a91f735de11173d0d283c0e6b94e94170d1b6ea38924d3f2d1f8350a585cf1d89afe2593bbef71bcc8f24b20c94594c92c9300a994966e974d4cd6cf92eb5adbecdbc938df91e555d67aeece98ddd880b45643d31c37346cfed49248ec4ed9c5ee02fd1f94a98c0947d07930916a42fd2aca51ef4ee832e25c1e3e68a0dddacd9306c057a6cdb5d94cb3a202242f1bebf76ba949af134b4e5253331753d83565418e860b89a3674ac515d79ab883db2832cded5ac75c7781f8324d32ff068d3bd2fa510eba5f00a1f4655f709cc313701b1588b9654a523d1daefab56d0805304e3b3d6390d91b591f19f9fd78ff1bba3068cb96624e790f1b2f369b718c3b72dd6cc74ee39b843cf6d08ad4c65ebbd7a5fbc991fbe0b3d68401ddccb69ba9a6e5053f15f87d4576d348962618c2a3f49edbb24a4cddaf68ad89d6bea5fee75fbf6ef3d4fd7c49494474e9dbac12903cd2f44093f2db8746ac3436d4eeb41876632ec6db5b9513ced9e7aaf3aa6ee4a7e07c0884c61c2cb96b195de6b3aeb920eab052ea133eaea853725c17f13792321ed98c45ba1e26cfb9dc078477fc67c9ede90e76eeb764d2b0650f0f00000000000000882243034056d6e8a58dbaa228f125b6662acf084c2ab7b5da0bb0e19e3aaa2ebb874e1871e05ac566067e4d2786c486cdfff207630ab053c0192bdd647c9423b7a600d32d11966f6b780b4756d9c5143c7e3ad8220a76428aae141855e28228b25705627b7468050a302b55e4efa042f52b775b979cf9c409f1ca1a14321ac6baea9356dd10402179e6d7d412555df3e83eaff71e209d28d11e12f5b30aa7c581ccdec8894b552e0210dfcc5e84e7e9e7a6b85fa0e6306ec17222c4610adfecbf979a2cfeabdddf19816b82da7745b248326ce8d1c8608476632d737024cfa3a8582b4857f61faa9747e0d7ec0da4f5e58db2c00d15dde58301150053536408a8f3e15e1cb9b7fc1690b0cb5c8adec5867822750fbe70d0750a5708e0fb2d75ceb40c72bc44547d9eeeeb10bb0a6b408b8d555c52a34fbfdea08dc4c2f57b95181695db998982566b00c6d1f4ab0a1c65ef7d5edf65a1446c4082820b35ab030db391c497e28a59c684c5f927ca0b981c295a54d98488ccd1a9cb0207902239ab1525e8070a10d0b36d75ad3077035977ee7168d738f3f1b3498f985c22a53d3406efc50eca98e0654789c0732f29f65625731cd19746393ad27945e1b0e433bf465dbb165a1f02661f56d61a5419ee564ce0791629aacfd60c3ac57ef63a191f3779650c2b1d3007d9f708f293d1550e00000000000000dcc999aa8973fcd88df2abde5a52bfdcdf2ae9c9eceaacdcfaafaf051cc078cbb625a728441501c21339b4026fd56e235345f32b6233eab4719e1ecf620f683a998e6d4a98f48b33436069671d6ff587e2f7c82c0d26727d3b4cd3ec4635db46c43df98c4cd109604e55ab294205281af317f9996ec070cb789650f6e1e7a18cbef97f3ed54144c1dae5e4e7ccf6976d1507241e14075358ee751e1f0df10558b471fbcbc14877429fd15cec5b88252cb2598a4f9c20c897d75c6ee6f1d44e9de46ad9c18251bfc3524794cc80a5f533db3a43d3f5883f7cf4f8afc904f600300cea79f7b19065462c920eb037f62820f419d799ea346e52933709d0d775325c53ae7e320a725b03ee75c76be585a16ec4f811a507ba9d3c874acba4d078e033abdf5d7588b6d8a048cffbbdce2a7b19e4fc1574123d4edbd7b4de263666cabe24b10ebb0e01d759f05a6f324b0fd05e795e8c96aafe1ffc270ab9a6fa412afc2f7989e54b0a7b45b4342baf6d5e18fffa438a429c9f025b82c003fd728072077ccf698902d951cbe35c6b6fcb5350150dde45a6f1889d45e0e6ffc7b9afe067dfb61ecf86c9208d05e6bb680ac62683f257625595848c556bd7241a07a0817d4518bd6cce789431b32e66256b17e3340d000000000000006aa4cfd9c5ccc5a8f4f5f87de23a3f5ff97c4c50311f62cdfd663c2b05d1bc1b479dcd8e036a815fb3cd07b6b2cff426da1128a6678789bb15fbfa57868050d11e6825f2a43896a640616938a0b54c194f7d9a7a3fcbabb22fc3982c4e5e0628c53897f0ccfcfd0cc20f2cc168a7ccae983ee79d314c488bc94aae44e7b903459325619c214445137ced4b62b4f4921ff07f03d7d75b96f772a696308756ae11824fb3cb033e60feb185a5e7165d3e5748cfa830d4d0b8e17827ff1b9845cf11c63b2263deffb1905c6ce246779c861a25b9cc00fc4915da58c6c6aef272a0e6925c928c4cb701a5dad8bc81d9457ecd83cea5815e1eee5408805b77d43988e914a0fbf0b9285369f7c2670610fc806a5c527c60bcddfbd15117c5e32949748cffce97f0c40f1824ac3713f70a4b48b2baf6e61c32aa5e79c8d7a0a96e9858774cc27951fb24bbbf5e67ffc301950f18fa7f1efe1ed4a74505c94c315a15177ffffbe1d46811fc2f430105c1ba532e1b7e5e9d2ce08111afc175c94613477215105ee877fcb67f9098a3d8457c787c7381c9d6bf6f0b2b4955615b380f22fff9a5558051ee198d3081fd7c627c9bd64a0c00000000000000cd643a2385e123ff8026a812faccdfa1bf369011262e0e20ce3b196f2e2f786d72b5e316a0396062c2ca8def9812e7f92596834014be068e03e6925394baf281344397a196a252898cdc29873a96559beaec435420206bfd4e81b84949bcbc9ef2a9fdbb02772e744b8ae3c7dc9684186cb84fb2be4ac7f08f155bec552bb4bf07f9046595e83d8e163f56e3685c596cb3dea76922404d652bb73723b3ccfc11b5066894e5a6c6f6806f7acd9cdd51e17337a43c407310fe68d20481beb344c1bef2d9253d631ff11aa1414c68c8f11fc6384ab413f5e8909a64550d568a171604c168013c7d9dd474eac54f87b5b1b8bc33ff546741fd8caead6397975062af38a9170cfe7878c327c46fdb818b7e17bdff6cfbd2f49b8c77bc5a684bee543c8bde5afa5394c796cc6cbd654da3704a0b36df7ee396b71390e6db21a0168709d4d51880b8bf8339abc9d3ec7d067674a723e41119e9d76b5ac864b3d9c0bd7dade039a399ac62b4318b22cf87237928b601796a9fe548df1e645148524c07a82e9a1539b9f2eb1e0d5f2f0f07968a290b00000000000000c783c3c638158ecc08fb05a11c69e186b1a722f549d9a0e759576770b12a9cc0f3e33bb24c2b8961da3c87ec9131ba80985af4ce29d505bac133e39e0aba6bc75a7e1f148833867eecc82e8c4f943f888853f839a38acb8611d7aa20ea47614412ebafc606d6bb29d4e94acb12a91c6b5af97ba57a219bf0beaeb57a388bbedea5fe65adc798e52c4fd127aeb1b83703fa3a900d1cede91d6afdb48eca465375c68558f3500b7203d041ce00d9d0cd375a9a726d3c6ae4b66db153ee6189b0c6de97349a0deba13249fa36993295aa15e64c6639f975813b9891f306a0bc9b90f01bdff62bf07e2b63f9e41aa7f0799512fb4bc71635e5a928a1bc266f7619ec2035e1398d8f758cc8fe241e23568019f2489724b6dda919fb7dccd9a11f2c8086a17dc48105c7969c69ec264f48a53c3cb1527bea25449aa6d98eab2cf4165a30ad68dbe9b85b7c590b80d58e7c3d7ff95dda13a094b69b983e2bc0ee4dbc0e78df435848499a50adeb5167cba5ce1c0a000000000000007c133bb3e91f6258360f6f672d005e2865da131e52b72bf8a16b9694b0937a1ca975ba174893140a3a958c1fbc31fc87919f294f26d81ea73c22d30ddb2e35b26a644224c25d9617988665dd5e6f2e26cc55d809b9d66c16805b6a1c54df7d784cf9d5852f8067c3fc996dc96cbbf58eee5a3063a06d3fb96826c87b39c009cddbb8e00e09c849c4f3f50942fbac22ee25e63a79af1bb98844b8e9159110f3c1e2a521e30ff872390e550f96f0019736e22a236c2bf60fc9c5e2d7201af0a4f41d19f190ad3f20aecc28a562e66b8ff00548a8134cd8d763a1e961d1e2d42df2c8aa9321e5cad25889bd51ea2ab461982fc687aa40c054cf982e25323347312bec196e2669fb5eccebb34b51961cd230a6b2110057d05846ffdf03051202220a68850e56b53975448364c717cd17632317e30b16c24d9196cfbe09e1c25fbb3b19728345a04abd5de477e476061c3f2f0900000000000000347c6d856db8dc340c291b515300312ec094c76c3e98a1f238892e98c14ded86906985dec1fc17f49fd97d9c75a25f7a12de536dc025e97ebd4c00d364c995055efbe68edeb15f3b528c2435053ef33ddccd473c3d57ec9e10388787f44f9d53ebfaca4444d214bb260120035d6397bbf4e46857c19eae955bf17f5335aef0818813c4317fd8fd9da98ebbd529c9cecda3fbf074f3cb92abf243e480eaf9133e388b66207a963cc0f32c4c27717c461027d64357e0188b83e870191c63891f63406b5df439f82ee15734db7ad7fd0267ae8a482570e138f54c2cf3d558adb3a1adbb8722d7ff4a05d3efd4bab83d109da7ecc216ace4ec904c19888062db180ead0d83da99e22261021cbfd935a7d0f52b7c9317c0752b8df23b961f3b8249bc85bef00a46d10449c751146fdee866130800000000000000c1bdae3e089adec853b746fcda9329f0ad8ee5f546e1cacdbd92d08b59c222ec066cd8dcdb21ec5888f62ac8b83582ac708f4406fd180fa6b01e108ea210d5dc87d6798d2cc3671b9c68439f2a2024fb814a1b6cb8c11a9b23f26e18b69d1c990c5e35b60dd07b96449f7e2715b9b5770c6231f13973f35ea598bfdf49ff5618c170412fa1da15d0cd6d15f3db62b5abeb09024752026a9312121390884f53552a2cccedfd196e4f0fd99e10e405d4dcb5834f02c909eb47db000697a6b31559b6ef09cc40117bb270a1eab334538e89bbb42fc858bccdf56f25c3f7c139ec2b232836c61750628d62a319c4988c0081966254233000e6f9ad9c9b218c5682a6e6933504d0e1f021f05a8c1efa6bfe0c0700000000000000e1a3e5e5ee515e10b3ec2b7bfaf43cf5ac14c7ab2b95da90c9f9392cc617dd4cdc27d5104c410533511d8d9c435338c5601926a95aea8f6b1b5707f5edb2fa584ecfca66ea94b6eb1cf4df038e5c6a6a55fd977a31b5940dd4fb97bdecd33bf09e10bbe8299aa6ea21b950ad3fd194555f290723ad70bf42a60a6d9d8d26a99c565afdaeeeada1063b7b04ecc4136e601ab5f730c8431f15cdbd9fbfde47dc9ab50f8483a25303b0e81a483d7ac54ac14166a2b7bad7a16fe8807970e8c687ee00933251ad9a03ed5cd2430412ca6471edfe5f83d5ffeecc5d70f700be7cd1ec6543b25899db980cd3a356614f657e05060000000000000060f4127f647f6cea75868a5ccb03d7e497ef992c90c41dccb19cfdcee87079f9126a1a2df0aa0be12960aa9fcf13d7dd4eec3057fc815c636908aeb0cbdf37c0492b67166c1217fab47908e609fd48c0f57b27fc344d8b9d20b2a76a42ea5a69c8af027ef07271dfd115b3e6ba32fdc185aa5f37d14221d5a8ce19d8f25d972e8d66ee44ba4603bff6281adb6c67f4f50992f9e28c49c867e9168e4836f2345e63f06ab66fd99d87a4080a058754d3c1a20f6f3eb7ef8c5cf056211e18291c17d466d73746dd6b32b876044e9d4141700500000000000000664414ea5995adb1f2ac90d91c8d2f4463ecf032495922e516ae4e6ce95d05e3d8fae83501162b679738a83e535ff33e965b0d13123b472d1297ac6e13eb5e660e4c8a07589c315ce929b84f31346fa5f4b89021a6110191a897bf614b2bb1a90b8fbcbe60c73d4a467e8045dc55f687a4e7aedc2f44c6326769d50c7ae724c4fc9fe0b2cae04a2d2764efafd3b613e889552d14f55bfe025dbb0ea0b879799813e145401be7840c840d5366640e673004000000000000000309c6b83fc9d96bc97ca45bcb3ea529788627c37c9e71459935a677e9ee18198c5bb3bff036f6b0cc52f27aea4dddba2c9472d568d10ac571a6212cf7d6ccd088f359af47f6d509023c2721f487722e7284cee89ad0a227156492923bb83a49ed3b5f0ca0e2d0eda61b318e0911276dcf088b2ec59c215f0968bcd8bcd9e1e260206a6fd7434974da96570e6791e8110300000000000000c09d9795f48c2aab48370a510931cb90887ba6f4404d03adb41018bb0fa4ae48659e013363f677f2243eb24434ab4fcb1cd3af5e121e5fcc22eb10bb9aae049ff6e2b01b4eec06b78601157c59d569bd09a40f7ca64ce46e2aa02c09aa3902f8d569bd170038fa4b3e6eeb49caa6f21302000000000000000e0849d4b742c159e5b7c7097073a910b283643625c01822a5d6ddf728d1d2aa88f6569b6d5e6ecc8b782fd225a75a8a55dc93668dbb82dd9cd3a371054e283136f55e1b2b644463a12ec625e7028e5501000000000000004b7cb7d7815fa16b889b89f85b8052aeb182c2d063e640b77dfdef22d0741c23100000000000000014cfdd0a604e46207245de199484631d1000000000000000f92778d54fd136e8362666742dc21b3a5d447707a2f3b1ce858467c1fbbfa77b1646f4b197c8cabf3fceaab4348f0bfd10f894ccdaefb2f11b5da348c9a565ae906fb44741f8660bbb13ab07cfb54bf6bc18d6fd18325af7c61ef8aac6d4c5d43f2307acd869648c04436573a3dead9ae0ce8ced47b700242ad41547a15995e2fd17567ebfb64512b767f84d301fd14731ad6b1a49404904ed9be3319ba2b9953aa374a60b33901c40157345b7f4735699af67fd32f1d5f70f63087b7ce43c4de4b64b4f62f931ef1cd557ce2f976c7aca2f86496ab6acfc373d2fcda4616bb147a299bed43e0247508c8d569fd5360e8d6b39be9de95f2152f4fa2b0c68066de847ff98be68fe6b6b481ecafeab4482e6fd1c6be0143bd4da6e80450d0ef2c3bbc9016cb522d3cc0c6de595ff41c2451f8a453177c67bdfeb651d76515b0bf0a190bedb6ed627583f22fdcefe9f50d273895fe420b8f4f07291e15c13daa7ed97907636abdabd23c01dd5b39bc6034475d6b646c31194d786d510912b4764ebea031dd05b33831d4456399a0a294fcec131e8650b0f121aad1c8f1d86aa23d593c78aeef8ab2c8ac9232da58f3c2b8c43eb9e602039dffef204957b4fe7204447a50a00da404836e1b14121465840ffe6ee6ea8112068399eb62612f5fb436d5eb1e4e2635bfbf44fc5974be207d57e70d5a9f0a336766a3d7f8beadf415fa27ea61d3f5fb39b757b6ec23716efcd290f000000000000001dc49cf258e3611f18b3296b455bb30a633e5aaa93e6c5d87410a59e7f20b5fb28b294ab302951c64cab972ab30b62261cf9a0d1c6a4e58f66dfdc570c6a5981ffb69332dd6ef059d9fe43ab0be243326b3c7280be35504a6d27b7a32d6be10211c0fd647af9383f16dd0abb7f26081a646d83f65b9095e81063aa4df7d0f38485823549da4e6bf7d2747e5e90ec5087eb452a792abb4b07df516913e6b33815b1d15aed7edf9852fbdd74f343820e03a99e3d8011b9a8b058e0f58a306b07427e8e44fe151c06448b4a3142453a333a394f2e662839d656f8a74dbf01dfce1bb37ec5ce4a935ac6dbec1d38b0c867b461311e5bb4c4ec71791f820c379814c2daa568c45ff904e97d3c9ae0868c0d0d03f9a1070f82289e610173a5c631cc725bf99f8d67674705541503032f3a4c3c8a70523c1999c37531175e0875906711f89c3ec4aeeb356d840222a79bdce3fb2399e17af7c3b79865bb9c469ddb4b35872c727c7aa8576053336f10934b3eb515e757ad839dfd18d2b38769361700f6f5b48ccd0b13b8e12b18ead3ea53fafe13627aa0fd906d8c298aa701c16b2502ac9e9db59ac2abb6c206af36a06ffb90adada5315c473c7fc4149788d2c911800489d3aa5355030f2b35cb63edfb7d414967828dc37c617526c4e73fc32ee528ec82b741feeb531223b0f44dbb848a1a0e0000000000000069478f79f55326649987eebc8f286307d94ede5888c09d5ca9cee09c1a19d66d69139559b13756defa4bcddca1b2901cbd0bd9c29b16db7a62e05b79847df6fd10f0e909cfb3caffa702176dc65bef1b94465071b2cfd0aa089c5d77b608f73a0cd09d476bbf40cb68e37cbeb8cf82cbea17b2e31225fddf3a432002fd8b962f73d7c1f7e40b59eff6aeb3fc5bc3183b7cce104ecc64ff6fe0f0766ae3d474b8fe54e28606eeeb1b0d3dfb337200fee8da6fc553b5589205bf4898f4f0db3a2315643f4a4bb76cac4dcf9b0df0b0b47c4f65b07b9f5de0cae88c8858ea17d1630d268ba0929db2bb79c7c09dd1ceca47e52786e6f429746f8ae6dc89f808f6a1ddb6b3abc032cc7960867b0cfb9451f265abe9bd8713caafa93f69940cc11caa92c21b009297a2372f3a00c25bd59558fbb343aa073acb3befafe8016552e460175b34db5aff897811a9d5939b801ceccd3c74591c0be5114d03c8c0084a0ca59d9bc050902123c92f0683ec8664336bb7f1e0835a08f1b10504241ee86a8fd138617e51caa690606b525c0cc18d93113b41e25840f9e5a7a8c7507c02b708844ae3d5c038d36a474889f6321d0588e12afa7644a5f2f55eb53ac467eadc3b68d8cdee1f63c7915615bdce35caa804250d00000000000000b70364922444d64a6cccf0dd6fb009cd87a7e0034afcbdb198d5850f7f6a3d64a18db4ee81756a8bd737166e8322fd248479b70968eb5764432f8973d3a84e593d0864ed4c6bcd957662ba0edb61566b83515149fcca94477d1179a0adc41e3a0a9d334465713bd246aa0ce184041aa1287672a162cc82a11bf06ea6cf4eb69122abcf46833a1e1ae36039903a5198c21d6439a0a2a35a7ed164a99acb0454f6022ee1f6d34a5a2dbd7ad4757f0293b4c355079a7179852205d1f742b64d6083d3e502c1be6161db94eebc06ac97e2a0aa4bb22740107649f36bc44fd90f2f659c1b917700be7ca2c91ac378acb9e16d232ec0b60467dbd58edd3e65ab5ffd75b81b3848091595273b8d308bdc82dbba93985dd0f169a7fe698d811c2a8fca752a166651cb4e9ead4d9a9a3e5987a0aa6fbd3c7b2e0d03e177c2d24c2f26dc72aea7b0a48b00c0b6596cb2adf77645f56e63137183afcd29d3e5648c3686e77f2d69bb0c44b0b93cfcf3b93786b64fb957f031ae9cb07d2c85500373ccefdd3460550600d4076e7b5f37ca87eac066548d1cd374fad81738f66eeeb9b0489999e4536b37f5bf832dc48cfd69b892385e0c0000000000000055e335bca515eea443616788a69397cfa4f6794855fe927dee88ebc2f62566931f1d20b5a85921960c52f316d7c6eee49fbd095f4c3c3cb6adee95145f70c3968ecef1ed780bddcfb3336f0e6a8206a9d0a383e6275c8fc8ca72e53ea2863ec77c8de9044185fe4cbb8a8227e2acc5ea5b6056039627c5370ef31b23e26ef1ed867bc0c7921e31dde532cbe7997211b606d8e586036d3a404d270aa010a3a35e8c3e10e9c27cd7c1ba040ea136e5060c290b861b51f0127a7184b43f924549db4d457a9d922204a6f7210baa8fca26368eecf773aaa0893b93b81adf7c3675abd63a58aa006e538adb19e31d3a6cdcd5b28baed25dfec17e1ad0e6cbad2c51ba9b96b13154b386f444ddbb8524753a3649689b1d91c9498667b7c7b1b666c026e6447ff879b5984012ff71aba31d2c079e76bddec638414f9fd316d19baa3021441d785ec749d8d8384926f91376b9369434852dc06d914444ae759fb84d37b8ae9695a0b384eda4044db051611293858b56195bc1805a47add8f018f401d2498e14cd6f6e5b9b0e7ac05f159840c4360b000000000000007272a88f043f0fea35983ee1a8163bd2230c7ff1934c5015edbdbee473c3408972bfb64fdb7c07af40a8ce6df11bdb0a4403e1344070ffe7d69f52665e154c96d8a5835c267b919b429ce74d07190a29e3684e535372f305bc285b63124f50517218440d94616b47a05f50bfc42f6b179e8a5b26700836e7f6fcbb06475ed318f70976431bd8a365d1292861aee036152337e3400cb35895d4a875f493cf3f4aa1936fefe5f01c7d11869295c0e46c948a1738287b85c6907ea1ee1b3c2b7506637eed03325c0e1d324208adc12d850cace8ba5e5de442d6852e1db07f40ff3c8de124c1f6df7ea4755208759fdc2042b378c960fb4b8e186acb79331fb975f434ecd6c9b31cd0b95e7d51df44a5c3e24ba8c228b532eaf4d5d0dd8a799a306ea9c8090819a1bc8cd24deccf08f0e03848dd1d780f76e3716e855bfcdf29ded61ea3c307b7be3affe06ddc33c236d8c8ce85c34f29614065d04f557c7ce97b5ce26a9a00f1bc3b6854f0b31e7f39c3550a0000000000000031ffce3d0173ceb8d8e49579bace5ef9abadbe906eaf629c1c2e8993fc981b62af3df398b0dffe05745083da72cc3dfc5aec71931c15840ffbeb23176315750cdc26864b7096943639c35e6c189f055dae90a621b64001959a324be28165c8f7d343c01d87d31e7da561e9f825f08f1423568700910357b8ccf757db59cd52dc10e34bc7ff047137c8ea271f9380f4c30ca446ece58a8dbe2cadff96ce4aa97e0a7f3f4a96904e6faa1894273f3a93afe1b7b1776337e79acad12c06eab6c8ddbdb81c7492c3c5c976a986dc48e00c361af82964fa25c779db8d15636d6d315071d54a83b6fb24ced612305e83c850a0dfebbe88c9c040038e5a17375cf41a566aea5041f0f0a1b0903f87ded37b46fc94015343bc80d4c9193d631b988f9c8ecf88c46575dcc15f328626d118beed8713cd49fe105045f649a5746e828358c0380080058ea95b5ac3f3f15d2d7a41130900000000000000b802c521cc54f1de4f7e427d9f96a4dbcee3983d872251c14727da2549fe61cb94c5a8fb593b1b05abc4bea266e607b540401bddbcefa7f9dffc92dd081b683a55fe5f4dd6330a602cd5bbda624aae07bbae3147952baf4980f93dfd9d76cb9518b82645a91c75dd553164f26a6917d2cb4c1843d99b7f1f6a600f4f511e2198c17f207b6ab11b1150466b7d8a3af077bbd78ed4722bd33752fa89b8fa64314d6d608a7469adbf27275770be2b5b93266187c808274103a37763c588557481dabeaf88650b093b0552f81d72fd4620d5abf81c2dea904944852c73b9fd6ce435cf30339775440c2a4ba03d408dcec070b5bcf7f0361e31b7040d78637f9a83a49bd9e4adab3b229d9d7ddbe868aedd22cf22b990d4691fac078abc585e8e960deb41da5d7afc7d0b790d4e73d4e272000800000000000000a95ad0d6ff74d429531fd5266ed4c723d2d2b434f99a9988d21b1d1bfca3dee52392d69a3e9bb1805617f3e43eb6233fd8a316c50a14e7566774edc23a81a10dc70ce61e1e762151b15750283fbec41983890757bc5d60634ee06d3fe8f932cedfc2e059c9da62f764ebfe7e0c01212557d249138649d65259b0190380883fe44f1d0cdb6f9d555daa59142bf77a38c1faf258220ecf5bfdc83d3e0134f54892aaf330f0638975f679164bd83470dbcf417df2482a362de64301caf872053935492631b476e7ee506d55c411f9816ab901f2fd66a016c6503657b1a7ca512f19dd9553f0d06e358fcb05b8e5cf78ef4a1c01ff39e4df93a800a4ec6358aec222699cf016a278851bb9cff13adb50f81207000000000000007789afa265d713fc274a3d5e5e0513de12cbb2731c2e454b7f59bb3a7b62f20a009f415616d9b56e6111e514a6d466f28a8f69a6abbe0da3aeae0dfadd2d77591fe1e40941f14234dd4217efdcdffaf42a0b75d3baa8aa5156d3af5363653c33b2a92144382f021f2418a4a38d22305739c4f6bfc40835dcffdbf11f042564fee55fd6f53224f6bde6a127cf15f786018e56e5506550606e2818003c7c934c6cab19a37891a3c47630890c9df91ac9fc5b2b738139784aa7f685602594d5a86496deac2c402051ee60982e92e1a830b5eb0ca8460a9fc1d712cfffcc82d5c4c5f3b7732587e505742cb9233ebe5fd31a06000000000000006828d30d57df085cedbfd0e43f88b2457296a3596d531849ea38602e909cd7ea7154edf9664a18abb0030921ce314f403161663e28f60e6e8d1f788a9767702aaad97652907136ea8949fd3b18e21d8caf98f354c0dd259927a1bac6ebefc249a8252ece95557b4fb36e533a57bb52a7f188c3b3ece6da0d3ec7cd718a2b1fc57a88a18eeb5257d4728226c0f2d0ed488a5e03f82836ee099e242e2681af72f425e7b7f277ee8e8bdf4e46a5a9114699ce25f7b2a58a96b7195433a93e36a64c9d50245323f4f53e19b8032458378703050000000000000046ad013912803d2c14031d32bb491c5ee458330670bf152dd1a3b4237e56816b337cc253c1a074e77f0f1d2532559e1ad2b4eddceb6e34f63b66f7b80d754f9f475493044c69257d3f20fcb61e8026ea3cda3dacff9bc05ca9f97f4dfd32637289a2ab35faba9387220131eedc01cecda23a795fbb4d131b479b45eddd4b7909b464e83510a2396c018afa240ac48bfcbdc746006da81a9e5351d2ac32a1cb7cbbe3991c601e6817bb4c4e144e72aa34040000000000000041cbc3e05c8a778bcd956f4438db2a519d137f7d6fc4404a2ec59c727397f74c519fc8dcd2b71d09a69a632777eef5be8a2198c0e23b191cdfefebb4f435287682bd7ab8dbc5d1935cfec543f1b62a9b22e8463b928db659f03806d12218a67ee86d75797ff7594d421d4934c50f7b3c3899d5d5028277af5a3bce44223152c0d57cfe15258ce2591023e82c825821470300000000000000f9128802c2448230bcc6c96e9084fd3f82f0bc1b79852d1dc8b071829facf18188342305b7b4faada2c3126c0a7211d0b354782e20d14df2801aa6e52def05371a3ce1ed2808dbe80c4c822a7510821bfd48af55b583c493bf40f778d867b4a660e84b0e925f855687eae53c6f7a131f0200000000000000b31a1f1bb2e8d1a02e27542d49fc98cfff7a723cd2caecc7c1f391f04a11a743f939b779d9cf9224c919696531883ee56581d55c2bac010280840213032d97e204f142161ee9901da0d18914f8a2e20a01000000000000000f667e7a314fc596be31a2c67d735d7b6662ac891931cd4234bd378581faeb039405383d97de021f2d91a4113ee404329e0c002d640000000000000003000000000000000c000000000000006b0000000000000015943a18a5aa741cba5bd65af9e49c37f0285c7100000000000000000000000059bb4703d183830e024e4d2a024e4d2a8cd21200f5fe24662e514f722e514f7225d4f00ec514f344728298090000000028c4322c0000000000000000f1bf2b2f65cf226d0000000074f25239ae33674996566b5e00000000000000008f9a731f0b0fd30d6dbdfb09a2fd514b986ad953ed6bc55f11bb2a779dc463582c3b5a39f99fc3077e02ef2dc9a0d415c054614039c0de3ac5f5856c79d1163e19bd256419bd256479d1163e9f58dc55d46c8526e170325d88bb552a59960c0346b53014284d954e284d954e46b53014c69af458e663235820091939167c5b42b04076343deb0c3397b43b0797b43b073deb0c336fbbe31bb8e3bf2bac28dd25a874035e00000000666fca1a406da923c5f10b467881862f81ac2f59ec663972a4a00571f11e5f396ceead6402305d0e466c9216547a7671547a7671466c9216dde0b0336d00cf3bdd61c44f1a71b416000000000000000000000000000000000000000000000000000000000000000015943a187d6df02360c62839000000001551a219e395513812536c3ca81c371525000000000000008752982920d2a6251ec00f310000000000000000000000000f354619d9153c11e7076a19e7076a19449a1a1a9223e04150d925367b96b70fc8206f3b8125a53e7e51e24e4db9d257dd19883e000000000000000044fda017f78c9c631b3bb5152db418261f7b5b58772ca04ec6f66b02f4d3f73e78020c6ae4359a17a9961604a5640b09cb549c6583acac1cfda2b346435e801e10000000000000002903ab7069c1711fafe1a12c44bd6110b63b991910745d609ef16060b4da8d0e2e0f4336c5eacd0bfa7951733ede5833b88509150d20680985e2ec06a2e9f71f100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000000fba3f23000000000000000000000000d492bd2090c9722d0000000000000000e339e2598068631900000000000000001849c35cac8ccf0e000000005f22ff300000000000000000000000005f22ff30766bc21522f8912422f8912492083429552e5d413fdfc01c27731c138dc23605597e7342f00cad5b52f07259133e5201000000000000000022f8912408000000000000000000000000000000ddba991f0000000000000000000000000000000099370b59080000000000000029bc90275c2b943791be3a37810b187287da0a39ccc92c5bbc25115029bc90270800000000000000000000000000000094fbcb5cd2a15b6c2a1dba1d526815506f7b3d5514804a232200000000000000ec8d695dda9e7b62773f48067f3f977779b00b39c3c4e3168c69f52d4e88306cc1d825731248a1517914ff701c6f23279ee46b70e008920278ad1635ec8d695dec8d695dec8d695d6d283f526d283f52ec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695dec8d695d00000000ec8d695d1400000000000000ce1be520d66ac26b13b0115e91d6952e7f268448aa175277d50b3938aefab538e9eeef171ba8a20c8f38de08c61f9a20000000000000000000000000c4f85960952ef80e00000000afead85a0000000011000000000000006d97283590d392d43d8cbc0fa3e75826cdda5983bfcf6ac851eb19d98b51084ba3fa3aa2377644ee18078c765886512868a569894000315be4ffd3d1682ba41f832d505b6114815041eeca7a9288618ded4078c19e59e7d8c5b60d153d87b0d45dfd062deb9b1de2ca2c3e3f6cd3b0fdea8185f700af26ca52cb86c7910d3cc74bc9cab1299c620d5792c69a8f5bafc71d019dca11c46bec2c5666d9ff26d3c39e196d5eb9b148792650036ea77ac13376a46f6c402ba3a219386746b368219ee86c9a5c8c56035b4218513bc3bed6bb7e3e5d0ba6507f6c7706e3db9eca5d2646b8ba0daaf3ff07d323af93acef59cdec89b7836e37873674e5c37cca7b8911d76b85f1f822ed0255058678a245a6874dcc21214c1ced5ad38caf6f945a9e9ef6f675f617f4fcbeb8e982de5b17c9f3bf1902d3fcbb853e35616ba86baeae047ff2f0b9b9117712f18a123a7ff74b8ccf269aadc7dbdff2c5f19ad4aa30e15d8e07d89efe5b500844a1246d2d30e78916a42c40c069f71f79be9402d52f5660705aad993cfc77ec91cdbb38f740248d82b9be52a489007d8308b8ecdbc942210e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000fbea51520897f060e921800fc76f6401e1784a6873b61501f8b5af6d2d56b35a095df1649a9c174ebfed5f11f010650e2fe4554bab827559b0746614ce8f9c35395fee3e49071f04188d5e293415ea4e60a09d6d60af263a3c6cbd4d73fce1343614e91fb1cf5916e12e484fd3430362c155c460026d4416073242261684791be6e9280b8d93fe29317c310923b007106792ca1451e356515749990d9386502897b4b627c0767204285add083e7c0c6fdc894c0976dab13d63d90549e655e5226a59612b8a42bd1fa70e7a631134b21717669f47c5e09f32e6d632585b5c814f215bd6531843ef3f0e74834f9fcd89063db98e12aa270207b8d83753614fe65bf797d5020aeb2a529627771da1350358defbdd267c7f4b1b313a4b0eefdc846eadd2bc5e7b4fd963cef2b72c4843b526c48e4838dbae7266764f4b5f336ce455fe77a24f95bbea4ecd7b415e70fc840f0020aa5f0fcaee640c2c1e60aea49c11c8efa550b65dab68bd76b749ba616a286b151e58153bd1143aa3f968568f8c63f1f3a83d14fa8d565ee8702e9f3d0e390800000000000000c1e6922ee8a8493b368bbe745cf1845d0f92df66ea7099431b440d0ea4f6594c200000000000000063b21b41997c4868747c940818f4ec771b7f0357a871bd09f2c9a70b1a58e64a50610c1a32270b6735ce391dd0d671268269c6322a62216e3dc823182c96d76e227a121bb79d09404cf73e7032f09b5d64aaf122ff85f9505968dd4aaf54205cb156a0339387bc52ecdbef52c24357285caa59178740f205e2dd802ac5b7ee3d2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e080800000000000000e2a86b1ecadd823d6ecc2a5256c9551d90157a090d409c0790ff8c60e359134b080000000000000022f4164717b1822c5fcec655a638336b179bc20298747c07db4ff10c4faa946b0800000000000000b6999d3f958869628334ba60e44fca2f7e07904195a0385ed4fdc753b6af510408000000000000000532541b5619575fd90f2100ad13c302cd48f945f99c2a6132b6c3688ca5db1b0800000000000000309b09288f9520039590094000d365567f2bf95d4bf1373e0a90643fde92646e2800000000000000f3077a590faad46649436a1f5d1f3451834ca63515e5891840157f6073e17125698cb336857a5e6ee606ca13686d4a4aa0aba335aea00e13ca95270d04e1c13107b6de365ca0e65ceb9b0a6b0d864155eb8f8c5dd634ff60886325544c3bf976d0e14767e4d530050f3f5d0d497cb86b4daeba75d1eacd2f4acb6875577cd6661c2a991de2fdc45104047d750cd36232e2afeb12e13d6861ca635d1abdccea1111000000000000004af59a3ee7f3c30404d04db6c50309349ec00f7ba19fdc43acab4d0e04281f3b430dc5d4a37abb9aa4e227e8aafd9835d087186d81a02de8de03b02a74381c6c6780c3be672b18404d76ba151d0af25fda18b3ec8abff037584cfd5306c4cdafeb42f296b179b09977db30c633eca34d83c1b060d2907a3aeea320a413211927f2e5e37bc20e8d48832d3784a6e5eceb0362c9aa66723970cf5cfbcafcf3f128607c0440ef104fdbc063332882a84244bfc1962ba02cd30d4b40f673bbae232fe63d983fcc3b73fea872d057987ef2f88612bf097b140393853bd6fc935b03f688f59ae09979a0b407100e682bbc83e919be005a81bc17bf3fd58e9e295e797ff57021eb9a8dc7e8f3bbac3234ee19ad3706d157d7b45fa599d31db7491ed414210d033b4bc7c4764a31cbacaa452ee56ddd28fa3bf4c243d366eafe3e235158cfc8882f1ca78e4cfd37a952aac5573522d7f54aa5126790c7eb91eeaee19b820beda424ea2ee515e02c49c0580d205ca79d21a4c3ebfbd2f2a02df76c0ad53dc6d67804c50cc592c120aaf335c36a3df8068673bc8ba805de898a4c47de14a7e091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000003cf9eb6397faac6b532a207261147f1b258c7449eb8b7514ac61b8484148de0c08000000000000001e1e16102d77cc6db713b21504d53308c0ea257749241c1224ca9b4e7a5d68250800000000000000dd4a051fd7cec5685df16051339a4354d450276e46a7dd09ba996953db12031f0800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000003ef9fa60df1e5d14b810e96eec667964d24a7576f4085c683dbd153ac79d79000800000000000000f681906cbb14831b07465b6c8a989a257bcbcc3583a43955062cba321d460c100800000000000000cee2dd1cb5ec5277482e3c5c3e2beb139d8e884fb3afef04aeadc038cd3f9c140800000000000000d51e9a710ea73364ded7112a73275d38ab14e94c350aac5adf4cf73f78bfa121080000000000000082bf0e0aa7f0f55438ab62497c649c4fae7cd547e305d857e4842709d91b57000800000000000000a96f520e1b21727293aee32d8f19c51acbed9e1aae0c22610304eb32d1478e381100000000000000f914679e1f6ba89d10548e1b76b90e7ed060906da18cfa1c3eb1cbc5fbc6de643148ba7122c0212ed07ff60eeb20dec6c4385b13e63e1ccbfd56348e31f7ce055c8cd7f891bc2d96bb3a4bc0ff74c0bbe5480d948b3b48894030ed455b6395f13a15629f02bfb690cd29c260d79107e1fefbf7817cff8afe90dca1c995495b7d124527c6afe7ac65dc7ecdfb7e0c91cb28817ec2287aacd4ede5a790010e34897e46e7c5d713c658418135062cc8df8fce4310fb1f9a4154fa33ccf773d2fe0b671b9dadb39f04d04a07137601bcd7bfca422fcebbfc1cbedb0d809ab6a2caefec9fbf7c37a1f76e262faf56938938a22593ebed64170171084d14e70552ee771e2821cad1ff1bd6f067fa9fdf77cd64e5078f96e3b5a06b36beeef4b3a6805b884dc83086e2b26754cd3a9fe09956c90da66010f85f4e17b65407670912e858a6ad0547fcd086ee3c0267a6c55a1327378e11d4d24d14654f02ef3bce78682ed944ac4d6057fb57a22679bc0d014452afe2a64c5cc597deaa4155629d4d5e0e2d00bb300dfceb8cf885cfcefcfb3f00c06bf98e8acb5660c6c55c9dcb801252c5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000cdc12f1b1d62ae1509a5e671dd6f3164051be67400000000000000000000000090d7a21479bb0b248ef528198ef5281959e0535571b00d4109388745093887450a6572019a93c308575eb63900000000e2b605510000000000000000508ac818dcb07d37000000003e489b3f135847311f38c31000000000000000005f654b0ccd469b01684f305e30742375a7b27e1f353ed05c16bcee5e582a3a2b436cb926e139d25aeb9cc44b3ea929371c9ea86171aceb4b81d2b0064eb482325eef6c595eef6c594eb48232fa557d049923473fa35c255af38f331c30c64f49dc947b0f476bc928476bc928dc947b0f99ea40168be9373473d405622d484c52beb3ee1e686c3c6fbca6f16fbca6f16f686c3c6fd5a53246d9e11b42ddc8f651c4e1126f00000000edc29656b966065c55253133c92d60030ce1183ee2483c2340f8f9493e536f18cdfeaa21fb2ce2397650463d26d59e5526d59e557650463d7fc071334b142228ac48c40f87116d360000000000000000000000000000000000000000000000000000000000000000cdc12f1bef35ef5e700602690000000088f0b035e348c9411948f533c590f26f2500000000000000b8dff408a55d4b47a1115b27000000000000000000000000285bc600ac58a859433e6806433e68061dc5664e93e2185bd4a0064c8f0b7e553b274402d75cf71753e337326e4c5971a1df6f47000000000000000029d5262eef516000031484581de2ae501c7c8641ec1d646f52186f0c44d56c2d87cdf60f13e39338bd728b50f323e7520170347743959774f3203d43779e50221000000000000000ed8b2851874e224d6893e2347d1efc658ed91010fc80b24e9d0c634cfafa0067004c615de632ed5c50ddcc0ed11e010b5224314ae57b4f743035861494d18d51100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a5400000000000000000000000001000000000000000100000023000000000000009ee30e11000000000000000000000000a73ba22abf11cd140000000000000000f440ab0dd1e2436c0000000000000000886cfe0fe312206100000000d2a39856000000000000000000000000d2a398565a1097663c23b74f3c23b74f51c0261091547959dfeed1683846ce3ebfb0d93e143893547dcbae334812b4749e3fa83e00000000000000003c23b74f08000000000000000000000000000000da050d2d000000000000000000000000000000006664c01c080000000000000026794b16fecb205f4e118833c281eb1e0e14b71b544da9413c5fa63426794b1608000000000000000000000000000000902b30100bb1dc58dbc8e77258610d18bafe622fb6b6591422000000000000000eb522341ed5572969b1d25e6b60cf7582aa995bd8fcfd0048f59d05cd2df0718301ba3872fd7c5d03751119956b63494694821577a70b3f86c551700eb522340eb522340eb52234eeb73a03eeb73a030eb522340eb522340eb522340eb522340eb522340eb522340eb522340eb522340eb522340eb522340eb522340eb52234000000000eb522341400000000000000e95cc804373d214677315624a968932632373d02c2e5da2b408db7441c95506c58054926ff0766622d267e5e4b0b0a37000000000000000000000000968fe16dc42deb5b0000000029e7e86900000000110000000000000077efb1b2d3df1d6bbcf752c688ba48bccaf5fecc35bab79902b280c174c82d8729da5467002232c642dd09eb3a8b67a157d7bd8249da06d9321a468b943bac70d07fd9c9a21f260334b90b6645028775a96fc0a647a0e2e74c435b675199c1371c5eca8f99633a8898db9bc4ca4c99d4981fa817185bb883d7b52ebf22e96d784f56a5c721826331cf427351160c716e23e4fa78add0047f17e74134bf8f50e27122c46031af3b80d72cb04113a46792a2df538f9c784598d5220ef3088bf1778700e8faeb6453e744089de389fd3037be75c5860aefb582cb97ba110808c974b0bab9af474da806c2b8c42007ce2bca60465c4e94b74349238ae065466783097efbcef4c4854c2760d908e3bb7612715d9ea35d9353a3142244f2d73da345d618bf9309ebed51e1f918d9736a2815e03606e2e74e3b928669e9099ef0a290ed11424293aa8a3e45fca88f16afd4411d67ef79d3f9314b99033baee9f20992932d2725e19bef5deb350997a142422413318e67b71861f17ad60b3516f11a19691352915bb8d58bb737b5f8b71a80e86515a8ea255283755a95db5dde1b4e1d906db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000000036466175da100922da077647ded61bb8de54437c496068d1892f5093d6395b0da79b67aa061535573ab72ed9422a1cc6eb443ab88555104f606b6f60f7d52b8192e04c917efb6b978cbd74de9b6c616a545b0743302a579c6a0c56ab698f5e1f28d941aaafee34c51ce8690dbc3111d0ecce71a498540017dc931fd217c24dbaf2bc5ca8d3814de6146404ccd3cc71a2495a1d04f50b456a81a11d18703d383eac46322951f667ba1fd07496b81d606e87ee2eb664c53e49866d1fd0fa223efb1d027260371c3df7c48b72979a1e633993a8414f9ee74ae8b200285f758146145aaf5721312056df2fd72298a4c3476586d85de6b0b06b4b3f133b3d969e2c179cf37411e09307a400a703c434ea30a6444f0a93ae821217a29e063a4340165dce270d133a0a3d2d8de74312360f3c439d7717e3049d292e71cc4ae6451b6b59c6bd007c5d892d79aef329ed43914126110659a0cc8312bf35aa2b0886f94abccd085120f6cc3698d3692b053961604c73b5157c58f729f93eb028471bcd668c5f522e2110d754582d6c15ecae883e08000000000000002749424d6644064a9eda0f2a85543628e63d9625d0939b6be9056475e326cc092000000000000000ca47603238612c5d239c0660ff04fb3840609b6bf19c45399e97d86638c6f3214f37f14cf2d16b59797af774c48dc81aa1bc8d4379e18d3cecfc4601a7d53e173428ec2856e56024b1451d6ffe55c534c4050e25f44487330797bf4be23bce58ae1d9323f8321808dd09d511734c96203f61d92c7f2fd507266b150e252ba4192000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d080000000000000017d7293bfaa9091c480afa72b691cf436dc7e32226aa644301cb531181380a4408000000000000008bbb9f684e193d73754d3548e5c9792292f9835521a79a45fc2538424f37f05108000000000000005454722c9f612904e7d87a26771b392181e2496826609b5f9f1a7755951afd6708000000000000006fde77580b89b0332af7480040552747ed4419606c890914e117c419768c2a3108000000000000008a22bc301168a71841e44a5891e41c09dedfbe3f967f3e3955f5ff39100988222800000000000000f77e295403a7d23fce55f11bf6c50c4ad5b409385d55e92009b64e1c3b79256e9aa5ac29af7d452b04d3cd5bca5a82636f5d5b31b31a8327e15aae75b877b546b3ed144d49bad228cdc81b4f03c442286c2cc8337e45c13f5aef1a5b5075f04365a95d6c4d5f7b6a60402075e2752b245f05572ed6a41c4d1789f7166be5fb0cb245a41c73bf3856a050631cd1162b032f9cb9323afe8d662478f50b551fb8151100000000000000a043cfdddd12109a01a2ae85c2abd60c819bf5244d22e9b3294bde9a4e434410c46d30fe3d6bd770c3dee9d78f1d0e9751c22d9788e89c5a31167606c1472fc59ec23cf9fcc4c73701279fb605a9de90a3fdb0058590765dbe9c80d0105e22127093c24e87cc96b512dc58af32cae8cea707e08ba22f7854f51e4c3950aa2dfdd1d101abf034b429bb1d34a3496e2a39b3314696f36cc7bfdcd5e914b15cd1b606a8e6f5aaf1e6da2882c8086a25377cdef9abdfd0a801a0562da554c56e7d4f2dda33465033b9a87e9af44b7d18ae71a776a31b4e568b4749fb54ca4e3c854be1af56167ff6820293529b42005dc1aa941eb7098ae7f2444fdfbe0aadb143a388a28a40fa36e9f30c463374c880319292e8e0fc9a51256e8e0c5f4397c8da36f1f16610d9d8f7dffbf35b34514bd3e18d2eb0b9e05ed2c5acb82a6cca7e53337fea33da214b38acd511dfae39680d77b06147cf0bbfa1a580957488b9d5dc24ebe1189f66c3250994b57efda0fed032ddb744756f81d269aa4ec8be9c407995f737948a84fbc81938d09ae1bd31b49b105ab0ad65f2ab56e606a30d4541db17b0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000008aad1e1ef30dfa1416a33408e9d40654381e1b2d3db82932da4489268466882408000000000000006df38723d831fb03afe23f039879f243a036dd5c672db1582406611f82952d6a08000000000000003ac6942bd0d7eb6bd1786a2d917e54765b9e1710ef2c51427b3e8363a904d870080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a24450800000000000000f05b7d6aba5eee7408f4ca1b3a30f56f4419e82c955af11ee58f7d133e2f591b0800000000000000aaa222082bfa85039170f51588690c135be6e24804aaa175008936423fadc677080000000000000036c25f74ddc4a363a388db44aea7e268f5dcae3049bb2a6ee5678654723fe6680800000000000000197ae9550a36a40142d4bd0646f57f0fbf9adc182adea812863b2e220b9f6371080000000000000025605a527fab6d2fa0125404b594295ef8668c722d95f3558cdcf61fae9a0a59080000000000000056b57875cfc61811b7b34f2dd2e3430e12726124dceda03a41e6c540f5eb182c11000000000000008e717ee34b639d55bc5028cf703d9e5d970c116e8e138a6b4ab3fd2e3527522a58de0943c1b6cb74b9f57405d05ceea96acadd11426bc151f3f67b88dae25efa9c3854a1c425fa54a50307ff23a207fd401012014e2f194ab2f9c82a3dfb3a445eb26f4bd5147e5b88423d1d34aa791f44a77944c8a49a29aaf9b820038988275b9e3fce7145c7a2e1184eed834b0d069d1c708b6cf11b717f051ca7ab82624fa5b046ff6c931ed5cbcecbaf11847dcd2099b48d855cc4a3489acaee3f1ced99f4756db928b4fb6610b0e6ecf1e1a32d96c58c16aea8efd3a3868dc8b497e5405cf9ecdfe4e826eebc149f9e50b88dd5d4170b003e895b34a0b955dfa84e666a735f16e69559e07269f4f68c66e291ae54d35b2e654002683aca583be31c550dab6063a6af74ca2d69d1915539c8a2966429661f80247fc4186c42ec764ed1ba1a1bff8889f106ab21a4d5ab57eda81fb79feb3a598641e5d1efc8701e0319de6c8ad75f8acd17cf106f5bf94a0ae69af4e5c176319d17b0f043ead6786501606b4f82b86334aac189edf1ea77c0ca98063b6aedb71f5671bde129d96b3476b6b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000002522bb14a77b015adf5b905c68f9136f3ad9376300000000000000000000000079558617974d086d9b29656d9b29656de5d380417267530034c9185834c918585fdadc307cdd0f4878cfa81e0000000065a4414c0000000000000000b624514777f9d4000000000089759416f2c7b661c4bbb90f00000000000000003eab742054fdbb2958e2d3238ee10f27f51a881edddd44639148601accb8500bde8c423bc59d273148323539b3833d069cd5da2d69b07b1817e6c13fca47b835e512ea37e512ea37ca47b835b210871ccb570c00fddbd76e90af5c732138d46ba660450bf975c060f975c060a660450ba1283a64518cd636e7953471bbf6b73c83ccca6f8622f02f24af020f24af020f8622f02ff22a843a09921c43de1bce614460103c000000003e7f592f62e47543cc664e6d8bd47d48de8c1d1732da513aa8141b4cfec93f749ea7ae222a8698031b8f18133f21831d3f21831d1b8f1813e1eaf003c3841e6ba91fab0c83506e6d00000000000000000000000000000000000000000000000000000000000000002522bb14674e4c6ae1dd545100000000be2e4105c45d5a01626a8236fe1fb60a2500000000000000c2eac7040694993d07bb9433000000000000000000000000dc56af6f4175b86914aebe4114aebe412bea642113bbe2597f1a395a2c023c02fc51f500348df476f00401768c468c3472f7e2490000000000000000a7f43c50d0d8862f83b68e5cd248b7666f156c0880944a4f3701f57155422b40e011185fde32140bba4d28202c200046e8653b28db555e0dce069e0cccec3f6f100000000000000023648e704f4546220069e018207ee145653d9d5d34a35f5f7342a74e0d481044304714046d950c00e7daa55c4e80bb09f0f33770b8a2b6185514d73129721056100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d00000000000000000000000001000000000000000100000023000000000000004370542f000000000000000000000000d5fd7a7034b2803d00000000000000006f678753b492f76d00000000000000008e13b2613e51a373000000005a468c3b0000000000000000000000005a468c3be7593e2524abe12024abe12008efe12dbe7d8318086bce69dee7983e9c5b9634ed36763b7c7aa652fa694a5fe23a8d69000000000000000024abe12008000000000000000000000000000000e5264646000000000000000000000000000000006824b528080000000000000082dce7501bc85e4062d85b12a520b75d1f6a3951c5554853237c226082dce750080000000000000000000000000000008033c407f276873337194a5e3b0da53a9f631308121bf701220000000000000000dfda5c9c2f9676f86dc30506060867ee29c01e20a18105d1b16e3195ca0e3063e2586d8115193cbd977a17169ecc47e7987e67192ec52a8645d93300dfda5c00dfda5c00dfda5c9f94c3019f94c30100dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c00dfda5c0000000000dfda5c14000000000000003e858a19f5e1390ae65761254e0f637668b70151ac82705894c22e601582062fba6a3332e2073f05bf1fbf44317f452e0000000000000000000000009da28a725aef2f600000000043fd6a3c000000001100000000000000bc3a9bbad11032a73af94636a081e27c995f596a41140437ff3598532001c2a1da3c02835774d2458fb6f43804cc5061d3fff4244b6e0bb6f92e7123bbdfe598b17467a6351ef2e34f51a80df0af84a26eb2c9fb4d7147154568c5931acf5ed841792061b37d7e7687c033abde025b40ed3e1979c6c6e8ca29fdc27fc5e2ed6770df2e1801317b26cf710967e231593b76ab74fa2cd9daa858c8c5d2ac03e7903581e8f174c46493373d6e8fa71f8057a1c4c8d12b78cc5be21f6084f1dab3e8a3baadb02ac7c1174af6fa4a3ca555ea1eec60569f4ee73cd83d6f06d49f821292a614566a3ed5baa29de3ee31565753e7e88b9ead3337fbf4709c91a11c9c047c49031f21b84efa80c9c61087745bb81069ab5e2f2394951a14b37195e6abe745ff4658ac148ca84b92ef7471f26f58bedee2136aab0b901255646a41dc2185c0cd3b370687dcbb6f55746b8d9766842046e6837c7abb057ed7a5be217705709d1f8977e8358a1f33dedb28aca06a1cd40b2ee142ef09e2bd9b1930c783e1a66a585c259235bde2c07007778d462fcbf480a3ce6f0f5d980afd59f9d5d67133dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000f666bf4f096bcd3aa2eb1370e528da0a7f19db43dc7b8528c639b62e41ae77776a6e8132405a743de36e665f93b2df2e2ec90b2a34eb325dc72e6f4b72a44d607d17aa2724bea03fec3db656aefc0e1909e8c1631cc9e224b1bd1475b3faa73ef831f35ef5485256e9d16e183a7a5768030a7d3498bc162742efb134d19a3d171fa2171927b30e1ca8691460b099bb23b12f9a333e5cf93f89971e724f7c9339e53ff83620489307e99b1e00223a494c4ca6f63b58a02a604dbdf110179e643050f2976440131e0bbabd462f73c5d912f5d2d8086cab061543056908a2f11b4f513ef01258d2d76d91d0031db62c5e375746ba5f95d19a6eefb9423e7c9a054af27d8f75edc00323f46e0065a0682939453f265a5342cf6585897d46b9fb6e5016d6d1117aad413b4376f8763362eb0502c63a6a56e9a84a5da127332d868d01466c6c40c616e357412dd811718a4c52f4e20a1def833a3795ac5d66f887ec72336ba34fca450a4d01005f6d63b1a45c774fa716dd090a532838a6673851af4502d497616ee9cd3e938fa138fe1ede180800000000000000f1268a72675260449b6f6d1884ebd52c7f28050dc2dd675050b2505b081b7f4220000000000000001a5ac863490cf36c66a861172a38dd602125db3c7831a277cd27434f1f322259fbe63e379df35d13508b81515cd237455df2786bc5e26b4f0cad494eb8d3753125a0622e6f545004d28b1e2a3a53e84fa2d9ef0d1c84d66b541d490f5b484e22080d9b3a6c289310c31f321eae7a5702165abb3d28ba7c4602d1b54d03f2f0612000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee5070800000000000000b696bf1590d5242ddb24260118c36c07fe6ffd343bfdb24947d00a0ab37b590608000000000000000cc7a2441af82f0554dbd7344e009816fc36db604c213f019b1a4834b011106d0800000000000000e81e395867349201f0765061d51aa96d95efec753f8bb111d4732d6179c8d5500800000000000000919b2d37ef4a940bcf13d12c068fa606b2e19e7237553330b736d922c22b363908000000000000007e67840fdc2c4c1caac1c61292f3f832226e3a6cdbeb513ac9a138454169cb4a280000000000000061e910366692042a220d0f06464dd62193aadf148016080f66c4841440d74b13a0f8b4073eb84e636bf9f64a36e66f148f65a9759719734e9d3b965b7039386ab7691b4b3e6ba71e36cfd5657813c00a96f66f26b798b739be93e33239810829c5a95f1c17c4f43166ae1e43b832bf107da35425f8568e37902f1c40a96f9c150294a52735981377f72c933b524e0059efa2e70ddb2b994eb0fca74b195cf3751100000000000000bcff19e8384dd51ad97cf4ec7dd6760f1f1780f0478a524b5b2da6ae8fa9f04532f92eaa562fc4d254516ff6534dd2ab1578486f946bb951438035c9833a9bba38aca11f398e5d05d742184e296c9b7addb4b8779d4faedda16f925c2c7ce2b46daf8d49bdc784f6c29e9f00b9bbfc0694687d733fd99d860abc1e6813198530037f3a4b3e297b44231d7a83132f4efce4c82fd7bfa70015a9548eadc3dec01f8608a90826d8c6147f4d99965e074dd83f6b18cd40fd9b11d72dab3e97860c583ee7abf5922b12547360b62925a631e980e47321a39a40f2312a1a3b2a32753cb209f374ef54d413f97b62bb2c780d575a1a6b1b8f7437c1a4127221f518711f6fc81226288dfcb9ffa72696cef0acf655e21df3e57c2427508eab7c033dbe0bb36a2084823747c40cbc0ea1e3bc0ee59dfc9e9223e8a64ce877ca19e43667ad8a370f376fc156a3a30e8bb8962ba00bfa2f7aa80556bf2f64836a2ccdbf12c700634e0651ccd1fd40d9d9a75104177c3498c6937afefe696723ec0bef39e51970361858c64ef784e99a131dd8d7372d8380ca32e5cf6b833d38e00ac4bb901b02eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000001e762b7187f1d40c644a940986cebb1949d65a383e1ad64a1e3be450850c6b4608000000000000002841901109c42402e63a821bb400b04a719ff304241a1d035ba96b200b5ab26b08000000000000001086e8138c9cac3405a86a3e0a0041546f55672e0aa3390e99b2d677f1c8d0290800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000009514b12a048fca1e99d3c138895cb64ae29f3449ade011431dd20b1d71a29013080000000000000006524e0903b87f678b2bfa4a6d818939e4bd044ca0931b1f9a147477160f7e6d08000000000000002a3d5042b90a9e477f47a9214a9e6012c1b7e87257185410c50ee2435e017a2e080000000000000061327625fc1739603700482091a94b19fd49064f5b81f0222674ec6cc50120140800000000000000ff701f1418e87155054085696dd2ee64dce9111b43eee742d5b5471c5d1eac1d08000000000000005db9dd70b44d51219196eb28179a9861b8d0f262a080a36e192cf12bb819806f1100000000000000b2b172b2c0a9af40aa32ba7d58a5f4922e8c2686877764f3f60a046079b6b66423e91cb71a53da28e15fc8a05ea4001bf30c4db019c20a6c7d85788ceb9a347fe76f7367aa75b85fb99a499ad67ad0a0f72d42b8f945325dc94bfb6b7b344fe6d568fad06a7066ea16228b24a71b2345a5dc469bb8d94a1a87ecfd3f01fbe8f482b4932f890688648d23cb4e7a22e61c1b8f161e3fc536f06e497de7ddc775c5520bbe600a148da9c245cd56547e56d5b3313dd6327ad712d81eda82a3c6458d8c2a2a4f7e0bb1fef7eac37bd15c57234d201f4b152cfd134fd9c164f3b221c9a2cc75660150976cbbac354abfb125f987a39db3ad6932cd08ab161deba0fa8f01840da2f43ccab0dbdf55763eb77203d6f2ab9a7dd2c75457b45bb96e43c5aea9be7e1d06b05b6585726ba52a153863909a9764b28a748636b4f46c8c960a0c55c24120389ff40cf21a2849203e947ab1b90b7d27db42b2d9e3baaececf5a37559122f18b9e91bb1ba7a149a16494880613f9d903ccc5d59b5fc7e6072df3d4de6ef46e1357822b8fba5dbeb77b625b6cc57f3badffa6a49829af5a85120f5f2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000008b303552a467a62e075d582a1929537683eb1733000000000000000000000000fdc3e06d595bd551b3e19930b3e19930bc6b572092f8794d97a77a6597a77a65107ef44f22d6605374f5fd3800000000be6df32a0000000000000000d21fc13251c9563a0000000071068657b6ceea51cf0946540000000000000000c13eb7458e4cb40956cb5e53f948ea06a0653f2377cfca250e926c76447d115ea1ef3b4ea700561466039b3903f2885d72e4a534f41e84231833a45cb0b93558c586f940c586f940b0b93558bc30e03f87d77c1faeb2d1499d1bfa06a2a0d039d19e03681e9b4f5e1e9b4f5ed19e03685599bf4e7d3a504a1c4fb61c7109f01b9b76f101e0299f24a9aa476aa9aa476ae0299f24c9d24f4e5709db5a21050b630a570161000000001665124b6766e81a5b865e0d9a33f95ff66b7b07f6a30e275d17e842d2322b3572200e154118ab2c1ba54b46b9256116b92561161ba54b463f49d2197115204991b8272049d87f0100000000000000000000000000000000000000000000000000000000000000008b303552d0fecc2b0365cf5100000000f2a93555c0074139383dc5639d90012125000000000000008481f01df673ba0f0fe24c4c000000000000000000000000a3703843b9e214248e896c418e896c4134f7834b01aed205f26a5157149fe962cf2bfa1471c62b0ff483f0145823400600c230770000000000000000f10a48229b85796072c4fe0b3caa29429030a65a389ff44291adb821f5b613140a179e560878ac545c20d9361ffa571179def12cb8e74f743aba5e24eec0e31710000000000000005f2891084335593c378fd902f81d8a1c0cd8ca15abf7af084a686057d23ed42ac2083106f96c27608fd7a53c5ff5941863ff5460da736a4227580a3800167160100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f00000000000000000000000000000000000000000000008b679b75000000000000000000000000a88d343a0000000000000000000000000000000000000000e3d9663b44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a5400000000000000000000000001000000000000000100000023000000000000006ed39f5a00000000000000000000000004e071626ddeb5120000000000000000a9693e638f395e590000000000000000fa97b16e75af29270000000042755f1700000000000000000000000042755f173b0d110eb0bc3a35b0bc3a352db9f175bf691e0424a9f605719c4254ed7ca34a41d11d38c737d54c469f8e6043e99a520000000000000000b0bc3a3508000000000000000000000000000000d8587c1d000000000000000000000000000000003d1534060800000000000000308fcc2474dc12403c87e01111b63869dc901709c9939620113b1703308fcc24080000000000000000000000000000001023ca6085c49110097bc03e637b83145b08110ace95333e22000000000000008271e8453498c0712e9d72059eb095022c475e1b2e47002fe947fa6f2000785109732b0bf47cfa54d0ed255ffa95183a0b588d583ffc475618a1584f8271e8458271e8458271e845d52bb85fd52bb85f8271e8458271e8458271e8458271e8458271e8458271e8458271e8458271e8458271e8458271e8458271e8458271e845000000008271e84514000000000000007bc51057dfc1ca096601c907f48512598e84495118b9fb7160844d6101647631e20f314d43b7a120263c9062cfa54322000000000000000000000000e4dac374be6b602f000000004203c54b0000000011000000000000003c6ce5b89860099e1869096f90c20cba1fa6fa28fb333b73e3d286bdf2fa4a71f8379b4bdfec68a3765bedbe0004a41a0ec23226f485473f79d59395f08048e84778ffbbdf89d4899345d1ddb065307edc62f2e7c23ad4618fb0251554334555ecce54ae0e1ca5bfc1dc9d6b4ed775d1892decf0875a22b4228e9109d3a29811785ab913c155bbe3ae39fc24b64f3a96f48b9981444f449e92add8d66934766e07fa6f174e8f70f57a98f4e3bdb7f9704c705aa789ff94cd5e4b031accfd0729a6911e78b941d13dfef70aef952e8fb6ebaa57f83a9a76ba01bbc8f4b154aea62b18ccdf917a04652ef1f828516d625c6e54dae661a20a31a54a94b7fb6cd37eaae72604e6c9680dfab91903699ef2c89165f17224f4e559b954e0dcf6ec4c54a0acaec89602a7224695fce692d69e3afaa2c2551f6137950ca1d4c25b43c69358bcda1e13b68ec1335ae2df9e50386b6a2ff7023f5557d4ca9769d2699c56c1dffb2981f7427ebe6e1b99208f3113955dd42ebac20967dee31055234f7fac3a937011d2653fb24022ba4f649746acf6f19f78fb3c00198a9dd281125f57741435039e56f02bd36f85fb07fee01e423c6e44e056f8a4855de67549741647a6ad0948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000029a48475e95799407fade6484f2710564cdf1a1a9981d076c394fb60d258fb4fb2966838979bf100f87fbe138eaad25c4de7e95367639436315438437dc5d00d665b673c946086038c71305f0ed1b5763f710325c065ef5ec839c4355d54db6cc33cf33b62942e5cccbcab6626932d1d6ecdb93c0816645efab3404ce64d7906d121b70c8441e55a69a7a2165f8aca354666c16f1d0f604ff1d02e1a8544171a9053c20b4272e04bb5a4f654dda4731fd374c163fd0f3a4df43a89350516f82a4fcb2c6dcd959a34d9fece43c877d1539e8d8d72355209462b84a53ceb37d4060f98950315124472444e183b6ef0f569dcd9bd24a30fc411ac06f84fbe87e812a63f1e2ae4ce7f1a366017251f7f046d5333396709c58f018fe98545ada27519b8667b465935c24c5a68fa1c4298706d4a15491cd5bb3f5546affe43ed23c70ca87d074ea6aed8043ef6fa1310efbf5262517a6b8b8d7551282482016456ea54d595c6093c13b63b80230b0f87c69a24bb798057cc1ee747a9772d3742eb496011f2832ad59a0964b8291a71a5dcec45080000000000000042e5121e9e98ce2c36dbdd371c94d720b118894e22015c6ecdd593327b4f1a3e200000000000000045ee8374591b0d0e0965a712ac886a10009964290516fc53cbfbf5285e330a6793e98f0b765ae061fa70020c6d83be2b2d61802ea28eb64e59ca6c31e4a8071cf8993d1bdb71184754bd7f1c4199784817ce5b6f78976909103b5719f1ca3d0608c4da5ba79abc5f6b771d2b7ae1f94a2575ab01573c5532f4b4c146512a090b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f28180000000000000017d3f7400b7f6b71bf8ad116d3968c5c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dae3bd2726d81ae66a2596f1494f1b634cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000d7dcb177e5e2431ee5de2a20e7541760fd13d434027e2b1923f70c1309b78a08080000000000000035f6b04d22c67a10f3c8522eb90a343205208d5eba336023ac7bb1236a696e330800000000000000d7aa31708f6fe330272db71472e82212f2859010c10db624d9351309ac1312530800000000000000b9db4d48aaf32305a5e08e5edc84d80ea1350251c58964246c08643adc63cc19080000000000000093d25e150d6e945a43dfc743068b201c19a6294e2193aa148ec964740e0a835428000000000000006f59f44b93513f3a464f7c27bcf8c623fda20364dfbfb9778120180b1ff39b17ac687b17f34b0c6c2ccfd8332aa97e600347955938e5cc3cef6e1e0a04a7a2045cdf042c22afc0267c782b1cb5882d3647f5c715705257113b1e0c649e24332b84068712bc9b364fed10e14659a9b031bd5e5731e9d5da185ed47314147cf07036cf1c085a04b03545a2fd30adca0c5834e71315c9bd205c55106957de1d9c461100000000000000c5c73e18c9ac0ebb2f103c8a3df013a55e408a7080c28d4f1d84b41fe50ce7c878c8763b49706a0102c1d3dca46532f164b5530688434c21b3f76675eabb7ed31e379b8b26047204f8073ba6ba2d094d5f03383c79a3a415fe674332395253d01408c2887c4961420cf81534c9199ca9408f6019c7204789f944a8255941660fbb14e76017f799f7a7cce2feb79a7b9dbb60cfd213834992b614df987ba1785c059787647271109ce957f8056e87b88ade25cc189ab9111f323a4f7a70687d229f34b25d4951dea63cf09232c9c049fbb563b93dab2b14c867540ef2d353d62ad9ae9a2e03bfc0866022c58bd3d48c43f350a24f5d1cfcded18b4f4b53848f54a6cc19f3e55ed2880e45ad637b32271e200680b38c32237dae23643b9c7bed9d706fc5108792d91442ac8912415b8f17a507f1178d63f24f4b6baadc7f53c9b4f52ae201d81115949a7bac6f976faaf1500b8dcd21595a8ecac3a07ed810e1e6be1cc8852c300d73ec06a28f3258a112411f31b17d91dc27a2834bb321d2605b983f3d29c3609af3b517626e39a1b483260114fdb39c6a0785f06d9e0a2d733564ea2c9e94666fa74cca6e1f08351a73aab121069e2f114da667d03ff23eed7db769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000d0e432105acc25186253694a4a9f6d557eb017408be1563fbcabb473ecee642a08000000000000000b5dc04afaf06c1314bd945c58802720d5b36c5dbaca4f18712101729c45064508000000000000009a52996a5fc6284a028e660ef976db307f5e8c653760d22517320f5a2a48504108000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000df381a571b907d58f3ef814e8cbf872ca51c3757ea877d12c19b6d184b89fd3208000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000e9a11c5b6cd81d279ca1f45ca1082642ef53b92c1a821f60b383ae775bd1565e0800000000000000a4ca6041c4923c6cb274c0724c4723290ad122756cc95146ca1a454bea7d796108000000000000008397eb0e00044468331d224a2a9a3317afae4b35378dda73a7ee0351411f93120800000000000000f78d905a666ffd00dd4a891ec8f0c142a186b82b326b9518fc20ff5492501c530800000000000000e8de313091f5624e02c0c025f786056f319753167512a24a6937b666b13fff7408000000000000004a6ece629ce1ef22c697ba5f92b9e45068b69e6f2f11b74e569c3564152d8b1b11000000000000002fef1e48631f853637de5350a0c4644f532b3475f87422f42371439d75624257b3bb555cbe2dcafd07fa0e0b0ff8f8e0c0bfbed38fed5daaede5fb07e19c91b95fb5404de2073450546e2ec6a7709626bcef88f5fb916bab3462d4f00591dcd6fa68179a5a56df752a2eade8636bcb3b82b40c9aa6abab5ece774c54a6c3afbc89f1c1a7ec8894ef2aa1421522e6f34649597e661f953bdb9640fae7d8ceac0585de6997142a0285eee5d40c6067505941f557649021c32767a4f672f9cb5d29233c200d88614644f81f37c3ed4d9885623bc7decb06db8676ea482999f6c54ee1a3e3b503e5a267e3579f7d20bc8cd927b33e31cc8486fad8317dde0c2a005fd1396799a873402539a0d97c0474502d4d0d57e7a73c9a139c037d6c582f873aec358b1d8cf6a8b529e6faa361bf8b78f28c43ba857676005f6320c0f64bd98eb8443796377213f09861e669d4c63f1e6bf75de6cf23dcbf74ba57c5ea7dba8d41ac1d52732c9b62b4705f2369a28d4c650df1b2ea991d6de0720d52258ed2b13809d5493bd3d50d356266bef4b8efcf35201629477de4324407a59822ca85b8fbee66e2a49f0cc41433dc658626864e2b4f41b1b0e0f5dbf9a01a45b7881914eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000006b7dc20d14a0eb6c33437a21f329870821a4c2430000000000000000000000003d24b92b02417c39f4f4b070f4f4b070626daf16349c7762dae6ee14dae6ee146742720b7389b4342afc8a3c000000001a9c2d75000000000000000092d04b3f52e2361400000000f7b85a0b3f800f751197736b0000000000000000dc48a0500e69a1084f0ecb675d9a033a7525315797823d6a70a22d54f2a73c54d4064c6664eb8b4651a9a116910b8a02f2991e537a938b73419e1f59f68b496eff704f54ff704f54f68b496e53538f43ecaa8d3068b42329f53aae6346ca5a51d1dc1e4e984a050a984a050ad1dc1e4ee7b68e2392d70d28f27b025521d53d0cf0aaae2f8f764b43c3a45725c3a457258f764b437bf20609b5ff377718137f432714ab7700000000cdf6fc56ad3e8a300cc3ac209a11253c90ec1537d587a645686bd50410f83d2467676a756aad2431593849487f940e167f940e1659384948c7212f0a76ac4611740a7e24affb4d0e00000000000000000000000000000000000000000000000000000000000000006b7dc20dde903d645b38875d0000000080d2ad5321afcd5ab5658863ea68dd202500000000000000ab031e60631dd6692722a9240000000000000000000000003bf21d460dac9b6967594e1767594e174fb97d05dd08f7158bb89d2fc1a4b6300fa6c26f958c2335b29acc2d039ae95ea65968480000000000000000fdc91f06bb8af440635d083230abb0097201be0a4a185f681ba6eb6bddad6b539a2d6422f9787022e31d640efb02c0233d98ba15098e6337a1fe7b205f42c7141000000000000000888cab28444c710ab419273707bd4b22430c5832ddbd8802545c793a92deb341dbe7dd778e17691b6f9652668bf003172235f908cd97917224c85747220cdc5c100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000e7dbea2e000000000000000000000000ed2430050000000000000000000000000000000000000000fab6ba2944000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000f90c3b640000000000000000000000009adca66e8a892d6f0000000000000000da0dac3a09a279260000000000000000f384560a80513500000000007b4614040000000000000000000000007b4614046ecb6a0eee1ca00eee1ca00e07c69a10ae88d768e6cd07068f1ead3f2c8c052e4ce4836d22de7f57c25bcf66f60f65220000000000000000ee1ca00e08000000000000000000000000000000fa9f6f4500000000000000000000000000000000f06038110800000000000000948b50772eb4d33f0b55ee19b77e9e20c22b695ef8bbcf2880b8a254948b507708000000000000000000000000000000567caf552317cc0137d4376d0a549a2d57bd3a2107cb0213220000000000000080aa63308c5b4f6f716fe74b16b16d496c17ba763e62b85221e83e2ce586db61291e56747cc4a1252f6c6e2e9375141f2065a529e883a9598c96fd0580aa633080aa633080aa6330f46f432ff46f432f80aa633080aa633080aa633080aa633080aa633080aa633080aa633080aa633080aa633080aa633080aa633080aa63300000000080aa633014000000000000006b5cd35ff112f51b1a86b94842e90e3329635562ce832531039e206ec9ffbc03438d337043f61274257d514f7ac071190000000000000000000000003ef9f66b1698ff4700000000f52d8f5b000000001100000000000000d6aa5e17834910d0bb83800a184a6533263931cec0687a2203f40f0ee939d7f8c8a434c44df823fb8f5224a5688bd677fde3b6fe8d312141007d95fd18c4ef5e315529c34b662ec9f1d8f4cc22910020db7f886389d39ebbd5c868a72bd3ada0fba7866bb5ac98c62b63109de926952b880eb5d0e7b009b64869056391610c987b32a9f41f4b08c6beaf12fc7326095cee04f2f044a758af62e4e8bc618eb329edbe7f047f044953613a5c8c63fe9829292756bc41fd8867ad33ad92c5f8bc7362137ce1e6cf18e5f6dec937964b523be8ab98bb419cdf5528e822e9a5801c636dd9a0ed02e3717c8be51e468d6a0874a86dc3491e530523ec6b1345e6d2e3ca29decd34b305e392b541c5154ae53e468355323acde73c55ac91343da493c29b928c495adfac316015f053f0a6829436bbe23f18d3345390b013691a101ca41de82c85bb8fe3e6b7a6304c977f242bbf62bd2fb4c092623fa90f00a048fd236afea22f8917c75450abee85163f33ea0d0b5a7f211ae771c33f862ab3e6a2dcb8a299a41c463dea864aa8f7fd394cc698a8dabfc13730e307c828af5b3592924fb901994b7947f526cb06f2f7c2b3c57d149de14c37ded3880b9647cad19c0fca47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000d0afb8707ed622530e84f95cccdf00509158220419d44609eb4c3761d4758e25ceb7f647dab1b24dcd7baf6a474ab46dc53d3719f987de30c7d266754c84114ba9f3130e00082e45df5f337015e762337319951bb9d63a2b0fb05b25d360da0b0df88f697223342d5ef97f1f6b11ae6542f44f20066f250c194b660799dd3d75ebe34b50f27f9030d1ade81ccf6b470127dde1739510411c6aa6f21f12fe5c494dba2d3ed8bd0f64a0f450732e79be0935e8fb2ad36e6516ba667c33716d6d61211a6157019d2f764199366081162c21be57c325171c4857afe6025e9345ef68fbfe0353a026db6c97d1ac2f88c19e56dfd0bc09a4d9af5472a35c422df64e1c62f75719bcf9f946dd817647af48742d16bff529f6c062406d81161ba3635b5164014722f23adf0ed95d6a34166019724dfb8c2adcc8c63b3b9750324e77662dc305d74fbbf9796857b090608a685f57badf9732365e1b3a4c4c6415c82f891e44de8838cc81f972d2383971e1df0c67279f1a0f961a0375932b37544f93fa2b18968959953a8c2946edfe19a6e55d1c0800000000000000cccfa018fc23025072db57177766ca0390c48577ac996960400a315c84a3825420000000000000003e94f224438d804e0cb907442096715e14b02760abfad30001bd515aa2391501b6f13b65a151b31b0b9d833334c6e70f48c7115ffa26c71e78d3ab458b81651e0a71c2043630ba216381bf3fb8e0f73928976e3d802c074177a448607645a24b10b149422506d227541d094896f29b4abfbc561cdc613934717d782bd2c7825b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b87250818000000000000006c265342a77fd70943cff94d40a86a4450323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d6143694d8b89b2004c72957558f5706acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d08000000000000003997a225844d474327e31a2101a81d540f1001230073ea0eeb1aeb29e027b31b0800000000000000393c7b5fda8dd305a2f4de0c52df0b307b15051e3b8c7707fe427c2d4033aa5e08000000000000009f65780638dc743940c78c576484955e9b3fa36d7a6bea3f011ae66749531912080000000000000084eb9a5770c9a867cc80b017e84e006de734bc6df511d71b73ebd602a5b47b110800000000000000c580786d3fc6d7505890b1025e8a954de8452533c8cc16658df2b43f49aea30628000000000000001757354a8f0b3c48c089182bec24392dfde0bd16c11c8a2a25893f01beabcc76a19efe602ec9724562291b4d7c061b60a6adf70f05b9341869473b0045b62a1bf90a604b1494ad005c7322266218b24e0dc5732904dd246626db0342675b906a9da1e8752fe7d51bdafaf82137ff9e04d15d92244a2cc153b4b93f204efaab399919d5270d0ac557bb578f4635bfaa40001ca5362d73fe644239cd1847d95f731100000000000000f2d16cf5dca7ff5bab995a41c5f852dffad0a91d909ef503b30e1fae305df8cf943ff026e70c6d814876b766207af73d7c1ff6751f96b93497b20e692e1704f31fbf3d6921c57bb5f4a4fe8b048dce70898eebd9ff229b8580328fd93e8cac3a34af3782d942d2c52e5c557070e97b6d42acf94970b343899b02408f7a8019937fcbeefcf63404e5aaec2551c68e21abf8f2993c620f991fccce5a6e6532cf79e8fd5567e9bd907549781707f5ee24d5f609d22a2b95b563e43a03bba2a83808edb9e53558bc29a53b27e681dc8581031cebb37e83a7c837c4df57e0cac1b49849c686af513e1e2190cc3d0228aae5e26f3e56e767d2d511f13ba54eca1b9c0dffe27d1c1a4985a06c13af7a306d1fbdb75ef5b5060a61946655ca891104da8bc9c3af612290abfeac925390de210545d280ed1c4b95298240e57c4460debc232066bff86c5f1df655fe9eb9fec493eb23d3502a0aedf6ba4a9f48eb66e3d997db429877ee1a59e2343347a3f763282aa609de505c14f4bf68358992fb1661b35937d2e503f2dbc704a26bd33eba2ade850f45905c1dcc5ce7496e06c325f1ded7c12418dd9fff60e29b856b12713b0a31ac4c585c5582d624c7f5e847f38618c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000004ac70453788663f91d9d4dd9b1692ef693765351d4e3190203e2232a1a194608000000000000001fba450585f71f1e1a047a4f18b2093ea28f1912db4eb6260433f9246dc7c8410800000000000000a1297c51aaa6b66ba3526865ad3c8d4e33f48c6aff07a7659d21dc08fca7223b080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a0800000000000000204ae4671e21146da7d8422d5c76580d748f734a0108e1297e55e25c6a5acb310800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a244508000000000000008e3ac609cb8a7358da66bd6c9cff057726accd557b75ee70b309c651a774ce2e080000000000000057a11335e2b5e713c677a913609d1a45fbd2aa5dac98565d67e17d6ce90b4b0508000000000000006f5fda262691dc010f32bf3dda41b058a64c1c6efe8e486969d3d46d0e67b9340800000000000000e82b666f7552af4a9fd86c5cca48243845deb514c5cd373dabd4027608a39d560800000000000000d9ffdb10692d276c86f29609a4106e68aa033b171f38d81cd969781227bec03408000000000000006c956045fbb9dc0bcf2fd91d4265bc5c2a47623fa5ff3e71037b8f066ae92e561100000000000000f556cbf134223a535cf7dfaabf8fcbff2cf70d3c75c2137536fcf2f1883387ac010e72b0b1d18d13debce2447131526a651cafd7460b759a6dbf1b267cbc96fed6815a407aa3bd437bfd53a152f0f0ba6afaad9f179510ee3ca3e011e0117de2dc45fd99aeaf7cd8f3a91b23ba3b95c742eb445f981a3fc628fba8644daf389ff56b4637f32519d69d2af0bd7e7a0175b8e61a7a155a8ca9fe56279304ea511863944c506b6e3da09522fb8ab9f1097c35a0972a06e5e9e5ef94f62df40450c27c044e93e70eb2f4b8e8ee2155d1e87c88538e1655cf23862a32f7de5e3a2fd2f88fd135061f53271f0d9bc13f3061e98ca74b05ec599f1be40c5a69906cf61d79e29ec4dc512da424f0483cc11fa9a051b1ad588bc406491f9425740fed358d080c73274ea7b9fe9cefde8b255483e16b7e052ea351e17c866c4a0094d69062dbd5fae90a1a1d5213a08474f828526e14e15915502ab9f6ddc5d40e8fe00ca20d0f96ac703eec4042a71815d55de5a819a59e6252c2f8f43d5c17ae8a0f6982fc5f170dd1fccc9b8d6d72d3ce64a5835771067479428a6a68138523a911a66422bf98fd492a759f352b4b82284a1b0b24bec1004fe9ec750326e0b5c9a929335a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000cf506c15fcb87501129c410f49d14303c6f6584a0000000000000000000000003d06ba628f2d93320b4f0d570b4f0d570b3d6c4d859d0a747dc219727dc219722838271b2802ad3b5350290e000000005e17cc2e0000000000000000df7bca6f836fd34b000000004176711506fb441af758c05c00000000000000007593436ff29a191dceac88703d50f91db9389a1233af9362e7ffd029a86cc82f20dc9814644d070ebb4ce1773c27ac3a97ff032099f32049a1ed820ff8c0d02be71aac30e71aac30f8c0d02b756b5d77b26f586eca239955f724fd6ac595ee7419c24c6543bd7a4c43bd7a4c19c24c655b11805b9a8b210bde5aa238669a0a2a0173bb76dafd523c438e6d55438e6d55dafd523ccc371604e1b8a10ab4ffe23dfeaa1006000000007690f01f21cf996fa4e5bd2132726d08d9d6ce77a997e5471860db128d27fe6bfe24e34a37c7841ccd061f06c0463549c0463549cd061f06ecf46d648191b035122e5d2f53a8e1390000000000000000000000000000000000000000000000000000000000000000cf506c156483413ffffe204c0000000093cb6e28596b6e5fde181c0b9fa8ab1725000000000000000e823a60b689ee3fef868b040000000000000000000000000de6651a0a208f0a344a2674344a26747cfe6b30c776b45529fa1a27a6dd282712a5ad692e1d756bfadcfc5956f33b32c557c0610000000000000000904dbd3395ce865f5c8fb319a4b77771c645eb0eeb348e5800e9786ed68d57461f76c84515c09f6fff8dab3511f45808ca81c67272fa9a60ba94ae4ac9eb6550100000000000000066e7574198dc6302b4b3992ab7cecb0f86ee961ac54d5045e4e3da5a8e57de774bf0072a39585b6693285960a015682034c21226f6f0d1590981bf6e0653785e100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a000000000000000000000000010000000000000001000000230000000000000045b11674000000000000000000000000e171975c247ec42a0000000000000000d3be1f1621ed6a11000000000000000001fe344d230cf7760000000072630b3d00000000000000000000000072630b3d72614012946d3711946d3711254d5734c3e2d63e15fe0372535942312163143a130b691365a8ef2645537f4d50bc20150000000000000000946d37110800000000000000000000000000000029eba3710000000000000000000000000000000033fc88760800000000000000d9f9627609ef6d39ced7980ef4c0ba3d6335a52b00f79800f72ff635d9f9627608000000000000000000000000000000581251126050741f8c6bd81c346d412dc7ded96e411ecc53220000000000000047a39612ebf86f398e723c4178931a5032ac5b489bb9a567bb3f0704000a0004a89f4d51de79274a6d1c486e9d9c7a205627bc67f92d7b6a3073e51f47a3961247a3961247a39612e2fdc977e2fdc97747a3961247a3961247a3961247a3961247a3961247a3961247a3961247a3961247a3961247a3961247a3961247a396120000000047a396121400000000000000b703e900c6da0c6d41cd591e3c119c4ffb4342311a33af371b9ac005f554f819f3ffaf4e9c613074c4911066569eed710000000000000000000000003b972844ccb0a627000000006f18f91c00000000110000000000000040d4125b91b75c211c68b181300d319939c47227518a8e51753416ad33ff39ce8a37e53a36cc497701cf88892bc64860dd24ab8289cf77ed63a18cfae3a94d0d6269aa74a48e5b004a3c961f51501644c9dbd717de1e3127621380c414d73201f20a748932305a9b3ec355e4487c4be2890e2c6c213fbe70385ddf3a6bab09f80be07d11d05fe19deb366c58ce29f5dcd32cadd947fab0c52937c8cd8b40dda0e948732958cfc5cbd65d6114e782704ad79522f9128bcc344b45412052c6e3024bc7e95058afeb9f8788273828607c0af2f40edfc316e6d472960924026d262a8470215f7b42a40dd61fb9806d75ecadb0952dc9ccf586275c0908178f755f95c94222d2cf7ee157e2becf723b3ed881b08a8128da505fb95408f73d14e6c5831930a860571a4e778cc13ef2a4dd979f35d03d6047ada3edd9c95af4145b05c1622f1eb69eeb3e24b360670da5e441a80da7ac3e156e944c86e84bc71c3f5a240b357bcb710925c64da90fd9de8dc5d6d5af6b542148f463d6751d8420d68797705aad993cfc77ec91cdbb38f740248d82b9be52a489007d8308b8ecdbc942210e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000009f9905636c6d55142d0c95528cc7a9576d463f25ac137672be1de81836ff36317866df30cdf88c20fddf0f382b48b826ce2a1f3037c3de325537a3628580300d94795e1eaf8683688ce8031c2ae59c4862cdd02082ef38298785f62add204805ac4970598e43ba6495b5833b7067b35d24afa85ea35ae71a16856c514fde433837366429d5f6bd275d174531cbed4f0ffe11a94069801839731b0f74acba7a5a4b3615771f174b66b7c9da234b625542577dbe329d2fb6137a71857708cb0c21e9cf4776a4441463d76a1f3054a5ac2f7e67bd2f2416ba06f9fe294bfef5774edec9725b6c44234682d6dd3743d27c2ddd434152fe20a974e2aac244bd9a3c29e0a3fb0f4f6104055e37661974618973b07db477694409659eb9e84c97d63a17a843974c99d34064d3c7d72c68fcaa65d31a955febf428194847e45fe5da332f85ebef4359fcb277f7be0b58db2e8e76f994732c4f074a629dd6662d2e308767d56f6f056132f70dfe96a066de3dd3716fbcd64191a0bc4bbae61629948b7f27fe149016d0640f46eb1fc4704029e94308000000000000000ece415a77f0f62da680f76a56ac366f1b24ff138ccd95411a6d9045b24263522000000000000000bbe6845e884a9213076a6e27df7a4750edf22065f76588271b4dc73ff4ea0b0838a2bb778ae040758a7b4a6ee52792591faed01b2c01e557573a2f23cd926b0a3d0f98118dd6c20825d8c274793a566ff5bc7f2b831a05624978291d1292ef57feefd309605b5b1f0e1e655ac61e9805b2492207d6c375645ce61c76024c525d2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e08080000000000000076e80d3356d2755d50cdf403c4fba622486d533380132a2f707c800009408728080000000000000083e6556b32326a55787f675a16430770ec5d787603c87a02b5063c518747562c0800000000000000f8720d42bbe56304458a2529e6358d0d859b55312220f9464065351b64e4040c08000000000000007dc1623343e5785a2d9f8652de00cd1afddd995e17a176617715db6f8a452d3908000000000000006b5c3a772f7a60005122e8690234350ff0e3be5efaccf33a5400e26447a237002800000000000000d686a742b822d71105ceec08e69f933f99bd274fbbe3003be116c52738ca9001fad154344a01120c6e086571d09c3a57dec760300143ad35c75ad348c3c5a32b8d63f2620f098f74d36e6b27aa5c075f8049825dac3f2c04d1eb7a5509aaef1895ec1a43c1a98072cf3e3104aeaddb48b78b956f55f81123f27dbb6f29dbca5f6ccfbc08dfeaef307ca955639fed2f5770fafd35f09be4352ecab33fe749f46f1100000000000000e0f9ccf25c04ba9f7a41db33bc1dc773a78a0dcd09ecb3d5033161dea055d54ea5a9bdc06d79926efa0a9e86ab0ee4c761b2bec751084a511ef58bb8fd6859d2c987775d1e12959f88932a06b0c3821aadab301f542e2b10bd45d18223eb7433076616f92419d8b54b9bd264df4cf31fabff6066f03f0931b4d862f891d6afd54de3bc20e2257ff02d8f75f2fef9bfec39628a12fa4e80bf7f6111a756ccdf0264041f0122033dc34de220561426f44d40ec14824e86750e5764f45a37eca3a2540314e2f8d1609fce527afac7fc368aaf77e1a5567af0752b343f276223bdde6296e2719e2881d4e88e6f6ff5adbdc68dea7f17bd18402b94a19de031002bbd87b8cc4db33725076418e124bbb807781ff64a14c78f6ea25ae274ad87a3d1c64478a604a557fafaede422e80eba80e6ad94426fb2e1dd005dcc47e4af7cd38ed2f86a6e33af6bdfb4a7085e3fdff5433515d288c0c89e65e2aef683d64dfe365d6e726a6d2a4b5296db8a295ab4d29c6993325e8466a927daa17ec36d2f722ec6d67804c50cc592c120aaf335c36a3df8068673bc8ba805de898a4c47de14a7e091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000006d9cc92da704eb40b381e305edfcad43158a4b1d043eac4049a15721627e987108000000000000000608524bd8e34c0c7e23d95a87fbdc2820f27c61abe5bd4b4a009f1e610965460800000000000000fd469c290c29983d36499a3667da7e2e4009772f3a878422095222357a946c030800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a24450800000000000000c71c803fb25b4c547418941ae14808562ec9d03a43232e52a998511137d2bd720800000000000000303e9e38c2f8263bc0d0d30f11ad6a01216eaf1c2ff3a4367271c328cd232a29080000000000000055825236cbd9ca3fc09cb7429457eb56141bfe7211ac2947ab2ce8584972b834080000000000000083a9862620150942e9b3566ce035af0a98035660e8fdc96f0c4183619b3cdb5c0800000000000000b377db35b12a5c0acb05f929e9153a53db0abc4c7d9f4b4a7fdefa397019196b08000000000000003ef6fa31966bd12a9f6c9576ea233709a60086472a37b5268df4f510b1caa10711000000000000009ddf82f799b987c990c729bc816561bc0997737c384e47c296e454000de4960066c4195c150c525b8adba3884367bec909a501e104b63edfa5e51b91f078b572283fb7581a40537ab16007af0ebfcb995bc66b0d5e436d092bd41ebcacb4df506a371737625582821206990e8ac3626c3b31c7caaeb2018df7aa4a88a2379b15488f405c4f8a0296e8713192a21a354bbff34f5fa1626e918d00f2730726af178118e48a5ee46f1ffde62c09546d5b5d3c831e77cf42025599097099ead323737de38d1f1eb435aa70d720ef6dbf7f0f69d22630dcaaaa4f673e65dd32ad505f8d6c80441e6f411f8ee97e2e09c67aeb727895d23e337327d9380ed514fe0cea941f373b44db959c161064a437dd6aa250566654977079fce93fc2c862a01b1ca42001a69571f8ee5e426b94efd823267623d8678fd4574ec667c430dd175c3f69140f766be9196350bc3f9e8ea2eb32ac7912e07dc9c6b61bb6d4325eb02adc3d5dd0608bf439016b5d306363f51febec02b76c3e2db7fe953ced9d3a496dd72d00bb300dfceb8cf885cfcefcfb3f00c06bf98e8acb5660c6c55c9dcb801252c5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000deb3c3266b2dd14981567a6580258147c9d63a1100000000000000000000000010db495c251f7c205fa6c4605fa6c460ec01854e53d7be2e0927775d0927775d03a9e34a7c702900ff4e1c5000000000af49fe270000000000000000f8be9c412cc6442c0000000010035b766dc344637433d95000000000000000004b9eeb69d2def55df0c15f07b1f631092f667568244c3c51312e1a411ee3c967c561923b07f00e495397b94144f2871dac9cba67a652987345a2c23d01ee2b66d5261b2cd5261b2c01ee2b661f171b0dc41d14722754b570fbce9d18db3d1a2ab9ba374f2b82f5692b82f569b9ba374f1cb5353db9798142a7146a0b3b11c068f6d91e3a868fd677880d4416880d4416868fd67712777344f75fc231d3613f0e2edd013d000000000e29b0660bb4a71a5357d467c4d3fd0e53266f014e9de67451f10b40383c065c5c60a929bc764f469746723984e68a5b84e68a5b974672394247ac0cb16ce009e1e5016d4c7bb4330000000000000000000000000000000000000000000000000000000000000000deb3c3262ae0852fd293795c00000000a6961f562b2cad4d42227b2042d8db542500000000000000a6894d061d30f4734d91ca6d0000000000000000000000007c06ed63e00df2217c545e637c545e634e7e892d3a0f2349dd328f066b1e912d5843570962d5e508720ce207492c03058827561a0000000000000000d47fbd5ca4b5e068c7c0b64938c9cf750465852f2a1e7e17006bea680df60c1badbe821ca177f01a806375438693fd14cffb4d35d599ea1da80ea70827dd0f6a100000000000000064a9c51c9f2f7c56dc9fd50783ab2d28ca15af5100355f055fc45021dc412c6cf40e1c1b7ffcc14a06b4b135db30af47d60ae62017cd7838a1a91d357fef88121000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000b1c0911500000000000000000000000071d18b7199c6ff25000000000000000058da6c3370ca19710000000000000000102c70692da1534700000000dfbd3771000000000000000000000000dfbd3771eee9a7621a8bfb311a8bfb313c7a70594d5c345fe51b9d71ee17222551465b37119bab2666d0cd69652bda1e69ca691c00000000000000001a8bfb3108000000000000000000000000000000ec59465c000000000000000000000000000000002ddf873908000000000000004d6e3f4201f8b512216a6e7127a6f6499ac73c084091812d2b7720444d6e3f4208000000000000000000000000000000876cf46893401526873db831c9d4ec3806aa9f3309493a52220000000000000037d7033fe4e3287612776115b6e1175d039be041ec8de230fde9c5096079af5fae307f0d19daae4432e3fa704218f616bb112813c31a2a2ec9f9973037d7033f37d7033f37d7033f553dbe1f553dbe1f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f37d7033f0000000037d7033f14000000000000000b064b44d161c76b8212125e5a550052d942ee6b225a8e10c574b00beb887351fbb82519338543683f6ccd464446ab220000000000000000000000004c463734bdbc654000000000c310632a000000001100000000000000c43cd3f2445cbd16d5fa518d457642337bdb722aaee16434dbf12b8ea2a04207c9c8caf03a2b5e80a89b5acc08e6594b4044b3ea20f36662f681b4fbd770f53758222ca1b64e9626ff455e52c0740e4d3bd59d9005984c4d166a7816bab4e48b1953560b274d53bfe293a0224e7a96197088177625592c6e344048045ba028fb5bf6f4e7e613bbad2a9de2e7d08ec987b97fb17ac65f3e572a5e5baeae4ed2e1be93a584d55f92bad0181abdb67b63eb69758e9d073da6c269d32aaa2c09b7c70e34243b08a2224e4f0648b1dcc33e399ab7583d677e25aeb96a26c3a2d0a2b9f3ef957bdf47df03ac181a0528ce9cd8217278de91d088f860c81a7e82466bf42c41ce11b1292750e6990b5cb94c4cfb609f8ea8780d596d84466dd52e3f5179fc7bd2d5ea73e39b38cb717ec730d42844e4eb6f5c480d66425ea66329755bd008810d61c5a835ce489397c04da74fe1b96374021e29212e4ecba60c710c1d670757b27f993f23f461476f39eaa8d52be2b028d056aa18cb679ef983b13f1a3700b4b3869cbb404e113ca89f7ea50f2b35e529613f932d6a15c92247c920794a76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000003e2a7d47e86cb0259f20644901d9526af8540447f8147c488fdbff3ada320962d19f9622dc15af10d5361f4e51745a0afcf4f13b9c453153c311eb256003da17c9985821ef581a0b0db6d466b8a17e1ea3b4bf38a8ce423c05ffeb09be29275635bd4a2ce6d2d35f2349cc3b783bcc62c980a648ae9c6f5cafc6b108b31f7e2af039212dca038c4fcad86007f6cbb149cfec9225ff1e05334b41e76753824f571537a221595ace0172418f0b97ccaf4895200408dda3620c2113da397a4f3a389b96f52743ab195fe2e5f81632ff4e6c1270804a72e683670eb67d6992885b43167dcc3ac8e240493794a92f2170ac5b4d26fa199e3ad7228d6d01160b158a07408fce4877cf6635bbda8d13fbd3aa3b04009230ad5b434ac5d43460d06a552aeb33a24535e5895fed1bd0745d31c81e85b5a9683604dd1f147ff503f9e09708a9520357442817215446002e1e9ad01aa879b05bca67d16c1013c40c01a1eb69a0b64d51677e43067237d3020e3e673ebf058537b22c2a44a5bc49072e8cd06eafa97e2f819efa6610542262b46198710800000000000000d87dda5a10fbff11540dc2436ef54774f76ab206609fab0b744c8b1dba3f574120000000000000002ad6645858ff9e0132859240c66e8841f0ccb3048de0100fe2bd97078afa121e70f26b42b63b5b08675ffb72b9501d593096fe3bfefe19228127db1e1eca446f3878e028f13b7b3a43e38e01ac8cdf62d2da377080f8063b7d05e83f8176401431d0851d466d744f4029055b919a0f19755ec41f2095ed4466b72d2a39a2586f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b08000000000000007a239276a3c2d5198575fc0b8509f616f7ce614113ba7846e1a2123632cbf70b08000000000000008150c070d212d25325d9504fdfa4b401b9839a1cf20dcd261f601f44d559a62a08000000000000009039d06856417c3ce73ee650e6fc594bd779b8688c5787639a97c25d1eda3c6808000000000000005643c523a1f0c30f8b322c615b33832ea7d44b35ad396027b85940050c164b760800000000000000afc506404d6ac446d2ba690c74d30775d592970ff9ef4b4a60e5d225d1f28e352800000000000000607c805c402ccd41cff9bf02087dc20d0a22bb1b21c90e4943179a34b92c63569a618816f47c6c448475243a69f93e736f53d7452cc45229a560107744e8b7305a21b96727f3515af997da139763df2b84cd85016577943fbeb72e27ad5d07257fab6c645bf0204cba8cf70026d5055ac35dcf4dc989ef1513ba212c836b9f3d6b81e007de70f659cf94375adb81a80f4c337c1e500a6c0f8eb5c60025670c2f11000000000000004c60f814f3ee842021212d32bfa13935322d1cedb3939ccae71ac8671b9736910591a66bfba489d7f6814ab316f770d55838f9ae21e15f2f77894987db3fc5c1f56a33f62bbbf0df3608d92ddaf09597de585021c60fb48bc3db14239f8dca31ee4c27437ad502578cfb30a35f6f6661cf9a92b57b203ec3c5f75c8744ba6d1dd045024513e8df8750a823e1d56baaced099e824a96aa09b58174cebd3f66564341d2ad8b7e8c845cdab3bb5a3e56066181561521b5930c86295252cccffc6a6f09704bd814abd45e562ccdf8e30025055955951843450c9de9aba6cf2669e7eee9d008aa04484117fe96534e70f548e81640302dc4234a95ea9380ea4d5445f91c11e8e34ded0674db726c9d520f21a197c80cb5fb6334156e189de8c33c59d7d2528823173b562ed085187c0595733b0d167acf4afe7eba8dc1214b98c98e69f07d0d12d38f09243a17198ee82743825e1bfbf1978646c4867e1757cc2792d1c3bb3045a9edab20b71283a9258d60c66cce2d2cf26615646cbb6d7bd4a27cda53f2e0278bf44eeadc289d4a7e0e05ea19213ef5ff45ceade02578c6961a2a5f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000ccfd393b411c252529dfb44e245d2532a11a5817c6462a73ded3be7472eff163080000000000000035095870a7df1e0663155c0dbdd3da2b162eba183ff497712b08bc1d2de817520800000000000000587c0b0c94c4d81e441359623d89e70b799b8a31785e6106c0dc31333f19ac0708000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000e2fcba61cbb27b6c236d754ededfa5002d39e92df0d2cb02d8549e211fed2122080000000000000009dcfb47e986eb272ded3264978a1d003e4abf708f520f4062fe0b44f2b401590800000000000000fd1fd35cd6a8d95a687cab3ebb70a146ee4ca13bc83dab7674e48e13dc90b5400800000000000000c870f22c8d9a4e54b777bf53e6e0593a38d5b02bcbfba833a8db404c565a0a2d08000000000000008d821f74da3bbf36b070175a1a01b0404c5ffe352f26d959d4fb3f19205c591e08000000000000004e68876365586354dda609450fea0f30b6fe1f2257ddd16333157c316dc94d561100000000000000fa484c3d146d60666f4a8d8e551ac3ba4f3f00503976223d4b77748fe9ca4c1f5da54ce0f78c9ce8d80351546ee0620401db43ac6c2584b77dc8f06afd7782786fda14563362ea1dbbaa5425fa3068e384ab4d67f8dc94cc8f0a5d6f2b5bebb6f7aceb13f0bd9b693f306a7f5eb65815e4904f332bc32cca088e724b3608883705675883cb211a0d6b037a6f04f7ae58012a15f3d6fe28aad0976e128679a4d316e9c9a93d7afbd97dbd3ee47025d71b2a8a00e1e978d813e72447b2ce7afef90bec5c56f74c52c02e2a6b4de02aa294209133ca2484f94da563582eb2e07c3b88f28d4b20c399f24ffdb0cc259eb3d7dc7528bdcd24f3bb7f7a78dd7ac77ff035f76db0016b9a9a88d84f396f00a7d5eb5497bdc3291b8ff3616517c951ce6143e82909ecf0766f654b847ece50fe21a8818f96db270e6f6ebf7a46134f759dbc341d112044f200f84622e409a6d98902f2684380e5251cb3937dda136142c3b8c2047806a49e71a93a48d6c67cb439144df3bae3f992c3510c106389d5b055c95946338bd3ab7de5a89c4f17e2f19102f2fd033ce6ce762f81ab0a60a19dfc7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000008fbd9457ccb585570491ec6347a46e4b645de32d0000000000000000000000001c24153c995fd9207ab627647ab62764158f7a23fa94246ce988f158e988f1580268fb34da5e86091f2a8d39000000004a8e2563000000000000000002ede718c7eb7510000000007cb32d00b0154c6937f158220000000000000000d9ea7f24aa36c040ef173044f605b7529a1fd93973426b2089f701322092505dd8586732e7fbf323e75f4463169b4a210682d160fa742f2a6f557f10d1f06c371a13d23e1a13d23ed1f06c372536b635d458f23376e7817330c70a48bff8f402a46fbd015021c3005021c300a46fbd01b25f20574bb459221379887564a32e01c7dd4a5628a1796e00e5412500e5412528a1796e2b2e10449b617973ca1d2c25c3f59261000000007f89781aa8bf6508a0196b6b0a5bee005e60ec175e6e081e50d48b26a41675438a74893e3bdfc538a06d00101e494a0c1e494a0ca06d0010f7c3a904123cc404bc19912db03eac1300000000000000000000000000000000000000000000000000000000000000008fbd945792578b46d7d059320000000062a21f6458654b2d8143184e3bc24c152500000000000000d19b733ad36ca10339519008000000000000000000000000a0abd45ed020226fc3c17801c3c17801b38e592b602a4e1b9dc4e6029f79362736877c30cb15f33f7eaec9736c3f5f023e80262e0000000000000000c371eb6ca3fce726d49f396d3bc6d81390ab6515fe65c53e9b568f43f85f0b0e0619ae2e6faf4e75d2ac4f0f7801bd0c23259b7508612e070684575a90ec550a10000000000000008b498b2f5c818812228c620166a4295879674071d942f1005bb99a3128ee5225642eb8338c12d601e51b8f6572d39f527fc4d25e549154613b658546dc572a40100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d0000000000000000000000000100000000000000010000002300000000000000484eab040000000000000000000000002f9ba71d0f1d8f3600000000000000004ed9e16d61fe7d100000000000000000a1e2785e9d44ae2c00000000c72b8246000000000000000000000000c72b8246670efb2c0453a9590453a959f37fd93f173ac34b4e97e924abd91873400be25c459682436319dd50aa047a58bc04fe5400000000000000000453a959080000000000000000000000000000006a95776e00000000000000000000000000000000a29e1e2d0800000000000000aa208932afbbd0152796897232a236598a37b4354c3daa5a38e4221daa208932080000000000000000000000000000006ce21b082b3a4f70f039123a396f67496dbc7114442e35592200000000000000e1fb1109b4c15c2f2deb3c12f066a4727764c60c749f3f06e46d190b0219c34cfcdeb56ced36bf29dd1e7e152231e15ef971a816b54d363d20f67e34e1fb1109e1fb1109e1fb1109f447a368f447a368e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb1109e1fb110900000000e1fb110914000000000000000f3adc4b109d334862a11e51bd35f1425c94d2694595d55559c0ce7625cf7f56fede4c37cd7962486eab6d3430f33f0100000000000000000000000015bd98012606e10c00000000ad1c793b0000000011000000000000002f87f500c70109a21f89c29fba5bb6093059d1682908e3d08df11bd6dac0a9fffef67448d5c8dbfe16e8f4773bd6d85e011d9563f81c59a8247db42a3fc8119beb55a7ea2b69a5eada9aa4fbd883a08689de19a281642ae1e9b1894ba35f7c960a80fbb0e0ea5d426ed15ced30c728602fdfc2d9c9d59017e4abfea5ec8ed07e8cfa3ef4f11cb2fa60cd62c07850c310d6de9152fbad8c8d1c60fb049399bb1dcd2bdb11cf20adc904ef0e565a1dceb4db01548561fb70e28cd1dca507c45d946fa16676f8df1cba332d3d4fe4dcc39d1ba46a270d712a376a43979b419ba2c133694a70c89e781ae12065db631ff266262ba6135f04a643d0772b20b24855ededc842f7e880cd77f7ee6e2d834878ceed1055240780500694c5f2b5e2090164da3368e42471f8e24f53642b4a43b21be285e0b70c43d65fc0084f90a7dd7bd828afe74d7aec5f30b93a81b5bf805e5f9a92c8a4aea6603dd09ec291b28fd103482203658865b9ec0ed030bf1854d6116ea2114d1ca01d1b9b941462b34afee0507371023c1ca7ad50c17a9f7c0d91edf961ee83bb0a644a69484b125b2a52a41cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000d5505a1870fb0161f60a7a3ddbbaac2f4fa36d5c52e4c33ccf0b4959962d9b2a9c1d671745a7d91b6eab8601eed6433c2fde4e339abfa356f2fbc823a3492d136c61be37ce99ee196f1a83052e11ee487a3b2c0445f2a606a9e02b41dd91ea482bb4550518f08201f1207e10ed370f6c41da2d1a398f1b1cb1f7e31b6ec60d7254a2975182424f14d7cc4c2a03b1f10d8c99a22887b61c301d581d2472618e5690d3454e316ad15877489a0a1a27126b234b355525885c0761554437307e6c69089f62751a4b1c7102156a2bada9d3375b4afd533ecbf42db3006237e5e6bd7590517e25ec899546efdc9f63434be26415f83739d213b40a487c5262f8aa0261f366825a640ef3344ddc7a4322f655287bf5df37fca14a391207ae7742650b22c380bd35244ca04476baf3493bcc43330ad451250980b277d2005874b7ed471a6e380238bdb94b141f8e1131111edd50f7299200713d71658361a960bc233006af25ce6cdaeb9c2d259cc041baac7021813d3d2cd706d40f88c3ce58697dcc561bc4fc06ee2e3d4d47fabf242e8ca63c0800000000000000084f5b25cacd1506b9f8e85f93e0cc4feb2298294d007f5789c1d956429d3f062000000000000000df53c61d72f86f3b537e8306bcec4803bf6b865751ddb251da25d31d6e275c15d50c5d3789def84fd6793c62163c2e1e66e9166024fc21190b07c70c4e98f15539b91f2c6a92925d2340925f6d7b3834e59816394f401b3e2539d14e2f8dc21771da752a1f6e4c5a34d370576d043650bf46c713ba417426e5ac4e46184266172000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee5070800000000000000e4936a4dc2b80d418b0d9b65487c492b069acb2889772352b090ed23065afd02080000000000000057f2d217fb1c195ec323ac61e16cf13d1fa98d228433075f2b7b96712a80a8130800000000000000136e485f2b35cf5d6f9531609123870411c4e3098d8e1472abc8d55e02065a76080000000000000098dd8442a3acac3490647b75add3f1069799775a914f04173461042eb2278e4508000000000000000afbbb40f3c33642fcbd31032d343317bf3b866678e99e55edc3e114d295151f2800000000000000b16f5912b4248e6670e2d03f294fb804dd517372f7294d2b6efeba243b0b812db991862ebebb18607143954baaac84442fe76d531f327e2905104c583794525079f1206d51992a717695a22753604e7573342d3692994e034413dd6ea8952c556e2eeb2e2a2e37766d940722e1897343ea1d90728eb63e1c5b36bf6f9988b7768f98a8588d7d984f2c56fd4511546e1da3ce841fb0577c2ade1f5003aeadc71a11000000000000009ae2693b424bf3ab14e4365e9dfcfc486cca52524797b2784fc0bca812ae2b6755d58b07dcaeccf203de03a71e0af3213a77bf283ce69225a85ad44ee1d7f82998d1f0482c7cd3f8e66f875ed16d0da7da90748ef151b9706a00cd5a0e6a8d81ab8a65ad669b1a5e6fb8d05cfbbd9d4376aaac47d1fcdc9737d502b3e5c7cc832f013997e948674adbcfa584951688fa73e6aac4b3737f860b08cbc76c2400a911f1c874c8ba6d59b23761098d3483c1eab3d8872fdfe946f307ea58d7a81d363319910f639f606dd821c6a8547759bb7d94c76f02ae02079245876c04b5dced67b5268de1742bfb0ec94a426c13c02691ec3dfc9b999730ecabb1202dd4cde69c1176f8b15ba4e17237ea668390b0e9111f94579ac3c38f28030fa06a557070bdc52b8436e77485e34d42c637eba598d3daed2258091b9d3851bb8e906ed30a0163781098664db7931548d1b8fe4738eacfdfd764316fbe4c5300e298d638b09ffa9beba6979ef7a65fb0d75987410ad5fb9254ab1dd8ac24fe2a4b2b8a1ea459340cc90ae6dafa1c5768b9827f641f652601bbfacd76fbef6faca6c2c3eaadfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000bb9a2a3c144e4d5fb6d9fd40c01d056f8cdd6c1cd2ea2f2ee6c0406707369a1b0800000000000000ccdbc93463799223dd25c8605c8b42575f581622dd53ab7495f0c16548f93a640800000000000000dfea230739d5d7684c3ade6d102c936a0c85fe71e5da9204bd808227cee2e1590800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000a3fca44999900e37f19c45136b5d0a6a0da7d2621ffc4d06d8659d0aa2be80460800000000000000e05fea2cb011cb2dc5cdd92e10a9a071d2cd9031ce16e96c2b41a75c7e89ae440800000000000000be64be5fcf45ba02dffef41c2e6a31416d388c560018110161808853ac266d060800000000000000e89d31197dc993369723a15a67bb4c6630030c45407b416f9e8263348309103308000000000000005c910b3ebc0db40062bb7b453f77891ebc33cb084795f72d26b9091a2338fc4608000000000000002b9cea05cf643c363ed1f639724e6d2888bae92211d1535650e31d65be77a10511000000000000006f88227fbc8dd36a43f8e9943bee441ef260677de88ffcb8c4ead6cdaddab4011b42d53193699f2bfcb2e3445e2482915d49c942f85e8603cf96a1404a97b841257b015fd552e9b5b64c5ae870bb2332f786e131d0a48a920abc331c85c22c267dfe5ef08a09267e616cfed518bf59fc7c15a2710804e06ec5969a2c1139dd690726d7519fc3b3dc28fad1accb3fa756c18b0f498598271c82ee0cf407fa283280e3ca17b783368d42e172a253cf2fe5534b601af08af6293abf201a9634c046c57165d9462a989222c30905a69452e4ee36dacf5b88ce2db638ee8c494e715bbf41f7b4451049b3cfd86969e1e67ba9a227b214351414b3a5a58cf158d39100fb935e02aa65a34915c1c3736c3072aad7e10a82364d08e0eeeaf07d5965b3b2689c95328dade1ee985a5a2dbae29768a27d2134c78502fec01fd09ab9e3e3ecd69611dabdcd35782f900b8b95e47b23e48627782f02d3b03971bd370d8be7fc8638c66fdccf6626739f201e14028164a08ce9777bf5152ec9b75b79fed7a5fc9b18f38ef39fe3e771b8f66db57b8f56864725dc2920344eb0ae0f57285b34ed79fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000462a744905271f2aaf4bf20828fd1f2236d38a29000000000000000000000000a18fab08e14b4663988aee6b988aee6ba0507f060b042602cd51f040cd51f04054e570738a516b3509a29a4b000000006b51d52400000000000000003990545efa9d9149000000002ccd4e748b350918fed75018000000000000000072d659760458183640f6b74c6682ca59338d1a63bcd58b2e435ef34aabd4ba4e3c9970696c7a574d519856287da0aa4e9f9412286242d85727270d26a4c47f273323967533239675a4c47f279711f9533f6419316f488a59203d8d4add67bb33991e2d708fb999668fb99966991e2d70ab7e8e0828ee6b62da49430ef58ddc5f77366b0e78ae9442ff7aa074ff7aa07478ae9442b895e74c7b878c5a88c91c1a8ffdc03000000000b1af7521e80b03511bdc0a1e41192c5c39ebdd4c6e2772234069085bb383944a665bb2661b72a40d8beef634114fbd2f114fbd2f8beef634d615532d6444007346259e020c1fd42c0000000000000000000000000000000000000000000000000000000000000000462a74498eab562370907541000000008b3faa05c4553e5f7c10831ecddece6d2500000000000000c47d320e18e97c6f7d10327600000000000000000000000007fe723ab8bea52413e0617713e061774eee65094d90b95257c22871c36d1e77199d59335c1e4146b3589606d238c50dd2cdf63200000000000000002d554b443219a417934e9d47133ad3049748fa585af305346350d25d43176e41e4b6c654101efb69dd69562bfe33be0b75dd95287962071d093a7e32928f0b2a10000000000000003678eb141109ba69d99e031700d5d42ec316e36ad272e83055478b321e9df701aa5750196d30883f73a9451f349d0a163c6cf90d2f50da09ab84df26ed176264100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000455be35d0000000000000000000000009ffb7a38d395c70600000000000000003b1e5e190cb5843200000000000000005e8911254f1cb31f00000000d67be36b000000000000000000000000d67be36b3305f5188221a8388221a838b3c1a71604944b16072d921d8cc4500e2f3abb6c3b9eb108af4a6a1ee8e4d8683ec6c45200000000000000008221a838080000000000000000000000000000009e89626900000000000000000000000000000000ec1d894d080000000000000048fcd32218c4aa4d9fa6266bed45236e5f603b0957edd02accc2d75248fcd3220800000000000000000000000000000065b2db31660d0d048660da6f8d810646671d34428f5a3e59220000000000000087050d46dec7be38120d601ac869a70bb09f6412f320276bc64be0656e9b8b77932d861914445629897e0e001ec4b21749e86210ee91bb6abf11aa6c87050d4687050d4687050d46259e5819259e581987050d4687050d4687050d4687050d4687050d4687050d4687050d4687050d4687050d4687050d4687050d4687050d460000000087050d461400000000000000ed25a038fa93e15efc6b6955eb4d1842f0e1ae641605840ef4725f201f2fc214dc1bfd59725ce26e8180074757c41a230000000000000000000000002e340d4c5e07dc0200000000a203fa69000000001100000000000000a869dad9e75ae36e0582b7827084ed1ad2f0ae1c9808b118f7d7ef897bd664404061f29e667ac9734a857dcdc12ebba5f43d52f76d81e728194a05073487bf0e37539e9be9c3b0150463c29c725f62e2226287a0ac80e187498fdbbdc0ce9d96ecbdd2e55d5bf714382cb013848ea78b4cbd33c7976a9008dad82819463b376da9a329aaaa20af2aec34f373275a7ce817e8edc8b50042d83020ab26b2bf655b2797751fdda50a6c8d9f7510ea99fa1cafd8690ec8831d17d54cd8a2430efc0bf879b15e0729a53eab2693d14b1b000289ef8a87304a59fca23145cbf0f7d24af0261b332f57c535f7e7f8584695a35e256f9f7038f6bdb0360ed1132a1c24570ec5360cc51eca3dfd11bec11d01ca94bcad8d1639d48121cc59865cadcb5f5c0905585af028002e1ee42adb45d5991946afbd8926b89384eecb35c407be4b89ca37a41159575856b215b34f3bfe4e0a9fc139a49078f50a4b0de014022cc893bdf395f50d3b446625bdfd5f61a40f89d243495f841c1d148415aa911dcde3ce37dbf6e6c6ddda0a6851e36783b4b29ae3a1ac0d802898dfb997d678761df1e939bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000bc7af647b6b5e7187ac64b50c79e680bf6e2a610bb94cb389c1da208741ddf13673bfa7541ea036ef5f35d4b3c6ae74362f8de32d49ed4130e2ed13e4e2b022b1a793415fd06503d1419055d5ed0ec2f454ae852aec2c65d9a8651178308514a76afdc4d4795ab17d279c14b1db12c10be9ddf2c72be222294caba0858d2a412fae4fc026582795110e48c452245c825141e45686aa77b777676c260659cf55a52cd4507163da54aebf7376b980ddd2115d0662cabc30e08f362903be1dce55232039619d914de2621ee88195203546905e77f2d05efc62cdb5ed33a9cd8114adcf513070a5d0169fc9cc10f76b446491d99f06b492eae5ee80c323eabae1753d477f46061018022f96ff62ba2e73c2fc87b042ab742c050f138e018969139052a5917127347860f0175d559b8c773088bbea355e4030e3365d65148231b6425732994686e10ad209b184a4d572ded37b413415bd2e26c39161b3d541b9ee119be9b274eaeaeac70d269d96a1c47ad4da24c6a2426214c3b0e65102390dc1a587197762205cd273f4aeba10f8458e57508000000000000006a58cc1e947656154f0ac56a8ee51808288d8811f5ce9c03cd608c5c7553a1402000000000000000874e085d85dff12b5337ed43a049ab5ad552ad2b8670e3481a888207a9e417492e2b4c0e42cd27370c9cd302e402042d4135552cb7d4ab76d6d8105cca29001d53cae948ac6bfe4c92728c4689696a3bbbcc614a04f8e9504497db30fbcd481107b98d433e4034600094794bd8d6552ceb4fdf05c19c5364a8a5a9234630db772000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa158450800000000000000dcc4cf710172616f51b2bc47c83f3633ede6d5235e4a4d203cca1216d3465a5c080000000000000002a7d63a5d70da512f4aa82db3c848313644731c1a84242517ec0306b970620f0800000000000000018fb965fdf8e02d2f23b640fd10262bc0ca541afaf49d1313ff331fc3c00e0e08000000000000009f9aec5c4d7edd6d3454b95c1203ad11a08fe65f342c986273187627071b8d5e080000000000000012e4d6529a928728e0a1885bf574ea772de21044572d48498a22876fa415f34e2800000000000000814e5a2c1ee825083b2dd36bf2adce3222c659079721ba5c2e8b2c3fc4f2e43dd855bd69ea67b90322f04f64be457a0f0cc6ca0ef3813e14944f0f50a6822011684b1e3c81f19b6f30915b230f2fb35c085d534c7a45da396d158e279cdfe41321ba6d256c7cf10d5f14de2883e570546d812e179c2b1b0f4a6ef725b75ff6009aaf5c15bd204640e11c0f773fad1451d8aaf342077bba127c0e884e16b672081100000000000000a285d79a34c8bae84ac28606a13514fa7d0cbc8c5a057289d1ecb53fa73fe24b5ef9e0c69f89e04ec32c6d51a8c8eb039dfc2a2afd4718dab74d4c274f779a2b489f32549efd65647d931635292932b7ffcc9d890a3228728246bba27afafb973ce3733dfa8cefceb7aa4fdd49b6b3b93e1db43bcbf36a4f6d193e7db50db45410891f41e5b24b35d942208dc59731d6c19fe07222fc8332bb63db7ead7c20bd4b48e2fd3c6915e01f57131659c1427cac30f4de5163bf6479c63635bf2b3649510d6d9355eba01b80d097ff5ccaf79fde7e1d61e8589ec8da926efa2983af16853f5678b0da203b87ea45bd3603107b0d10ec63b8fed92aa9071ca590529c424af9ba52cd2603ffb67212da21eb8451efb3f3da133e93576c495452782c74b9cad0bd09a7ceb6411f9cb77554e80ff66516324dd8102429b1b0acddaa6efaeec66977377514587851bb2aed9d3ea53a53a14fd3fece2dd2d35564f5a1a62ad099a5a7ba4a82ee53adc7636085bd7fc777650157958d08251404a57d85187197e4ce802f8c85e1a5370e905e0339cb9436a8663ef0a40de7471cc421a7e2cb06eebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000045247c16124325684eedaa30550c0507ede4de430033495baf817f73330a23000800000000000000473c9a0c5527e646be7996511001b00a66f752399470dc1e6109f060ea6fe21b0800000000000000fe794603abc77c069b04810bbca92664e6efab348021eb755d32c33a4369875c0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000005ec0d45996dc1d38f6a08c230a7d3f69f32941395b1778036f737d5f80110f020800000000000000a7fa32675d2c372044003f4d9a15ce02f590bf4c88758c4a78b4fb23dd09721508000000000000006157cf58255f5823bf6fe0654f77095158e5905201b43316dfd15855b37c8f2108000000000000006eb6c45b9e6a0774dbb3905eead1916e363a874b0c637a28ddb96551502d13450800000000000000a49fb670b6a414244dfbb133b4f16e69f57bbc2eb624c13a2048fd341837fc2d0800000000000000643ea225818a9a632c6cc10d9df7972db9d49807a1e125494a5f023d14170c471100000000000000be8989f11b9af74db0badb07e66cbf8f3e1c06149857cf5175133c3bb6367e0c68876c8e29dcc486f391d6dd347475f3e2e08c60852e76efa85755aff763e6457435ee145456d817ec705ea63a86093f05c95c958d4d6ac9d37ea6f99b0632bd7ccaf95ea38ff6d13857be5336b42d85c38bdb8278b0b18a1b3596791e775880269016af9fed7198f84d5fe0804b1873ea3b90f106a31654bc36a2f1cbc47c1b16bc68d6a1e750862e29c9494f851b571f6c6845de0d433ed077e2906e872b74b53ca2827d2f705f48a437943e82473fd2d1f02dfffa727699c8a34cda45fd5106a7896bf98601082c0ac1840825f54bafdaaba5568bdf1ea7bae0daf2ecadc0988957e7d96a4b09132df19819ae4105fecffbfb03be61b64645e49f6dc7478dbb2aa4a88e2bf8c489835bfa7fdbe06c9c17634d663f5bf2e38558f4c27851f748105f8b83528d25777a001b9b21d19910bcffe7b323c7265a043775dca70a20d031c7c0d98ccf82ef82c0c67c50a4f99387cdcc7c347124af8f0a53cb2981e5891200d06afa0056d35c46b17a3564c76a9ff8cac2830cd05077253fe25fc825357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000098064d0ad5d33233353a212a0ea8bf2cb7ca010500000000000000000000000056480f1b8daba96cd5228b6ad5228b6a1998d20611a6b634afaa1c5aafaa1c5a3cfff923e5a0ea6088d0b24600000000205bdb0c0000000000000000dfa7e61d258d286800000000bc142f2475d6b2499ac045540000000000000000da1ae819aa93814563e81a75e9de0072eb2646346af9b26d069301106f9cbb1324718f572e97bf42aae1f151645bd3582d73f21b484f66740c677007012cff0bf1e9e74bf1e9e74b012cff0b77bc426ec8bae8118db16a1b6862d91610c3422a1b76f677ec1a2f4fec1a2f4f1b76f67708f31c591ece8f02ab53bb52a01f954c124971151d5f151718fc255a18fc255a1d5f1517902c46419be5676ba1afee67c6d656650000000091da11235b3b837594891d321c064e055f5bbb6e49dee65f19b250069a9a885e3c4bae141ea9504d2f32793b9eb692139eb692132f32793bb2092945add7f50d7c622b308f06e16c000000000000000000000000000000000000000000000000000000000000000098064d0a060c4a6f8c39181600000000f8dbe36e95cb836ea58d5f6f22c08d68250000000000000019bc4d4b9915ab3b322aed1f0000000000000000000000004a490d09dd84996db0a40b63b0a40b636f453675999abe60dbc623455176920c8d8e2214c0950b4044b5b20cc6ed7a6f0b8cad400000000000000000c05e057041fe1e36148ba81d30280f664613fb22d86a8a027e3f581dbbee375bd5275d5fa3a95e724ec24a699c6d532555b3d5181e54ef3bbb50e8048308f7671000000000000000eefe544aa5e93d0e7bb12e59c668b5438ce6c40530acf8645b1ab82a167f4c028e99583dbabd071137c17527cc0bef6cb598cc7337a2486bdc2fef5be09bff25100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000041ce733e000000000000000000000000a7b802158449aa0400000000000000003040736bd131ca330000000000000000d8284539d1b4177200000000f095cc4d000000000000000000000000f095cc4dc7be110f97732909977329099376fe48540f1351025b2d5591237c27e2bdc87368dec75c93d67a43f7c5d86057a5b542000000000000000097732909080000000000000000000000000000009c4aff4d000000000000000000000000000000005eeb3c0d0800000000000000ad1a567193fd183a071b075c6a3ed3661e2ab875dfde8b6799a4243fad1a567108000000000000000000000000000000713ad40ded3da2536774183f5660e40b58a5a54dce65d3062200000000000000dcad1c46d2664916c612e5575af00d2b17b99e67b1a8256bd2b2d741e5eeb80fc798c06e751d5d20284756131939d338afd6442b40fcfd081b49c14cdcad1c46dcad1c46dcad1c467f97a20f7f97a20fdcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c46dcad1c4600000000dcad1c4614000000000000003f5e1d69efa61a25713cb013bcc887024c8cd7667e46cf6f1b67660d90989e41c27672769c3a78670fe57842f2079e3700000000000000000000000044748b69b251111f000000008014430c0000000011000000000000009759d2f2e71f6484e1331e4d0b9e8db2b7472eb718f9e4b5d1de6687a69c20f4da2267cf1eaa5ba35a816630162517ca37cb67c463e30c23428f04a08085ed5d9dc06b7d0f2cd1026aa800c10fa788ac63b6d030530d13cd350bb48a8029666cdf7f1a1ee28e18eb74f759f6538261d37a62c5e37d03842708f5ee117ef813b5e03e5fedacf4fb11230c69911473e31eb59a92f16a62281bba456dd539d4f48328514e9150dda49a7c20358ec4323991e954f4e1bce6023ea64f30eb90061743863f97a86fb2e5e6e963bcf7762429ee6435f978dd9f42716456e68bb08b14660595b9ce62c4af62271ea05346303634ef713f96f77647ff010882229741eb9f9bb3399311b9a9b6a20972de27a4deabd137817eabad355be8c0bef411aa5c3a1df7f7d5d7b18ba61d6c6a21f1d458f0191fd7e6e3a800853688d04d69da4432fcde9e60965bbbd3a12ae26a7049034edae5e9b4731174b4ffe98831e9e3ef8bda146f9a2ad9ebfea6d3c8a157c5d938a0130bfb5454d9e6a6400ae65e2c6b5c6a585c259235bde2c07007778d462fcbf480a3ce6f0f5d980afd59f9d5d67133dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000358dda409f0276743bee2d626a36e82a1fc718043ff4490dece9e72b62d5c755bcd9a80274ae873a1f9afb30141d6c61f0cdec5ede66c513d55886159b9b3163e0b06100e5184c504b95e7521c77af4188d8ed3c62f5ba191f674004437de30e95638b68dbff051aa37a1c0428c0285daa085d639862a058885b636bb383172afed7d902a9ea732cbd41883d8e6d7b52625d356feee84a31f9ed853ad267d101301512203985e347ad3d671dcd5a536a42f3d85e55ada521000d8a739d6ca74e4e00d662d88aa0020633ed012d86b81e5f57804bd595020d6e1991094e13535cc2002f448a0e170dc33df5644bd00b35063dcc45403c0d231c358c6118ab4c4266b2855fbad11619ec2278428f49b76b8dd7d94e7232fd0fc1710a1b906a504575e1493d63e78146a5ab9d55ae703e37aa54a231037491032cb508112cb5903aa398ae52190c820a42931709dd13561098f3794d73d3cb4bf30f710394743e1e0ea65a6435fd7b4d8f725c472e9f1a4297b0fa4bc7b8596d71274a5e25f0ff376a5a3a5c0713b467c4ccaa1064b80d050800000000000000a2ce4a123b49d941c692643c5f00fc2945546370a67020193094033a4ffc843e2000000000000000c6411c1529d1e839a5ad0e2405a9505e8091fe09346d0e4d7411271a24c80428f5af920d0082017396db5c3dcb85015e7925460a6cccbd288ce2880781e4fb5d6a638a59c900510ce424d82e5301f9665928ca717a598f7556603e3176908e2abeb1b3225cc310304464b6312ab5362ae5e1405ae5604d2a6ba3112511cc961d2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000003e0d066f8b0ef02e0452c95bc8f21223b4b83824fe398a2b991c860f509400140800000000000000bce3d636722e055d8fb0c309fd821f414d5288517468af458c4df03307894e450800000000000000d25e8965cfd69b728ecea33a0126bf53cdf0b42cf5c74b435ebfa902024414400800000000000000f427f45183c2b9018054655155802d44f028641167b4fe68e29ef162f1da752008000000000000007365744ac9d65b05f926a111cb48eb6419dad1068913982974e14b3b9241a72f28000000000000004e77db6aaafe2917d0536902ac5146577af31b365b9d9b4225d7612d358265424a307321d18e6a6c15d2b00fddffa90753a4d475f7d7cd10c7084c009ba6f84e6a9a420f674e0709a568b23479d9e01d9f9cb744bb7e526d35d7bf43b9dc9b5010271b7495a96e2d9d81f938718f194dc7650676285b175985810a058b332a2d485de2241886ea3dfcd2ff596b6a3a4e2416792c54e7f25a33465454074e616a1100000000000000d4fb8169f9a1afd0bea33a6ad5c314d32732a589783d2a558d399047c0d4a183064d82deaffa6d809796d89c96cb5be66b653d254f9eda09fd54dcb9d5d5671f7224d1fa9cd57987d99454f823c2c536a6d652c66825f47eef36a5b36ef3df539e7b1fd34a5294ba6bd038a7042da9c7cc582bd0e7a181662fe35e65e2a7a450677868e350c7f7de646934e694ae6c2e3a35d65ec7aa54902f870cd59f7c489dacdb6c5731735dc509fad467d6c417470ff9e3d55cdb12adff93f63dca37977454c795d4d3d188bb2668e8c00df2a20f642b2a45e794b192d86c38c78b46f9c20e8ee2ebee5f71d3493034c55275c3488769adc297c1fd4e24cb56affa5e98c0be16f6ab451192815ef68203d6889756c843e7c4a8615f69336c49d7f7b74ecf88979a32b9de037e1da7b54a35b3462874c461f275414e1df90e4592af198a5b904de56189a70b223b7724a45e8ba648fba1b289b87e6a39e0c949c977960c09c270910e06608c3396d903f9bdc0a5303ef41e29746847a019a8a6c75338bd9470361858c64ef784e99a131dd8d7372d8380ca32e5cf6b833d38e00ac4bb901b02eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000cd0df72c2a8aa3125caec956cfc9b51e72c7cb0890adbd4ab289f9677d58670708000000000000004c15e02328863850526faa346fd29e50197ffb595c8ecc0284ed292b6daec62d080000000000000070e9fc3115db637391884d13a828bc5fa14b7218cbdff961c957fe3b8347ed180800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000778f73230b1de0635a26aa5a5bf4b003e1c71d64d1654f4c943f9728f3e7c333080000000000000012d2b62597ff3d327d7228166b5bc84d3a3a5321bd602441425f870e34ebde460800000000000000ead2042424ad0154516bf8735728ce19349290332c81b615e59ce54524ef493f080000000000000012741e5829f8694a7cc2136457addc1559d8167137a5fa0a161c9d74f555cb4008000000000000000305d316790978413d5d8a5a27bc4408372b1f658c8d773b58f4055b0c317245080000000000000032d768642247500617e00e1c87063536579f7052ecaa2b1786e1e66cf59527341100000000000000827a3b6a5b29a3803a7034b545eeb33714ab9ff115b85d759e42081c86e87b6e644d62886a15be941155d917c156741a3710f2945b995be6b0cdbcc92dc41659be449d71760994ccf3821dd6cd2da3ffdb59fa7e0d8196071d178b0b95bddc838322056b1affb7fb5f3e314ed16c115a80f30df10e1362bbf172b2e96b1576fb49a2949cfe7a8d5412919929b3d9da7523e649ac6e0b1c4d3f5aa9f1912abb1a3ae2b9b0c341d2b59ad7dda8026e641499ba931aafffe8e35de044909b80c2c1a9e6d2454ecb0e456b5014b86a7cfa46c31967bbf815524a2b10f33b4128dd4bb5d5da7ef52968dc0ef88850138f4039879e1c6c6829cdf1506289223221ec9a2c501fb17ba7f2c320ac6ed7b5cfc51723cf3078db97a7f26a688b99403c074550658fb0f6108f19d31bf5d2d7024616f6c6dc1646c6243467754c40959a6293e77d7439c2f4bed544bfc294e1991f6e30ed034ae516d1e0bcfb20bc087ccd1363a42dcd26067365cfcbdb61d82da6e8a153b5d192c81508bd02389dd032e998de6ef46e1357822b8fba5dbeb77b625b6cc57f3badffa6a49829af5a85120f5f2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000007462392dab4e77762fcc282ebcb020406773946f0000000000000000000000009892264bfd72ff03879a8c49879a8c49229a601749633f70367ce021367ce021fd593e27e540474d43ee345000000000e94b3e270000000000000000f3c5125bf7ab832b00000000339cf24a7b041206bff7f1670000000000000000caddd61486ff4f19eb439b1eb915f431b7a683228e9dc64ac6194a49f6144249ed0bad62bcfde5547e5276344b6c0c3cd7cf450c45e1c50e116d776699e8cd6a79373a0d79373a0d99e8cd6a40669b57a6fc54115654a624dc0a611e66e1800324560f5d15bcbe5315bcbe5324560f5db0881d5c32c5075be900be4caea52d34ad4c43541dbfb82ad2830310d28303101dbfb82a68507d371d752b1e14037f3d4e92315a00000000eb175e468aca1e083ecfb76c405fb51aa02c5e1a4648a8277954685785c10f452a3e621f07f39330b4ce781f1f9423491f942349b4ce781fabdffd585ce2a457d510044657c1325600000000000000000000000000000000000000000000000000000000000000007462392d207612616a63183b000000005497480c592dc358bbd9872f00af6b242500000000000000bf54063ecebb8e74e58fce13000000000000000000000000a784e7250110d30b5071774450717744ad35df13f3e007580fed6832d38f773576d5985a31d33a2d1a16c542eca55f43046598120000000000000000e494bd164ad6ff289ad7ec1e08f18a76cc866d477516146e285297011375f0619f19ee1c74c3c3438240363ed149e11bf0bb180527fda53106187a73460d7b2210000000000000000c836c70b2219b2cd33e0377c259b372ac9895071292277268b6b91cc1927a5c0269c158aafe4a105654ac3b3b9c8a291131d60bda15471694b70c57705b583e100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000004835e372000000000000000000000000f6672a56000000000000000000000000000000000000000052cdb81c44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000c780bb3c000000000000000000000000a8081700535a816d000000000000000009a4d372251a930500000000000000006af32b1f1b80531e00000000c4db5555000000000000000000000000c4db55552ecf8174484fd51a484fd51addda69528d75ca0baef7ee1d3d86b9285e272f472955930aafa73f005b771a5c82ce19560000000000000000484fd51a08000000000000000000000000000000553cd41d00000000000000000000000000000000da86b1160800000000000000c27b932a033b6d450d4f426f5f2dcf2c1b6bad4479c1e7454b026e20c27b932a080000000000000000000000000000005104d940cf9a4038d929c115fe328658fa9c2543e08f27502200000000000000f0d26c2cc1ba5b0e72701b15c90f611306febd1d2587af27152d133d9b217c2413f29252399d486f0136f92e76d3eb36766f5e300dff790ef97df413f0d26c2cf0d26c2cf0d26c2c17aa016e17aa016ef0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2cf0d26c2c00000000f0d26c2c1400000000000000734b06033be4974c3c932c43729c710c37094541fce3e5276ce2f736acc6a70478e66b12ad17c05a3457e30a157fdc57000000000000000000000000c0e12d2c775ee50c000000007587ef70000000001100000000000000b960ee76c2d98c84f1b7c9f4cac947327b37714a3c2b32d022870f0245deb4eb279b38a1b5ff507456a71d16d45c38cfc1c12cd8d54b8cbad81d2f3fda59eec3f3e356bfbaad441ac0642bbb2489414cf88189c7c8a63dfe765de1c42db4c3cf675782b022fbd5962c4cd3edb93855434c0fa361d13e295c09445980b5d54a5dc7cb0ba5efeb6298cae75a2e2012327e81cf4e1c4c2713549bddae904a902a3f538b2245a664778be46a8397e0dd81e2343529f25c4366d64075ec03ed288a3638e0a13dab4c82f861dcad4b3802c8107f6edc455ee4f21fc04ce84c5b78b3b2ccd4114e9411d4cbcbd060824e3503fb398cea249505a4a9aad6ab4ae6c2a290b09e7682d0b9186f345f9e2a9e6c5aa469b16835d29b1d82fa6840243ab02f169c985c29ac00a112924ffd324a833af975fd625c3efb9280c8e5e0dc99f2b22a6d651fccf6fc54676208aaf5afb08a9a5c8bc97223ac69c1de790c1bd1af2554fc63bdd24baf85929ee56da58edbc25c961278d42a5ae674eaa2b4ec8d0669b477f11e7a239321e3904fd2e7b2a5042d2950a8914b9178674f0da352f20d789df12dacaaf6d4dee4bf2f774528e812fbef524ba65018774d70b86017998b34b310fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000005d4b6f15d61c3d5a086bdf397760825aebb1485be622a0328220196ad9418c161b2afa114f543a58d3d3bc28c0127b3b8a95a434ff919a68888fac48ab6e6d27ee98436abbca08046271c3454f08cc1b4245ec355b44f36d1bc41531b34a4e2f38cb4e0817d4ca21dedba90b93e9236fdbdcdb427461b9449d6a6a13acd15323fdfe485a0c32e859d4490636783d4352dceb99603c56687116db8321114eda52b1e855310f000721737752116dfc0974c5e522028ecc2622397ea901dcc99104fccdf53f5ef8aa24548acd18517c2d6de1546c25fcd91b023c1f433fd40fb51ec119eb73ce46976658da1700ac577967eb05bc4f9c27ee3cdbb8d111ea5e904a24ee3470bbbc392515f7470687516b33aa5c882580bc920656c203432ded63364c8663649c832d68839d76063d54c5230bdbe8071225932f779b4e4863f153479d912b62f2e3b323c5cb7501ca799812e08c1c404e330e4070fe25271d736307f1005667d7cf1d324c590430580e3e5bbd4d24680fdd4a3c0d401d17b1fed41d0319631c0e83075a98a4db26614be93a080000000000000092f2326c17f88935309d7d042ddc9e5c518c8a4c9c758b269e81ac0ce01dec582000000000000000c1224769fad4f76a63bce032ae829751cd86b0258b53b533dfb13c512259420df1874d69aaae7e2d06dd480798a1da11af7a620a1c6ac03423e2f06120d9ec2771d1571b46560651184dbc1d4bb0b545782a004f804b834a8532ab5fec857837ff502a400c12530fc76eaf309ac7671132fa9722fb3a593e571971287e13a8492000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000c7518112348ddb3f4af5c372fdf41f6a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d39e5450dcadb7a5b8edbf5563130b002cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000007dea84328bd2460fc4a24c57ab5c160da8253c727fdcee23eb485a32a533661e0800000000000000170f951635deeb1497bff3424e2ee6382bd53d5ee3164e33b4995e6b7fa6a40d0800000000000000a0507c49b0d1f52dc3c3d62811d007206c72180b6806c039498edc44ec0aa85d0800000000000000ec628e0472b8f568ad58165d145a61152e9b557034370644d482f61647bf0a100800000000000000a870c336aea00c38c3f28e155757b363066a4a6b7a8d1d516796f323a9c416102800000000000000682b404213b927724fac181eb17e812f2620b0552ec2602ca978894f74cec51cb5508f5b37bf5934a6a3a444b14e6639c833b660de9e294c75594d6c037b6b227cb7b23d23821267c66d9828489ea2496ef4834eb755431b05533d30ac75d21e66ad0105883b4b3e022e7f5bef1d300f84315d27d3d1256f46b19c6cac174550a47c001e76153766e0898b48165223616756804a859b6d2a24d7d63aae4603491100000000000000a3e4eae5ccbcec6c31385dc26f902ceee65c94d56170637f46c2683841027989984c62d5f6e443adf6b373fe5aee6a57d97afb6e932d7bbc7dd132724648a61a67390430d122dad2d7302493b4f7ed6cc5a639530d7d5493288e699fef93747860802737444cbd47f959ad7d70f2e1434a506f96b6ceba6dd7cd6637542c07e8b83baab42d097c4a192990b83d5eb66886e8217f81ac167edf1cde2c3a68e170bc92943e032bb31aabcba126bcf3d42ac4eadfd910bf167e5da10fe30dbd9fb009aa17999310916069a67a48a1f24d829c8389753261460550e70edfb8e5c4afa6313d1d8d842a35cfeae1d2cb356cab7c51a7ba4a8ffce79cac3e0ac127cd58af3a61b4b4c4653543b84e5caf66e2f0f1c1f88ef9a4021b1d6ddee9dd24a855c56df932e68f5cb44e11c0db2240e78321f38111b56d78c153f5c697c0d2de81af3b90e4790366eaa591d3675f2af6df8dd292fe802520feae64ebe303bc1cd86c1d9f1755531bef04142fd698b58b2646a1b11357f73a3c3715c6471322fa340e202664ddbc0e578a79fc5acc12ab9d6b677a4dc6b11f0b7444bddbd3bc3b2c349bdf9a7163f489bea3478afa6b4b64bfd1843f6b43029bad1e4ec373d5593523ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000000277df7055bd26059a6b8323c39c3e50777ca75de9ea7c21273aee62627e70720800000000000000e28cba24d9ca3d3141788113126d034ed9f0435235e5ec366b6718614de7c23c0800000000000000f7f6ef69e8f0f13f5cf9c102df31020a9dabcd54cae4f61aae012d62587c63590800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f738065508000000000000004716f13fd0f11d710ed1d71cb24027555caf40064d22b23a840f7630ebcfba5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a24450800000000000000ba57674f10e9646071e6876a24c0f358082d0a0f014bba1c9628e877c8a93a3c08000000000000001a1ca81b38d55e5fb881865074569d519cac333cf9999f37b382ea2e4f4407650800000000000000afdd192d155a4e15af9ebc27c8de475a9ffa8a3836af7735f5e44677437a6d2d0800000000000000fa57384c908af51293bba3778eb07d1a112f5636662e0646cb57d641600c065d0800000000000000a7a7485a4da0f671bb3d0f2ebc7d9322909d9857dd687449b337e5665196103a08000000000000001c5ffd64a430ac1d3ef54158557f576f9e20d246a466c4029850bd6c9d8ca23211000000000000002f3a818da4b540144e6c446ade427d80d5a2ed473f44d3e529a73fbc6a7794122cfe001f61735ee29b4527d2d601f28892239e6312080b57f9f902b3af7fddad033503145ba9c2ff9ed54288a7a5dafec70a933c1c9c0ecf349a46ee120d49cefec94cfae4b8ed31997c25f3271c30c8a8cfe6c24bc36d8a481c1a6ab20744105bb782bf0882855c440ff3f92a225e2fcd31eb9a6dd0bb6f8b943e848d2e0761b1a4b6480fbea3158b725751113879ccfeb7cab4b63e3f6512901ac39e5e5a5017637668d34efaf7d4109bb78199f5d40fd765f9e4d0b966516617a1a965f43b453df843f132e42e50ea28ed102c2b2e4afc7429bd5b9bed9ed83962502caebd43393365be44aa1670cf79b0af8d73d0ea03f7044ead809ad42b154be3349ee55aab150df584e11b7cb3aa36931f863581ca8cc50fe7df0500b3d332394292f0ef1c7ea3f53358c44cc0c25976f1bbe4bf09ba84996aa8585e2ee4945b93d063045ac3173c156a53d015bb19caf4a964d2006f058ad9d07708147380b27c358527d77f78ddd29434571f78189b5db777ee4bc82593c8bd5762c81910fca287db29fe2b5c19a85068e051b62fd3e76d2da898378468b5f3508c641e7c65655fc77cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000009e0f910a0e3bea5d50c05538ae6a890b6e34a35b0000000000000000000000000f6912043450601c6af4142e6af4142ef0c584468c5b243caac4d248aac4d248eb789356a9454f05a16de21f00000000254c693d00000000000000007b559c4f4dadeb26000000006784af7796dfed765a724e54000000000000000093c20c55c04a871074e23c11ebdcdc429dab471e64f06e6dfe355b1ab634a058ea61d6294b25b3534f231204fb318c598b65d5277515e11088b82b06df37f907b04d6e1eb04d6e1edf37f90722a8713917e2cf157188e35624b47a4e4546f90be4be876be0e55254e0e55254e4be876b38dccf02da808f3581c40a6c37d2ca27b10b396259bab07285a07f5585a07f5559bab072db2498298e218417d5f01963b88c755b0000000015fdb86beee43e067a9f96535c3de245f3dab3270c98b8233ffd9564631f34529adbb703e34643649ee41f010160f55e0160f55e9ee41f01ffe212117555810a2ae1e12e0a44cd7100000000000000000000000000000000000000000000000000000000000000009e0f910a8e501674b40eba440000000059ba8903c7c83d43e23e19504146fb03250000000000000094c85d56a0f244648416f96f000000000000000000000000e0aa6e6be8250d59dd100f1add100f1a1ec6e41e38b10e089eb9523e38b1a243bdafc82e1f31b63516e7be715cc44a28bc38f948000000000000000055148543f9196f650fa14a23750d1440b02a900a522c8b086d47f2576b2a4f2ba9e4746df9f537620ffa5b4ca601a36a336287029cf8c56591b9361532a0cd2810000000000000004393fe742fcd3f655a5f360e7c259a0bf54e5d0732786e30d066d0060192826c70cbba5a0d7185189f3a0c7033f6ca5d63e49f290d46a90544c72e3d2c99b4271000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000f6d13966000000000000000000000000bcfcd57025823f62000000000000000018dda920a455e7500000000000000000d60652416498e54d000000004466fe120000000000000000000000004466fe121a6d50547d05362a7d05362a5c823558567fbf0d855dfc1c09320c45c096c34c1f3b24277cfb955372ce1e0a8833fc3b00000000000000007d05362a0800000000000000000000000000000091990f5e00000000000000000000000000000000a9c77c18080000000000000031dad713a0c4bb5e9a72a429fbf7982e515d2d267d9dda3f1e2dd95f31dad713080000000000000000000000000000000f56885489498358d74201219eaaea00051f1d6b856bc3432200000000000000cc06a837823da7047ee38526096cd837bd16760d0e7f222777b239575c0a9646869a1b2305f1a16184197008da17fb0db11d79308fa1473ff6ba2918cc06a837cc06a837cc06a837b955c91fb955c91fcc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a837cc06a83700000000cc06a8371400000000000000c5dddf1e2f88321e54bbbb33a0aa56094def9a4d562df868f1887d1dc9021546ffdb9253c9803810ed4c100ed91dfb120000000000000000000000007747140a1c8b3552000000003cce656f000000001100000000000000ac961d13ec6b4b8fba1521ea5491b70218dc7ae59e456039a22f2344ea08632bb943bf8ceb2857c2deaac760586baff3b949b9cd8ee92c443d8399d7b87dea12555fd6c480f55467d0416fd8e27a6cddf9c7dc562b6e0d7599205c17d9dc11d420168757277dc8f6b705f477fe6f6438dc0f34c0b0467a02da9c0b64c900d04019d85cd079a4e482cce080c9f0c23b3b609a338462119b30406fd1deb2f5f1bfe84ae5e9aa6125a07e89902528a2e33c7ae087bd7a7e13738fee3cc869f30d3a339d37303ad8f53aebbe894db686c07205ab0ceb4438ccbf3a846f0549f1882ce175bbc2c706a8de66a4edff5e6f1138384fce5f1897a5caa991609b71baf1080bf83ad3d6bfe4442145728dfb6b1708a8e0b14976411aa749ebba4a45f8fe11becd857c55f7488a05f23ee8f72f0452114c0f26fcca76154b4b720aa8532639f626271740b2d0fc59c710ea062f2a300f3f6fd358a0ef4fd930499406869951a033d68cc0a9f9823cdbd52534a50e4f5b2a92c503f536be6054febbcc1cec1a0f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000766c07612303fe3fa15de82041604571c8cdec40019d186ab05d9d0a2f0a693cdde187229f3ef4503687411a6834640089faad433268b540354565726ea27f5760405f12a294ad6c6b107f2cbaa87626d273fd23c5745749f70e3e2cf369113e3eb07c1c1969774a6d154751e45bd169d84e7334564e4e467d7ec05f44ed2651c6fb1c3d3d30686496963919071e361eaa41931570dabe39445bb96ee6260e538dce164c4cbe8a02b634d0637c1dca408b04ad14c7d5c754f4d27c43903b7c657fce434c9279b01dae8e1b5006fe3f437b1b6818b3f3e61163ed23490ff7c5386fc8b80678769842e231e0679b1d9970ae1da43730bad93a8f7d181f361eb92326c16d08d8faa62d407c301a7d21754605dff141718f7f5c303324069a980750bcd6b922e1c8555d138dfa0e91c64c46f4bdbd1767441171ac45ad667f58e2680da7a36ee41e895bda77d961465da95680449868f1e87251d3f4bf2eab91405c3337880ec2b0784fc891f333fe0ada54ccdc2d1afb7e297728960c0c43d7db4ef0ab19339d61744e5bc09b055871f25408000000000000000e6e696e195d6e4f46ff57726b6714138bfb911c4eaf611cf081a86cec327c022000000000000000d6509f45226c353fa4dd383142900e301b4f1739b01f3d4f81d8ba3bd9c1e7389f016b073e6828751ea1a937be69b53ae764d65631e2b64b2947741ea62e2067a8d44f16de607d54191e2a6efe32742fff457431a14a27199afbbc28353ba1476ed992612aff5717a7a67417bc267d449aaeee01661e2c44820a9d40830437052000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b300080000000000000000623912e1cfdf22e6162c1567401e4e31e76465f0febe45dc06a544ba31a35d08000000000000000fdaf30bc4810c586ceafe7588f641017dae0b0f9e0fa862c12bdd322efdd244080000000000000080e72f7019660861b0f73704bd49466c29ba6e5ffdbef176c8eea615ad5205170800000000000000c5b47a58924fd51a6d0ea663d6ada34fe6293930df642e069a12062eed38fd4d0800000000000000cc1e9838240db83b004b68658f53596fb447a53ff36b9d233bb5520871b9d30228000000000000009d335c4bb2db7c10b379743bedc6f357130ecf75447e93073583c539f8636c19bdffce5dcd71ef5fd0b4426b2e262303b81c2a72c9cb3a2012e0905ec1d58847f8b8e5640da5f06a260c157773757f0faec0131898745c508a660d5db9b9bd4561dbf04e6a7a6f248328901e954e462e4a23cf5098e8886f5c1ce92e69a83844f466435a38b7d2760b3eb65ee0f0915d364b972ea0e4535a92ec1a15ed957f5111000000000000008479694996660af54f19db1a530919b44b6e95f96f9a41fa4c3014a4450ead0163c45265424c22eee897b16a9075abb9b678748be08ec773bfd6f89ea40e75c0ed75264981790fef8701c9e2a0e10f50f556be3e7f02fac4c2ac4c968933e3edc56240608693fb32f4d9a002e09dfe87d9e6c0eda415ac3e5fc7397019e50a45167a8f077d3e543c98cc1b5ee2e0c84936b63869c2b5003691dd5b7ef75bc2edf4ec9b48473c52d9bbc45f56ab6e77ff4cbbfaa42b7cdc62f090fe5a0a7ebf9f8e52fdbc1027dfe04a2cdf5843c8afa88fbe91e23600de07dbd69bd38dcbc29681750c14398580ed367c86c318b0a5338dea13a73a913ce2cf4f0585c9767326b7c18aaac389d6bd0da14ee9ac9f1b0a5338e8a7a7ee176a514089192e4314cf48106f18f1930a8130c13f1d338f933cc364836d28b7ba9f3ce642f7ef027c165460b0c017f30c97eea62eab1fdea6d284e453a66b6b148643e8bd0fe8ae0cd1c0efa09022c0a14314ee2df16b716fd581e3b514be48d66149a412be04dd81d3949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000f3b3e62a98f0e411f55e486c40d16b41fa94d50f89309d37f36c56476efe620c080000000000000032593a0477a2e722119c4e1a801b6d283fbc552d0e5adc75656f84750232445f08000000000000006cc3704edbd9d40caf1d392249634b06a157173db51ac71e07222b3c6f013e5a0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a2445080000000000000038e0ac1e845ce339308a461df47c6e1db6da8316472e9870fbe8e8202bd0d76c08000000000000007dbefe4e48d54a37f891e916e9bc24127bfd442de7991a3c7b420a30773c015908000000000000004468011033327f09f5255c6661921872e8890e473fdc50728c487c0cdeb8615108000000000000003c167e63bb7f1a074eccaa12d4a9e634fca94e57d321754d5094c4497096d10808000000000000000e688e45e2110107621f776c575dd018627efd1db3eed35f8faee85bfce85a750800000000000000c56ab01cbdb74e58db371709f779270735a4f025f0a63c4c84321135b642790611000000000000008e934e960fecf54311092303818e9ecf63faca1ff95dda6c7c6bc8ba6f57901eaebd90f6b1f855d7ff80dbd9bd26eb5d7efc8092193be2ebbee2263e230d26b6d9eb94ba65f3fbc61cf73d69f292f5fa83d902c65f52723544be693cde6461c2b3607e9b37221c8f1e8a00d09e1ddecb4dccf6922784c965430d93799c05ec4500584fccb3900e10993d93e926c56c9aa0c3bfdb0c90d2ffb7aa80dc6a2df03e5c9c26a52f59ee29ae56e8fbcab55bcd2556c38fd2fe6f52c25c191f1c92b28645a9a3067b48731b8e9e6640b22586fee06157cf3d342bfaf17417a025ab5ca441bb88e0ac7d3965bd169ed016ba10409605b689a20d752dc97c6f31f7a85ccac765c058226fd3ac95c943b1d9303d27f37c6fbdca969b4550d6ee86cd6010894de53f053f2c55c7b0e936066da798ebc746678d04edcf8f0966e80b472ad014e4345aab8e13eed342f07e62680d5f3ec32270af6548fd31c31642a335eea14b6babbe1f06d09fc482ea6d1733426719dbb0d23bbb0ff7657009aa6224a694be495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000023f2a05a4ff43e58191e5e6fbb681b4555d3050f0000000000000000000000004c7c0610ee9118140e548f460e548f4684a6de5057a24d004e922a6f4e922a6faaa55833bf39b31091587e200000000002bc0d700000000000000000e765620161b129200000000009f8e25de5883913e8ec4c3a000000000000000060f08237f984835ee70fc143d5a2b12df7f44760df0d5f1d00a0f22eabf1731800474e250e187660070f0524aa244d74d01fd06f0e6fc602f06e6b6e3ad76b064e1043774e1043773ad76b06489c766ee432dc0de9d08e4efb10172a7b4d90052fb73a237bcd21737bcd21732fb73a23fbba5f52c55284125b6e4a66f4485e4a050e740b43c64c673fc7723b3fc7723b43c64c6751f1131f48de7e52dcf01d0eec42fb5600000000d07f3f2aa7732c3da6ef911c8a77f66ef7314a4086e5f617345c6c3fc0c9d82b560dc5480c1c7f1526c44b15147612411476124126c44b159d0439289e19e420603b332ffd98d92f000000000000000000000000000000000000000000000000000000000000000023f2a05afc76413829744b33000000009bb92b73cfeec0334a36fa2a575c831e2500000000000000f0a9a1364dacc556ffd3a26b000000000000000000000000dc59eb140efb6b09a7879101a78791012afedc5dd942ca169cc13b175e7dbc62f35acc47aa22fe1e694a5e4bff96244cb67d78000000000000000000dcf770370b73bb7431b8b93aa3dd800682367d6a189e9c6d34987d5561c3a02bb2db404b8032e8422120e20796fab6314c3a615cde92aa108ee30436d89bb85610000000000000009f121d0661618d0ab2d44b6a20987623c047f84429649c6e7da26a0a14d54a08bba46848d1f1775207b80c10f8fc190efc9c9069a3fbd93b576ff06c0381fc52100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000830c9c17000000000000000000000000cd75470ce3dd874f0000000000000000b213651e7e51905400000000000000008ebc6d60ec5c0c6c000000008157d73b0000000000000000000000008157d73b0e144524f9705118f97051185294cf30a56a8a5221b1d13b4ed92154b338c5725d9c5675b4813c59afcbc10c7664b5000000000000000000f97051180800000000000000000000000000000082fed35f00000000000000000000000000000000bf733b310800000000000000faf86f4550e91c16eebf755a4bf62617c79d1a5e6766a01fbd0b9506faf86f4508000000000000000000000000000000bfa99e48493fb64f3e6d6266442b6c654784b2295c5d934b2200000000000000af918a5d6775b541b2eb170738a7014e8eccc5286c9bce402deca95c2cf4ca51918164674c83ae5b0ba8730a71d51f77387a7d160873ad6ec156b51faf918a5daf918a5daf918a5d1a38d8301a38d830af918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5daf918a5d00000000af918a5d1400000000000000f5e67e1345e1761cf98c3c4d423bb95a49ae7c0d4b7dcc504274f734304d8269aedbde76fa935a411cd65d63a1acc02100000000000000000000000066b340536f63e82e000000006f0f9f2800000000110000000000000052a102d18774899238783091288d94aac844f86aec7f4bb3efb4f36dad6cd8a1a2ef0ca91405d538f25287b8dc7e928e4c7869cfc4754f532883b574a7d6ef43840a7151dcaf3ecec77b8e6e7047e4d7fc6c059f3b23ad615d9da16f4c5b7d2b7bdf76731b22c2170f4f85ea109a0abc861a4d794010c1d98001d8ae821db5d139be0de69c7541892c86489af28a463509126091889ff216b838ba6426bcd1168018c1fcc4dd56207f159d50fda204437e327c24ef713477a8eba184b7c624d661fca61489043246038a017cfea3b66a5f28fe045d49b8c5fc0dc7abf80c21956adb5d4791901b3dbee5c4e3a1e72e83b95594678f62255150d7344b51379d8d6b343eec91db3b9fb62eb389d347b9e72ff85da1a240d532ac6d08b1c3a3032440aa37776475618d9d916a2b8cc060df531dfcc5383d973cf0385c4a50d2dfa412b44cce825edece73842413441866b6517a45c44ddaa330a0a63f4778836c960971412e2e20ce0896910458bbc4b008962d8f1d72c3af92acbf4f94d855b51837dbf6e6c6ddda0a6851e36783b4b29ae3a1ac0d802898dfb997d678761df1e939bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000007530c0141eca926f4bf87765f3a0da7132a4ab2c5a3b3a3d054cc25045b43947ad9a8d1b6cdfde02289f465167e70b32f6b6441383cb4d0e5138901db88f792f980a934e9cd7883b9b3f317253a679284d31e3112018c90a22685d778eaaaf257a1b4938a7a53331ad7c3e1458b395678f2fed22cc869909ba57f43749b6e31c71a2b170f950c44894e3ea76753382713dd4af572eba7f6e62a5245f4b3a8a5af3d1701290b6c56a08f586017888410ec8a31f2d1819db2f70cefe77eaca4e4dcfb11e49a51e55145c264b65bcbb430f110f4d16089cd20a2a1b5672864e681fdfd81535aee4d837c820953d17dad25c4d6d43536dd53e6307c559300f40f556f6f656392bdcc31efd06c62d4eb4ad231c036e27efc38e352909074a2d8be753ff69a51d7ce66b6ca491ff569e1fe625d2e96a0b8cf823609faf243b22a1d858ec6f7a17b2e00d229eb5d84b19bced1d63897075392b8f62bdf81a5c6e113a06df154f5bbef9090a7a1d63374c2c161c3f4fec54597e77524916ba755696d271330f063ca405625fb407af3e9e5e6f600800000000000000da526873fbf56145af3ff439b71d13406fc02534fcd371300c525e2d54ce920f20000000000000000a699f0e4e43276deb2b9a2b682f191571ec55212f38d10b7334c235b1ac362d482c9c3ffcde722a454ed6579d22ac09643fc7734d9ccf6b5034da766e54f702105e605fd438d1371e16671e4792e22cde990562aac7a05d7fab8e3eee1dd6720139611181eb2e39cd231749143eec65ac3f9f617656411a49f96d5ab14a7e032000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000043dbf059e734fe2147db4b49ce0636129438a07786ef923a4318f8032a8c5423080000000000000057adc51f638a6a3b84ed5750545ad91eb556652b92923771762a5b0f6768ca580800000000000000968cfc6d86f83f691ccddf1d73f5a75266c31b2fa5de53410f9e8c5cd6557567080000000000000026289e3cd350931571fcfe441ebd870aa2fec939a268b82253493e14b6099f2408000000000000004eafb6115210d24460cfff11f827b94d1d5d875280c4ed7438d66a23bfe49a212800000000000000f7a10452908b88554c75a600bcc6b175e4202759b48a1b0608a1e53901a0d935fd5c256fe4794f317be45e2df8eb99329a2d0b2917afd96b55844d0b3b892318b792691dfee019353b606118e37b0828654e9315c7c89a4447556e421c92e7450d37e762aef0284d9ce8d80fa7627455d787505cef54f1558670dc34bb761b36ada6545fc14a4137320f6b5058403e467ac9796688b81a496100ab1d4eab76121100000000000000b7d289bd0aec79d787c408d33cd23a6e8e960008d99437e735449582a1d209d336627ea1ba750c4adb3b9826c3db483b5e6f3b9013ff1f0141918874286ec580bdf3bbddae8dd80076cb95368e4f60a2dc5de26130e7652d1d3ba3aa51e085ea47804d11e4df32928543a614b8371145988a365ac3c52537e29ee8acb67ad2fd2c1198c7a3516f118d6661b17ac77eff4e4dfe65921a10998ab5d99ff9fae94bae20cb5e4c8e487362007703866d18671309439b30ac91307f1d65baf904540695e9a9475f44d31d869bedf027fdca8246ccfa8d38bfd7a12f3e077958947819e398209b45567d2d037b8f069bbda3a09793759fc95654f03ca0abdf90f505ea83e3386f89b76aab93a0f6990f310c429737561cdfef353a5444af7eeb1f7c3be71ca2eb5e7fdd6cf901a8e960adc23e665d2239dc3b3b7b29be5784b881e22b01a254c4688ad862744317bae7318a284d1364281022513244ebe19504db4948a0d2d0def3c8b6573365d15e18e0e0d145ebe0295b9d14ea050bdc991a0cb8b2e4ce802f8c85e1a5370e905e0339cb9436a8663ef0a40de7471cc421a7e2cb06eebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000430d290f5314f54cc188ee2a7b7999282c94323585403142d8652a49ec43de4e08000000000000000e76094b58f6ef318a0e0667b169393c01c0e765f12d6d1b4b011547e1334a550800000000000000593d7c55fbe433035b234d5c4a868a41d38d5d0c69f47701ae95a6221d09f54e0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a24450800000000000000a8989c59bf6b1b64ef38f637dda2d201f9151c03fd7e3d61d6fe583809dba15c080000000000000010d62e29787be719e2643611d01916039a475147b0f6e46a8385fb6db5f5f34708000000000000003cbb194cd888df4b2267814a3bdbbc4d3d97a6074103740b844b4b42cf99204b0800000000000000891eff67e640ea4ab2152c125ed0444acdbfb62e53c2e95ec96b9173a8635f2008000000000000004c707051871e645f377f113a5708800ef2805d344a7d82015fce0c53d0ff401e0800000000000000d378f200956bf67094bac41dabf6f4762230c23cab3b1503440b7f51496777071100000000000000ade878b38e2a9ef82ffca3b2851b1ae1cd448a5ab7a5f8ebb45f4c4f0dabdfb2fa6c13b2302752aef05383222c72adc254be3ecc6ba4e21297a2a483c500174f0dd816164755185eae67cb5481632075a98d96c407aeb80c9e1a589f06519808ef7ca2bb87c54c3b8ca60af074944389843d5224ca3db903dc20095db775e4b6fb669d2e1c65740477c554bd480ad82b57575bff72f3fd016d71598c545d4192b6a67ad0420a69960f019d78f889a3d90387de2f75d1fd8d0ad6ddfb0e19b7f8380f808496385d00550ee9bee3875c714cca7f833149df9dd88635e57c490e32ddfc8a934788c46a1354ea58d1feef6f7b252a9c088420affdfb403a6d43c843b47eb58d29b34c7b2cb2001f57b58bf777bd4e369b08575031aa30a96770aebb35285699addc6322f93a6cd0b245857d138412ed89581120bfd0c95500e733b289d34329fc35d27672d6480a449f7e1c2a4d818480515d9132d9525c0d8b49afab43447598c94c51065c1c4c2edfdee854c02db7e12beb47de2920e3a3c91543891200d06afa0056d35c46b17a3564c76a9ff8cac2830cd05077253fe25fc825357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000f6b85d01307d523f50e5cf3994a768011769ac700000000000000000000000000c3aa528b0b8280a65b2352765b23527a0147b416ca897731bbbbb3c1bbbbb3cb103b964c9ce20230f3481350000000031f8993d0000000000000000270f1b058ed77b57000000002236142e251bcd0937783b09000000000000000076432a1648fb5a77f410285ec7995d39df22b92c0c47a27606a7614b33f3d53386a2b2057ddc22777dcf8b0079e88e3e37f6de558e6bff64d907c610d5e319472deb96282deb9628d5e31947d0611666fd323040d8025a77a93913460651665882c7eb24ca79550eca79550e82c7eb2494145d3dc3c14f65fe0ef16648a2c8561903cf503931df54bf6e674abf6e674a3931df54888afd350096284c83c40613bc90843e00000000873fcc72506dce002d05db3d3920102daae9d1765497ca6b09f1b14cbf28be3233d70346d566377246ba63070f2a93700f2a937046ba630701dbf66c3b0093502ea4b80a32f89b2e0000000000000000000000000000000000000000000000000000000000000000f6b85d01db52984a3f7ff55500000000c389cd5a6861400d1c8fb601ee61045a2500000000000000816d8923e2c82402c0067c6b00000000000000000000000001b5e443a8f1801793f8561a93f8561adbdd042ea6ded23cb3c84e37872f9d47032bec0d4129bd7675cd4f232050890b4ad11c360000000000000000168fb934d47a530aa3be230ad14ab0600541943c107b3d6ae7d3501062643b641cf86c7785e0d25a0f88f33140794373fc792d02bca8c84cb278426e5a7dd3041000000000000000ca8ed536552daa38a391a65ec528de062efdeb05cae2245f0f45d20c79d83d18665d74108320bc2505adca2745e4946af69b2c1f3b9d0a04f3c78e727f2ebd59100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c52300000000000000000000000001000000000000000100000023000000000000001528a169000000000000000000000000ea85d6683415506800000000000000008b6cf307b0ce49050000000000000000d7ce4918b18cef6e000000003db4cc2d0000000000000000000000003db4cc2d14831646c40f063dc40f063da5dc830eac0c0827c4224f1fbc68b15729ee2870162a216d6774fc2dfb3af511b0e7644b0000000000000000c40f063d0800000000000000000000000000000044851428000000000000000000000000000000005e4b201c08000000000000008855050a8ab3d94bc414d802609b1e48c5e9c42f922ef730cea769278855050a08000000000000000000000000000000a3628273d05bae763c5b240bb18fc4680a3f7f4420f297132200000000000000a03ba22f5aeb8b2e807b42751cf066759b65773b8d4b2051ca139c3bd9a28959dff7ec740d14773e1b410512afc0bc77aaaf2d60b87c1c2409bb8d12a03ba22fa03ba22fa03ba22f21fc070721fc0707a03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22fa03ba22f00000000a03ba22f14000000000000007c95495339c67313696686134cf53653e38eb03f066f20424b2b540932af645905bf7d2a1ac77b3288410965f881f25e0000000000000000000000005ccb3d642af88c6300000000ba3f175c000000001100000000000000fa673f601be68e7c13639ff5091f552481a7b6a53f1f34b3685a93c456656b45df84997a0e9d66ce38b42c205fa3f24946016a8f0c8ea12d60145a001cf353b10328a67cd808b56d0074582b89559c35fd474ae5482bcc2f9990eea84aec22f8dd2dce8809eb0b7310bd2408f023cf55f0c91e22a0c8ffba7d421b9fd61c05279c8dd7c0b4f43a9479379f03ef735bc33664834c58bbdc5b1f724ea3dff1f087bf39c3b3194117497ee37399d96537f4c8285f29cb5e0190c877528276b478f8882bda17a04ba2420f455615add6f4217368467c834387fa434a9b9594a95574386f6564bfc6a3d1ba8daf4c27c34495e2812f717939c71b9f49c6e8cd648d6a0ba53495bb203c9a00a5bc91ef57259592d6b46aeefcfe044e111495241256fcb86c55561653c2924949c65a06c83755c23f35a09485837fa26656479903f1ebfc4b22b5b91f94a6a3d7205a606b8071acc61afca9398f40b37ef3a8a147b41e8e65ec5b2a4f81fe8391ea88da7dea8c5c7fc421f0597187069857d88ec04725a8aa8974ae33079d9d6a8642274190f9cd637ae4df4927a5d08edad15e5d5912660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000006497c0482361fe3e7c53d953e9b1de3f6c7bdc24f9da5504d4e04b1b988d4500b7253f66cbea95731877da20cd26f34d51f20f1e54a4234f2e00f955b93f233dc83aa55b887962572fbbc03625d33e350c152912e9710539516b16408e86ff2f7c7a4a429241e30b1c8bff5ed0efdc3d72961e43efee5a4fc0e6bc5b639b416349453b6ae672372d92556b2ea5f83041a49fed0291c0ef63b1de852200a7712747bc7816f8377c3897a265237657c105ee0707438c589837e2167302301325497aaf6658c3d9ab6f20308e0a3f078327abd1426fea54283dd3fa7d36751fe148e054f02ca13ade16456200770d985730f8096d4225a9415931135e69b8ae1650aa0bfe5eddcd6709abee336795d78053cc02ee2adc92ab44073cc2118f27403515cb906b52f4e52e2acc39304f8c945e795e1809411c37705a32741937786e25d469f8714d8ac157e9b7c23ff3554730b3e3a0081beafc48fa0f0714b61f266e6cbae632d899f64b25a1ca7340b178156363aa56bfcf300106ac6c079eb68233d00f561407a7660a35b67c2257886825080000000000000064464b73a61a5075dad5875211fce8464b29a84692d83a3965a29f755b0b86302000000000000000eb5b0e62d6b30e6ac07677596b8e9166bfb5560bc33d411eb326ae53bfd18c1bd6654f4bad8cdf477bed8b0fa025dc2dc7273c401d7be919bc4419244e0a216e25aecd2849a8405c4997893e7d74ac193090185cc67975650285f00e7124395889110146a34960514a652465eb0ef945df69512db210db480e719275bf6fd2162000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa1584508000000000000005c4d696099cd0a26e42b6956689a062a67682a0de8a8ba6d4a780e1f000f601608000000000000004bf3162450e27448416e7a642bd4502191d43b61fe05a12a52586c4831e605420800000000000000299644439a75c40062402d38d9fdc014c5e00f0b6489b233835faf141471ca7708000000000000005df767605f16a20a67186f75440c9315d5cc1f31c5007327a825f903f42fbd20080000000000000074b9a25bafa0df0261e9c074e602e66d9bbbc06d39d3320bb91be8620fab361e28000000000000002815c750b9b05118fbf1da641e3e8c3ffb3fb3460ea1a96643de0368b738100eb4bf185a59ab5e554b51e630640fab5ad3c7b6671475455ffd311f66596f4303ca31c8396007a34b8a14270190694b3036ddbe3cd588b569c4adb65cb102de183584a11aaf0a7302e044084f5830205b394a006df20cb121633c8d1be78f752dbf528314144a36393b6e5a067bb66a1ee7667c68427bbc4c4373b7190f7da96a1100000000000000848f77432ab6b06c05a9c638fc54576091d71fcb46030fd85a305558e49fdce1ead5d72d5158f450d6e6864865b62c819cc46f468aeb790947bcf8b79fa19debf5f6d992e04d47b318858bf9103ec0de4fa986bf11ba206b97cdbd36cc76384dc15bfb255aa5862860f1c4797177a3cb4c906cbda76ffc621176f1c69620e56e1e1ef98d7f110107cd3d47bd083fe28d253889a074ee9a51c3fb1f79a3f357633acfae175faa0ca2a4ae2499cecd8f0fa096c24c45454e8c64e4389ca8b75a1411b6889c15c4d79ecd8964606185febf8464e6f4ee4773d2237deb72d4ae3405139114a8424f47c13d614cb15cc000391309d03f7a306dc73b0fa0c600907599990c6eead904148e444ca5ba4e8e087c47d385a2e3f8ddd753a659bc86e4a250c07cbbeae98f9e29010e8cc3966ce14d1612fde0a2d10a5c95dac9d547d58586f99059a558b116bb2eb83ed990d6a61888ef4358ef15006b83070cbac33f44cea9544bbcce016fcc0def25da330b57ffdfb49e9f54726bdb3ecae15afa8c375b986e710caa1df015830256abb1c6a1e6ccfb831acec26bde1cfbb8468a401900d58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000b9d319295e72a15428bfc32e5eeee4288cf6b0022ca2ce435c014d66704cbb330800000000000000790e1d69e295f30015c9226efa305e5d11ccdf37abf56b1871895a7334025b29080000000000000035800d434c5c1a70777fd331c25be552919a891a24ca1d05c5da3e09aab6b34f0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000001e9f392cc28bc44d85deea20e8a2555f1f3cce2e60abaf0b2d1c7b5d237fee0208000000000000008f3c2a77bd1aa45207c33e5ff1bbf4517ea4f3715d776463b12ac62e4fb3b422080000000000000017c5cc04b528bf632929c321da03db256bdaa6622bdbf0463d8e7157bc6788140800000000000000bc149e293be8236aa62d1608091ce2752744b731219fbf320916ea2d9155ff5a08000000000000001b146e1201c9bb0f72b6d60e67d9e35d0b93345dd159cd28903dd921c60a613f0800000000000000155e0c319aa0ec1f4869a3088988e75d2e65d32a6b2ff8206b438d31d9b4e9221100000000000000486c2cb6d3ff2ce369c22c81c8a466c4438acfcaae451b2cf65173e30ee108a27ae6c50db849efae484d8fee555a2f2e58050a148aba56d964ab32b76c446464d19710a724b8b5468cf4ff47d5c4727dfb23611ac1ff4dd319981baf1b53441d7d84f06b7048a19c4bded49586be6b5e50e9488154c9d9a258b4b0ed216a818e3ea9230e94201c7c83454b09bb92f5c796a7a571b04ed7f0c8ae3bacadfc7a93811b5f1881d726eba1e058add29e01c4f8145b3bd0a4f24d72d44d5116d5ef356a5b4af233818fbde67413a0454dc3d2944cf6c4b1e009c389e9f901d983640ba92fd230931f7a427765b7145dd0bc0892eec30504058269e5946e8427ad385e9009ad4400d4080239d43ee96afa050bc53a2c297109c858fafb83ce535e4006cfc2505fe9869967dcfe28d2bff7c3baeb58a246272276b0e840d51f8c1725610caa3a76e2d0fdda2ef8bbc72229ec85b3e4f377aef2c3ac5394f92ade5412913e6ac181564633b025ddc10d7140c23561e669e3fb5bcf30ff6894a3fd719b66b96328056daa7c3650c5db90bdf45dcf713ad0a266cbc3c0c1f5aad77c374523c3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000005b773415501e5c016215cc23f1f64b4dd7d2c4060000000000000000000000001bfd2a20fdd90b14f08b491bf08b491bd8a2492975143512429a7d4e429a7d4e4c6bc96ab199ca05f2fb3a3100000000d2771f610000000000000000a4d56c089203436b00000000b79f2543d85ed571da3b5c590000000000000000a13ad03bf61a8c37d2074472d8b83d14ce29c06ba788cb627bf3a56a8527ed22ed8d432f6bd401324b998163f0138d46119f6d131d4ddb7756355058b2886f683fed9d283fed9d28b2886f68da64212b7ecd200a923e1b2db8e7df6c4fc89367bb0f11464b680c0f4b680c0fbb0f1146ceaa010efc8943659c06e901d0c73e562c80396e516635725fc034685fc03468516635722b76115bff07026c5fdd2238bac42a490000000060ab125453506b174c3e281735cd9318a2639213a013780f80ab1d18ff9d032b99ff0a2060b76b1b6d76ae4b0ece7e5f0ece7e5f6d76ae4bcfe2802fc0e38b2594d6424cbae2d65a00000000000000000000000000000000000000000000000000000000000000005b773415c582d660836db765000000000d2aed5f79e5684e5afa6e1e4669c25325000000000000004e83b05607f21921b6c21f01000000000000000000000000276f2217eecbb9119c09b3079c09b3075198042a3c66ce710fb8881a8669d155b81f643ba0d6eb06ad05f227893cb414404dce3c000000000000000008a11256be5693285155b0768c7abf32b5670c6d77eb8943ce82fe39231bc158cce79b5638fafd4175de03767cfe0060b7c3213021379a3477bc28282acd5d591000000000000000495f7f10f8ef610d9b7be83b10393b04753e0a03aa4b642a58c50e2f0545845349e983472889c2441ab6840f3f8f396fe1711f6f66fe867340edf50bbfd3f9381000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000603aa35e0000000000000000000000005ab87e774e1185550000000000000000ad68fd52e7280e3200000000000000009bf2624b1866455c00000000825ba001000000000000000000000000825ba0011d4e034d34b4483134b4483177ee6f02fa482e6d01104316d74394046caf432e9a63823a88ea193842d47143d579a54a000000000000000034b44831080000000000000000000000000000008a81a837000000000000000000000000000000006e20aa6c080000000000000034b9411ac0be2f1a46dbbc405461491476f13940a9c4a06a81d3c00234b9411a08000000000000000000000000000000e96b330a9a726206cf88c71a48c2815f41734b095c0e6956220000000000000000b6c75972a0741969178c5d34ac2e4db9ebf80974f61f65fb57763451058d093ae211403cdcdb155fc5062723bb462e8e04d13ce378fd5d11ffdd1b00b6c75900b6c75900b6c759f4c11320f4c1132000b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c75900b6c7590000000000b6c75914000000000000002580ad5d89166239c51c0e61e9790136255df34c1966d670982ec35492089716465ded4f6e6b5066c13ae22645971d180000000000000000000000004c625c76b849343e0000000030d3e46d0000000011000000000000008fe163e4c42116f42ac15a19f37c492d78aa02a8a1872bc0f1b8e0cd37d77b553f8b3a206a215eebf5476af8203721e484309eabf72f450ad07d7489b730df145a4ad402d3dadf13431c84d319d181486220a2e596cbae8aefe94e335a03bd142abda06c2d65fd84df3e81dd491036cf57da67f1489490b7846f5ff87e5b9946b96284b1d73e9ca0ff7e6c8747b0d57b9d00c4cf4bd09d3115ae4368f998529e36518b501f88987729040b05426aa071d75d8d37eefb0f361cf755c6715403ea4bfec21a3cf0695aabeea8f92c6fba17ead0208ca2b05cb97c3688187ea420e4d38978b4b299bc52e8501f897640f4b8b9d2cacc6c6b378e09fa243f78e7dd4e159d835f989d53b2e2ba21bb4a152aef61510ff23c624415de2b2a8e1b32a252fecb96ac768cbd72c785f690470bb31ae2fbb96f4819a6c977ad33546129d5c8cc16de87198985586456197c2a473be168d8136529671d5fea4a4efdcb24a6543cc5275dbaa4dc237c296ae65e532d3822720248cb42794673b0c5dd10cec271c2bfdf5e0bcf6e155684436849fe2dc4252af241e86fc62a3ed6a6b5641fdd569dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000093b74759bf85b27225ac9559cc8e926a7aa42d60cb29503e90d50033205e786403df4f583f440242a608bd17151290759cad4c22a5ece34a5fff54175b31e7005f44ff6ee85690186d38f751f622e86354243f6b842a8f0e8fea9c6dcfd2ad4063e71f149405e9377ca08135ba80ec4d6cf530040957345ba7b1bb6ca7a3af70ca2f3357395684190c046f0df7d6c23e94395107b35b9f3d01038f33e5716e054444cd4aac890d4b720f632046cc3c13b692377144662176dd718211818f431ef6869023fa26c540d4b1a30f366c1d48d20d0d645fafd24197fef42bd80cd3523076c4448f38d65f7fdd4572ea041e3dfcd83d6a2c39621c78209c4e28286c358c9955078865d66a7890cc59314d5a284ac64f200822734d7a2b246888942423afa7e565bbf6826e0557fd0046c4f70ffd8c352ce16717265df1970c1287885c66be416eed9b5340d74f8077377479524cb6ec0ec032620f2bca9a2b37967175fb24af23c24bec3b4a14a24822bf9822829fb709426a6c6c227b9232432dd02526e0c9155b8e70493562373264c694570800000000000000e310925c5a99876641267a5c479d4a536e59995f2a64b326a0eaf910b9d31b0220000000000000008345f839f4ae10130aca602f706b8200f8349b1dc70ce4240138465660874f3147e81c565f62623c7521e2406049f86272c3265e62961006f712c66416095316b5931e4430222403b5a3997373b81c457d65d81dfcb9aa16dfb9353d9db22100e3504d68a82b06722fb71d6296f11247d8afe03f234b6009c0587120a4859e012000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b300080000000000000060263e3f41379e096d8da152ff118960cb0eb015358cf85e0318734d6078084208000000000000003c4a113ae78e220e47c3b6126e1add00e2db2a5f50c27808eb26aa211707a602080000000000000022e833085d2bff53db7c58016fb9c23fcd3966279e59a80b0f18366206a9f93e0800000000000000c0c0ec114a1ecd745ee6f62332a46c5d1d1d172aa632ff0120144901aa2c9f3108000000000000002cf56028d8803130cc411c7112600874f4479719186a3354b30bd01964754a312800000000000000298177003df3601ed45a7f57b815e8282755ca4e03b95f6ffbe8e85e9b53d218abdf703b4653870a24c8c741ae0110292a9d2732145c4b3d9adb9908083c15738d9a7b14a9428e22bc864266bb191203cf0bb30169d8d8611c20b739bc27f922108ad9583a21b84b53ef0a32f08df964f5800d507435823fb5daba060127401a6c6ea407f4edee2c4c46250c543ea150d49d0a4dec875725508c9f38b71672351100000000000000ee26df92fa3d40d8cba8395900e7b40a65e2858a67d2687f188ae34318fc9a0662e6abb23cd0f6a015b5f71ef1213c5db960506dbafc9c6d81094254951cbeb0347b802e78434a397d05fa08cd516c2ee1d2d638d45d8616f6216044698b29805e0499f2d08fb6ea5dffc29e58a0aa9b4a5daecc7929e7f080876c8277ea2092d1074d9f4bbdab5a366a99df106eef7443543afc75a4026dd35b65829e61a8c00baddbbb9391d046ba029f23858ef9cabbeb1ce80d8ff06f2bc44a3a385aea64eaf9f028d1088d3f2bf5b98e51768b07c3daede2c00614a0daa59558cc35f38f5cd52c17c932c51fdd5d1d8483a6bb461c1c36f021bf9adf343f647cabca43277134c2acf96f2a4c9d58b73290883ab51f66432574cc25d26d28cd73d7f7bd14aae0425545ea9a6164cc25a72e6bb1385bbe9c383ac2b1e094d437f9414261513d656e6bb4af16eb93451efbc2516c8c66e05f019121b7c341f1b79740983b62bed08753e613464fb10b44cdbfcf6def22bff39a911df6949e3d9882baf5a40ca9300c084d37085bd2fcaa02093984298e4d1d4e49f093bee684b0af54e23ff4ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000bcc8643c4600c040aef6b141210e9312c0b5c1467f24eb5f15a6e903669cc34b0800000000000000ad0aa1452a1315554fbc14076c116c189352645b49a024415a557e0919f81f6a0800000000000000250e6b293ea0c03d706552399efe983f768235195d2a001a85f39746aa9fb8730800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000b63cdc77f28f115bfe87590b71a7de608b11686acfd4626043226b1fd78eda3908000000000000004478b2513373c977c774ce3ff5220332a9344d57ad8afc6c91d178241e2aef2f0800000000000000cdc6f0499271a859200c717070948f581c2a106fca6715107aa3bc714c2faa070800000000000000100a845d84a89f6bcee2f51a5262c6428e2634290badfb1f72b7f061b58402100800000000000000e94cce44b8760b167db6ea58298cb858d362ee6e13063e110b4e3e153d234063080000000000000053134e3baebc6021fa1d84198379e64ec1f6d9702342ef25b4124f008fb318711100000000000000eb9ed24a92c60db95acb0064fe53f9d58888fc8c87b33f17e7926e9402f86d2eca1f84372103dc423271d1a9969a68e6e0e6dbfb1476583af656437bc28cf52d9d5630d023f35780db60a224ef237473839a1bf10895b1fc952f0f9e5bd82e254ed0990e7f27838eb2d66ad4c226a410deebeac8fb31834b8fcf77087b97cc8cf8f0bec13a133d42383ec399df01d94e82ee67d4ce618feae4335325ae5bb5858a962aef2f4ac24685bb1473ca998fea0b84b8fb9f8bb14d94a1d51ab9a90010b4f243cbb871f62a7f310464ab65ac220e040fe8c54905748a16028c111c5a2c93a418bb3f5a742b86c0b43b2b0086e7ca34a76639a969c65bd3e51cd9bb06d4405b13dbe230a0358933feab18215a15e559b36a427705e5d66c3beba0adaebbe11989920cdf9add4672fda8f9d4c24802cc017d6ea0526bc66dd7feb4efa3c0a4a549010b5b7e8527a96139d11361828a5fc9b350749bb16df36e022e46a4e3992c5749ee1e2f408f4eff6dc8d0baab264aceffe6625074d348d8f80ce17141a2ef63f4906835156f1dd743d8535c7063b47efcafe1f3d2578dadd533d960d176ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000d5a42341910b2f6ac386d260b11b94319dbc885f00000000000000000000000000f34e0ac4eb9805e309db23e309db23058d6e0e3887d019e6d01a3be6d01a3bfce60e41df1798150ad568110000000088c95c1b0000000000000000f7880328c6a0c05c00000000c2b17f4208192f2e7df2201f0000000000000000bcd188730739c81f54f5a429b3ac446f1ddfed122d5bdc366f2891486cb9ee2a5b9e9647998d8e60367a965418d0e7140c419a5c0807890a3d004976bbf3a9188aa0ca608aa0ca60bbf3a918c8fc5b638be0032758a49b651e748b3ba962780d215f8007609f5a4f609f5a4f215f8007ef7b017777ec713022e16f2f78a36514145e725423e867626742296b6742296b23e8676267004e660bbf080a4daf5a489140180200000000a9a8644b3172621312713d3875a0e12cf9564043edb4e2656f4f065476317d3de558c667f2956e17590dde5489ed412a89ed412a590dde54cee9c8531c09ec10a316b528d70854250000000000000000000000000000000000000000000000000000000000000000d5a4234131917d3b1685232d00000000707ac143c9a225240235250ff8cac74825000000000000007337b023af68340a9032784a000000000000000000000000ea74096a7487502da0b7cc67a0b7cc677e50fe5dbab802040ffdb8043715b41478f943015662ca1ec3d86c4f3b21d8441b2e434d0000000000000000fb5aeb1a6303e2242ee5a463ed60c72e0d546c72582400459718be20c1220a41d9df255e2c2a19336e6a312b200b0924ab3ab637a997640bad3f313c43168f0e100000000000000065b6850378a3191c1bc1a160218d851c3e5afb1ad9714f6465e7ca25550b9f1f6ef43818a775d1003bf35f61d7e84027f72c57604b3e68469506e96689c23639100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000e7dbea2e000000000000000000000000ed2430050000000000000000000000000000000000000000fab6ba2944000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a5400000000000000000000000001000000000000000100000023000000000000004ae1611b0000000000000000000000008464b7277bafc54d000000000000000048a7ab6b262f37140000000000000000a1209f03b9d8341100000000e5f97304000000000000000000000000e5f97304861a13083ff347193ff347195b62a21ae21cfd5a75152867c8dbc26aa539556a373b8e443163b25a1f19a45cf611e67500000000000000003ff3471908000000000000000000000000000000cd613c4d0000000000000000000000000000000051b686180800000000000000fdd2810f37372a273f47b5468d212c39ec687f4d5937233594914253fdd2810f0800000000000000000000000000000076eb3e370fad8c009ef45a05e9f4176cea4ae937b7376c622200000000000000f5b4a901d447e3671865c63278ee2e4c2ce5ba57cfa8bf3186409d591ff99a38f5a3a864873b7035c2ca822f52a3c83f0c694d08dfd35674618c7a4ef5b4a901f5b4a901f5b4a9014aab27494aab2749f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a901f5b4a90100000000f5b4a901140000000000000053044a70a0c58d412d18621fc5b1751a9999137335a23e5da19a9c3cd182a82cd56fce290a6d8004b017920b2445f36a000000000000000000000000256d2e3b5721df4000000000bbd2f76b0000000011000000000000000007c2191a0288a0e4f958dc57b2dff61089767505316c6c4822cdb789a6df03147f42ec5c784dffdb5258b52d49d82093119041da00fd878248ef086e743039f8d465b088c5ae3471be06cd02cd578cf78f7bc9360646bc66a47c21b746808264c86856fe0fe192ae25915991a9d2bc78bc2dd77c6e6eec6969199838a0906ec10a6fb3d54d72bcacef21772879b64d02a5b15c8b87cbd23227c5c1c1508b867e8d351297ce34edd7606eb31d3813ec68312d46b9eb18147b41fa26286527d95a3f218add10ca01a9038465eeb218ab284a5a4f1e6beb77a2d0ce70d642ed15ff05de3883bfcc90321b75c9b41a4b8c1e87513de6d59e4441e90fa872440b13efcf69ea1a09720c9bc9eff4c828c093a87fc85e9f6a1fde21afe3d1b9e459c75447890d6bae9fc75c1ab38b684cc3926531bdb48e179add457639d306044d2f11b54d25e74289aec3b8a44722c77c1a75c983a9784148683c023842c7bdd5d6dc4b0fbd52b439b0c3012a520b66442fc6c58ab457907b02e3f4ed3405bace0117b83fd072d57ad7eba23afcf13f341e2c9c671020f2582cb7bc85031ace7387b901994b7947f526cb06f2f7c2b3c57d149de14c37ded3880b9647cad19c0fca47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000002e24ee05432f8b1abc9aa912fa21cc20c0398d4fd428084363af8b3e2bcd85582bd30d225531ef307f172e073ad7a15315227d67164c1a04dc78e5729553e400ea2bb30c8f1d0003aa33b20a09f8fe304ee6cd33cadda72a9ad7695f1636ce694741b029226b7169955139330e7d5c47283bc43ac99a553b123489517c0271205a163d2c725af8338cb7542e6c2ebc03007b3a244feb7941c6790f54b4722b2f900da91c30465039fd50d9199140e9025010713a7e958541a04d675a698b261ec395f367db69ce146ffc0829a3234067d2b09c5f0e3b9e2a8c2e1911138cdb19dbbf045f8975222be81db374f964d60ac3255222b338846f8eb6fe1ff2bf7106663f840e7c043812929895593c04fc243fd5fa32dc4c5f35b1c134008b2c9211346e9416e9e71a35e232e5233122720f0f4b38625c5e7e193626d64c0ec40b32dbd9ee0d48e9fc31aae3ce0eaba8e5130cce9976ce7e8036cc7d565c4e329662e6236510f93c2f358fcfd266aa49f132e84ef62eaefbfb1391bea2285792744132469513cd431a4b6db81265e9f11977080000000000000023c11a5b8afd6a6ca89beb2bf827c447311e4201bd00f14db109f5253d048b6320000000000000008e8b28775bcc2e065f3cc156ac1dca77bf7d8b4dc255456413bc6d057dda1660217c450b7dad6009482b4e662656656cf30e8a5969ece85ad086f8450278986ad267cc3e49a9de4844903302292fcd74b3886a6bf838d93eb038d9638ff5d456d8f61314a873b85c482b425f0a514f318a60132e55a1233897b032708b1837422000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b87250818000000000000006c265342a77fd70943cff94d40a86a4450323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d6143694d8b89b2004c72957558f5706acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d0800000000000000ebd345198ccdd520364cae441cc5045bd7c0d40e93837b0ac93667756697f6720800000000000000c7dd1e2061992c31bdbb2220cffd1e186ac6804db386ee0e225441704961414a0800000000000000f9e19648f813fe01a551ee310a98be54a260cc1ac494dd43519dfc39a079c4350800000000000000814c4c65145efc6f3d215a37daf11719da8ffa5e7073ec545ba72c65433ab5130800000000000000538c0f13854adb046b738245a56b8839a74bef4138bf3b5aff1fbd47c7bd4e2e28000000000000009d8b3d3540ca212f07aa6d39d7749176c05bce72b82bbf04aaabb16fa0c3352096f6ba0d10ce8b2f0e76eb692c6f03037fba9f2d2545a11a7d068a18c293731061bec12f2ba5336526586356b0f6c05bd7de94288f284370c6625a467f9d5e16703cbc3e7641e33a4a4b161b855cda1cd3d4ee38ff1c7b2338333e0640286072d5eedb68169cac15fb7bef1802f6f33a328eb867cd1fbc5fc83abb03e06885601100000000000000cd6fcd2fae98af9864ebd84b3cb6521777bdc9dd1ce663d4a3708f14f6436ab4983e0fc8169fcaa7e80bfa4b727d9c8a99951b70b20f9d1b44bf9e9efb3c582f0fab07e854f824c54079c58e398b85e0b5bdedba5856ff1b1c3a60963045edc56f7d734a042ae7f62c125d2dfbe6c79f945c54802ffeddb548779902de767c753d858e518e9dc69eb2c32a3b87b77a22188cdffe782f87743f541b448b0986e0993c837464da44602ef81223084c291f709a9eafaca8b3bd2cb1842bcb117a66d3ec52b10e24276579bee9f113c6e1a5873a4e8e6da24ed77f2aa548d5f4dfde0084df0d7e95a906dd3f29028057531cd148bdbb92071be63fcc6a9ff8409074979d07310dcc579b81c40809f2c2ed359dad6ec45122acdfa718b74bd93cb75530e83477fc3de013c53c864ed9d1e469eaaad8d554a7a712efee7cecd0109af23837e2d6ca549d567c3899cb6dcd98073dee3e75db1c243c9d97c6ce36bd7268a1355c7e0b82fcc8a185d8cdd197890fa32b6caac2170c71d5183bd53090678dabb3f0c5999cfa4b8169c747b3ecaf4eb6fcfedb70a348ab0d0a765178516dacd7c12418dd9fff60e29b856b12713b0a31ac4c585c5582d624c7f5e847f38618c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000004957e417e0b172d1db92339bc9a6023068b4c5424ce6e0996ef124dfa2f482d0800000000000000f62e5a08d03bea5b6711d76114761973898ff25c37f59a1cf5de713a4802d932080000000000000076c4f7059588fe194ac3bc33d948c02cd8e4a03f31751a37a4c8d903ecd6be00080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a0800000000000000204ae4671e21146da7d8422d5c76580d748f734a0108e1297e55e25c6a5acb310800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a2445080000000000000038ece12d0dcf9645fb1986708c7a42757f001e65b31615362c70b1718360f3620800000000000000c005b065fac76c2decb8574cb7d5655ee632a24d440ecf2b8c88fa68c959e5450800000000000000a67ac113204f175b7d47b14b2df98b679fe94240a6399b07de541a5d86fb064108000000000000000f9a453266bd742717cb805d44a66f3c71bc4128b524dd046864175600f2da68080000000000000024c7be1a763c936dcd81f419e3ccd41f6200c11e881f2b24566fc21c240d824b080000000000000017f99e091860be35b85b265aff7f0d1a1dba6d464f10603ef685016ed5cdfd0011000000000000006af48f792aa11668adf86a2e1d56b0cb3f29af711d09615bf92077a276d9bef744c8faf7c98e965286f5873b49c8c8e75919c61e731d0956e88b47062bd0e2b2db4784a87490a211e7874bd9c9417898ba6b473927fb59de4295aed5af08e3e5baca478ac37a5a6634f29b03dcb89c7f89d64d622f3524d460be450a4d57d2c65dfdf5323910c8f1b4bf347891f39bff5035782ff4b518db421a8b5711ca2341e28e138e3982d6bd767a008ef9a7ca1dd2ad53313fe3e47b5a7b60bbd8ebcf964827366563d0eb18dc08e7240c77e0dbc34098e61cb2ac8f717c22b1725d5eb4ed54abb429b802162caec2379ffe117e2e9966802813c2f560beb55e2998f5f7ac48fe4958d94b3e90728ad788063dbdfc989471a0221ac377c67ed019a2271e35d3f97e42afb575690467731f6182eaab186371c2a95af5a7c08ea9b2d5c0855d8e48df653c9bbe8aabf3447d3d295b13dc3d6d77d2e51fc03603fe0135ec9765778c084a7abbec088a0ad40dfc3c9e35bd40628024e2cdfd9e548fef72cce4d28138f49796067f75f8e85ff3ffd00d78e49b986e8153794f30ab474e67732422bf98fd492a759f352b4b82284a1b0b24bec1004fe9ec750326e0b5c9a929335a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000fbcc2e6415b6c56f84341b2ad4fdd70925bd5e340000000000000000000000007fc13e5443bfa224a7d2ba4ba7d2ba4b4fd00944e019d33155b2ec5055b2ec5029f3423f9a88ba41219f6b3c00000000b75e9a5200000000000000003f221c522bbf262f00000000882a49083de18d3eff0e831700000000000000006ec9f8231136a73c2c4e170e758ac822ad35a9080733d11349991c0a3c6e1135b15b065dc7ff9f066713be53202228457bb6512f41768606ffbcaf114eb30d1c22bf393022bf39304eb30d1cca61446a4cee7d2221db082c64851128a2fe691ccf00152cd3bafc55d3bafc55cf00152cc1a932404ba57d343409462d5dc2742be02ce50768774536ef70e042ef70e04268774536af8eda022e564d1044d6f86784a71e4e000000001bf7c05e9c62314aafcdbf6c6c390f2e48250816efcc004d92645677f61d5e22f0187712dc57ef0a83320931fa22716cfa22716c8332093190262c62d38ad1057fd80354e4e5f45b0000000000000000000000000000000000000000000000000000000000000000fbcc2e6474cad8534725d862000000006e25966302bf6f10d0ba59462c37fc5725000000000000001cfe5d229bea9c2885da9a4400000000000000000000000001e4a35555f7140c8fe6ba6f8fe6ba6ff1789c2bcb0c9f73f10cb71eb962a82ebc118764b0783c438983d5000ea85034383df73c0000000000000000a459dc68980abb595566cf30955d501dcd52e856309ba80853b53d2adc68a215fa056975c9a8e11a93053e6f4728994b1547c51cc6169e1c5a0a0d131874c0001000000000000000b209300fd3ef61586e252b3b97e49467b214ce1e12aaa8611bdf573a1958c22b30d4614b57715a1885ddb502586382392118dc168a240771c72f602af32d5e10100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c523000000000000000000000000010000000000000001000000230000000000000011cc220b0000000000000000000000006e11280e41d1a02c0000000000000000e44ffc140ffc67250000000000000000cb69f92b3908ee6500000000010ec847000000000000000000000000010ec847cc77c1730480af610480af61fb2e6c02a97a28359bac4a698c5f512ae088eb0a945f096afd0bd10757571c63f3b38c5600000000000000000480af6108000000000000000000000000000000ab4dec4500000000000000000000000000000000d2feab0408000000000000001cd25d29edf9374a8915ea1b848b2758931118547bc4165a203ec4451cd25d290800000000000000000000000000000003a9b9710414bd0caa737a54b8432a45cb949c55bd0e494f2200000000000000cd1467581173466aa09763518bb3094e34f7b50661660657648d7268298634292e332701acbbe223e1c0f113cea4630a353d11059ada4824f23a3508cd146758cd146758cd146758c000174cc000174ccd146758cd146758cd146758cd146758cd146758cd146758cd146758cd146758cd146758cd146758cd146758cd14675800000000cd14675814000000000000006e9c6d0dc031785b9e619717906c4e51f20ab73913b66411ecb94f08dda47f08f1881565464fce44a39f1431f4e7430a000000000000000000000000ec354442e862945d0000000085e64c3e00000000110000000000000007a0a6fe611f58965d5d40b10d34aa714ad5800ff04e2c35e4126a8192201dfa26b4ef6bc2564c7911135061b8ee56517e06a0ee474057e9539975f5e250b2c588f69ef3904f46e9ccddb74257f353cf813ad1ec70d30bc783cc7b1a781c74a8bd83c8c9f08bfbd09e5806c2f731635979cb2c02ac5332dc727586c283503edabda180e138602b315a7719b562972e775a6e70e754e51a7d761ffe757b951cd8f5c05c7f547a241d264bdc8b66c6b66f955b7c6261a150e65da0b6f6b4356cf68cf134cc7c5b142290e5b6192c98909aec14abb9936d8bd3cd4d6c125bb598bb13452ef0d89c1f31bc4bba7985223a7ecd6f54d7023595487a7c35df544c83abdb2473a6a9e6e1fb1e044b2d2dbe25afb5384a05ae24abc2d35b313aa55077754b06a54736b91b8170e3cfd6e92617e911850cc83fb85f2cc4cfed218859a5db3d2a68f23dd6df0c149302c7ff8707ac03678feb4daa9504ed9778d6c6f78790350f0082afe392fededf0957109530ab24586017cb185966469701872f1022201a14481679078bef6944faf6c997ebfbc0695f76b611daef74c712e1120563e189cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000009635aa0fc6b1a60c631c5d359871ec37ed5dc073353b4865d0cca9561a33c77781725911f5246014699e974140c8b145038e9e4a5f99e05f8e81da2a8a9537053af9355097599540ac5cfe4d2e27ba076add7441a36b404170cb064be833f470200edf4a2883711a5357c64e67652a4ee5c5f263f416d83e59040e4e387ae84521b83270f637635ba0b6b80bbb4cc632e8bc2a696d5eac14688a3a5aa54631029f04211a9b628420a2b73305d0d81b4ae0c96a004c6ac15b4c5d253ce6585a0d975ccf024c9f94270e479547cd0bef1adc941f3aea311e16a048e16d24487c6839d4df4101a66f6903b6c623f329b70c24f010649960f615fad3464840d10a3a66e8bd23484dcc23fdc34f7120df301d5ce31f4f1b9323012db2843a808cb026061a7f6bd4a342525e48f2289e9cdd362d168a514367b507c820dc5abcb19e6346699526c726021924e98903a900867602d24446e1475a51e3be4959511d503b8293ac55590871773ad6614e807c7763c692b21b40079372f59e43610bbc4e208768f66a93d9243b9b8df3385759bc4c080000000000000090236e32cf590c4357c9050802c9731ceeb10a11d9d5d52385ad6d3a8a9e784320000000000000007b5a2c27aa89b81664348b45355581218e70f46011f8a028baa51b13cdabaa5ad952c83b07d2171ae63d1c331164bb17dabab32c86fa220371249e42b1345e17e34fb7398ea9bc6c6c46bc517bdbc67493c78523dc0cc1755275cc779edc4e15b8230857b12bd919ca0b1e0c2e37114d8fcaa338dffc72553127b357d0a567352000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f0800000000000000677c6e3d3524f321c9ea8035be9bf963d1da886f96e3e33dcfdc3807d0c5d219080000000000000020ccb248e5fc810a58b8531405fc396be688006b24866701ad3b8770c99f3747080000000000000088031865cf819b51a2a038594190d17343ba7b0ffcdbb07498de73072de29739080000000000000051617074069d2038f840d87237f6321425f78803d977be0a28316719761e67380800000000000000f324422b4470e345eeda501a80b6eb7216512414e3968c468916451b5adceb3d280000000000000073f90563cb55a845c176db22e3ea2050e94b8a68ad4feb46dc1f6b1b64207156d0248b0f7177e85dca1fca569c39c233330ed20ff1197f4aa2501d5555af282ffcf9df23cd3ca10975629b6ee8fc8e2243171a4313abc05b44b623027a3a2c5fdcb3735929213150fb75323dce812c462f5b2d41cb0e0902eaefb3396463dd17cba1744976ae6f202c8ca20a874bba6c23b0131df356010467b7442120119d1e110000000000000022abbf8043fc54848d584de01067179e6d15f22ef1ce4e9e12f5a5175817f3e58b510d972afdc26d88090736bc047e72997a7d76b9803544184b00875eb1d6db2015a7cbd2e58105fdcadb13025aa7b4c679effb07a69adee300c7771cdf50b94ab530bb8e310162c7f1aff54bdb6be09f82bc77ca7587af4822c39e968e4258985c83471feead916dae5b962dffd03f48424ecfa33f11adfe55bbeea1338bfa6e8cded8157c5a8c480e141d8098f921a33b6a16bdd20bc1a1a0f4b2ce0c6f6d76c0dc6a478015ac9d854013c57581ec0c1d90b9ede9fa6b1cb911fe62cb5948e640f630549ce0bb69cc3d79b422d78e752d979f0c166413e8786ab6cea5bbf505ff747030c7c7c26a46cad12d77392d9c7b138b5566c207b1f8456e090823e0953595e71120f47d2f99bb013ff11197b59c0dca085a724f30488991d64e459c85758d5eb2a97bcefa0e2b67f82663fc38de4b4d6424f4b4fefb4832a05ad7ff798b07341855a541585c94cc73f0158297b74b16857cec295ff51a6717a87efbcb216cb8e8d6e3c8aaf3d7c1969f6a246a10d2bb3d86f81a2473a3c2dc0808896be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000add2d371c4619428355fd06adb8a0d7045ca06706fd3b207adfa86315461c94508000000000000005a37bf36cd82f73b48af9f3473d08e4ad72dd41c7b7d232a5a374e015ea99c200800000000000000f569b6618c730f1882c22e59fd218440b76c1d4509b0ba4049583d49543919380800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a24450800000000000000c9e5f059769129741031d06b1a57e90f69ba56728130d328a6eb427327ca2b3908000000000000003ed37210d124d65b0137ec5bb51b7f36a08a353c71fe242e23089a2ffb3354360800000000000000781f0e02ccf03d458758f50951d2561f5b757245f93ed80a68ceb2317993794908000000000000003e867c0403437f1549bc9057263b54685a9834361dfee470c3cbd446366f2e1b0800000000000000efed5d534543341d7768d51cf83d33280e381f55322f8446641cd0626e90b60e0800000000000000eb56b02dfbd8a7285b494a0c6f82ff5eddec1e54abf19868ada1a01ba207371f11000000000000006febb3462f127496d2247c02048b9dca66523e6bb460b02789dc330398d734cd5cb9e05e5acb32a0e4ce1bd12853cedcdca7137e328bea09914fbd4d7e1e0179d7e0b06c01f2c3a903b76cfaf9c6b49e829084a998f7db6ba1181da948f98435a618465af84e0bcf6dea48aef23074ee9750739081c18ba4393a54612d77b0cd11ae7b5aa5a26cd0b97d473355341db4cd011ed53cf4ab8bc330fd613e77b20ec199eb5cdacd1e9e6910ad18a8ef0b29c6dc9c09ea88bb750448751ab2b66d982b9a78946849971ac178e0b00c1e3bdedc044338da6dc858648a83e023662208154947ba0b22c09a412ceca77c8e8f82ef8cb72cbf5bc32dc3f4408f03d75bc95ec3fd79783b8339beea8db85b6031c6dd2eb08a62230126c11676831c29f7dd9f3e028654ec8077a04a77d673a168a94303a76d48358eaea26cce5e658066e26c4e05556d30653e2dae854618d95c5b09b79e7bde5b60d9dde3441ff8b49ce68ebf335f45453f96f27b49e8bd250bc1d1fac1d211b3d64da255780c2ff21e1f160e5a9a15033143fb3b117b3f91df080f4134db44d6cf2d903a30c0f1573d999be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000001b81e32e46857965db0aa00dc165d851bd5e0425000000000000000000000000c89bdd088d0adf6ce1f32d2ee1f32d2efb5d0e3fad7733041865af4c1865af4c14b08235b80d4e707e01852600000000745f305a000000000000000037c3be2c2ef6be5500000000a9c316316ee8f4390ecc293a00000000000000001c1d9d59b9e7881a800889016d6e853ec1c2e025e77e1c491fb66b08aa4ff265f41c0e459dbe2b285bc3be00c9316e520600c702d94a9a072cbbbb62a6f2e56f32e3df5132e3df51a6f2e56fe29f7831efcd9a4c4a11bf4a7ba8872315413569a273eb5bb4add950b4add950a273eb5bd063044539ac7e5d17bd932e1e105d0dbc76ee084af2b1072259b2752259b2754af2b107d4a0aa5ae2d50f5b683914694534264300000000a7d9cb17eadb862a78ad12628024cd118ba750316e90cd6001151c2ded21ef552e33ac765e0a250d0deec848ec69702eec69702e0deec8488851062552f32f3c2af83407a272263300000000000000000000000000000000000000000000000000000000000000001b81e32ef6232e5d5a95161300000000149bcb62de4c0a1ca2e3fd0f5ea1fd122500000000000000a079ce6ff10a4d3a90e89f06000000000000000000000000c7135d0251afc04d76212b2476212b24d0274b3205e4b3449f02ef337b58a547fa77f823f4ff5c1fb6f3df1ac312b864d71c304e000000000000000046998f2285ff88119b8cc6669a353e3764d20317ba6cc65e4932375713841764efcabe471ef9c35b9f14084b8f2fca77711812757027025b0a3e634c5fbd12491000000000000000e0fcfc5d536525471aa33d04629b2504cc3ac858909fd34959e9294963fc7a2b02a000381f53a203952dd24fc0cbbc62e919fc69d008b13845eb063d9763e321100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c523000000000000000000000000010000000000000001000000230000000000000044e22a6400000000000000000000000075f2dc3cffba4b270000000000000000ada15f1229b7cf520000000000000000d9238d1bbabc035f0000000056fbfe4c00000000000000000000000056fbfe4c2f1f8c68e8db8f4fe8db8f4f4112823cc99da708a9a3b243a35cc85e6cb22e15db5e760aec603b21b334d801a5f964630000000000000000e8db8f4f0800000000000000000000000000000069ac43040000000000000000000000000000000010df721108000000000000007b931b517a258b52811ff117b98f3e1e22d83a56fc386c01e2ce784c7b931b5108000000000000000000000000000000a1a2571d6899114305322e123eb23a10b922146e7e75cf6022000000000000005cfdad64aa05bd5071faf90d2adfea03864ade6bdef67c3d21e3422713d3200eb7fdfb232438c443efbaa1232f199f245a38f018d48fa0023fa386115cfdad645cfdad645cfdad64b8357927b83579275cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad645cfdad64000000005cfdad64140000000000000095837d4b58b58611ab87b50342b14e599729995567957643cc09b326b2df32606cb0b412c2cc570ab7490a17932d1234000000000000000000000000f2c8f22d9cf38337000000001c0b671c000000001100000000000000b294726e68723f57bbbd1a2ce85482cf04f1addbf93db7a80a43998b9cd681331ba0a02d958e01586178f878d168d311a5b3b5cce711147dde502fcf6d527a70d14fdc23ca2307da0dfc58ad4b678c2d3e7f9acc7dace38a0826397ce798a5d98b8f794055e4df0bf182bc53fd4d414ba1bc4effcc800c1570f5cc8362e8b6517ad2bfae218512daeaa708d2298c2b06dcd43efa8102e3d5e6852a271c5c6a20e3d6846ea5503e4c94d36a97350d85a134f8cbdb10807c0aad00a2894f26c10709a17f82ca421923075fe9109e91107802ae2c8e5a9d2aaede188543e62c0481bcf1d0489234f5c9d244bd9ca3a1782202876c1b2a7bbf79de35b67f9e6fb107704107a64521f9ceaef9f3f04c7f80b74674e9d707145cb1c2cf39e0a6bd1c4a2007bbf3ac4c1de6ab4902ffa2545b78824e6770b4ba33382534d217b5f192b373f7dcf9b8cadca756f83a94a2ed59336ebc7f1bf6cb67b3625e3d971d56e164baf2ff8063f5d4584abf51db01c7f4a43e2ad081316a5fa208aee5e41f70d64dbd6e623155076c501f66fd38404c5d08fb4107f1636f21ac949c3e8045bf1810502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000a96d6e6ecff3d03e172978092df08a43d25f4e5a35cf846fb24a8e3aa4eeff4309934e26a8200c6921365b6914c814369b6bfc3eebb5d9585588904f3b22e15edf03c2646e2e0e042c859000a4e5a747c67ffa2f33687e218277156cb640f254ef263026bdf5bf5ce510d0291b79fb0822814c0962d70664b8d14d2bf647581a50aec11997b83d771f3c3a02d9bc1e76990e9f544dffdf52004e961dbee29c477ee7a47282834100bffe7a582246594a180b9231d5ad6744419aac0f5cd2663cfb0d7062ef31be1f96b9f051bea819401bf2a70f4067b61ebc235d56a11b415b7008df63affdac63cdfff7177009b10c54f56f600465825611a5625e90540f69121f88003bf9b5769b84b3463ae6903a269f13504e691d033c70e350f19a4247e0593c5d20ae9f3686091f5d950d32469ba97659ad6e19086c87be0f5d0ecb18d979526f219bc2206d2d24471fc6a821e4757d3d43b4e0677e41ac23572cef26700dd5691199c76b33b9be56171aa7458b605e28808a5f02cbc87152c0721c5db27c67254694e057f6fc151b4a3361420800000000000000c9a70d1c2319845bdefc045727c03c4f0d39571432a725173b8a2c0c0f2915592000000000000000b0b1cf3af7f70540ec7a183d62a77e0eb157394e85db3e197d58bb3b3b60af65034af84d37975e17ee6c442041f6531779f18d5508c16c4186c659728498b55fa45040002ef8fc55bb097f6ed015c91b41343e37d899b63132c3d24680b8d14739c4515e02afb715c7741b3d09e6c771ad23543478e9d203a2e0764a6b3e56582000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f08000000000000000f15ae250cba1f61ac9574406806585638160160ba110000ce631c358e40df2b0800000000000000ecdaa146d502ac147b469c318b06e61c94c32f12ec4c033bccc3c5277b61a86208000000000000002e43df4b17f57b339238b504fb90125f69fa571c08ab1077f0115b2f7359cf400800000000000000be1bdd76dddcbc5130b3664c4855ad5d8e440c4c6a1ccc5031539e25cd01933d08000000000000006561a205b2b4ea597e968c1fd179805d82ef8445fa83b102716a0603bb6d5322280000000000000036802d677cb8ce1a493fff4a7398cd1b3037f93daef9623ddd81410bcc56b205c43a1e32493d310bf73eb606d838b5721d1e834ae9cf481e43a4cf29e56cd56daf1fe26d15672e4ad1ea946d87e53e6a06d331035707c9202a0eeb4154e94747bdd0832d3e20a35f3234e84fb80bf00512d0b302000db86b08a7ef321f5a5b1797da054936c3723601dcbf616e3a2a0c1dffea1ba6ff4b1ea7932b2b6438206e11000000000000003e3a645862209a50541335aa99006f28301c7982bc1c48849915b982000fc130173b27ff00b155f95543dcbfc7d7d5f84e16be458f7ca9ddcb54e7f1aa04d1eccbf32585dc543fae9bd920f4cdc6cf209a7253e3a9c8523505e8d59dfdb4712bcb5b0ebe4d051f554b20f96fafaba1f0c4f0fe5bc4334a354d1796623a49ef9c64edf78688632053431039ff0265ee20850d9984633a42330e6f42705b3cf5e80857f4d02b80fd5342af43b1c66b9656505889edaa900ed027510df054e183fd0b867ff47c152a10d9567e9ee868874370ff2d12021995077a6c1963995c6b89dec1927442d66192398900fea87fafc67b348895acee4e3ae9ff09e86808d8ace9d1b4aa1b7e2bf8c62c674cf28eac5dc7c75f1e3b1c4689c347a4918c2381b90168e8896e120ce03bb69b129563865db33b85c147bb7b1d6b3ed9def24e01b2f96bb548667a7b428b8ebb6df9188c1188628b642f42596df75f4a1e0892ffc6b9308e5f35c8b1d894d9537a1347664ddd439ee8429678fbfa686fc8b02c2028eb143da2eb28a45d5500141fb2a6b66be22e567d555dafb600e617a28bf89518033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000f22c9f6c2e255b6e557b495d348aee2b63614c47cf89b24291314914c2642b2b08000000000000004855c63ff4fbc72d1627a91520de0156cfe75000a801cf35ae8fae748e7363600800000000000000bc463c29940e9d448b1ae73e7076b06cac7bcd0e6868594a15c5fc07067e2c3a0800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a24450800000000000000bb72f95752aeb51599c3c12f31c8fd691ea500441a0bc169e7fedc28e2a5605908000000000000004ca2523172c7441d2e7eaf6871aac55bf408e761eb9ff43768585845620bfc4f08000000000000007155b6460b0143188546026b6a193d62b9ebf94d20650d230ccc7b2149816a4f08000000000000002db09f3b5d218c6b272cfd47aec6851a4887d777b299df67db39f43b93a4755b08000000000000001519d114198a965df70550476cff495156b2fe3d3b788148331a6014a44b135c08000000000000000bbe9526ed89112b2e9b931dcf3064085258af0ab6c69977c45b4c15cb25d74711000000000000007ebc064de65f18139c54baffecb08775da55cc6033b2431fbfbd3c412f241feda64c6ed89a835d704039f2c5c937a13e38283c97f43f83a2ec706732aff8bd731c161bad0a9f449214f197891fd6287e1456de10eba9b5279d34b30015ab5741ef9e7bbb2acac87dd83f1d128457c346293e66c0cd7210461701f1539fbd7ba2e9cd6261692948d4c4b0b9dce08f51de83f07978a920f0babb43d0add4cd5bdbccd663d51bebc50d4dcdada648c18665aa50dfe34e994ab706bec7055e7655d7a7eeec496af18ba988bb2a28124c95a0bfcb23c580678a917137e574ce00ddfd21196ad396e1383a0dfd30e9696ea6785b86e82747f5cd24ffd61e4811c8cb518fa5a3e70680f219225b62a07edb75e746a6e3c8b493c5e8c1c00baa0fe71d7d3b719c4d9ade60551995c4975e035dee7b6627f9d59beee8fd91a6b08630c7a9615ef5024758d047ea4081587ec1841a86db44aa59cb396c2b87afa84f94707496c21eec67304174606fffad6ddf6f664c1e2c655da7dd2217516c2100a49b0527258e821c8f34f141464835c05ef8b4d75c52b32b7d8412792c5b07052eebd265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000cb8f4874464e4971707b7742935afe41e062556a000000000000000000000000277109533021fb32b0ca483fb0ca483fb53257308721b5714c07eb704c07eb704d732749502c2d6309873961000000000a05775a000000000000000053e2186bc778ca1b000000004a38c239db9de074d2af3d4700000000000000006e95690af9fca268518ac84acc35ec534bcd83693770b7031b385a36a655b0425e48e853945c2521a0328561938d520da6e8742d68dad1294e865a3ada828852bab39028bab39028da828852d6bde865fc8855739562c04378f7bd5198d06f6a7c544f1591742038917420387c544f150e75102e0f99ff472e4a8802b1af3b11131b8220b2d3d2147d3cff497d3cff49b2d3d2142f84184504e5e01fa7f4b41a083f623300000000a7146b042c5c1402c0241903eee84238010271429fdd633dba414670e747a95abdfcb80ae67a8e1fe679bd016771494367714943e679bd0193d03c64ba737c10302c6c15d5ddc5770000000000000000000000000000000000000000000000000000000000000000cb8f487478760e639b691c540000000070a4192cf3f12310de6e811b64280313250000000000000024b72a6704996b297acabc4a000000000000000000000000929e470431a2ce5ee9997271e9997271e170114b227223779bb2a44d9867e92f1b92ef500b9d5105b04df248df45ff675b24151e0000000000000000b1defd2238dfad2232d38323e4e18539c708d02c8315612a49b9a16b010c9b5da57c3e622fea182ee3b5e0024ed2d515a655c0733789b94ba14f4949c614761a1000000000000000a7585a13a08a3e262a6d815c6377fa2c37d38750e68af9747a500a12fdffdd6d1ebb791c13c7395503e1ac77ff8e4f0553e1c7720c959e44cbca01569719f354100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000017128f1f000000000000000000000000de7161115b597c230000000000000000156071323ff35f4e000000000000000051ced164a000004e00000000b4634877000000000000000000000000b463487704321a64a3321a3aa3321a3acc5f6e1c4e38a02b849d3b06af1b6070a45ed163b355fc73ad131b3febf8d35a8c208b1a0000000000000000a3321a3a08000000000000000000000000000000eceb743f000000000000000000000000000000003e28e2100800000000000000417be6655e1b0d398ad9e440d261144d00aba460a8690e3280017525417be6650800000000000000000000000000000014ea282b9a24d176ff4e920fe58aad5348ddcb1af4e9ec402200000000000000f0ad6b4e16cbe9620a4b0408e515f07108ee4e6c1f33825daa75cb078255c077d904d25da0f5af145f82945057dabc6746bfd50696d1cc3fee761819f0ad6b4ef0ad6b4ef0ad6b4e949a790a949a790af0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4ef0ad6b4e00000000f0ad6b4e14000000000000005ee0a767d0c52639698a126dc51bbc335d91a93e29143f2b93b6844d17b66737a24f8a582ce87702f3220749276a8651000000000000000000000000be41d7049845fd74000000008225f9340000000011000000000000000e5bf82d69705277f8b1bcdb851a911f818dfc04e25081236de96830b0b5db6a58033d9583dcd946935fbc01fde95a4c9129012e29ced4dd57537f6028870ea5336d63e126de5cf13dd1d9a3925323c270703b5baf5ff334b8c1638735e2131607575339ff5f1ed150e0a24cc04fa0b144955c03da592740e358adc32b63fc7e91e966c9827c5cfd9fa6797bf6087d50de472de42c636b40bf633bd1511ca953dcb3a3906e545035fa3ada42f4d31ae579669e7daa2fafeeaa6103d8eb0dea3e37188d7d8d1ee208c6d96e05c019b4a489eadd1c85394d0e961991c81a2ce65b3f6c1b45e19108696f8a1d60f3f4852db18c79bebb3bc060db45c1d327ed77e947b877941db346ccbeb2a1f533b72339f2551c4461f9112a8e64a33d901103745f7666c92109691c61a5a5fb2bcc919b0007d00d32eb6c2017314dd63b1f57d2392b02ff265e3fef7e0bf6f9a09f0dc944d8252861b6771d7915e171db6e55a6aa79589b34375e7842f1f5cd63a9cc58669760e9f56dfc64542e94f2f246954ea7d63b4a689286926a1f76b265e1e7458c1a2a4b6462292c9244723ed2e341e21cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000edabe15d0af43649a5605719268c77425a2df445f4ee97220e6ebb3d90ce1d53a77ba1111d42097373b15a72255753167bb70520f16f0e67aadc0b01843c16272e775c74de700d6ff84aae4622413c0c0247323a2736be1bf681ba0317742656ee3a826c5b2aee61c38422177d1dd42b74ce995f0892fe5cad7e7b0c0465ca51c93ce56881dd1469fce8992d2f527e4c65a18f50e1cb170cc7eb8d2bba4e116ff96dd54e7e3d74300ca8491a5083ab7133259c6debb5f82163f61632214fd515bb1f163d0a8f5d16b8c81873ee231958a91203310832451a4a4cd81a17d7871024147f040b03c31c5854770ba8560f1cfbec9174eb79916adafbb00b04403e49a86a711c94191d0ecce3ee33d4ea9f094d981c29577cc154ae116844dea88462dd89e348977b607366d011532f591e58a38a982c1d8eef50856b971b8cc2601b80a0c652331eaa0aea53ba209f390721b11016665e10f940166efb59c7f07d5a2c9be012a0e51e41132fd060c4630c585035634cf079e95da624ce2314cf301515737b492155873b29123976756df15e080000000000000070f8a72f6ebb2933ac374064df22420600331a3c9dca9a0eb6c0391c995c7552200000000000000007fe0272c839cb3ba7e3966d0701a25348dc87682cbff41865f6595ab3619c2cc9802f004c5db3361c17291b224bd46a9b96852b20101d2747a32a3e026c3d2e09e29d1a7969f21a3491eb5d4136a807c78da61a3d4c98333fdb9b066aa4ef04799b922ed365e673eee679022af2c44cc82c0701bed17a5d9473e45ef226fa242000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000007031175b07627f3474744176f663367358fec54758e26f0d2490941fa725fd1b0800000000000000b82f0d1a9297ec3c55591b133955bb29a4b335624def36169caf7c6e571d97090800000000000000f60e56775d43240c428f712e9b0b5a4b2acec3202735bf28121bf5479830bf180800000000000000de8e1b330b8ec8291ddef3604ea4aa4d47dc77713d1e7d26f8106a4422796f5d0800000000000000bdccdf4c85ad2c0f319f5d139ee3c22bbe99de5dc9be4e458f3c73628efb90062800000000000000e32e4b5b9717e54b5fe4b81c7fda25675801936ce20d67597e7ca76ded54e145a15b2834bb6b6669733096065b6cf15bfcf3a070e849a375243c7d3cdab0176882c0191240f10b5f979962509b253c0c7502de1dec3439051be46c03fa95f4445db93b005e46fc2592bb00446149e80e63ebf849fb4a3804b400f71d3fd91e1e49288d6eb0f1470f4972e419b8e3b62e04526a40d7d4fa3985e5dc21d10d9b0f1100000000000000a9d33b4388da0efedbccf841a1cb57d1c840410e53b1c268c1b68e98dc1a3a03c8f6b52111e4cfb850cb351546be757b3c6f8364bf7eac5429b3469152d0b70344cb1dacbdc96e4f9f09041058a51bedf935079021f9a81897abcd7f9837af6b16a1c9fad3d94b341dbe0a440ae965bdd4a1192535586997d56a4a418333cc263117368e0ab4660952aec67564a10cf16ab86236dbcad4dca45ba2737bb93e49fcd223e8ae122cdd53a9ff17aa7e48054ef80b2080399640183de32898397e8f4f5795326b83523d80e689ee0d54ed2c54ba98dd1b57e9ff285604488efd5f2c0904df89fa95e206030161f3337099c3adf5925d8afebbc9e4c3d181440ec2f9d31c8d61c59f365663f5fc053ac728027d8b1e3549497933c6c423fd22c2d28431911d7cf70883211f1da1d7e6abee2f5e0f4dd82b28dbbf5051a58fa09e5168ab868635df01ccd2773cb8a58d9062d5e002321b386e45552e3e3122ac4f2c03445875d8d38877cfc0a90488be835892ccfdf58843d9e034f7fdbf37616733ab7f64c313f903387ab5f085033a06220196cd69458f025d555139ee76294b8c8bfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000344af65cc0baee6b47889e219a20b67284819f427fb6f65d47b89b2fe3c815440800000000000000e0135d48fa39e412956d3e6f61c9b34928cdd44b7868ab16078f856864c9820e0800000000000000e95e2b678d38a644412a241afcccd7502158e70ce1dc526462325d09a809173f0800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a2445080000000000000085599d39518d8029149cf05fe59e1f26169e7b5ee4715000c3622205d37f134908000000000000002e074a0e8ce86c63df759e193395f703eaf6221c3ec3d03fb29c69147f9a2e360800000000000000471b6901c3413412f2edc364bdff185f70775b49645a9b2d7192bd3c3b5ea0380800000000000000b2ff3856b27f344e95bb753b9947761be95a29021a29b464c48e643d4645904208000000000000007ed272338f194f25a1ec015da5d33e4aabf9ee609da8f6465beda76431d78b260800000000000000485a454dd0f76a02002637295551ae21a956393d8926333249b9746ea48f14461100000000000000c7a44b3b1b12bee5daaaffdae939263f27a2bbd39acbca78797b83eeda6ac008f28dd0273df4192d77de4576213ffda90dbb6cfe920e0573ded4c023fab78e66ace29abcc8b9635d4aaed64baddc110bce1597bf0972faeda6d738f67ea71a3b62f8d290777cdf08cefdc2d83c3db282c73153d24bcbf4ef58b7255ab79f197509b2941e5af108f3bfce77c00f1f54617a2b4b79b23933068d11fffc1d2c4686792df94b1ea56af61f6567ee77b173e0e51bd86161c04f1384f967e74573eaa4d658354c1ec33c7753d91c9b63ae2ce25deb1db665b8b6f87677cadcadc88d4f5870e44083c6129ba4ceb4eff3266494558025c4fe75a19e08e739a9d91f77717af480352039639746a877fb746755bd75ad81b15eff8a87e3a7180f146637210c44085cf6fdbaafe5cefded14a31e23f30f9915baec72f746b70b84219e923fa74443098eba3383d1536407dbfc384987797f685fe72eda0d148607ebe11ae75485cdbc7a9fb6767ef91d28412a10fe07360f15877da01cac78cd543aa3e625a24a724ce99af18de38d2fdac390ada5275f5f69365fe521def7ad106d1ec6b979fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000406553275b342f2916ddcb3513e5452c77a63f22000000000000000000000000c802620325468d35960c3a63960c3a6374f8fa45328ec410ae21a95aae21a95a0bdecd6c61ab68720b7f5f320000000030670b5c000000000000000020544b35bb6006730000000020eb6c7774851461ad6c2d5e00000000000000009b2a0d686935620cadf3e85b8b362a19be0cf702c29aac500a4e9c42c2b939034b42a439c2b1ab7724dc1d2df3bf7d04ae8a2654c569f46512b7d86881515c63188790471887904781515c63ce4ac665186ab173735b7c1a89e9235623e3196b0ca6314bb13ed636b13ed6360ca6314be937b74dab2f4e029b8f9b287389fa02795e0e18a1549705a7f96e32a7f96e32a1549705b3778e578fdc361837c4a960d0bd905c00000000110086443f3db20c0113d623c3b2b263aa19434361cb9d1bfb904d431faab229d8463a0c6d2ba430fd8f580a354b7b58354b7b58fd8f580aa5e9fc3a2570a70a818bab3d6408e05b0000000000000000000000000000000000000000000000000000000000000000406553277e3bf90ea516b8340000000071c59407964ce3561575c432ce4c941b25000000000000000de3c51d8db19d6067518f270000000000000000000000003f1ad10f2fe85b17c3b58801c3b5880159e3205b4db99c0c4d683f264d74014542b0c171fed0d44485352a66515e0120ca39467000000000000000001cec9572550ff61b1ec93e16402d3f4406015d61daaefe466da6c93c2b3faa62bbe49c33bdce150b880c6574319291176a1760483c4354082880d9574122110710000000000000003835df6e09793d4454b8cd41770c4359c3cfdf0848339041a8575c6e07ccb374bb3f330ab9dcf542e3f970491f2cfb69ffb05d21694f9f69141c131e5ed44d101000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000237186200000000000000000000000007be1cc1ffc8ec76a0000000000000000e2586677a0dd4103000000000000000097c7ef25fde7290600000000c79b4176000000000000000000000000c79b41765d6331245a4b5b2a5a4b5b2a60fcdb4e45bb75140584715f143c060bd539e15c892d5f6c7aeeb46ec379c43437dad40900000000000000005a4b5b2a0800000000000000000000000000000070c4487400000000000000000000000000000000f761e64f0800000000000000f05968607cc00933cd1ec6242ab2c32570a807221c6cb42d5efe942ff059686008000000000000000000000000000000401087059c5a5a33ea9899632755057488aedc208cf3774e2200000000000000f32f0d00761e67106f5acf02b7441555977c1b189ae12770d751cb5c597f6b2e306f89571797ac4a094c5c40ab7f644330bef925ff685b5ad872b20bf32f0d00f32f0d00f32f0d00e4ab0066e4ab0066f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d00f32f0d0000000000f32f0d001400000000000000ec55bb62b85ef5646e55f820355fb82ec709c00d63383f2e868e4b65232ed163867d610f01df9d3ee5494b382d4c4869000000000000000000000000cbfd384108fbc745000000000e567b4a000000001100000000000000bbaed9d9e02b29b7ba29c78a9fee96e6f95ad8fc70c7b93a5b7202e3dfb0a02e96553e679a7bf5750e0470b804e0c5a8929f73a7615fe7da157d06d67e7635a9cc731450f1ca3d9e00b90dfa4792ac9f3a5fe48b868f0d0565af99753f89d521a7a271d832bd58bc9428e4c7d69efd0e5dd12a770738473e26c702af06f93943be159b88a755435645b05ac4acc88e444d42c6d04ca77bb817a2337aed2a1ad70bc79494d7adba68125827e213f00cb602765400a48040827852f1142262928572da530865630d922afe8c736177cbb8f927020176de12787de25e9c2920eb20718bcfa4c200f70123331ec79a0605731f8ce446b4d35bcb65dc79d575bc5a211346e2e17db5b93a7a946da77ffcb81f87833f65ed900b4655e0c4e8457f0c9d04ef608548f3ae5ae6e2eb4252137d607f1f62baf1b1a696099992d70da97e87122efc37d275eaa09db1af8e48db6fca3e68747c7d34650132f6c0287a99168d6438dfddf192dd3b2b9f6aa096b22d23cd98d21da185c97b99a03f4045ef5b32c2bfdf5e0bcf6e155684436849fe2dc4252af241e86fc62a3ed6a6b5641fdd569dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000001dbaf715721b7e50885d691409f87026c8ee43532f91821ec7a22a3f04946546c9ecab52dc0f44084682e1222a384e22fbd8b92628654f1a50f7f111e43fb170b00407037b65d75c2c2461304123f75e5d7b47235622df483ba11b4f42e87e19f163c519196654223d1a231a7dcbeb4d97bdbd3e0b3eeb38fe6e1529db0bd16e3c13160536f2806988e60457159c761b0d46fb53c9622d40b97365214d18e50423bbb04bcd9093322b9934615f690b501fc3585ebb8073643658e1109034eb5a4be4ea4f55c99c1288ba5711dd0519480b01321faf60ca35c9627028973c856ac476523caebb8817fe48e7636b82a35da71f2629d0c94c1cfa99f7189f29e667b6319f23c7715b34d860fb1d7c1e465881ff79374f688d5fb004fe06e57a9f277543e000c94a6c321e15dd3356ca7927b2243736a4a0c92eef5532087c6b3a5863b55222ad6616161e484f224d06443ba64afa3b495115212f5ec432e123ac1f1f91000e6f58c0634e150169c10f95614c17cd38d3f639271ec3bb61e645cc73cc41230edc090e27e06a500a672897300800000000000000c4ecab634ca99a266b03a20301727039a7c9970bee72ca18f6eb05086fecf2192000000000000000cbf45139bed0d149a93699171fed2711088e3b460e622c5d6a063e6959c9764ba0421e14f84e4f0832a1966180ca8334927ca46672ad601876a18a3b685a011467b0ff58cfa36c5034668343f1fe34396089c54af9e72e39b252e02d532f8f62014bb96d4326c274a218cf7391f2f369ff96bd70100c392b74cce2650a291a662000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000428d79586ac77c03a1ef4e389ab7c1281743ca2e816d7c30c250f36ae7dbac1108000000000000005964063776e62c3eb2077a033f556f061faa5656d42a5c23cab71c0cdf56cc1b080000000000000052ab0f1115923d1bc650712236c80a3300cf733813f64d26e324e002074b4e2c080000000000000055e0b10fac4fc214a8572745a8b3b8679cb4d70c7456890fa25a0b60a7e13a37080000000000000003fc2332d1c30376360ea300c8418115f6b70f4b587ed40b0eb93e48111a07292800000000000000a93cf92e50d6f6610eb30671516e803669399a25eba5002b9c836f69e0c00634f4995e05d345e475bf6b8814db76ca225cf607665d2a926b6e7f1b346245160a488df93b91334408013cbc2981e6161c764f0c556fda43314ef3a91a8f799f68d1b7d90c8204946f33ee2f0daa218f26e674c56635bfa225729a6414ed7e94730e3a2e0fc4ce3c62463b22757559475e304c400f8d72893d3d20a973736f2c3511000000000000009ade70c16d15bf4b236d75bd3230543c19223cc6c47229b927779ec359fa0001b6ed4ed11686ed431cbeb2dd55792c42dd1a668ec5d14928507a688142da5b3fadb648e73d4e8d72a64254fb8ec7d0ca5cd9c3b5bd66d3b8ec594df21696b4d9a65981cc9df22b1e17843ac59da58dddcfe7133b6c121665772605791c10a3b3b11e4901106337f21c73ac8f6554468ffac19fde6da161ddc8de9590a52f714ec77e18d25a228b771da866b5e6b4d4d6c10fe43d053ecf0b11c9c4b4197060c68e1603bbff07944cc2e49138b393c083a578d9eb1fad3525b5ec704d52ba72ebf6290935aaa2e6fc6d5014cdf0dc280459a9ef58ac477a476598c9868c5bbd229f05cfbd2459aee1bb0497ac4f81c27e5fa7d202dbfd332c247e6e9cb2de8c0ce1d1cd27bd915402ad28aa2cc7609eb4180426f77048bf02e7ba2f64ac9f205f12bea40b7090c8d450f6290409ad1a0a13b63c381026afef2ed146ca8726a68a9fb8b3c0513409d37be814f6e216b80c14eac6dca42a848ed10ab81515e9cdbfa9300c084d37085bd2fcaa02093984298e4d1d4e49f093bee684b0af54e23ff4ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000026ae270d8d38561b63d0b6022dbc5740566ef2431fa6d60a87620c5823833728080000000000000082eda659de7e9f765ce2444dcb2f625c401e685f0474a2271d85041d947d7e7208000000000000005e3874367e871400b9acdc2c072e551b2780a6282130453d59b5b13e3d5335730800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a244508000000000000009b9eae46c9aae94f557f9a72a837b142a7b63f44c340b559d5baaf2eabe410640800000000000000eb08b80f7735b772fe5158196feef0561c8956209baa3175e152be1ced5d37120800000000000000cb53e65481d1af01a520dc6bcb52937338b0566406ab1f2d77fc7507c7b338040800000000000000f84ece4b22e18a0b918d0c64a676340ab4925571482a0418c17402235d044569080000000000000052008e3e376caf554fa69841bdb98f321e6d124b5f8d782db16a87506e53be6d08000000000000004c59cd49ad3fbd1e4f105512d2a5781ab585593080907b6b5e07953314a9d40a1100000000000000a77fa86214b675aa76985b9c79f0027c030f6871aae0c7fa098cde51712456b1d851ad5307fa0bbc231b11772e02460f9fedd1bbc644287d2a4692033b864837b0e1c657b59d7a7f29b667a227d515bcc2b7074718d1ba31063f27a67f4f8103195c556809fe9ddc3ccfc4cceb86c5bfd4854527d2bd972d657c991e8c6ad328973d5278f24fb77e07b8bfde71077c1094a830b57b2deb8dd54919ba14256a874701bce050c86eda9dadad3f9ff5f2d2914997519af5669c7debb72feacdd8e0ef32bc4f1b673744ad91a386da1ada0bdafb9b0121cbbe34b3f1d1b6a6f351bc3bfac6924942dccea8a0f58726d84b61c39d581552ad2c41cb923f34b20d85aeae8ac52a5483b579e1889ef11d399fa57c0a29c063e31ddcc22358a64133ef67da1d6625df03b296806b83da028985c41d7786b46c5bc9dba9eae8ad8cb899d8eca6ae7f7832b187ad8d3670d6d46fa6315e64a7064639f8ac61c790e478dd96861e7476fdc4cd8e149fd9b8a224254c46046a58d4b606ad414bd59186a3aa59a2ef63f4906835156f1dd743d8535c7063b47efcafe1f3d2578dadd533d960d176ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000008d4c071ee6094263beeaae1b20a72054e6e2152c00000000000000000000000081f1cb10afd82b234572bd6b4572bd6b53e14e1f4dfa5d22b560d916b560d9169dcb76744857be38c35fa1190000000023adf56a0000000000000000ad75255a9b69ea26000000006d74484fdced2e706a2b943d00000000000000003951562be09cdc44902d8437acdc5a417d3b235175b3f8593e0048169d42e53cae4f1a444944c63f3ffaec6c5af89c3ed12314005862a83af03ea30e25049d270a114f5d0a114f5d25049d27bb25a2272030ba1f7d2fc4671620dd01f2b48e0d1060b2592155e32c2155e32c1060b2598fabd65bebfa2557897a246228ddf621ab3b4c46baa8413fa1f6f455a1f6f455baa8413ff37ae8122538af04524f9e01dafbfd09000000003c0249192ace7d0c9c60916e1fc0785fd13fd24eedc3872e9f0d5837e137fb5763262444271968308e8e69655d3d025b5d3d025b8e8e6965337f9958ddabfc5c7adc784dc90f321800000000000000000000000000000000000000000000000000000000000000008d4c071ee2d603297b30f20400000000895e432b8444dc58f50258326092361d250000000000000040135b76daee6435dc56ac2c000000000000000000000000cd2e7c4d602411062160f22b2160f22b8ed95b4d173ce25dc41acc3887346e6a2c678b5469754a3670d9e61c954fbd4af33519320000000000000000808988250c21b7565dc29f2d59debc60fdfb0c5271412c3f240ef357bb077b1fe0f4255109aa7f2dd65660463d5707628e0e043dcdb7d50496a5f526a52a460e1000000000000000a12017621452ec1e05ac2f532fa84d725f593a756a6b956c2e56b250e4c56651b8420f7750c4a05893b21e68c3b8091b181f0e70a0a94f18e6e64661a02fb4261000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000f7d78f6e00000000000000000000000031714043e206b20b0000000000000000b71e723ae93e1e2700000000000000003c60864015c7d12500000000c9679935000000000000000000000000c967993505c81f76198ff123198ff123be4db908a2e6565ed3c46428a66ac8270bd84a07fb737b581a35f00cff4d881e23b7612d0000000000000000198ff12308000000000000000000000000000000ddc9472900000000000000000000000000000000419166630800000000000000cd67e714b6b89c40a91cfa75aeb854146bb2494112a2185d2dbd643bcd67e71408000000000000000000000000000000bef78d2898e081606b64523464122a0900d52332225a1a19220000000000000028f987274eafd36e5b5d3906c8f2635421a7200c27a8916bfe4b216b38999a326e10974952c1d42282f4fa13feb15e3602955d0bb9cfcb1b7db1850828f9872728f9872728f987270f88c9740f88c97428f9872728f9872728f9872728f9872728f9872728f9872728f9872728f9872728f9872728f9872728f9872728f987270000000028f987271400000000000000f9676e0b2692ea2071e9595baf10ff483f27a565694ede6915540f395421d317df5e4a636803e43e0e8b524f786bee01000000000000000000000000e68fd86295afbc5b000000004d981907000000001100000000000000809f8c5a1c92e57ae7f67479f5ac2df9d4021637e8447b1b61ca4d48232552587a40d9ca6699fb043cb0468a67d5ceeb60e465b33f2c0b8e759f3f70639102aedc33c511dfc648fc751f19776806d79a855295dfce4bafc4ae3813787358f258c6e0ba731264e6d6810d9dd73df6c818f26495d8709ecc2ebbbc4cf64340b07c91f72a140d0dff264e8e15b0ffce46b9f3d232e4796acb73a7dbfba2292e9f4e147986f210a8118ff8c91158fc6916983187d827dbf149882d0f9a991914b47223313fbe04058e862f28fbd98913330b6d0043637be6e0826c3240affca2786540d6dbd28291ca3440ca5379f38c026a5faae9b0604fd7a53545da7806564b6b0b55450a2d9bd89d92fed499f03456ca450d9adba06669b01f0570f10bb3bc8c9b05645784ea49c43fb8d3176b07e3adcb4e231ca07b053eb18ce042d2b7a4ea0bb94641f229845880fd5c1b7a8de8bfed1270d0f8e1c51cf8677c12e09c5cd52f3dc27ec4bf4a33e5328f3c3f3c0a9407f9612ba009f7b74a9bc40ab94cdf3b6cfa9e8e28cf68a7a3620e44fcdd365856d8c76b4372ad2a03e631ced40dec5b92b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000117bb36e326e042caf47245630556c3186cc84027eb6af634f1cbe60758e540329f9d30b21ec8720a81a6a1d8244ed28ccee966a3b68551417d3e142f8249f291cd69963385e016a5568e970c8ac642343306f68d0c4bf4fba09a96634173b3ed2161a3afd6f0a4e8fb6105a678d4c481415a300b7de5e570b14a7576826923104d3fb716266ab01606c8e298090ce4f702bd63911110d30fa9bfb5ac5c0a74e4af463463de40652c3b5772d84b712160c559b5a091c536e55a54d5942bcf8636c1b7f436bfe7b705e121816bd98230350027842e85cee054838717232393d291ee778409dea6a3fd7eab41f26156f2e22d1784bd368666bdb16632a2255146e4bc867392df57c41908eef6294f57d32aae26243b9c3ad402ebf823041bdbc17409f99751def5e6e69b6835bfbd245416e89a06a07d91f59fdcc231c9c259a08dbbb0e6480e1300b06dd4316f32d2a4efc5ed0716101a35ed207f25376d2b53328184b0c8f763434a518d05a0362072f155e644aebdad32462dc036e75ef702504d43c59b83fc624f933274fd1168f1b080000000000000014175e3eda692d5412fed86cc442d044751c9c020ebeed1ad9106d1ea83d6e3a20000000000000000d17ae5257a57f59c46a212af8ba777630e2ee07859f9c3856dc376918a19e459283731497f5aa24a5ed43575765b74b4951ce681710b9470f318d022ea74200e94a6e61d0098b36badcbb407e4f365396c672353e28673e8f654d6b4492fa534a346e2b729d30097fe0054c5552af2982da6d6e88d8aa471fd1511a7b7df96b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000eddadc503e2aec32f0cb5c7735978f472953bd018b61e136aa437c6c142b262508000000000000005de0ca1e2f8d4717f094bc0170173a3a3952e564090c404f1b14f10f12365f4808000000000000008f693c29d9fb9537301aff7108bdc402b195a260ea31f81cf614875961b46c200800000000000000dafbab22e444d367b65f6d475ed10461697f65685ed0cf051d59d90d298d6b15080000000000000023df5350b1e1cb266621dc77c2b55b036cfb7e2fd7c4b7680698b54ef5eaf9552800000000000000f2f58b59b83fde0896b3cd5f6797802a6b0640179a67ca06f7ac4150e23c0157ac902c2831a19c0ea2bc803c8ed3f8298fd8d4168d608b3646f08e20b82eb41fd1f3ae432e15de4dc5789920c878617054f79e4cde31c70c4ffd2f5c55d3230545280c239708b1121296745b6564dd41a6a33e0e9aa813572d81cc1205809f2416009316fb4029758301d6777ef9ef1303c6576348fb24534eb9ca23d8ec8d4e1100000000000000f6f0b3ff28825740e1364b862517b7bcece8deb53c9e4e95cb12eab3c5b596691ed9639809220c7192260c95d2d870acaff5d363fcef990c947e3bcf46fe6748070f0daf8460394b713f1058131121fa0133b2a4a03f62615a64308430e49a9b4d8a9c03ecc54bb9fdf4a582691bab29af684e0e5dd16d137992e97110194b314c99dbee01ad88b101c2e5b446914b209ddebefb3515d78dce93745aac2732502a2422ae8a2ee2760e30973d0350dae7d496ff89eb028f97c07cca1f60fd851e84b4deb0c2dea6a14a75fc33570d5d00e6155ea805546ca1885efd7f5bc1ce14d240c49df12d63581f00b77c7e26f24eb2b49352b66df08f50f54ca461b0e2d57b395b8f2d785a8c8c6c9ff32e0a5e8f731c1bb6cafd9eceadc91e589cbc19dfcfc51ad22dd79caf76a64b472a234416a3291756faa74030c4db4ae0f2149bc7140f1c4af4c7fd21cf3c723039c9cab8dd75fa1797c055457c3de9b77c95ce4c89af894cb66b92183b254b752d7915b4fae503975b77d3f9751a7ba6a456c131aedf1d44e0831e10d2bd0ee6b1778100a555caf0fd330776ad0f5978ac2c5bfa9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000008683cb46d618ba218c4f244803810e6d3a2ee4312202e029b093153ad3c3d7610800000000000000d482e431cc61da40089699196465736e4346f2106be4311878860b1fd0e1ed660800000000000000fd2c05390e4092340c3770176ba3e150d5e1ea73f2bc566c5e13c333a2f7f24a0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000547c1b24e00f8b4db12c024f7372e24813d42b5bca7b623e452bff39fa409f1e0800000000000000891dd0531d25b00c8d3bc2001f6e61305cee73774c4dd2302bcf846f766c3f1f080000000000000012d02c07bfc43657241f5d26053bae49cd2d53513be41f61a00b173833d706410800000000000000f50c63764498d60d65c052222934bf18d453e52e5ea0ba5a338d0f321978bc740800000000000000d7a0f0399da8f1484e3f8900a60db9348d626332e6405451709c94625ef8df7108000000000000000ecdb6090054554ea0f8730414e8de0e4c5f7238a7732a49534fb82a45d55f34110000000000000033fce225e04af912c884d3ffb2274248c19c4a2d59444ae3c85f12ad7caf3dd44ff5ee0321b61e8a96a0be37bf550497c644bee58b551e1a611747582ef735c5b4358371feafcddb317fb333c188d61a022ab13d01b1489c725846aef509d2fab289728ce0d12d968d699a2462a64627bcacc6f715a1d939442324e307add23709a59470f559b9fe3dc527b59fe81b043d5772be357462e5fb7b999d75ad489a7e49affcb3324b62ef17fcaf49fbd194d5405a7330636c7f19ab81a98f5512154cbdc9ab8f4dd8fc8976096c19575fe1bc8b190a833b6ddb7b7802176f8e4488c02e249c3b781dfe658bbb3cb756a7e777752be31e82c8c835c7174162060536686bd5cd4a49c32d0bd06743c6b82821e1dbb1396580d8e7b655faaa04d31d72573981327f2360ec79e258ecdfe5a2ab58bcdf8173fb4689a2846ed2dfd5c2deb886b89a8b24f060dd86eae9d2f960eb099cad6c950526b523da669f0f538b12049f4298de0efbceb54dd4c7178ad7077fd8e2032159ee8f9272837c713362fd3f902a50d324cba91ca87be07be6b5dd8f77a3152ffcb6972a5ec8bece179e790de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000003d9b416ecc0fa65e311ab53b6a956277ffd2be690000000000000000000000009063173da966824c245ef546245ef546c43b1e11e5f9bd530e47d2580e47d25818e6f0454b7b6a1842a5fd2c00000000c3726f640000000000000000574a1a590408880300000000378e9008b1c93871ba018e1e0000000000000000f83b8a458e87d85a0490e54941a4067213dd2b42c564be0962787234b26f2e049c91f9580040c43e3e277360fa076315d2f0fe46818d5c112f5bc830df51c53bc20cce61c20cce61df51c53b9e5d1947d7ec8239886a59567ae969427cc2f208a60cff3dba460f44ba460f44a60cff3d6dd3c775dcb2150b468b8b711c57c82c3b386238b784955f92b7824992b78249b784955f3331bc2f5f3f7e13de8867456d229e56000000002567820af9781c3174b57c32c985163e8d09b8095893b50ae206a93e5bd5211eb638132eaeed5970c7254f6665c5a84e65c5a84ec7254f661b1768354d04f70c54e0ed5a6717051400000000000000000000000000000000000000000000000000000000000000003d9b416e6e1c20348172090c00000000ec4ef84dde57064eef442f32f52bb80725000000000000007b400e268fac6a10002cbc3600000000000000000000000092587a3ca8f9351cbdebd829bdebd82957fdf428f3957249d273ae57a273b070c952e23e1ee4be63d6c0eb1a342518257b3d2a3f0000000000000000909e2237e0b351307311ae602e6d781d30d7ff768cc7a03d939d1b6778bfa643f9255d29408528384208e1728f33912482fec63111832d39d7c4e16c550ebf4f100000000000000013967b58580ffc207ba4a64878f1171876f2661c9fd288442cae825b9d29081e64776a347a331a5f9c7c0f5139e26509ed43fd60a0c9b13780b7b1191eb0e25d100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000abdfe80f000000000000000000000000abae576c2162452b000000000000000016c7c46d94691328000000000000000066e11b290b53ad1100000000edf9f467000000000000000000000000edf9f46752db10195d2ebe2a5d2ebe2a58160549d98fee5e1c8fe054b215ba05f395bd04267ce35ffe5ccd702f1da832b24ed51a00000000000000005d2ebe2a080000000000000000000000000000009e89626900000000000000000000000000000000ec1d894d080000000000000048fcd32218c4aa4d9fa6266bed45236e5f603b0957edd02accc2d75248fcd322080000000000000000000000000000002fc0ea55d4a81c6f1e256d40c8b20b5598e9cc4b5c7d88332200000000000000c050aa468934a70b3cc4db7785d009366f93e16b9b25a71e42fdcf682c37e6370d054965a070a03f5c570e77c256d9634672fe0407fa683cde1c1341c050aa46c050aa46c050aa4625c6d13625c6d136c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa46c050aa4600000000c050aa46140000000000000074b2360bfa93e15e8ca4dc02e2a13b6756fd5e6479fd836e0ba318754109933eb768076c59581760e20794553226ec52000000000000000000000000952c9c27b166b41300000000f6be0c29000000001100000000000000ea133bc0ed4aa1440b4cc4350e35a539b1ed583a2535a04e512d75188378edb9c9ccdb2f91bc9fc32bc37fa70326bcc4364de70f890ce789af05d81fb55eab6b1961f2976f37b583478aa5c66c88d50ac27b99413e09303c2b6af3ce2faa38dede6856277fc93042fe1a640481d3981ea1ac4b3b791d7f7780d321217293118a439b37c36bbb7b8a0e3177166e719faaed88bdfea5d895b2c95bc425aeaba6eae8f4c8310ef1ac0b9f892f39bdffcdd1eec73fb12d1f7866397b98a1ed56f692287ba557e8428ef8abc770e3e8670e6dca0c133500000502024c203b2b283180f0261b332f57c535f7e7f8584695a35e256f9f7038f6bdb0360ed1132a1c24570ec5360cc51eca3dfd11bec11d01ca94bcad8d1639d48121cc59865cadcb5f5c0905585af028002e1ee42adb45d5991946afbd8926b89384eecb35c407be4b89ca37a41159575856b215b34f3bfe4e0a9fc139a49078f50a4b0de014022cc893bdf395f50d3b446625bdfd5f61a40f89d243495f841c1d148415aa911dcde3ce37dbf6e6c6ddda0a6851e36783b4b29ae3a1ac0d802898dfb997d678761df1e939bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000006d913b0208ddbd66a3c3c975c4b3f509710f1f3cfe08aa726cb28a3d5ac42b718a474c6183ebfe0e5d6b5434ae36a2573a143767682e6d0317b8cd6dabe23c0ae7a5ec2cdbd2663f4f3d4f56bc792936b7f9151eea536459579c13487859a46b197ed554d7fccd1a31a64844c57000693152de06471d6a281a9ba10177b3b8044dcb4726f7a5b00b9709364ef601424c2c825d576197e422dc2008502057d9741c769f4d3514b82f8abbca669ec10a1a3c960f4b6bc83e1cfc8f273e8187e81428ed9e64a167a2299a5e4669cb8e3d1fe5089e1dfd1363156113a065e2166b6e4ca5fc65b0ddcd21b81e4956b3d4a641eb69574b16f60f59da54996b612e512c40da6c2da7eae5484b7f5547c150811aefbd1e070629932a83be803fd86f5d39fc1e877162c8d43c72d2e60c4c924570e52faa58d821b576250b4a027937c211a005f9101834a5534129c2184ebf5137f733f2380109fe6359bdf03761be4f225fe86b05d8b35d062ea271583955586b5252446ba60af502d668d94e46935509395b0c21d116cb255740955b1e7a6d5e0800000000000000995520708da7d25e89f5be1edc4ab70af06e25345c648a27e23bb669dfb470232000000000000000a07d87267250692de8077e56c6ab3665055b8f2a43e5a34bf1784b3c5465a10aa4f33229012b51279d4fbc763b02b737ea3d0811a0e47f55ddf711381e006e37a7fc5a6f912fd31204d61a1af583ef3a1380a462b372715640e6dd03f6988c5ced3f906f28061661f2aa113940d05b52dae64464a32b2c1cfd9f03309182ca692000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000045c964457b282b0086ef3d2903b5c94be43fbb2b6d3f6262f435445ff8ee3329080000000000000002a7d63a5d70da512f4aa82db3c848313644731c1a84242517ec0306b970620f0800000000000000018fb965fdf8e02d2f23b640fd10262bc0ca541afaf49d1313ff331fc3c00e0e080000000000000007fd34200f04890a1d0f790336d907449692df778d32c359c1d20a324a0a65580800000000000000fe25e8035af00b693275a756dbeda108e8b8f267dc938b5c8096611ce43617242800000000000000fdf13b6977b92b4d8e213859929edf21bccac63f935b1141e1d94158b36ec90978dc26586eba7d2c928a075035f5fc1a1fd06a26c7b5534e7aeeec40e4bc34658544d5656da3576a01aecf5e5e777b1b0c883b12746f7811dddfe1254b3c3e28108d7435ff7bf51b9f988a34e0244d4ad7b39b1dd794684da8b6cc372c223c438b950950b390be1979cd533a7677263191f91446ce46381e8df0763f9214612e1100000000000000fdc4e448392a17e0dccffdcaa5b52d1151f7ef5367efbfc5b2f300a841c69c2898542d2a7959a8bac5a3223abb86998774251f76d27c0a6bd0707acdb7da3eaad5eec20067d904e5bce505542a7021f9f7b3fca2a51a06719be8a33496d58679066fa96aacb06d16fbd371203ec8831a1b75651686da2f5eab40df64bd8b75d47ac584fb1f771ae0892d95f84288eb3db9c98e227de191c15b80966320bd3263782b9486fb389d47ea48666f6b268cbb411f5029af50574ec08a184ab1bd80923f43ac74c85ed949231a5e64934815917f118cc2f0b6322fac76f88e38a06360853f5678b0da203b87ea45bd3603107b0d10ec63b8fed92aa9071ca590529c424af9ba52cd2603ffb67212da21eb8451efb3f3da133e93576c495452782c74b9cad0bd09a7ceb6411f9cb77554e80ff66516324dd8102429b1b0acddaa6efaeec66977377514587851bb2aed9d3ea53a53a14fd3fece2dd2d35564f5a1a62ad099a5a7ba4a82ee53adc7636085bd7fc777650157958d08251404a57d85187197e4ce802f8c85e1a5370e905e0339cb9436a8663ef0a40de7471cc421a7e2cb06eebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000004fae132daa35e8718be86b761055ec4250949d5c47290315b4332571e4d29d670800000000000000d02875015cd53943e9044214093012226509855af6152e5a91bbe25ad8cd464608000000000000008bc0eb3911190c20c7ec7351ad810f15d6d6ef2aef4814145202d35bb98ce00b0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000007c12be4012dbbd2531da19430547551838f4fe4c140b1b088809a176f5b683340800000000000000a7fa32675d2c372044003f4d9a15ce02f590bf4c88758c4a78b4fb23dd09721508000000000000006157cf58255f5823bf6fe0654f77095158e5905201b43316dfd15855b37c8f2108000000000000001301671d944da3003a2d8d1e524431585233f65f9f764a46b17ab71ebbbeaa2308000000000000002d619342984cca102197bc036e5317766649fa3e5d8d036c2e531f68ed7a005d0800000000000000bfb8b712a886a770c3c4334da617f30bc45a7d6ce42fc15f22aec92b6789762a11000000000000002795e0d020860f7ae2f832829956b3e56803f7df24b74db2ad3d949a11a449988f4cff2cebe04b78bfa5bc6e0fb53714d70d06e49611ef0b84ff9651bd96d3a3d4d4173185afc8910821845ebfe69a827bc236b13d34c8f026dc9e4dbe3724f55c8f9c04ae8f5e6f764d3420a9918a4ab3039393374f84137cee34008b8dfe1a1fb40b2a7356e3232c8ad32be3d07440a4de47a6ee784a302c9122e55bceae987299b142d8aaea89b2f29086f7257837b0e3b137cc54c146ebbd6c7e7d85fd922d79dc5c879f94a3dcb263d1b79887d96415d1f244f868d61006532f16faf35e06a7896bf98601082c0ac1840825f54bafdaaba5568bdf1ea7bae0daf2ecadc0988957e7d96a4b09132df19819ae4105fecffbfb03be61b64645e49f6dc7478dbb2aa4a88e2bf8c489835bfa7fdbe06c9c17634d663f5bf2e38558f4c27851f748105f8b83528d25777a001b9b21d19910bcffe7b323c7265a043775dca70a20d031c7c0d98ccf82ef82c0c67c50a4f99387cdcc7c347124af8f0a53cb2981e5891200d06afa0056d35c46b17a3564c76a9ff8cac2830cd05077253fe25fc825357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000ef221641962d146f2b2db546fbe98543a44d025d000000000000000000000000338732088648b750d87c0d61d87c0d616d4cc0440d0bae3a532acb47532acb4785a1160d9da37932c6d1735d00000000170d2c340000000000000000458d246b4da4f73e00000000132a9235b7c0fe63970745090000000000000000ea63703d74fc4410f4b25a431711ad215cb37f2c13dde936c286cf727b2b40080480f42dbc5ae058a7f3486b5ba5db25d956ec22a8521d24295e6f2239eac543705b9f6f705b9f6f39eac543879e9647a166722fcce32977063c6d0467957c2b3066d4538730dd028730dd023066d453e878a97496a25c3eef1abe58683813010e82536d655c8645cd28de6acd28de6a655c86453a870a1ebdfb8f12e9ee23563604d9670000000086d4da69c6967707395c8476d50a3171e5570c5d81800047cd98cb26a314352327a812593f14ba76eb7c94745084212c5084212ceb7c9474a277ae2c6627e239e1ebb726e94aaa6a0000000000000000000000000000000000000000000000000000000000000000ef221641f69ab72eb58d4114000000003895f54ac411646bd4db2d014a62220f2500000000000000d8eec53a727c06520dee256200000000000000000000000073926332ad5ca5713cc777643cc777640d0c6503c6e2021fb66e777027b9344f79c3bc27edd12872a70184523353f7019f74146a00000000000000002ca05926da885d70fc5c8618b76b194b52d05538b5cb402e4596f424a692944117fc856d304c585b7e083a320cfd4536adadb37206fb55203675bd707bac7c73100000000000000041ddda4f05168b1364686a1a10b1a12cd5f05b37c6cbc2385dfb033aaf9f651fc5bb22171c875509bacf081d1c12663cf32ed84707724d34d000ed17a5ea8a2b100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000b8df767300000000000000000000000035c895224de64b670000000000000000ddc9ed14d6246149000000000000000046d8f044ad33a51b000000005de6e73d0000000000000000000000005de6e73da2bed80a4ff27d264ff27d26ff6ae459cb79f5501da35a020f2499392383f95ba83ec32b38ed795e0684264d9812072b00000000000000004ff27d2608000000000000000000000000000000cac33c200000000000000000000000000000000028055a3408000000000000001cd8cc2a453ff1280bf68816de2f3514f5b2833f566fbc1fb03b7b381cd8cc2a080000000000000000000000000000000d90676de2764035f02a2a53a6cdc00bb878215159fc5a3d22000000000000007c59371129e7156826bad259a24de25a36ede82913d5301b6b6d1f415af312511832895e9d5a952f31e17a6d970c3d5cba3deb318885be29d06390637c5937117c5937117c593711db8f1704db8f17047c5937117c5937117c5937117c5937117c5937117c5937117c5937117c5937117c5937117c5937117c5937117c593711000000007c593711140000000000000009e2a24910a05327441f9156d562651a9243d43bed61a93798b9234aaacb4c228dc3161d54d0ba6b73a8353263045b520000000000000000000000004d818738af6fdf74000000004000a128000000001100000000000000698583f383993fc690784874ea711aa41be926f24046462b6efbe23537df9e9ed6320bb6c729f8423c2a0368d2924ae3a237aff288af758e46c4ecf11221a56b5103e6438ccbeaa5e8d95ad488f18394ed3b41c8f422ef1b190daf6f4fbbfa50988258be4eaf857cb6404000e586b106d28f2ddd2b914c2f1345bfcd7bea9fb3620fcd816b7679a698b49357cf6f491100d69d45319df2242ee34cecfab167bcb21fd536b8210e513e3e99ccdb256f5902e29bdeee05bda291ba9b4981d1515f97e87c9288484222dde63fb0f70ce9d9d5c05b510b35a9a83c164950b51e7e4d50c4918bcb872fb13085089921fbbb63a2c8280033104d5a8a6123cc08e2f3dceb031d288db85d37086c29789a8e8d295252419e4fe7e097498dfccfb3028c10e841153849e119a77dffdc95aee193ee21ce3f8a54e3101982e5e1b7dcf8cc74b35cb48fc139595a82f8f802abec5f4f3c59fb14cbf8c264f8e74982d14259f57498ba2a2a2ed030a423aeed5ffd60aed4542d308f1ded942a550f9077e505e7bd6e623155076c501f66fd38404c5d08fb4107f1636f21ac949c3e8045bf1810502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000004655be5242fe5b6e1b3b155649b757711d11611c2ee70b4a03e0974327e14628f8dd6a02aada5c369f81236982f0634a0906e81739aeda1aaa3b6e3fb60c6710a941d23223dd9c54f5cfb0007147c54792929312799674479136a0358583b8481f2af34b3f50c96257f155635021743622250d42dbf42b6b2a7cec15dcdaf95d98da5d54065c15168ff3be3c3e4a1156c3f0374c10954c4b4642002ad54f044cdfeeaf0bac23602f09c57f0e063a4b0a1b3dd31f1171374425062412015de9042371e965442551613e1cf12d38a6e0579cde100d337aea5b80112547edbd264db5a1b569a0dd6f40215da43aa31e3a199bd07e3bda43e272751c076c23082f65023a546ddb27420aa8096e3e6d133e131ab8593f8ad8c75d1607e366034613573ed84334773bb73bf927b722b4ab22276f9b97347c264d028cb4ec01fea90931452b1d07e8109267a3caa1248e0dcc12880a8b43f169281a138c6702e2033531369c520be2fa2716b410a024b1ac901f578e04565c9eaa5b374e03561c71842de7fa67244e10e264b6b75005119b726f08000000000000000ab88f751e6272368a4f584f1d0db83268ceca1bd218216a29d58d2adde4f4082000000000000000c77d486facc20e0fbc9f2d36a3f4c44d53e0f82c9c2d81348be6c726cb3cce005282c20984e3b01c4e44866f75109517fb6ff8118b48122e5e2104618be65b0a8588824c4e3fe544288be47358925d134bb43a62e085be5035cb271603f9a7129f9cf81406216c23435bbe4f891a3d68e0b2566e97597c3d378c356be940e4092000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f0800000000000000bbb6b746375f33497422c95fb9126655cb5fcc3f0ea5b3536ff2d5348a9c6e2908000000000000006711750a98d3ae0be1bcad2916125d7069864c4e5f698f2a1efe5f296ef18a2808000000000000008933f0455a2f16774e2c8467a3eb1832e4a06e5502927b1185f523072e620f1808000000000000008993266c56605a5a5576c063fc5ec44327e80153771716664d4ec72f0c99d8350800000000000000d708b14958e34260e1df482d3248046a70293037ccd1ea4e7199bd430d0430622800000000000000c4a1ab13d7cc002b2b8ad20e9480ac542700a677b79c743d29854345be0e686d09cba176926243414a4867555d512f2f9f35811bdf2a186da29ad44f598e7140be3a401c12d2cd1499505d2b37246e7551b37538d66e0a24b87dea21230a43280875af6942cb813b80620c4186ff505a21d532227e6fd70968e1330ab630ce656d02380427f280607df4e85bc57cd43a581c506fed99730c8a6b611ef607d96e11000000000000008be5f01715620d73529205874311dd3ee672a0d90b1962a3751963fc188ee09a8b25c052f2900b1cf510d76c632a18f5862f18316f1f5bf4bcd7a29d81186e00eec1423e2256f427a770f0bcd8aafa856eab4f774ed0ef65cd12509fb18fcffb4b431d0ee94615da663208da58775ec528e87af0f3792fd609c778f6538c9634ab9e8514ada0e664264c44fb327331a9f1c09db33d18294da59f8b23b3d43e34101d92bc4b51b2087cba39dbe133350223c555694b5c23bbc92150e5188bfe561ae5ef43b71d64cbb18345296d919ba3e6d3a53fe8fbf49d5390a922a35a77e4f929b0281d1320b3783ef96dee7d4ddb8576399547b0234c8c546a0c2deb3d51ee3ca2acf3feb9d6c43096f37d51f7cf7200b411c3f3a48157c1decc0fa0945d8bdcc852a677bfd6b5ebc72fd7bb4e6ae1483faa434fc39e6238ab22896610cb398417efb6f5abc34871bd4d5d640f1886234b1b7bc72becf2a2d2ec1f43ec9f2c60e97df2a0ae08c4cf771110fab61053d7e9d0e20f8af24b6162de78a727a2eb143da2eb28a45d5500141fb2a6b66be22e567d555dafb600e617a28bf89518033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000002774ab386b6ec354d07a2c6054a889371ee42e3b3cfe37130a8a065fe44efe10080000000000000008e95b317c97115a95006b002bceac5398d3ce0d21bf9c69fccf02024c9e313d0800000000000000e18c2339e3becb0969118c4b3c5cb64559164536dc45d4169148bc103d8f716a0800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a244508000000000000004e250d3c4fc04f4243c5696238d51618c6f0c966c2257849d6efb81665695e2108000000000000003beb09606fb56170f55c7e2429e53b311eb80551dec21a6672f696354464d22f0800000000000000bd31723f6798b752e2b7570de6ce582f02eb75668eef4075941604357727673108000000000000005380b500b06f6b566a76bb3c87414344d390a4712cdfcf32e5ba0b47c4bf3d15080000000000000064e061158f82770e1dbd942171551c4ee4c0bc5300f5060029a562000c03bd5c080000000000000094f1091f3429a33cf23815675ef9a71deb72f02b395034096c3ca63063d0fc5c11000000000000004ebcd0c4560d22da6e561b8395357edff739da300d9c96a86791a697048b5f102d74fea82d6fb604330cade6bbc04f03a9b2d77b5cbaefa91e4ed518b560c3c42e909052e5d95ac87a17c9158cedfb3ae37bf0f3cf0efd447e4338ee4cead5700db9c8146ad40a3d6fc8e842633f4bbef68556b736c0ec1757a07668575ba9a31b04f31c13da4d5f6c728fcc2c1e20f200bf7429595f79757ab1adca2708d97a7a257a31884775bf567b771a3d8af026e83804475ffc4ed5669ea566f9b311bcd1d6777db6d7051f3623d7114d3d17fc0c858713fdcf32d881a728856a26ef31bf08912843336afd13d67ea13296499800ba55e60d0b6165786875416eca6badf4c8836a5d1eda3adb77704173ebe908179360c309cc2c0d2d0528dec2ad9cc6a9a19566eafad70ac295b6acbf73e64a5ef220f6258d853e9042a6b55e82d8a3b3bf5a120179af570fe8a87baf180d4e669af7d6895fe3310c6919f642961ecf2eac28dcb170ad354b1d82f1a23eac84f73e66faaa4cf67e9bdd394730185acc27258e821c8f34f141464835c05ef8b4d75c52b32b7d8412792c5b07052eebd265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000f28ac7107d2c466478a94a28dbff2b3c27f5a02a00000000000000000000000084eee653b04dfe22faed2234faed2234c97c4655f315d2744a3d76054a3d76057dfa815b36acf95ea817855000000000149e606400000000000000001bd3452a6dcee16a00000000cbef8c253bc7272c02979a5c0000000000000000379cfc597f693f1a41599763df5f81348f25c83710753867331549516acba00d542b78050ef2851cecdcda530ac49d573d772d081290983f92fb2f706df2271690a3e25b90a3e25b6df227168c52031935d09b41819fc52bfb3323039e24240b8b46ea6dc5de1804c5de18048b46ea6dab28125193279d5d802c0337f8883b1e45c87758cc5306198bc06d558bc06d55cc53061908b88d551cff9c065b392028ba3293760000000036aabd10a7c0203d3b6ff4648e08ab14408fbe6f74203351d7a3c807a102622849f8cf028a9ac0400cdac366a2893c18a2893c180cdac366cad43f76c3a78c40350fac6741bef40f0000000000000000000000000000000000000000000000000000000000000000f28ac710c5e4d56e2d7f2816000000005d6fe66e49274f619d563b4dbd82e1072500000000000000b2e73f06a3e15d6d5f7de548000000000000000000000000e1ff161c009ed34458e08a4c58e08a4c0625c55713957122e2a60c33fb800c2272887a206bee8d5e6f33a7250968e83a46d2ab390000000000000000e81999008a10da59553f19445191af4bea5a26727d67a426d353f60c8e1eeb3c77f91f64eb74803b3c6d603aa19a8a50688698564bfb1d0481f3613522d8500f100000000000000066bd742c152b972c2a6c3f0d14c278190311b635e116fd2a5d3bfb7243f0b719fed88477054c834d45a8506ab1cfcd58ba21734c5065fa2f3542202d9f6ed86a100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c52300000000000000000000000001000000000000000100000023000000000000001e01c362000000000000000000000000f3cd1673b51afe0f0000000000000000b655c416e377f82f0000000000000000d4a96e0c8ef7391300000000c4c3c602000000000000000000000000c4c3c602986d350f26656f2226656f22d1282c03da63de3551cd89720e6cc70182bf445b42dbe96e198a0b522633ba520964ac37000000000000000026656f220800000000000000000000000000000082fed35f00000000000000000000000000000000bf733b310800000000000000faf86f4550e91c16eebf755a4bf62617c79d1a5e6766a01fbd0b9506faf86f4508000000000000000000000000000000050d3863a17d842fdcc8af0520ee5d21fa0272497ff2a847220000000000000039b5a74d942ae1286ed7a165bfaa92112bad944d7fc3e663bc8e9e5575e9b56195a96670f0bb8e18d469295f60de1b5462814715d946a222e647865539b5a74d39b5a74d39b5a74d86d9802a86d9802a39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d39b5a74d0000000039b5a74d14000000000000000e0d0574f2301d5859bce545a6813c0e4ec556408e37dc77753f6302d76a92130671f353c8d3e851fa3d2a1dcdaba830000000000000000000000000e74c73648127e120000000002576c43e000000001100000000000000395c84dbc990edc3a74f00b0b41b6f3b4eee461efe5fc5a3e2a51c10e9779ad5d2c34d65610786077de7e9ec08c2fce97f72b085b8d47900de290de8cbe5039cdc9ab100569429476b0dd9789c3181ea07371c073380ee0901e48859c5ef71079056b8a8bfe2d2de6eb0727182e2747a2b0284f2352a97f34ef210848d87840092e548df5f06f5b932793efeb7ea1fe87182bc39960c0a184c4ab8c01c33c481593a96c024a704cef3dc49b4200b65894369d49df0af094a1a966f937d99993fcf49104c9b78ead42d39c7f7d70d2347bcff3b75acc394c9ee2376ac8c16576a92344652df09b5358f966a66f3edd25f15fa04506e81ac7f3a97e8ad7685babf89d60f4867b86bef6db3c4acadf63ae20dfed175465ec3307019a0bcc1b74e1dd1b8705fd0512b650635b43748161205346e5b3ff2158b7838c2bd74939dcad312b44cce825edece73842413441866b6517a45c44ddaa330a0a63f4778836c960971412e2e20ce0896910458bbc4b008962d8f1d72c3af92acbf4f94d855b51837dbf6e6c6ddda0a6851e36783b4b29ae3a1ac0d802898dfb997d678761df1e939bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000251fc80551251708e5e8bb2742f21708b0b7af266a655e0fe443b61ed8149532aec585751db03966ab6ef8594fc4b6225e9ee46363b30535451f0f29f1c8024e63a0d46b1008e84ed1146c6ebb5a3b1f224b7b584244ce44ad01ef6ec1cfb154b5cee61e680c282b3decf57492fe8f1a1575511e2904c330021b85068bfddf30ccba5f0b8d8e1c603f6b3710f310eb1d9d07950276e32142ad4e8b55e56c3a638641a862a9ddf0085da2c80438628b4d8b51b42a9b180b4ea470dd6461a2260734dfd347320b567431371b232872ea76a27c4503f984344802d4194b072a212831ec361475dd706bd939541624c2cb77f7f89b4df404af16dc1c987093cc41419a4b3640875909165274f866b68fcb3164b5dd65d445df3ff3f53a51ba2930481ad0b302f2052d706f607a0ee243e954dc743c1086da2521a879cc224bfb676c8e215e729dabc12a8757451478a44b3c7baba247de4d002f70adc42068251c6cde9c4b210990926ed47cb7740364326816222d120d8da069ce4e3553d44a9f0bf9710e3a84ad6b273f19fb530b0bf53b0800000000000000a9f5fc2c06dd2e393c3dcf6cb598665acc03083ae99c5f2fbcc86e38ee5e1f5d2000000000000000be49e352685b7a3efd1e05220a42d217927cb52c5c4ba3596a471a57151741308ad0a6322c368460d10a3b68090a451ec1f5b06c0041ea5a56338e08007d3d1ce8842c186a9e9c67e1d34e0179a0622a77ee26019cdd3b56ee173850de165641e72f9346f73ac71c305d144a87e61d6952f8ea2b7e55f4438021640bce35e21b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000034659f0519811f67d0a455145bbe8c4e10b86b3d53630d51ae196c5b2191734f080000000000000057adc51f638a6a3b84ed5750545ad91eb556652b92923771762a5b0f6768ca580800000000000000968cfc6d86f83f691ccddf1d73f5a75266c31b2fa5de53410f9e8c5cd655756708000000000000003a2d8f769a44bc0a21ba1014e7adc14ec8120415f7feec18a16e29446b3023210800000000000000b6aa6c200b9df157902794486b367d0a6d0a1115a3e97d58b8a61b13d8baec2c28000000000000003ee1ba54df343c5a749d150d8e9cc5483147f53a2e2eab1d3537eb6a6300d1010e76842ba22a036ec10519168271aa13368292356ccc0e3c8ee3610f955a6548b5952429b0f8ed02ee0c74697ddcc4651f02885e99ce9571e9b335246f30855abd82b074dbae015888e91f12a454a2748d77c958fc8138635f1e943b611edc4ccd80f36d90eb5336a7b4a86fc8e67f0677ebfd202d1b8b40cab2487543430b681100000000000000970ed68e94da25f58a35d819b560eb4ca624c46401e78640ac21c2cba11236816ca385f10de23b80fedc429e5202905dd3c43a18b72fbfdaba227f6a100d2237af4c17622c017cc876f212fce962ca4fdca5cbbb8d2d85d98e65aa8d91245e49ea8678ac2b4f010f3e2996e21631aae6c93f1a14131a709be8ae7d0a86815cbcbbe4eb6ec7e14465c6b10384f615cf1f58cc2feb6a58bdd3517dd6ae7c1b2a8411974384bf33ce288b8afcc9922ab7f41b803341d1104344f70b66da7a7d59de5153df2c389fffa4d03b4a1b07c09dfb8b17c21e1d3781d2f0c1d8935228eb9eb2ea474511be7cc070c48b7dec33a337960d2a9e8278244cdd6a08a9548a3674c61eb68c4538338dbb76fbbb217edb46824ee189d8a4c54f524923a981c9c5bbc54140f0dd9f0b4b1a333b12c13c063c44abf1cecaa4a975983ccb7a4693547a01a254c4688ad862744317bae7318a284d1364281022513244ebe19504db4948a0d2d0def3c8b6573365d15e18e0e0d145ebe0295b9d14ea050bdc991a0cb8b2e4ce802f8c85e1a5370e905e0339cb9436a8663ef0a40de7471cc421a7e2cb06eebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000042236b497c19bf272fa3071eb6822b02c60dc13a9090c052d1d60f2d2e4b8c4608000000000000003cbb2254ded12a197563ab60d0893d4b3bad7f1ed977863245c922585b9902750800000000000000171dd7104775ff2a6a63d657357dc361aae38137548162599298036d5e35016d0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000001cb36e0b363aba68d321270cae9d0972ef5c1c45d4acec5b7231b63ec5c32016080000000000000010d62e29787be719e2643611d01916039a475147b0f6e46a8385fb6db5f5f34708000000000000003cbb194cd888df4b2267814a3bdbbc4d3d97a6074103740b844b4b42cf99204b08000000000000003512903a598ab54614f5133d5c2246582f6fb45d8da8f54bcd67fe76f18c88720800000000000000b17ccc644b5a4e1346ade8161c7d832e05a7b94d6f25375f53827c31f739d3490800000000000000a14002038ca5464cf147136604a78c5f816c452a2279094908e2c8117190001d110000000000000067fb25372a5a09dccc056b77d8526510983b709c070dc42b5ca5d83187865dc9fc749553d4d99ff200727ec81e49e2ae612f0a2a336b8aeced02e3320a0b6278e37c32254105e0401059f269c18d68dad2698295f092f59d483a88b46b706043925ab26324eea1161263b9e460f65c3cf6f97f25fadaafced5a33c4371b33493382ee791861160cf116d74bd49b77a0603db483d512acaf8a835fa8543e0c4f4f6209cd7f587bb9df9e6acbbc535d87d2d9bb28d64fe29309a3d2d61b7840a0cae8f373b7085261e0ad42947c1218dab37f6270d12b0e4b2487fc5f3b7cfe4be830dbffca3cd541e461339fe9c77c21b9c15e6abdbaa56675be4cd3dcd6ef353828403b77cde68bdfa205ae4d6b88d8a5ae76f8617b5f65ab7de74fa4bb414e2846950fc2d526624e3eb7ccc65692616567e384bf30703161007e9bc7fda74ad89d34329fc35d27672d6480a449f7e1c2a4d818480515d9132d9525c0d8b49afab43447598c94c51065c1c4c2edfdee854c02db7e12beb47de2920e3a3c91543891200d06afa0056d35c46b17a3564c76a9ff8cac2830cd05077253fe25fc825357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000005382b90ab3fa7f53156cb2502942723992de83730000000000000000000000007041e462b043a8087ae5281e7ae5281e99cd045ec9eeb85314387806143878061406cd42d8d9d458eb64b300000000004ce9f92b0000000000000000d83f556fdd34b76400000000b511b65f71cedd6e2cb75e600000000000000000e92436404192661c8996c21618e86a2c4ea01b21af7d466dbb758e0a87e59d17525cf456d1ea821ed67f671d9b0d01654576996825d49f74c5cf5941a7cd4e1af283094cf283094ca7cd4e1aabaa811bace26e69d9d7d14a7b2b1c27786c183e546b84564545c7294545c729546b84569bba185e8d3ce9656ed8a82e08c8840a1bb81f302a262b1fa3c2c335a3c2c3352a262b1fd337073cba38b41ba01184115e2b8a2200000000676e7e7430b1093d984c761a4a060e225ba85e46788e0f3cd0e9dd0adbc66c2357a9155c6c1ae0034595a949afc2a307afc2a3074595a94948bb603712b4d96a6863436ce127ca3900000000000000000000000000000000000000000000000000000000000000005382b90a4359513b82e38700000000004e384e3dfda9c11d69062757e9a7426a2500000000000000d5aba212ca9f2c59be9d4561000000000000000000000000e34188401f290d590ebf742e0ebf742e254ba56d4f4b236a73499554c007cf5c122ea254e445c8215d945b6e172c63264f5da97100000000000000007aa022372cd1db28870f6320fdb6cc14183cb33de53ec70fa558554f8d7bc25692a1b45f4bb00007a9b63719d5dae249ee6e60238bb19d20f841c303f386aa53100000000000000092127d6244678a395b1c116d5fdf283f79afc5661ae37b65023d7d6309e80c386ba600262a618b4fafb23337aea21f48892aa76044d9464d176544403f54731e1000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000dfb62a26000000000000000000000000941250226f9757650000000000000000b510c60cd42cd3130000000000000000e109f252c56c9971000000007ce1ab310000000000000000000000007ce1ab315ceb9d0c20583706205837062fc48355d5d3d250cdd5775586b0390b3bf93b76ee0b100f30b5a05e4aa6b96542a10c5800000000000000002058370608000000000000000000000000000000fcb1174e00000000000000000000000000000000ec33651808000000000000003c350e27b41f6860fd4edf6ea2606243a6e0e20b9de7b503955f62403c350e2708000000000000000000000000000000d674020b98f3124805a12c341f1d9e28bdb697237e62861f2200000000000000fae8a11a675aa54314edd9739873be514e165d2ce0f9325cc033c12a592f2b21cfb6c3085641c75862247a29dfb880263cbc700a6b0fb9493ad18f75fae8a11afae8a11afae8a11aaaf7a62caaf7a62cfae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11afae8a11a00000000fae8a11a1400000000000000b37c1e35c78fc267f19a01388971df6498d6dd2c970fdb2ad0525564de71d962c4c5e5715f46cd4555423f16791bd7390000000000000000000000002c09341656c85e2b000000008579592c000000001100000000000000189e5534202bce62bd336be366cc9c99f38b3d97ff0d196ce6610259c95f2912f3d47f87ac0e53ea8d79a54461ab14542532c945b254a7d2edd9601fc08da75ac29a1b3c0ad4dcce0a83d643a56171fae37b9c42aa7713138698441e6ca230c60153059292977e959c5032ee87c8bb6829024020f2dc0b2f8e8765491aa1cd2bb577cfa304186c6ec083edc903662148e70be90f659ec9790215f90cfe04b6d25ded05fbdc0a50895b515c90d1fd945d49f7b8df7e18d6b533dd770b84cdb92ddc84525c184ba775e8a926da1441a769f3505509bdced00f9bf0dc7e3c6c29dc6f18e1164ce9f30da7ab4fb17a31ea8a9945a37d0d1d2cb602234b9a05b8c9798fdfd186e4edc68a1216a175683383464a3889f3ed564a841ff2de19f1b708f93a406f2aeec3c649f3dba42c2bda3a8a794c5b7a328683318b341895b7e7a82ef26e7e8723dd70f99a3ba94ef03c97f184c2c7d43033f043a0108f2424e7a9b2e155b65c57a03d62438ba9799b9906b374114999cdc06a0d3893a166f13171890f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000cace91535040af1524e662246c571f1fa33e475ac95045342dce7a64d370fa0856bc5361b8a5495fcd53a02865ef365e542ef107582f5474459c2e5b6cfce2274724b5634226ad566d430d30d733ca0d87709d37c61db9671f09015c67fde70c47e3756a22d086359a2e0f74049c0412239ab343268b2a60e9ce875e9bafa95d0920262fd5feeb407e5d4e448870ff721faa6671c50a070dbac78b1ff7516a3cfed86c23d471da4b9ecf8a391537e250a0670c302e78ae5c8601d616f42fd83625edf349b972c30360c95154baa51618626d9506bc3ffa1e83cd680437aa2e581fdf1e1cc766096d0db29a331111c112012f2f1e8285fd2d0f6607365ed4cd22216b5a24f99d1f029b2ac7479938ab2c2bf68c7257f88c3815e5f03931d00c0099c4402ffb4f3715482f0c339c6ff5113890551fd9ada471d6d5491a138a476e88139e0a6fe7701f027a9e18ece64053c32f126bc852be0815560a0d8883a9188d2a872e0df34a6b4af77d624c0d9109c034201ed7099e0bf0bf04156290a63ab317fe29ffde75677141d542f4f92545080000000000000083759d3946674a3cdb1c2945843a775df8db35559e534c37f6f6675eec6a99322000000000000000fae3c161c86a215eb139ed3e73fe362cbd69ea2f74816c4a23f4dc1d8da28f72e7331b462fd68e04f671146e85ac264d291363494b66f064a0ad14565279b33dde0ae0441a4e283316a4b336c558876cca67d63111c3435cc7861d67218e66400d85fa1e32ad2a301eb625164596340c3f0a7c2b32532a1b10832f2d9b0ba7182000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b30008000000000000004a17123979ec8356afefb41de2d9a41f183c400e48bf0f1b2d1b9437c178f9290800000000000000be0e61763c9bd82d12b16642fc24cc1c8c868a12812e3005cbe10b542b8a34690800000000000000dc4d54542f23453b962a05010bfade2a7f92017696504a61d8d783128a81216a080000000000000092b3db44176a22316a99b410bca2c0732115693b3c50ff47a01b22528ff062690800000000000000bb684267aff45e2056b16a3bacfa7631c85e0d39ef3fac4c3227444b1f8b2d7028000000000000005c4f5e172c358369bc45a27259f27b374e31f84e7e29d6153781ef2075bec94bb3434e66981dec3106a585342bfa101aba50c516780b65778cdebe3ea2a5fa6116f391073a1c5c771c571e42b995ac3e46418f644f6d7c06ab53933f45ff3f68258ed0102c082c296b335a173103ce0408ab1b19253bd23bef95805469af3135c4e44f5b539eef607663ba5d4675d460a4524905f4ffc26565e8516c8c5f983011000000000000006bb586c8a022ce472c25988f266e9a780585b2bb3a48e2c630309c98b8b2e61666fb9057c181e2df47b4801c41ea47db337848401c5394116ab8530f09ead1b13a7ffe2a9d9dc884fa63ad2934562dfb5b4a2bde13281d6633a09574212f30d67e81b9e172e4c02739057a19aa218236ba7a69bbe977c4b24e81d124698a53054eb92e084b2ed5deb45aa99b5a62b2fbadece25c4302243a359d72e853ba70fd05edaa583d88a019f9651d32f19fd6607545d02241e223860b2a5a4dab507400bcb6a14535f053dfc2357c7708bc378f90ebd0f36db41af92d444dd8a03581c3cf2d9a37bbd18517e6c1c235133aca94657f2780a9cd8eb9f6f1dbd5913e0cd5409b52bae3c4d76fe8844702be766fd9bb54e37af6f84a4930d45a36e83da31643b930ff6577372a574a808315ea268cf078b803ccbba3dd2b6238466f75d9a1bc547bcc8e615952d6e4e329fd1e5f3a30898bce49d0e4a866495f0e61ea6023438737ec1b46d6f06ccf014563f29c98702ee686563cd431c2534c459aa73ba7949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000042ea54505f3c0a38fcd48776f215cd588e9dd076b63587734b348543cc8fa074080000000000000072b30b6bbc647e7364d80c117adea205da05673286bdfb2f5c619e59ed664822080000000000000039a8d9393943842a3c55d75c3a54890d66c1f419d371680e9096840cb8c3bb260800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000870a1150686d574f96e1d425497e0b0804656e45790e4b0eb76b70740f22ff050800000000000000bd77151e1fe19222755463743157da389552e801a9a51c34de08c65fdd1eba670800000000000000cb4d25738d1b172454b12e55b44a0929ec043a2079ed4c486353d8215d1fa1570800000000000000598fdf3e113e6434cc11a46811184752d17d7917b8faeb05fef8d5200f4967490800000000000000fbc20f1e04bd7b27b118cf3ef33f9b490d836e279c483236d9a8a91c27833a46080000000000000061a47e679335f0032df8715cf1e9db702fbc4170a33813505bf70a1a7ffac62e1100000000000000738201d793e49d6b4b40430203a687b910d4232f947ddebba39797f859eb5832e82ca9cb1b70e4550a24e4e50821b491853603fb147377894aa069603b991ede38ba1765b591088749dbf68e5163f39444fa4b42344cc731af1be78aee680e022812cf8f4030a4321d8cb225269bc815f0137b2b06840fff95595fb19379f95f19e41a7b5616329bfaf3e431c2ad2eb24d7cd6c7857dd95278862862fbed26bcac5f9fe9db3c2c65f217f17b3069fcd35e4444ed5447d5d005ca517fa228a1b280cb2c84223810dbabb6b50de0702fbfd6472bb83b2323f151502cebd59edc2fd44818a1224b99ef32f1ce6fa0c8fa5c4fe5d3ce38fd6ad8bb7a551de01bf6b316a2a48fa86d05f5d9c87010550f0a7bd5a79689ce4e9f2038107fc91b78edce7e832a123c5543b19b53c665fda012001e54b52654ee45e285ceae228f4b107a1b1050d519f4e191998832a6ea76c7ccf7f758b1a8879e5b433cbad874812deb2d3b1b22412c34145c264bad65eee436265b7e9987152808254a4fba9383fa96495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000c3747000dfeb951967e7cf0a1ae1cf48e5e6881a0000000000000000000000001b24c32001656e2dc238b412c238b412ceffa76d83081500a60e545aa60e545a7acfac71cddd9c1d9b16ae21000000005529ef5d00000000000000005a1f092b1c227865000000006ffd90084d597070c84eb6350000000000000000d9bb9951213cf8095cf5d324bdb6203b7f8dfc363f8b8f77c7c994388fb9a1220e84b665e38e386395dcca41aec371154099a61bba35e34df298986b0489ae3ff5e73c5df5e73c5d0489ae3f461ec5497f4b3765589ad065d76bdf53a6d705368d22ad0de806883ce806883c8d22ad0dc275f434a81b43709272844001271f100cd5d46e3522635abc740c18bc740c183522635a90248632d46d3f49bb6ae22f90bf93580000000098a8c94e4c395d15d3616021ee77b25a13b3e6289f1d8160a614df2d8c70c6054b082e2cae5c6a42a49b482191efb31991efb319a49b48210bb0c65230b6ab49a26a4e080872865f0000000000000000000000000000000000000000000000000000000000000000c37470008af1a53d84ae124c00000000b22e4f3601ce4f5b3cc7306f3f19d2752500000000000000698e79441fc5bb6c34b9fa07000000000000000000000000b8acf65565a8d1586ee6df436ee6df43df441876f206f318f5d416443ed3ca64e733141ca631c633de3e6536739c206afb25ce0d0000000000000000dcb40d6677db7f09bc58c02414cfbc2e46d3db6ad9d5a071461d39411bba2f360cafed390b95dd0b91c114275e0a414983ce0f677eb5ca4a3253bd3c1a92a63b1000000000000000112bb403f09a6d450d505f59c9f1f938406af0703dfc2e466720c91d161cc633a7d8cf51e4f1ea2a2be7cc3a0b4e58407594a951adc865298e6f1f764b022f58100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000003d3a45300000000000000000000000018a4460167a2f64a00000000000000005237d8585ec7196800000000000000006e4c9b224e96fc2c000000008914425000000000000000000000000089144250f760dd7244f7d92744f7d927f391251393bd9347739abd468c2e73457b027a47366f12573c3be001e11e9e444224354c000000000000000044f7d927080000000000000000000000000000009c4aff4d000000000000000000000000000000005eeb3c0d0800000000000000ad1a567193fd183a071b075c6a3ed3661e2ab875dfde8b6799a4243fad1a567108000000000000000000000000000000a90496752b90724dcbc56914daaa7364d0dcb46241109d592200000000000000d92ba841a6b4666012ce64660666b252b3b61159472d7323690893104972a52d897da00957b23a3b0b9d912ef1b18064390e933798e8c5555f394e55d92ba841d92ba841d92ba8411ef66b691ef66b69d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba841d92ba84100000000d92ba841140000000000000077b84d00efa61a257c41574feb1d114e70dcb9763225592067e92e47703ca22c67dbf9320cd33f64ef1dd372019572710000000000000000000000006b565b5c5894bd0400000000d185004800000000110000000000000075d6f738db5306acbd6e57cb9587688faa6d9355246a5735cf24b730c4673e386f5e773be20fe5633b96fc13353a0f5581ce1f76377c3ca5504c8a98c6eb5bba7ccd25df233d717e66eab71e200218a1830f17524f67d3834d282501c7fb171b97c975c05600c24db05300d9833bef5bf38b1fc0e9af191a40d93e5e458b78f17a7669a43080c9270215a2ec232f74ac9701af65a86108a63b914c870109fed828514e9150dda49a7c20358ec4323991e954f4e1bce6023ea64f30eb90061743863f97a86fb2e5e6e963bcf7762429ee6435f978dd9f42716456e68bb08b14660595b9ce62c4af62271ea05346303634ef713f96f77647ff010882229741eb9f9bb3399311b9a9b6a20972de27a4deabd137817eabad355be8c0bef411aa5c3a1df7f7d5d7b18ba61d6c6a21f1d458f0191fd7e6e3a800853688d04d69da4432fcde9e60965bbbd3a12ae26a7049034edae5e9b4731174b4ffe98831e9e3ef8bda146f9a2ad9ebfea6d3c8a157c5d938a0130bfb5454d9e6a6400ae65e2c6b5c6a585c259235bde2c07007778d462fcbf480a3ce6f0f5d980afd59f9d5d67133dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000001a8fa73187c87806e76cf7541c039340d670642530f39e72e8483a61c2e7596989fe875af65d690fd5e8d84a5d600d59a2a4c233c54d9073aba1372207754c1158cb1b34c7765922761a842c7e5f771a0f168c75b602a5213fb67c26daca233623bc9641cc34150f83845b1caca3a375b1fe2562f1c1481efd62ba1d908bfc64a828d622bc3f92718e74fa5e3d5af30f60189c11571fbe28e5c1da0e4159180ac975d73057bf185e1d04b45de51468678d327f6f20f7766399187d20878b113101af4b189abd1f2c37bb975bd97eb340bf1ecd3a3b78fd6d292e6955d1405558285a3c3d5ad4f0711f5f930ce2387d471c1e1d0f4fb012345e0b1d506b89e1657566e351121c5b2029c8ca30ec1cbd69f1a1fe2090c5313d8fd80e70e29ff55ed4917625866b37210c62bb23a270322b2b6724229b94890fd92a7e0d0103851b8424c82a8b82a223e3424f41d3e4e53fa432151c5dbab50ac90497406ceff0036885ee764b213f701475424617a57f08c0d3435606a1a7075bf35a680a5b862b828f3e4b68b582583dfb464342f5277008000000000000002a6ac1274456a123878db6338f894e2b8027422064a01f5e3821f50bc9fcfe052000000000000000da69b551fbd7f9037ac7a71267cedf0e01cf1c3764cb4e74bbadd777015d3a3d7d1dd5271804ab2525efd101dd5dec087677933903d89662c66d443697596d2789c1cf0fb062bd34dfc2e43ff9a0d2558b758f478ab91c07ecb48e64b6a9ef2dc2401c33b9220b70a9c98052ad2777459e953a57e6b25d04861c4e6898fefb142000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000006368df02fbf3445bf7c4744f71a0b429164f24124c7c8b426c088a04ed545f640800000000000000bce3d636722e055d8fb0c309fd821f414d5288517468af458c4df03307894e450800000000000000d25e8965cfd69b728ecea33a0126bf53cdf0b42cf5c74b435ebfa9020244144008000000000000006eb83d107ddb48200ab270597b78e4734c0b1638b135cd27fce7d0357c53be4b08000000000000009a80f97070a7fe47d636a83cc0ec881bc2960b155f819d6943662d3086e2d124280000000000000017531651230f2608df88507526bbf00522917f62f2f2ca72011850594002743c3975b516804a3b4c0af4e719dbf19929a199d55f1055304fa7ee544f6ea36517227a6a25b7b478634308f21645df5f327b9cdf26902b6e01f75d5a59a866151661955d438c0c884b8e6d584f0d487e354e12e72d04a7012dd555224f26210532f6261e68d24a3f2c4c94ae0812935420db403260f54c0711c8f816187fcf1d70110000000000000014d51b09a3bf2bb4844ac2ce7a47085f402d36d118020d465747f1eb374d1af16120749f7437989e1c542781c50b02388f1424beeabe9d8672c8da9cdc0d06467cb42f68ceb49cdf2a7eb654ef292ec5496cc8079f51ba37926ae947470201989f40756b0f3af7c934336a28c5347b11e553ca8d055422778cc7f9bb8b5cf438e25f5059cffd587d99f7018c857a4cd0b9f18c3c3f6ab7c0b9a773114399514cacdb6c5731735dc509fad467d6c417470ff9e3d55cdb12adff93f63dca37977454c795d4d3d188bb2668e8c00df2a20f642b2a45e794b192d86c38c78b46f9c20e8ee2ebee5f71d3493034c55275c3488769adc297c1fd4e24cb56affa5e98c0be16f6ab451192815ef68203d6889756c843e7c4a8615f69336c49d7f7b74ecf88979a32b9de037e1da7b54a35b3462874c461f275414e1df90e4592af198a5b904de56189a70b223b7724a45e8ba648fba1b289b87e6a39e0c949c977960c09c270910e06608c3396d903f9bdc0a5303ef41e29746847a019a8a6c75338bd9470361858c64ef784e99a131dd8d7372d8380ca32e5cf6b833d38e00ac4bb901b02eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000dfdac755a4a4bd0b56d5492fac099f63d4ac0c1e07280960c0a51c30b6a06215080000000000000047876c51b814ad42d56bb03e5379eb0ec62db51f15ae2268d8d836512c070b0f0800000000000000501314323967d2430b69e427c40f6362632bff3acd72d836a29a181ab34422770800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000009760a413d716cc4ffa8c680af673fe25bf06a8162974a00e90c4dc0b7fef7c4b080000000000000012d2b62597ff3d327d7228166b5bc84d3a3a5321bd602441425f870e34ebde460800000000000000ead2042424ad0154516bf8735728ce19349290332c81b615e59ce54524ef493f080000000000000083df8a6077aa256cf794aa658d089809e26e175302dfea2de17be37216f96e5d0800000000000000c79d1b0fc31f8071d37c5c3b11acbd38e519900e7b5ecf6d398b615d9f21244f080000000000000048c96b5542c3eb10f84b411e4638c15f33ffc240f732674bfb4ef81df77e870011000000000000001998072105578a1af4d6686d1e5176dd72afc3e03ff5cd575b1ad86252500a40e27ace44c4cae49bb42434309c14cdbccf3bd766331d1b75f3de114c48a37d41bea69f5db4197a24098509afcd38af57453e96911c4a815cc86c10e73d5ec7e031fbe18a71c98910ef838b165506e999a330a19c012b8cf4cf2056caeabab36d71a43e7951a0a2bddf38b6ff9f4ee3ee115e25f91dba8e866bd7d767008e08a33ae2b9b0c341d2b59ad7dda8026e641499ba931aafffe8e35de044909b80c2c1a9e6d2454ecb0e456b5014b86a7cfa46c31967bbf815524a2b10f33b4128dd4bb5d5da7ef52968dc0ef88850138f4039879e1c6c6829cdf1506289223221ec9a2c501fb17ba7f2c320ac6ed7b5cfc51723cf3078db97a7f26a688b99403c074550658fb0f6108f19d31bf5d2d7024616f6c6dc1646c6243467754c40959a6293e77d7439c2f4bed544bfc294e1991f6e30ed034ae516d1e0bcfb20bc087ccd1363a42dcd26067365cfcbdb61d82da6e8a153b5d192c81508bd02389dd032e998de6ef46e1357822b8fba5dbeb77b625b6cc57f3badffa6a49829af5a85120f5f2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000cd267f50b6d08a1c4ae7d827b9d17863abcbf15b000000000000000000000000d68eae51bbbdc650d158404fd158404fa7e5c865dccd913605d0543405d0543402d95917ed2a235ace52e17600000000658e464500000000000000000f045c166dce067400000000ab2c3d5282188402ccc39e060000000000000000fc0d591d5b0a30629afd394bdc381470f3c6c46f35d980279ef5b00e7469832a319e833937df530b3b33f142cf21bb43b01a3c2b20890b675af4a835d386924dbbcc9811bbcc9811d386924d688a6e1a97060b70fbcb73139f887047aecfe826d66de3487518943375189433d66de3488cb04e728d642c15080e5157860f3509cd32e41d15d5dc1d1ad0860c1ad0860c15d5dc1d748aa96ba366fb70c37ab71a1466b15800000000af911437eeb5bc453aebcd6e1da8fe634d709f18c4b10b5a5ee648046283525feb8235372100955aea3be36d4509095b4509095bea3be36ddc3163290322c31a2971033782f7d9280000000000000000000000000000000000000000000000000000000000000000cd267f50dafd050ecaf6a502000000000e3a1247c24d4d31e9c5ed4785953d4c250000000000000051afe75d40d9f669bdc55d6800000000000000000000000070c00428f002fa50abda7d4dabda7d4d46f7ff6fd0f80e0e2884ef6f53d759395aadb91517a94729691fae000dcd7142650c492c0000000000000000a168e13e06433d45730c7f64391e6b3bfa94896a1f4af40319be720b4b74c0150224640db7c88d53dc26180423cbc735d430514e6b97dd22a56d7d3c7191056d100000000000000096df11106dfaef6f30ec480ca37c2230c6ba543fe697a338bd585e6b44bb5f3c254f8f34648372717efcf823cce96c580ad6a35f038d8b58af929574801910191000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f00000000000000000000000000000000000000000000006432a951000000000000000000000000cbe53e3d0000000000000000000000000000000000000000994c6a144400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000676205250000000000000000000000004637456a93b67e670000000000000000c55d7950b83bdb3b000000000000000010f00b721e10531e0000000003ea101c00000000000000000000000003ea101c12da1c1630ea6f3430ea6f34b20ae905926aaa283b377540d59d846e6f0a11656b27ac4c8a1e33395672450cc9876a0f000000000000000030ea6f34080000000000000000000000000000002e3d195500000000000000000000000000000000e181182808000000000000002258d42849a7260f52c90e08896d493aa9f1f72f1c5b6a3ba61abb242258d42808000000000000000000000000000000e851de2c48d25746b6b02e0013b4bc63194849335276d50a2200000000000000ad15e6029e2f206f0920a7058bb49014882dce317fe46f250dea7f2a1dd7437297b14b741292e6589b8a146424899b5ad69a201abd06730223b51470ad15e602ad15e602ad15e60233a6a16f33a6a16fad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e602ad15e60200000000ad15e60214000000000000007e227a6cd33dce07f9376b2d5828dd465ff07119a0dc280c303b3b5c5707aa36e5ab0375896eea3becbaf03941f75958000000000000000000000000dabc8742b0ae4e3a00000000e0bdf0380000000011000000000000002928ca0681f7b39926ae74d17c0f49566b5ec39cbf9633d39f3adc19469273cb1f2213c479b1a915e1d26f23bd5972477f949d63ccbac288c3e71e0cdb481e46db40c9cbdce9600eb7cdce55b48b121ab828d1f65775ea67c0b7547a03910c0efeed953f3954263b0506009deac07692b738e26f75ec4b4ae0cdc5b795f26c685b6927daa3192a1afd7f49ee1316a5c6fb83c7c81dd45a1cc12419ccf137a28c54b567fd9c6836f4d8c4f6c93170313cb7bfc9a984cbd632298472f5a1285764c9cd52443dcdfb97beabe273351279b9b75f53692b38c8b0e50d5511331a17b8955820ebb67f15d068ab50fc1452513a62e40db501d2e1e932be65288d2b2f81d6e9ed2026604d6d3d99936f234f5e4ed6fe90b0df714c03625cd89d66f57ce66d49a002d858eb1b074b0c58488a5213f4f7812270f32eb7cfcab846bf68a6aeb51bdc3b6d9aed0d97e72987ec220f9a0835793e83dd268392737c8f83b6f24efda5a3c0fe4238ffeb3f7b21672463e63bd4923a949e76072b4418c152893dfb6619f2093b6be91446c3541762d54fb17eb1470ff3da1e1532829c26ca1ead3ad803b513ecb49861f2e3d606984756a08011551ea6342eae4d2498523021ea209cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000652cbc27e064f51209dde60e284aea462d40b35da7eb701f3eb08944e1db987656be34151599446d7253cc05ab0e9060fea2440e614b2657824d675d9301a033aea8b276828ea85833bca62874a9c1393271d23e15d1d52fe81a5325b8d88802118554171285de07230710019713f531b537736cdb763b38d8a48f5ba9317420afffdc098d2d326ca1b8e05b29353628a6063b0eacc39d70db7a114993c7c61d1239225309c0702c064b6b038451756b96f94c6a301fa0251f7c886b981eaf6ad67125626b8a8b46fbbdaa176402f06deee79625ec25e63e32cc9c62d368584c9dc5b9100f32a621e0deeb76d3479e4f50b74a0d56dbde0d3a61d7449ff9462ffe20275ee28e3a7767a910509ed2ff18d5395d2c0022503e9d96fb6781193456d6563d52495d1d12c0b0ea25d037ac0448c27d1d58c24c1336ed260c4f4c7e38e59a412bf302780532477d0a80ed691bbd41a03fc454eb212bf174066fdd254d8716483b9e65e0428d261244cd94c52079b06052330bce42a8ee7e056a7a1a579d676639981fd665a1b9a43a374d3f35080000000000000015350a129268254963e9ca63ac940c4cb43e68732b410717136320183be7f7472000000000000000088c074d7be1d32c916ba85918be040633829c5bb5040c167e153255ba847656a562ca49e9a297408a041440af40f23a8ea43b436189ce0a54b21377f2a11b3d326e38048e15221432787e032363f6200b1d5005a673915440f295707941aa1ce1d8614490481e3521136829aa52895688ff096522c91c53019b8d5f09c07c152000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b6732545180000000000000047561044fc3e4b36b9a6564998b9733d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2477bf71dad0e83af3225223ba35fe05cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b080000000000000066cde35f7734ec031939c41371a313545fd29460293ce1478bf018296fce42610800000000000000c504d460b9aece080e6ca0198d32312d30494912dacac8676114cc159d5ce0700800000000000000d1c41d36c397a41805bcff717c376e4e2be8b65788502714e712d1530f316616080000000000000005d85f56ef090d3372b524393c3c133a401226111685d56d549ccd14269c900c080000000000000029d8723c9023870977e9d5211e5565668499cb1d51656c1d08dd3f0339b90c7028000000000000003a8eea0198c5c305dabb774f22248e1e471c9e415ac2746db4c262237005df21fc2fbe5b0e3012142dbb4b044c5cc50d77292d1fd2cf1f163f4966335abbdb39715f6f11ef32350011070e1f6cdbb1287421bf0fb60a9e3802f16b1acd82d222aebc3a112ab67a46c06bb50364f41522c272ec6deb75e242fd9fb553e639555864b8f921a24fc8274d070442bf5b3d608f7b9638cbe37e41bff5081290ffeb2a1100000000000000960588ca543414fc34f07df125379e184fc1f9399c20e9ede32ca359aee329f4513df35e605cc047ce31b365bb1451ca4a7e605af37ee39788f2190a8074727d4004d1c13cd5f2738ee05564d57abf91a6c232d2e39dcac30332f5b850b9ba2e82725bc4de1c45f21f49532d013c0add32553fed0f1375d37ef44b342fc307ccb38dad5468ea0699e6d045df9dac4ef5e19a88b105ab664cb1fb47cfe2d28f942300b8c612a817613294fb077acaac4a7ff2e9df38d62b5ea8be5837f1515ed82045b362ebfbbc8808f04b2f039147945defb369eda16a16351d146607f3b0b4f42a2913742ce07c5dd4e3484e87f3a9c9b4674975ca142eace800142e34cc47b0362998be727c589fda3fec7da620bc7821d533d9a0faff9407eb15cdce6c782055a3fec4b5839ea8d777de00faa6b12f17ba8d1b7c2ae59884ba1494e4f588eafabe800cb4df44de7e52844997d974c3952f367f746c479d391d74a7110e70628011b8dd67a7b9dc2a012e06c9d5b0fc5f2ca4aaa8bc7ce12bde617ddadc93a906cbe66a389a3ea33a11a33209a24063dbe556eff788225957a73b6457dc7f035cf06dc6760b30fb2cb016e87464f8f06f53be4fd14a8218d0d02881026168ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000003df4bd627b51c224e3ad3c1e500b613cedeffb6b8f087d75b6a3dc23d375cd110800000000000000d597e11c3323dd12c68cf9199261586dd2600d65c99152053cc6905e072a41730800000000000000e859412c174d8a543ef2a6118383ec11fe37de700c32de09be7f7e32987a7e6a08000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e7050800000000000000c108a467564d25100300d842656c5065ae71de195122052a17d1f103110324510800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a2445080000000000000058817c5532838110bdd6cf0540079115d9fe273fb94146415786d92953785c0208000000000000003f36ad1ffaa8697264fb3a04510f9776648c214e1fc3791f4201e1373420b3000800000000000000006922655c25181ab7533355bef890606a4fe3696b11364c964f3d022be14b210800000000000000624a504a3d426846cbf4a4081f27d317d3d05600f4d80b2011baef55fcccf138080000000000000068d450123f11695fad76a33fc519d66e9fa9cc13b81f9730a6c78042f54f8f05080000000000000006798451f29a0e2ee6bdf36fe6efa14f5f655f19f0c54470eded1e014ee97f3a1100000000000000d33a6f4e31f609691108d4af0fafa5a7ca8d3e4c6f5e69283d10f3b93932bb695ba7b510f0af70f02794e0a6de71d7c0ff0388fa0380ee0d99609a99b55c9aa58583a93d9c7669f22e90cc81560c6e4e88793fa3d489f92901c0f03936632f6bcec75b3b1c7a864c8c7e1cb194ff29f21f5941abd54c84a96c51048d38f1739fda72d1b27c5db10c3d31668c6465bb40bf5262be91d571584c8902f84997c8ea3871b3da61d89f52140cfed86cdb150d6fcba59f82735b491710ee08dca7cbcb0c22f6d889a6224bc88fda6dbfb5d10fab330e4809ba03972959d22125d3a670a15cc638001e9bccfd8b1241c7ec0129157b12e2357b7994c4fd02b9e75351747cc92042af0708cc338c7901759c8098eb4370d8bd0c1267943320564268f9334a0f6f8341864766aff73bbe892d0a136e7d433429c518dc38908f47486b5945b22b5ff0082259bf0cf5fb33db9e1ff6d434ef434ddf6088e2c24548412603e052e58486e5bcddc7cab9e72f8d36c3ca807549cd5f619f891c9e94b9759df021da95ca38b57ef2ea28c049e4ff0389718daf21bb79537d13568678580caf80dba2688094ef144b1676ff5dbf3ebebfabdbbfde3d1e97416e90c1c7b2e5edd45c75e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000077d7ae4c2bed355d538fe940118fa837fbc94875000000000000000000000000399a88203b0bcb3734d82a1c34d82a1c38ccd15230c342715860cd315860cd318802b801b94deb35e2248d0000000000a97f540f00000000000000007957870dbba0b33a0000000031f2636b2c7d6c4d66ae555f000000000000000039fae41b53ac8802e087614b683ddc24969c8a298b28512bd510111120b82674349a520995bcb5478873cf0a5f9bae0cade014712b8b7c442ff9cf5985d270185da95b525da95b5285d2701800db130c51c0594f8c5cfb35c2a8b929521ad142c08be26e18ef3e6118ef3e61c08be26e2ae3ab4661cd8c4cefa89d323814d01a912a6e4949b21442577095055770950549b21442d748b3406f528b18ccfbbc1bec66754a0000000045ee121af7cec8128ebdeb7678683a3f0b555b030fb7a8626ad32a729405114963afea0024e881401c9ec513e786c926e786c9261c9ec513cc71cb40b8139569a8aea668fc0c6e71000000000000000000000000000000000000000000000000000000000000000077d7ae4c2e67f92bef6a3627000000006a1b6c067770160b426d966f0e65c1012500000000000000f3d0bc5c088b601470220e5300000000000000000000000060830531e3b6fd702ed4a40c2ed4a40c1f35b913cafc7e1e8950953cfa98b61534697335c0a93074dcfd343514dfa37599ebf2300000000000000000975ea03ab127e764c082990a798077681fb15604926c463c42c6ed605e26515843be132fce27ae64cd719f122f3ad810427e1134d46d347367182712e283bb6c1000000000000000bd309a2db88da7258c0d6413e08d944052c4f1651769f05aff69f152bc0279561d5c545e5192c1616449b430287fe5108983ca5175101c402a7f341f54679627100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000035652745000000000000000000000000f1f1e347a0cbed42000000000000000064ed780f43cff403000000000000000081580002594e333300000000cbe5cf4b000000000000000000000000cbe5cf4b4c3ed04da48c0309a48c0309da10d7066138373c7f65d318594a9c689ab9bc43cd1e2f69b4f4b30193c49b757027dc3b0000000000000000a48c030908000000000000000000000000000000d594eb4500000000000000000000000000000000aba7c5570800000000000000428f46683509e7620db89f662251056d24911a068a8c6449ca777105428f4668080000000000000000000000000000002da9772c5fcb5d2d60b83b0da26f21063d29386a036cbc3f2200000000000000a9044724b197da595761a503fe8574606b37411c7f6ac14873384666e91b8113ac8a2a39a1e96c030a02dc4f588d1054de0cce64b3f4fc2588db0e5ca9044724a9044724a904472492cbc45d92cbc45da9044724a9044724a9044724a9044724a9044724a9044724a9044724a9044724a9044724a9044724a9044724a904472400000000a9044724140000000000000067f351340b51933e32037b4e40416a240f3eef4dacc0762c8b52a956fd1e725311222976830e3d579bb78610d2aea41b000000000000000000000000cb513c7531b3026e0000000086ea184a000000001100000000000000b6575111692828bd02265ecd217c4d84ff06cc7e6566873f0d0c0e33a16e61a1cfef55e95dfcbf8a68d264f3d16ed1e10b6a3c7655be96fd77a327cadcb199b30777a43cb13378906a8ba9e1fbce9ae00a504925f08dfd7dd821563125dff8bb3c131e4ba8c1d77a445789439a4e16f65073a451d9555f7988fd98974f0b629f5c230387b4579d8003073bb4517d0b0020a1d9de397a7c9c64a65464bbe775ef4b4a3639b77774558ca3ad7c889bfa6bc084b271e480d386d485d3dbac3a25997cea3ed6d2079ebf142d3608665f6513f3cffb094f8d668f31dac9b9e988b953584bffc2e9fd40deee235e2348b5b2e96d10c73de463fe6cd638ae4c92a85b0b7698103892f292de771c55c22d18e1bf95b7a8281a17888f2384836399352abc535da08d365759608cf064fc790505ebaa3eb4f48e88f83857e4c84240844f7c87247cc1329b8db5dc57c66694f52efec46f6c12b87fbf4fc4efcc9bcde6686390cb546543518b529e1d2b05a3fb3639eb1a8fec333640330e36224d24b446d0507371023c1ca7ad50c17a9f7c0d91edf961ee83bb0a644a69484b125b2a52a41cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000091e2ab510624b55e6f948f7589224c45262d2c59bfae6c39087e996cfcc2f45d81f6fe2b320b1f34bacb5462a9e83c33e42a485ac0b54f3baa9ce1663071aa712fba17238210860c2177042410b5593ef1bc0a0caa71fe515c73006c5b12e76d59689e1ba4cd5a695f9bd54ac1cc16010d384b69f3d47a5387f09f01b6250c4e8ff1e93f1f7ca23076bfd84b42495d31c813f827f0509b77d9a11f73569cc058f331ea16bb74b16459097406d005544bba824d0b48f3ec379f82ae035b57483555c6ae658919d1101feeb52e358d8872c6a19401f9042218c9ccfe6c50711b2f36096f3dca3dca6080c7bd1dfe91934422f5e51ad8a646313d9590634bd84d106fb40f1e66cf4c3027fb7f03b71b7066853bba4ccdd946617c441a587ee2736d39274e4aca506a2c7eca9a13f6ff734e699c8d5d08f4c200d269165c7c089a57a446bf3b342f9018e5844a6c26bb2c6097dda13b50dc131aa0e1e02058ac76737e5ffd01f5e0a11f10122a00dcc15e11cf366c40ee62054b3fd256601d7cf25a2d30967241ee0923d8542a43db974601080000000000000063c1994e3b64874e8dd67d44a51b08072824490d250b82108940b04f2974850a200000000000000061645c2478b46f5425573a62c5c0db1b3fde99407765086a78cb4f3a6c3d8f4bd2a4b15b5cee723a41fa292740c71c20088f3f2204382c17872df3103dc5064e5fcbe84592608a1c99f6e123e64c00742a5a091a40456b17ddf7f80f4e170330c87b0219b02f51104b00e66af9f0a82b9be7ff0363fc5e5b57aef41fbd666f102000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee507080000000000000055c2854d74126c65bc59126c202ed7398495c553f7ccef55c17703247539a450080000000000000018985e6d6bc1051f14557e041f933d2976a0b21bdc2bf63157cc5971f209d06e0800000000000000b3a868017e663a2c10a3ec30d1a2b12e004b4411bc6daa4a655407691516e0320800000000000000178f5a3b053ed12ae8b2a7180158466b2d96581233c6e43aabb6ff6d8f84581908000000000000001e06ee26652d4d3c4f76aa32e5609a24863d3533d675c64fdd4bb5560d7e70162800000000000000d7ee9617d406ed19b281cf47f7699408ab3f851adab3692b7e1c45496e199d0d6fc59c6c5a3cf2216590c8154c02f12f67618838243c0a2bd6ebc9615cbb6025a8ee0756aef62e100fd6171b0e6f18213cbc8658a64f1843049d2b2cf225e132c510de74472dc413a5100b7455dee30fb8f7b10f7131e42430aeba4e0d603b35df10160c9a4ba427df73ba6cdcca2c17375e954d03a9425d11c5a25f7864b035110000000000000097f63cbea818da3a334ff847d00c1af05b56fbd138006bb6f6645017a903b7aeec1e0cd8bd66bf7f427d5fa7d28928c8174e28a8adb90b2bce802c3aeaaea23806fc84e764f2fd8a9d7e5aab84e6e8eb2d090543976485549bfd92a64e436e608af4002c18bba390730eb9dd8915c8af4ad47a38757f75df0add3e79baff25a346a80e87663073c294446bdc9e52e7c84487e2ab9754d461a9f87ae6a88b94d6ed6ec7edc7ea61d8037dbf52e00d46b392b146c27f6073ef7d5b41f511c7e6169fe44c916bae52ca02eca495c75deb92b4b1fcc1d1025690db34c5f5a60763fb7288fd3ca62b6ac9417e7a06f8e387ade658d7a9c24efdf9ade7eaa7a6646752e4b20c076c54aebbfff12726918386c6d14364fe1c9d3f0cef7f760bcc6fa783650a0e028312f61795483e977f5008d1bb01df58f875749f5f9d78901c3aafad5c1c659cac23366f543d24a3f143139fb9c73d089976ee5b93e2dac19043973856bb55758f4109230ff498cf640ef627379827b1bd5cdb4b34b36e36b7e90f3459340cc90ae6dafa1c5768b9827f641f652601bbfacd76fbef6faca6c2c3eaadfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000002028bd5f2db1df73394969472d66bb1c319df70a21639712e75c9d64cc1c74290800000000000000a02f1953c7c800467b49c767230a9c1ca6fb9a02c160b569ed47af0abfe0706b080000000000000019fcd011cfb39307afc4f570c778765e1c306f349a3a3466a6024365b9392f610800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000ee2f4742a432f33b80bd756e68f82106f3162d6d29069031d913ed3dcc750960080000000000000001646718b9e4dc3e6c447b270f8f3e72e08ef73733d5f964cc3a7301b2014e280800000000000000aded9d4bf38c277223a1e14b1274d405b627e837777493353eaea2203190fd5608000000000000006f210667a0f0df61077d612727665560e9f1243474243a69c38e746789e71501080000000000000092933b585d241c52c607043c81ee39517730480f634de7300e693860db426a15080000000000000074b8675d559688658c74a417094714360c5ff3066a847706f791854efe495c1711000000000000002378e990ba279dca1df1f304302750256290bdba36c6fd7300eb0042344a597dd5cdf8c1ec500344098affa54738c6f60d302e29672d92711c6f54b7f611f59d8ebcfff6b9b2f4db32a64d4dc841e5b7bd722ab8f5b955dee3d23f1dd45e08c93f0bf05df10c2427f179de31aca0192060e967685f60c48832d8ce053c1c0908edcb7de1dfb6d96e5704ec260afca6416579ebf2a76d42c785d0418309da67e98d38f6a26e714893f85cad95b8c886a4b0aa114c3de8770c4aeba78a0d24c81347e200d7a746c7c64552b3e02557abed91a0d981f1bf341fc79e0b62d7c33f0601b78454ba911eee3cd7cabd02abb8d64997896c817b4c750af671af9ce225a939b7bfd753441de21201039ae2ccd6aa5e084003ed0284141c43a88a63cce0cafcf15c1af778c7c458f94f001870ba1c6a1f579aa03258790f748bb8d8bdfbfefa1c3e6315bc73c3ef80e04d3a41a30a9701fd06ab2fe4d2b48a70a2687a79b8c246d7887394a7948759b92081ff444b3bd7be7539e963e9aa7d595767fabfe39b18f38ef39fe3e771b8f66db57b8f56864725dc2920344eb0ae0f57285b34ed79fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000030eaff66e9757229b916112bffe6b66b872321280000000000000000000000008020c96de19b7468c84c5d46c84c5d460ba2da4a75ce9157c3c7ac18c3c7ac18edf456234819b30036bf961200000000e588166c000000000000000000a70126b1643c3800000000ac8f4440129abc606cf1b03200000000000000000504e72bb5a3ee089ac4fb4636d6bd26e6089963d2150011a7b230477bf8cc0db79cc01f6b43bd1387320d606d96b93ae03e0268b8e1941e67d0be26dfdecd59ba70c72cba70c72cdfdecd59205ffe17cd18583c6b81d0057f9a585c806b4d620a11004973591421735914210a1100496c35475d49f0e56f5f90584932f52f041030bd0ebae64c774926f9544926f954bae64c77a50a9c3ab1953f2a47cc2f6fca1559380000000014f7650218c0cf04664bf4407d1c5361a3a5270a6b77055c30b7b83bbd75f91406671d6080bd801bf323c3744c3b6a254c3b6a25f323c37466500249f1a7e126daf9c34a97591a19000000000000000000000000000000000000000000000000000000000000000030eaff6654c55227e36df02800000000d80a1c17a6d77a55f057543976b68d07250000000000000080301143938fd425593b196c00000000000000000000000097144d47303a7d6b2c489b162c489b16b1ccd124b2f1b7707eb458072c64413319fbb56bc53aab54e0ac76090ec7ca4761d30b5a00000000000000006ebb6b4a46842c6169659a2d8b2c5147cad6310e8ca1be1e090a4034a85a5f2ac509a124d5ae7c095dd262328b83a552d19cb54ec187d2086838935de6a2dd1c100000000000000081c8920646a925600d5a465903fb160edbae5231bff6fa3bf90e1e184dde6a19d0661a274640fe3224a9ff0bcbc4d6071b52af02d51b5c20a858d700404a2015100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a540000000000000000000000000100000000000000010000002300000000000000acc6d67500000000000000000000000030b38142fac5a90c0000000000000000cb3a943cd574a07300000000000000005ad580454362cb5300000000fc987c0c000000000000000000000000fc987c0c566efd5198d0c82d98d0c82de355734ee9041562ca0c9a0879017437e3bb6c0d6c5461729dffce326a3e2849ed09f22f000000000000000098d0c82d08000000000000000000000000000000aa2ace6100000000000000000000000000000000ee61b667080000000000000035d6af67a307a36ff94260137d313739810d900e6713714584ec607535d6af67080000000000000000000000000000007b3d664fcb09761206c5c106139bad256f0a9e19bdd25b192200000000000000a733066d49973115538e5343f3f73406f43e3c06ada322064b04c81a50c9fd387d4a1a1d9210fe2601d38b0124178b64d6ac3c699a866c00baee2401a733066da733066da733066dae418b0cae418b0ca733066da733066da733066da733066da733066da733066da733066da733066da733066da733066da733066da733066d00000000a733066d14000000000000008b9a6b220026775dd5b70122b608e15de150df3b19cce067e401402deaa47734da901352fed06c11b6b01119fc2f401b0000000000000000000000007320e27785da8645000000004cf3bd4d000000001100000000000000b2523ceddf9d62a0d79f19c5ea35078f99a2893c009e5366faacd613c43239d8dc518f6c9ebd920115ee2fff66a76db7eb9ffa3ac9be7cbff1bcecc79ad81070ea07e07f6f85ed2503eaf6b9cd2f3953ea24f7ac701baa9afa84fc00ebfaff1ce61d7a662ec10cab9bc5eec45f1dcb14af38c6451f23131c0df04ae16db74428533aae4454a0b1cde66695a48d5b12a77030dcddeb664f89e07d6fa2cde85603cb764411d827887cb267a08789d4822d79b465d8376cc6889a27cc46005448fcd4d7ae9f62bc4ce595803f2e6f39324739ecb4c14788d35cb68c207756ad6df0c9116f59311962222cf1d41a1af9cb0f8d86dcad32458958eac6b6599f99b43fdbcb18497ca8d106759eb09b0af540a63f6a1a97f34f7b53240b9b02f5b78b29c971066001299eb702580c45c38c656d1c40e3da19617151cbf8810d72ac313c6fd486ed3af7f092d0665759eb5e9261d64ba58bc23e9f97224a550152e6ab4ec8591f8e8d0c026ef1ec26654054d30a68fc88c6f69cae619712069277f555f407a3a107e8605542e0c8dd41f4d1ba029effecab2f2aebe3450fbd6d0c64473bb685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000062953a0f3785ec1c3aba5e287bbc015eb82d7837fe3525408ccec34398c6e95e1cbb0763eb4b606eb98c161ed073a33dc04a5a22af17466497796a434d5b2719ba03bb5e2723046cceef8d5c002e34131a2a624589f5531eb346de56e259510ebc1da14ed54f745593b91a5277321020c4c3d01981fead3b56799c5a8c493b24b2da8c0bcea0365e3b74e01a1dd5c04804d9022ebc1e424bf39c53373569401d97c05333ac1ff504b110ef3f5e58344de390dc1ba0863639ac4796061cb4b2703a96b5234b55b8271eec1c673a6f6b50b887410ca071ed337c57752075e2b11a06fd26083f29ad13bce1924be779a80f6acd442cf790b02dff083304d42e295d25da527210d188601ed1cb5e0cd9192397808f5ddf89e3708cce761878dab845b3d3904b933d8c5be9e72e07e392844efe50cd4e560ee400a51b26120744a8765445405d805bdf3ef31eeb16222b6a07a636ad1bf2197937f2739e346ca8a16e74563917365ea166b43f11313806042f2c692e099f5dc35cda1f696e4c9dbc3a3eb7ee3c06c4ab60c9afc22288b4491d08000000000000002eb4a21995ea5261caef163889b291408bd7dc47c73d092c3417f951943b793d2000000000000000042e3777944d584c3991ab6402c60b18618087177b164177a11f62590657f246ad27913f8691520064ebfb249bd79a6d8a9c7e67becb8955ed4b9d49464ee8330e08753a1a66986f9477a7140a7b455fb6b4423670487f2c6998070128195e7277a277569cebf8626d0ed908bdc96247e64dd3292824b0424faf99080636fe5a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a5208000000000000008370ed76d7738114a8e4da07d4b7ef4450c423563cb5c63878da565cf56e962308000000000000005425095ebbdf7f01bc97f65ce4c41c15f52a9458f804262cb63b656a0a9765000800000000000000c9d4610a9f7b2961ccf6ee20991e7452ec151100055045299ac58516d9c1267008000000000000003442dd147cee0a72370e9e660a9ac45114af046a1a5c3434dfe8dc4bc415462e080000000000000059351f2ff0d25824aec34143f9c72a560be62f38aa0eba41ccd55906814b40012800000000000000f0d027250c0eb2410181e6142535e13ad5a81c68dd41fb297d391a307f57821b2281cb75b9e6ea1c619ae91e13831c4561ef8a53cac66435ec45806822d534483f7a7f478167d330256c811ee854db150b95f20187013c75683972007cef0c76dba24d0627dfd95cfe9df207115ef03016d5f35706ca27595e035d7227fed615d40043650b6d30129f706232733eb967464487298e0cdc67d218784e6393b6391100000000000000f9d9f6141aa782345c9eea41f041d0ceda239005f57bae67efe1d42967665b45a662ae704e4fcf7911bf7320ef069e7cb63aff401b3892515065611c96f79bc4ca72374fbcc9c98878f2e87861e73469862d94d5d4910251408fcdd6c67c326032bb1403d680897fe7409056917ce40bf1f82e42d4a180adb0ab0fa8cf809e6cbf93612c7ca83b665b3fe3df7a8fec442d3d0d2329a6bdf771bbfd45b45e6a6b2e8f5bac79fc185546c277e3907c565f4ca79ea42d0c52cfb4cd3b7012fa093c9c41e08ee3a0147aec284c4304be0649120d0b8eee28441c7cae2edb512325aa2f75c7ddafaa289a9f5c16f43bc96bb6727736a7157a4f7ad55ffb5bf62dc09b05114c18e733192d60a015e45adc92ed0157fbf0fe1e19b91e456d90152bb0f00eebc3ce241d17aa346a296397d24f9f69044ba3c2fb00ea390e2fbd9db1def88cf875c86d269257d4610f2d6dcc6feed23ccfc6d2daed58abf6bd954f016b721e376e73dc2729645eb8efc9cd1e08cdef8f746a51c8d6f843ce99e089b0a23766c37c500995582a099e04faaef28090e3285dd359b52f6273d7ced3d0650c346277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000086b68f6ef712e12d2091dc23a384ee74f2afc82f64022d671ce87723cfd9a31908000000000000009d905301073a3d57a19fbd00b7b89e765327e922262d2c2223071912eb31892b08000000000000004c9a3c24c67a2442e4a6512c2ca8061956666165dee0bc288da54a155606147308000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000b61f2d25386dee28799b3375a34bc51a09d1bb1de93c2f3d44fb6a36f78ed92d08000000000000007370a83bcbad0334d1c7f261358b59748a7027373a42ff759859f716481a62170800000000000000c834162d5f6a501cf9b8496429ab2f61307635779b67d1241f472b4636b2d150080000000000000045461c5212d150048eb8792fe9a5bd2230670a3e0b63aa04d8eead0e4cfae04f0800000000000000e6c8701eba187f4c31f58e04e0da2b03f490491a7d09e722d8af85627d6e700d0800000000000000b610d3482eaee560ef17404a47cd2d3965685511f825413cc3921315eca384521100000000000000f010806e445c19943d14b995a61c6621c8d6fdf4cfa3ce1033e50de9e21035631e24cb08b39767e5d5368f07828658740a1f8c97fe84bf09c59142daa249a76fb8fa53616e46f547310e40b76906b10007002c49001e0e3ac93f295d56e7428d9d2d569f3790073396463049822a51d7b14ddd5cbe7c92c7bade877068d8123345b116e7ec9369b6b222a2cd6bb15b566f23249eb2a067d8aa8de9db4829dc0f6f5587110f9afe45646b10d447277dad14b276db1046428bf8b1f72a19bcb87d86128cc4fdedadb0953da0559e37399be26c2878f0fe51a8b6744d23bb165eb94de691f3b97e40240a28ac7e2fa021ef9dc34df844bb2fbed303574b85ec9608562995c21d5c6c178cffdf5e73c894205e1bb670cd0f9f93d9f5a4a330d74ae1ece5fef97b08e8ccf44334edda5bacc04393454731e52dde2f131a79d288641e72684f1dc7d3e36a65dd8a407cbadff8f6852d0193b9fd545f3a29ce6670e8e5512b449b0d14639a6e9f618e288d2cca44789c8222797280af1bbeec89363661e255b9954a6d6a2917b5ec310a61dfc326604c6bf157e672fa567c034f6785451baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000006bda163825f9586a881903752da3503910020b04000000000000000000000000f98052376f62053dc62def62c62def624aed0f152e14691fcd5d1f45cd5d1f45dea92f5b21dc240a99510a02000000008c30d35c0000000000000000e0b9b26015c9676a00000000da97ca495489dd084c825f140000000000000000ae001c1aa9abb926c47c5622cf910e7579f2371e9725e93f0e8e1a1889497f2533bfb51dbe8fab581d1ee7644de29431b8902c72b8a0a549e44293266bb9450041ce5d0941ce5d096bb94500dd161266e80d961250388f52b076083849d51d686f586d2998e8601398e860136f586d2992065a44732fd270baa7be540f8fcf27ed49aa12e123db6d5b16b7035b16b703e123db6d9d24c11abdd5de40456efe2230512e6a000000000a4b74217e65b5061ff0312ed78dc830b4319473bf7a804e3858786ab975cb09427cc26f5cd0b51af585ec6bea616a41ea616a41f585ec6b52d11c42b4cb3e327c3a1d5013e5b13f00000000000000000000000000000000000000000000000000000000000000006bda1638eba2521a0c15c04300000000165036683c302e50d7be446a93e4300a2500000000000000027fa864941d4b1cffed0d56000000000000000000000000aeca075a21332e68d0e5b438d0e5b438c73fac437ff1fa618eb81a6e8debfa532666a13aa4a574380e9d5641b981b132312b026f00000000000000008cc8ba610bbb614972c849615aef43773ae1295c83810e26ab4ecb6261e1903286204b110d38b3754389dd0d7c95d667d204037292f57f50e73c8c3510857110100000000000000039765d3e0c2d8d1cb4bb370049b6f343a257ec121be3b7445c16a84423e11228f69c012ff9357a5d81ad3263ee36a242e25282220ffe1b0e783508546d86d1201000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a00000000000000000000000001000000000000000100000023000000000000004c6ff731000000000000000000000000fd3be05035007d1400000000000000007c0a63253f444f6d0000000000000000b2560e3ca55172680000000044cc456e00000000000000000000000044cc456ef52254329974c6229974c62266d027680625823c2dce514b26e56322499671341a6d9748e30fac567145d23a4e05cf6800000000000000009974c62208000000000000000000000000000000f39f575f00000000000000000000000000000000fbace17308000000000000009cd2da3c0da5cb519712b15a37ac364f1568a6414d370424f3ca09669cd2da3c080000000000000000000000000000003242e946f61f8c08f41aa23f614a63463c91b361a0a2860d2200000000000000c4afa144bacdbd65937fac67bd45e63dde7a5549ba8e1867ed28456473cdef74a8d2f1056699af70ab0aeb2b3dab1414dab6c52f03ec6412411d132dc4afa144c4afa144c4afa1448159d6728159d672c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa144c4afa14400000000c4afa14414000000000000004056c967d7c0b52f74ebb524a32bc9722f40134e2355b44ae3993a600cb4a37054cb4877ce869c4ffaff0b61a4085f140000000000000000000000001dd299381f6e3e4e00000000f71c053700000000110000000000000034ea8db099ea6c36f62964d75690948d94bab8e6bb762185527056573071dc904447eb6fe756bb3723457079b8035f7998069ccaf3c542839f3c2dba1bc2a60bc43dc349be9486266d71b1f2c01db723975fca53747ab72bdb73897365ed54c6da2ab57bafe3b8004dc9edd69922d8e68a1ae91670da93b9ec5e727ae14cbff86094fe0a934d6f2788e77bfc1c1ee1f785092a97a0911e49361a95fe7efad965b3ee1cf50e6b850ca859be5cbe4e5359a30394130f5d3aebcc7cbb817a81ee4d34668db3206ccf9c4e08ab822e526a1daa3d70bcdc0ce27358412b40183c056ad73cf2851ab75ccf77678e672304a617c9b4fdff10adbec4adec1a07b68ca9d4924013be0202edda2236e7cc213d7574309f50020d32260b5572846cf461a8585ad3d84e3ec804992e8fe71efcdae046c3916d35f3b06bbe2531d2505d51d44cd9b00eaf54ef5b7fb7c216376de18121c1e9288529374aaabc252306be7d71fa7af5252b16a0978ac937e3d0d3ac502cfcfd8b1ed6d45c295b8b197a7c522fdbfaa579a23741683b4292dbfd16ee21c6c7cac5aee5255d731e2a37042ac555a39dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000013323c32003ee958e768336c3ce0fe3d6451823cb2787f6efc4e401109b6b839c4a9585ef578c414bb02f030f3a55967d9f1ef52d027dd23c4872176d5a4f9238b9e9c62bb1c21520892d0028698f46919f971017bb35c098a9860619ec678334a1c814b92ce2706a17cca50f6c18359a3c935227728120e98e3a4154bfb9c1d1678a705300e0c490e9c92288c32b007d7a5da4c5b143b0119414d5c8447c241b9361b3bdff28c4839e1d70912f1fe5e1b956038b7381d3041faee61d7c72d2f06b28a6f8814de2d8a9ab23d4596ca6eb7acec7162fb4b3da94e04315b0afe4b76be194f33476319dda6b41ce993e474abfb2d63be7cf53eb1466d7565a6680618f24b0ca33461212d6b2e369521b335da4b0b4d5bdbbd35b981f1346c7424616bbbc358f349bc4ab8caf1465ac0f11b62d0645493ec154d16ca25267b40063df89a0210dd0e455058dc083f9a63285f307bce3da9bd78435856db71c4be535ca1ca5c3c9bb58016b163802c859a7b06222843462a0de2239985d65047ff30243dceb8108b0787621c9bf97493c5462008000000000000000f53136b6c3ab23d9277c807eb99aa1b6d86a610ac4ef4143abb04623f6ca81f200000000000000020a80b60eac97e26ba9e516198ae0e2713ab451d79f7c7330592b36fba62331017ab706a2115831c13538e39bed68b55bdc9c65801d6020db746fe7447a47d0582c18545b7895f65f9d5db10faced015e30ab4131b2f3c5575b097433d03f10b3323015eec318e165f744026e8c9630beccf7a601516275b5188472b2e747b642000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000c4ded2072cc8cc164e66ab051ac17865b9b15d0d1e6559418d7d08252f2fbc670800000000000000d497a353dccf912b2bbc10253551f309f552f950373ef756e85f340d116085100800000000000000455ee958cc205470fac84743e266a326293f6f20b7ab381ef81d0e4460bde12e0800000000000000d874ba08f557ec4f9cdbf93fc88fda2e781f6120ed5e056b720d3927897b8e4508000000000000006ab01657adc81f53852e3a39891acc62726750410596b669c76e836c7561cf4f280000000000000002b9cb0860acfa1bc75022284151ef01e17cc6512e9b0212039b87500a53f26fdad8cd158ba28d1cb9d2a21eeeee3661f948e674ccd32a39aab99a1bad21653c06958f3593bcd83ec6743c37b9ec8c3735eda71a383111425172d25c51ab8944db8ea3339d9f902a6de8960e2e62425486266a0985e3f55b7e6a9b6c686ef1636cf91c5e3d8d0d1d50046b3d38317516b5081b2a11b4f53d660a9a4c0527d44c11000000000000007005f32e84b9937a2f610dac3c6261977533b28867f1d14389772e9309e62660875e6eb5a1a5535f8ab5f81ddb5526da642a29934ebe02c2f2f2d5063868e6d9edc0f1b7a08bc107215ef3f8a9dfe5e95cdebde9a5540e3cba0dff4fb9839835e9c6b25d0bdb371b74e437565dcf36f967d9c612c1586aeef72de47de9d7bf68044acca8a4b790e9771d02bbdff277229376cdfb19a379d5ec1c9e4a4acd8f4cdb96c327f24f056b6ae7bf9dd14046a4a63c4da51f6ade878bb0a636ecb82ed3764826555d9d69ae3e62c4441116cf511ec16a4c672d5e7adc18a3d25d5e7440b6e28272f44dda8fb11f51d621b0cbdc46cc1a2f2b8556ecfa953dfcff4b0df50ad4b61d68275a861dc96a2b2071d3b4a0a1ee3acc90c7d53e90b6bb384167c4f627d4b87eac1b7bb0955abbcaaf033702e94af48e3cfa502652f862be4b2cb661439f2f8ef986ac2a25c71463eb88b3667e9b8111fe2fbe86b87b460f7dcb5a28a9ac6f74c394da18806f82aab2951874f332a8673e32623c2a1532222e708352bf33d749f08d15b5329a37f8238aab3d45475989d3b3dc8999b732d82741c9ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000006af0c2248e92795ea72ac41185e8c91ef4ab643704d8ba1f050e0723cc64b95a0800000000000000ad7444218b773958b8bfb22710bf0a6edb3d3e185d2dbe3d52cfd512d2a06b2a0800000000000000915ea174ef0bcd3a7f8cc207a0ac3540c232cc2987ecab16afd4643b9746000c0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a244508000000000000001f76c95e4cfcc7314e7b352d6be305066940096efb7f05510d4248002021356a080000000000000049e4d36ed1d0ed741e9f453c3f19dd556c0cb300e7b0566f2693d152b8f1820b0800000000000000c492cb6c7b4778446b0afd4059782e066f62593f16f498729c8bd82673939f3c08000000000000009289ed66358241354fca40700091f61667de03650209b35460921a118a074e4a0800000000000000031178525bdace0777d1c970ccc8d2327bdad13d3dceb3568974eb417e2a7f5608000000000000008de8710e7972b93b2e7d8127662d3a3c6e9600053ae6d41ad453135f5524c23f1100000000000000c36f8716d2a9fb46ec5d4a61db1943718d97aa0945c7585732c027f75e64ff6a3d05d49924dd2e22ab542eb8687441b88940ae21a8c0c45e3191401726548ba2b1a681915582203a5acb774715b5931652abae1b1d004ee19b6a05b5a65cbe4f0ac03e528646adc7f7a90738fc26cf925b3d0fbc52e089531ffe50797afd900fee7bf9d46355a4cbaf4b151ee7f5ec18d435cf5ef1d5e9dcb04641dd1d229f225b80453a41487a6241c3669fead7eff7fbb449afd745941e8bf875fa6e4244d144c02c89ddfaae6ab6d006c41a8cbf612abafbd2eaaf207fdb588b7b09d5af12fd04366d2f093157f3b6a11bff8a73de8ed23dde82089218acaaab8238f4df2bb1c349ca1a35cc2be62e88b349038d77ee6f5e33176ca3e42396712cb8bd5f92394dc0c4836c1f1d187cce8529413b4dc45feaf004f580847603dc26b97fab860d84264a8cb895199d4bd7b648b4b497cf940fd3e37b47be46496ab7d55a4c9b6dc9dd7d31b636040aeca111a6ef7bd4dbd5414dc5ba7549267e11db3f777b32a7a21eb479b9a32094bbede65bd5f49c2cf4a6e68857e3fb07a58585c386e0c476ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000b7787f426ba588650ea4e51bc485fd70c472964f00000000000000000000000030c4535084737d588fd0846e8fd0846e2f42cd4131fc4e1e30e8590030e85900ff32a66b60be5c0868ef5c3c00000000786e8d01000000000000000011b32c371168a3160000000051105346d04c6a6e02a85f480000000000000000c0505e20ea647d60cacfd33b7b62636e3a49c23f4b8780359f10694f0b0a0273f077ba1568048b2674b64b5981f3633c0fb4e65869c8d965069b6a4d9f3f7b4ecc9ac107cc9ac1079f3f7b4ee68e5b64d4438e41928a7332ada50f6d98b1f008148f6573e396746ce396746c148f65736ade2c06b24f75742120ab32d57dc5201f8b881ba241a36fd92a5276d92a5276a241a36f4ede024bb558cc6aaa48a120f97963640000000030ee594cd3f0f445a89c511e943a24666e6d3a04e6f8de0d2ec43d6c85bc05564831e066f2396228327b2936ee62230aee62230a327b29366cc81307dc16e35ecda2ce112b362e220000000000000000000000000000000000000000000000000000000000000000b7787f4233d68c4147d4180600000000a959c65567df64249fb8d73a27bb1814250000000000000032653f181c08bd51ef56f108000000000000000000000000545e3c4fe3675a6bb3cf6958b3cf6958099d766a21a34703e41adb52713bdc3e1730b865cc36f5022a6c4628d32a6a2f363d072c00000000000000004b10d36f2535ec3657f79c1cf866a0728efd935e17e1203a7868c76001a22b19981a346779310d2080cf734b3a7ffb32c17b7f38b489972ce671745a2cc2ef3c1000000000000000a2fc4001cf09c4684ce8aa11100b4e21536e5769c180aa16d049561012650c4b14f9fc253c830075b9eac52eb0e9a20d3863f0032eb44964aab8156cce4e2c62100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000206f6e35000000000000000000000000786e8f3e64d3b5530000000000000000566bd44b9269aa000000000000000000e11c6f2c9eefad5b000000002ebf562c0000000000000000000000002ebf562c0fdcc558accb733caccb733c04c5161321d46c4c85b99c06874255614fb6df733a9729572f34763f69781e0b8c5c05070000000000000000accb733c08000000000000000000000000000000c4777760000000000000000000000000000000005e34110908000000000000000e8e8c5e1ec33113dc87c31c73713f318d631e66defc996213e0d33e0e8e8c5e0800000000000000000000000000000006c5274d618fd54b75d57e2ce5d5c919e9a0bd448bdd800d22000000000000009cabec6b924fbb2b2e57ee213b617a725828235cec487419418eca58692d0d572b0fa4638b4bbe779d15425330cd5e61a8955d335145705b89e5ce309cabec6b9cabec6b9cabec6b3e7f52203e7f52209cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b9cabec6b000000009cabec6b1400000000000000732685712bc83b2d51ba495d4d347741fd792d5ca8e6a22978e9432c8615e7728c64c80b6cc5cf40393a6242d782b9150000000000000000000000000a2711715ffa0606000000004e9ca209000000001100000000000000b687929607e9aef38b1069684f44cd7a91ec80f176494b62667149a77269767cd6a1fa06cd1ffceb2b5c6c0051dbc842efe16ccce162e816ce80ef395b71eec57de08147441e41bd1a30921b289bcadf724dd97d755234095d80b3534b0cf168fbb1af88498491d35daf1afd2826057d01dcbdf2b5841d83753df79fc016748466d8a565e56aec5b727a21d0ed8719f7b7f4e071b13ca519679fabac289d0aad1dec30b4a7a28de84f9d288b431d491ab8945d35f6f7faeca695854b8c7dbee11fbfe3b71d7780a6ff02b54a7cc01baa54f799dee45ea5245d624fc47cbcfdf060e07670dda2ee600385fe7877f8361537a2087288010465ac22eac4631c5eca72dccf619ed3f8b9c46bb2376f1b291ee4b385229fa7b45c4c082978e4da6e15bf2ccadeba693ec119b3763244b478947cb2aec969c98ead9455e45acc135797ba037bacc71dc1c9f66dc44a0a37af3b0e91f51b3901e5177751eceee6d6f492d83293aa8a182cb9d86dfbaadcb4302e089fc6bf4dca228812afed1130214b42aa12b8ebdc9f85904549c1b09e7c0c92566da16abecf7078aac66abc0f3c28610e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000004fac38136fe900601a37f8721dc60175c4ff0225ca4d7d1158235c67a8608569662c515110f4f33fa331eb5a0f45d772599ae536e8dae11a8369101bdddcb119de7f5f47dcb2c926df54572302436a17421d1c566f47af1138d53250ac5845070a009a0659ea846d2af89265c2c61b711951036bac4f9a2288498b238056743dd5457e3d9f37334aa4ebfe75b672f80bc0f32065a5fad43ffbc4680debdb736670ac095fcda3522376ac8e66bc6045644c94cb1c1265894a65e9761175584a22f2db6d0ed791fd258293e15ba43f4c02b00bc504f6ab2a2bdd3d242bc78a3b7488555004c463b837eddc0954a15de8313675751163084355f6dd5904787c002bdf2d2d47853d561b1d79624e48800f2ec7653534c315384f1a2bb64d8eb9360c42a4356d2e34030ba21cdd310bc35d4006f26d491a23305a95991208c8aa572867fc861d8e3f5166a7c5775e84560e017ad0426e262d6f384c7f0923e4a66f5760a6b048ca80c958e97e3d5ff8c2eb7353ace9339bdb26654301515f55f9706158710d4aa5e3590199807b12d09b061c08000000000000007db571084a59c13aede32f53ae6f29564ee6cd6b65502169d800ed4b9f57283620000000000000001a54440a1108ec164989d52b6a160901bc9c613601a29265a880e05d050e5a0f6f51666e0d3bcd761aaebe0a0fd1d240eabc7e21027edf38308ea653c9fa2f18883d853b8bb8b319826bab42877607620771c55430c7b8406ea0113447111c15a092c820ada11d65dcd1af71903f477464a1c762a4cdba619a108e183e5e636b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000000f80395e72fca84c36ee00529807ec3ba4a11421dd3fab12992e3303531727090800000000000000aa4f7b7232bdeb4c97db2f6364544061e72ca80e6cf0ce757e1027129564ad64080000000000000043a954550a6192608b68d9117c80b67242e31918a821d73f620b3d22c71d726b0800000000000000fe75727641b9f86051c7f957f6fdd42eadd1ca6d3c4a2a5a2142bf5ed4cc1a6808000000000000001f9acf2bc85b020f0fb05b186b68e94c79b96a494d358f093f15362d0c98c973280000000000000021a4c236378ffc451a23386536f0426fe08abb6575e77033dd9c4502d6e62203a8000862babdeb66ff3cef6c2dad8c414f7f63174bd3e25c6f31ea5261764b4ed1a13e1a930a7a165862464117e0ea2e165a72349edfe70f6de7510085f86210d4074d2c897eb0288d56d70b1084be5248d87a6a9c23281a6003c005702cc101060aa849948b9f4cdc5e1243904f86307783646e7edfe050034d9e45774fed521100000000000000f38c82dd3e4099964d1e816f7063b6ec6ab6303b5d7e9fb4509b79f2b98dab10cf1ff108de180643083d78594a45123fca18b6258769d4ded873e5c8032dd0430f1a135b862d974bd78bcb1cbd182821bc065021241fd062e2e23b4554e6233687b6663da372e8daa099f5a675cc5ff8ed5acc1f96be81520005762aa6761a3c9d7ac58f4034d7ffe27f73ae65f7f14da32f8f0451afac15c5ec54266dedc827724f6ba35098ec23b05407ae9fd9b96b1d7ef3a492cc4ba8771f346ed0ed483586308c9cf7ad2368edc77a1bdef6f57c31cf61ec069aa2dc528847cc5897b9b8a6021163a97f65d5b21389515d0520eb3e0c5acd73d4d891087098ca295942bf4042a04a12e03fa5160dbeefc1ae5382e3771b883e5e750b060b45530b248c5c87fb4926d2de9c1e1ff58c496019cb4408866fcbff8a95fdb30ed603d58d096d53e7c92fed5220706ccb26345f3eff6018c953611d7022bb39c9dc3c0f8b02b1469e3688a9af63527cc9c8b9bd57335bb82f5fc178e327ccbe0d66e579878b2cd47da486907d39b2f137ad9cfb3e0e69c623733be6c89685c1f14c6afbb49f2de091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000e5bbd16e3efb326dad55740de3bd1807619bbb3e80b64c2c3d77fa6470323d670800000000000000b4d50a61d8f3f10cc63486772069af1f147cba077dcb7513ada95a6749640d260800000000000000a25726211a0eeb16b4cb7234164d8f582db9c24329b1ee208ac40724f1beb80a0800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000008123b666114fba48f0372d39ba775647e0f8ad44dc661b77c05f4b1692e5ce49080000000000000018810b1f91814626e07c8d71d6f7f2568fcd47118a71a446ffe52e022ab9e85608000000000000008997b76623897b2d95be414eaca246140b61fc13a122316c952a8f716daf1f2c0800000000000000659ca96515f9e110d458a377462e83053ad0af69c973826339b42e5c3ed2567508000000000000000b168868e9c9636badf547738545095301491957a3948b5ab650c40f5f080469080000000000000060a17c605cc2d45e497e685fdb59f15a70b6d51fd065122c3ffbdf3d8566ce71110000000000000018152e5027f622380fc4fc166792b665f3c8d4d2d1e47158f89c68318e523d9f70b45bad55f18f4eff3d614ce426f4c2dcdd80d0b12276696653cacfe880df8f804cc9fde4c4127dca5071a3607bd73077f130334d83cc6445807b3ec60d8152f6e18988a6f84362f41dafc4c9a6ae69e535356500686c0aa4347f3f14e0bef5c815dd4da0afe62c55a1849c07db05077ec26c218fe78cef5ed5bbcd8f611b1cdf333247ab777b1035f264b0278fc6ddf76426ac4162c0337d9f764ceb8d19160780b62edfdd1ef5ef6131dd6bd04ed9001cf9edda96fe5dcc00685b9f6a0f3aa3462321e6468a28c5f5aa2a6054a3baea64c793614855d32d75260cb2d064bf9d443beb99cea07e0f4dfddf1bcfdf8dbc9bfd45d2ae65739f57504e32cc109d384986e0639cb379f5515f4a94b4b71bcda3fd4cbc1a6326805c217bff63b5d6949a93fc590489f5cde88d74dfc7fdef8d0a76eb6bb3f0887b66cadf2159fb3758a792ba311ee1cf1b30956b6c00ecec71f56046e0656fa532f0141cdc75f8cd24e866721a7c0b08af68ae8de430737f6859485c772a6f3e0e7db89129458f5ac5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000000f44393be61db02be3a5f150dfa592519f0ca50800000000000000000000000053c92377c270662ed7429032d7429032bcb590711d4b0e27723d8373723d83733a92826028531b28766dbd3a000000000267d63e0000000000000000a1cfdc58966fb845000000005e79ae4020c0d30a1242670100000000000000000facd20b5d1e5f2e996381090e9d502d3a396b6ef3bbc63c33d1ec276169cf29d98c024d0f5775256cce242a90a2601133aa910a65c14c74fb8de665ca81cd4e37e1313c37e1313cca81cd4e45b0ae38dce156081659fa72137cff0514267658f400467060cc782560cc7825f400467030b67500b0b0b95cfaf4091d651ab36a4494f260daace44f4e8dbc424e8dbc42daace44f92abaf282478e052e02f763b562f8929000000004ec0fe57ce8b3110c001a367e16a3f5e75cf6843716e4d70353e8d3e5a3238304704d608f4aff858ec2c8c2fbd284634bd284634ec2c8c2f2758dd3d0079900afd85471a6af28a5e00000000000000000000000000000000000000000000000000000000000000000f44393ba053f64cff78767100000000d27b7e02162ed352b4949e018854682b2500000000000000ce32af6553be0c021b708d1500000000000000000000000076d3be2522f2b908aa180437aa1804377b78a100b20f630d9c7d423dcb11a8448129982b765c290740878634054177280c02ba5d00000000000000008353131a79c078712cf26a5cea0d753f24af7926a1d3f772101f8727d2b31561c0dc9a134f6ae8662fc1395a0a69691cd125d751e80d6a0c04ef6a4031e2ef12100000000000000069e3334e25bab65a76e2cb180439022e4745866785e5f739ab65671e8aa42f4d7fd22f6cd3240707d412421103854967e526e64ede82323fddbb105a0bdecb64100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000ff825f3f0000000000000000000000001eaa40576c1f6221000000000000000041ac44449191345b00000000000000003f73135481b5313700000000e0134243000000000000000000000000e01342431e87551f9f3c87569f3c87563a187e6102ce773911f300094578932e444657635cea590c797adb5077590d1ba0b9271700000000000000009f3c8756080000000000000000000000000000009886693c00000000000000000000000000000000de331f5008000000000000000fba141988247265b8a9b2211692d171cfb0121f1ca30e186e9b510b0fba1419080000000000000000000000000000000b854741f28c2c3312d05162658c1a48aa5f996c1977cf272200000000000000d120a74f913fc73054636252a32fc66879e44e4a79be9a12f019f030e67e8914e974fe0f29d7ea63f650e4760072bc6e19580e5b7bd7d77249557a30d120a74fd120a74fd120a74ff30bab53f30bab53d120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74fd120a74f00000000d120a74f1400000000000000569775225eb9b7283e5052677700db5b3ab0886c45b01a68bea55166eec6f42400e28f57c347050f150f4f66b8a2dc700000000000000000000000001662ec0f55efce700000000067ce536300000000110000000000000031b6a66cfd9eac4d69cc0c30bbd38e87a8477b6d032fe4a67e978ac336f04abaa0933dc54336739c624e46652308ab8e23275dffb244b6e06e6cc8f165936c83cc74706bc6064324fb1579db4de8b72c5b7bbe500b400d949e30f7b7c3273690d83848ab5f8a86ba4c189d398fd6986031f37604ea10afc4f7f965fff7b6516e631d766b5a03c3ee0fe93bed90a332b08364807a67c0a2f70fa2592d38784e2d7873a7df3956734578026ade389add8355505650dcb9d1b0f2ce2c3f7d928eb890562564bf1faa966334aa072e90aac5aaa75ef639e220a6e7bdb0309c6e55c9d87f1a6fe4d2f5af680e232cd6714a8b0d2eafb369068a04ae3d723ae4d350b959d63a05fa9aadf2faa35f3c59292c3a94ffbbe96cf80ea432d1237edde028aeac17fac3ff1545d18508f53caf22d8f11bc339b3175c661a55e9d434827c755cdaecb4dab1b93b3c016b46cf393a3684d90d37e52fc5f23daf2c1fdc29c649ea2931431a9e640d56cad3833f9e7bece0f6606b1f193ae2fc04fc927f3dea055a50c42f196947ac67b984eee2da74a2215eeb427b1160a9b7c2c984ec09796235660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000007fe2c71877c1622f7c5c072cd857df2dd9ac8b531a69cb20145d8774fb91c229c424160c649da15e1b7330405c7c672d9e1fcf5ed24bab5f9fc2f41930a6c44fae3711053fa5ed43e8a88b286a8b530bfb45bc0aa8182a745df25746d9082a3c5b59e82f8c048c519214811dc5b60a394319ba4c080df05eed405d62b485b1302325473298881b21b4c0290f4dab5377d3246224b36dcc5b47156c4ffff1b41b99c8103fb6d387583a21470e175049047439ed480eb5511c0a6c7d42c44bd7186008c71af89c536d8864bc25ccadbd0b2340615890fd0a20532dd9620db6a83c0b09ac476cdd8566fe5b78028a2e4a042d24b877db6dff72d8ba093625660e2284ecdb452142585296e28b27b321fe2d21f18f1d2bf509504ede274d40291d0bf5216c06fc4115380ca1de5230ca5a19c938ee381efad705b1b770492b4f885c3f8d7077e071953e1cc6025342436f667bb5d44719aa3321ef84506307cd00371457cf4d45055e0cd15d8f0b68eb8c2388584426ec8dad587cda057416747440b460e710e0b07b07c0833876f3cdf71f0800000000000000ebafea6ef01c737628f8d13b4ca6bb1ef93de84cf8501218c0d76238e6b59c0c20000000000000006b6e590fa914dd67b2ae7a28d284377277909a09c432ad1c4ece68529b510d1ede6062723dca9f285630290ab349614bc338db4ada01d6079620af686e22ad246e1bbc39bf43321ddea84f267269323132242d35b5624f5575496725f04b451a13f3870f5dda513bc6dbd31b23013169de65ab635d8b90325ef676201f0505642000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa1584508000000000000002d758b772e0fbf5b0109f313ed55a72f6bbd770d79db7602545e6b4bd639313d0800000000000000faf2aa3f89b41e4e676ad50db44eaa40bba4fc512d8da12579181e34e3313b1a080000000000000080070268a2bc4e4486a0845645b6dc22a23ad10baaefd97286775f2871f580460800000000000000a962973c5cb0de65521cdf07e262970adc44e03da67d3322020818370ded2033080000000000000031374f43da0c853726558d449e95c23b06a2536661b0723f1975fe3e5e8d85652800000000000000fe58455787def40458a4834c19e5131d83294c5a6895240ea6caf5649b2705692ac01b5dcafc671fc024db191a6be0434c902137d09103765b5aca5ef0896633c45620336ad1e11cf2f05a47824a8939399f84705488575fd632b6010749c30673fd672b1430e41dae3dff745839cb3fac100054d6c7212036b45a7689c381110526695d14cbf602c82b20213abca06713625b62d36414071fbe642bae12022a11000000000000004c299946fbc7468365e4b7d024f43c55ffc6079a12adfb1c7bba85aca6e76b75ea9fe3822ff4c9956f7eae010b888192322f4cbd923a1c2600c90cd8507078bebc3480f932ce771ceedb801897ec6f6afb2637388db2cb1bf51f2d51bd478e66433a3ffb1b08a1011cc4dae60454890cc62a7f359bed581c95e303098539efba3be8727e855eb3d67a17f51d9bea0698e0cd4bada04818b40964c6355b4064dbbd9ade9cbbb07549a1da72b67fc07f44b2b4a4ca4bd00b1af4d13e14c6d1cea2a4ad95d40537ec35ae2e6dba93e03241edcd44dd94b718e2de6fed4be12925d6b94f7e06fef40afc1bb0b011fc1c9f237b3012e95c0e25b1078bd34fc6b87b971591791a13ab43db61924319a93507668844ab47e74cee66e4fb1b75d7117fab3119ccb49cb975a45f5abd915728e6d13bc1c4a4b56031aa7b648882c9b1a1da3e1c3971af064509ccf344f7946e3aa6ad4aa82e267b14a2ef547c97242b389824aefb911d7d513dff3f6726b5d401de54546b6c5f7b58cd658934c6c429d1a925468a4f83b667b9b2f1ce61bf641a9dd901efa5f1c3d08d81907ff6bb1ab00ed58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000f2f1141785257e2c9bae24283137df04affdbe42acbf3e7726830c084806e12208000000000000004ae2641558dff142802bf41489772e5cf9521504b9341a5dcac57d75a71ae23408000000000000009a59c4626a7c681af52a68280005d90dda568c504a23cd39bebb9b2b44a6f3230800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a2445080000000000000092899b14caaf242193e77924ba9f242591fed22578bb6d3bae2db16875dfbd520800000000000000b3550c109142c9495f5c5605a7a271525a51d865efbcf52a6fd45e5d0b226d63080000000000000009b25e6f7fef75175aabd65b4841fc1ba451a71a6102616007ffe56b604c392c08000000000000005337bf4189c2fd0c4758c55c69cfd013bcbb776a9c24545afe7d414e33464f7308000000000000000366115312d67260632be9359f8be73f3aa7331529a28c767f916405436b98710800000000000000a5e4871436fb2f5c87d45d1ea9318528985b2b030b74350e06a9ec2ab0964f0211000000000000003b529d7afbd85cc9c95df6d6dd6bf126c3d10e0bd2978c1c0b69ebd1320cbcffd56df41b4ca768ca44ff3b220276ded65f766858f3f061013fccb8ad80eeafd8be0bb50f1efcfd6400bdb49b3c1452782b0baf3e3fe5d96bf4301e7a788d88685c7f04c703c6c1ef47726a7ccf0b562828f3b45e4c593390c38d4f3d73e617d09de69e29b9fb8894e883f8fd5873c553b8db0c2a512ef6ff556d5e0c568befdfef86802c75af1ee24b73c58f2f04d0fcf8fd025b07a4ae56498e6a1295113cad3c3c84db77bb31c41557bd3e17f8e54a50fc4bbab38868029f85f4e865cb2407d03fe921b8689bff2d544ec659720524f508a7fd3982f39cdc3d97b1c16cd862b715802c6b3143467eccc9069763b80858a2efe7ca659bae62439a0204641355fd5078bd1092a561977de4327d645e2dfa50648930cec566c6b44bfad62d4eec09768bc89e141558b3847cf46c4f18fb582ced6bf4b86e33c6c643dc292c8de56eb8ae3421997fde78b25e14b056cc2c3e7cedeaf7a847275ed6deacff8448fd10afa938952f2051f4a7f4f25be37028cd62ff0615d46296fc4a86bb93321aefc3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000007e6d054c98806626d888fe2ac0b0e30db2c04a0c000000000000000000000000553a98770b45261df65f2a6df65f2a6d51f39837d791772fe6ec4618e6ec4618edd3da2c0679575485697f36000000006e54e84100000000000000004b397654e89be43a00000000bf9ef50cd1eeda6bb167521700000000000000004b7b640f80890d3187bb0f519d4a9a76cdf645028492fa2b94ea471e95a18e4f79202459bcb8316b6b408610f5b5ee1a0dcbeb279006ac16b3e5c60596bafa54d18fde15d18fde1596bafa5488f0c0602152dc20e2dc8c15c215bc0a7966f0132eb86d4511cd561311cd56132eb86d45e8b3e80852ac3822d8be7448a2aeee488c274c6bfc86a823cd707672cd707672fc86a8231eade65524e8b977b5522d57d377442500000000c8abf40244d6fa57f3168e406822655541f7cc672d88fc1f79f9154c785b485da2a88f1e60bfee318f14b368decf9c05decf9c058f14b368b2a2340c6d326b198a0cd20daaaf9d0f00000000000000000000000000000000000000000000000000000000000000007e6d054cf819d1425441ce08000000005bbd6c476018686765954f4188743b692500000000000000e5384419083ea03b65e91b19000000000000000000000000d1bc6064c490fa04392af422392af422ce044f5b1e80053197d7ff28ce78316656bfdc30c661c35dd0dd243e43f4e100c79c321c0000000000000000d6fb740cdd50b03a42f2c021453e0f7418e36a1a231d0605bb526c21455aad15e2f7db1557ffc164b0f9ba6ef3d2605689673471e60823201185296fa563580a1000000000000000f511663b428a92138f211748a4e825420d94fd66a1603168dceb194bf98d651e8c62e6068f91c41e7152991421909472cc330f3fc00a0d535601d96b97978a521000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d00000000000000000000000001000000000000000100000023000000000000001c846b1a0000000000000000000000004fc761757678ee07000000000000000012ec5a49033d0424000000000000000027e7a614106408160000000071d5c65e00000000000000000000000071d5c65e98bc6d73a7207611a72076115ddaf928efd6f352bf70e04399239809d6e0a96716466c331a4679627828c6398c9c0a6f0000000000000000a720761108000000000000000000000000000000f0ff2d1300000000000000000000000000000000ae71546c0800000000000000b12c5a4f4f80e909bbac731f7311da2f8d96130a1e2ecb4ceeaea619b12c5a4f08000000000000000000000000000000a24464426726051b6107540f6798066ee2608013dd18691822000000000000001e43d22056e9cf6c9bf92c60cfeea00de7e5a055f1af48019c8f224dd7ca1c250f9f9b56ad534064fbd7a3398f1c7b6b17161a48b2a2f104eee10b1b1e43d2201e43d2201e43d22083412b7783412b771e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d2201e43d220000000001e43d2201400000000000000634c5c1952cb580dde83900ed7932418f90f94091e44ea08e45e3d4e20b6040ba4fba358cd22794e1c2ea5194109df4a0000000000000000000000008a8f60418ab54d0700000000a1eea8700000000011000000000000009d38dc3008426530b74666dce32e265b19684e291c61a39b7049880701bb57aaca32cdbf4f32d2e5a8833725e816bbb7ffa50bf621d277fa13fc3f69611037248e8812adc7637b203b304ff831a097c4648a6e8cb6ad34b81cfe428438f46cac78c9f571a613535e8ae858c990920b5fecc7b40a3b925d5cfa4fa4ddf48fe220bbe1abaf1d1d3a118eea92acd03480cc3aae600f0a4d7dea85b076e92dcef94bb27c6cd20cd790964a9903f719755fff2ef130873e0715d2136a91b6fcc492af5bb1114bebb44f540f1444fd576137f31ec8b8e8b3e0c06d5de1b2c03d150ace09e53113c0f13f40b569d720298f61e2657b7d7adc1111d4898eb5a7ac3a61963a53c8182941ad7afb3843297d28bf22cbc8d78d8f5abc68ead5ba2d16d7ffeda327a8f628233ce57c1fd4790df15e96bc6334d881103ab55343f7c34f62014ff22daa2b341abd1cd967150b97716d2a0b00c37b222bae08d5b7e05e580c6403de443e802755f96cae6822d9829916477dbe1c77206aa4f2b30224bb1026112200b4b3869cbb404e113ca89f7ea50f2b35e529613f932d6a15c92247c920794a76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000046cf7202bd704a77d71138143fd6ee5458591d25e105292ff1aa8f7252f8851cc70a263d8bbd5351c1910c3731c11d239757ea145214283bdd3bba655dacc62a4785b545942c4d1f46716059adf0ba49fb2d1c68273b2520f95e192a2d11a277d90954316cc23432c126c80e49b07075b0cda6250479076760b709582d5e7c55fcbae70a440c7776055f1b18518a5f4ccda7e122a8e6186f0312842a1e68ce3f23dd316358898462beb97a2fcfdc2b70595cb12d13c6615655cc574e768973271452623e2be0b440d009fc07d6b8371b278e0c771566db2e6c2c400a984922412f2e0c3596db7d003ce20a00caf0921f459ed45360bbc14919caa35872ae5a046acb2f2b9e2e4110b082bd22aeab6d617e5b342eb913622281852d3e92729b5ab279b7367dfacd235471b467e4c8b66fb905973cfe60a70e1aee1c239feee91ae960c514ebc648002da02d5f2771b216d742446a9a89703fd688c52a06a5db767065ea00c3c92c47cbbae4639bb7465882acd94659c217579935886f235fdf2fd1fc170eec481129a5fcff4b3e1ed32e0800000000000000cf5328483fb00e606f5e9d68fedb73279703fb4c66e0093aae988e27ca18b94c200000000000000031d38764158c1b28d1bdfd3912e5ba553a763840659b6b3f90d6e6253f5b956a4fe2ba1864c3e874c19d19720f4cd838baf46c5a6c0f37512573c60fa06a9722fda0bf03b8334b4633802e51ee88a8636d16f2006c3a652a8d7b131bd2e1bd4bcafce732670763251afa7266e0f77d0cfae7ee3b8c57010032c3464e1c0066032000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b080000000000000070c8c33777a1d83c08023d0617314e5b15a6dd086d8c28770cc5281dc9e878740800000000000000a7a5e615a64ce74e1fffde361a4cba765af2ed73579f7d650b18243909e6e43308000000000000008e52b32d115cc250bc4fc900943bc81c8e3bbd707189c901a52a6d1b5c79865408000000000000003749d307dc91f1762438106581a53a60ae6d3e3f777d98410b68f675a52ef91908000000000000001cf8572ee5483071040987706f08ce2a1fd5db55f1b3e42f6573b725732369532800000000000000399d0f5de5da131375864b2f3c7e522c4a1c162d0e9bdb3e5bf071078f38352f2f0dc80185b1c351f295934941d47e153037fa5109ab3152379d7344cd2b461ecdb91c0b1fb1e5613438f872dd960d5f3f82617157fc0d5733d0f504dc281f1d1e224c3bd6708059ad991e64ff11414ff717fb4b67f6554893591f56426d82353ed04a6e0ff005469b3dd27401d1d255c6d960638e8d876e62934671d3efab02110000000000000077e7bae668501ea7d3834b40b7791caa17dd23512b7cd171f20153da42441ce83e06587fed7151f1b04591f741306afe0caed0592bbba5dd2870bf5bcda804f05d149cfa29f4d373c8e21051c5d6dba50bf541dcb3902e1421aacde9ffede787040cb91c8330328e5bb562a96fb7a7f87713c0ae45760346c318416aa64177dc4919b5dfb3a73a2ac771c6f703947ef62ccd74c884263e10a58bab90c7f0e2472a852191991fac2e40255838b28dfdbcdd553105158c279bf5c98eabc2ec20bdcc8b09e9f2028d42ed8938ba7dbfa0000f4441d363b1c9125a7dae6ad6daeb096c1bd80a20623d4f357ca407503a16bd1af18cb5617d9b6d5c6d59790cc04d8e0cc683887ab9fab2af5db07eeadff0687102a74a85d8a6f40d4a41bf31e9e12204a2a8a646a1e31465f8e8b46072203dc9a34202265bcecfa9c695e0f68079a4a2c6e93679b6e682e0110bb9e44a035e80a8b98f341ef0ee53a415816b6d95130c8fab6e84239494873dd918de95cecf6235a036112b239c7fa6ae5749ddbddda53f2e0278bf44eeadc289d4a7e0e05ea19213ef5ff45ceade02578c6961a2a5f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000016f899745162a0646c4c1465cc8a13662e667b6186317713c82d57161eeb22410800000000000000b709ba05eb393d74fbc90e417f7791290668530d59dc555444b69c39c2335b04080000000000000016c9bb61dd35480ee73e1b6d956665026e342950f96943531548e32281b78d6408000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a244508000000000000006c6a862e0360b20a74299e2ebf9ae60d05eb1f1a2aff924e47c98c2884a40f5808000000000000002704ae2065a03e720073ab49fb3fd2465cf2ac3744035e0227891e35dd8e526e08000000000000009c5575037327ad50a108cd68183e7f159915ac2ac2e76900541ab807be90d97208000000000000001ddd541008323f08d9a809545685b73715df9e484cdd9c02dbcc6d3df3524e3a0800000000000000f36cdc27522b4b34d8a16d763855ec44fabea700dd535a022b6b48125bab07390800000000000000e9638d58da3dec76c0277a3ff6f343227e8ef5413234e946d8d2f75f9d0f244a11000000000000005b8625e79210cb51e2888f2282d336a5201058c9b8fd81c2c3d2e14aa9eac7a42ebc38c4678026ad2cd1be09c1bbba857d909f3bf2241823ad18793fe19795623fff1eec64be9b0f309dcf6bfcf5297eab790e6fb9ebb1fbfe03033e2b3d49906703f2b877bf64a4267b2f91e6d42f52858b1a0147eab64bfa8f8585f20307e1f468081e4b8b0e5049cf9fd9d9a750d65f6bf4af52b474fdde6cc243a6602771c67c61bf80dee15f3b834a206b268ed406e2c3c43f4b5be5c688b11edab99b09a08906034cd623cade670468311e3ad36491fb42cd40f5b2fa50b5e653b58f384d703e82a5f3d6d4c2e5b1bc1505daae6df9ebe748ba445fc383bf6ad2f895470b0f7239e5f0065b52463176fb48e738ec85c0e33fbee52ec9414e482b0b0e283f5e19d94a4d995b42a2e404b4625be9115ba7917189334b888a5dd5c0eaf14e055b263c6bb98eda497f09385dcadf8806d773017320c1265b489697ee640e801f365e964b6298a1cd0a5d4705a95621d8dd1100cef9995b7f6e45d218e1398ac95946338bd3ab7de5a89c4f17e2f19102f2fd033ce6ce762f81ab0a60a19dfc7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000003e7e5c563eb257507d3ead69e529b66840248c3000000000000000000000000087321f1a60b39149944b1019944b10191adb39536ee08853bd0e765dbd0e765d426a3231517dd3449f071a55000000002f50745b0000000000000000a97aa41fd7303457000000006c715376ba6128521ff02605000000000000000043f6333c76fe1e5945ee9603f747c61f88a0c867c481a321f18a00238331ef5f3bd88429436e08266edc3c5f8ab65721e90cfb19b6ea1649ca5c4126988db30c91e75c3a91e75c3a988db30c343c551b67da90487932e4438f6e27223806f43c8a402910a3fa8e52a3fa8e528a402910abab5c5e72f9f91fe9fbd974929b951de249f20db1822c339ae9b6429ae9b642b1822c33cbe1f43978971262ceae2e02fcdc133d00000000572fa521c4d5ec1e5cdefa3b6cdbe50d20d5894ad164295807c3564dcbd73a0b5764222028f7884f5bfb2a53bd2b221cbd2b221c5bfb2a53975e2928dced2508085efb30b1b6915d00000000000000000000000000000000000000000000000000000000000000003e7e5c565249b9203ffde8530000000039eb3675cad6c573c7a58e4181437e7425000000000000009ec1ba39b3040b4066717d6900000000000000000000000042c703466d3c125a5b398e695b398e69e29ae25ea31e1c26bb99543178d5211d0c083b47c8e71c73a2361876ab1d9926209dbe030000000000000000872c0e60975b21642c61a610a3163734359df734f92ada0a8c99864d7902b4745dfe3f0567bf0a4fef8ffd121fa79c43409bbd51ac26a137419c7d03e120e8291000000000000000c6754f084d29bd22c3a74d5f46f8c12b62b6e623b72397442d29c71f8bf9fc6dfc2b91241e93086a6f40cf70f0dd08595dfd6801ab1dd70fa987e61160b85501100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d00000000000000000000000001000000000000000100000023000000000000004ab49874000000000000000000000000c83e676d29a9bb07000000000000000072233e0d80bb8a4d00000000000000006898ce0dd4264d0b00000000cfb78e05000000000000000000000000cfb78e0537505d130b77aa1e0b77aa1e6e5e7b59fe552553a7577c2b8d6d85520ff94a3cf0d67255aa40b52b9af3e96fc2c2112200000000000000000b77aa1e08000000000000000000000000000000d594eb4500000000000000000000000000000000aba7c5570800000000000000428f46683509e7620db89f662251056d24911a068a8c6449ca777105428f466808000000000000000000000000000000b6248424f9efce5ffca9b0580aaa17225254dc26ca8f2f6f22000000000000009cfb8972deb4b2090d37cd373d5aea345c434d380605ea3b464a772d317a254ebc44c33099e6c64cf6bcd47128fcce42ee38c3315fee0a47aacfd9389cfb89729cfb89729cfb89726dc25a0d6dc25a0d9cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb89729cfb8972000000009cfb8972140000000000000098d9b2323386fd065d9649486fc9666912331d2130a22f61ab05d24fe9c08e1d47e0c40156e9dc35c71dd7194554822c0000000000000000000000005be846049d00b101000000004f6a903f000000001100000000000000daa47e8167e3d06eec42c64a48244e38deaa921ec3872304a5a98d6477c80209f3d3883c2d664b4de531b77e42591f7157b43296863c2bc197f945e09cfaf0754356025df22820b45f8793b296eb1acc025c039b4707a18927af76f72c13d9a3659acea52e84a01216f82ef158bf55e7f452c701403beb620cf243c5fb10288a1dd30a4929e4d3bc5032760f993747229f63ac390db60b9e4b9f59b3df53b59ac6f3a7e18887bc622c021887afe8a91d3f8ce82de29a0d91d0ed815126067d8c1afe668b752c073c8fa339d76af5cb2b7500465146f82891ec1d89541f78de9fa70a9aa94dfab7a36e7a942de7d152cff12f96805a665383f2253b8b56f2f3d451b8c5150c1d3b2464c0bfcfef86cd5b114c3473038afd3d307c704a0ca49ead535da08d365759608cf064fc790505ebaa3eb4f48e88f83857e4c84240844f7c87247cc1329b8db5dc57c66694f52efec46f6c12b87fbf4fc4efcc9bcde6686390cb546543518b529e1d2b05a3fb3639eb1a8fec333640330e36224d24b446d0507371023c1ca7ad50c17a9f7c0d91edf961ee83bb0a644a69484b125b2a52a41cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000bd6012191fdd3c6d3d41ad42de881e6df5b9a414e786a834e0b70b760005a86adfa71a36b91feb1748210c2800a8fb123d07111033ced33ac7a7ac66be59b86742fa9842702b05305fcb3c4f77a71a56f106e1290ff67540b0e02b556b5ee827c5c0bc2f09fce758f3dcb055925ce15bd9bccf6c28b75b2745c60e3c74b3993dc189212de402c00bbdc08e5c30c62331ea35196ae0fdea5e4fd6b67318d7b0419bd47b37ec0d490814746b6261f1be19533551681def7b23e07bd66c269a88522e01f00d0077f56dc64c1e5038adc51db6e941429f0a2a723bcbf72bacad9b41534b0945e3fbff1fcd6752168984381ff82f8c01f030880d0801fe377b38f070a7140d5890302b587167a40aa35c246a7ce3131aaea5081f325b5a4950e53a04e5e6bc60a3d5b657b9e2cc4aafe683154a3f854310fefb62198d0b198800706194fb0554e70de60b00a83d4ddd810c38695c691aa0f91b58987e5711c87bd90221cb5e277294a96def8ef26b3aead84a0ff4b944373ec210de1bd66859ef431ea8c74a6df92bae03c20b174c9a0dd87408000000000000006a9b401abaef5b0f5ad6c309fcf9662d052ebc315fb3ad19259bf918a395c1122000000000000000e32c7411fcf86e50c8fa9b7359e3b50037d985587e6002062797091c652b300b67fc726c85e9f76451330e232ffafa735e4377316216f9591363e80c0a4ceb3369247a100f0d2a32ab98d35aed9f9b6d4d5aae33102ff53f3dedb4067b11c435a5e90c7542fc3d0094236b68122f742ee0f6af3588a17a1e8f4ba069b17ff81f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee507080000000000000092bedb532aeb6b4981fc3365c2d3f60f4890201aa5864b75e9ad55556cb15a26080000000000000018985e6d6bc1051f14557e041f933d2976a0b21bdc2bf63157cc5971f209d06e0800000000000000b3a868017e663a2c10a3ec30d1a2b12e004b4411bc6daa4a655407691516e032080000000000000053fb712e1d36530b545c282ae55ff5380910f26143385a50cbc79c76d93f850308000000000000002c16114e1eebe749e69b1c5ac372924e2c42f374a887e348d912af279bb77a59280000000000000077eee6164555a569c8255639d0ff8442d347ab443e4e7c57a8dec53d7668053aab5f7a6ff5976811f4680b707859014d3ca788616b23810499bd35689cb5631aab04593fda37f42d34fca43170683360d1c69e762fbf3f2f6b88d503cc490b747d332b1e809a52676a744a73ed827469d5889e37790b1c08ae0e0f6e1696a5313045db4ce4f23a7364857031666929744b5d4c5d8a5243188cfce7045d68e06c1100000000000000f1ef05047f903607a21a0c981bf313fe931bc67120d646690749c53cc477bb759596e4857432b87b1cf1d392438b4689e8b1ed1dc5f58dc1faa75a194bf219f9867f0ebe3765353e30700a83a68d2d18bdbb34340ff0dc33cc7689234c01ae79bc57fe4aa7358f1c8a6fd078169671dd3c3be19b88cef7adbf32ee79d26e90321927f16545a54a73a2b9c159839ace9de5ff03cb02272784fd00425906efaa3b8963de9ce7efa8be3345c099feac5b7e513059907a11af48ad28c4ba1fda3dead3f3d066b297dd73066f02b0cff12eba8d43d7751ccbd9d95cc2beeffad5b7e4fa051c594e92f12681de18138667d8a50b8c4c7e4695b0fd4f52c557720e09931813a3c3c04e25228ddc0366c6b31d841fae3f0872f21e7db602ef0aaf065deb650a0e028312f61795483e977f5008d1bb01df58f875749f5f9d78901c3aafad5c1c659cac23366f543d24a3f143139fb9c73d089976ee5b93e2dac19043973856bb55758f4109230ff498cf640ef627379827b1bd5cdb4b34b36e36b7e90f3459340cc90ae6dafa1c5768b9827f641f652601bbfacd76fbef6faca6c2c3eaadfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000008e70a76154ccd11d8a0d8c23cb3a420226c1896dee0e776d6efe3440dc713d2d080000000000000027f1cc037870572a71641a08579a3a4350d6e375f396b44986df2543073d7a5808000000000000001fac0d5f89c09520b0e0284b06a15d0553f47e4bf48a1d6b49e1481af28388200800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000e730d84313c7723316d1934ae6348874db7bfe7036507c181c09bd3b52a4ca30080000000000000001646718b9e4dc3e6c447b270f8f3e72e08ef73733d5f964cc3a7301b2014e280800000000000000aded9d4bf38c277223a1e14b1274d405b627e837777493353eaea2203190fd56080000000000000035eb855ccbb90248d1f9de4d5723513fa3b6a23424a4ad64d926a53df6936f1708000000000000008be5086c97245a1fe10fac60aa7da80e928f6207f8307c127f91da6d1b0ab705080000000000000062ea3e395d4f3b62588f2d4a3175625346f44e2c2e31a07150287f6b2e893a601100000000000000cda32fef589ab6d0c3bf1b7daccc712196765a69d53106292fb3ffff583c271112d0c72512d29a2ae9f55459ef7512c892003869ef7b70b0775b6c9610ff1c41df50002595d9336b1ff05d7d162331bb4fa49b0fcafc304c50c4d1fd47177b443c56ce5e59052b73b4700ae697ce9c0e6ddbc3750cb80d4049dc955dbba7f2119c1f9d6f9c2c8de6b85623255c9a37aa6f2caec034bf3398ed25dee6d5734d6ba7b566b9a0f58fe5e4a93866311273944b549b9c746fbd6120fcdd182dae5b9b2b0ef089dcf5c927ae434df647311dec9687e40440cdaf2417755d2020a5ddf6783a4a749304c607691e475aabeaf4f4f20e50ae28874a91ec156a70b7ef22fb5292b45c0614a945aa1e31e12510a193257afe7e1d2f9058d79a9dcb803104f5fcf15c1af778c7c458f94f001870ba1c6a1f579aa03258790f748bb8d8bdfbfefa1c3e6315bc73c3ef80e04d3a41a30a9701fd06ab2fe4d2b48a70a2687a79b8c246d7887394a7948759b92081ff444b3bd7be7539e963e9aa7d595767fabfe39b18f38ef39fe3e771b8f66db57b8f56864725dc2920344eb0ae0f57285b34ed79fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000007baff040d998435732066e23f466a15e0386e623000000000000000000000000d0a180736505ba495148483a5148483ac983cd2c49528b2d5e74db3d5e74db3d95fdde38a0b3c97768b63b460000000000b0294e0000000000000000e5f6c0388bfb2706000000009fb591099e79e0358c2345670000000000000000c93c6f28917fcf1bff511056a6acc20068000d0187500f375858350eb8b85870dde2a560f795fe1b301adf70e18c3a67e4aa0e308821225d4263bc2f715456533d39d60a3d39d60a715456531e05d6433388665c1a52550753797c21cf5fd506f1b2fa1d3cac1a773cac1a77f1b2fa1d53d0692000e7700593d411038ce0fa6d91d3fc3a624c3600cbbd043dcbbd043d624c3600a235934b71661e3cf213761a9ccaa3280000000056fc2361498efa4bc483293f31003201e0a7ec1f3760215c970b0741ba429c6089b08b5f73af765780589735490786324907863280589735fd3d5a6348605e1120b8772fb57c987300000000000000000000000000000000000000000000000000000000000000007baff0403a19d1674940930100000000888aa836a16df860bf0f1b64a0c28f642500000000000000c3fc254e0fbc97143d14c85a0000000000000000000000009f9f7e42af87be320f1a91230f1a912333ed8266b23e913dfd37ce14af904150072e166fe0591d35b35b6f3ac932e95efff3d55a00000000000000002552ef1bde2c41039fd1c95a011ea228f5b47b503f9d4a1507c816478d64604dc86cd731371b8b3a10862c0aaccb97550364553b82a4475d53a9662b6c3c5f4110000000000000008701872c7e5d651497c39010485dff42b587b46a87d8db5a37607f480186755f97dded4c0791146e03dff446a32f9919727e9b387090000f6d650521b396d0151000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000e9d87f20000000000000000000000000f022154a2071c5220000000000000000a0e66d3bb576fd6c00000000000000004923cd0eb720e14700000000489c473a000000000000000000000000489c473a91bf144947e0f51847e0f518f062a312ba23910475f85743075dfd609bf1c8526537d9133e2e10374824294b5f077670000000000000000047e0f51808000000000000000000000000000000e4a20277000000000000000000000000000000008c52c0050800000000000000ba06891af3ba8b132c54f501833ec6632147aa4cac97b70736f8c21bba06891a080000000000000000000000000000007119742ff89c814576a8063b9a2ca15145abf9170eea37752200000000000000cebd59163071282778121a428e52703faa9f37521a93851e4c564239e2fd5b4634aefa21c4aa0a5d75a3501f8b28b353ea60436f251f8f283d18b564cebd5916cebd5916cebd59169479ea769479ea76cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd5916cebd591600000000cebd59161400000000000000f391bf10b1e37566e4a16075c0d3d401dd317404adf53f3605350e34e5419553d2127921dd14c3068dd6074621837f1600000000000000000000000045c16d24aa7bd934000000004b3be21700000000110000000000000050248a98b9cc35b42b2ddc5baa01b9f85bdcad6d0c857aea02ab4993bf3a23de3c1a235ed2adf10b4a7839bcd93dcd6edd207561b046d1858923e583f4171955415d158a6bf9de9957a40b46dc9a4e0cf8d1ae1de65b3e0cf4dd557400b053ed2d39213b41ae79ab1ea702e1a1ea7a5d13a50b4db228883e6de8eb049aa07c7d2c0aa15a6ed9383b2a844214abab9fe454e436e832dcb0f5c5f85781cb64afe6e3e8e61b9810f0a57a01d065e2e1fa6ab21a8be5fdcbb2f3e058f7cff45b6bd1d2f2b28f6baabee20a72953a4d373450644bda38c8630d35d203ab79bf1867d14200337923da570d08a948c3632637c73f9e34f96659cc0d1e9dfd6d86ff800f06845269e05adcd62eca81d531f22f74c33f6fd3a0363e5619298b88350fcb915f3e026b534fa652f595ba6cf3461044f694e59369e189782683e25c95c1ac9b0ddd81885d159a095a0d9321e1fa21d496c82546de4030d9d9d80b482dbbc57a3cc5275dbaa4dc237c296ae65e532d3822720248cb42794673b0c5dd10cec271c2bfdf5e0bcf6e155684436849fe2dc4252af241e86fc62a3ed6a6b5641fdd569dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000007de978482246c264292a2905405cd3044793436230625220d4c4e7530b56563e6c3c14203738ef1e60e0be41509e496d55f73330f1de46661f5ae73f63512310ad7a951f9143e84006a2595b8dc026286de518043f9f9b5daefbff39250ac95865e53b4176efca2cbcc44f3a70dfdc231c5e6c3e2e0daf3bfa4c7110cebd914be0ca98470023342b590b7e12cddd3163b5345a455358fd06fe47fd2971ba6926dcb75d76c246c858a555de34c4b1e548698faa2f8eae0368292c3e708508d7534d3833655d68225f8b8f573bfcccaa480f5d504e3ba5e96e9849a633a679ef41b75d212cfdbb37586f47ce4724a581267cf5843a8001661502bd7d42762c421833f7322571243422e98f654b6be90a43dc2c3541ab4b071874ab922259702c522f81b65f1933326adcbec56b27f7f6755a867f4653148369fcac5165ed17c751bea6e34b4a35282a29400c72cf56ba384cbd9825db428f713e9cc75654bdf34555d2b01a81789a1b38ef2d203e938b66c846220083d594395b4789182311391bb68c5633c32e255d20a74c05bfcca12d08000000000000008f2ff470dbf6363de9b1835a9fe9cc165aa6bb68a2fca16b27f089223f8087102000000000000000328cf35306822d608b84f81f89bab6753a545152cc95c12cea807a0cb8520272539ab66d3a95cd54168132149a375439350220173335ed2972daa14561827514e31ea31190a7b22cc430435e819a9832e5699c077bee890ed0c57f038d46ac3f742bdc5828509d3677e7661d367e2049f17b5b668dbe0b6ce73ab31a8027644f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000210a3122cbe04a23bc413c69179f6e56f836a30d02f8dd67a3d13e1831b5ef6e0800000000000000c37dd2075d1c3a0e8d6eee6a178b2a576a016d4f550d4348c9edcb1221b1a00a080000000000000034bbbc018098693e82699457a3bed02fd37a8807d14a476f49f838047d60da190800000000000000b9d51d0dbfc24366fcee0354f72ac64d12503d10db45882d03bc5c17bf893335080000000000000008a63b159c4a6f3a87c33563820a2e73d9e44265004b145df0e2be05630bbb1528000000000000009fbff3641ed6982538983864ed420f1b9bc14e3b7a22e4751412052023f52f03208fb64039b37e023ea92342ec8c060d68cf5a02ddc87b4e2a6eec19785d1922aceb1a6ed194a3330107bd06a2363314e282664ba7346258f216c66aac43950ed8e5914fbe7a0675cc77153f8abf16664ba93b5a1dcba1665f981b341515985ccbd45b695b51f76ea1b3b669ce3bc90d7b107c32b42dc851ba56e4232e74a34d1100000000000000e0178db88bb2e34118e17af1351851f6e4c2390c8f32ed06598da9549a28be5914c75a26e004cbf88267610a969a128e192924edb4716c85c423e71a916972b7c5a6f39847642ff1d47b7bb6cdcc769d37ceb13743c8c9c3cfc25d096c21a6e6b70290981aff22df26b1001e91d0e051c2030ab444981b2905a5b1d53d04f9bc5795d04818ee5e3a5b060bbf28e5b57b296b87494f3eda4266e6c3a915ac2b5b2127c286dc28fed668bc0ec399a0d8c12060ca03ad17cb6ed7926275734265095a1b49bee993117cc55589a46abbe8cf65480d3ef6b18ad6c3b3a41c47b0ba3abd063d220ffa77cf5233a5f2c8338b3a7751fbc689df4dcb30b3e8afaed475ebc3095a9a90cf38672ac71d7c2a65e6ba2fedb1c2118f677d0a2fd19f5c964a50d0fdb0938e19651494dcf4452a69565f191901915f79e695245771bbf247ef476823a20205be7f9c724b584939fbefd6a8a21c336051a28e73f7cc1dfeccb3c3bed08753e613464fb10b44cdbfcf6def22bff39a911df6949e3d9882baf5a40ca9300c084d37085bd2fcaa02093984298e4d1d4e49f093bee684b0af54e23ff4ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000d87f4655162e9a2ab2b38a4b30f3a0702d6cef493a0a8c121192d86420c9845b0800000000000000ce4f2019346c663e09ee1140c1d8de4241ca055d39cf983c028ca34a44799d680800000000000000b980ac19194f036b2a980e09abe4a12124ceca6022cd7a1854a6c44f331c90260800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a244508000000000000002f92695df7406411f814e564417c9e08b72481229abaa029d0e8af639bb2c12a080000000000000073178c58642f8f1275cbdc70af2b922f8d8ff956678688489f8303381a54ef0f0800000000000000d926151d952cfb61a48ef04c37637e307ded4d3b53f5ec02c9ae744b8eb6665d080000000000000053cd942ed8db7d5462e1ee16cca3b51023a944047a2a8c67c7e06869a921d9170800000000000000707eab110facb255e3861328c877503dc5a51b31c831e05bf649061c053ff04b080000000000000090024730122e637412444c1006f5d414ca856231de6b48047d93cb543d9223671100000000000000a4c091162aa062f4abf010f4ba98a86c259542465a554e4ab1a7682ed0983b2672b092b93e373e35587c04efec4c34aeb4d7f74d76786791836f9209cdcbe21f07d84da7e5a0e756a1d1b2e7aaf33ff0f0d97c616f3613dab835adeaaa9790f4384ba05c76b4ab8c049e98963426b177fd2d97d69a2ae92b526b885e2a5205ac60523b214d6093872d7a3cbab3ff81a1294dbabab0a1e7d055165681f2ba8c87fad2114b31383eaac270e1785be7153fc3cd59a50db005d5ba72f40c1d6d22acf918a97d6c265723aaed2a35439095953e12b82a39db0372a7977987f8a146d0aa5822bd9914334abfbe00e6ca42c99e6faa3c67d5bc82233371d1862d2ecec7ce80b3e453adaadec2ba21c8dee3b13825a81d0e8122ae82b17c086b5a309c4096483aa94e57883d7019d6526fba97dd21f5316bb387b5afc1cc105c751cb2732a9ba8de2f235110ee6973e6b8f8cec5727f0803e6d16ae836fba791819f9bad992c5749ee1e2f408f4eff6dc8d0baab264aceffe6625074d348d8f80ce17141a2ef63f4906835156f1dd743d8535c7063b47efcafe1f3d2578dadd533d960d176ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000001f80747605cdbd21cf574506a85b93678ce3762b0000000000000000000000007c8dea369f67c43b14cf052814cf0528d940d5152a762c0e12a86d0f12a86d0f1621c83580202a39e043c43000000000cfc4971f0000000000000000a6464f04e90eeb00000000001b62e14b090de80f5966c55d000000000000000056554b1133fe3b10f904f340a3011a1f909f2215e37f8b01fd4b050219360a6a6cc1f95aebb3703f16ddd05643b3f4463c59e636e0767b6b97c7c56dc496d6217e89e3777e89e377c496d6216d82932f85f1d2576dfbd415a8baa9430e4f594f4a66dc1e3e3db9023e3db9024a66dc1e8e8a7c471a440c0f5a47916e0b27b46b4924b44b82dfd53e1b18ae1c1b18ae1c82dfd53eeac4fe22d13063287346e828690a91600000000098fe8f3437ee775c5d5e075876685e420c2963717df35f0228d8e91420c99e1ef92b310b918cc62c14769b0787cd020887cd020814769b075798e375d645131898b1500354dcdb3500000000000000000000000000000000000000000000000000000000000000001f807476a96a542c425ce0620000000019de131923b9c454456946629acea55d250000000000000047c05015b458f81499dbb26d0000000000000000000000009add9f62ecc765538dc8fa408dc8fa407e6d874225fab40b50b26e01a3212606095b19479280b80e9fa5d71cd432193212af0518000000000000000095367c170a352f5ca99c7c031abda33ace6c5312305e261ff65fd0133a6c7d5026afec3f679e605a8876af04e93aca147b22355b538c0e16fe8c406847fe87681000000000000000a401e6364fdc9a5787bb6b6346e62349e56ee744076c052b0a6a0f35ef9f8435c0acd14dc7c0b5240fd11d022246d0004fc74d2248981a2bfd9f22172b0cad74100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000e7dbea2e000000000000000000000000ed2430050000000000000000000000000000000000000000fab6ba2944000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a54000000000000000000000000010000000000000001000000230000000000000094a02e030000000000000000000000008de49f55a72e12360000000000000000956b4c25195ffb540000000000000000c1d533048cd1996500000000b30cc816000000000000000000000000b30cc81674e2fb1affb39508ffb39508955115541c9d211383a5a244a2e185513a8edb1c2d2b72692d93253344d627626b1367050000000000000000ffb395080800000000000000000000000000000052c10a020000000000000000000000000000000038525b130800000000000000a749106e184ee8637b06050f103b0413d5cc6f590ec0d458cd567765a749106e08000000000000000000000000000000c8d6000286bb10672b2f261dcd9da044a0a9b645c721636a2200000000000000b8bfbe724051975645628732dc8e0538e4654962764c6a3914f4e26e410a3b70a403d46e7c421d743518ac6f9cb11940a0d1bd7563245509927efa40b8bfbe72b8bfbe72b8bfbe723ee3904f3ee3904fb8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe72b8bfbe7200000000b8bfbe721400000000000000eee40702ce73910bb88c8f1105cc09744d3f7a621fa4f42d1d541a700f4b3631cb236f33c6bc6b39ca6176335b35e7210000000000000000000000007e23430298ce375f000000003d1db84500000000110000000000000031d67b8fcbbaf5132c54920606d147d9f64b776e7c605636ed8694847b31a3bfe6ca5aacfd206cddaf1550475ce2bcaa6af8d7a839d300ab7a7882ccc3245c7bb2b1db214d9e77dc095f2702bf96e5e2a140c6e1c13cb2d0371bcdbe5cc4fb22c91494e6c0933c6280e056a9ea7afb42ca20f666fc863abe3023f8d991b37d027b74930ffbf77237d548ae992f1add4db02bd882cd483452d17e58833265e3a0453e0757a3120973005eb105536220d6f6ee19df87090e5c31606e91902e171a9fa323a23e56ad6ba6b4e8de4c801b1e44b6262533497043c96de4cd66d485c0590a9d971d23406a40d72c6c7415bca89e0f62845763bf54b352021df394b2df63002d174a70686369a4f2d2ca24fc8143cf500d81513aec3271f8764897fd87efebf5861403506f86c1594272ce3ea941fc24e0b3f53804d3ca26e9eef1685714dd7a4470eeff656dad6cff3e6873cb33504c7f258fbd25bcb30cd831aa79cff530c85254a7627c73212833681535d3ff4915d9bfb1c1660289e2dfe730f934a299a41c463dea864aa8f7fd394cc698a8dabfc13730e307c828af5b3592924fb901994b7947f526cb06f2f7c2b3c57d149de14c37ded3880b9647cad19c0fca47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000007d402200e0c31d4b16758b71109c183276995e668a1c7267b4b2c0751382ff42c5ce89228f7cb66c635cbc64235207747bbb18067659ef0e6b4f4511f6b51f54c0b15b58fea1e6543cefcb296f5f752e05dbb40bc3164b0a1271376f4ded3230777ca401a1c6915eb88ed152519cbf3700460d23ca98e54261b9b52c3096cb2bd74b5216b630bf1ac41cbc48745d6958f5b0ab20d3015f5b6621ed705fc2be01a5bdf82abdba955b6b49803da8cf4b6ddf2490711334da4cad0fda2bfaa8d408ed688c73ece380253bac8975fa7f2e1331f18b00d93a0459555f183ad0fa1707f6b04b3f38bbbe6f12a3560b78b4840b1a3cda48fbdbf131238fd33bd20d87747570d2654d5f5d188e110c5a0525613f737a810243488a0ef06f250dd5007a4b45023e2455b85e02133a04170016002ac0efd63d33a9f9248e4dba258c45ba4b277bc148c2e821114de1da713e9a45743644880278aa42531902032a1004025df6b1e32c327b92159ebcb4751c274a3ea4fa8e670a8c6259f6113769f0949b3d859cfc0f74a8fe5d34fccf56e8827d5e08000000000000005818b20ea8152f47dd27264ccfced509cbfbca69bb874d43e2bdfe24f4a3f92c200000000000000053847c43408cfe5476213037d0944960fcb31f0d791707633423dd3d0374d2385c97f84258033b1f8c583e56b1a27d209f0ba330f993ea2b910e2318b7751c7084cccd09250820055826d750a3b69738a2896e72700da50ecc8f5047c9ad6e1f97520e0098082c1b99095a5b7a8d0d1d3b1fa114715f4b281d894d4b41cf483e2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b87250818000000000000006c265342a77fd70943cff94d40a86a4450323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d6143694d8b89b2004c72957558f5706acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d08000000000000004e9e53738206bb63ca38ed052b9b6a231e596436b214824322991965ef1a072a0800000000000000632ae44c253f783700e75f152f39d90b873a1d35d900f1225d053c5a19334a6b08000000000000001957741dd0cd1e2e0a30862b68abad3baad8b46ce55496536f1e7c64bbff9f4508000000000000002de52a1cb4b25743ffb0c16a47eae64ed3a91a6219b7d6149e00577087dfcc000800000000000000094a611e0b1bb92114e70e3ecab035739b71b600e80ad85bbab2a04c669ad476280000000000000026399b5d63ca301b2aba71377f4deb22a2d7ef495e148354895d3e1fc7168f4c75225c1a80d3192af4ea79625c40000cec77cc4c3b50803cc196b90df53e6c72d6a5cd422cf84230872bd81846dbac77e2f67575427c8a230e9d8353de41995ce55e856ee0fc3a08aabe227465b31e1d86f1d7332e1d0a315f65f643295d6b08a7f03528470e271253689f6326e97727ce9ea75fd3bbb8521c0a2e744cca0f081100000000000000dadd33c6da05b361488e64e61e16a8e6defd20cc75bdf9b02bf6d35a40b8694e53cc5c175e7236a43991d3e762d7797f71f455e4372d4d350caf07fd6cef33b6e537ff0bb159903ebab7f97ecabaac721cd248fa0dab214e958e5d9bedb0cf587d39b1c834fd7e38dffb5049194f1500fe02d1185e2b688a488d65eae33c9799be0dd82ab448d0f7d183c3ac39329d5f1ed616b7216dd41f96f8daa4267ae5e2e710d9972b7b2c72a9fcaf4b09181f10e5d370a69e6719f449ef15a59cca28fb64bca525a29518f2d731549f53d42efadef268dbd240b99b4253002b1596e3d2d9febd785ac2b587aafa64c4b977f9145c793385c21b07dd67e153244e526a64d4e4805d63e3b2a736712a1d848b04ad3382a4fe31c4cefe1f937523b95f58ea26b82bcfbce639f083bf84af9099854d21e324793e8ba6cec49a78b73c519b7bf7858eac2f4a272467356c97c189d7752c0867c5d0de6cea6096c073d3a73449c72d2726eaf5d4d98703130e2ca96332e17889eba0e48403aa76690f8cf0596c5937d2e503f2dbc704a26bd33eba2ade850f45905c1dcc5ce7496e06c325f1ded7c12418dd9fff60e29b856b12713b0a31ac4c585c5582d624c7f5e847f38618c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000001feabf6302ac9a0352df284e861aaa39da6e7c358a9939381f0eff0fa1b1ff280800000000000000d22f5762eb424b3e7a24430d4ea34a71f0eeab007efe780f047f6b60c14cd95c0800000000000000b7feb46f2288c061244bc173c00a83458d823a4ff9a87f0eca6e756bd06d9367080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a0800000000000000204ae4671e21146da7d8422d5c76580d748f734a0108e1297e55e25c6a5acb310800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a244508000000000000007b752423b9ff654f409178685ea5b3047183be4c56a1e460113024608c76c51c0800000000000000754b322120d2876322eebf2d7582bb01856dda41799cd122eec50a0dbcc17e620800000000000000ed28755e529dfb208400187537bb924101595b07ab660744a80ba9179d36a53908000000000000003e5a711503cf1502af975d20aaa3f552d394c00608f261599c8980553f1f2f460800000000000000a574f4024fc792036fb2e322b2cd9262b082bf02935da56212cd110cd0d1cd6e08000000000000002cdc1a158579852d8ee01d1d1e0cd60a658b6807c7777427bc28ed04bb6e8d4311000000000000001c7c9ee88c2f5c239315507c8ff088d6d7136ca2b33f5b56a6bfd6cf8b82470963ba9405a9db86720d3c3e7a06dbd8420c9bb7da3af912b6468d62c32f845eca0da971dfa8d36ed22c231cc76017c635be3bacba382fa1f5b286400852903c63f0b04625eeaf3dfb93003bd3fb9c5fa1f8c05b889e3afc47b767f3ff877df3ee6edb25262748095a4284702b9ad7e54dd0d8e2a5f900126597b3ed1eba632791e5aadee13243fd2251630d31eb19d11ed0050b8b308e5fb8fbf53a55107435236edb90db6e473c7d52d4683553af3dff587091dc813d5d788ca96ead157c4ddb033b5a695cbe7398c03f4bfd43558c70dfe5946cf9f2356d1d8efb585315a5cf4b16c37d52b4ffeaa5a4cb482954e6accd6fe822b8504d8764bb9f29995bde6cdf726c0ab800d9209d9d2a68f2b08bd680fc437642784f5fd07d8240e703ce1d54985dbd82207918fdc46fc548cce1961bfb7e4a03c74db874e072d15a81d8b178185eb1ff98f37df4e6fe5a7c8a88f0c4ca0e7d2764a5440fbf508c555c9f27fc5f170dd1fccc9b8d6d72d3ce64a5835771067479428a6a68138523a911a66422bf98fd492a759f352b4b82284a1b0b24bec1004fe9ec750326e0b5c9a929335a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000cfcaf275cede2c140015221cc977a21df1fc7531000000000000000000000000af7b8153f56a3240133d8801133d8801c3231a32a644ea3f7e2da4017e2da40174504943ccef4d585335e26000000000f0c1ad6c00000000000000002e221d50a92fdd420000000072ff3d57ca4a6915dfe112560000000000000000c3417468f42cf925d83c6a4a7275d33acfa5680633350d02cc1d6d6a7a18003260629e0969731327dd0c9123a991607560827f1a80ba3e71c6404d3d5b61766fce38df24ce38df245b61766f80ab8228d7c16f542a537e2de7fa7c3eb58ceb10904f6c0d0b8590330b859033904f6c0d118e5b4d0f62106fbac5724f264ffa2258ca30263610b21f9fa7ed5f9fa7ed5f3610b21f053c802441875e33caac6c12931ec817000000006dc32220c922e664bdb0cf65726d6736ed58813a6e224e179df4da1f66174817ff143c31a3bd922602e98f1e0473f3390473f33902e98f1e3d9571458234342e5618814fc7b5df340000000000000000000000000000000000000000000000000000000000000000cfcaf2757e125c01e0888d08000000003d5ff81e83bd0054554c665b25227b732500000000000000fa9e8260bdf8ca388e003b36000000000000000000000000e6070b2731bb2532fb42b333fb42b333b01a94747f225758757bee06d4fcd451d7de8f33a9d76e3d3669097202b47012cf5225610000000000000000069256106f4a052f6915f602781338436554c155f8e51f01909ac80904ec0b0b975db63809e8400fb5868d53da8cf17213be7a3f5b5c5036392f5664ec1430611000000000000000a8a9395e19293c1ea463a50a88b1282edb6de81ac13862355abda554d3d3646ffa4cec2ccca8334f1b000f259cb0421fd32ea04064dbcc4354a1d24b4ebe860e100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000004835e372000000000000000000000000f6672a56000000000000000000000000000000000000000052cdb81c44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000e1ce5d41000000000000000000000000c2385e5e7eb8912000000000000000008d2dda5e4cffee3a00000000000000002012212192d90776000000009626633700000000000000000000000096266337b638845847128c5647128c56eef3d807c1d1595de547f9631132352a15c70233d3c18c485fdfc10c4ad5e91b66432e15000000000000000047128c56080000000000000000000000000000009f512f46000000000000000000000000000000009e21513508000000000000006318005d1572a43158673c4e1b88364bc0657d291f096d24c1234e276318005d080000000000000000000000000000001004752bcc51a96806cedd76950d3a0f447db860b65c03122200000000000000dca6cd044283ac27fdf39e476bbf094e97b8e1590bf351551234912c477b465f28ae5c51ad4ea6545791ce61a03b6e60c4499f636d265333b92e4911dca6cd04dca6cd04dca6cd044aaece3f4aaece3fdca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd04dca6cd0400000000dca6cd041400000000000000639e284599ccf57047da3e4fb590df666eb6a0176a72887453edbb296a077172fe1a0e5ce5fc3871052f9439233c0c390000000000000000000000003e4a295d8ca09d110000000097b7db27000000001100000000000000704464c271ed65b8f38b030529e9fc047cf79d27bd6762f65eb21f346a985d97b756cb1cbf8edc7751c8f90cfe502388fb7aaa6f73f5d7895b0dbe61cd9b817a536863e0a618958f3eb97151b8ae99741c431503143fd064c306da0f5abf8870a29bca10d62448282aa9f23716ba5acbaa5c7a435aa36f914160915fe3d85fc2d75a3874b7a9ea6d5e08236bf4b42fffb3a8d213f58b41bbc954a93b633efe40bc8ed71a352667b0d0d6f1047c8c1c9f6f2ac7a9039835523e9400a3336d5f680c6c51c21ee86c65b1cfec3ac93f46bd81eafc652dded83a4c8c380deac1f4d3ca2cd26b92a1ebaeeca24038a823ab22203adb546434f7a0d9aa4e758a2fbab24a8066b561bf666d338cc30879961fb1341ec0d564ddaa4b07ff096ef2fd87747d3cbaf789c46edf2c902e49bfb7b7505193eab90821d4400c2b4b6ec887dfb5daaac15bb6a60e5553da5b419bc7d85270377edca09ae9f240db545f6fd633e2705a2ad2966cdcf1b7422c1844ea750b41e41af6c1137780c85bee1a5a4abb215cc2c3eb97857768ea9f92d066f27fea9a6ca745f7688a8f8b93ccbff6860285f12dacaaf6d4dee4bf2f774528e812fbef524ba65018774d70b86017998b34b310fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000007d5e744743b5132e7de0e7099f80c022d7a210751532fe28926b8e43e8f54f11306cb558e3b09e6a1330974d2e8b6b4e0e5b831ca99b162a6f05ed5f86f2fd60216f6849d54a4e0028cfaf365049cb48975fa044d72de94b93c5ac20773daf6c700718591994d44dd856e56ae89fba5988cd8a3f2ad48d407177be17ba23f845fe3f8d0b26f5102261d82806e33b6c47d0b134472619b13826bfc22dc7c330011309fc6e86cd5a281d36333b7d0e6e71aad9fc13af8b956477e2b233cd31fa2d968d406bb704c755cd987f6f703d7e5b79595d2cc25e7c127882581b0a72a27258ff95072e303f167fb1b908165d946ebde1371aeedb82472c6094282f503a1d5b95d5064c268b69e2bd3160ab8b694b8a657b43260797201e3a6209c196be19e7182e6ab7acb66a77879316cbd49658beae09552942af0919db8577619baf357c904c1e7e0eaf5ff32f640efe6b030ac00f835cb5fbf04a2ee9651109a0a534269b0610f83771520c73a067bc739302599078238969b4038741236cbc7cc0587c9c864ea095980727493f15640e8f560800000000000000799ea00d78447f4a01060137d2cfdb38d56f3d514f3aa5036941ab5ea476081820000000000000004cb6110a258883071375a44007eb47636dad3c3ea621e3453ce3063df4575a32d0bb356c13be6b1aff05810a0dcd8822075af4017899a562a0914d713faa724322984431be8af338c360e0065d68932b92c81c00678365608c994142856b1647964d07600575b042b992eb32f7ba4155bb75f96165d8e96a5b4a45451243806f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000c7518112348ddb3f4af5c372fdf41f6a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d39e5450dcadb7a5b8edbf5563130b002cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e080800000000000000fe73c328f66c75296a37196abe1b003103732a57ce125436e92b6545fddd44280800000000000000cfd4401ed202ee1255b1e2484d1f456a7e198c3a2f36222d940fb144d739fc4a080000000000000085353b02f84f745c6acede272ce3641e3034e00a70e7a02bce41ea4c90b1e3630800000000000000193b3b43ae2b5d2949b8a819e132c057050d637035c774574237742198d3c00d08000000000000002101ba4b6c3cd73d14d1c26bef2e4014179bbd6eb21c9370925f062ae2c0f9232800000000000000dc868d27eb5eac513267b4491d8fda7190660d035874c16e4a539f1f0eb7051a9fcbe3651d1e9963118c9b2c2988226bff6852226367c8286fd9f14f9aa59a3056a32d61963959775752b6377d4301060309d60c182d8a5f736ef425a74c3936cd5ff0447af860401ff5b91896cb4a04f220204324ca675f7f59d92c68d9b66f119fec10f593371089f3ea15ebe57044c78f69215b649625393fac361d7f3b3111000000000000005cf597d42e3299a6417ffb3ee1d203577ddfc879cb2adce948475431034810e3b27b85f5dddbd35dff2c350b92c2b06141567b46213d0b0298282f9cad71c0e98be6c4b3483b2b977fd5fd095ba4e0544bddfab8c90845f008d3e90da64735a3bf3a09614e601eb58e9d94b83fb9b803daadfe9f815fdaa00e4d8586070c77edec531e5e69b87e255676a250f09de8242c7e142e31bac5021c156de65ad5930581ba1240af1c233931c7ef876ecc6a3f61d6e51e17c369306a555ee8925c59ae3f6ebebde11f49b3154fd917e13393079659cb9c1df97d49ef2240ae6ffad34b6aba8bc30f97e8ac90844110c9b57b3c4669d1230c36fbbbb73b1ef45e21f68055b92e7fa5ac0471141435d73927b963061f7ecab1548daa706a30094b768e6cdb2288b563c1a4b1c194ac4cd31d14dbca2257d7eb38457b66fef209a83d2b179de70d9cf7ef459d4f25fc74a93ca24c01cca992575fe1c0890d8e3dfb7da0aca83a0e1e527654b7527b2fe90b3c4c88d8793b93836237b71a4554ebd146401de4c1a950208933abc9a08593ac791ae9f2896bf862ad033ced5f802889f1c0d2349bdf9a7163f489bea3478afa6b4b64bfd1843f6b43029bad1e4ec373d5593523ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000f52b1710fbc90a77610129619fea230ed73b0a1de057f041a432280f2d9fbe4808000000000000001276d2601d14eb5ba820644b3c1849607f814837e257e652d6cb6d265299813d08000000000000003e115b3ecc086c4e421d342fe965ef22e0c1af4439acc24c529a2c3509fdd32a0800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f738065508000000000000004716f13fd0f11d710ed1d71cb24027555caf40064d22b23a840f7630ebcfba5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000007182ac634276d21bb01824605ed4ab6ecd273f64438919317735736becc3a45b0800000000000000c408b74a4b76be2b6df841779207b10833083172921745748110d31a4aadca6408000000000000007bd20a0ed81b416ed9be3432a634f261b976a11e577c1004fb0e9164076e264b080000000000000036278f23c5576f152567ca18e7893a23fc2f456dec07533a0249b94a9bdefc5c0800000000000000aa24fb237e6c8132a1cc07230955ed0d296deb3070a5fc553ace5e3eaf93bd4e0800000000000000db8f54140d42a4080959c96bb3778d33d0207a7199be3529434b94099ac4bf5b11000000000000003d0e48185c315b944f4b303fbe66462ff30b9ca9bd5d35753210d821a8e578796ee969d2835a9d9b51fd19bcc044a5a8dd272b14e51dbcc76b99d768a638788b589d56271a60deb9ce835d37603a949417284ff94b152ac1cf4c70f253fad36352b07f6d62b11e4da624086a41426efb248244886a3efdb62678535ffaf4dcb7b684d6751be629a98ae1587ddfffcaed1f3b64aae3d48caa1de369ccef59db3c2b2ded34d8449a9c0bb00de82ac727e4eaf3edebe94d5f87ea6ac65e7eb9fc14814578215bc534baec6815504dbec96da257c6f47fbcd4447df08035baf7e887fe661dbc2b315baacd16204e7c37806f24db3a38b29adb9a5d33a2149b9153fb942a052436331f0e8c9d603e6c92e8dd25813345386e03bc4a3106406835b199f616fcc9e6d13e263e86d4ec7bb58697d3589c1ebed6cb8b7633901d0fa6cac8691b6853814344bf6f1344d00049963ea6098a935fc57c558c2cf104fb6fd2ba806fcefd24f933eda15fa8e8e4d11089c0855374150da529fffbbcba1208d7d2136bf626c7e27928a9a581ddcd37f4e91957c1e9b969966d8c6d171f21e6047729fe2b5c19a85068e051b62fd3e76d2da898378468b5f3508c641e7c65655fc77cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000008c0e8b3e29363915c419485ec5431370b1aac027000000000000000000000000dd28336d144076691998c42b1998c42b3e18f858da84995cb44fa911b44fa911377cef70d1a42873f8d10e1e000000002d34ac6b0000000000000000161e6b1c9ced0a5b000000001e5112215cf25d2ce012ca2600000000000000008c2d5144b904a2728439bb013bfccf64878eaa4a76f174397e15665f41cf293c8f01a574f72eed52525c974b322d384e399952003ea7721eeb92097280fed5769ee320589ee3205880fed576778fff58a27ccb1483d0be4457642214dc24eb742c42c93fc381405cc381405c2c42c93f9403101a1f42fb7424f01146f24da72734483d18315bd7041d3a25081d3a2508315bd7049231b706a55a2067c880044619501c62000000009d2bef6a35e1cd0ce388c14a374a780b73fa413d334b3c16271a6657e2e0fb46022faf3f7513df5fd352a43f109abd0b109abd0bd352a43f9516fc342a3a954394937735cf833a6600000000000000000000000000000000000000000000000000000000000000008c0e8b3ec6c6a149ba7079480000000097eea40a7433304b112b6b24538af90625000000000000003db3be3138069b70cdc6581a000000000000000000000000aa0f79230ebd4967bdf7433bbdf7433beb30650c8ffb694188c8362cec44de49ed436340ad19d51691098d73f9b2ce1a9ed53f6b0000000000000000451e5c6f898a3e3651e10e6d42619927875471018c3b2a6c02b3ad095c9c0c68a758d53101e44f585db9651db4a356147e86510cba28e31bdeafc4516176160010000000000000003e5bfb4f8545352f4dab9e248408996101401a02cecd1d0204b5f162f4d5ff16bede764da233b53e69fc236d46863b73c2f4711d0bad8065a063496262939545100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f00000000000000000000000000000000000000000000008b679b75000000000000000000000000a88d343a0000000000000000000000000000000000000000e3d9663b44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a540000000000000000000000000100000000000000010000002300000000000000ee09b75400000000000000000000000006228e61bfd8bd4500000000000000008770571dbf48e874000000000000000077067f747fc0df1c0000000021752f5300000000000000000000000021752f53977bae4f163c8e6c163c8e6cdbda2a2536f7ea2b0de31b0dc1fc8155f843a72e8890c75200c83a019a6f10282832d7170000000000000000163c8e6c08000000000000000000000000000000e43ca6150000000000000000000000000000000029abbe690800000000000000d0f3fd0ac280ab1a2eec282d1b9be02770f5dc292fe0d74f0ff7a962d0f3fd0a08000000000000000000000000000000f13dfc18977c9f50a991366efeaa59006d42b03f4b2956052200000000000000e896e65cf05bb02b8701621152df750ec6b50a51bafd7a58c9ac8f3029528a702ce9e8307e396d27b2d9be1ff7d119573cb48054f160df50a47c2873e896e65ce896e65ce896e65cad462167ad462167e896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65ce896e65c00000000e896e65c1400000000000000e52450027c31e659d298091a8fbd2c42bd242328129ab120f5a9cc1ec5be096cdb92db728a9c8f4a77160b528a5dc5100000000000000000000000009c97cd434873a253000000003f73e0180000000011000000000000004edf42c54db85c19f0e9e4d6b3331e64e22c138d27e99a9e6766bafcd0346aebf0bf213740cdcff3fbdd6290fbe30dee284d49c1da272457cdbceaf00ead19087f00eb6f58b7c85772238943e31abf36a5549207584ec9e84be7fdf7b3b0e80c1d70657384f69e6442406770712ce41c470ae2a54db1f401d8157d7ef668ec4e0187b7a80afbc618d0fdebafa02e8ee72ba2c434d93f0064d85c05c0076403c124183b1fa50855aed8ce5a4c9045b7bc8ca1b60f339bf1845160753f65be9159bdc5cc0b9e6700bca827a3a778931bf691f2c3f64233a9a2265e01fd7c52def28d6ae29fabc862e57a7c90ad86cb975dacad95948ec2c45ce79c6a3b0cc973d516180e3d49370862ac74baaa6aa1cb67d50596b5ea9832beae2a6523ff9251c3772573168b5f738b5ec14548ae4185eb4c926ede47317b855b943793bf8612d51fe650f78a0ed892ee53325f0848a2191439a6331d7340ed5cdf520b9bfc7c4f37f75ab03eb785df2e8e690e8003e3bf75c0ab759f250a48613bd20b46862654377c932ac4ccc8efdd1594e7429fc24428eca7084f4a8b3c4d239a86c0e25c7035039e56f02bd36f85fb07fee01e423c6e44e056f8a4855de67549741647a6ad0948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000071d5df1864d2422e86f9cf64bfa4301a29275f1134cd23201b115e2f6a32ea0c2752b9387542f918a2f7dd1e1a9f672fdbdcaf779f9b892e6e9e1e6e792dc13ad6af8e0c3e89c62a7ce5b762e0a1903b4d2bf314b5fd7000c998465ef46c8b717213d42d6b216b4f34b54e31210732641873f0257d62c80814ba611e9a1ad452dc6d373531c2485ab997465f6642cf4c9f91ac2b01743308ff04f06a83b63f15476f11526acca803b7b3023687df936316573e6e7870333cdd08eb3fa8ab98225822ff2247a61d309202f902fccabc521485350c367f930268595876bb39f3670fba636ec442c91a7bff0e164a3a8635de6da84c07361c2fc76dfa1d666a5318d65bb2657f21a157eca6ec42b326e06bc491e75d72c76b2d3cd5010c7069301714644846acd377157531da4a60b9172c88aa7845c94cdd0cd6aa160f6e9045388a4b4542cbc8e019c4d309187ac33a44da11e1006ba2186b7a12c622d4c9e7747596205ded37fe20eae550708ca1cc24c81b59413ec61d230f9d305154764d4fbc2c6a34ff8ee046c9f6436e3299953c080000000000000024a3d90ea53d9a6cd0467b6d8647cc174a44db5bc7192b777e72032d3c5ef00c20000000000000006693ab5ca1d8ab706968233da8c86964365b902c37940324d6e8fc127008b6563994173aab85b555bd4e2f3fd487a804d14559500178581e0b8d2c602a7a2971d96c4e4c82af62088e6ef74d13fc91541f69e822b9f20a326a5f8058a9e0e8106f7ce63553e37d3336f42077fbe6334c0d563314eb6baa0cb20c9f2917b335632000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f28180000000000000017d3f7400b7f6b71bf8ad116d3968c5c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dae3bd2726d81ae66a2596f1494f1b634cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a52080000000000000004f72e23e91c223823e04109d70c0162cfa0191b383c534274d9001322e1f649080000000000000019573a388a11a014f23c9f33faf4c97034c3ea12aebb8754b042137789be181908000000000000009ec2a16d3e39827369c81d196c780a76dc8862515bf44d20f39a6059ff4af6560800000000000000e54cdc650e16b907bbe47c1377aceb5936872a23ef0d424869e91c0c3012dd7108000000000000008f90922b6ccf933b61f1c50b6fe1834d7d422d44f7d968226e89590ac20670212800000000000000604651398fa6e20afb8ddd3a3632de0d712b9f0d53a6a75bcb8f29231cfbe2461284a40d0991704b56e6c513253ae354b864fb3d995db1137f48eb6f5f82bf3745d73560af318a6577860d41cbc685619e390503bbf61a6d0cd2eb1c96f75300d6ab2615818f871b4264f6682859875f139e234a1c51696e28acc34a3daf4f3533f49043a1641449532af4280f293b0b3ce21f168a836847120df520ddb40148110000000000000068fc657ebf1797a8bf5032b0a56f0aa62dd2917f7db3b2ecca059ec2be6a81cafe68350abb96d5d52e800b8bced690e34b2995f49e826171118358bf0b3b5b3023f0ded5a643739c952330c2b2ac08edeb68404d3fe5e3718d0946fe12fa4faa7228bbdbe970a0a8533f1edb57f62cf709382533c1a05aaa1ddc3791edc5141ec85372767a5e03ad71b4c8ce24b5c3bab6d89bb55e38df01db11184e97a5f221831f05ce939e82883b8c258dfdf2b67c3510c32e2a49609934598068558d574330d06b9b6276c1072f1d5f0c1539fc10d7b830d9f044b19ec6663bac76a0a3678843c6969e3186e064fe0e8b93ac14b341b0f061b9e7a4516db60b8d1729da1587f271d9476b95c7f701ebfe568d3934767b79d89b6a6b5ca209ea19b91b6d61b8d367b6488a06efaff5d576528b819720a250a286e26284a17ec063525a0197551d68e9da111983476b704dd3d6423436bd36ff27ffb8e07eda6df278ea8a926d9e0dc143524c54a28ae167f337406b7273f2ee15dae686499d2fd5b2de35f23adc46ffef154c825ff95796441a57266a36ef12a93d1c0a5d8cb7b2b0fb063864ea2c9e94666fa74cca6e1f08351a73aab121069e2f114da667d03ff23eed7db769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000001779716ad10e0b1848538c4813163413275d1a16a2c0a92dc74eb5377eb589120800000000000000daa114494c8ae7420c3fe93ab40c1410db793e6e3ac4814c7184b37072e5226708000000000000006023244fe7e9742e9041830fed149976d3b978653e755c69ac33bd705a90d21108000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000df381a571b907d58f3ef814e8cbf872ca51c3757ea877d12c19b6d184b89fd3208000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a2445080000000000000037330a05bba10439c329841aa4861054c5a34e28b0c6e54ab358c80f14efb94c08000000000000009a0e66124b4f221e1d02661458c8ae64e7d6e533e768c33b86e9570d88b2d44f08000000000000001d847b6f000e4e4efd8a8d27cdab0a4e24942e25b551af565f58e0707796666c08000000000000000ffcd406d2990a53924cef5fc115c644115fb123654a09069d456305e55fa90108000000000000008928e73fdbf6404697f71675fffcdc4b98b6a869c6a7f40b70d6144fa6297d5c0800000000000000832b24342597a965e85b591d238cef53a5807b1a169ff62fba101d43c439fa4a1100000000000000affc163123257a2b057bd10211cc52c05c76379a89df62eac51fbc1a62d4bc29521db564a8e499e719414dbb0a60238fd7a0c160bc5754fb4237c53e2053ddf1341a8bde93dc71b0e5c807ca4448bfc8f5366d2f05246656a6d5e4ea05eeb2b8f3c4679b5c2d1fe393b61235cdb2ca96ae4535eda5efe6fc2c9ca45aefee915b13f58e3de53568e1cc3c1ed280cb722dad54e0e27ac73f89bfcd8d693c9ae339dc908f5cde727b2d98e4bcbf66183386c44bf703e7f428a5218429dcd613e657e9670654a5945c3c0e2ba5d752954937ab891a4dcd4cfc375ef4944d2dcd4333af74437ec96319b2c17af369c858bad6401653578f7113d1e04d54f889d341f50db13916b36b00a3de2702ac87e91d9b2518ed847478a707ea94bf143e9190460f88da395e4f46151034b51f73e9616b32db19254899f5120802d63e26a5f918639768d2a34d56d88c039c0fe81fb35edaf972ca08e32f23163444cbe3c32f50aac176f8da53108c8a3a057b98043f929abd7a0ae0a196e18c5ba02a27e13684b016209129442e19e21e50bb50605e8a8a891c4ba21fe26e1189566833fdd8a8fbee66e2a49f0cc41433dc658626864e2b4f41b1b0e0f5dbf9a01a45b7881914eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000474c6b540377cd5dd4f1d94113f14a67972b78760000000000000000000000008837b24187d7e43578512359785123593daf95554394eb32063c7f18063c7f180c1a916955684552f627fb0b00000000e6707166000000000000000062862569d8677e0700000000e53baf4b177f4824718cb4650000000000000000f4de2e284a8afc0cd9e0cb170266ac154f005030bbb39423b7e50c3e898f870d26f2e46073458e0190ac5b0deb057554d2cb7b76eb27d3152d4341110878df4237602f1237602f120878df42801975099ba24d2c353f06191009a439b538af30209a59188a392b6e8a392b6e209a591844a04a15fa55b41ce2c718673d66291042ec285fad97ba25ea1c5f25ea1c5f25ad97ba253fc5e40fcabade551af3a322b6dd2e2100000000dea6ab54c5ee2864bab68f46d545254ad6dba90bb0718b6d3159944d8514676716315c0a8ddd3e219b089b2d719ad703719ad7039b089b2d9351f15cf31afa57b1ba180a906c2a080000000000000000000000000000000000000000000000000000000000000000474c6b549b75c8252aff5f21000000000d4c0377e88c4f023fcb900bc056be422500000000000000acb8835054aa153c4e71853a00000000000000000000000051ccb80a707dcf6d406ace76406ace76dca4975951a7434fae27452c890b9d3eaebf5b6a6042a53d5c48510569bcb23233d99e500000000000000000ffec8073de83ed1fc7c91045c497c5637003dd4f5784c51aefb667238bec78131f00d31daa69b11534fa841b165b270f2b873566cde03626a3851a1c01b71b0210000000000000000ec8bc5941a05061dfd0c8255792e4541fdc406ecd9bb2145f50502fd1ebc34afe5bd917e57f655b88861b5052fad427f934d265c913012677ae69635bfca956100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d00000000000000000000000001000000000000000100000023000000000000005b5f6c45000000000000000000000000c939bf39d92c6c050000000000000000e7a71f71997d4f66000000000000000013e7370bdfd7c84400000000b6ec7822000000000000000000000000b6ec7822c9d3b02da8ab7972a8ab7972c1304d12802e814159b14f6b2d47573a006bf62f1e87a9117d030055f3540c484d4c0d2d0000000000000000a8ab797208000000000000000000000000000000d594eb4500000000000000000000000000000000aba7c5570800000000000000428f46683509e7620db89f662251056d24911a068a8c6449ca777105428f466808000000000000000000000000000000f690de256475285eb6b763457f40202a6c230e46b9b1800a22000000000000008c17cd57cff77a183c398b50b31ef1471303ef73b04b75300f3e950252b2856745650507049ec3300b1c9d09c4e54b6f2d11ca46424796049cd954178c17cd578c17cd578c17cd5753091e3c53091e3c8c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd578c17cd57000000008c17cd571400000000000000ca80ae100b51933e305fd175a672705177139f53e354eb112c366c5af1d97a11c740fc39b099b708e71a140d39c2bb17000000000000000000000000c49304636d88f60300000000c47eee3400000000110000000000000012f12ee7e792e2607159a80c8d4b9f4c34217007367e988153c967e74669c7f845b7a54908d3d7d25b856bd90da27d1d94fe088c9f2015e999c24ae0ed2a511890be01d3459c6a76a9421eb890d4fd496a9660ca7d5975236a244c8ec309cc3e0a76fda3944711849bece02aabf4c1669f7d0071933dd124b8dc69ea8d4f404ec1c319dab3977dbc817c4c4cd2af59dbefcc37c550f708195d5053d3460a847d2fd946d9c47a21907121211331f08459723fccdfab83d894284c1e01d6ae1427a4867df4835ac39353fa7a2ca5dd375843cd0723da8b3895ee426c63974dc41d584bffc2e9fd40deee235e2348b5b2e96d10c73de463fe6cd638ae4c92a85b0b7698103892f292de771c55c22d18e1bf95b7a8281a17888f2384836399352abc535da08d365759608cf064fc790505ebaa3eb4f48e88f83857e4c84240844f7c87247cc1329b8db5dc57c66694f52efec46f6c12b87fbf4fc4efcc9bcde6686390cb546543518b529e1d2b05a3fb3639eb1a8fec333640330e36224d24b446d0507371023c1ca7ad50c17a9f7c0d91edf961ee83bb0a644a69484b125b2a52a41cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000b54b9359719b806f4e6803128ec9c1064aa9bd13a0b47073b8e246534a65b0038ca37a61a8313d18f10ad5399736b7442e728c3735e0c16a0105990da8973d37d5f26b75a57a79485606f464dbaaed5458b4014962cd171473e7942c0f31c30a2fe13a369ebc972d274d852624e6b95f10e886077526a87463ab15541a20ce4e11fddc1741b448316db3813863eece2446821f40126ec949b123de621236cb3f8e27bd3e06cedb1152d0b849ebd6781804ef76196b24880ea301483d83f5741e04f7995e31b1a66b9b213d2feb92310f8f6816216b57de27421ba30d73c37b47f50dc92f2bf1580c3fda0c64ba289b0fdf5a1f255d890b1c523fdc0ec012cc391300e329c4b0452dbdea986585011d6ef32931641136ea1f2c4df13f193f15140eefb3344dba23619a785b219f3d1306ef323d3f1ea5085ada90ba14c7949860c2c0c65435ea0570877c75519a88413dc48a395ad3a295687c42da35b5e5bd58fdcf153ace2e3350a86db95efd8476209669100cbdb95d478154e40eec254b287e40911844ef801f4596e80367486a590800000000000000108f320a0988d31040f0b6382325fb526313ac63c8fb2b18cfeb9c477273a077200000000000000028be00373fcf1160e5b2c05111e95c51a8c4ba14d7dd366e4bff6f28a11fa3055f9fb639614b381d1268503f8a7c597556d0c033e065c165b173924e6977de0d8ac61768d6faa913fb96a9048b6ecb41cd311117df175d6b43f1ec2ce94d274cb82c5805344c2d0bce4800522ff3e264355bad5952e1015faa83d21e72e8f1062000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000004eb88b5dc962d060987bd332e1d86868171864181db2241915699d30842e1a0a080000000000000018985e6d6bc1051f14557e041f933d2976a0b21bdc2bf63157cc5971f209d06e0800000000000000b3a868017e663a2c10a3ec30d1a2b12e004b4411bc6daa4a655407691516e032080000000000000078343c2b7980f077e71ffe0316d214210aa39d258a06e3422957632d735fcd19080000000000000017c44f73989f8958355f473c26ceef776bfbcf6bad6f612f212f3b60c4adfc00280000000000000076c8b200bad19d1fb162ed64387cea14387c0616b72225455f7bce4cc20d7f470f3a3211f6c64a6c22031a734127843c9e6aad5fe28bef49fa59d7052cfcf95ce0cc1d56724820630f5b974c9e050f08486c736097f5860d5f10982b12c144459856882734ee49683110434f2bb8de43b72fd9357cee5227083a1675647a37228cec5202eaaaaa669259103a4dc1da1a0d7d0d361d6f331f66add420f1f6621f11000000000000004afc5418df078cb662a52f393a2773ea5b9f1ed4ae89438794d17b68d01a60687bfe7c8dea13d074e6c71cb60041d5e6b300d9de8b0dc4467bf6fcdadce9cde5e7177f8fe8b5d5ed2917a4ff0b63f5aec8c3fd21fb4f0b6efd20e2101e2b901f10094ff4576e5192c3aa08f7380b7148e9f65211c44a9f07454ab25c08e80841c242d248e01fde57353e0d773c2f2c654c6e1f392cb9c622824b46470b48a2dbac5568d9b2ad986da8cbda6df24f594504615e86ff9c280d71df4d0b9eac7bf38dfb48c574d78d3c0f82076a328a75e69086416e538a4dc09cc666f08d5301267288fd3ca62b6ac9417e7a06f8e387ade658d7a9c24efdf9ade7eaa7a6646752e4b20c076c54aebbfff12726918386c6d14364fe1c9d3f0cef7f760bcc6fa783650a0e028312f61795483e977f5008d1bb01df58f875749f5f9d78901c3aafad5c1c659cac23366f543d24a3f143139fb9c73d089976ee5b93e2dac19043973856bb55758f4109230ff498cf640ef627379827b1bd5cdb4b34b36e36b7e90f3459340cc90ae6dafa1c5768b9827f641f652601bbfacd76fbef6faca6c2c3eaadfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000003494df0c4c48ea2403ecad3afe5c1622e869136dc21ec43b6a2b3712ab0eb64f0800000000000000861e33222af754190e501e5e7f7733106f0d3a6dbf9e91497a3c9545c58de9730800000000000000cec7ad60ab3da6149ff85056f7207d10299a98689b6a52007b5f0e56f09dce200800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000003066952038c0366b9ef8a7597286a672150f7629b46f0d039d6a1b0613becd43080000000000000001646718b9e4dc3e6c447b270f8f3e72e08ef73733d5f964cc3a7301b2014e280800000000000000aded9d4bf38c277223a1e14b1274d405b627e837777493353eaea2203190fd560800000000000000b35d98491b50491bbe4d8b657ce48b1085671a51947e1143a277196b3013fe140800000000000000a7ed7e49f02f343bf87e5776198e9f0442dffe60254c8b3671982511e03c870708000000000000007c264c44be4e360aaa41ae258f4d4f40e856d0387fe7ae5e40d25b74a89cb0221100000000000000641718c3562db0a9bc1e48e10036dd374c4e54c31c92e02b69c64a74374e3efcaba01cbd37b947db091218a9c1aee2a7f9093a25b46baa380b21d2bd93a0ed7f9a3a80590b72be609262d678f659a11e8c55875e94483498446aa205e909bcf3ab634814d948a39af523a7348cf04471b83ee043bbe1a17f6df7262dc6275ca0f4cd825e856b8747ca5d26042a2476a1948c6d5c511f7f930ab09841865605b586c161111ece4b3686445a2e070c133fb8cee5dbdee65f3e2d8440283f598a4a4413abaecb6f93c946dc70cc8ef31a18916c7bc3e6ac2065249e8dd1567d0c1c01b78454ba911eee3cd7cabd02abb8d64997896c817b4c750af671af9ce225a939b7bfd753441de21201039ae2ccd6aa5e084003ed0284141c43a88a63cce0cafcf15c1af778c7c458f94f001870ba1c6a1f579aa03258790f748bb8d8bdfbfefa1c3e6315bc73c3ef80e04d3a41a30a9701fd06ab2fe4d2b48a70a2687a79b8c246d7887394a7948759b92081ff444b3bd7be7539e963e9aa7d595767fabfe39b18f38ef39fe3e771b8f66db57b8f56864725dc2920344eb0ae0f57285b34ed79fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000b70bd318c666404e77b76907bba6201eac81003500000000000000000000000078c08c2391d8e95872119b5f72119b5fc9e1160a8ae15129531d683a531d683ae82217316c4b93273bc2d80c00000000e4b0753e0000000000000000efc11e38fbfdcf30000000008b2b3119fc0b2120be79d71700000000000000006e6f6b2208e3c85b8aedb05a0dd45b2d915a8e1c4bf42c5fd8f87f03880b806ab17bbf4643b1a54dca948f1f5e59850abd33223b3ff7b752e07ea0199bf58e394152a3514152a3519bf58e390c994474491b935cacd1c05d4c8cf0168782740a0d3de20b629e4e16629e4e160d3de20bb6d41344e0b971319b60782d9a99d61a10c8e93796b46c506a9bec0c6a9bec0c96b46c50026be23db7ed006f710843471b82545600000000fd656808f0f46851c72f7454772fd832e1d21608894dc971052d8f19472a144f48f1ca16e1bd84440f553d406967154b6967154b0f553d40b89bdc6a67abd03e5a92e8630004de290000000000000000000000000000000000000000000000000000000000000000b70bd3181dd9f27213ff39430000000060327c365ba5de066f88b240850f144525000000000000003f223c1dac072370c2cd5b4c0000000000000000000000009c7ee218d3ebf73a9b786c269b786c268e880d1cc9e4d55e9a42503b55fda21df1d48f682305232d016b9b7228741d314351b10d00000000000000007d88030eb2aa63697f1d6516c36b9734f31910176564093fc972d445e223ba2c5ae2855bda8c4c4049ce37410deac224cd575b444eb0655db4a4e9104fe9016110000000000000007ed9b853af52bd298f333000bb7d635a8682cd5699d40e4a3a904473bc58861a0116661024c1642cc3a4572a0906b54e8b525e39ded64c6e870c2c3df9b73d37100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000004835e372000000000000000000000000f6672a56000000000000000000000000000000000000000052cdb81c44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000009d28c2060000000000000000000000008c508e04d1e7ee3a00000000000000009a81214dfa597f6d000000000000000082a4e1140a3b0e0200000000aca48e72000000000000000000000000aca48e722d49700f37847e1137847e119633ea065b456a74a870a4041606db16b82fa6253d184e3587d5112c308ac46a9a5bbc0a000000000000000037847e110800000000000000000000000000000016c94630000000000000000000000000000000008dd3fd710800000000000000d604cc48f9dd79229dad8b0b012d4b00be24564bba2be42f79461c61d604cc480800000000000000000000000000000096857b1e3d605d166ee7024f12296d373a48e362f07b45302200000000000000e93deb41fa0beb43cfadb9556f920e6d8a26c228b9522d5e66ce8b27b838516ad4daf260cf0c153049ebd5658a3d25557bcd0e01358ed9315b52bb32e93deb41e93deb41e93deb41a7a2a922a7a2a922e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb41e93deb4100000000e93deb4114000000000000006046ef2f282b6e1d428c2b0a46e5314304590639818f8913bd7ba24a9c37784297e6714bca42a034c28ab43c77ad4d2500000000000000000000000088d693695872232200000000b057235c0000000011000000000000008f6dd18d7d3a42b2dea34e8902a74994fc9bf6bae5b06b08aa72c903892f41af5eeca32141d56b0ed5163d9181197f1baa8fc3325ee4ee9e6d9870113f1792f9bcda7acb00ad5dbd55fd6b92fb7715c66de9034e16f5e5b0984e20a6f9ca5b1e776993bf08cace8d529408e3f961ede7795bca527467418a0dc39bf819a03653e7855d9a0eba1d32341f7d8c96fcefd318ffc9ad1911fb3f7c832e15c24e50497b707475b4e48e0a87a83e0a980f4f7654969c4b18afb27ba7bb455a119118ea9c2dbaa4df7992c4953cfe6a0448c310278ef4d455059ae1fda4a43e5af966f72a2761bea6536c52b9bc44bcc9d1f516e05cb7657e3caa7ac9eaf8586d254ff5577494c9637a0f4bea32f3137ed086812df9c1caf606417cb36a7580b6f111b0109fdc23a8cc5a7e88a7d5fe2215feaf099b688050370a951a0f414a110ba08e02fe029fecdea6315c3254101a3d1889022ac16d1d48241eefe20872ae2e28e9901114925c356c2f78e5b06b501e35b9c1c9ddda765682d00c685cd659a1cec65cc2c3eb97857768ea9f92d066f27fea9a6ca745f7688a8f8b93ccbff6860285f12dacaaf6d4dee4bf2f774528e812fbef524ba65018774d70b86017998b34b310fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000506e1d63761f2f0eb52137305962be051058b83e78e9784d524d546d9c42e45da517bc411e8dae6fb52acf3d59c0595e9cf68974f5d2e629c0c87d1f7dd3fe3f7af1aa4f18993b150a8b83711b846b4666cd587121496a5066839f409c10e806e8f6d53329ed7d58298b400de35e1963c345923185e23d61345ffd12ba367537f7f0fd6d39d946473bcc0368c864a02e29b9bc44c29227325da9cb4ab6844a40718d3f77437944347d0e9e3e8fba21365eb12f5669bf57113fc4bb069834616161ffc70e5d35cd5f87989f57fca08143559a3850e7b13b6d9501cc3bf1d7d85089c90b77e9ed6d6f748d4a5aa60b81028260b3548db10363718b1d452360e56b48cfe00e39a5365b08ee49758e345b6f64989f0da01aca584ba92d15bace211d58541167e1d08f4cfe7af42ea9df9e1836fd461a0bb50c2aad2e732ccf89b9653326e6578db9bc3f0ee63c17fdbb68594521516d25bda5596d520f4fe22eb408933d0a110732275da3e1c46a1371b44d94aef52048ea393e2ff51131e9e79974f9032448fc31d94d0e920403aa1d7a6f080000000000000078454b04c81df64bdfc13715b14c2b2cb425622b81f7d435f5fdce262667586c200000000000000092e6bc5f51821242b6735e756f804b71ab50b05c48ad2e2ee86906189b57586922726e63891f240ef0910e60c52bd320a8bbc24572c7074345c9f510289f3224e34c9d3aced19d28bcc3e81e8a0a273c3821340c0fe0cf13c31f8d686ee00b3184b86e2053a9e9356dc62575cdd3dc6500de733643df951ac4ae310d65e98a422000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000c7518112348ddb3f4af5c372fdf41f6a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d39e5450dcadb7a5b8edbf5563130b002cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e080800000000000000f98f5a3527e5ff194f65b20e27e2d83f61117d74fb0c151662eae907df5d255708000000000000009ad7ac24f0c6f5214f01432b7c2af04df6b44b6785a78b67548dec2bcad2916b08000000000000006225fb25d340f90143751135e6437c3c120ef61b95c56043260dac312e3bcd0708000000000000004ac26e0451b91f3b80ecb137ea6ee86740ae126fdfb06657dc3a4670dd27ba280800000000000000cb2959054c5e1f568f72633f9f4c672b15ed6a01e102904620ca343ae41244672800000000000000246da11e13a77109e0c5ac6eefae0c6a5e860763562d7a3e4735872f6ac1bd2ecd7c911d28222850c8ece505bce3a04fb3589210d7914a5bccdb726030c4bc499b2819315aa1c647c476914a9e1b5c134c269421d1e5fd34e441466afc6f156a6917e231e8595131652f092d33a1db4a6a886f16694e3d4525afd1067e4cf6297c219f047100fa6ac2a07151663334564a528709dfd3e6009982d2084520744d11000000000000000b102b64e8fb29ef4a288248b1c8638235cbf79aeb6d7c4b25cd15c4f79c2a5b42f882ed0856fe42054175937a223d1e61efa2e11b8d6f5c444fb95b0db28c008888d789e35bdf313014564b2a02432b585a2b10249c9666d29e1eeed83e5acff425d66f082771aa39d54d643625cb730423e6b19427ab95d9c2d4b5bc95e7d27ac637233606e843c37d25aa241741bab29774bb3741081256e94b9b065fc4b6a81a1f3559710ad6365464e696cfb8757e21268b1323c9ab0897cc00180ecf9bbc2588c84acc20f8cb32fc40cb64e3c091550915897fc0aee39572b6c1bdb33cbe1a5258da1ac428b0bdd5ed61f7ba7c02f24f9f809ee3a16c8cda04118f23558b84ae542925e520bef8fd446c44b5cf8c09af864f5ebbe7c80a02cda6a415edb93e0d5cdb5e6c7d4fd105b4d5cc2157835eba13ae4f59019bab849f7ada33a7eb7099c3aeed23ea7cbddbcbaa044795f3bfdcdac83f58db61aeea91976dabb3bd2328d403a58e03713bcb1faf1cfb9f6ac7d283b9c21c29f7babc006bd30523e4c1a950208933abc9a08593ac791ae9f2896bf862ad033ced5f802889f1c0d2349bdf9a7163f489bea3478afa6b4b64bfd1843f6b43029bad1e4ec373d5593523ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000009c8868778ab2225f38d3610b3ed6606867f9797615bdc4364a127a50c59c2d660800000000000000b18a74451ff16a043bf40c27b15add206777235e0336ab64447dd11966f9b74d080000000000000029f3d42cc211e53f2d45bc2ad76d6a1e4a21701569a0106cbae20b680cdfea1e0800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f738065508000000000000004716f13fd0f11d710ed1d71cb24027555caf40064d22b23a840f7630ebcfba5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000006fc132515fc47e766119ad7693a2814bf2a2b2777c58d01d2b6c1514be6b93320800000000000000c3f0dd0d9dc04e20dedafa75a305ba0ff089f670b0717e1c209fd80458dfc860080000000000000024004626b27c020e0d19b45dc7d8d16e27540d25d169da6e3fc2b15ef5192f700800000000000000237d7e3c0c46e11cb0503a31fa159830f1e5706734ae4f2c5165a90d44e900430800000000000000012766267cff483a13591e1ecce7dd43d1565c5f168121447dd6686355df45720800000000000000a2f3ae56e5fdbf55f5b4c95b25311d59a0e29f3452041c71f6900e43c23e397611000000000000006f1e1fef85c2aa74bad312de782e3e17b66ca1a70c1fb39587cf77963cede6bafaab6e6d4cfdba65ae474db351a6723bd878673af4e66a492b953df1dcc6fcd45e29c3d45f4b455f5ee08b660339be97c093df355997b8f60d5dff4b7eb2f1eb6b63ad8a1de321b73da7cd243216b44d0e78f8a7883dab6c3f2b3c59874af3ab739e4cb6245da1eaad759e152d896f9229e91a7cfc91c3f97781431ddf1ccd150847e04e978037851030575706a5c785c7f3db5086155f7368db9c9bcc21ecba238839481a998d54f02b2bfc77d7418b0540d91f72f9d93b02a0fb2db2c4384494a27333b8d0e6260dfa39f75de1782803e374e7b4c404ece410c316712daaa90760809cdf4bb18bd835e7cc0d476ea0316369c13ba9eee69b3a59e798ff775cc99819baf393c3ea152d57f9666736ad4cd5898b57873967d6015338d587b4561bf4eb951c4f52a5c4f1fcf5eeadebee21f8a152d8930f3388e6a2fe8ebf5a7372da1232277bec73b18952fdeba970e34c265e7aaea7db16f636109ab2dc3bab136bf626c7e27928a9a581ddcd37f4e91957c1e9b969966d8c6d171f21e6047729fe2b5c19a85068e051b62fd3e76d2da898378468b5f3508c641e7c65655fc77cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000499cfa6ec7db603fe5e785003bf58d70b338cf39000000000000000000000000b46bc46809a0646289aa0b0189aa0b01fad5a651f06d4017144b1e05144b1e052e205d1d884f912317e80600000000009878fc4900000000000000000d19d1548bb3c33200000000988ea342fb487c370e691463000000000000000074bc520bb93e152d07e4144b45d3186131e93e2bb96305090b5456549c1e3a4da92365615bc13971ed788732e5dab4222b113d52485d8009bf240b77299b9a46e3f4b470e3f4b470299b9a46e9d3522b5f359742ec2d132a4db584232b4dad706993f32690b4a03790b4a0376993f3266695830c2c6a3c06e618ad20ce41d44d648896557ab06e544d17b0124d17b0127ab06e54b851b70460b179538905240d5695f84f00000000b0eef1283ae9d1429d0d19629172f32a54d52b4726bafa0631e6342e052a9a2ad2298437911cad01d916fd19c923a774c923a774d916fd195cf1663b6947fc0beddd12050b27e6060000000000000000000000000000000000000000000000000000000000000000499cfa6e71347367c578856b000000002b352c3fa7914c32a086e257f412126025000000000000001b68da5f4940af2ce0a8670b000000000000000000000000df4ccc00b81f6776f1501823f15018235e23971fcba289529473b323feb2be250579a40e97db6a55fc5ae22d067e4119da3f6d0c00000000000000003db716653e764b691fd705698b15406539d4d5512a6ecf5e62430a595268e465b4f59a15f5e6e01031ca310d61502208a016a35eb0145a4dae9db91c161476491000000000000000f1824b19cf432566292bb1255af9191399538057e9fc8d0aae0d061bfb2aa94829c08c46ce5b326d740276203cf0f520f71815063a80fe731a36ab423a5b4905100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a540000000000000000000000000100000000000000010000002300000000000000d7552f500000000000000000000000001f817920f5674504000000000000000022279425ed620d0f0000000000000000ccc5a55d0a818972000000002571c6320000000000000000000000002571c632f0366c18f9b7f512f9b7f5120f335d71d2563f5370d72f2441046a1b53714548a560e36431ac8049d5187f322362c63a0000000000000000f9b7f51208000000000000000000000000000000aa2ace6100000000000000000000000000000000ee61b667080000000000000035d6af67a307a36ff94260137d313739810d900e6713714584ec607535d6af67080000000000000000000000000000000fff13110a41834bf6e14801497e5e382b664311bc904c3e2200000000000000ea61556108f76c6cac852a3885846f15a6e8896d27a39e4ee98dca390504ba3edbd44a384abb59421cc72426ef524a3f695a2e4d4417f727af455861ea615561ea615561ea61556109fbf92709fbf927ea615561ea615561ea615561ea615561ea615561ea615561ea615561ea615561ea615561ea615561ea615561ea61556100000000ea61556114000000000000009f7d0f351e382956ecbfdd56d1f55a34e6357d55ba1b143d2d081a70ef12e606ec1b954c4536eb41add6a66d001beb0700000000000000000000000032a9226508e7fd6f000000008488250a000000001100000000000000d5c458818b9360d33c408c972103bb067183b7e003cf01b597f2c27ee380679f8b48987a37757d801828e4b45bab9d1f695394ba70268ea4427c8e2783a01d039b5fe81ba22cc3029104426dbce17a24aece89102c0c2e97a077293e9ea2a4a6b08ee38210739fa0e8c3437c86100a1c5e39a246cdb8b068da4f82c3f1d3b68341902da8e1716e686d2a2705691b28be845b8d59c52cc6182b6977efcfc0bd53fefe5b4804205f27e4d2f83108f4f70dbec5037a90759d9c861e976e571e8c713d7458e43b106a86ff613706883623606d4542cb9b8f44b44d2db0f30386e67e05af6a165fa9c1bf53a291ba25cfa3d99f3998ee823102427faeefd3709a4d4a22bd005d6e053c4e4d957b89abf1a06e0d0957bb186f6b5933916f625a40adf3210780b25311ef2e5ea206701d771105ae0daa8cf57a9d37306d56dc673aeff56fd486ed3af7f092d0665759eb5e9261d64ba58bc23e9f97224a550152e6ab4ec8591f8e8d0c026ef1ec26654054d30a68fc88c6f69cae619712069277f555f407a3a107e8605542e0c8dd41f4d1ba029effecab2f2aebe3450fbd6d0c64473bb685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000000bc9ab577c66bf3fa6e78f1ad7143d40a9f9f335f129d072b473010b4271481b766b1b214025981215fbe319ea23fa557c8e9e6731615000addaf42a71c76e5e06809e26dd703b51ef79c83f8791a96f9c41c20beb42bc326cd0384402f4cb4638b4465c35ce530d506d4d53b0fdd22a0312ba29e1bb255525d8462e8713944740b01f0f933be669fd8fa51404682f47c0496672fa8f676831ab541f52c26c1f184de80b3077566454e90f2cede27046ab12f03eed756457f5fa954690108748ad32705aca71353d575d4b0ad5be286f80ebc11107c84c3d80ae4e4cd4fe3e2955244561b949fa1c6d12702099023613472c435702da6938b66afe675cf6961dd1a4296eb38dba54c36c885dd5d0001eb00e420831c5ce5a449ad74593ef724686b1bb4b87e1e71070e037448cdd533dd64afd096d1afd1d202fb25b4064b04d110d3960cb2d3c6b1c10c467be523d05cc7a6769894ca910fadf3850953357713bea3232086efa49c9e7d9421348af66ee83f839361f4a548821640dcdc75c1a5faec74ed3d92557abac9e5d156b014d0800000000000000b883715fb2689747dadbf956abdd1d072cf18c0a5c4def3f97b2341714184245200000000000000022290766b41c060ccf8dac0fc7b4b717a270be0a2406b25bbb2ac7451c2a980aeed30e284b93e54c4358fd0e8878ce5e25866047681cbb08d43e6c1ef9030c332de14139267a533c6185a56a9900d96c20ccf1648068604a324be277eea5b522d8f0684ae72ffa5539953c6099066246a942cb0ffb4fb00a037588007fc2d4602000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a52080000000000000028ef474a3328130cbb64285053f67e488e11cf4c474c2b2f22dd000695d82a0008000000000000005425095ebbdf7f01bc97f65ce4c41c15f52a9458f804262cb63b656a0a9765000800000000000000c9d4610a9f7b2961ccf6ee20991e7452ec151100055045299ac58516d9c126700800000000000000e9eb7f30edd06d2890ebe81aef70990fc4ceb80fc2596471e0069e102e4d920508000000000000000749353bf0a6a609303d842ca5354c70c2d44752b2c4190fbf378113bc09c0652800000000000000b1babe539f39772589daa0291c4d072306b7df74f138285ef179f43027e93124c083a631216afe4f6309116280288d64fe6ac921441a226722d40432c8a36c38c1aefc486268ad772ce77f591b9ac3088d1fc50d944904767cc73b1bb012b96a8200b3537b57786d4809ee71a9abb76233357619978be0023a27b6257730ea7502040c244e436b62f894b43013d0ab552c9f190aa83531252ac78a07fd7e0e3611000000000000003f2bd6abd1182215a22df6b43344ffa454a49e7abb16071a53a9287b3653bd95b162cf2c593b1d73faabd796dcc5b7f410df3eb17ef1eca4dad78443aa9a45e39783db16adae6a8669055b36e69fd3be5d6baa9ce4351e77bd57dbc3de1357566cb84039273fac6766ad64e1e8100d071e5bd2127db5a23870e29f96af3573d06f7c3fe1e08e8fe8685bf268968b63a32946dbc53000af6dabe92ad4bb71c6b85fccb6d2c56f745807b8c5b59eedae5b1f090a8578ce1f7706251509980b8766099f07300f909cd0eba3d6eda4135cdc9b976f7f773ff9677a01fdcbbc818c2e66558f14a9bc00d8256a1da860a55897fc5b58aeef998bf545e39ab7d7d37cd7c007885670c62ed7f5b6a0c46df6a1a79a7800145bf049db00d0e67a5cbcbc241879eaa79fb8d6ef70cbc7d186553d47bc4899a1a9b8f888ebf2a7db2ade80c28cf875c86d269257d4610f2d6dcc6feed23ccfc6d2daed58abf6bd954f016b721e376e73dc2729645eb8efc9cd1e08cdef8f746a51c8d6f843ce99e089b0a23766c37c500995582a099e04faaef28090e3285dd359b52f6273d7ced3d0650c346277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000b1030d01a6ce494f6d688560f3be3635cec1d662f358b0201c030f69caf31c290800000000000000fb3fb946c2811c5bb0ff3f2910d6a64269635160c06a342a397d955549534076080000000000000077eb8c3fc980f121dfa7cc02a903803e2eba6426b5bb3635c4af850d62583e1008000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000a931192973dd9c67e3271708edfa8834c90f830c1a863e31365ae21ea775cd4708000000000000007370a83bcbad0334d1c7f261358b59748a7027373a42ff759859f716481a62170800000000000000c834162d5f6a501cf9b8496429ab2f61307635779b67d1241f472b4636b2d1500800000000000000208c1f1d4b363b0343277333f560bf47bee1b45882286a2b14393477239c57220800000000000000eeca46573959b2447fefdc692f896a0f94edf44346f4635b3527223b43b4f2400800000000000000b2e52c14938e80766863661ed601717155c350555b491939bc79c576bad8bd1b11000000000000006420f982e5c462ac6c4286368e14e48c89e22183fc5c3b87390cd60b8cbaa87c46a7f2a220dd04e31b73b598aa150244a676411bc1e3116b4b9caf7cb97df0dae49ef159b85254ddd2c52801098db5dd8c49915f4118d80fdf89ecfcd229f257c86709d8a5fd7791e81455d0aa0656083215c32d638b0f8c51edcf2317263f6c34210cc03ff60b8ea319382a34150d0a552a447c9e31ecba064b9ce1ca9301a1709a1d807ba52353ad8f962d764b54fa6732dca637b6751f1eed02e4c99958c84623028de846b03c5520a80a816a1a4a3e219002168529a3d1dd46126705fa54e112972340e20b1d31584375a3405d201b44a500d01f3ab943e42a127b50b48ff272aab1b69df050222d5afa3a23020c4b77b1d5700d1de8d08652e8ae75b6ae5c40f94b876b922563199c0bcf56fac46ee02e1f5436d1876e2c86830b88b54c72684f1dc7d3e36a65dd8a407cbadff8f6852d0193b9fd545f3a29ce6670e8e5512b449b0d14639a6e9f618e288d2cca44789c8222797280af1bbeec89363661e255b9954a6d6a2917b5ec310a61dfc326604c6bf157e672fa567c034f6785451baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000b1e89112d43b4d5dc53b9402d54ca673e2d2662f00000000000000000000000069b6f7145510b51587009f6387009f63a5a9fc03bee20e2ad0d86e1bd0d86e1b5495d452158e1c1c38e1091b000000008489785600000000000000005f36701e74c74340000000005e28ae0b115fc02a09bdea500000000000000000039d5960dcf89615c921b163034be02b0133863951176e65202b425be8a3d815fe5ce1471570a1420b749132fc22396e35953540bdeade0ac2f35b5ebfbe3b5a5bed636e5bed636ebfbe3b5aba5221667248686599351212dfe6ff64f3df202b9b0fe70db6d6a602b6d6a6029b0fe70dac571c6459212f0753789c288170763a9c184723ed71e35b84fb3b4584fb3b45ed71e35b07230d318c27c73d6a58c602d3a7054100000000c55b706181d51271f1edda0e021385516e11a15b2f6e0271e1d2a14502aa4735616ea160fd88a549618a3b5bf9ac374cf9ac374c618a3b5b86721a043ebcf57157828516d06ab1450000000000000000000000000000000000000000000000000000000000000000b1e8911289ff86746fb21405000000008546e76d7a02dd4789082e37d3cfc0442500000000000000918b6205b62d7c573db956060000000000000000000000005b76f748c6ec072a13c8331b13c8331b61841e6071c37b6eeebdec49f839ae09d42af36121583a207ee0fe46fdc738335a61d4370000000000000000e33eb014cfe4aa71f1a59b273e7c4f1c9463f702c60b630ef9278200ed9f770f56107e39f41364009a0ee755eca0ea6d570ad85ae4ce824fe29da9381c6d177610000000000000006751807324880c297a0bc33804621141d81fb44bd6de0b2e7966950a85906a04cdbbc01a80f77c7044089159409835331e8276560faea057e3d8b67458555273100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c52300000000000000000000000001000000000000000100000023000000000000007e725f0d0000000000000000000000006bb9027357a5523b0000000000000000243d7e26cee7d21f000000000000000066189b011982561700000000d5fe9e1e000000000000000000000000d5fe9e1e3b173a20549990375499903740f29d54e0e3274d3a64e64268892738d23ad8637992931a376eb15edeb2431bd626312a00000000000000005499903708000000000000000000000000000000447c8467000000000000000000000000000000005e68a2680800000000000000a2766209774932427e451a536dffc060ccebc0507b93e051fa51815aa27662090800000000000000000000000000000008ec8d07526c9a08d5366a174b6b074032c2df0487a1e6012200000000000000360ff26978f14069f514fa298158c352cb9d546649ca2f32239d5b310711424e9cabc1697abfcd157d58f80b3b04e209caf2c012965e67019ee5e43f360ff269360ff269360ff269ff345a4fff345a4f360ff269360ff269360ff269360ff269360ff269360ff269360ff269360ff269360ff269360ff269360ff269360ff26900000000360ff2691400000000000000e6d99a222627226420968a5bec6a322bcdd4a7474a292849cfe3a90be814615202a1954182be9d44dc0cfc4e5cf2b85000000000000000000000000037b6384aeae41f0800000000e74d396c000000001100000000000000f238dee293c969b4c9b97bf8727834e4aa91f1ac9a801a609a95a2cdcc7a8e869d2a46aa5960bfbc9ddb9131d8faa57b6b2018c255fae77d7ef8b5f75a088b813481816e7fbef6f8946f4dfab0d921fce86967279f0a7c2d88b81104ecf2542153d134dcb71dcfee9f82586b94e03d81489fa8a16221771a9ebef2355d4d5e5c371c4b8c0b8ff30154a0f901884259a4390db1560d9e5e2dffd75fe43896352b35cc956cbf4a23a3676be78e4e88a751922ac22051795b6e68b1ca8486ae9fa4e0b30b5fe415a06139e53cc6c8d3bf1030796ff7489029ee79994093ab067ff4dcffdcb61f98a4286a3f034012931a6cff9150b4927f46351c88c23841db6ffbe9b6313aea5c90b06e54b7135256b35fb14c526d6190ad68607494d63ce895ab7fa8ab436478b32ec2418b0c510ccde3812f6c61a9c64d07d6754736d3b0427bf2000ca18679b7be9952f9268c9eb56672d3e270cd5bdcc4a34163bbc8f855f96125c727419247d67cd471b48efb833565e8719f47f1fc4c3cd0da0517f7628650c42f196947ac67b984eee2da74a2215eeb427b1160a9b7c2c984ec09796235660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000e480be106c98d36abd4f0e20b6b7193aa4c94701627b155bd4412b07d95e1f2f6dd47040e3f48b6cc330875c908d86031133fe727ef4c70f33fe430ec10a3745676b2e17fc7ce51dd0f3a13529339e1aa57dcd5ca3a9145cad350804f4533d1d8547e00f1fd8d10b74eea7534886894cf91cf35c7ee9bd01b0cb302c5f9d0948a819c703b3a3d20349d3df1533b57517119bb53dbe3a0a30bba71049a4fe5a676b43723fcc8cdc2fb6d465109338c44d668c8a1203251508723e5a5d178ec8680c273a06563f8b265365836182afe662f552d13c0aad2760b0579462f6e88e5e3eba6e5e3cdfaf71b28ef7331fa2835aaccad9024a0f22196f015531d9441775548e9f1eccfa25233fe39539ce0f99444430063bd6ef1639e260cb4a1718fe077f0021156e7fe75573c691591d3ff92b6a82df1237248c5a500aaf7626e7a977aba5b032708d0359f44777562e545d6170ea5843480d7b739efab83ca16be85c6494a239b979f84f19bd843cf6e0473f36dd1262ac926b2cbe48c12951b9935b080579033034d156839ba05e7845a769080000000000000044ab2c34b66353686cadb84ea9d130684866390917127126447517131000ef6220000000000000002949cf07d9532e753583f94dc37b664144f2d01bd556c36fe43c0b594f15491f02283e42b49d2914df882f02429e853d5990ae21b25f350a0a417d1c54d5382ec6d4190b7f6cfc5b2c0d8f55cad6026d7cb36520a9a7370d4343ed4ea0f7573d462243207991630b9590871a7b313d06bd62ad2fdbef1727090d1d45e7ce8e2c2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa1584508000000000000003595ca54af4fc34bafbe6a539305423fba83896a7b16613af51ce646ec03e62a080000000000000000ba496307b1ef425ad3ea1656cfa6369267d95770d8433d657e8134541c2a2d08000000000000005a0dd966962a1561ff33e168d1050f288ef9ad30c8f63143a3ff7a184f1b1b3b08000000000000008db328233009024e1f981726525c363e457da00b7482e1157d7f1b013bf32143080000000000000024097e71343a6b3dfcf32914f9e1a00d3b94f341bb95192689dc472acb47c33528000000000000006ce86869cde7226e53164671f6349a67171d8d62f3b666758f3ef4170a5108347ee9c93461af244898b44529d1b3285404074a023965e075095588106fa4e90efc3baa32fc64006223955636f500052468852910854fe8077e5ac45cafa7f33cf413a911d1576533f0e9c52d59cfa640de6117387768db59cc47231a0da0c03cb39c2a2e0a9f205b2ce61d3e742e7a059d1f324bbabfc34202f2aa072e424a531100000000000000fe9bc671231ad790418a3fb06492efe1c899549a9c1076683311186dfa2fbd295a3e31bf6a94faabb337024c1cb40730c0b7fc7e049f975fdf9b61b832cdb8049763fbfee0114b65302770597aff4a29118faae181e62b526988cb5699abf2fdf5332890bedbee1567df5a72b8105d945a82a4de10d8b1754b84df29a5d24e66a2e7e469e6eb710fb8f7b3167f9e98b7a23d2feb0a5de60fe5596550771d8f7d513c51466ecc35e09039673d40b6c503f5ea4342b44f5e0374797987c2d202ef8b68ce75cd50884a80d2297e71c1cc7dcee06e79820203250b12937bf49467972743e20bc2dd6bd805bd46ee6e252d1fe566dc54d78981071978cc4605feb47defea317c3ee3a8c57a12dd415ff1a2f2547610b5ea6fca9ebecac52d42c330e6bbd506ce00bee95a581df4f71dcbcfba2bf4bff0b60151688b2c0790820955ce3236a1bcddfb13470fa5857ffaab98b083e51de470533ac94bab3ce7f82e9bd6a74101ca27f76e7fff9483d829c6d67c1092dbd07917e34901981b8a9a67039825468a4f83b667b9b2f1ce61bf641a9dd901efa5f1c3d08d81907ff6bb1ab00ed58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000a82aa528c1d2bd42d65d7840f45096366d5f1d1bb78abf49431a844fa4b52650080000000000000032492e517603560438564d1868e8da5099a79364a775141085a9456942fcef2008000000000000003ffe833aa727a52c26f8d90841b9703814b7942e7ddca266d9c0e30d388256240800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a2445080000000000000055f1e70568408804e851e8508ec1d9362380bf6ac9615858e2f2c44718568f1808000000000000005cf8943b95fb220b7ce02565534e186745e05640dce503354cf7273484c732460800000000000000464d783dc78ec85a7d0b324fdc8d0c034f6f163e8033f163a1775926ec039f7408000000000000005b939441d6c69106f7df2a6ae733c06f9b713b47fef7df7557662b2589f1a91f080000000000000005a3742f0d3683010e03e060a85b9137be4de8002685112813f018544223255c0800000000000000923d701bf79a5c4f47b2f95f777e126c82d7fc57a3064c5553cdb34c4905a64911000000000000001e63cbd310e4ba5c44b41ec9826d2d5f90f6271a05fe27563868d38133e396ff1131b6c057872912d8157a97785c3788f1386d5460f5ec742be26d29d664a50e07abf849c4040e2320f3a5c2889c3f6d67501d920a9e7351ff4789287f88781dd54daed0bdc3d0077d11a2efaf3287a8e84472d721fc2d8e6cb970d1b603893dd47c87767489270ce737d672310b09d5c22dba142703103cafde34b90727fbf2236312b0b9ed903b0b3c72c382a6d7ecba717db8a24dfca70eb53416746d72a5a221f3e6b00b9b9d4983fed4d12ad8a2039c3feb33305414b3a016957be480dcdd038bd5ffa0b1e54e4169b35f0fa5a59eb8e89a99cdeab183f46eaa0c04f00bcb2d86fa801b0489a72e2676098ca048ca75ecd7d1a39ff0262ed38958721c8ab44dc1abb711808e9e901582cd8ea85f46bdcb631d07d07904d0e9c23445ebb90e0d534f3a921e30f99d2465bb561ee67a93ba8f4af6afa70c3a84ff1700bdaefdf45b46ac23632773260ab2d0b6cc1afb6d7df7761487b027ddac98969f083a10afa938952f2051f4a7f4f25be37028cd62ff0615d46296fc4a86bb93321aefc3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000c4b74f6cf3fe3e0a300db02f869f050b060adc5b0000000000000000000000000a6288253935d947890ba875890ba87585ba651517e84062c98a281bc98a281b49ee345e246ced188d49b25d000000001742115a000000000000000083777b37867408770000000078ed0d577dc8725dc7e4bd680000000000000000721e252d5fb31854e3032d0c6e684f019d3d35513e48b00bfffff42c695df175614746401590772fc1ee146fdbcfc32039b15d76d79ea574692c2d40f6c1f0010099cc300099cc30f6c1f001df8eda3edc7e03378fc2d51348eae32f80ff4651a0f2b962821ffd77821ffd77a0f2b962f3ab794560aa641a680afb2cf1d28e31e8dad167de93125f4b0a05484b0a0548de93125fc7e1856c58dfe63e65b1dd5e8f053d77000000004255b6651f0d436d05f41b242c701d5d12a8df2a1ba0e00d78354f15b41c2063e2ffdd6237fc12742165495aa36b1443a36b14432165495add79f320a41ead4aaffafa3a6effc9350000000000000000000000000000000000000000000000000000000000000000c4b74f6c8e26527186581c5e000000004f8f116b42648d6345988a2bf64ecc4a25000000000000001941e72a906e6306bf0208590000000000000000000000003dfaf70e2502cb6ae90ea101e90ea1017308191cc75738011277001331988a39bf6b1a3bef395a0d17ed435944e70e3693926c1f0000000000000000fad6d73473ce271f1e3d7904b2c0c70b625aa9488e415946b75c2c2bd60fb360ce99f74eadeafe4cf4b8e92e88b61e22017e0e74b7a11f202368932cc511b2701000000000000000ef82a86437a1c72a800fba2acc6468678907b76e25ad12018ec13d66a7f2aa779346255f1b5a25537862780f5c1805041b78986f6795435cd0d3ea16964f074c100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000497670560000000000000000000000004d88f7255d8f51030000000000000000485ed0279de8d749000000000000000002192e44c776870c00000000c570001c000000000000000000000000c570001cc7892e608e00b66c8e00b66cd53c872e0188234c42c50b58a68289393b7bc956cf99394b6d6b8d2a350c545e458a451600000000000000008e00b66c08000000000000000000000000000000980210670000000000000000000000000000000089b9b47008000000000000000741e56afddf516e9f78a55e9ed15b6d13efec77d615536af6bb77750741e56a080000000000000000000000000000006f0cea0aefaec54b834c9d4fb87a401cb7d5416daca8b45d2200000000000000a596fd6f0377863017dbfd5c6a106740d1af4f7377cad5779a199f4928e48d6dca6ed8339c7e7d5a0d24570b1d1d8c128c0dd544fdc9f772409edd67a596fd6fa596fd6fa596fd6f98d1d76a98d1d76aa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6fa596fd6f00000000a596fd6f140000000000000020904b69a76da760a252744c24ab7e0583580a31f995ff53c1774e6794ab393976afb3415082ef36c68c3734e7faf26300000000000000000000000030d21f11eaf93b3d00000000c8b56a2d000000001100000000000000f9cccc3d802dfde49e29245a84d6d89edab8cd949732685d1201154acaa7f9d2e8d211ee5df191e26608064e37611a3bfb01b02002183ca05d556422c2a6f6a84bfb1f46f40e6f556f304d78591f156bb00534e316707dee16b134591219902dae9242c1c6088e585097f750539551a03e2d831433d1b2413471b26163688ab142be86dd13daf275b9cdb9daf810037449f5794f0f009d8ce1bcd5faa6a9fb15881a630195c5126a60da65043713385e6729c6bcd3ce53124a8bb69d48617a25b0df1038ff4a360e96c48d0a3190d7dc46856d2bce6b866891e3a28ef7f0db9976e08bcc3a82b860a42052402780380ec4c3e5b99e6847513ff68575b99994d456a2c05f1d41ad67acf9327f0d8b5387d038f555ce8da5c6fb5b7897108a5f6ec3676acb4a611e2a0a1fe91667e8b01b786820cfe933f5dd8a6edad937dc560d436d75f0c1f7cae3cfc0279fb844d731ab4e971e6821afc62cd915f6bf7e2fb6c31fee7773b216c326ca1320fd55a787113e6df720ac414b10264bb8b914ee254855666406323fa64e7130e390be2ee38b0588c5c005c05f635834dcccf7874c89cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000004dd3108cfdda02304b34140cdd40631f366cf251e5a245c4e744647052bd33fd4e1fe45424e814b967a225efb99ff55d9fad0619077ba163676fc6c2d7c0e699f6ad80ce87a402b6bc8796f596ff075436e8828de81ed58f7d7b853a4b8af604638ec5e7e0ddc506eb53536f316561a59d27254e7b8fd3f857fe80042590807abc1db1fa2628b2ba0d3834a7b02ea0aac22290f795a3f6f45f0e61ed772f644c7137504851243153052370ff2bf377574dd930dc03d1f76510e01023f79cf313a850f2f1b13f6462366752a8c1eca6f54161a238b06642275a6ca0d5e0c331869ab853261c17216dbc843260f7415314ce89a585d0efe71ed43f53885495b59f0427e1ea465e0134a21e93d2aed956b9506d80c3eb3b44f9c7ace0f6946e5376c98fc4311266c0ac7d962731464e26481134f7402c6d249e94f202223555831fde7d0622297e30855ff0a486ac7676a1c71ba709ab2302b26e4901cee4c6114d4f62474bd1a5030ae4c456d35b5100cf5a1806a0b6a0c3101ed49114b49d74ffa32932f697a827403495672fb28655008000000000000006eb0192d0cd31e257d3a6267f8f8782fc6d2c439dfad694f9947eb474539283020000000000000008ab418368ee58025c27bc86b0df0746e2aa112310faa303e1c02571afcbf8437105b13757e127b3c582b832340abc119da10c11a4e8caf453e3b885751dd331448be4e1882ba5f3d3f7dfd1690154103e06e9f090c87a22b77bc5811df66d85e205f8820c572d8469000bd1dec257e0a056d38133e491f5f443a74445152975f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f08000000000000001285e6067e9b230c93c3331d49ec31724fe17136b32eb17508ec3e0d65b4d4270800000000000000c9cda6459d106a318ee5c41534eddc06ee1cae742d88cf2f9619f4605eab0a0608000000000000004c5e9e501636626231691d46bd77526e77330b287aa48860797bf00d1d3cc30b080000000000000001766b28e0028444b9b274224398c9661cb08f493d39051257414f1d89e74722080000000000000095e54774e7019b076bee396ce315ed3b5e584b5282f5c574295595595d454a19280000000000000032e6a0404d24f56bd97ff11a55a139016853e23b20c7636ea0d0ff5a22128752fc508a104c1dcb1af687053786e1cd737c2f86559fc8ce29bce30a763196bd389949036364f09a17ff0d660b741ac72b0884806788a2de4f2b9e9c436778f7320963b66c2276d91f9104180a03cd0913fbcb0b4e1b5505164c081c23584d16029c70800980a60d4e40983175b7d6bf436cbba1079167372499d43f1b7c8d5a3a1100000000000000df692843a36a3bb5d5b0df3aae959f3bdd3dd568ede3bc0217cf4a0801d9b8cb1387796377fbcdeb34b0beddfad2bd49c91c48ccb265779267e66b829c80250b8b9b81e9a9c8330464ffef23de8fd843f52113e23d312458929715f88dadab349b60328712852428cc9f60e7bfbfaac87f0397c1fc2cee607de73566fadcea45f782fb6f60faa5f4ec0bf68e8bd55639429c8e2244a83d140c810452d437df9fec47bfb590bbfed3a60bec091bcfe50f2fd3afb43ed7fce04076fe605acb5da8f6e73fa665c653b8b693fbc72721d0ae5ecae3e40927c63551e7af9a4f2ac2e9c4028d48b83da8c490bd8b061cc4448cb9874afef779c99e0d2a3b2f65f6810d40cf44707532345fc260d16aadf744b3c1644c9ef2603a65b94ea6bdfeab494e6ba2b595a52b70505d2afd034f1513e0a8aa34992870821f4cdc2a894ce2eb4f9254cf14667849cb40d2e804bb3a1727adaf4acbf2332932521020d8edbf117be62c13af66cd6071fbb56bc0ca0dd88254187abdf84a5b2c6c8e4639485278abcd76f85d69b03c44ed07df983acede766dd51afa7febb6dc44348a7bcd9b49086be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000000c81072573ea2571058ae76533909293194b528d1bc76257c450b3ee484d8370800000000000000b5e950669235262affeb3764a0edea0ef6f16f07df90e13aca9d910ecf0a114908000000000000005525281be16fba406cd38706bc514867c41e9e1b0238ca70d5ca70327a9e846a0800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a24450800000000000000c92cd7326a9fac40214dc90314266329c5496e363e60c96f20a2a225b37fd60008000000000000006172be76204a1b3f531b44509e1dab320d395146edaf836bfe11a422d3f31f3e08000000000000007251d523c2acbb1be5158a46d68c8d2d90483f577baa726b1e133c3ae981070908000000000000001f8cbc6ff658d12c785de22df4f57f5f91a11e244bf91251318b6304dad3571e08000000000000001cc93c54320b37157ada681d2d5c6d28c227496e5814cb127c1a124220e55d6b08000000000000003d156b1b94a95914d7d4a103d44edc5142574e6e86b6f53d2960d3605d04c46711000000000000009a367cc06420e6f1668b0e378f38ead78ed74a91b1b7ad2431da38aab2464a62bc0573d9e0ac9968692246c1e618c737e8096691221b7ceabe643a0479f327db9f1d28707dd5bd796e2ef6f3844dd8be9b5d285033e3be16e5ba5b4801a345394676ddb5bcf358bbb67f37741e54a7a22cf90fe1709ab4a7689921addbb5505a30661836837a4a18ff50d076520b0ecd5664249238d21986e396f55b2556cdbe02eff555fea811df544b3d35edb15a0018e6b2b5169b2c0a94cfc11b8b7d44202d7c375bec0828901fab60c13380d0425364e37a95b5d3c7c1af273de800a04d6cda7bcf26a3256d80a01b295adfc055ee877e59aadf93f7abdd6e6ec533c0fe2eb154b2cd4b02f61d646ff0c3343e0e53c938a86f9b7c4cc2a1c6193f36ddb57f36538cb76ec07584c0ac66258d07707bbec6d12e36e8b5596dbaae7fe1ae57d01b0d55ca5c5c1d385f53d1eae68aa733f12b7d268d5f21096b92886863166252c1deb7e41cd3607e187458ae94e137f5d639b20713034f9eba66f53a8a1e12a10e9410ce18dd7159b0d78c47be97c5ccf90c719a9d51c97be4e79345ac553d9be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000fcab10255487cf1a2c5a9960759ef64a41bec16b0000000000000000000000002a0d0d16dd6aba70489c6820489c68209486125319ad8867940990069409900671c2430be02cb8389f7e2c1600000000e16dc3260000000000000000cc7d531f1f6b792c00000000006aa23a7bf6d73899f75f32000000000000000052bf002906b6db6354fabe0b1c428667512cce400654ef52e58e140c1abdb60f27bed16bbc6c8410d6f96126e4d67346f2d33371b65cd3332102925eb9464f4ea3e09458a3e09458b9464f4efd19e4375313b475a1d3800a0007c824559b306547d1366a9c871c649c871c6447d1366aeb12bb54f7e2b8373ebb037324d0d2152e64181f22d3473f07d8ba1d07d8ba1d22d3473f0e356f12c071d52b117b4b06a32ba61d00000000ccaade5628c8e15024d96b772d819e41d2d7be2e47ba0f03095a782eb128cf77e4891827415a1b320cf2cf6b39bbe72a39bbe72a0cf2cf6b7e23c46485c9d50a6716ef2a0b7e832a0000000000000000000000000000000000000000000000000000000000000000fcab1025270226084461ee7700000000b274862d2ec43b59c795fd3c16661e1a2500000000000000668d6165dd660b3773972631000000000000000000000000fbafae23624f6a4ab04bb511b04bb51178e7fe636a6c37754789cd61431b5629ce409c6b8b25220f85119806b820b0220680c36e0000000000000000fd932608809d841e6ce5a939f0e5d71db6610d62f9606e5a79b5d3319b7e4a1d1aab7929d48cec0135bf153476218b48a7acca05e853ff0a1b63ef4fa723f7291000000000000000860d131c52e9453cfef27f514219321fa54f6827e426ab39da4645676dd582203d21ac62b29955043e9f4f6ec5dcdf03f65b582d8c0bc6386b3657151b4f754d100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000145e6f190000000000000000000000001c61b02afde14b1b0000000000000000ebb2676f900895200000000000000000d4685c200ff3e81c00000000aed1c80d000000000000000000000000aed1c80d823a252e912d0e4b912d0e4b2c523836b543b143ff55c32f06b9810a74808924760e92472e35e91d0b7e8b037dcf9e310000000000000000912d0e4b0800000000000000000000000000000082fed35f00000000000000000000000000000000bf733b310800000000000000faf86f4550e91c16eebf755a4bf62617c79d1a5e6766a01fbd0b9506faf86f4508000000000000000000000000000000b010db58ddef023153ab5f076f328c410b5c6b39f8fea96d2200000000000000d86f2922f666cb4cb426284b268ccd09f069e31afd6a4b2f2fba4046a2f1661ef52c452d67b27e2db41c283f9486d648b90b6576f2b33162c2a28915d86f2922d86f2922d86f2922dce69155dce69155d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f2922d86f292200000000d86f292214000000000000000f17ce0ff2301d585a72953aa7d5552d4e63c06a313ae503f1f3b44f405f2a3be1fb0872330d261cd03f34361371491000000000000000000000000035587125e1bf1d6f000000007d8aef710000000011000000000000007d89d5c4c0728e80a53dfd6398eba9bbd86c27f74be0284a714db1eb14c24d2b42b144736eef8e28ae6037e42f1f174aeaa33822e4e23ad84bc638dfb01af8b5af1dfe94e11d4327f577c9c59bbd48a52826da9f507cb19e5b5a25b6a489a118a11cbbadbcdd433912057d709f32d56a8a4d561f173af636d099d9bc92cfabbadf9cf07d2723d335e4fdfbdf45777a0960003e9b2f6d3f2883ae36d04f0517db593a96c024a704cef3dc49b4200b65894369d49df0af094a1a966f937d99993fcf49104c9b78ead42d39c7f7d70d2347bcff3b75acc394c9ee2376ac8c16576a92344652df09b5358f966a66f3edd25f15fa04506e81ac7f3a97e8ad7685babf89d60f4867b86bef6db3c4acadf63ae20dfed175465ec3307019a0bcc1b74e1dd1b8705fd0512b650635b43748161205346e5b3ff2158b7838c2bd74939dcad312b44cce825edece73842413441866b6517a45c44ddaa330a0a63f4778836c960971412e2e20ce0896910458bbc4b008962d8f1d72c3af92acbf4f94d855b51837dbf6e6c6ddda0a6851e36783b4b29ae3a1ac0d802898dfb997d678761df1e939bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000b677f40f4bd96f7481c7a60f0178ff040d343a24f3e37376b613c61c1b6dbb0202e766699afee93d2afa8a41f7ea842044f9cf0a3f15c8051d13b55db63de6305a701c609f73854c9416601017e0967418b4322f7d863f1eece7be25995799087a3ef451555ddb0135b916210d872b48ab469929da47572d060d1831e4b6ae2727833c58b3ef5566f1961a624dcb264b69053447604f38569ab41e61df1844609409a7028f2107576b92fa110a6071563eb843411b55e86d0cb9df41a9bbee4673ba5c0272bc8e290571b4093025c26ebde97201bc9e1a0fd4c66f265d4f64349fbfbd7284e1cc711218af185103f54644b6ac660c0a7a6e76f8cb051927bf5aca1afe17d5b63c1369601835d5cc0373d7f39f086d5df21895b7df19558be1208f30890398a56d36daf9b176feac095b59bbf80fe0e27143b3b9df2405f9eb31f2d4ad18901f9e0ca82dd76b3685b61ba18ae97341070e28926e3b40123aa33fb39d9560350fb22b2b9f76204cf6526314dac60585aa3c2a68a3fe13b371664bf94f93704de647219a43db0a6952ee2f0800000000000000ae99ea6436ea3e1e2b4e5447a2c9cb58c66ce83d8807b851aed7750a847567262000000000000000107972142362cc6c9dad3750824c1a3a7965022aa36fe62a9423b24441b43e71826bcc4c6e2b385bf2128c234964f91c92a395056c51c60746a0c8510f95c8318ef0a026248b742862764131eafd1f6b771a727275c42428117f096012b0de05c5b2a165032ec0346f1cb80d4245a6255daffe3488ebc52b9e3cc30282d18a3c2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000059d27b089049a9425389250234999f1cdbd6c319e7b777327e54d121f450f44e080000000000000057adc51f638a6a3b84ed5750545ad91eb556652b92923771762a5b0f6768ca580800000000000000968cfc6d86f83f691ccddf1d73f5a75266c31b2fa5de53410f9e8c5cd6557567080000000000000094e74024fca22d6baa79fc5d52c2a468e2556a72e4ff4b75a186231be574ab210800000000000000f99eec3969f4985d2d4ffb1e45734b175c12272a959d5e5797e9865da5afc2682800000000000000bb4a9676920a855f57b6d42dcaee8a1227da8e6e34227a431f655162290f622e0df6b313fcf88119d54c784f46d8b30bd5d5c72c84db153af413c91216712e08148a2a645c432d679c107e053730af3278b6ad76c9ab2f34402de76f8baf76440ddbca63c9652f04312d7171cd94562536ecf356f731c54e91073b69055a8c1746c8a23351c45e1802e57d45d11d2d3397f3ba0167466d1f613e3a40ca7196351100000000000000bad7f689cee504ebc6ad69119b2e2de263006ba3b0f372f9a6a77576da2dab22a14696285f03cc1e1dfd6158bc97731c6ed5b2f50aa081a3c721154565f8a26609c0716702cf026c3b0a95d07cdc9a598ce01d57aee20ff0f10d996f60af4606090ad924a77e13138b95cd801c86800d436b3a615c36795d62551312648b3afd526edbecf1c768e2407e81a0955a8ec3bd06f37efb4a62b105e6a4331d46dfea11974384bf33ce288b8afcc9922ab7f41b803341d1104344f70b66da7a7d59de5153df2c389fffa4d03b4a1b07c09dfb8b17c21e1d3781d2f0c1d8935228eb9eb2ea474511be7cc070c48b7dec33a337960d2a9e8278244cdd6a08a9548a3674c61eb68c4538338dbb76fbbb217edb46824ee189d8a4c54f524923a981c9c5bbc54140f0dd9f0b4b1a333b12c13c063c44abf1cecaa4a975983ccb7a4693547a01a254c4688ad862744317bae7318a284d1364281022513244ebe19504db4948a0d2d0def3c8b6573365d15e18e0e0d145ebe0295b9d14ea050bdc991a0cb8b2e4ce802f8c85e1a5370e905e0339cb9436a8663ef0a40de7471cc421a7e2cb06eebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000009ba96e693657261eb84e1d66a88cd35182758809cf8cfd527e60e34f28f0e96d08000000000000005f3fb61d749cd2752663412a91bd8647aa2a733b3e9fe94eb86c5e772807fb210800000000000000214a1d103001c41976d4b608f4cee707643c20649e44c01b06ec14062ce29a320800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a24450800000000000000ca7a482bf040c7527d94875e7be46b2b5bc46612a7c08d5aaa01e8441b2a3137080000000000000010d62e29787be719e2643611d01916039a475147b0f6e46a8385fb6db5f5f34708000000000000003cbb194cd888df4b2267814a3bdbbc4d3d97a6074103740b844b4b42cf99204b0800000000000000d723e600d4dcfe63b3a62d5706d4374b6636b4501a0f1b4a2202d028e144f112080000000000000033fc320bf85f4f4cc408545e79d7a127cccd2d1d9f2f54273afabb7292c9b259080000000000000095cf881755bd6c3a7758a0422304d61b8cdb38332ef618420231e8757042670e11000000000000004f8a2a9cbed92ec9c9053591349dae50c5440cf2eacd7aacfaa8b1d6ca9fce7dbdff68cad71c771a355f3bfc56917e088353559aa3add9d2c1324ecc64ed68fdd44b1ea91d9dd323b84f991eb4f662eb05cc6b0819d41bb6c2387f07f1be6c648218d8662e20d3f8fa942e211ffeb45fe980824883af66c742d919b3a61c856475dfad880813a3ad60f756650f02988a9cc3f88a2724c8ac984a5e445cc26930f6209cd7f587bb9df9e6acbbc535d87d2d9bb28d64fe29309a3d2d61b7840a0cae8f373b7085261e0ad42947c1218dab37f6270d12b0e4b2487fc5f3b7cfe4be830dbffca3cd541e461339fe9c77c21b9c15e6abdbaa56675be4cd3dcd6ef353828403b77cde68bdfa205ae4d6b88d8a5ae76f8617b5f65ab7de74fa4bb414e2846950fc2d526624e3eb7ccc65692616567e384bf30703161007e9bc7fda74ad89d34329fc35d27672d6480a449f7e1c2a4d818480515d9132d9525c0d8b49afab43447598c94c51065c1c4c2edfdee854c02db7e12beb47de2920e3a3c91543891200d06afa0056d35c46b17a3564c76a9ff8cac2830cd05077253fe25fc825357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000005473df61f1c71b1049330037b8ce907492a6c425000000000000000000000000d66f5e58e3aa402a316efd34316efd3440c72d61d21ec72b735bb108735bb108b99ce00dedb6d90231bf94240000000060f5e8730000000000000000ba99ff3d798b370d00000000a0fe46415fad786e64b17139000000000000000086f5953de2918772e332c61d5e07641eae085c51ae8c201691d085142231bc41c2019b53400c5c00dd46f74b81a3a3287c74bc2a0b98a92d3eb92b4d969c125b6bc8c3016bc8c301969c125b7cbf2976f5ac4641fd71510a8acc436774cb347072ea9764040dbb5b040dbb5b72ea9764b05caf1213ffe61d11aa055a40f75543d3554859154926750f2a4a310f2a4a31154926752980652ec42e221e0f6a4d0dc5835159000000003f4386383b6c482e824a8035c5f81c6a20e94e1ba42be5506510461a1619543219dd404bff84ee4193087148183171761831717693087148c41cfe08b7fc844f33cb035a2570a70a00000000000000000000000000000000000000000000000000000000000000005473df61e362e35f4683240800000000f74ff11fc007b241832d344024209120250000000000000051273a7597ac87228ac81b00000000000000000000000000203f8c2d455a3605059ab333059ab33368e05654d63691048f6d5b136801d36111c5dd2e54bae769bad45e5dc3c8af17d6cce2540000000000000000bb83412ff123141781686b40d02530250f1bdf14fad5c66c848ee25c3ad1ff474db49a257704c277dc9d9548fe2a3d1a8f9ca62ef7af0e72e680d3251f87301b10000000000000002939d667f289443db6f82268e42a5809910e7d23b557af77b27c3b5498aae6061f0aba4550c510339a8a3d0c451ffe3d44256573fe8cdf10c3c1ff1e9d97f6311000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a000000000000000000000000010000000000000001000000230000000000000009784a570000000000000000000000006ba4c00570d11c1300000000000000008bfce7768a9bb75a00000000000000003b86fc63746f8e3700000000c420c775000000000000000000000000c420c775fea6c3617116522171165221cc610155bc14f10134d58d39bf4d8d30f05d244a812d3439cb28723795a47f29699e0742000000000000000071165221080000000000000000000000000000001bc418470000000000000000000000000000000071f1cc240800000000000000e0ec90123f7ac620b088fd10f9a4936af5a9603553bc32074a3d5d3be0ec9012080000000000000000000000000000000863874522e8352a96768743520a87081dcd60387ddb5e5d2200000000000000dea3e606b0722825d64cb60f66d4fb38ef4fe92e9b5a9c06bd6e60240a8d046f1cbcc80b0d11443736b34f41d26624449217c9053536d634beed6f12dea3e606dea3e606dea3e60615805f4015805f40dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e606dea3e60600000000dea3e6061400000000000000d80a5c17b624115044cee53e4a6187280793a16151ddbc2f2d67d7322fa1bd5fbd6aa26f16367a5d84fc1b3c0447453e000000000000000000000000a6ad8d31dad48c230000000070741e35000000001100000000000000cbfab2461b9b9a183db23d5d507e1a4984e8dcfc67b43117a16ba081de6ae2c34d8b0520787b73835097a576b97cf98cb81cde815196a5e76f25dc7792e5920f3aab9437400d2ccd6ce4a162a61f32e0296baac174279faf9205bc1a6cb64e4f10057c295ae309729c53acdb6a9ed05ce200103e16787917b957c82b882dfe07df50af12ef35fb1bb7b8de23784122d37faa01c64789785a406b8e113738997067cb5f8617080efa398309ac208b10a509ad90ba544aa0b70c7d4162915f57caaa126d0f95af2e1e87b17b9abd9d747f118b58f7826df4f948a775abf465122fab951809c691bab84c2dc52d1231f21ee2c1bd5a89fc250bc214aeee96c8e95b11315267bc8c80a1d1a11d84fc2f1ca89c1ca044ae8ef1646e1b520dd77629e1a55224ac95203679b5126950cfdb075a4f4407a1a488c7975d6c1a5298b2771d4bafe092ce1f1fa6d6e86d2b40f212ece284d5b210c50cfdb0db971200159d0202dd9d0b281cdbe147e204514bfd971254dfe8f0284a3ff581e64aed511c54476cfa9e8e28cf68a7a3620e44fcdd365856d8c76b4372ad2a03e631ced40dec5b92b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000015afbb271765db1834a8f245f47525295db59e3bb99c832957a1c80086445c726b02e664f156a8551404ae0720d9e40d81457642a5a25328bde6ad4187166d5109c4340721122c56d232d24ebd283e6d87ac5d477772e26fca09e243cd5ae21ac109881a07f37f1cebfb36546ca7915f84d13408cadf2d139482144ac872b73c8a680617dbde4d39e1c6b100f95f496ca3275f461bcfee58174a0d2938eb58599a42ce755fa66b53b46f3f27b479c86c50de6975f721a903e827a14b8f2d5202ee1fd11caa26487645e9463206d0ba6b3e13376f8bdb0559648239577d1a63482e9219129e0ce8629c201033214607165db78a6ceb22401f2cb6662465125871bcbaaf2860944658d0e6603cb26f8b2236fca540cdcc944d4535292954f985419231ca76c20cf84e548f5e3b8d8e9149ea13b72a76c4883f8b8f745d8e8ab11a139e0d23e6c75c59a9340a5945b390409596ae2c675081396bb720440972553e3a9f316f1d1c5c33030a39514ec6061998000c3f9ff71f4cf6a40e1acecd8223f1c5cc656299f316ea83a30331e9913d08000000000000009fec8c105fee5f3062937b43ab2e747591e6da57a985291643beef47cbf49b462000000000000000353bc32bb90358036996c76d8e7db43fe3c0873ed989151a19d3686a2aa942400c7cbb6ea6ca6e7183f28a22bad90d3397be4f2a3572213c018aa22a503928082590ea0ac64ba044bd0b243d99b70f6e7a47f368f402da6f0f553332c1b75f69d5616268c808eb33e3b1c56abd308169d5cd7b502633b528d4b258697db7fb042000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000f6206568ff20295c45fc990212676232f9b6c81a8ccecf1181557e329ded851a08000000000000009e530c6fe8368559cb5acd4b18cf73437e4f173ed34a4172ca1980682021ac6b0800000000000000522734039cd2d969e6ebf4280787b70dbbc44145ab66763201dd9f5203009c60080000000000000082e0c5581b2ff236c09e730a0f53b012a8ac726cabb9c8349eb9855de1fe096c0800000000000000058206778b157c05e50e062b4c52fc1682f0384c033e44702ccfb01e0f88772228000000000000002378960c51f32925c999722a06e34a3fcc750627f7c3eb779d77de16026efb633d9d6b209300bf4c4d3af91fa3d521619cb00e51e46d885aec627809e13b5a1394542e31648a7310f21ad113a313e0523b61fa2f9cd29e3367a54e5dd6908933e5a0535f15172d712c577303c4fd6c0883182448b4366475f9f8e111f8fa39310fbce42913fdb81cba1a1f079c2d9f513cf0a832d9b36a1fc5d3e15dbcee48391100000000000000ba755a917f70a0a34364e32d003dfdededf351c601d0dec89e44349d29f3a77e58c1c8e15b567c7552b369ae01d48624ddc92c29bb96987bfed3023a239034624bf5e584e25f859ba5d1b0aae4de34451bdfd564fca79ceaad5ff08a49ce29fcbec493971dd1eb8c86107d568b90b9c60dff83741d19cdad1b96ae80a8d00f9b20ce799f6e3f4a108d131fac85f23b26dbfcb3fa20a1fd8daa8abc8d5337f737865fd4f83f79c694ad2a2956fe4fdb51e0a9ce63ee3e5db43541517afea8d35fac167991d0e10182bfa73679bb7b5b0c9b2f61329d70aaa2324dcd49f949c1b7136b77c3b7544483200508cb14b80992e78f64afa6985dfbb5e6fcd600206ef8c4202adad4ac7e814524b2de546e83cbcf26d36bd6146770f1bfd53c33144b5b4b4e1b586728b16317ef048f1ca5c39ecad844b6ba9f1d550c128851852ee1c3e7f954d0e88f9cc35a9d6ba50e8f95c7dc91f1d6e6352475ddab649c63d669cb39647b08b126dd1ddc9485a40caa6da322cc2eb6773baf50b28f464dbb550d02aedf1d44e0831e10d2bd0ee6b1778100a555caf0fd330776ad0f5978ac2c5bfa9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000044f5ea12c5e12c29688ada555d8d28777062040a715be14f5e883c6d4739c21108000000000000004391825363301d172b83d36fa24e2828f6e8dc4d91164335d8cb81355a1e6f3208000000000000009c78b1526bee8c3fb05bdb11e3b1d102f4940f36d3c669585dd105047f49552f0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a244508000000000000007ff4a32dfafe603e50e879053b0765383487865b5e25cb01c2a7da1ea60f57170800000000000000c9b54d5cf56b6f3a22bf6c72d46fff2c4b2caf357440616f93b4c064e79e6f1c0800000000000000639c165794e95c71170f360a7dcf7f34ef89b0227073326bdc445967206ecf4e08000000000000008178fe1ce885653e32277741a5a3113517b92a579084a23bc079d50643464f6408000000000000003843bd3ca3706f53a660db13e22cad56d521b61fba29bf24f0d3292297b024500800000000000000d508df02b24df671daa67701151e067377b0922cffce5f24846c236d1aca795a1100000000000000798d6579577933dd468923786c13b889fa94c9051565439815be2ad89fd06afd0726ca26c5f73520758eb4eb58bbb044ffda3b8279ef7305c93914b218faeeb60ca35d4b8f4e45ad441efda713d4944e260b60fac957706f5b976518e14714901910a123e5f5d9614afa142b679f90ea78be9f96c3499b8d32a5d544ff617d78db3fb920a95eeeb94d6b9ed777a5b398a0460e8a2452cfe2b9ff12aa79432140aed2ca9dc53fd12ec6b1dd7b74221750a76e725cb090d0d2e27c02bf95240af810a943d35377ff45a4a5abf1521e8ec2ffcd76f95f1094e08fb7708106acda4d5be8884d946e8d661e8a134af8b61679cc7b1ba0239eed11bc4031f91580ac820c8df401c18f2ad3a8bcc59b20b159d1dca87e65614810c6b0465ad4157ca7d3a96d21447eb6e97a4f43e576f14f22fddd7abdecafad3eb391380c371d1d6a4e1297f9bebca07c6ef66c3a5885297479bbf1e8378fe94bb1ebf062fec8e3225084c693638e73cafc0959d87e6da56c9303f541fd7734586b8d5a3c886ee4492f3f902a50d324cba91ca87be07be6b5dd8f77a3152ffcb6972a5ec8bece179e790de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000956d3d15875a43598ab16e3d612f9476f8c2a11b000000000000000000000000ac1c89594e3f91168d7203098d720309307e382f607e3420ec80dd02ec80dd02a6bca00793100c062825f64f000000009e5a195d0000000000000000e204ce0112a8901a000000007ab5f22c5ece836cdba24d0d00000000000000004601842c540a226de142752c1f701c121bbac10a6d92c2622db391113d44812818746f1f447ac41336426b47481feb3c67ef0c39ca301a0b50459261bb500a2af7d9f56cf7d9f56cbb500a2acca3b867d6e24915f555900b7855f9500deaf46f468ad906841d2c66841d2c66468ad906a7f69708161d4f2072690d52afafb97314c1b76a6feff371a5a46454a5a464546feff3713d442330d2b474243a8e744acf36203900000000c2a6ad6c1776460e7f9e671d64000101872d8e36ddec260482a99c1a4408ea6dfdaafa49c5a87749b91bf876915ea753915ea753b91bf87665e5010e948bf00fe645c412a0036f3b0000000000000000000000000000000000000000000000000000000000000000956d3d15731a406e5f62372d000000004568226bc09aea6e0ca6d62de6cee05925000000000000002ead592df6119c3e7f9b19420000000000000000000000009889c3284e8538767853bf0e7853bf0e3bfa48038572581abb82c32a2d2679469437cc68e146c3468f2394433d337b3f5ae1c91200000000000000004d06f95e330bfe354263824d371f05201250e96db6d693581c8a9374431ec66c74318d295387c42c2e95e2150f338b6c7c4bfe642760173e7ea9a848da82b27710000000000000005fc08f439294086926380407789a3700085a3443cdf32749fc189534fa655d6c197b2727be3d40574424cf01d6618c03d58ba0062d02b56bb95c36724e9cda00100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c52300000000000000000000000001000000000000000100000023000000000000009c22ad3b000000000000000000000000771ea937e9339e550000000000000000b7e93d1f175d88320000000000000000a7c6663e993ac86b00000000e5ee0c55000000000000000000000000e5ee0c558bb5731b23f03b0f23f03b0f496f5d35340a204d854e7615b9cd52023d27016c38f9cb13bbad1975aceaa02988cd8e4b000000000000000023f03b0f08000000000000000000000000000000cac33c200000000000000000000000000000000028055a3408000000000000001cd8cc2a453ff1280bf68816de2f3514f5b2833f566fbc1fb03b7b381cd8cc2a0800000000000000000000000000000077150e357656e145bdf0b23cf29dbe66ccf48a363c88910d22000000000000006a9fe513fa53395e90b06a704c3f353d5d6c6471e14d394f13879b6fd3ac206accfd385f572c77185ebbea348eb6477403bb5b2a5e9bc7677583d44a6a9fe5136a9fe5136a9fe513687fb626687fb6266a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe5136a9fe513000000006a9fe51314000000000000006e45f32424df5b2f242c52056ef8fc4e4accaa49e3d5b25570c5252de334cc65a0a1e82807377a61d54ca11a5a44f14d000000000000000000000000dcbcb215d119984c000000001c202926000000001100000000000000cd8d1b260c5c28059af3ddb097bb3b9be416f4c2dc92a1e3d0fe39c9ba4b6c0d364d7320c6739e77054e4822d44ec77695c27ae5955125efd0b3e7ea7315f873b0d1c076652af83bcb643882b84de9f6268e26a6ee8e56da5fda3e37374aca8f48484497e6f7e71c295c75338eaa3881bf4d64bf62ca8e54190b25687721d3344d46c81aaea3c2eeabdbee570b9be31c91fdabfbd518bc2406db5fd1883057af25348568d25299b3d4746cdfd053ff5f3b5e1032fc28b4f3979f38e4e9194fa4dc01ce4a3e8ba110a7c41a8553a4708f36cb3bdd77a77ae1f812e47b45a33e39a47b92c9ee2ad2d95a27c4922263cbc77fdac871ecad04d97614a034733c6caca93a338dc28e3f8e6a9ea1933362c4fdedf63457888ebd04b2137d91d6f7e5abc5f3a4998fae82192da22e1d4eddb347150a5eb2cd6b533402c0e63114fe9bf7b35cb48fc139595a82f8f802abec5f4f3c59fb14cbf8c264f8e74982d14259f57498ba2a2a2ed030a423aeed5ffd60aed4542d308f1ded942a550f9077e505e7bd6e623155076c501f66fd38404c5d08fb4107f1636f21ac949c3e8045bf1810502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000a3158850427e175382c9fb70658f472d13fffd36338642170347a11593f7050bddf3be144255ed3720b22428c0114555e46b023c04084800276c165b7b0b53560ea31a19f940d12f82a285595a923b60e6609a74ba6dd8363172692a89e29d5360d0f35213d8234f29c0ae1b239dbf01801d313215544d2afe34fc776907fa3674c1cc673196e63cefe88672284ae22d9d50301b344b273a7e1c245bd553b54d5b58c54f8c633741bb53be6fcb4da16a7d44696e6543df18e0598629b7469e14ce88ce554702d04ebdb8aa5487d11217942d470eb409a0003c842a390788354c616f5151949244523d92712df8f847225e10a01670a464698817345962b0b436b3856328f256bd2a78c1dc50596d646dd3d8ef44554fad493a60855d5fe27c77910f2b3001472601b850174a77a2081acacc446c6daa68699db04832c81e2960985fc01aea03742d88b25f241a57490a2814c12aa8d886661928d5769d89a209961e5731b594e3357891ca7502bac6242d30de6a8b238f04597c2b19a7621b2431d0220c769eed2f9c1ca814e568e008080000000000000072f5ed3bffd6571003975a6749b72368bdb1bd2de89d2d26798b9318b7ef20632000000000000000a3c91405ddd40c41c198d522c880c841ce96393bed302224af88b31dc433603bff3bbb724971250dc480644805978c53836350139976f449abbe154dc26a3c6fef24e0716f83cd677a92023b0353f544a344d44a62611268e62db066c6ea3a653cdc815d62dc3e191e21b263434609042efaad680b265012d37c3753189bf94b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f0800000000000000c6b27641f262520d6744f5437481786133006b611abf8904a34e8f3511301f0e08000000000000006711750a98d3ae0be1bcad2916125d7069864c4e5f698f2a1efe5f296ef18a2808000000000000008933f0455a2f16774e2c8467a3eb1832e4a06e5502927b1185f523072e620f18080000000000000067f44317809ff954ddc5936c1c8eb852a97b2803c28d2c2db3454e0b0426ab610800000000000000f52ac46d027f4e1c173fde343fdd186fba556447818c8239a4792401f4530817280000000000000045b8db543c56ec5250aa6d22f518ea004a422871c963332db8d27e164f855b0934cb793822ba5b1327976a2ec1f62d281220b341d81ff531afda423aba1441385d980546b70c4c3b06a6ff5f09ccaa1b5f4fdc5f5c1030572b634b0d66739e4af8e42b3d98eef1426a08b03296b9343303bcfb6b981fb32280b25e76f95ef80f61212c2a1ffd89593c23a33b415c1b5ed5ec5c389eac5b01d647631ba5950d6e110000000000000034153b89815516c3ad7913e0ac618977112fe955759563fdfe966d1d1bed7fa0e5237fae529d0cdd4fccc90d79868ce6e0f894e54e57c8938c89b244711a2c5e7133c77ac9f98c12fe00894e9319c1f5be629a0ae07211c60b7ae9de7471a09b44987211613a8b9cfa21ba2deba6895ae5f4827580cba4c494c5d89834ca14d0ffb23bd7935afb2a1c3f63bf49bc776dcdb44631f132b68e86d48c2aee3858b6469ee4206ad9e01525578baed6e4dc58272d779b1a6ea69533de588ff6c6f3aeb62142254d2a37485bd3c7ca7f25d3a9af55b64e2df34c3eba97bc0227bb609e73be59f5d6f57a76988b9d89b9dfd7058a1fcf2e66711494db6a7a1ef5c053b1ef7a55135f70c508b4d8864a1bd7ab73f25d1439c3f0f60ccd9ca0b14f672c1de94ca17044c88d8d6332cf3b7323383456b0885625fbb199bfc687d5b99ac1a0398417efb6f5abc34871bd4d5d640f1886234b1b7bc72becf2a2d2ec1f43ec9f2c60e97df2a0ae08c4cf771110fab61053d7e9d0e20f8af24b6162de78a727a2eb143da2eb28a45d5500141fb2a6b66be22e567d555dafb600e617a28bf89518033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000b871b9600cc0bc211d13e86effe88017ac049220becfa53d5a022d6c0738e84f080000000000000091891d295df371353c73860a701d7a6d4e4ba14581746f2f61ab261045d5d60508000000000000002593a94d262beb091b28b844f7c022657e787e44dc87cd0bb6d12b369a15de410800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a244508000000000000007369b242bad33c4c7b77466668fae06383b1bb420e16b00484a33d611a83200f08000000000000003beb09606fb56170f55c7e2429e53b311eb80551dec21a6672f696354464d22f0800000000000000bd31723f6798b752e2b7570de6ce582f02eb75668eef407594160435772767310800000000000000f447191ef74be707165d5f164d677a2cbf5b686b7854203638801965a902f21f08000000000000009ca72315f90a7439e01b1813776adc619dba6c75cc64f9223f6cb81ce2cf556708000000000000008d074b364e4d444dab314821b88920410dc4bd5eee1ecb4eb7f3c84921687f081100000000000000735e35b8921bf4f2a3d34c908a163d723fc5dab7c78f4e75623b6853116421bb8a29a9330409b18c64ae3cc55e641a989d20aae5bb22e4f7b2419f95a11263685b63347d305cd73a4f9bceaf72f4d7558a0e5af20b07c4406399d042c5fdff6e98b9eabb889dde3f609ee20765b34386e125b0cfd0e54beda5e9107ab36fe3a13fef413c4520b4f04459893946735809f6cc967162f76619dd1921b730d2dc2b1138855e73ca451d012ffbd100cbf9267271feb27e759451460acd4000963ac02b7ed91b0b3ae8caaa4ae69d6d70f36d314bdaf60e7343b23b81f11dc3776189cc5043d821fcdcdc61a6f21146b5bfa48534f214bd3f76f7aa7e0102b9fa276be071812b8ff948576e49c40d33ec247d00f9cd6bd7941ba78d0c5fefbc545097fe4fbd7a45720f491687c4836ffeaa64d4d8b597a84d85b15c55448fbe7ad8d2b3bf5a120179af570fe8a87baf180d4e669af7d6895fe3310c6919f642961ecf2eac28dcb170ad354b1d82f1a23eac84f73e66faaa4cf67e9bdd394730185acc27258e821c8f34f141464835c05ef8b4d75c52b32b7d8412792c5b07052eebd265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000fe563e0707044e3d87a5eb2cb0d53b3d1bb42d3f000000000000000000000000ec24cd5bda9b573ae6bca121e6bca1219c98fd165012db1fcb9f122fcb9f122f09efe85ccd18711ef6bcc24200000000dfc8e56d00000000000000004e807a57720dea01000000006f0dcf56f71d73314a9d422400000000000000006a15432e4b817020e6274f66cb1fac1b3b267b4804a9c170ea530b25a0d0fb0ea8ed8f1ef3d9642e7af924602b44a56fa7d5df77d37f8f17ac2f9f69a5deae491edd8a0e1edd8a0ea5deae4903c557566f43b7432ca39437ae27e352a88dd464fcd92f08381f940b381f940bfcd92f0841a8c53c71c4a22d3099394243c4395e7887a91535e78e592c8dfe472c8dfe4735e78e591554a47128e3f80acc5aa434665929560000000088f71a256f779759242fa276a785f71224933349b3a8df0f23d1c132b6b07a1de7c8b816d763835728f920344308676d4308676d28f92034db39a6504659264b0ae0c24d94b3782a0000000000000000000000000000000000000000000000000000000000000000fe563e07bba0f0493bb1785a00000000d10696452097e761df220e2da382bf152500000000000000d37d8c54b0aad00269bcc4390000000000000000000000006231383ca598b270f0c0e76af0c0e76ab6a9725527653f2096e2ca70acd59d2bd525850914cae26d688b6c14ced2444b4bda846e00000000000000004e06eb634e5f1c1d4b5d4f779178701d3252fd0da0f2a1265a4c1228bdccfa0860ad2456a010e524822705173afaf610211d9f36cb3b2c6d252aa9300fa109141000000000000000fb8e2b71ff74ae6e41098066aeb0ea1ba79f6f4d55d0a8306f916624dcc91b5d77163c53429a445a385be3657a6baf2b7a13d32e5d0d242a6090415f6b9a3374100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000ccf48e3f000000000000000000000000ebc928345420f75b0000000000000000babfa06cc62f23670000000000000000ba55d9737592201c00000000ccc7d557000000000000000000000000ccc7d557851daf53faafcf6ffaafcf6fe162ff00853a613085c8096aa2b8744369d062008abb5546bc2a14465dd5a1132ebb40300000000000000000faafcf6f08000000000000000000000000000000f7c6170b00000000000000000000000000000000c0793c25080000000000000047d14a0d0d1cf84a3e562d4c14df2e377c13fc197e6b051cb047167747d14a0d0800000000000000000000000000000012402d48492b7959970c213980e71970bdf1c9263025b535220000000000000083286d585dd35b0b5c1d8d3139cfef0a8b5fab4391070d5f084151637ecabb23ba74125834bb9963d3f1c651886cf938f4b6692d34058f1bb3d3524f83286d5883286d5883286d5864b0741264b0741283286d5883286d5883286d5883286d5883286d5883286d5883286d5883286d5883286d5883286d5883286d5883286d580000000083286d581400000000000000b701102c051b6a2d194bb82da3d1c12b8b86097645160b6032bd394ac8c4ca6379dcb038f120de05a7d16b2db84f006200000000000000000000000072812a30791eb14d0000000031a57b46000000001100000000000000996c6fa9fbc8910cc0584cf23f90d9de968d75e8cdb4c8290238fc35296fdee8856e5b6e7068028b84c364d1bc996bcc7559a51d96804cecd26c99299aa86f6b54438168a2cb32a9fe973e69d9bd639c6c02b34d44535c38d1a274578ead0c583c555ca28909c38f7d68fc2c4207f3fd74045380b7999cc32c3aee7250188d423bf375428a38eb46f227de142f1e0c6da8a10019ee677095f39060505593a21a3645b5df74d6744eba2e42d53d9a2e492c7220066f4d9b9a4a7c4c6274fe70270b777c0538da15fd320b17c69c69362bc027f0cfb6de838ea65af208bde4dd80b32af3f46c5bbce394076576cf28174290c4af9f5f21adf6f1e71a86654de9a8e3254c30c6db919c6328186d51befd0027a950c7e66596c08e4a82b705178f1098a151f436b8954155427b707ceb85fb89d2fa19049057a24d4c2ba62353b9c45f73cef3d84428f582f6b009d4a3dc5551a279fb4035ba571ca7eb92458d764617a2103d303b811cd76c23c239496d04077f9b7f93ec2147e72fe4705526c1da607c4bded3c28e346447f78258bc8049eea39df510c671ee2d7ad1e32e9b55cd502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000007a2cb8026a299c70fe7357352031bd6687ef575f93b1433572aa4274db957666162ac8166ac8e95f7250f76eb2a76118361bee186b977a5d71b9a418dbfb8732bcaccb140daa2d4b71362532b09d9f0902b45905ddf65c425034e03dc20e9830f20749307dbe8165bbe7fa74eb3a9c04e74046306d96507210f9415ff4d61d0549542d27f80b33541204fa765ea0b142c73d97673b71bf12b0eeef3dfbb54a30602daf28afc4bf40b24ed3549100af34db5f8a3d3378ac4fd545ec5cfeed562c785a8c022d461c136196665a1aea09055ab41112234d88642910f557d992a606c34b4e5a56dabb5c37258d51605ff24db973c83bb0ed53093246fd5bb3085350d2620c2678454b55498f930ca6c6b5190c1166406cc0aa253e7f6324c668a032677f9a33eee301427378ed1909a23f37b8c59d597cae5a2178a1f215486d1d14952ee21c80acb713425eba3068db3a595ee3735b9622685771ac3c46b7840744d42b981837d673596aa89a5078f9070224e59c037c6aca1d73aef55e9809120bce38120290ff316731b8e570828aee360800000000000000865ac2407be8982c6fe1452add90f73cbeb8a7453e15880f09e4217658ebb21a20000000000000007b99e956a9b3b5538195305fca3ec3626dc100745b78615ee892340a8e8df14013398a65a27d9502fdc50358fb8e8a101fcc95490ab4a72004a4f261e7d17132fc38e1103067782e44585133875b8b6c9f5c995a52d1fb5a0e1c090a554be6459938e5506e264947c201eb147fa359395e54e710e0cbd7568d21b9153420061f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f08000000000000003f64611f755e9255ede29a06f8b0fa4f61844d6ff0451643ceaff84852ddc24e080000000000000018c8ec51ff985b309af4336ff1c1f3370caf2565bbf41e27e54bee5db198b8110800000000000000886a0f5fdffeec572f347b6d5c2fea066d59a87328353a1e9286f454f22cf3080800000000000000843bc253e02dfe064c5146102c846d566cd8503c9a2e3761d09f466ba0e05b2b0800000000000000b92cb30964598d6db3bae64c8a77050dc7559e0beef8fc36ec59a55e83768e502800000000000000d8f9023121f5fe17a440cf0f6771eb679f424711ecf7c036ce61ad45b8f7ef4602de196088f2fa5a0cf68e72d022fc0fb6b0454bc5e0721dedb300284562e5756534134b472ee41d4de07f5b1b4a7d165819f33de0bc0319901543246b8fe324eb6f3204a5061b3dbaffa24c4dd9216607bdde3d1916c91c5a45a219009f873ba866bd3ad9dfaa58ccb1bc05c8b4764e625ac23d81b1576913799e3746bb3e311100000000000000391825f635f863a4a72828ed24c79cb613dc4f255e1f280ed70c49156dc0389ec1820a1cbe849a31f6757af37a6a4560ecc446d6c3c19b572470e7402b4adbeda94275778d3b70c33cb4607854899c853c3a134e471b18b3a60752a491c6622bb084793a5ed59974577444cf59f1d12f5828c7d1fec56032cc9b645888f9b630bc3395a985341d11d738c95f46139c65a12f1b90b988c3791e3841423b0cc9a2e2f2ea079b6503cf492fa9d9d199ab916bad391b21af5a1673c120780e54461b1b901eb16ed96a1e4c78055cf35b1398a2b4fb675f6a8cb52385c9168315d537c7c4815329ca5a38f5f3003f7564b4fd2f8cffa44a6a38aae5b4218d8ed79ce4687118a7d6ef8a2fff3ab03ffa31599517d5124e4fb5c0ee2cec259cc1aa1ce3c1d0b519901a882a332831f1b50a281e5c7f11d1a53d7137e444a18f9cbaa45b993d5ed8b89839de0e8eb8d80e153a7284a2178a25194cd29dfe61abca07e72d6719b9bdc08070a412767240706888fed02eb1157e54e1db2dc5e5164e859115fb666bf2aa2d82666beada18edd68b4bff23dd5ac4df1cf0c907dc80d1a680e5033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000030829c2bc05866534ef8993ac2d0260a18d9e30327fc592a912c314918104d5b08000000000000007b31596b4aa5296e9208ac3c7238016be886bb62b6fdf4187b27a52d9c1e694a08000000000000007a298600782f041f1f7d9750349ae15d448f5710f6358c46b29ca340c2d36c050800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a244508000000000000007166e65df8636141e3404771f00bd8639573775015b49568ae1c5d42a078da6b0800000000000000be558809b78e9210e33f7924cc1c736769f9b1098129f713e8270e6151260d0f0800000000000000443baa29ccba533890ffc41cf17a991037705d4bb3f3a8271e86f425b29a510d0800000000000000d3ac5a03d2061a6a1fa4f92e13886d5a23c257112b4c5a131e71a7178b5b244a0800000000000000ff3f5e4219845c135abd485d3d44f35c66c57032a35ce611cc1ad5422eceee0808000000000000009c5fbf68e0ed445b6acb155658148f0533edaa35576fba1fb4da2b00cbfd68211100000000000000d62d58b55937cbe2001cd4343b64f3f3b409be0d266bc718d906808a052e5e4fb7b71c3ee50726956551dd7adc5ee6a8ef5b68656c2b96ff2ea82426e02666142b23dab9d624819b6d5abd1bd8d6dda052903e85d9b0d2723ec4d4b7c84ce2d9746155e14ab59acd863102c9ad87dd9a6b4341ca2b7a13401bd15ebe4141b73c86e65fa2938c72bb2e4d4bd235e4ec076ec25aab64896ccae54b6c543bd78bf437e636fd809925528593943d4972e1039aac16b7d9b122e449dddc0eff7c42fb899722e26f54c2d0c2534a125eb55fae3214dc024844ac59edc039391d42ac6ed8fe3a30c31dcdf15b22671464b5607fac26519b8dc3170a000d7ce8dd58f757323683b23190ce4ec81e9e3fce0b8fe38ca9730d97d511065bdd88a3b632f2015fcea1331e17bc3ff7c56a0aa7af4ec8428268f76f8a676cf6c171e47bafe5b9bfe1d3f7aa3b4e2cbc0db41bfcd7527d8af512d6383854a9f5cd2629448fbf744d9a0a3a0504dbb91245e0557c57e6cb69fe5fd42df57f1310bc1813c30141b75cea21bcf8cb7afb63f81b96453a1ee1e8f0a8f74717e060d3ca26b9b080863265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000005b214374636a60631f4e01293599a0410145aa750000000000000000000000004af8725db700a91cb3b36f01b3b36f01dc222c5665c15073be3a6242be3a6242da907d4c4d33683b04f3e36400000000cd77296a000000000000000045c8905a2baaf21100000000f9b5775ab7af22091e3f06080000000000000000551662135ee6bc1eeb0c601ae287c033512a0015a7debc03f3a26115d68aa10c7c8c061365435463b477524fcca9250a8698e26e7b27a413fd640b3fd3cf8e364558386845583868d3cf8e363dd9752fb6935d15b4734860ed916f1c3678740ebc8a651471ebbf5371ebbf53bc8a6514e02ba358676598115c199f13f12fa307311bdd4ab5cc973cb0971465b0971465b5cc973c273de90122739526fef54d728b2caa6e00000000b1c9094db0998b31aef1ed0e347fe742bc5eb43d05314f48aa909e0c6eb9730ee07068187b431b2dbffad9738a4a6b068a4a6b06bffad9732219a1182ffccf34d636e2447c93061600000000000000000000000000000000000000000000000000000000000000005b214374fffe4f4089ecf7020000000064e1b6048a6cd713ab3cc8494ae1912525000000000000007fb94072004d586fa0b0ae480000000000000000000000000c35df1861566c7124c65f2224c65f2275f9c85c20c84770887b5430509565025e69a95102bc7e55f64a95647de5db63cb056f3a0000000000000000eb6d212c7903b620f2b95812c569e8716d20b732e6dc505ee2a7c704f5ca9c025b13ad0dbece0270e2dac10f1a26585006dbc947f74836050aa7671b636a7b0a1000000000000000088082275666f74dab47ee3bb066616b227d3240aa45c463dca5381a0cb34f052dcfe159f3203e011cd8223473eeaf1c33c32818d7bc91473e9a5c1cb1978e6b1000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f00000000000000000000000000000000000000000000006432a951000000000000000000000000cbe53e3d0000000000000000000000000000000000000000994c6a144400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000454dc1060000000000000000000000003da60a3707793d4900000000000000004ee71b4802c5052900000000000000008e5e4918861fbe3200000000a23c0108000000000000000000000000a23c0108309b4a20b6ba0853b6ba08531b9dd608ce55f166fbaf3a1059131d2f58d16d345a7a985ee5ea362179239277716d474c0000000000000000b6ba0853080000000000000000000000000000003c2b6466000000000000000000000000000000008bdcfd1308000000000000002e369344af089213fe13c25808616c57eb85e62b57450c4c850e4d552e369344080000000000000000000000000000003f8f771345f6cf4e7f84bc0e04b1e91d39c6795a879cc50d2200000000000000aeb7b347801e9b45172da3539c05893042bc262faa750b2acad1c4669775d309a994bc6a32dd64521cd6283f5d2d2e13dd6491034f43b73836a3884caeb7b347aeb7b347aeb7b347d72e8c3dd72e8c3daeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b347aeb7b34700000000aeb7b3471400000000000000b76b4a2b3c663e3d72db956c82f6f273101b5d078737663b539fcd724fd07f2459fa7f00f2566165e01caa67d917533b00000000000000000000000008a5ed1bb88b9c50000000002f95f61100000000110000000000000088bd58076ccaf750608099174b377dc00ceb49acaa997377affe034c17b2332a8588e502bbc86ae989268f045b46556a3b32a3877281dfc6c07df10f03fddc1d3beeee3761efb51d78f62794b7763bd8dd21521801aefee432570812aa9e2c3a3e6d99a7ba0cb688ada5640ab68409a0091263bb97fea786287b1f2b96a409d7850581d6fd291ae8dd7c0bb463a9bff6378f32c139d02effa17c078963f9a458c9924bc1174aeb96c6d4afc152db4913cd4b3b6e0826da71144c567f9e1b14bd2b9672108f5133c1d37ce6279f7b62eadaa465ff9650fd252ddc0e4b045ebf9be69dca653a9d9a8a74eeb80b2b11e65c09733244036bfcf77b20723adbf8047997298c889728292259cf3ba147b755e84bfa9d3c90438ef6138e2af228cbe5d7d37e423d6fdf3a1003603db9adf22d9eb113f3dc733c8fb26744b8746016e5d5bdb1b5d899b2885fe47b5c50f764167940d215b0297603fadd0fd442153ca1d876f83e7f52de564c2e3d810549b4329726d883714c6309ea97ab69fafbc591464e9631b0bc7eec6725a0d9121136477374b46018d641fda0e66163b7999b677ed803b513ecb49861f2e3d606984756a08011551ea6342eae4d2498523021ea209cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000009fbaaf3c1c8c0270f8bb8a069b8e671b9ac214605b83ad0cc09e4013ce5add6563700a33dc8fed384e6e941c52685545a6f0744d0096244cc8e10f2c691278143bbdef5f6d738e1a211cfd71644aff3207ab7633f688c500bc2aba7708d1ab6fd544985a076ead059b40e71609ee5525b1af6e288258661dd896d36520ad3e36f786345f3cee0356f657e545a98fdf66b127284b99c021577b7844767b4e4d6021837a5fb9f04833986c882b29e483486a93b53ddc8a734bc1307112b797aa147db08b420d1b541b555e8f1bb3766a280ef9df1972604871d9a47f0762d29116c77bc163b0d8bf71c9833f325586436227522f2df0d3324d0970c55277e45c5c311ba85cd42b5068ba2dd71240e3752cd8349c7586c55f06b6d1af264e17b35946fa18543da7296be8b51714a07bdd3ffd5a5a6b2dde2214a7adec5829e6982886fc7933a820d56441bfb9331ffeb631d6e27f557434391275566813f0c8e4004a28e5493f6c08475fab91575a569d23c5763d2b942551597b8a4473d485871f1c53fd42e7d8f40b58b40400bbd73b1f08000000000000001f602824b044bb03d805be38721a504642828a29f9440b354f5b9f67080e0622200000000000000064097e00653d486be6f6123bd3a8724dca5ad6723276de117b9e6c4c5176816ef05bb76d1d7f241e27a79923bc35da59a6bb6a5f4b9ed0116365195e9d86d1712dea067366a4ba462daf461cf229e80b4c18156191fc6c491bdf8b37de86a94a5f10843494588213a984836181aa5d7738f1780e97b3a37365e696482736e2202000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b6732545180000000000000047561044fc3e4b36b9a6564998b9733d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2477bf71dad0e83af3225223ba35fe05cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b08000000000000009adaf75bfe5d91268fa57a31cbe6d15e16963844dd75282f97cb8c380661ad2008000000000000000d001029ecd71e12af912f2a26f2a10261cb170730cdaf5f2a574b1bf39e4c2a0800000000000000a73518387567254322221054653e0a277d0bbf344cf44a47336c37619797d8510800000000000000e0d27c61db7413199c99a25bac6eae23e47c51730b5d900fb1cfc35d2bbe2b410800000000000000686dc525800c2852fa56320b2f0a7d17b0370074504e803fa111bb671fdb4e3b280000000000000059a1c938711db944a0fa6e5e43d4b05e3eb93b4fe5bf3e1ae5424f1f99a0fc12dd34014d87097127b73e4d0bd07a3e01058a690bd7da8e6959143f141bd3fb54250f97079ed401118305fd1466e29956326e1b10a6e5241f97190036fe5d2848d590aa3037dc864b8f686b3516ffdf46544e500302f1b9267d1f2432d023c40c42259727163a37068a8c75738f2f2f0c07eb1406fd4f613ad2a2825f4d1e1d411100000000000000a480d32ff55bde391524d97b50c8a0a836aa705ededaa2b978af3809e8138884b82a303741d994beba63c363420484cfc88d885f4d38e0b5655f9f420e52df5af6ab4b278073c0f45e5bef75d30b605844bc478192fe4bbea1bc2fa4d15e8acbbd2cea48014cf2343a6f53fc17a3c7b65f4ffc4b158e0698d663a570d6c53aecabf6ec07d3647c0b62a7fab6a2b9321c11b8864e1e816a6888e28474648120f045abc499fb3ebb399fe96fa1e560f061541fda0eb02f6e1bb7ae4ed52c5a8521f02e97a62092a358648e9c073962201a1856c8114ed03c1d01c3228363d176c4bd1928d647ee2c7ec6438bfc0acba9a7669a783880b4866e425422bc086013ea995993d402d5c5e3f72cf88c99f2256cd4acf8db38874655abc79eb55edad38cf136b45d7009e4c745a3cc83f71dd95163f900b14cb441dc08778b2269169a54c388fbac686a240e63bfe3713f32719890e5cd6482171cd6b19726b1ddb8d1e7b7081c67dffab7ec1cc83d27ca21421103b462401a0d0eb66bbf3600513a39a1e5aaeefa41cd510c0fa92e68dd0edb1bd199728988fa771f64df93833e251cbe035cf06dc6760b30fb2cb016e87464f8f06f53be4fd14a8218d0d02881026168ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000046269c7793122c23e544bb715bd1d76d6914c5339925c4181ac22905d312ac170800000000000000bd3e3503463fc304663cce14524964233ea84d2b75b71945954d09519d89b91d08000000000000007adcba14b0ea291019ef8c2252f637054240f648584a7767e04e6c3128fbd01608000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e7050800000000000000c108a467564d25100300d842656c5065ae71de195122052a17d1f103110324510800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000b0552d03fd20f62efd9f4b5574aee571dfa6bb2d1dd7070fec19561bcab8fa5d080000000000000051116e6be89a6c135dd89b5a28a1a71a28b75f380e082c41421a6446a271bb660800000000000000bfddb82cb9c3312e4b9b1f5a41eb884fe1065114f08ba35d8e0b2d31d614a6440800000000000000ff473e5df174d7151a1b4f701a29ed66702c0e2c4b25bb4ba11fbb539164433608000000000000006be5d4143b72fe65d9091748e3154b0c3d2b6a156bab9f68d0ce383bfc34812b0800000000000000df19d85c765446169af6a75cbe56924043d44a070e566c36d5c3602181ff54271100000000000000fe6ca77db8cd953d703f987291a1073a206434b1f0ae35e2e8d386e30266d2b44c171b5c9207434eb27b6a89eacb215e7fef166cdf66b0730c5c7897fd77501ed44bdd7f174e0e542c89b91b52af43847cf0d92b32dfb05f5bf974983090f6e95963c62d03a2f668c344818775b65b636e0a708fc34e59b30d6c8f21a8e2646ad271261994bd25f745c43d9debb88893b248a9158122f704988e9f43fe3d3d8e69fce2332866d809cdd778839d1013640c031b2d02bc3cf18c2b8a3ebdcb13eaa37b0443fc764669ff3ce9194c6752eff2407c6e4540f0c30ba54b6d28f1b2a2dc8dbf22d2ea4ec01909f2bd376094bb6720dd365971d845efcc4878772d1097f756818d7687addca85fce1bcb3591379c6492e405793a72a9123d4fbb7e5ee445972afb864dd42212a1fd8e562d04586b1469b164fab1e12f7593d1d9771fede1336bcc68fa39f15023f3c67d8abb2db40fd833dcd6d3acf1b024b565df3e9e3afd2f2189b1363f7c4f7f2b2e03e302c44caaf67655bebefaeecbcb03ec40a4809b33c0ec9049cf47f38bddb8afcb5605b63ea9c4087705f05b38366de4f77aa2688094ef144b1676ff5dbf3ebebfabdbbfde3d1e97416e90c1c7b2e5edd45c75e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000a86760452880284532c22f3f9a561e4c5a5c7705000000000000000000000000e38e85002e7b4c2d3fce822c3fce822c8a6e8a27a17fd2727167b6037167b60390c6570a23fd7357d1b9ea1200000000f93e2b400000000000000000cafac0354eef593800000000e5cb4669b6725b34bd0a280f0000000000000000a6f12209fd9bf1036337a609f98f80163e9e37395a989f32af9b9806e6c63331ac1482730b93be6b5b608b5e13dd7d248284dc10f572a16bd252c315fb0d7675bdf4e677bdf4e677fb0d76759e4a8e62b0c32b33e2568677112bb72cd4dc3969be5e7b554c291f724c291f72be5e7b55c152da1da1414f59eda6b02816e14f47871bf050df028c209f3267519f326751df028c200b4b9314162fe56b06828e085b69ef210000000048848526f9b68177f975722bbef5b34f8b0a69380c697b1efdf5b923b0005607a68f47152b290e059bb3fd2b5ea81e325ea81e329bb3fd2b3de65a33f8d612691727d7580d91f66a0000000000000000000000000000000000000000000000000000000000000000a867604521588a14f5b20d3c0000000040b02a028173bf15c2a9024a4ff1800b25000000000000000a1efd553e948d56ef49185900000000000000000000000075f29c5efd0d1a07deaaa83bdeaaa83b524ed469199c6d42a466365f1ad97f2694f01b301ab4161636a8593272c6ac3407eea3770000000000000000cd149d6ac33b3f32656e6473ce938953f928cf1b8c5b6877e5703202916a2747440588539cdfeb56e5d98a1cf3447363b1862815ab9d7b4264f664669012333d1000000000000000eb4916638fe06d1ca7ec615c6c58b50dce3c064b947748745d84f706cdbb6428c5b4f14760e8185ef20f825a7e5bee400582ed09a6e98469a814792c2ea1a858100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000845e72340000000000000000000000006f03df65b310d44300000000000000007825625bd1e55d1900000000000000002724cf5b93b9310100000000e1993064000000000000000000000000e199306407beff479a7731499a773149bfb69943e634a701b7a92b71ce688c073adaec65cee44c395dff1b48835c7f071619bf1400000000000000009a7731490800000000000000000000000000000054e97f36000000000000000000000000000000008644d03b0800000000000000bdad5f730410103dce68db25a58a850f51ae315fc433ab3f2916166abdad5f7308000000000000000000000000000000b712be38af0eae125af7cb75e64f4911c4acfc69ab56781022000000000000001f5c8f00ccd3476e8b1942006e987e310630f73b1f744b653bd99850fd557c03d5e38d195ace7418a6ad1e590fd29c155c98e16bac105e1ecc37be311f5c8f001f5c8f001f5c8f0059ec8c4f59ec8c4f1f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f001f5c8f00000000001f5c8f001400000000000000bdf66a42ed653d14ed3c5a30bd1f4e26d1e2f36d867d4e1ab52de1584f169364ed1fa5321296f96660223467d6c435080000000000000000000000003ca385678e415d1600000000fcfd840f00000000110000000000000076d56a3f0281f699dc8c4a6235db6bc3783623aaaa418f4c02b64cd6942a778ca35aee16a84ce74de5c6f5323e9a57e6be945601bc75d398fcb56d08cad8e2ba597cae1f5fc10c5f6c7d1db9f93fd9a673ac140902638f7e83207a08b0bd8d0d5cd37ac375f8cb7626bc295e78e652d66517f8960d45787610b6c5ec6a433318cf744039710c3332ee3e30adde1c6257b13fff208b0b8c8a1a1586d2664026cb464d1e6a9a2b9d9e1d730d7df7139a4b9c954f7aac261762bb711ef86611116bd09b03b9def5ea13fabcf2ce58e18bc6397c55b8b48c330a18c923fccab49af5d586ee2cb60387fbc2c90bedbcd16c9faf49e96a918597cc46fa09616da5b588f9a6f6b995dce7b3006a93887e662495bb74777028c91a7a859e0d84855bf3b6caced6d845ae1dcd6175553cf46c246b95d7abfe59ebaf63158faa08ec35f33cbfba7490862371c9143262eb5bb7b8b0cdbf6b32d1f07e53c1f3ca12a05cb38a7498ba2a2a2ed030a423aeed5ffd60aed4542d308f1ded942a550f9077e505e7bd6e623155076c501f66fd38404c5d08fb4107f1636f21ac949c3e8045bf1810502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000002a50bd5a89a1cd18d5764b61dc605c4124336374be2b35469d5a00624c7e886710b1c005b7d30f00bf84675504ccfc1b6a8b922394b11855f5316d1c8e9298695262f677ae531a5d2ed5ba6d445103471e0dce0d13fc2b31608a3d1ebd8c7b349c4507401ee6b4662a330a4e376c99122e24ac0df6f0a025ba608e193139321e4a659249c07d783c8a3bdf21995b462d3ac77b0ae34abd21e3512c6c01620573ddb22a49c23c443b98ac6955485c176a984c3768d1f0a32e0bdfc30676e2bd71affbcf728c1a3e534b4d6a203e26164c2392751ba8a4de271892431f4ead5f24728b7f283a2b070e4a0ad933f7cadc66d5c76e0502c79f253d444b6a7390062d4c58663c140b334ef26e05539e2bdc0afb38d826fa5941477d0247420dbd5c2970644f130f445132b09a8b693141dd71904ba174c6f6330d3f63821344ad7103f2e87545e1f2b80c2f72d17201de7556d8b54304b3af334cd8120f420b73e43822cae86b6e964c74b8f26a2518fcc41582348455b7955c532ee5880f20effc1a9fc2b65cac91f6681a5c7d12cbb1355d0800000000000000b1dfd077a7a3fc247bd9876070823a3065c1c74158c39b1b59e49054dd7add1e2000000000000000ec0ba935db454c52626fb7392db7c36fe991001890d35103ec3aa10e95b733598ff4ce4ef89b4d51c685114b85c8a826b95e6130c6ae535ceed231500d0bce1cd4c6593b7405663adaa91941a513cd7507dc9f206e685a66bfaa956d0159853f4ad722641e38ea1a67eaed5e47f44859313d6c4dc480b639951a1b550e848e742000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f08000000000000004331266d813d9049ccd82e212312712a6c520645ce4f113962e25f4078520b0508000000000000002ae4b6749faf736e435fe421fcb23c084cd42e5899899b0255b8743437c5f95d0800000000000000f21368294141fd691516bd4d8c89d43ba804062a0102b40869286316e689bb0e0800000000000000650a3e2cd4ab636f3aa4fe1a49ff0c746b72c07329a79014a3a716471d95044a0800000000000000fb19f922a5466375b993931b4c1e8919e5c5ea77e2655f347cc02a763a8fd337280000000000000029cb4450dbf71b372f829c25ae67e75f2f61470de2c88a34b2dfa568d11017723266242c5c168c25558c532cb8a27752ba813a2b80ce3352108fb22838a8e25b6754fa43c3c97f58580e0d51154c8d5b4912c75f47dfc24fa59d2922bde35b4d6ea3bf4b97aeb4261b0dac1f0a341c673b33bc6eafd743504d38694e84bb7c2db948693c0486293912b2fa20843f2501d054f35365046c47da40ac2746ba6a1c11000000000000004e6ad6d106f7f6b33f9ec17e0e20428dc5c31b13cf4a9d8d557240c6848919234fad1089f1304e6af34ab0dbe9c8cab5bdbb10fcef93e3f51dbc2ab51d31067d19e0f7f9decb97687530cc606171ef03930ae22214eb7881d9ea85e9948bfc4336d99732188d529d7499602552d37ab6aa27a14a1f29aebeb0123a9675d727b1cc4a493b3b3b96c3a5b2df6bf7da2f6c17c382fe57eb9d795f40980874fba0fba54d6c0ac1afbc5b77879c236eaca09ff4bbd1967b0608bd6fe7f13a7b02888691da625f55414bc23910c9cf50b09df34e4a64e0790af5572b049bad428c3324f6f9979f919e12ac8ac7665bcc64593a2d1c36f149d4c315ee1efd041c2200875bb118fd51129a7fbc6e64339d7fe17014b7979df1c9d3f7c3d835af895be267c3a5bf1fe24c1ab00af56ab638832d161fc0cd13cebbc67af9f43e63428df5426dd178a6608d17ddd64e3890c4f034072095273347928a15980a67ae486bddab2c60e97df2a0ae08c4cf771110fab61053d7e9d0e20f8af24b6162de78a727a2eb143da2eb28a45d5500141fb2a6b66be22e567d555dafb600e617a28bf89518033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000003998504cde530d59ca9f972663ae11715ec6440dd1c63b09f4ef31603eba257108000000000000008f998947f2505805603e60251288021a37b8ac2456e22517ecde5604851d335b080000000000000033619450111fb36559e3eb31ca12c320787e0e17ca77f03ffe2fa061cdc3d6760800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a244508000000000000008ebcf90227bf65019555ec74cf489243888e6f39e26fd529942abe6a330df767080000000000000004b5fc56adfb312348fbab398b497a5a108c1140a154263a9c804d3bc8c6313f0800000000000000c9b8865627f4e12656b01820d8b14e707bb6383e7d77ed60d6603732b7018f2008000000000000000bcd28179ab7392c1eac2559bf3f1138b083d216c68a8f4f39830d3698de453608000000000000008a67e633f48ce41f088cd3178a47381f6f20ae2dee0f6354dd1dca47424dbc0008000000000000001a87862d853f3e1bba3b485a710b4b6121bc9646f2ca366da2843c5a656cdb681100000000000000bf57592f00627f0d29a598e6accd2fb36a5025f1414e4795b1cc76c7a830e62543f8db8ce0698e568dc9428dcc04fc81ff33de4669ffd48612e1c5933bae2c96ea8147d699f3348061397077f601ae88ab020de47aa36d5e70905237969962d231a3f3939df0f73d7e902f7f6b2795716b6142b5c34cfb2f42890c4b85986215ce38b221158aac8917ab828ce1f94cb57f58ef79a7466b0667f718706d2801c8a2d06ec57a664f28d53f87b9f5c7bd996f81deae5da2b4ddfa2e354737e96b2191f0a18bb0469655ed651034842ff53566fee1cb18086191c1edcefcdbe3386ae3a66f5170ae50201d692a9e088f3d3de9115ab7a146a1a64f28dbcb3f78cfdc2efbc5751455bdff9afb9fd43097d64f9b902087d95f25bc0b000695d88f48b59314cf178381a12e278a46b1de2682fdc883e8898617de797d0ce870fb0c8113b92fa40895dfefc8f77e9524db4d76a25db38f550bbb6611643382654afecb082eac28dcb170ad354b1d82f1a23eac84f73e66faaa4cf67e9bdd394730185acc27258e821c8f34f141464835c05ef8b4d75c52b32b7d8412792c5b07052eebd265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000e8c2091b1946b63cdbccd41fc197cb4513eff36300000000000000000000000034d9f307354aaa47a5a6786aa5a6786a1997ce0f99b50c71894e6748894e674889175e64e85a5835a7f1591c000000001b6c106d000000000000000088a59f752bba0d0b00000000dd0010118609c66e32ed8b5a000000000000000099fa317774761e040b445601ceffee32a2da784c1a3df65ccf248076d781ef6d9aa54b0f3b08db2bc2f9784967dec7691631e25dfad1ed5de8db84240a3758542e69dc6b2e69dc6b0a37585448c397691ae5fd1cbcc29048c75cc606ac2532511081f66a71cfd14a71cfd14a1081f66aa8d35c70337b90025ca9744a8949e177de2e61281aa5a742d9ef1127d9ef11271aa5a7422f0e003ee8b0b5083a74c709bfec2c0300000000dca1385dfe0769356ba3d1392ed3f2025f79064830ba0801b5a00140b17cf16a0ccec8044cf34f6e7d182865e1bbbe69e1bbbe697d1828656804ad42a2cf500c771be30f3b165e520000000000000000000000000000000000000000000000000000000000000000e8c2091b4fc0a36575a7fe6600000000092ca72c89862a153e4b8757cbe0cb5725000000000000008e2bb977fa0dcb3886144128000000000000000000000000e66048592e707101a781bf71a781bf71deafb343de2e1904c8677705dd8f1075220b050316a3b6646d8d003cb620eb28f6606a3b0000000000000000f06e042091cdd5284f06b05c3556251a333d1a3d1991132a599b9462f0b49e7123745a1fa23040446c56690d2c7d25693a06a139e0b591623bbcee3f412a8b531000000000000000be3f4105a7412917728c1521c5d43f5048cfa60cf799a84532423f3d8d022659fc48f94713ac590dbe86950c1785ea22cf1f230be677551d9819624d4f520b0f1000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a00000000000000000000000001000000000000000100000023000000000000006397fd480000000000000000000000003b64c518a49f162600000000000000002ce21c294ac2bf0b000000000000000066185658a332da6800000000c9baf82e000000000000000000000000c9baf82e2ed34e0fd0052900d0052900f2dcf82b1590d5765eeab705282de0503f01ec73a103a143ea3bde0b8f30bf076e6e2b2f0000000000000000d00529000800000000000000000000000000000019aec41000000000000000000000000000000000291da83b0800000000000000e60a070ce9dde244eb7fb940596e733de8dab34a22a06c0f65013b23e60a070c080000000000000000000000000000006c5b891b4b4362241e043858d0299b1abc68ec0c82fbaa232200000000000000a0f91b12eaf5bb543773f069b4a6f3312880de27a9f6f7515828242ca5ce0b5242e14a75463ed002a3b6a2539dd94d1f54f1414cbbf7b333d4431f1aa0f91b12a0f91b12a0f91b12ef41b73bef41b73ba0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b12a0f91b1200000000a0f91b121400000000000000f77e4424a34d8a3c7c107a5c1ebc5404a3abda1f15726c3c4fbfb74849e24e4d5efaee36f6e9554f564409690999254f000000000000000000000000e6392a6bec303109000000004de2476e00000000110000000000000067a060669b03cfd6aa419cbf10db80164fb90aff843290faa70e439e790ed5dbb1d4a75aa4f38f1571ed0ba2cdd2f5f185c419b3ca7b2b2f94a91daeeb0933a003505cbf1a78d6e05eac156c175a9eaecd8d081deab8b320020f699600db39a97748dcc0101541d913a47ec79296227ac692e9f53e1d1964c9fd02f29335d92403fd799821975d4a2843303fcd570943f24a0bb5e69e5894823614cb8c19ad53aea7d18d9abea15b3dc1907f4a23adb16c3737cb38ce6b7e0aff0a8f35976e4f295624b1f99634e855836faa78515db77d4170f184b7800e3bdd2f17b6568980fc1cbef8f1e8c84a51a3c5de081cf5287d013e30355aa03e8ac69ef9054a14f14e63dbf4c79b3fa08b1182aa0a6306aa397fa715716d5dba306378bfc636a79211900fb8679637cb7f6c5dda243c5734eaaed1e7dda6b73c43ae6d43a7721cf9f57573b9c986553cad39013a4e773a5fa1ff652fa67e33dcfb80d6de13cfaa6ae155b65c57a03d62438ba9799b9906b374114999cdc06a0d3893a166f13171890f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000b2b71671c4078f09b776c84ea094213f64df7325198c2b059516121e5ebc3065e35e2f1a976eef000a981d1df9b21d727afafd1f15692125c2057b3661dcc3227706fe753d89493e575fa74b50c15a330969b4732142e706e98e4e0d4a90b65bd74a632f997f221b261f2a58a3ce1a379879b65f39680e727372d741ff7fd32dae3d651f022a35188d60cd22b5f00521a02cb7621ba2856d554c2536e1b5d621aa24315cd86f725254ccbd50fa87396ae88829220b3d7d763b23c765db3ccc62e274385047b37b4246e94e2cb5c54d5e889c320f5c04be0a8be23d0210e50a041a86d94805b5a51f2ff4231d88b6f169ba94210401b45d17c985b9685aab457037811f526e46f434505285568fa0061cfaedda372ba1a2585fe566255e4a0f1cf78d9d3b985ae372c74d631916fc7d5877ad2b159b3a9e0e54f7ba2074b4c461ee013a395bbf925a03e89f227552034ebf7f6f295b227d0d0181235369c5e558307399548b87e441d44d4056557715144d379400f15d760125d4e96e67a2aa339dd360475d8b0c26605e060b619b895d08000000000000008a027559b92f6c1e947e26338231ef76193ffa5396ebfd631ebd6e05f87deb08200000000000000081ebad2d4ba055699162e057c7fcbc1a3419540589410c23c3c99e0e4fbf73741a0e781779323e2d2545023814b0576b0ca96677a49a3029cbd0f00fae0efd6409aed4491d5c5a21746c3b3862dd5623ee1c7b5f96a67d197081813b9e2a5f277d5b6f12bf87486f57e7a664f49bb14682f1515eb9d3f342ac994a1ce4c99e0a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b30008000000000000000dcb480a41cdeb4c1c0f8f47a4ab1e31a97c7b0c798e9e5817f4d337495f972908000000000000002383b565f4c1a433637c786c613da059af938263b1b95122ca2591727faa271b08000000000000006131e643aa437750b6fb9f1af52434275275e660c135603d93357a1411c03f0308000000000000001ba9835bd740bb5482a0933232b3a70f1d64612fad89ea6ecd09d156d61b455508000000000000008499ab4b43d1f71abce97471f9e3462440faf22aac069b4ceb24e666c595e3272800000000000000b6ad7f33c50c9f151f2d612a89c8ea46c6113074110e5c349b4f5454752a1619b05f5e6b18b64032200c914bb6deac3afe39023985b7715170d9c022c4d82231159a7373aa312324a78de57075220c1fd4dc930af227150460084a60b80e895c55d81d003304201fb25de846c1914234f552655f9794bc5355b69a71989c110a8e15bb0636b1b93d6b23b001b25b83284b9d5b04c62535192b609c21f4bce7581100000000000000d5a4f87e5f1acb19f0ab2ce445389ac8e4e716612370a11b27f2c43356a636797c387efa5d71a986abfaf40223f5b92603116c843f6470d4bbd344d4e9da54626edef294f93fc78bab48aaa9f2f6cd90a462cc0b90d99698bcbfdc4283512e87abb474a69b52f3178e1bbd76fe3c90534d0020a1a7c8de0b2b9e4d0d0290708d6aa5354ed91d21d33cc0a78d16b9a2d5901f675b6c017f6e6cfa38ab73e2a2067d9b25e32e6ef4034995b3833a7bc65bd4792d95aea3b014ba5ddcf43db8994a055582c65ac095a5669bf698b50b8f164e41fa80ee0c22d84d36eba1fe078efe00f252be31eabc206c01abc5c2fd20f1d3833ca6b2d9788b3a347adb476b312e7300fc8b9d8a2b72bf5ae7cb97d1e9863af4c7fd2f708c101aa427faa23869cec835d070feea6b4fbafa50c6975b8c8044396a1ffd80d84f550cc1b7c95a70ea49561d662e900d2b41dfa50e0d39c85e11951e7b52decd610e4daf9f32ad325a438737ec1b46d6f06ccf014563f29c98702ee686563cd431c2534c459aa73ba7949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000005f604869450be306d0f964038f536c2b46f8311ade6b931af489e773e39fdc360800000000000000bf0948088b5bfe2d3a78e664f929f14e28d01f49dd00d911ec7d1523eee8863708000000000000006718bd4a85e20d5e27fd6f3c52201472015477637d87461939318f19d5db5e090800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a244508000000000000009208d660ff97ab774d77db600ddb9b0fe4193e654a96a426ac6dbd03d4d3a54d08000000000000002242b735cf18d9519c852c04368fad6290d6454d0fd3a1239960da2b3f9af2330800000000000000c12ec35937eefe662a916a35cc3a7f5e4fa4f315322fb53c13b05572cbb858470800000000000000db26965962cbcd774e384543893af67171181d53832013657a86ac49155e2b6e0800000000000000a2b50a048745b1398838c35701dd065d1723dd297b7931305c499a679aa6ad2708000000000000008d6aa929e395ea6cf654a0146c6d20414df18871fcb4104d058c7400eea7e57111000000000000005b26c49089f2ce22b43b2f0c72ac8cc08157f5e49587d5f5faebc957b8ddb18e30b3961be08208d24207531bb5fde8e415d0ecc570c1f1878f1a07f6764699687b0483973a233a0c6412f55ea80e6bc022d4717b28e265eda4a8b8e85419f3f8b5b4f29a5473e05199842e78188784ffd61127b5f24e69ea6af0c95711e80e0b27d2446ad5b92266664c0ac78003d01ea91628e3570b5bb2918a4b73a16486dff8376560df657f1300a4b984f788828f0fe009e426f9fcc822c4bb103b3f8b427802008e19e3a6c9f697b9d8247a1b0b93199951aa40eb1a7eb752aa4e88f56665f9466e19ad14dcc273cd1f9be9582b65d4b5f3f79c9003b5b46fb77627e44be4fbff5732dbaad4d23062e5083f27c8e62c115c962a4cd288814ad94d88b041987403f0a059163152cddd16f4ac57c15b0fb087100b69acb5f43beac0bb388ad1b45e3d82bf9f2ec7801fa8f692b47fd389b79e70872bd8d1c833e9a9e887652d3b1b22412c34145c264bad65eee436265b7e9987152808254a4fba9383fa96495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000c32e081ca99151251dcc235c8f0139777dac371100000000000000000000000033d11d2f2ec9a81d7b1d56497b1d56495b59171ead0d1763f6403c03f6403c03c6147b6ac8b3eb6e3a5ebb6f000000005901835f0000000000000000ede79d6b88df5e4700000000e66a9f1fd479420854e66a250000000000000000e2867e6eebf19761c67f7e56e9d37d469f6f05403fd1f75bf385a330a555ad0ff24cf634e4873a61003092685cc8c106c8da1848c0a488110ca2de677a63d62f18d4ee5718d4ee577a63d62f3e4cd773fd9ba414bda1da2159e21f1a577d67673ff7842fdd892a6cdd892a6c3ff7842f0a790409ccd5d2487b3011634213b402db626a133a4c14099a5b28639a5b28633a4c1409a06fec3a4bd31321c49724027d2d7831000000006270b64124f54258428a9c0c9bb5f471ce004352b66fb90a238844749ea0fc485c667019613a75075d7a471d7459d8347459d8345d7a471dc8b53d5bfd9fe454d14fc13c793c0a140000000000000000000000000000000000000000000000000000000000000000c32e081c344a2934c08e9a510000000038ded80150c7070240e653732abb791725000000000000000598d2028be4840fde2a0f340000000000000000000000005a098253b4c2f71e0b234e620b234e6248da1f55207e8a53205b032a75460d51c7f01d4a0c088b406663563ad082841943069a3000000000000000003dcbc25870b8972aefb19c089a1e6035d15a52520c43b064cf5c3b243f3a136f05d1d542936e2741add9f168d78512089bd085078374c07124ad5f08592700751000000000000000a7c2136e0c2fb95b52ed7502f12b2a0410bd7e4a54f04936a1dca269d81ec05aca9d2a4810cdbb2baa35da5330b3100abf27002b0ed04c43926117463d02ab0f100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c523000000000000000000000000010000000000000001000000230000000000000080492e30000000000000000000000000bfc8f0408e29001f00000000000000009fd84e3616758355000000000000000018117c4ccbaa9b0d00000000aedca72c000000000000000000000000aedca72cc5ed23019098bf0e9098bf0e143da140f5176f757996c7735b50c8096dbdf0038e0d0e1e4e56dc5f6767695f114f915600000000000000009098bf0e080000000000000000000000000000006c0dd750000000000000000000000000000000003edf2f1d08000000000000001307f33a122fcf1d41a12c2241811070f8ce844b4f3eb439a2017c311307f33a0800000000000000000000000000000020cb845ca87bb050633cac48e65b916aa59e40740fec3a5d2200000000000000410e1f1fa4c6140b628d1d600e206c23c3c049453cc356710d0ae863afc66406fd41900eb41e5f26227d430d5b87ca134b96c9404ca3c56797a22271410e1f1f410e1f1f410e1f1fa137c941a137c941410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f410e1f1f00000000410e1f1f14000000000000004c5b292d8d3cef1584d7e33c55c03406d2e85041650b9047e8697d21e0d7086ccdc9be165a02d7572d884a3f35c4c53200000000000000000000000056185a53813c04560000000009800d3b00000000110000000000000002613f43c2074be89ff54cef6790f5434cc22b3c1422ec5260610a7d4e3b9beeb67d730d491c9343690487442f4965fd89ee71c2125f4e47f0045440bea0b76bb1d74dc2ec32f10387a571c795c8a9fa591ad09d2e355d3751f982165a17bbe276d6bafcf35e2475afb62c9fb59641ebb6ea01a3f4ea285ce8a3dc1668122a6d0bbe8c3fc5a885eda2b03ad9d28d540a4a6473f043222c452d796fe484cb919d8469d8ca4f40e43f6159376c6870ab2c56b8e0341884cf1ec9f59e9f48c77d24afd4547576ccaf2e492352dbee5e361d973fe3e2d8cb6b2f763a76ec625e8e816e43b7734aefba9ae7d5f667ef28352bcd51be637977be9f5b507f782dc106796905c8d67cfca7b2ad57020ec95b3dfd24e416eccad0eb5790f5f435c6451b23326306ca8d2ea228e7d51b61104b7cede611845fee760042ebef1929e1119e5ae73008bcef439f3a628ebad2dc4c1ea008f079823d1bdf1aea79130748a3677b305d77f1a28b143032a5693ec8f5599f94baf34d8a5b7fb03ea20cae080f90fca8aa8974ae33079d9d6a8642274190f9cd637ae4df4927a5d08edad15e5d5912660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000000eceac2669eb3023658e3f6444f293417540703d1727164c90bb1703b8abac4205c3b07200d624023921020909a6a61309b6801b0ca17442b3e3b90a31016f720b738d54573d8f3d52f37e144524da3fb9e01c0d70d244642427510af5047b60fbd71b614e1f7e29f0e78c1e0d95b441fc548d2404c77677c2a5800288dfcb707135102d0950711ab960715201485348c19cc547f586ad67c7d6545ea921500308d9115e619b916fb5a2b73818d9e90f23eb7c69475d6419f100075d4249b1009e1a5113d3ec7e412d869c6547528227858dde3416fe6f48141f0b03ea767e2f9cff2c19314adf686cb733716af2470f9aa05f477a38ea4438b185555204c207e4b00f279273285a0abb3a25c61d39499fa23169a761876414bce26c5bd8fe19d1863262862e951f882e1b7395743c732887f42002c4363d2721bc7380c91a663680fc235a945d3ebebf116c58d4415bbff1e1462f01e8322e28a33250f79261798a3b64fe5f27011848561538b3152e7045d5318c687c721e58bc671e55a3185b6b2a1e0a47a35c139181205f07892c0800000000000000f372213180e0012eef20cc1c0dcde216e1835475e91b012022a3d403146ccb4f200000000000000039efa626f817cf63b6ac451903336a0a0eae0c6567064c0a651a54408781e50985ebad273961a2233131b81f2fcb2d6098c1fc67b81f501fa9dcd56817f54f67f914381d5de6432d3cf9f6539729ea54fa7b1937ba02e573e847ef66fd0ede0c4f3c89651b076952eca8fe353cbc3d177bcd750a6556381140661663a14a1b182000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa1584508000000000000007480286146bd6c04a9777f035579ab69e7f1370a8625f207a086f52fa0cc51060800000000000000684b0027c4474457b52a5108456dfb5ccc26731d4ef89056c554171ede4ca1360800000000000000319b863e0a9f9c0b88a0ec5068e09b56550b4742165ed4080ae08b53a0cf645b0800000000000000bf0aff7092b326003c051b406aab6a308046ee2ace592a4e44041d0a059e6f3e0800000000000000d73ba03da107511665cb084b04b03e158ae108253943462f39298948cac73c342800000000000000f0d26d10c1891c6f316b4e3992f4a236f625e90275a76108ad89f92a5d8f89118587d86ddcc1c25aa550754222a3292c2c16483a480ff30289e80c3b334eeb03bbe8093fdf10e522e0e68d1b1742471a85d85924a7a2e11cc99a1b2eac684127f7ef1e62ac292d2d049ec80aa159e028dced510239805f591707a86c6e05cb45755d652ab186405ab99ed44c94315e74202d0453b09ff822dffdbb2b90f8892d11000000000000001f74476f80adf556d3aa1c188f7f8fc3974c6db26023ae498f83527f436665d64deacc279483043dc3cb25725c6927642b822021d57cb15d25b5592b147c9cfec8295ea5c665f8afca54f3d467e515e0d357544261b1b33afd6efcf50a557750dd29d9fe691bca666843670d1ad82c8c0221f8413cdd11bde821eb2637ecb1457b4cf8c8962da8789deab5318fac9ac5e63fb99322457c83a41aef82be0b517293a466635e563830d51f5ae27ca3a6404a1060bf0287adbfc8e5e6754da6891e693a4f6cbd1c256e15486b907d5939f4b792763d44314470012cc21073ebba5ae7a82e708760f0759aed87f5a3d668c3acba07cf1ea161676d3b2dd80b5a2f13cb5086ef651700285c8bcb16c15ec983c29a38fb4ceb0e9eed301e4a613fbcd14617899a45b652dbb7e16962a6664ac541937be430f980d5a8376f3d5c85f4746464583309d7aa32f9be793c0bce8ef672c62b4eabf468ee29126b283705b10d564e9a67dbf7a948829fd20928146f84516b684fe7288bb4cbfdf2b7da127e99986e710caa1df015830256abb1c6a1e6ccfb831acec26bde1cfbb8468a401900d58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000a1b239050daecb2a75622516c824a93351715907eb81d738589f6302b7b4e9630800000000000000dd2b7b7784d91e1577c9502ef87beb2e674c7805d649f919110a964e47b5732b0800000000000000dddff30ad2dcc468e4b94219ea2d9c4a461da04d484a096548d4af1f094e920e0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000003931760bb91a7251cbdccf55a2226374c0d4563ac0ce8450604a481517f71d1508000000000000000f8dc93547f8d55a97512c499e3ba548f519e713a71a9f4b89d1b547e47b0c3208000000000000000cf8194f63ad8429f672896ae950750e1255760962eecb489d7cf276710ddf2f0800000000000000659b4f602961a858628678385c41e7191975031b21fd340ec81e077112e0845e0800000000000000fc6bd33a7c49512efd82d93d7ec6ef2adb422b1966014f61e175d54202723a2d0800000000000000670e2d71a6cf5874630d284e064145523b721d374a50515de3aa370bab966f411100000000000000c814ca39a97933750b0f36782592ce24af83a0b8c621c3282109baf1595cffa1f0cd58dc1edbdb2c1bae2cfcb4de587d41ea3cae6789ccf76e8982adf46449c5b0247aad885888ebf4bc056ca3fdad344fdd6c8ab1ada4727160afec791e29c2cedb21331a7dfc12ea9d424e8d6d3eac93c30b8cf49ffea69d8d78fb335a72bd937a2c4341e8c3b14e358c7cdccc31ea14c25f38283fe254698095df477f818fc9ac05e59c47cb6cce73880655de8a594bbb17286c8cdcfa4f8876ed25971fa8edc9f146c140f1e9af768aba34018795cb238ce1032d63c1d20a4bf253dfd20ad57ed4aff76282648b1a82cd702d23d710433edb43b69256a447039716024b79c3f444c6157fbf48660aa22f1fae3036e710f898cd422bb26f86a4347f2f7f3babfa8a8c01365158017366ace0921d21a708bf44e19c63383299d85b341a09a1190917e434fedeff2fbb6da31907a1335f6995c11ccf67eeb5f4932ecedf50d49b502873b56e7276ecaf4f62b920117d4fc6f52ef48b833f8033a6f66dfe6014b96328056daa7c3650c5db90bdf45dcf713ad0a266cbc3c0c1f5aad77c374523c3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000003d8651666f209017b18ebd4a51e5d902c19ef201000000000000000000000000b586705386c51b6957db870e57db870e927a6d5129b0bc6cb7d1785cb7d1785c9640254f86467d4fa157991e000000005dce4175000000000000000004ffc61d3a44a23f0000000047cfc71d678f41536271ac470000000000000000e6d1c022b5038f3937a35471aede240723e85136c579ae11bf89553536ef3a12d02dfd45e78eb51e87fc9a21b3d2654e29ae495092596f65af8022106687600b0a83bc470a83bc476687600b0f18e7020c06e8493985d92b96462958f23a7257b4949a02c7328342c7328342b4949a02b0af1611b39210118ab9326ae7c5276b1b8d9b5b7cb982285c96364f5c96364f7cb98228a42a1d0c42b33c263f970374f75f5e2e00000000a8d16903b9d8e8470b8f321f2f66535fa0635145b88b4b008644c9776438644d08d3ba3bfdd08f0cbaacf7341021992c1021992cbaacf7342aa2565bd9903d1e18e7963f0d77f96200000000000000000000000000000000000000000000000000000000000000003d865166504b495d138bf421000000004b60aa5b7e0e861f8f77c033b899745125000000000000000847c317f54b9b13d01185460000000000000000000000004e29196e8c981017e607be23e607be23aeee72768d4403318be0a31adc37dd070e6f6b08921f46735d3ebf2e42c9c0383d978b0a0000000000000000735bae08a74f323ec83ce12c2bed874606b3c3718fe1a348f9b0b84e0283fc2a0c6f7f06bf3cba4b9e57c206e9d8815c7777ea614467bc6d264a7e31c6158e5d10000000000000008431cd30521364607136533c65dadc6382372d05c3bc7f42ddb0052360b81f73cd2df23a6d0e5041c1551a671afbe43a75700110f747340e2827d94cdb20d651100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000e7dbea2e000000000000000000000000ed2430050000000000000000000000000000000000000000fab6ba2944000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000ee592c460000000000000000000000005f3a62607bed325d0000000000000000ebdae6393539fa1f00000000000000002ef8fd69cc653d5400000000594b4b22000000000000000000000000594b4b228643491452a9866852a986686196031f27f7293f8fc6f2725b1fa61a18fdd51d7cd8fc1f3f5ef92a4c43532f644f5a22000000000000000052a9866808000000000000000000000000000000fa9f6f4500000000000000000000000000000000f06038110800000000000000948b50772eb4d33f0b55ee19b77e9e20c22b695ef8bbcf2880b8a254948b50770800000000000000000000000000000000f0f926850e925754014d04d94bf23567b2e8490715726622000000000000005145c325fad7326bc47ecf4d7d508b48cea86143c5d38154a68df959d8817b10c420894e8901da2fbffb0c6e073e0907d4db121d37cf9e32fc15f4335145c3255145c3255145c325e29fcf40e29fcf405145c3255145c3255145c3255145c3255145c3255145c3255145c3255145c3255145c3255145c3255145c3255145c325000000005145c3251400000000000000fbb35025673a98559e0f334fc4deb52b27cf825411031014e5997a4cc2adfe2268bb155d374ed74717354c26d8ca5f58000000000000000000000000a48bc40e9616eb5a00000000836e3329000000001100000000000000d3ea60643f055406599c78a4597ab834c825dcb655b90e0a9103471e720a2ba00d23667d4e3d658733367dc974794358c10e3185b5fd56c86afa04a0ab076567026d9d4e6e900455f5b923088dddc01fd4c4a1b79fc9f561dd626c0c3761f0518954cd886d4b47ecfe9989e47953fd49b604a8e9b6921322c21259d5695fac7280850b58cd2fcc399015516919c7815ef6d52ed03ce4d6460bea9445110a9fb6191488e769a4f7b58061ea4a50f7193ec74e01b6d76e31c77e963023097c5c617ecd51d2bc1e6cbb469c400e834ce42a82f1d6cb18b5ba0d1245c307b29a2643eb0a8aa7acef4d6f56e52677641f2351b1c3ce02a8396bc515fdfcbb255f9d06d862989c49a3ee42925095eb8832158af89d49a61bd3753674b7e846172fef910ff1b53da65689d5fd83684dd9ba8baf2ab49441109032d35e6e067a2f004439e82c85bb8fe3e6b7a6304c977f242bbf62bd2fb4c092623fa90f00a048fd236afea22f8917c75450abee85163f33ea0d0b5a7f211ae771c33f862ab3e6a2dcb8a299a41c463dea864aa8f7fd394cc698a8dabfc13730e307c828af5b3592924fb901994b7947f526cb06f2f7c2b3c57d149de14c37ded3880b9647cad19c0fca47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000068f94351429c0f27997b28461b5b651165896e75a51b4b34416166018322896cadd4f21d891fdb08afa63e2ff0ef5143c6635620e49e7a2c43e734145dbd8547b613e5475024034e7cf80036ca9d50376f89400513010057e3e52222fb38d45a41c8fe09f761fc72eca4d74f5265a72ca3bf022c5e91013aba39c128e746cf682392620196264e38e42e4c50a42b6209955e4414085da31c69c9674d54d0db009d5eee36a81ea24f5d4edc6e351aa922bc94be723e26753f3dc21d6212d9be18ffde5612714ec60b981467091498d2710274735eacd9f328c5c7293de1a9c648f4a150520eac941648d17022b6d17b2d48738f476a2cf7038a5079728ec83f11e631ad5ea3989b29683b14553633814df569835775fe874c6acbb36801bd170eca9a8573b5eccd390b3c172a6dcd9040d770d4550df02c0fd3079359f3fe3d038ea4cd015731a6554b283e643268db334804b103be2bd112b087553665623f53f1ec2519ecaaae2e61c5522bcf7d121b79a92d451a13783571237132ab69d82e95d13c19ebdd966034b1913f54a3140c0800000000000000e3528f009a496209d22701062e55f658b779c80d77035e145ba8dd241f06d84620000000000000000aa54f752190691dde7e363f4cca773e8af0e256bab24d140528b02457751a6c2250f1012c21821966acac05f177936dedf3f1513bf37f1815ee3c59ea0c0a254fea5d115f93fa18d159d46632ca6b1c1d861c26b338542e56de2f12744f0e19db0c27204f44a44e391cbb73445a4143dd05496bd98d78039ca5ef57cb2c0c122000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b87250818000000000000006c265342a77fd70943cff94d40a86a4450323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d6143694d8b89b2004c72957558f5706acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d08000000000000004e3ff6313ff9962825567873b86f1f449a4e6c0781d13254d2267a3d91438f430800000000000000393c7b5fda8dd305a2f4de0c52df0b307b15051e3b8c7707fe427c2d4033aa5e08000000000000009f65780638dc743940c78c576484955e9b3fa36d7a6bea3f011ae667495319120800000000000000c05ee34ed78a67590460ee4ca0f36c37b2c6b00d58b8b37603c8e5517947876008000000000000001206fe323ca68242db4694034e3892655160a50a4f0dc21e20a66c2030392a0a2800000000000000fbdd372e62a4f95031fb5d4388970f051479755c3af9fc4920b7763174c52f49433f6a3499e9076e3b877407923b6b5bdd91052f184c863fe6d73305bacb842ff066983a021ed86e0daab93bbad78906da862a275b6368564209231ed7202a3362b84431deb0533ff82d7e366c965b2dcacf3f102335e6189c2a5b3576daf308de8748347fec42707455f86865e0b341a045cb7077a16524db2249412e4ddf29110000000000000016b8f3167fa211e2b03df578dc4ba784e4663c0e62e93a9dfeec31684d0e20b2e27bef722ffa6007d192fece23a9e43b465afe95222f2492acc977530045ae7528fe940e8714403cc36c52391ab1524a6617db496001298ab801de29246d3be2ddc8c387df0a1b4b87ce04d288244a84f230dcefac933a24a5c14a7178c48ec14fdf7c707d3bc0c3d0d9604d02a636d10df2cbf5bfee510c4c033f28b7a7012d1dbad644c9c7a9c53b3f7f504f5bb4b10dc47e9b2b590dbe821801583692a802855ab35c28973f2c862629116c9956ae76174660c3fec52c286b629a9ad736be2023f2cefb814358d746a53e0545f2cef24a9deb7b97687690003d32897cc9a3f73fb77093d7c27991aeae93329e4ca4d5b53be8d831dc3801552396adaa369d449eb4e7654d4054165a84c6e9b8a4eceeb493ef874305632c6f35e1adcdeebc2066bff86c5f1df655fe9eb9fec493eb23d3502a0aedf6ba4a9f48eb66e3d997db429877ee1a59e2343347a3f763282aa609de505c14f4bf68358992fb1661b35937d2e503f2dbc704a26bd33eba2ade850f45905c1dcc5ce7496e06c325f1ded7c12418dd9fff60e29b856b12713b0a31ac4c585c5582d624c7f5e847f38618c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000053b092736787000511e47c159bce6d02b12e30403bcb282b88d7022e352eb34408000000000000000a3aee3e484ee53b0dbfe231879c0a60df5a093b6b76570f3c1cd7061d684f4d0800000000000000532fa1179e7f6d03afd0d16c15a68c0656d97918db200d1ca1b96d2af1592a13080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a0800000000000000204ae4671e21146da7d8422d5c76580d748f734a0108e1297e55e25c6a5acb310800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a2445080000000000000006fa6412dfb00d03a3abae33a2833a50b1957803f68abe70828d3a7379a68450080000000000000057a11335e2b5e713c677a913609d1a45fbd2aa5dac98565d67e17d6ce90b4b0508000000000000006f5fda262691dc010f32bf3dda41b058a64c1c6efe8e486969d3d46d0e67b93408000000000000004832a36d109e260ca87385711c7ef118560285250c39662cf17e6a34f2f790530800000000000000402b8b6086bda33917afe341f39692693c018768c5ecb44cac8a107549fb98490800000000000000e35c4c48a84305525a38b962739a7c465ddd7547abcb9f67dd1c8f08f97522221100000000000000edfb5540d7a01ccc078abed360b3bae610ae702193afc684a4946d0ecc97bc59cae35bbe77e29cea3473d8fde27065660dc6c9a5b117edb372197bcae198bad367941c203260330f8053215943edbdecf121379c403c32cd698ff68d4ac1960f017ef4e66d053573e4b3b41da20c1857825f92d1d6ad683a65178368536c0e48148579ce2efc3837e595a16a5373e06a8e21ba57cf8c561f062aeb485fd0082b568e8deceff3ef27d759afd30070770c5a5765b64fc18b3fabc3ccb00a0248372747989035c89a63fa37da5c9ff7f06e966425bc46622d1ec3fdabc81fd2aa0ee4d1cf7a50fdc5b2fa1a17e2b8335c205c8d1b20cff481affa3b3892dfafacad2d8c747951710b6cb7c2bac95c7219e0f2a2c6abbf6dddbedcff96149ff639d91fed17d8a0e3457da9c23a73431fc8a7c2b9641af18b3f04d776fe963b7ccedadbd5fae90a1a1d5213a08474f828526e14e15915502ab9f6ddc5d40e8fe00ca20d0f96ac703eec4042a71815d55de5a819a59e6252c2f8f43d5c17ae8a0f6982fc5f170dd1fccc9b8d6d72d3ce64a5835771067479428a6a68138523a911a66422bf98fd492a759f352b4b82284a1b0b24bec1004fe9ec750326e0b5c9a929335a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000009944c93bce7a3c746b1b116b5fe8eb49fa8c526200000000000000000000000013d2182e8dc6be17a9cc7f72a9cc7f72c378374f6018d32f31b22d6031b22d606502384f5552a160f444a549000000004f17d10b0000000000000000e76ca575f32ecf2700000000c3b2586f5bca080626fc61330000000000000000052f03273a668d4e3d4d1a5238f6963ac5506a5069bb363cc3c3335f91d75a629ed4da1969658f0aacb12a3ebb394440610b0f72fafe97198f9dde5447c1666a3170e64f3170e64f47c1666abeb65f0a7ae4f0476e9c6471296ec232375deb2fb11bfa3c66f5bb2a66f5bb2ab11bfa3c7688c927d3e096223fec464746e3fd0346476921adad5e177348f6327348f632adad5e17d237a220574ac6431d26a829d2a0342a0000000024eaf54f8095ee4fb296ca5c04d0ce6a7cb42b5046299c578f3e1673f629243970491e2895574b58927bb46d90e5374c90e5374c927bb46d02d63f421c93e81ece40534ff61c393600000000000000000000000000000000000000000000000000000000000000009944c93b22f831729e63c93c000000000128cd540600ec1c95db872b6edc0d4825000000000000005d64334090de7e6b3973ae5e0000000000000000000000002bd5e552be7c14092731f3192731f3194cca8674ad3d3a52694a710e2329201fc1b85f29f99e2b1aab35ef345cb2142300599f110000000000000000cfdbca086b2786340d746a35c1516667fcdd482a8ecee52b8431174a62b65d020e6c666d4d8e287111846243092e62259412b63fe40db412448871368f1bea0a10000000000000003a3e724a804cf15d198018427a37796adf0a0e00bb702b4af9e4a004bc163257b276625ba7cab333258a22647e064b015185f11dae3d1e2d951c6441e9b5522c100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a5400000000000000000000000001000000000000000100000023000000000000007a918434000000000000000000000000dc4a9558e48cc7480000000000000000ab1f00310d7e6c370000000000000000ba47722c81ce844f00000000852cb94b000000000000000000000000852cb94b3e742b00bf42b04fbf42b04fea36fe2883edd656b3d9820e2063783d5fdbec1e53a27a3ddc609806af748d2445b12b1b0000000000000000bf42b04f08000000000000000000000000000000637ea445000000000000000000000000000000004f4367120800000000000000167e3767f2b84c3c0b71f1207dba785c7e0a383dd6023e0cf969c54c167e3767080000000000000000000000000000009acd774652ed00614c4e01275c00064b7010397524fe206c22000000000000008d737b002e9f962d79c7dc0124643d57019534084568b932fb5bbe36cce8052818f38d352da5b00352c4fc76837fe60940b4726cfaa8540183853d658d737b008d737b008d737b00f0ba1666f0ba16668d737b008d737b008d737b008d737b008d737b008d737b008d737b008d737b008d737b008d737b008d737b008d737b00000000008d737b00140000000000000083191008cacc9a6e6f61b933de84f1426f23380feddb1b39e6573d4a65334a0710b7a654a98d9c1eb84fb40e4d6886170000000000000000000000009ac81d5a6c731175000000000204bc60000000001100000000000000ee7803095bd0c9be2b9b16a4f089d30cd3f5d976a16dcd4c2e9f803fc4cbeacd8985bfdd24dc6b19afa3a27d87c025d10232632ac29582d8f043dc539f72357bef6447d4ce5c1be173ef6b91294ba7c321d53414ef771534a04593fce5ed9322109402de84a7b3d836049d9d7b15bc81ae56a0c1d7e6b2ccdbc4cbe9bd6b582d8adb970c7b721ad597d279602bf094f8f9f1d5f0fa99051c7c9ed4629fac092fcf18f1d9d395f4f95dbc4434c6e1b17ebe7773133cd4d5903869569fa5404d1f2c0b17b0eca2bf15d593ad5f5754312c8ca53ab9b0bc1d4875901d3d840778f343ffb491ceff4ff4b68331ef97174936a29a25d1d51a8850de8c0cc46deb41351684e68ea0e302f2a31a76c35398b2534e144431417604a8d5f08d9ddefc5b5524106b03575e23b375bd707b100661d8b7b7222efefdea314003c1ea7d02a3c286034da0498863f7f72657a3d168c9c764ee3866e66531968f495e4ac3bea58125896ac3cae4f638ef57406ee67ba7cc2df92fe9178d076f6b98715fe08ebae307a3a107e8605542e0c8dd41f4d1ba029effecab2f2aebe3450fbd6d0c64473bb685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000072158c6e8dd72f3cf4b75371f4f2f62a44b24744459dc149b3b4eb5724b6b5763cdeeb42392c251fda51a7432a18aa2330de103d63134d4f3973f067c675e758df5ef54aa21b9e74ea617a6e4e70123f41d21669cae256123530c12d0a7b172e4c6dc524efef763bb1fc251896b427662c68062bae16830364d78a5f91e24f47e041ff77beddb6048d0af727e1903b4b3a4f5949cfb5846cb5091e223cc57c7425710e164b811a2d2738840bc2d90c7613f2f674d55b8127194ddc4ca9992a276020e62802833b3c42a9391ec8b3d3035ff7c4503b66d94ec41361202feb7913856baa25c34f3a4fe9d2d06026547f2b3e20ad34c45d243e0b01b26924525b03a12ae3192ff9b3679c997302e6a66122f939705dd337d074088b390a787f76170d18601009e37a678e5a04615d65e0690901e5578a91a63bf8c25d68b8a6092fda0a26227cdda60b027ef4655f738e4e128f62343a70fc68e0e99f3e191422399531e60834879f2eec7ae10da37b6460e177462ef556c331863778303504184bd477771fccf9c10aa626813cebc91c5608000000000000008ff9fd74f04bf747322d065eb285f9453c9ed65a06528e2b4fa52c74c6a1696020000000000000007bcf123219f7c952f5a7143d5d9fc91dff27d52b9d06dc669f68ef0f388cad470963385eb8ccb36c5922904676e29151cbe96a399682932e8c9ba67709474b1cd49e4c25295b9b601d8b782ba248ab655880a86b13623124b425ab6dea3a2d0a6da0d9373edfec5a4e9d5b654d5e027612d8765aab8f9307d578d3292b9828252000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000c7e8f36cdcd66355546a3c2b4d21c60845f27a16c843b41436b0e52931e1e703080000000000000060d2d62ef289b043802b0c5a91ac7a67cc49f941bd80f173fa4b8a1a77a1c32f080000000000000027ccec53b22456595a594871dd2d3966a1f4c7637bd3a14c14ab0747522cc36308000000000000003f0f9629c4dcc8595cd38e61403c6518f15aa71be10fd81207c9234afeef301b08000000000000006931d90b5b42ab5c4a41872659ba876a7a7c4a0dcfdcf62d94c69004e83564472800000000000000c672ac2b11797a30c3513759d29c2865b716ed513e88a170e0d45f5e4bafc120745ce9113ef7fa58ae46f959267ffd3dddbfa167b68217211a2d9a3d677f2c5eb408d46afb2fe80b9f395b151834341025cd0e076adb3f43e92662666b6dd31432cc28345236040e5d12dc683ea064672f27830247f04a0d302c4a5d29780c356ce70676aa07720630992f728951d32225622e1c8a2f2a1a83d7ee5a277c8a64110000000000000022681ad14159b641e0983025c155936849f30e18576e825370d11252e78b0e72566ae85f0e36203099f5e98735dde231f9915d99ef7dbad715e8cd218dd32b49782b4034ed3b86084a35c3d834ba9e41a4f8230344a2faa20e360337cce8483f89acc75fa8afeb37d8f3557203c0fe3472c4a388e78657354765c4983bd78c8c5f5ba50e2df24a76b85c6fd900917bc89ffad7fdbf3f45887c63fafe12d8fc384d077e5629a258a6339ccfe3dbe277329a383d2b6667d7541f0f165d242485aa496803a3cd7ee810c96143c687aa09b90945b838fe750a828d8b4653cbdc5d9bb4ec30bf36ab19f432dc5616acb98e6df20b549e4a1e43608fd32cfe24f25864ffbeef146d9e5725b8801401a60d4e29cef6d9e8ca0d88aec820ddb23179ce11df3e92d47f36979691a71700903edc085df823ca2336cfd3bd785d8581871a4fc41c3c11aba461c06671899c84b7fb1df1ffbb466d6a75e82fb0d18877abdf0532c7068e58c38460a3981b91909c3c9af303ef0733844d5d93fdfadb2b04e27b66c37c500995582a099e04faaef28090e3285dd359b52f6273d7ced3d0650c346277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000a809cc57805d8861b58644317cf55b50ef473a5bd6554a6f63a120756396fe2908000000000000009f566345c4b28c4e40cc3349eae4241c0bf259588af2f95ee31336376604bc6b0800000000000000350d4f03fb9b192003601a642345e6438210694d2130ee34a6c88758f10b482a08000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000279f455987c8413be8bc2571fabb640e01c6145322fa12403604a829cfafc573080000000000000094c02632adf5933568f435701f7d591d015d022fb6d4600af809eb4658fd39540800000000000000d32c1840c8110472ff7c58772c4ac4516660990b2202652d1bc07c3113eb231a08000000000000009ddf8b198948f02999c1e656e74c4832f5859930a569924be6dd6e56c37e6b6108000000000000008b014b05a6356a2623d0e21dcd1ace3a340ff924c2349c5c73214c0d027c9202080000000000000001f4174171bec34256cc7b0d17a17627f4a3d54bbf7c352152c69a47bb296b031100000000000000a46b70540efced834331b8771ac6beaff47011e5f0813ad7e5124d16ea729959ccac6720483dbca66bba33811c10f4459be9119acae5ef0ccb85a89323aaea9268e82c1d17a033a063b70069df4f104c22990e0c6e754441c73fb58bef475019f37e8e1c86bfa39b77d673f21e725da10e6da729f947a951d091410ee17f50d393a8538c8bcba3e3ab69393ea573c37c899dac56d7f21d82078fbdf29a758aae7c3ba3ccf774677cb33e3eeac0a630b3479224fcf25026513ad05ba8473dc8564cf1a151d593c6fa68fe6912ef727f1a03cb4614bece447ea6b96d3726ef7b617442251e82e13c14028b9db9d36b642c0d7e3a2fe3b92d05bf1bc78d9f96eba3c26470ca0f72c6b0e391a34519874bc8312dbefede676c87948176e713f94817659cc246d2b5bc2aedc0505595cc3a16e64432b7e624a1a19b74cf75bbc9b39a0785286ebc7c731d5ceca3550d0481419a2bdbfec66d4ae4fe6b434662fafc05a9cac9335c1fcb332c18ad809dc5d78e67725ffdbd173dc2b501c010d18be0c3e255b9954a6d6a2917b5ec310a61dfc326604c6bf157e672fa567c034f6785451baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000015fef81435478e73b74c114002bf731dbe26ed640000000000000000000000003d48cd6f5f1322093df10f503df10f50b3d6a823347b1c38e19fc807e19fc807f47ec53a512c4a03e423166c000000000c7ed1410000000000000000a51aa56fe750024b00000000b6203c1f19d934065d96db680000000000000000a71e6556db3dd41fa378692a42ab6f63c7d14e64ed010763a6ae4b735be4e815968b94732e41784206fda7649619f538883a1765ee8f3e3f6ecb8720fe17d22306c65c6b06c65c6bfe17d22394b2302903745a7414d27c1f73f7233cc47de61b0971f7601b640c401b640c400971f760df8c2c1da3577b4afdd4ba6569916325a7781e38b1d3b57413fcd90713fcd907b1d3b5744d91b568c60fa306842e6a21995c630d00000000a0489903e47414034e42650e35060a0259372e0e741b662104c4793fc5633a5dc8604b55fd41964588cd456df794582bf794582b88cd456deafcb0010a0e8100b83690014da33618000000000000000000000000000000000000000000000000000000000000000015fef8149293371765381256000000005b2ce9175fd4040f4eab0f68e6aca30125000000000000003a3dc13cecfc8f6ac902953a000000000000000000000000bc066a35bdf8014bb0cecb77b0cecb7770653c0a6a5de631bb21cf3f3bf90f637de1d339dfb1ab14cb61ef04dcabe71029898d600000000000000000cca9f7172cc17c0c2caa206f876c306e7c9004612fa0d41c006edf68d443c213c501f34d870fa93f21e846441bae922d1c956f5cc31335275a980f38f4afd90a100000000000000072d132418386842775e02a025693191558e1ac408d9fe41b9aa4a93e1f8a866e64d645354495705d09efef73ca9e8d478d5b316620457a5220f00164f02c49081000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a00000000000000000000000001000000000000000100000023000000000000009bb9be7100000000000000000000000063c4b60959701515000000000000000090c7560a95c657630000000000000000db4bb44b5f770c1200000000519bab41000000000000000000000000519bab412be75f158a5e6c278a5e6c278f12d61897d9ea0dcee18b3b3baa1b166a9b4b2a3c4b60042df7115d391e3262f0a4ad2d00000000000000008a5e6c270800000000000000000000000000000019aec41000000000000000000000000000000000291da83b0800000000000000e60a070ce9dde244eb7fb940596e733de8dab34a22a06c0f65013b23e60a070c0800000000000000000000000000000000464262181da52899f5044db7e14958b1075e1a5336e55f2200000000000000c8bda5112a0ea275a4c9f06e08f70676396cc10ab8f4572451c72e0eda156a13f84fbd473af37513f9faed12cf2037369a8fac49808c73485e202960c8bda511c8bda511c8bda51115eff61e15eff61ec8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda511c8bda51100000000c8bda51114000000000000000ff0d056bdc4c21e2c9f3a58a015591d75761e3d4be08a3055f1a72f2920b401482c7726eea5312004d3b237351e5c4400000000000000000000000030a6412d9b7b8f2a00000000c11e043500000000110000000000000087b2dc8aa6441bbb87d34cba08a5b5b24e7fca6231bac5db13c2a7e64e0b68c1f97cd35d4f9a86ae5e9c5ee20dd4443390630d5660a058862b57274cd1f057152bc05db215000e6c270287ffdbf6a7eea2e45ce087e5f4e9aedb7ccbf96a415f80c9906e635f86ed807bea3c3153f2dbf794868d7bed165b3e18cead2514eedeee57d7ef052a332c6d7f8f889f07356c78426905aad4fff6a1b8c43f50f0de1e9a219714eaa81c26c98a2730ffd39fb4938ae35e44de925a0202e2328ffdad64a0844c6c3ba3e37f3ca5ee63d4b892b6be04d37d3c3b525cf9e1d11c267076cf26f8e30d9f3c074dfb0f35ada335fa3186def808e086b81ad2e123b1d1ac57e949db44eb40f1d53dbdfb9b8a57bfdf909a2baa3a61d22680d84ac87fc8623ef311900fb8679637cb7f6c5dda243c5734eaaed1e7dda6b73c43ae6d43a7721cf9f57573b9c986553cad39013a4e773a5fa1ff652fa67e33dcfb80d6de13cfaa6ae155b65c57a03d62438ba9799b9906b374114999cdc06a0d3893a166f13171890f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000002652276c835e49450a957a53b981272f6b249a3dad69875a8710df16cb2fa51490c7c15caa1f327069fb1c4279b26a1f1d989943c7a1081e21aa6f34707f7b550b4e19670f0f8865d3d62c4c30a39546946378217d6a095f7493b4417f476e0a9c88dc2b82a9db51564cde1349ed78232028692a37f1b13dbf151900a2b77c687b1a48101f09170af9941d5d95054a2b2686f5772b6002643323600526a1a913eb0439707b7dbd4ab8ea3c0828005270c5a67102b2f6074a55650073e9f3b82165985e5a7708ea71365b823bf87cd05cbb9f845cbccf9003844483332a448054fc7a5175179773234cef872cd9a1be3e2f17b41ac3df8359cb05a750065cae40bef77f232e8efc10726221698c4c8432b9bb230bc074960c98a98e1e9dd63766cbae6846a8080f4b48764660a518316caefbb4694b5e5b25927b343ca6095f46a5a8a06ccccb5b58810d935a01d35b073d08c616f8bc5b352e818034ddea0743ce90f6571c899d23d0324c146f85e618592f642304378855cebeba6c27facd010d031a2a76d685760f01f2681302697708000000000000005214a855df67a80f0051b6728334922c4530e4487d6bd876170c2008b763ce5e2000000000000000c6a26904f995175496018f1eae724f6bb970b013851b9a42f699275104a3940bed9c126c04cab16a1d7b26177147041706356725c94a96556d2f1f68090d466117867722c33a6269a3a362264422006e9586e700185446422028731bd7cddf61e4022975ba5ded42529cac6e24fc8217b6a8165ad2a28211791bce5dcf82bc4f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b30008000000000000005527da3d26f1af6263d7aa2ab083f45e4ecf8138a4708113ad9c4b3eab40960708000000000000002383b565f4c1a433637c786c613da059af938263b1b95122ca2591727faa271b08000000000000006131e643aa437750b6fb9f1af52434275275e660c135603d93357a1411c03f0308000000000000005342d1122845c90fdab7c7408f38a71501a29673327d5c71d3097d6b8d9b580a0800000000000000eca96d346f27a60a4111ca2ea590ee1bbfab5a05713b875134b6b9251b5782282800000000000000ccae93275af1da71dbf00d53f2615644a0b77a68424ef9255b13bc268439412b7ea75f095b1de10e45678234cdbe4f6ae0ad2d4357e4d42714d2292c36a17c1535df414b29e5fa4991e04b1165c27532128a4306c62b4350995408475d09ee1ff7c6b6530a30af425ee9f472723a5368e7b4fa623e07c00d49cd7d0dae16df20fce41752e69fe36d3d19b22a1f73b71b6767b541217da9317ab5a9658d754d7511000000000000005b69ad460263e358d8c38e2dcdd5419fcb3a6d34914c02d4131d34515710d114d2e892cb55ac4a974134af0189d3a6ff77145f4ea70b88b9cd8eabcf0e148597b598bc7c10d5eac5ef256c5b8a5ecbe2466436a48a41047c4a44cf4fbcc63daacfa36f9f15d43024412eb6c40a29337a59df0d76e28ded4665ca9091660c109cfeb1a39021c68ab4d6fa88e1862d76e452c9b5f9b402a62717abf122e934dc2bc0487130443d9cf0889a20007f37a6e1e3ac0fb2063d8319a0e591d37c1f218558e1b2ec1a6203266611cd7275901c052403b2dff97aa3dab321bf38f220a9e938b66103d485ed075626784eeb03dc0d7db1c34df0eda12e9e7b805ba54ed74414a811acc2293121545834d5bb4f4129e7d4d37539ceae8ed620c0a0b73dfaafc835d070feea6b4fbafa50c6975b8c8044396a1ffd80d84f550cc1b7c95a70ea49561d662e900d2b41dfa50e0d39c85e11951e7b52decd610e4daf9f32ad325a438737ec1b46d6f06ccf014563f29c98702ee686563cd431c2534c459aa73ba7949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000e6967b55f2468d27289cae681061844d2b5db0391b09fd24266427596fc7c41c08000000000000005473be1e86daa45a94cbdb2f7ba5cc50f443766d79679946be0147638f5b54210800000000000000a20566689ea39b234b0a1e3f0b04922b60bdcf0d14556703ccf14105cf39c46f0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000d695d72ed2a88c6db0c58771aeefcd2080ffc842c06d3b128b91c7350918860508000000000000002242b735cf18d9519c852c04368fad6290d6454d0fd3a1239960da2b3f9af2330800000000000000c12ec35937eefe662a916a35cc3a7f5e4fa4f315322fb53c13b05572cbb858470800000000000000e7489464d96b8671df0f6668420e476bdbd8c50c1c2c3f3255238d144c39ed2c08000000000000002805c073d0432913a4778369fc816d082adacf62fa5dd52d3b8de433c3191b6e0800000000000000313a332ac515d80058f2f473492974410101cb172d9aeb4188ada26d396fdd0911000000000000001f74f414009e7e1a4f2d1e467a20851d9b898d77633c5204f331f1215da3f89fa3f9e3eebbc4d2aee9d8ffc0e63f9d3a734ce11dc37c5706b3d74dd2f256bb174d95bba9335bd82bd2f75e0b1469178cb5e1bd39ce77c3e65c1a7bdc20719f716c36927e0f36a99e1f0d135651acc807eb55511687728f41c739d0ef6bfe68f8d099386d7514cb7b09f7d2c2e55684de44fc208d848e688c07913277f9bec72e0a58e03df24fa7c509425639521c6c5ef442c76dd77d83bc1058edc99e87fc1aaf9bdc129979f9cc256c057a806be0cb8e6c43aead76575a4110ba89df1a728b126879f1210c8de78b162db463356197503b5947ad15d084b1e589892803a3f1f4000e13d78531265a78e24fc3879503da05c4b2ff9e213d260097aa43c00403987403f0a059163152cddd16f4ac57c15b0fb087100b69acb5f43beac0bb388ad1b45e3d82bf9f2ec7801fa8f692b47fd389b79e70872bd8d1c833e9a9e887652d3b1b22412c34145c264bad65eee436265b7e9987152808254a4fba9383fa96495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000033dd1e1d11b3d80ad5ca835adf5fd316e897bd770000000000000000000000005c6d7c07b44ed91a60a76d3960a76d39dd699f565fa7fa523d2d8e6b3d2d8e6bd844b7549778e60534f6ce670000000018326c5100000000000000003467555cacbdf47400000000da8fd5410888bc5dfea1661d0000000000000000ad0f2a58cabd1518cc2d7e6611183b5ff9099b12cf22e15ab831ec710118ba2d19e9212f75dfa0623f3690164e2a0153a916152a5c24db4a31b395082d7e5d56cefe5218cefe52182d7e5d5658fce65cc8ab5355fdccb858b4be23728abf516678e7ba3248e6832348e6832378e7ba32047e9a0caf6a1e3109f0221dcd105571651695486b871972dca1cc44dca1cc446b87197230af9549703c572623671a57c50fa00200000000b485c23144f86f37ed0664056c376668cabc0a293421f85ca9ef9734ecca0d2cdabac703cee00a2365b7ec741353b4301353b43065b7ec74e0391c06b1541740f5c9f275edb4b176000000000000000000000000000000000000000000000000000000000000000033dd1e1da7f7f26ed5ff6f04000000006bbace23caae7a3c908b736ccbcfbc4c2500000000000000c6495a25f1850a3416bb54110000000000000000000000009f53812a05a8fa1cbdfbdf65bdfbdf65f0e8b60fd7fabd65b236ec65dfc5eb6e49971f53211f085a9bbc344314b0e341ceb8766100000000000000000c5dfa21448eb831d15cab4388ed82110f6f57449e33cf778f159a32b592b549c1c5722e4e28f9457e69804eddc21f2f80563e4e2f95a126ab264677dd811c6e1000000000000000a20f8c01d1917d0af5affe4ccdc3620036a141317e8a4631867ce762b7a4795a4fd47f50aa220f6ab7e3ae4383a0b328e499460ffb87252999d36f3f9ca0c85c100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c52300000000000000000000000001000000000000000100000023000000000000007aabfb120000000000000000000000005d7c42140ee2cc770000000000000000576a1e3268921821000000000000000016319503f8e67b37000000009381ea1f0000000000000000000000009381ea1fa9b27f23a199fb5aa199fb5ae633f24720cac224be6f254f728887530719537513c6e1147e2e682926c7313d27eeff470000000000000000a199fb5a08000000000000000000000000000000aa7a793a000000000000000000000000000000004140811a08000000000000000ffc98381987cb4af8ee7e4672af71515a93e0150193916fee34141a0ffc983808000000000000000000000000000000c8b0001322cb6755151a604be622dc0ae604ff0bc0cb35682200000000000000a1f3f61be07bcc55f56cf53b355c4204822ca35667d9ef11c38f9a746a6afc201853a735f667e552f352c83c70cf1e0e348bb60ce10a6a775a87d842a1f3f61ba1f3f61ba1f3f61b999e4b26999e4b26a1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61ba1f3f61b00000000a1f3f61b1400000000000000547edd4be2bd5c6915a6ee0020964b3c0bf05c3bef31461cf178cd348eb8615c95c0dc31528cbb754011db56b93868210000000000000000000000005e7175704f41de29000000002b812a6100000000110000000000000097fac25022136e0094e752f7a15f2dc4aa28d932fd91d1c13469a2ff91b09466397871222cec6fb2fd9de8b8414c4802998e80b639c319fa5df0dfeb4f674ccacb30283f23c78afc7d92f1a89fe08b571edae0eeea9aa61d3f88ef8d3c5baa15c5e21c7064def2f068f473627b647f7f33b2c68e4fb2ec7fe6dd24dc0aec69e9571306268d56f88e700b522b9b62e0b17befedd057e87931bf5548a2c7144fd6e0b0f893c99686eed13f1dc50b3b5958d5550ef2226ea64740c45f47c23b8501ffa7c9baec69ce948445b650af393ff91a8256566beb8b08481ad40842d7a6b89268eb485f721c60f530e703bba4c8ded929dc3039f1ab478b4605f32499daeca7b61686a2cc189434a2bc09830a46d8ddeb800c11496b5bf58cb24e9e4a0ff22b43485f80f094927da776789f261786ca98c9a7e7b42a0390a71d59b2df37cd8e14e47fa4bb85b8edd315499a93a4c8e6dd89f0284e569ba93e8561cdcc5851305d77f1a28b143032a5693ec8f5599f94baf34d8a5b7fb03ea20cae080f90fca8aa8974ae33079d9d6a8642274190f9cd637ae4df4927a5d08edad15e5d5912660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000036df591380019d1c93a9b02a547bf46880da40074ee04e0cc815ba45e2d4d9414512521316043e4e07dbb76986c3f010e267a33bf7b89a0a5b9a4f3fceb35a32f71bc211974d2109d494a05c7855635a6860f567bf8d960c8f35ca46eeaed51885290d17c4d77b4e4564360e9881af5d19b68c678991aa0a1928fd77c19fae287e09354126ae7b1831682829bf9c361d16ffa30bbf932b52d7e71e25f3366722dae6993d9b0ada3636c0df5744f3ab0ae49dec762e1b100eab385a1d929a1836cd40c26f91a7ec6e92e7eb299addf82fec32796cee51196a052f94467d6da903b79b1b4c246fa77687daa23c08fba402f94a1b193e110d09793e9d2b8e1bdb1a8c35252629565a2a8b674f47e78c6962adc61832b4d15876e28c982258682954c0a6f230d17b2b5158e5fb6227ed062f5d13a06370f2da2d9d2fc54e9af7d91baa2c7a361c96aa5b1216ad53bf72ff7690c1fb2621e8205243e32d4609177a67bed0a32d1de03e1ff6d852420038b8476cd618381e63346a6608973e55acbb0eeb45291111bb9b60b5355a0735ed760408000000000000007e9d50359e217405332a6c6c2b1c3a5795564a09babfe164382ace50492d9c5c20000000000000004260ef199d617b6790f38f0a72638f0accd1fc6f1e72fc64ea9512753c7a8a68e58cea4c73bedf43ee744911852d78254ac3e227958fae26aa5400257424752855250927acaa8d5a8f474a09f3635d50eb7bba48817879024ba98837bf9cf076b0fe472b53e7551c625f9d7600ac42413e383637a4556f42162370627161ab212000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa158450800000000000000234d0d66ea5ca863581bfd154021b227f745de751ee13b468f558a07e25b3d6c08000000000000000963f44cba08b377c35aa27364f53c05d42d1b5dab7c5a39c1af9b131d020a490800000000000000ec57370b44a05a167aeeb503b899d1328f6ac3530c79660e8b94cc50048f6d5008000000000000008d5d04774effcb5506cd7a42c3a0206440d0f004b5ff583b5f5c1a29b558291e080000000000000050e0dd5089c12a189beaff25c644e75ced0e3b4faa9bca31f6e54530c8e2331d28000000000000003e73192301c5f554e6798033224cca120d89d65588088f2561ecf714bf4f855f91bdb373afb1f708072eba0a852dec4417b1ae1758fd0275f70e1423815220261c312a6070885226eefc756602e81e5ec22a7f687ae4f72c3991b13a6e099d2307199717ee671066a29ffd5ca012976796e3fd2538e6ef2f06e5484588f0d31ce4f5db21d2302c5c3f112374b9d4b50bfa5ac6229d2b440d243839739505da5c11000000000000007681890926bdc7d3468c3ce17ebff3f7bf95c34d8a0fd822198e2d49210a9044544865c5cf3147eb1257805dfaf5e5b6e21644eb0eba758b4388c2f7538f6e99aefeb115fd6901bcd931d8c402847ebff1837f365b54b150414a94fe088ad4147f94c460cd5ffad32f187ee25fa9a7c3d5399ce38ef0da0c644f64139f42ab8b16a9bbcdded003f4b9cfca878a9fc28760516b6568a256b4b7a7f8781818b47532acf5ab9dac7d89143028d1dce0538b2d87e3ae025b395cecc4a78447145154677424c29df73ea3b28d6479e2844b517dbf7013c64838b4039b93b5e6470116f128bbeb7408665725c08ab019edde3d3c68f7a4ab40cdec43c0c88a884f74f07f5a1921c625bcfbc97a094c3190fc0a06040aa673aa3e7de3245a81672ae46384b907618df7ff3d249163c14a3d90827acc625b6eedeea42e9fff813901e70201c0fd76a5663f8ee3810640cc09bf16984031b48e61cea34c720637ac693f1a564e9a67dbf7a948829fd20928146f84516b684fe7288bb4cbfdf2b7da127e99986e710caa1df015830256abb1c6a1e6ccfb831acec26bde1cfbb8468a401900d58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000096bafb75b204d4204ad8d05b61e97801b12eec4e8021ed6f3dfdc8263567cd0508000000000000000b300f65ebbc64234ee9c11c022710708871546aae1c27449e71e71ce3aa852d08000000000000007c72d22325a93c5385c4e6459d8b6e6c313350344a297057a0f72709c7eb1c1f0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a24450800000000000000415b4b1f13f094779e5bd01c21292c6983e6a52b74446b524fb2ac32623d36620800000000000000013ac967c9ef2201e696f569220a122108edc340207bd526f75f2b65e92ec671080000000000000002b7a66f15227b4452bdd83d4fd45f3a19351e14fc4cb14398ff853ec5dc1c2c0800000000000000a1a690296d77e609ec42d93e9baa442add167d5adbd55f0016e9a84084bd7e6a0800000000000000b013bb18eed5c917303d3c587cccf138836ccf625bba3827f2d62e50ebb0082108000000000000005db611346c72de06684e28060d9b8a1f27ba59696b24f738055be725ba820b021100000000000000193cf1ee345a64abb644257050bdc73285fb97af12e9d94578e3608a15b6ca1a992ef76ac7fab997a5460973adcc4dcc82848e1a2cc5659d9bbbc38e923e3125c0ab7ae6d6eccadf1cd599b7becf8b2214ac13f570a78459350621a2f4e59e3d6f4eeb0dd81ea19ee43bd210c3a151277608b0bea8cfec803ddca9c0e71d2d0e2ccb6c606ff6f5a110ca22fa9cde3477c57bd3e3cf494d281b25c81c923f4bd82d4d5cd900139d50b5b6d29c8cba185a52eb846637b3ba321a95a439fa6e92887a7a815947d6ebd1df15e81216c7c97748fb7439978af4400ecf4eb1f15edfcf8f7795597ec82f8de841a9d087b0081fe2654633b04b3d1ed305e796a3dccfa3ab1fece9b3cc8d04e04650ba93a5e7c424b317b342b55bb446349a3419be5c52f5d46bb324c02b29d1c3e9d10fb9bd1f4c02a875eb5614b17e8392916415390f5f539a5bf3e7d9766da3c05d9760b37b4b4b9a9942934d12d65988dbce98e3bc9b502873b56e7276ecaf4f62b920117d4fc6f52ef48b833f8033a6f66dfe6014b96328056daa7c3650c5db90bdf45dcf713ad0a266cbc3c0c1f5aad77c374523c3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000020b3cb5675aeed35f4b6e75a995d7d492a21c03a0000000000000000000000004f85e927dddbf221ae6e1848ae6e1848789b3804f32a483832ed6e1232ed6e1247d22e4c5983af512bb3ea4c00000000b9824b430000000000000000bfe4bf31e21f934100000000a9b3354fdc7daf0233ff0f3100000000000000001930cc21bed77127ac8b773b9863590acd21a120e24c34214de8bd2f0a1d1b6c5f3b6a7133e5ec0c4fdd135eff9d8553d146c503810d320d11497651ebe7990c2038691720386917ebe7990c0ea2177585cce94a54e396056ab83217f384c01c4948175801155b1101155b11494817583c592308c2d9cd5419e8a167d656c35f7a58b21fa97c502622da3a2922da3a29a97c5026b03ea462c4ad5259680492410f7fe71300000000bc28a2660182f206b0b1a7283c1e5677c983d760f553f671525ee73722c89f0ab2ef950208dd204350eee83660c8327460c8327450eee836b46c2a3e46259e020c1fd42ca6083b59000000000000000000000000000000000000000000000000000000000000000020b3cb56947b907752096d0500000000204b8f2424abc70f09805e1e1b0080692500000000000000f44dc8124bb9f477ce17452b000000000000000000000000a12e9c324deccc5182a34c3682a34c36d01ffc2cb6d03430f6b4ee1b7611cd4e097d39281595a51745691a1f2467b739a6d595400000000000000000e1179a4b10e58b6c8774dd1f3c48664df0101323cac5177325d127017a805b24bcb5b9085a5f632d53540056518b376c9138b44e158f2e6e2880cf273866cc3b1000000000000000747b5732c849156884f58f526bf3ca0b3844ce1b035d431ce3c6786935e0bf5dee232e070b0429561597056405d3db7266e475689676ea58740550702c28cb51100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a54000000000000000000000000010000000000000001000000230000000000000048d79f510000000000000000000000004808fe283ec7cf6a0000000000000000cd85b72cb83b9a0b00000000000000006bff925a31e73f1900000000ba9b9c3c000000000000000000000000ba9b9c3c249b2f1f55826f3855826f38a3602438c3d89b0b68d64f0156f03275fea4e30d24be91120f60b164401d16310eabcf5e000000000000000055826f380800000000000000000000000000000035ab7d3000000000000000000000000000000000eec63d250800000000000000ad36685f4e7312660f6bdd01e168a9408ddc9e025b692103defc9733ad36685f08000000000000000000000000000000393dd16c9adf8222f15b50334259b65984f60c2466486914220000000000000012214a0c9c119b129845f425716ae7111a65f81e10cf985b2b2d0d00ef59144aeacab2395e9bea49cdcd493e63647864a5cdd203acfde0754328637012214a0c12214a0c12214a0cdc04fa61dc04fa6112214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c12214a0c0000000012214a0c140000000000000091bdd25395b085165cb89f2fcab5b83a6efd180bea26ca5dd3546160577c980b713045774b3ba85ce2404301e6155e080000000000000000000000002a042f3a208f4d360000000043753b52000000001100000000000000242ab5b3be35a615c8ba5ef8a97e585cf455a6ebfefc8a07b8ac2f74042bf0f8265df2def2b625061501beb593bf9aa916afec4872148ecbce4293521a81153f4f53dbd7af58cc239d35d0de181592b4711fa0db0c5e58455363aeb45fd6501f5d7f4f50fc09c636e32d0d1e1d685e8f245b0243f3a6f140700a1496efc0c04c6451854b749a74c02c4ed5107f9a06fdeb2cafa6c7f7cec9f3fa6d4a0f0af1d4301a95fce6b405e264a30d2b2232bfdb70a9501ee4151f72d4a788493f3090b50135b223f0adf2c3916fc3cd0517e26f9f716d2b8bfdee9125380e09a701e18588a988d110ee46b996cfc5b42e6ccc5fc12a9385892d40fe4a1ad0ad891e649b7ac1f5921ecd41ef5e5e449f7b09c13ce9b6a03bec22996f53e88b8fff35f9d7ce05a90ff43f3eab30b0790894426086cf06c55f2355b973acfb632d2ff545b1c63cebcf94f6486a9e10f7c31334ec1e01825f1bec283e36e38542dc54f19ec14761a7766c14d88adeccd9b617791593c0350ec3b96345da67db9e6c7f03f08c8868e3ed1b16d167b9d0cdda5cba0980942c9dddca9d647568b2a04da32a5bd2b685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000006c2378774b033d4adbb7a0335d3b1d0014f8f9497db0b63700bb043c0d633d4e958fa73cc1aae373b265711dc0ec640d3e0ec24034af5e5848f075411574e932cc78ea2d2b0a6e1b2ddc8b5b3056fe2965605b252981a14bf2a5b30bed3753046d030534d307af2c066c954f63b7f438cdf86f4a060d421ea46d87603c603361c0dcec4981c2745cba78083dd16caa573ec27e503f29f90ebe3c7a72c833c947d5f4ba08083cc80b4c104e2bdf96f721ca42d86063be5928bb171b00ee40d6583e56981fc228e1202f0f5814f8e34654e1a4c0309d0abb1c6c58273f44b8a474ecfc594f9ea23e471422b6625ba4b907109b584ea849d8487a34b21de4fabf45e8421a16bfdc0d13cb79ae66caf579547138a43b30b5c70920849b212bd04017dd4120265becd00b07818c1af226390039cacf6fcad522058bb6c4227859f114581dee6acb0d8c2e899c2d49402c5908a2033a05df23803cb2f5c15f7fa4d50a4112025079f53a30d8811f5c5cfad325ea0e5563009d306acc66a0227357df7555c3064421813f161268450ac02ad06f080000000000000066da912a01f9fb05df2dd55039ef0d0091c87b2a5e1b1d22e8a7c72fb96c9f5c2000000000000000ab61ef611d384a5c01ff3140ade3bd3e69dd192c73c2d15f7c2e2e05ef62a6476153ff6ea07b013a360d3e2afbe41343c3876c211d4a236af7d044547ba3794de39eef602fb9282a72013f72bef90f3d4e9da83409e6973ab161074d2383d56a5e692040477db44c16743f02f7dcd6179812b728646f384c19adb4247d1ff24f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a52080000000000000066ca093f1b26f23815682a4d04c7500a27359065d0b6ba3683287d18571778660800000000000000597b1e62719eaa1d4e9d9b447e3b9f776857ba229b06e66acdfca2179731c15108000000000000004a5e52683beb2f22e72b1510a71b2e133932602b8d2aab3d7d6d0f243d1ad32c08000000000000003d0c03133e239005aedf032149cfd651daca593ef3b0d4634df88a2869317c1c080000000000000077629c73c170043e9b8dde42a363da433cc5c6399f12fa264f48625c968889682800000000000000a8a0d82a6afd7931709b4c190215a86f1a034a034466dd1e4391ac08b508f55471c54b5bbd0e6929ea0b80603ebbab3afe511b4e0e595a68b1807d57398c09257f661747239afd45cf509a2a2957eb75d6a7842e40664b72ada48959686394541867eb3d4bef3759cfab6512cf9818666e48fe607c16390794735818d315fc58c8286d2f774f9e27b7d3274b587daa71027a7e6eb5fc9b31f1511071c47b46721100000000000000667637f09f62fee8c55270bf176c5a2d1f706940d8243ba84e96d1e317a360924b79e6aecb041d9ba995439ea764986968b3a5315ff003f10009dbe71e9bb9d51887c41337b641e61280c9f1149a3298b037fe715547e50cb49b188b949eacd06e8875cba1809b7dc45eec39248a435250753fc34b0430962638ea52e91be3bd9a439cd2b1fd8b53dfac5cf3c58131a98b62a63ad2310e722f3f13e25d0cb0391a589ea4522ba9ebb467ef4d035c4272770bbcdf8a97ce3dec0b777485eb637d09b3e4b659101212a5d2b4b176d37a5e8f843509e53271f1f37f63b5389632deaeff9a41cca639b1e851a48fa5d9450d37760b3b0e591d8a41f871b0e4a1ed0ad2dbc399e8539c4b0d7bb95000359a05f2d5c9d9f9466b4652a97fbd4dbc9377ce2f02bf490dd9442be44e20ab74a635751783ea5a46cb73f4679f8816f95e1ab6fc6408881b2e9d44386edd557c9dd642946dce42117a3c0cad3a0e9a3a2c3c8dd3272fe6a2760c206f9c20406c77c8c2ebcc340e3d52d51e1b3c64188c9424355b18efcc610cd108a818fb8f8e340674bad6d7b1b6e27c306eb4a26eb0d78a6277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000000049c43a5b44021147d118408f5333221aded1048175dc35ea9f5c117cd9610c0800000000000000d5007e2ca7bb5c65c4999c511c622f3a11a3da2d8dab987556bee55084b6521b080000000000000003f2f6735ff7162fa941853415e7d251a81ba41e1c6645743726b9267f81263a08000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a2445080000000000000075c5464939a687615fd3424ff3656b1c73b6b40dc3594c0b6a97b96dae39c73908000000000000005bfc5416d4a82841038edb363f43373effc5363c228af9647ef99a39ece756610800000000000000dc3f5861e9df3e19a0e9766ee954ed3ee8641c2f12926d3375183d4cb42d46290800000000000000ba53162e14efab620c89c735daeab85147809420336a710921108976b6958766080000000000000026d43c708c5ea0718d459e13b2a1a1164f6dbc19421b9a37b58f82111c3ef71d080000000000000047e40e1cedaba9622762051370204933e3d91a670fc13c04995b103f04b9de561100000000000000d449a4978944194e449cf1508a91ce6447f7203c5d9394441923161be031bee925ac446fde10cf0f297bd0923a2caea855509a1897e96479e496817f9fd03e9c636112aadeb3b04d5fbd80f173e7604e6997e1d3f88b8ccfe5826e1ad19454f68524e15919c92b567d2d55c557f16613a82e28e0b8f1b6337d49dfd41886f9f5f8cb827d9a7370f1d7e3d1f6ac58071bccdf74a941f4420f2df318b0d314bc2c6908b7642caf67d5cce006fd2894f3a5d4e1bc33519ac3083e57e80cdb90d951845b5f2207d8e9ba878c4f2b3fe514f4f1b7664eafde50e27e042a19ff6eaf870c3032ea765eeb7c6576b6ba6c800cd75d50351c79201162ef4f6098baa5cd9287cf9dbc4a87f2f700dcda18cfb63609c06c012a47b0c1cf70c0e88225e4a514f3f2f47f5ca3bf1eb6c0fa1de0080e532544c4e1c0b7f9244e650eb9545ea4713c78e0b44e6e0c6c8f0015dca85d1fbc3122d2fae699f1ed691bedd9dc4bcdae59cef593fe1cabbb3c2ebbd483cf5de77c95dff91d3a2b1e62480a394ec71f5bfef0070c833139975a6599ce47b4b027b0dcff0487460162add11df56704f6e31baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000052068b6907e9053974f9934471f773620d72c36b000000000000000000000000bb96660e2fa16066872c8f30872c8f30aa2e104b5d998d164d9bd43f4d9bd43fd19f415ea3ca7f4b026b5531000000009cda465b000000000000000036c2ff6c59145f23000000008d142c3cb4fcc03d4f1efd0800000000000000003b1c3159f27faa0ff375f1158d5f0e329446be1db0f9740ee66f580b4251351295171b25b6c14037264f2c33113e5f57fe9fd56b5bef4b4586f3415af34a084487f5ec1387f5ec13f34a084458612521b9344807d3f9af68230f6321673ef66271c7aa0db7197f47b7197f4771c7aa0d9e378e462a70ba15b5499b08d38b480e4626f13f5f35802c1824a2361824a2365f35802cc8f5395d17ffe76cfc06d5481730a94700000000aa14f607a2fe422969421b0304d4b15b692e8a63c44cdc22c797bf13889834515ad8af4fba065e0b503dec35ec59ba64ec59ba64503dec35bf0cee42124d314c672c961ed9e2e452000000000000000000000000000000000000000000000000000000000000000052068b69abdd5e1484d93a230000000044aa5c31f0b1bc0363f38e1363c0925925000000000000008e01aa4d626161524bce3f600000000000000000000000005d6d09326dbf10105b05e5635b05e563e64474663876c0677bad095c2a4fa6441eb4e64f00dedd0f15bcaa4c322f522a0838a6420000000000000000bcbc073086db3c2c0b696366d4a4e12829aa1b59ef130d07653a80341a6e5e2dc337ca6a8bb15b136e93c6684b4f0654ff53b839b775c93c939f9a0b29f891371000000000000000c4f75a31f7b4ba3a6443ab1e533905767ac05c1c0a3fb24afc17d50e9862266f2fbe7f01abfc544be8c3af1ff10ef576af3f1d479103bc4d1cd88109e271051a100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000afeafa1a000000000000000000000000ce0ee6746588e44300000000000000002db69614fe6fea1a00000000000000000ff1c263d15d361d0000000047e3791d00000000000000000000000047e3791d55d43c092632732626327326375fb76ff86596180737ce4bfd3ad3249c1f9b445e753d57507c6a509a6dab1b7747780b00000000000000002632732608000000000000000000000000000000573eb261000000000000000000000000000000009174683e08000000000000001d7a496579b65b0297eedd1860580a5a0f6bb615cc199a5c177a35151d7a496508000000000000000000000000000000cc0512501048cd6bd4d200360a68c2708d9aa405b126e437220000000000000053962a04aee95f170dcd51712a29f10b866a0c43b05e1a47eceb736cc5ff995b303a28362b0edb62feba8c6fc3c22c59569c040d5b53cd312b80867653962a0453962a0453962a04323d292c323d292c53962a0453962a0453962a0453962a0453962a0453962a0453962a0453962a0453962a0453962a0453962a0453962a040000000053962a04140000000000000006725345af3dcd26c3d18a32f2dd95392f0c0b076179f00c42ed1269982a2275eb3f8b3d8c9f01211b433f1a13b2306100000000000000000000000074bb50155cd7eb0100000000b94eda0b0000000011000000000000003c5fda20e1be79e1e2acb3662d3442494dc87c5f0dce4b2065a0d5e6825cf9441962cdee720ae9d1dbe5aead9a123762b5516bcc40ba311b399291ecffc32f08c79629e95fd4726bc40605a45d91a18e220a770d4ed2544f7e661a33466ac7af20e8e06b04954f66b2f89fe63c70bf98f73ebe98cca34c35e8741bf14512cd6f71883a597c49aea9a1a687c8096fa71542bd920de53df4d0310678f57ec75217be7e5b635bdc588efe4b3ead8c6865bfa3f355c8e5d255106641d8867d985af871f1b6708949f0eedb690b5114a185e7799992443a630007484236753fa31d0a84775752b8dd45d69ba88fe8a7ea7b02d567db9bd1c36faa0cdae6189a4f72b8a3a795e7da2591e9ffe969f59b9bdef72c0aed024dfc7fc588b157a04f3178998aea47358483058cb6b9b5b63cbe6a652aae56c26700777ef721f3ba9a0ada2007d6736e1aea847eba39eb19a200e17a857e48b73f33a24996e56ba2ed14148c2d2725e19bef5deb350997a142422413318e67b71861f17ad60b3516f11a19691352915bb8d58bb737b5f8b71a80e86515a8ea255283755a95db5dde1b4e1d906db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000025ce1b180d833b1afdd6f4130cf50f6648d7c46413857b01f45d703caa6fd46d8131f14a9db92708feb3554a2759fa6356da775d4e62096f05243f6281707b767108276281de070d35f2211b8635be7217c36c1a93424f105e95f544b339385e1597c61e1266660837d80f07f97d992b65f18a4420fe9232077f6b5c4f8b771a4f35eb025ead6b002492ac6b3f6b066fe49e6a751c96d42548f2b861e27b115efa9af43a8ef4910ca295a7317d260016d749d96105bcd74b54d76e58ac470170a8a1c25307f51719cd722a4b50f3206d6f5be929265c6a08b9dc0c09a7a5a70df88a963fde23a140867173600f328329a995c143a91bdb2c4b209c457158b64abf100872f6602f373343086b86ae1276dd5dab1f496e4a5898723a73447bf948a8d4ef50f5c9a54bd960ce29a7d61828107c0d288ba5fa44aabd4f120c42f354e6988905457d2d4e1a411075b8a5aa38534e5622fd34341168dd1131d1c3a755bd76605d00ff1241a1f7903e0917c70f00a15134c3833f0bab94d56f3020a1028ae9a77085d2902ec7468271d04094540800000000000000699b8765ebe2aa71abad3a3ec962fd29f5beb51914ea8505ff788014a586720420000000000000007ca9c2428b38f51f7363e0194d6c97348e92ae42fecc6d608b01745eedd2e762c8c9b907fcb9d10d2c820d452a808226cdd3731a698c66515a01c61cc510891bdcc17e5e805ca03251f6da11d03c990455f8721f9a11475697c2ef34e624f048ea84297246d57a1c13dde3096b4563627fa28060b8fe416b0d78cd4a9258422d2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d0800000000000000bab88c131ae358605cd40e18ac335409561011354ec2683b5024bc51b3d301460800000000000000de5517543fe68c4ca995004ca199f56589691742220fc10805abd44ed3383a7508000000000000005abfae2dbb24e435aac91901adcba02ab430124f27b17751b9c1303925f11c3f08000000000000001b134d5c5ec119643dfc402cb58c9245c688ca62fc120f441aef2e5c300c5a3808000000000000006009e518f499d918359f5610827c8c440bbf734095576d1295c8aa5ea191fc23280000000000000010758a16521c26582aca05412d948444453c4d377a3fca2a295dae59bd32151559646e61d03cd25079e02d6c7715280f26179c203d1c234a950e4711867ab1061c157f53cc15b736812057136ea46f12fa32526679c6134fcf31ff6aa6ad8d61358a815e10f0df2e692cad34417d7160b09e7d607b649f517e1c49589d6c7876b55ea42f89dce42faff4f9339284834c0d52735880bbf02145717f2f671dae561100000000000000911fcefa5df19e657446be15349082ac9451e229ffb7a916c6d5accdc180db278152bf385b3cbf4c5e34d2814713004db0722475a0456ce38469d751ddb95ddc3b2fe04f6d03b0abb7d3a1dcc9116e5f3c60c9645db3ffcd9978d48e9a0c29f2d348f9f7cbd6a5262f2ed7eb1a2a3b3728dbd753d68c13d0eff5fa7534842a656865dfb703980ce381bbaf7f663ed5300ae3c4afcf331569052f4b3a3047f144fcf9339122570e7d7c8d1902a355cf6563e0d9ee91331df82970f555f1fa468d5157da2574acd7746bccbdf09bd31eb413311205ff29ac8bc4f8db1e39f5b10bb0102087bb5af5e8892a35ecb2d9664d10bd0d368288a9581c783a58a15dcac09cf2d3645bcf070f344b9c47fd33c459fc911363768708bc2e58cd5838e20a00f7791ba214d1d3a180a29048101a00c00d4fc2496d9c74dc3c92369545886ce1a381c0362765206000e8a8d0d53502aabacb9a1ce7a125b4247d71c042a62746ebe1189f66c3250994b57efda0fed032ddb744756f81d269aa4ec8be9c407995f737948a84fbc81938d09ae1bd31b49b105ab0ad65f2ab56e606a30d4541db17b0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000f6452e303893e92426c84d47bc082b6cf0b0f3534829873a0d40ab2eb454c65a080000000000000032c6a877e2fd9302dee192418101c20ea5ee8a2d149dea3dd4ebff581229fb7608000000000000006c8684639f5a9d7512a25b1f619abf0197d0a2544e36094a019d0016965a0204080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a2445080000000000000041514f5587d0e10d5da3d6405f93fe76341dbb44e32ae067b2729a51e19024020800000000000000b9edd830c9d1fc76170c8b10a6c0d6526068235289e8333a9463bf4c20982f1b08000000000000006cbfe4657936bf429ce34541d6e37c75cd823e1fc15123527f9a806a3a6aad5e08000000000000002a6ca46559ed7b0c2c73de2e0fc12e6bd5d5ff0127b85473bca41413e74c91030800000000000000a434d54ed055f311f8eb644f14f4fa37d4be6102769e7462196e986da9547b6708000000000000000ea994546965e04be989a65e1efa3c5045a9c606bc591c3ddf1a452c7c35265d1100000000000000d9029319e79b6e74501735dc39bb300d5599cf0b7f31120a9f62c207bc4b1e634542610c9bb6d7c3a4ed921e51b029457d7bb258f19a9c8f39631776447a88ad47322b3eb05e7d68d1349ce97ef8671f0d77881f468e83f54951d3f71413f6e319692c98d45f686a6d0ba0fba86d51e8755dd6d5d50aa0afa2e31b9e259507d6e08a8d6313640aafc8ccaa4030db39d4e8f0aea2963190a397f9e2c2af76e9feecd9cd866c4d0f150d61811a327a3468908058546d2f6009984e9d54e4d9e5fddc2492c9e69eddd2cc9084362efc4ba605a47ec2ef6d309cd1e8bf24183de64d10f790bc0865ee24487ea56dd891477a410d97d2432249baba68984371ed0e29d8a1d00ba1ce15416dff8e39efefc5e47e89676264b52b253e574545e6d0476019581786afd4d42d2a7eed8cb93ac3ec3c40c9e8f4aa3027a3cb2e538cc5c9b44528de1df94033f79b55a922b4f06b6291d57de7a29e98e1481a867215306b846c8ad75f8acd17cf106f5bf94a0ae69af4e5c176319d17b0f043ead6786501606b4f82b86334aac189edf1ea77c0ca98063b6aedb71f5671bde129d96b3476b6b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000853f25439b458815f5cf6166a1aec71130fe296700000000000000000000000072835b5818edf2045b4eae425b4eae42ddf7e12011ee480ba77bf215a77bf21573980e056d39cf7317186573000000003c89b06a000000000000000046a76f5af8ae8c2400000000d2a02c0ac9490653ca5bf538000000000000000045add567bac9700705f017245f8ed46899495f577dc0da34e4ee48430637de51ef4c8112911979522cf66158b19a9b0739f6b6546bb7036816da81210ea5301433af5c5233af5c520ea530148a63cb4eb0d05807f0518249d79a511176e3c9340edd893da0147d6ca0147d6c0edd893d6657b71118673c2d68a22c602195d53edfd7fd0495c63004d89ebc73d89ebc7395c63004cb27a645e1090d202f94897145a45d3d00000000bfcad31eaa02c84638e21c6e82a53d4dc3b61111db6b262e072b9968e04541163ec17f6e4190384489852a1ef3a00462f3a0046289852a1ee294ef38f8cb903cf897ea3dccbdd36b0000000000000000000000000000000000000000000000000000000000000000853f2543e2941d1baf872468000000009b2e035016f587086b697874dc660829250000000000000030556f1c1f2ded6754ca2d0b00000000000000000000000084143e49a727684d2c01e3022c01e302cd753329ba75921ed3a3ee6588ec112867f82b4746e83e442c96e33ef437b973f0e25e5500000000000000003112ea3a7fe41c206954e0472175835757dce12d0201a34191fe9908b659e03827de270d427a2d35626a2a5bcac7f12a7b6ede69dde198285a042729a5e381661000000000000000bb1897323d654c092d28394fddb9583e6147035a67b8c166f41db60d5a6c18650d31506f563aba0444d95f3da20cc648f652b1495329db018fd69f1ef7406d77100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000e7dbea2e000000000000000000000000ed2430050000000000000000000000000000000000000000fab6ba2944000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a54000000000000000000000000010000000000000001000000230000000000000046b63e39000000000000000000000000d7f73c00e5d6de1f00000000000000007c21105001146d720000000000000000ce26b44094e90e6d000000003f2596730000000000000000000000003f2596730c4c4a3c9f3559319f35593101889c16f214e6512f37352c1a5ea73aa5d7814e33577104ee0a3a11be432f275a7f1a7000000000000000009f355931080000000000000000000000000000006416e245000000000000000000000000000000000d61371f08000000000000000bba7d585264590d0cb9ed6ad836eb3b96b38176c03a774509c6e7440bba7d5808000000000000000000000000000000ef8d8a4dcb0be7640927626b7dcc234cc4d69f1343800b002200000000000000be0f3f663e4514705a5a063aae67901d20957a473e9d4f6584847956d16c0f5017ef61048fd11f26e9da8205e0175a530d785718dd250c6bc8d0f968be0f3f66be0f3f66be0f3f66e7e6c66de7e6c66dbe0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f66be0f3f6600000000be0f3f661400000000000000a6c0c91145230c6f7bcf492670148c5af544423495f391569d9f0b68876ea2462310dc40870abb041fc9cc68b923b63c0000000000000000000000002b073719327d094f00000000c09f4732000000001100000000000000b111d36e93540ed0c571e23d1924ffcb404a993c9acfde05594ecc27cda095fdf4b45ea22cc921c58f64fd51b9d98ba0f1b18f2ad0f783c15d611a4304e002b2b096f93eba070865fd4aa3e02905f8e9248038f9f8d6bcb9443897677d6ad36bad1a4667f8b1ee315abcc1fcdcc1e1ec4168105c2c5054baf5a884826b71d49fbedf4f440e2df7936a30c4c022f58855652a047872fd051323e6d218fa41880c427c6c8abe4113798f4fc986779dfd8c0973e6f8207c4e573f910d17be2a384dbbf317c8193e7a3287d08b2d2ba7324577d2d64c629a4a8e2705e8bf7c9bd33854796b8fe672e06a4ada1d1ad15ae806eb4fe07e0e969be8a234b56228f3d1e8dc73b9005d7b394bfcd33707631771efdb6d5796413842d1b3fc1652fdacbb720469957eb09f9bf657bd9420fae2d7774faa3b269eb19752df34a95b61dd811640a93625f293d338a9908dd936fbb40d0ab1b26afa25238aca5101b34559f75367b14818047ce44bb509ab6979f6309cf20b94f2f58b4a3d06949139e2a018a617b83fd072d57ad7eba23afcf13f341e2c9c671020f2582cb7bc85031ace7387b901994b7947f526cb06f2f7c2b3c57d149de14c37ded3880b9647cad19c0fca47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000aa52d01fb9525f168645642f3dc6e2065c243d6abfbb391a7ad3f16f0868fd4b33cf4c717f0d817336675b53c7dcc50a162d53723724c218279d37578125974bc739ae41a396c317d0d06548907e3b6a56f72606002834128e582a56303c255842684a1601fbe51ff5bf5a0ba5aa4d2f3ae6f5407d238a1effe2f0546c7bf5353280b46dbed9a716bc8b6f595eb8276efe91fc1206cfc33ce8752036a1a4ae4792169926389a5202ee86716b692b063d2f11e603c7574b35ecf9f832d3e7330370822638c31c83402ab64d5fd96f424848fbcb2ee111a60c758d4e4a6abf814e6e1f271c82d4403834108b31ad0c972e7bd0886c84d196372a44273ceb41e718fc7155120b78e3234250c408b8a5ed0579a33c00dbe92a0dd309e80fc3ad004328230b0faef155665347425859bced0631f74444679aff46144ec7365901e360a896466ae3d61e441664a20dcce4871fe4ffca169c2460014252db66967e2e476f280d42fc76da5227c39a57a42acc4e4a8ec017686e760eb4c92f6f383ec36753238636e1d4c409d808ec6af30aea4208000000000000005849382e93ceeb6e0116a000756c6a4d2a036252b32ba109f6b63d1627f99b4a200000000000000091be7c02ec80706231357f3de6e52f732709231202aeb80e20ac680caa7df8183051dc2196b100503cd1e92c3f9b7c6b9e87f8260d029340d00a2e34129c073388e75e14fceea163f8b7531215f4546ced91e611e005c51600588c4db975f3309f23d53a1fcb173ac890e46ca3a68b65db86ae57e72ea96b7e86f22359c6ab722000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b87250818000000000000006c265342a77fd70943cff94d40a86a4450323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d6143694d8b89b2004c72957558f5706acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d08000000000000005812b82c05c2e6525c9ce601a56b83486ec7641608944b071af294035405e10c080000000000000096b3f315ed7cf13163a70d06000a750f0007a850a708e434a7487c629154a81808000000000000000a5c611bb6cfdf4cc961c65594d40218854ffc522c87175d7aa2972298d2496e080000000000000007d296609b2e9a4d5d70654763af271519a5b120e410a91e4fcfc463b68443350800000000000000e201f565f3bd2e0218c38f2a85fd6e255f412956f4aeff0a11787910d3f4662a28000000000000001f6e9035fa34302b26b4b611be023c0013f0645fa10a19453d3595283a8723765d74b93d0c01177592d7a558f8b6de00524beb39d3037b099208ad44f02cf068b98ce04e2842ea3975973455fe43be32669e9b40b2f69568e228701022be6077b346e61669af3503d80f966b9cff83365894342ab320c8012718196c0c6f1c39a62acd0d738ce600c3ddfb68b315a335659eee7354286c1b689f13246723c16e1100000000000000acd790c1d7e53ca17f11de5ba370d1c70139f2d66546b4c0809456462cdd3d6a6211d24b0bff778b7a37eeeafed4aaa21926a3801b7b2c66b2015e9be0ea0d890c38f28e67320e2551c3145e2114addeed558edac0cb3f103a4231cb402c3ff0316ebddd15eb9289001bf533252aca7ee1aa7a8ff246dca3ccf478b2e3deb2746dd8397575b9993ed56ef4cb97b9632ac185ffc84d693f9f8d59d34857927dfc748e79c49aa491104ff15755ce18254b486ad8fc72332adb0a3ebe3560f5ee5975d6b1cda119d64144626630ef88db4ace02419fa104f7cf804c820ab4987e9db4bb7c4916f54dc85fb6135d81821d09c6b36c6c55fac4212c05dacdcb8043dfb83aceae4be7e95e2cd9d963a166b8b402e413357939e8de3a772eee94ad9aaa10a0aea2db8dd53e084c14feb64ff59112090611ae59c9af752e04e52b33e2a4471df7e43044fa4c6b36533aae215619596d4f3c33e7919cc8ee6cc5482636d5e8095d3cc992396b7ca1924524c8147e9ac30bb592f55fffa98957b9a22ce9dbabb3f0c5999cfa4b8169c747b3ecaf4eb6fcfedb70a348ab0d0a765178516dacd7c12418dd9fff60e29b856b12713b0a31ac4c585c5582d624c7f5e847f38618c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000b8f0df5be2f4681a236aa374685f011bc5372061ac4d070c8cd1d00b5b16fc150800000000000000f39de84c5326eb29a503e50ac6719b5f6bb89723b4b1b70c3d2dff1c1e503a2f080000000000000045139f21695beb7258f9c82f9e3ec723ba46cb67b7b3231b79278a6f353b633d080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a0800000000000000204ae4671e21146da7d8422d5c76580d748f734a0108e1297e55e25c6a5acb310800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a24450800000000000000661d023f8b5277429cc12349e4e0bf1a31b9a726d5a5b65129595735c5b46c0608000000000000007cb016175af9ce239a41931126d8ff184fddf43ea89dc615e94ba463e9743d22080000000000000019eb6963b1856b0d5d9257295c57401acc252214561f5b46a54a336966c01d610800000000000000630ee22281bb6c0114d00b75b8eede612a458933147eac294b4a6e714ad6291a080000000000000052adbe00ad311d673996834b463f091ef46f6a76b785b862e734ee17a36e36570800000000000000a089fc233cd6f35d791c711ec84ed873a4428342cf55c54537a50134259c25141100000000000000f61e74df476b72431e26afd8b44af633238f4141fb16d0926b163a78cf105450c870164b7d2a1c576fdd9accba38c3135cec3fda970bf041f6fdf1112a61966a3a301a5de81f6c576bb735cfed005324088390553dce09ab7993f5cd158c41d104550fb85489d03b53c758328ff6cd51d083b1ba69cd3476355848cdb20d4e3c9a2ffd4e6b5a81912dd32f1c32a22763aed5b199deb954e133519b957c402ba034cbdfda1eb7f95d25bc93b7ce54ff44d66913e6dbfc750fb856f6457cce09c44775201fb2b2ca295a6adb02a24829b70195f7075bd5f0a05ef0ee3703929b78e884e31e7b1660d15aef720c517cee267df016201942cf69030cc8820641cded0b3f27401d7d683686ed9d859e39151d41068a41d42cb77299ae65e351664c9fd30947a001ca4d1ff23c0023e1ae0ce4def3923fa1e69218421cbddee510f3a59823c03a03713b9691571f05ec6cd821e58e0816a12556214723bc2f4b240e74f74ef385b381113a8eb8a69b9640b6e44042d4c01805963b92ece2b48c1c2099d28138f49796067f75f8e85ff3ffd00d78e49b986e8153794f30ab474e67732422bf98fd492a759f352b4b82284a1b0b24bec1004fe9ec750326e0b5c9a929335a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000004e1c9a0cae84bc4fff57ad19a7f564146810692f0000000000000000000000001490e42429c85d1131c1b31831c1b318afed2025f53fed35438d920b438d920b5b2c9e4492a5c5666468f15700000000f9270e5f00000000000000001cf874320b304e5f000000000b701b0a7b651972d0557e6100000000000000000e3bd36a5d62ae036de63333e79b8073c2acb755b4e3656b17346c491ae0b612ef429f18e6db6d2a533e7a29e8350402533a92156788f02b5f57a863ee3c8a4c2b70af6a2b70af6aee3c8a4c242b853e39f539764b948c70ace72414ce9e771d0af43a6bb775a435b775a4350af43a6b0c7ae7712b01f24074d9654c0421df77fe28c748705a3a11f71dc300f71dc300705a3a11b6b6f01b1ad4c9636cc1e0450e43762f00000000a6838e439d00b05c48ba1a6b95112a58ce265059710445465e82f13816bb1a22481d8f503c8f18455532466431880e2131880e21553246647694e061c3cd3b74f9883d4f2c2bd50400000000000000000000000000000000000000000000000000000000000000004e1c9a0c49a9d6606caf426900000000f5c3ee2db28fc70037b3ea094b3d40552500000000000000dc053b5036e69333f214382200000000000000000000000067c4bf364422724fd7d34114d7d34114aceeb0266f58c53e3ce9ca550249a209181b9861729dc967f4f69b13533c373d7d60d231000000000000000010ccd27799e6167761a9c9152ec7bd2ee28822235c75ef20bdf09177e2ec3124bccc32200b4b6073a15a331d8b069437b9cc12689576386218d15c66d244b3211000000000000000a8a8d50468f01125b6d26c2b5cce2b48aa826d238e571470be8c211fd9652b74343123096ef55571f0952d0085ec2c4e9bc9d8047a438f6bc2ea286f3f16436c100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d0000000000000000000000000100000000000000010000002300000000000000bc760554000000000000000000000000f6c294617929a85b0000000000000000260d3661a6d2755c00000000000000001acd6322b224296e00000000a2339e50000000000000000000000000a2339e50bc0002736d252b696d252b6996dde85fcad7572f578ea56fc059cc2b35c7d1423b0e79526a4a9f42bc94ae4bb1ae251500000000000000006d252b69080000000000000000000000000000006a95776e00000000000000000000000000000000a29e1e2d0800000000000000aa208932afbbd0152796897232a236598a37b4354c3daa5a38e4221daa2089320800000000000000000000000000000029ce4b1c37566a0983a0285c2552e344eca4494401eb8f3a2200000000000000198c2550b4389441ba1c3b0248a2eb57f249ec2a54b7525441e017090aaaea18c3e85807477d830994f35b05361df55642ac1427133104427d0cb21d198c2550198c2550198c255077b1900f77b1900f198c2550198c2550198c2550198c2550198c2550198c2550198c2550198c2550198c2550198c2550198c2550198c255000000000198c255014000000000000006cab644a6213a3690fd9c11fbee5451cb00c84747ef23219ac3c265ce518d35c67e2024ffb39db3ac37e4e4604aff80f00000000000000000000000008e7691cdb000c750000000064754005000000001100000000000000235cda951d02eab9904ad2b7c4ab0ca3c741d32f2754edb8e6500b41f3f18ce1c34224151b9ef60cbc5cbd9dc75cc9f968deb284061a7810124b01e517878f09bd09e6f9213bdd4e677e0e453dac781b02696793544914ecf441c717fc6d0fac28f9b8c72664caa4c9630b67ced48de636cbdfbe69f98ca7d486bb785e5f7f216e8ac001d4820745e683173164928b2a7871935c6d8608dd79c9cca9501ea5e5e73e4093804686a0e883031842510ae9957b1ccf5417f69d47f95a8d6beb589fd6027a11c85042f9ac913d75f1a6a3eca3e247aa3e729ef1fa8e944908a42dd74b95b5c0d8dc1709483fccd95927bc95c364bb0d61a6d13c7296a9690de3b80d4dc2ced0c21ec72814b01c538fc01b32c2acbf4e385f780680976477e641ffc48a618ba698c144dced7033a789ab69a0f7159875506158cbfe36f1cee90b942428afe74d7aec5f30b93a81b5bf805e5f9a92c8a4aea6603dd09ec291b28fd103482203658865b9ec0ed030bf1854d6116ea2114d1ca01d1b9b941462b34afee0507371023c1ca7ad50c17a9f7c0d91edf961ee83bb0a644a69484b125b2a52a41cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000001da32a30699326380c18cd64381f170a4f4a1d580e25021ca2fc231a7b67b85370fdaf46e16c0700b51bb944ac94ea41551afb2ea6191f125e3a934b69ae2d6c36ad591392cbcd11b01cc62f1391114c256d246a5d50642fc6b2906f22fb973ef04df75fe6a08922d5424332478352547cbf8d400b100811ecb4a16ad961016e0eadd7663154ec75b6f96e377d1b941804aa18065391025c1a97ea577472c076342f4317214f0e22b326222d3baf93725c016728d44834444a720d652c73b63fbf914a2eb9f60519a958b40ec038982629754214b680222e0caf9c67a9db7637cdfca05ecea0ec728bac751b2841040d35eb5c31e38f611d0019576c6633534f5f761b55328f7629d3a474720e51904c874213474ee83506044aee127c3e5b0ad737a060dc98b6025944863f985dcb41fb636c1beeabf650dab439018f37d33883c07a08590f711ce2cf2d01ab870746b9c10f2db8354e0a1c72c0666e8edb378fb97d2558690e368d2d156db973830cfbe1fd57713e8563bbdaa84a333e422f379a7144b5a2de6964142a3434aafc390800000000000000d7865b356223c42193bae212d0fa0f4d10b378121ef29d45729c822ea941b1232000000000000000050a6616bf6a6f0b53b43876f9a01e37d26cac1de947d92a9c8b4015d9fea75bbcd6f45ee3454b2384abb51ed672253a887d4b2889eb7d6284a1005bbeb7d84d57f80b583d54500e7558933b23d20e531a72175106d0412f534c18666c53e10ee8437a15e0875053b3e0943de248f91ef32f961e6c92ea3d82c27a5da8b9f06a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee5070800000000000000a05dc066e805535677942122ed012c4927e4c14863dad4225833d66605d3e448080000000000000057f2d217fb1c195ec323ac61e16cf13d1fa98d228433075f2b7b96712a80a8130800000000000000136e485f2b35cf5d6f9531609123870411c4e3098d8e1472abc8d55e02065a760800000000000000d6d21a51491e973bfef4921e349711574c6f803ffe5504294c165c5bb1a667610800000000000000b48ede180c19f0408101be5c428c6421f1ca9f6bea9580660512f2392f8a013b2800000000000000520f121b61acd63227624b0d0d0cfb5a35cc941079c212696913956eb1630c2766f3184dc0079f175dd24b5524a16253f715d05bb6547f736ed8f5404863d84831c883633280155dde71eb0c8b630c14aa417f1c4304d8173b7fe053e66eec51fa38eb2a6304f60d582af21c1460704cd4e77b3eeea45834cc4c9d0c2f177b299fb21f332e570e21843cdb46948d38498179e74d06fa0507ad82c6155550713c110000000000000052106acaba609d68d3f3e92703be82102254585968861ff2f0204b4a792993e6473e3044a3e8f11be8e64ce1f08b86660ebcdb6ec0991322289426aefcbb2f8a84eab1d3d37a11097163ac12367d3424383af4e1ed54f7e216254325e6b822b5cda04a9095d7392d7dbd2877068ed28ac79aed10e1005ecadc81f59b82f063c1956e54dc3ffa227ffbc53688346b3a1046e77b669030c90f75f75a3eca968c676836a449b643483c804e9867a30cc98c542b2950cbac0fe1400b90e898847b8ae1093430068bb9f86b29da5f42568b2322b0143b87f6298a47f1768313250abac894bd56ff3946798a4067f28be1791f805827a45a0d421ee622dd8f5c19bf23f78bfc57a8b323a120845cb3babff2decb55e2790f89971a4cae2a640646d7210c0d2a797e43d5626f51438c05d116051fa63e70adc63e29860f1fde0c7f8d8f0163781098664db7931548d1b8fe4738eacfdfd764316fbe4c5300e298d638b09ffa9beba6979ef7a65fb0d75987410ad5fb9254ab1dd8ac24fe2a4b2b8a1ea459340cc90ae6dafa1c5768b9827f641f652601bbfacd76fbef6faca6c2c3eaadfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000ebb9be2377cb742cdcf0242bc7291c1eef87f405aaa2ce400f61011019e70f4908000000000000001aaa623faee0d31adda41e052da77223cac9335f345ebb14495edd4b7d448c630800000000000000bb7e980724e48f0cbc1d8b263a5b8a5939c5a2747ef41c223884f35d4c3a274a0800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000007572b705e28ec00cc2e2e71e117695664b3b87111873c60eab79d12636f5ad5e0800000000000000e05fea2cb011cb2dc5cdd92e10a9a071d2cd9031ce16e96c2b41a75c7e89ae440800000000000000be64be5fcf45ba02dffef41c2e6a31416d388c560018110161808853ac266d060800000000000000a646e10c81b776140a1180726697ab6b652fd10c331fb300073e3b08f510c13708000000000000003464491c4770bb66388dfe20774556590f8b3403774b6032df30ca63c7beaa5d0800000000000000aa2c563150af883ecc2d0710085acb5bace1480b1c2e9749702cec5e6d8e65091100000000000000a8fa73c526e5490af844dfc57c889cfcc419afad0f7501078f8d332136167a2f3bbf7408abcb215864b77bf6b8d418477884294364753eb44be55838c0073f85da461794399e64f2e3d4a2ebe6fc61d50ce52d27f1ba8974c9b713eb280303f8af8c2258db528a95ed247bf9daec4f181dac7ab290fc4c5a27bf8d0eceb017769a21146c9132cfdffb49cd8c46c3f697a33e5532eb2a5c5f0d737299f6d9b1a6fc167a99722bb5be920ae9495c8e9e594431d8dc6bc339663c1643e53d1f31db04462c76d97de87427b7940850531362f86547fd6d22c2c5daa89381361cd90cd07c29fff9a3d085812861e9de0e78d2d1cb34445ffca07d7d7b5e2217c93a473d3e4e6f6c07aa4243e6635d2951bc21a6f2c42ac1c5a632154c2dc8f5d7302a22af75221495263cc0d3ea0dbe14e443d29a237ed3907a81a0206f9fd913f82dd69611dabdcd35782f900b8b95e47b23e48627782f02d3b03971bd370d8be7fc8638c66fdccf6626739f201e14028164a08ce9777bf5152ec9b75b79fed7a5fc9b18f38ef39fe3e771b8f66db57b8f56864725dc2920344eb0ae0f57285b34ed79fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000f0c16b04575fd4634d3257421734e31c26d22f210000000000000000000000007f2cf04d7a1fe30c83d4e56d83d4e56df172ee082d508b42e23a2e33e23a2e33951d034e090dc42414ea5307000000008fa89e0d00000000000000002046a86682c29f35000000006bb06c5c9bf9245f6215f03400000000000000003d855158cf2f7f2be88c8d6c4e4cb62e3693b823123e9473ab1f084ceb267c2694d46010455f6a0f2944ef4b94d34a3452aa630225e5a56d4ae3d45e9b381530db90ed01db90ed019b3815306833cf26fc8de14c123c65010e6a285951c95c23fbbded22b7b06e0eb7b06e0efbbded223a14ec10b3eb1835083a9c06ebd06c0e93c8090af9f23b53ec1f5b6bec1f5b6bf9f23b537d1c405c0f8a0b2308a2662e64c78b2900000000f9b4b93359196f511adc616255fced3835d3da638657317582c1221dcc7106114ebea032cfc89204063a4343c213af5ec213af5e063a43433f14a456385c84218f740a2e939147120000000000000000000000000000000000000000000000000000000000000000f0c16b041e1d8a01e9a65b2600000000c963d474f3681962e2efb140d354152f2500000000000000fefe291ed8e801041c64fb27000000000000000000000000a8d69935c16ee923ebaa650bebaa650b37f9871062847e444c5d26764ace9455f96d1c5178c6b4430b3a04295225610d830ea761000000000000000013c2de1829c9630b9deae373a10be4729fa4aa17e807db5b7d67b637df52a11ba81a8f0a756c126b12115317c47c3c53e328bb080d00bc372f0d1805a835291910000000000000009996c30ba3e60c6e82ab094e8ece6371aa605c5d057c64326b746068f0b5e66431eaa32103834c76aae3bd41e3893d335da0882b9d16cd6ddc10583a8c098815100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000c54aef4a000000000000000000000000de7eea45777c201100000000000000000a7ce523aa2e541a00000000000000001e89170956edec0300000000b31fc82a000000000000000000000000b31fc82ad1a8df332796cc372796cc376193f43c8d09d71234efff364001bc67b5e9332d8ffeae40f1042d0e8debdf08634bdd6400000000000000002796cc3708000000000000000000000000000000fa1e24690000000000000000000000000000000064f4ca41080000000000000050da992e8489e6038b0e850ae1c8561b38c16160641b242a0afd894150da992e08000000000000000000000000000000cd24413d8099e12b5d7ec11f846b01235e7dfa27205968572200000000000000c8b67e1f9e9e2f6923f5b94e6d1445066fe4e206c63774131e0ae012ecd0394e94f4e50374cfb3069a4a574ad71de93e0073d63b16c2232efe87d44fc8b67e1fc8b67e1fc8b67e1f4c93795e4c93795ec8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1fc8b67e1f00000000c8b67e1f14000000000000009726e239fecc4830dc006a09b9f2c060ddf15657ae17141f6baa98732b6d6035530c71606dd6fe3a83636f6a11daa97500000000000000000000000026f2b83e2f5ba648000000008b3477700000000011000000000000008457591b7a8662e92545232c687a8885f15e282474b21a8d5516339ebbc52ebbb4036a3aef65a453ff4fc0baf490bb7e9a1e76a6d23f34af6cdcc0d992d0832f7ee68acb296f0cba93678c9406f3faa2ecd9941f2ed71b9a2c1ab35589fe9af7ab05000988cc10e63004353f37519273225be79e02201bc3e06e964705238268ff099814b26c8277283ea5d58a269f4d3ed63198ce5e432bc267c9cfc1fcb36e830600178baef39d5648ebffc6a40519b408ae9101953dc9a43772b2acfd588c2780b823552e85882f3f3bb69b93b621eb6433dd3d7422a31d1ed733a38745cab293368d053e6c40eedd33fda890fb0e31e236b15d3117ba8c9f5da9977dfab7a18ebcb489befc175075c5269213da0e0c50929485bafe7269f34cb17b1e3aeb4b6d0faba1994118c9428f12ba6a56b8d3e21764d2c1a370a8e09b7dd9441c2cd91b47604706404fc6cda4634347275c1683c1ed08606d118302e32ff066d6c9c9563a49a57f9bdb4bbd3325190d021ef8e31190f88e1e6929252421cfd62169aa12b8ebdc9f85904549c1b09e7c0c92566da16abecf7078aac66abc0f3c28610e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000400adc20144d161e091de5724dfb0802cf43b06ed6175426334a954592db0e56bdfc963d55ca6e2bebbb722f8422a14ad5e7786b52f9c52420ffa974f7b8eb4c6c97b0227e0ea42cf51c3d1662061a5febbabc492f600655e83aeb2a5d4b13758ce2e425c44ba3201d310e51cf05433eced1735dae0fc70c996df76f7d81884aeecc3b57260b01050162e7246811cc01c1bd294034f7da1bd0ed7273a3533f4096741751da415f2d84b608425eb3423758632b3be9a90f2b551af931b57fbb75c36e3307e33ab40375d22a2b93495d207522d372b6e6390481ced63139c13547cb543777a3efe007c189491df498424d473d5913d6eb931c402021270c5f9d22087b0305deada0117e8e140b0a47d8589abf2700d193240cde1c000a81fd12688a61ba7493fa6b48b3ad3d46aff4496694a967072287346f4b49834d0f54421f1bc4382d82e66b3e4942502c8505ce72c794d468a739fe09625a8a569e99952a6e3eda2963c9a01e63da2c71a6fd021c3d84135018f0de2dde11741718b45e684146626e720092246d274832493c2c270800000000000000ddc69c683fe88e1dff4fba4248616933f2c01d416692f1304d93432e2ba68132200000000000000040e0544a4e24b0395960ae10f2453f1b42ccfd512d5876093499b866d52fde44a54942408645062f2dd9b10cbcb31f758008a7296844f10e4f9ad9031b052c0f4e7b7e535003933519d7ce2470328f48b6a7cd3f9b850d2860f93a1f54af7d157273476ec9e5874fa88ee42571c55619da4239010f098a4e3d96d9418c3de2542000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e08080000000000000026e4576a1044994603c790005b85cf0c46907a6df406fb340a851f2635bde7090800000000000000fdf68c36c2cdb37230d0eb164829c74ff60d9234de62831f8782e82ae2fd6b5b080000000000000088444e16bbee2f61ef64282018ed2a6e485bd56d893b9449ee9624517687581f0800000000000000dc34d9415ceab81a4d32d7232148c44256824c3cd7dbc70b77da0c482adad74a08000000000000003c63936a3ff2e26bfd3328053379b16c8b3ec806b1e6bb4dcedfc40ae6fd1e2e28000000000000006111b71e1f22f82da29a88769e54d24cb87c0412910f246e25093067e22fa76c5384a575b7f5fc1d061e2b4ecab9d1418bd9941e0f234a69709b711942b5ca2d76ce885d01dc1952bbc485361318da6701e81c66dde7a740693f525935428d14b998614a64046e0c808d7e36cd598a73f91aec2503b70117b291430abfd68a5ab7a600737fdd8d498028d11ecda63d5b64a0130ebb14411ea786196b6b28ca161100000000000000f82d9b18095fbcbe22209540814faeaff15927273333e77c2515ec1af4c60b083f31089f41b64f17abc449f44402836c39aebf9503acecc75559a413c0e697a0b7ad4686aceaa9fc9be5bf0a05d92db2cf0b5e1154f8dc908d472d43b79996fc03eba3870a18a3e7714933402cef930e8832973233283318d315b0f7e48602abf81e1dc2581ce99721aa456372925038583295141342144f35d3dc80b0522a9bb41357a4d9ed0e09e5727a8e7c6793429d332af3b3af2c9233b075cb0212de5e3c002bb9a51acb17d4b719d9986fd4bfc702089f7c4e97827d68b40eab04c4834174f33d5d896822ec06a975d8e124d9ef2c51ece49aaf1e38aa4c4edc6b8c2e2333322b9bbf484b54d49e3e849159fbc8ad03495faf8c4a34a5853805dd5e20d5e3d5fe1545656c30436129c89da8fb49649a25850318a5c61b91f3de1b032a2bfb933fb2391cb001d649509edb77a5d0ecf27c3e2e7b57e2ac0870c5a1e50382fb29b8ffdcd9c7b76ff17ba50266ffa9718b5be3cc4bc7e62170e29f9c007ed47da486907d39b2f137ad9cfb3e0e69c623733be6c89685c1f14c6afbb49f2de091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000005f05dc38373cfd5bee225352854a4370627fe04b7c57436de36ea7229dfc995e08000000000000001f7c405b12c3a8095294dc6300fbce0bbefb654c461db00e924d5a6acc04bc0d0800000000000000adf5db1d49ff443c8e786315b8ae6d6bb76bb45da429c14c7e45434bf1ae70740800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000000058d86c0bb6383a00ed755e3439a1749ad258118511b33d3411c3610129a61008000000000000000ce2e93cf6e20c66b25872455b5fa776a291b768446be55835d3c56c70f3ec32080000000000000031520422b93ae9412979950d06bbe6400760c341cad88d04e1b5c917e5cf20210800000000000000630a7e67de76615063dc4e2d5e832773236e8b20274047405d9b3122a02d8f18080000000000000087f508547704743e003f871f017c2c0bdc4b1e5c9073c85363b26628fbff4c3f0800000000000000950fe93be562063bc62eef772cbb3823a0dee729e48d8670795b5b56cf4e425e1100000000000000e331ac18ceeda870723268ba33af45684891bf06c96fb92471ff11e941dd67572bdd20de536e0af9be4cab6d339e837edcfaff7364b5390c70402151f30fc874c1cf1ca8264ee7b39abf08e4348424372046c574a1472c5c7ea68ce129d594330f5f438aa3d7d8293159ddb9da8bf4150eeb97b75c79aa35a753c69ba3391bb2f289cb6136c0c1c725e799a8f491b7ede760dded4e514fd8e0f6c9f09cc5cb0058e428983e326aeaff5a664896d56705cf03477327a128a6f27a90db5fe5240beb2f0e30050b47c73c612a6e52be6f1035883c2eb1629b810c4e33077e7ff520fcf1605418f6704261203202623f81827252c47275b4930b967659e493a4c29b02edc2b73dd317635ecb2c830b54cdedbd2a42f127100d83a8f87c828c6cb1e57ffd285052725b672504931eb3d25292d842bf2558663ab8cb4394ff7d6e284adccfea29d35c43cdeead81c441cfe6c38e5f17fb8ab50dbf05161c95d656811688f2a6dd59210c2177fccea21128d141d12978ff904e8052b333895f008ee66724e866721a7c0b08af68ae8de430737f6859485c772a6f3e0e7db89129458f5ac5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000005c81234790f7c8231c768f147a19823f99e45d5d0000000000000000000000008453294749cd043d211a933a211a933aa729ee2dac6ea542d5e4e731d5e4e731a596051e93b6203829598e49000000007253d14d000000000000000015a50d5ccc6c5d6700000000ee6f53349470f35ec3ee0b2f0000000000000000dc760815fad3743248b6cd6e9092af357085792fa67edc30ce5c5151c916ce5561618100e17ee90f76304364810060182a50585d52f2d862bf7d0b02e7eadc4b68fe0f2468fe0f24e7eadc4bdba704414f5e4f2836ddd056c4b3a008c4b9fd76974c523477c9926c77c9926c974c52343996c56f084a643df68114323185982f0c4c472b6f49df3fb14de730b14de7306f49df3f302c770785873f08aa79df1a2c61c344000000000b49911957cfc332f06dad5d6028de2d660b115700f8091ef5f3753e89f7593fd28b4d0d3e18994f4ea5e701b6f8e873b6f8e8734ea5e701cfd6e925af3f612100f8fe4ceac7da2a00000000000000000000000000000000000000000000000000000000000000005c812347cc2d6d0a607c0f530000000007922a0896e8785abec9f1777f8a844b25000000000000002b3e3a5642783c0fcab6de6a000000000000000000000000c3af0222a73829233de91a603de91a604973f6661389eb1b2ce6f9128c0ed106c283420cc326930503dd52011dee6a0a72e7e00b00000000000000005610e01c039e3f6a7f81a54d5ccbf066a889af662f20265d73dab42dc8e52e0c9554c75d38621a0d84252c0234f2740f170737447f662c2a97fd463c56c8d70d100000000000000002447a248b598f76a6ced05bb9085a230820b337fd7b7e55c6b03d1b26963322669c366d4d5fd8143d54bd3866b566656799210023b92a7740276151314e53341000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a000000000000000000000000010000000000000001000000230000000000000000c42860000000000000000000000000e8433a3dc4e67e220000000000000000353cd22dbcced1160000000000000000ba3f9e06579cd66f00000000a009971a000000000000000000000000a009971a5a493521b0e50b19b0e50b192d81f774fa74ed7420dab3270bc12f4ad2d07025c677a92e2721b2154f02dd50b121e3300000000000000000b0e50b190800000000000000000000000000000070c4487400000000000000000000000000000000f761e64f0800000000000000f05968607cc00933cd1ec6242ab2c32570a807221c6cb42d5efe942ff0596860080000000000000000000000000000004ef07976c8b8eb1a506d2a138e0631053e7f0329a0d9592422000000000000001ad8e20d1266a2024614de14e584bc631ed963432fdcf374aebf4850dc0d693d995e883e8d655b629f58121a42cfa80803c46c131259442d0c9e413f1ad8e20d1ad8e20d1ad8e20d041fa35e041fa35e1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d1ad8e20d000000001ad8e20d140000000000000044e8d20ab85ef5647f0a9f397d3c2936ff318a747618304c227c5c1faf0e17282b47f94281c8c456a1a2dd6f36af0062000000000000000000000000ca3f8c460f53f71000000000394f423e000000001100000000000000270f73454ac73530d9973acf285532d0539aabf68e776d668d128b382af86853b14c7156ee80872ec00d4f38370d57242d94caeaa16d2fb2f521fc06d561c8aad8a59e6918f69971d1d1d240a8b8dcfb352487d40b278c46172bcf58bf326eaca7a271d832bd58bc9428e4c7d69efd0e5dd12a770738473e26c702af06f93943be159b88a755435645b05ac4acc88e444d42c6d04ca77bb817a2337aed2a1ad70bc79494d7adba68125827e213f00cb602765400a48040827852f1142262928572da530865630d922afe8c736177cbb8f927020176de12787de25e9c2920eb20718bcfa4c200f70123331ec79a0605731f8ce446b4d35bcb65dc79d575bc5a211346e2e17db5b93a7a946da77ffcb81f87833f65ed900b4655e0c4e8457f0c9d04ef608548f3ae5ae6e2eb4252137d607f1f62baf1b1a696099992d70da97e87122efc37d275eaa09db1af8e48db6fca3e68747c7d34650132f6c0287a99168d6438dfddf192dd3b2b9f6aa096b22d23cd98d21da185c97b99a03f4045ef5b32c2bfdf5e0bcf6e155684436849fe2dc4252af241e86fc62a3ed6a6b5641fdd569dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000a884a524b628240a5e74404f445fae0cb8786f64de525a3898e4392371525e68eb49d4697b345d1f37be434f8cf98050b525ec53668e195dc81cd15d9ecdaf68cf806511b31f87239c4cd82637facd51245fe928bbfad261e1aa72058121273f5346375076764307d62a95103fd3d90446be335504f06e3460aeaa040afa1412162d054afb6d9142bdde3a63d291aa66a4db51357fef392f0542b8453dce776da0191b53c66ad65534f2bb1532978a3acc6d904beba3c26b6ef0603313b0864047d8365935f188759e0869330c0dc1778b7c8e0cba0e421dec23ff35668c2431e641c96b39bced53d816f1322f7dc35986314d0831e8f20294066a72de82fd33959c6a5c7036c609b6584c13df88a52b89bb3b54485a5f257615e2331ffb841419ac606bf7696c65a7b6ae184a36fe1f65b3b01cb7aa144d68f8521bcba7b22ab4e096653df9352692e5b04e31d02c4f588970176312393e6fd1c20f05b7f33d9794e3611ea4743cd6e7bd16b6cf6e2c30ee02399a23346b4524946b6d1ca43cd6085a4821d704465541dd34e7e8e9240800000000000000594a2c3754a6db1d95e2f3588dace32195571e0734e41f6572266e76bcb934772000000000000000999d2e3fab528b1dacc453261541d76d22510f187bd5591b4b34445faed22971cf28dd6dc02c4c76ff86432d7c0c2c1c92271a1079fece259597816246bad2272bf35203b838c813caffbe083e6b59617290f25c8d5b18467e17231341a262391dc3810a8b72f5216d003b0705ecfe1090230734d2eab533d01de1496f81d9032000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b300080000000000000085899f15cd214015a0b6762b380ceb49792ba610a712b55d07994301f765890908000000000000005964063776e62c3eb2077a033f556f061faa5656d42a5c23cab71c0cdf56cc1b080000000000000052ab0f1115923d1bc650712236c80a3300cf733813f64d26e324e002074b4e2c0800000000000000b85b890e01c83b53ed0398247ba7316728055c5368696543d949a536f188f7430800000000000000eaa5423b57769276e115ff433ef4c94a3f23fd74ec4b6136c2aebc0cf86804722800000000000000dcb5663ac1cb3973c6afd0423409f962256a093419f32f3b2d0e5200d379c23055d0df25713f73525346c625d3864b562492cf229fc4774d4b276c73eb71360f177b76426283193dd9e00e07cd56d9290fd76c3d25b87876c6f1230fdd36bf265fb6c944da6a365785b67b4ac2775b24de0a06132d86e74c99254d70b33942614331a10b0b2ee75b8f69da544cb468285a877513299094373ad03672229ef36a1100000000000000bfc9c9501f2ac910a5b44ddcd757a7ccddd6c693196fd20dbfe5e9548524381cad954bf5a48a95e68c4f5dace0ea602e364790ff6d22a3f213dd173272a85831d3f6656d06a52eecb1ba32480c695beb8008b05b4e1f76d5de574fff44fb9f6ca65981cc9df22b1e17843ac59da58dddcfe7133b6c121665772605791c10a3b3b11e4901106337f21c73ac8f6554468ffac19fde6da161ddc8de9590a52f714ec77e18d25a228b771da866b5e6b4d4d6c10fe43d053ecf0b11c9c4b4197060c68e1603bbff07944cc2e49138b393c083a578d9eb1fad3525b5ec704d52ba72ebf6290935aaa2e6fc6d5014cdf0dc280459a9ef58ac477a476598c9868c5bbd229f05cfbd2459aee1bb0497ac4f81c27e5fa7d202dbfd332c247e6e9cb2de8c0ce1d1cd27bd915402ad28aa2cc7609eb4180426f77048bf02e7ba2f64ac9f205f12bea40b7090c8d450f6290409ad1a0a13b63c381026afef2ed146ca8726a68a9fb8b3c0513409d37be814f6e216b80c14eac6dca42a848ed10ab81515e9cdbfa9300c084d37085bd2fcaa02093984298e4d1d4e49f093bee684b0af54e23ff4ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000c5316b6ab99d335bb1ba9532c3085c2a85e2fd31af847669a139cc12972d33520800000000000000a7b94525cd9bc0463946a406a8b6d804883e9a14b556163923f2282baa8a662d08000000000000000f88e9745712be594eb3f8540fca545f9007b56ede6bc84f8011185b7d6bd44d0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000b0bea1195f1c6939e434b809df39cb2c2aca6c67ed604c2e518ba632bb33c8260800000000000000eb08b80f7735b772fe5158196feef0561c8956209baa3175e152be1ced5d37120800000000000000cb53e65481d1af01a520dc6bcb52937338b0566406ab1f2d77fc7507c7b3380408000000000000002a8bb44e8644a4160cc05f2b4ff2990acaa7766c276b81282f8e2c17ab0f763f0800000000000000ebf77a3061e7335601a24a432a79e23bba31e91dc54a8c658e10a6138d8f5e72080000000000000050da6a049877f015f9dbaf0d204289773b0b8a17323a575482549929d21916731100000000000000908f24b987b10f8a9ecd334bccd143d553672df966fe3b825eb984b8131742a750f569d397f1992ea0c6198608621a9b393f0b5a6dda8c4f8802f7def471514eac5c48c038f014f1addeec4ef893e2adf3ee56d3b4a8b54f4310bc1b945133df195c556809fe9ddc3ccfc4cceb86c5bfd4854527d2bd972d657c991e8c6ad328973d5278f24fb77e07b8bfde71077c1094a830b57b2deb8dd54919ba14256a874701bce050c86eda9dadad3f9ff5f2d2914997519af5669c7debb72feacdd8e0ef32bc4f1b673744ad91a386da1ada0bdafb9b0121cbbe34b3f1d1b6a6f351bc3bfac6924942dccea8a0f58726d84b61c39d581552ad2c41cb923f34b20d85aeae8ac52a5483b579e1889ef11d399fa57c0a29c063e31ddcc22358a64133ef67da1d6625df03b296806b83da028985c41d7786b46c5bc9dba9eae8ad8cb899d8eca6ae7f7832b187ad8d3670d6d46fa6315e64a7064639f8ac61c790e478dd96861e7476fdc4cd8e149fd9b8a224254c46046a58d4b606ad414bd59186a3aa59a2ef63f4906835156f1dd743d8535c7063b47efcafe1f3d2578dadd533d960d176ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000bf83435fead80a56f108fd5d4902983d1d3ece66000000000000000000000000bab1af42792f8962143a585a143a585ae03371214b68c24acb86b266cb86b266f3409b5fe89eef5e0b9f9c5600000000b54c8f220000000000000000a6e9461d7e04445900000000a386c26ded90fa3eb11ab74600000000000000001e94836538f2f72caf2dbb024257ab1c6e6d332a437cbc1892abb0394077380cf20eb069a9c1b12a87819b3004548c039c6f311ab4e0e661c870fb6f19b5ef5005d7c91d05d7c91d19b5ef50769f4e14463cf51a9df2da70d0472e755005c3630997970613187d2113187d210997970666b4f21867d7f05322f8e127002263727af8ee461a611019abf4f119abf4f1191a611019c4f54a5a7c115436a9d9f8060fa8f94000000000573ddc42a2a9ef28034ee6180391c93cee2e44608dc6a53c1651401665b67a6128c59768cdc13124b6006a586a4de3116a4de311b6006a58697922270acde063bf976812e5cbb10d0000000000000000000000000000000000000000000000000000000000000000bf83435f18470c5cdbea204400000000730542147419aa0bbe9547335cceec1b2500000000000000ef294c41a6895a1aa358cb1c0000000000000000000000008e1e144e179a1b452c54a4732c54a473a389274c323a2e65ec26ab35a36bcd122158dc51b88a1a6762c2a83824158f47f0b59d27000000000000000078b989056ea4e86367fcd72ad360b4746afe7a68fc2f336497bae12a197bcb102c8b4e0b00739a3bbffba53544a33e140890d63972dd83376394ac20382b4f5710000000000000002870b70a4fa0c3719d99a336b0bd8a1e8aef5270190fe46651540b21a1047d187b80ce15554ef5391e567c2398f4293d6f48b127ea8c1e49346862538765d358100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000e1f7e252000000000000000000000000e507f35d63d8cc4400000000000000009d3a9d396a21ad51000000000000000041155b1a8f2eea1e000000003840be110000000000000000000000003840be117955192c0884034b0884034bc5858c205f99c02f7ad8824b1484323059add074dcd7a1182e5842241cf9f46d288c207000000000000000000884034b080000000000000000000000000000009886693c00000000000000000000000000000000de331f5008000000000000000fba141988247265b8a9b2211692d171cfb0121f1ca30e186e9b510b0fba141908000000000000000000000000000000326d5f2e9e0366020e529e4637a5b551ab460f52fb83b95f2200000000000000b3846933a55bf43e9a96e11eeea5100392277e0e230cca06afd79c7757b3f91ce8a0955a446d4202e8e4aa016bf04601a8ea844a0ef3906892afac28b3846933b3846933b3846933ed1dd45ded1dd45db3846933b3846933b3846933b3846933b3846933b3846933b3846933b3846933b3846933b3846933b3846933b384693300000000b38469331400000000000000cd6d39557888eb0194080609b1ed1e4e1de51845d8856e12aa6efd07d191d944ddad8c4b8748ac31c3545963b142cd380000000000000000000000009f4041732bec0c6f0000000013a9e62d0000000011000000000000006e74bbc10a5e9b26fcfdc0f380443da8a25be23c4d33df49d704bedb0cc4f844203bb924ad99565442b5bbb0d7bf462e8ff0d3983daa448ca6f7333da406822b588faa4c385031b843e18025218aa20cce833ce75b16d370a7ea3059b7d1d055398ac3dbe338cba9e66d8c91590f0797e28989f8371857114e0ee4ff9af908dac6955267510ef857b0a889f308904cf58c10bce95793bc76eccebe5b2ab607c4ef7b0586bedd43ede3953da26f8cb57592f493e848d3760edcd4c4c79471f00af3c77cfe0c8812a4ae897d5ab3482dd6f9aab302608cacb06827fe074a3ce2bacd4ef67a9b70536ec674dc38ab7014a41325d9af9fe048dda6525885b3982cf0ec86ae41d2873dd33e8698190124710732e2954897ce7973a8647ba99cc5810dac17fac3ff1545d18508f53caf22d8f11bc339b3175c661a55e9d434827c755cdaecb4dab1b93b3c016b46cf393a3684d90d37e52fc5f23daf2c1fdc29c649ea2931431a9e640d56cad3833f9e7bece0f6606b1f193ae2fc04fc927f3dea055a50c42f196947ac67b984eee2da74a2215eeb427b1160a9b7c2c984ec09796235660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000795d81338faed12e108992212a19d11996488a67a69566174181b169659f2a4233437271f132ab6d3b2199201330f75069320a6c3591db4e4647667662162052fc29da6dc8b2950ec8a9fc102e42fa1b6e98a975022a1a1ce7605511186d171a4882bf6c78579227caea2c35d4b3b32e2a02f9608025ec287f3b70734322725190c9036021a9804f5a035a72a96ff43ac76c2d4d0c09ba4833898d4e70ce064eb2dc2b5301d8b2337f981e0b552499405cb1d1476209f9221eb8a475ee947e3b0d0e6728bd365a0c9d6b83652af21b42b1352923c7aa322a894ab31e84dee411e57348038492105af19e9b40f148fb113a67f01267acac2c2ead82632085d5157cfc9d27389d520f5daea56af6c8692c0464495913016b2768326b3befd1d96c33b65200e91d5d757ba9b553137af606c14e29548b73834016ef5f01a319d645a403d84623c3314260980725a7401749d09c4f4f45c5454db830ec32d4dae94ecf214c249367f9462caa6b3b16e0ee025c8d256ef0bb842bcd2a6a5072fc704b7d98826a55787d0b0c57cd583f3e744f080000000000000055bd98775c642b6a5b099b35d4aa1530f9a36e41142c665ead155a134549d3702000000000000000947fcd5b092a1d11e9c4b32f268e74732ee5b56c048d1e563c0f314b3c3a8602329ecc11b72c6a7172e60442b54fa04cad22f166b9213026013e2e255620c42d0d62762afddea15d37e16e2d46e0be195388fb1084bc2959e82a55542cba053c0c8251707df7a6671a2ad80f3a82d3299174c512cc35a70b9280641a944db1022000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000076975563b79799641262f751e379c909e115b8386344765dd902216f1ebe163c0800000000000000faf2aa3f89b41e4e676ad50db44eaa40bba4fc512d8da12579181e34e3313b1a080000000000000080070268a2bc4e4486a0845645b6dc22a23ad10baaefd97286775f2871f580460800000000000000dfdc056e01c59773cf7ea62ef8298161e1e4060518b14d023723ee2ac27f1630080000000000000046f24115590dab4ba78ecc5238f7cf71c9f7175125545b09a601a73243b6b71a2800000000000000563e0a30dada150550002c3ff0066f54c5c4560f934e0000de395d50600e443381a390384497764fb155a80c5ca64c461c1eff0cb99b69503f729f2e261db23e76841572fb77b624a36d8e66a1b15857f2ed6e0e058369663fc0b076e928d64a2563f056d58151657c95b839090d14566b7b7b0b66f620461d76ef3c9b381f3cf37e52231153ee4b07cd5b3458fcb549faaea95f1bef463ef50d0514e221d546110000000000000053657ca3818fbeae11d80435f2cb514a3c080178633c55501a93dc8f286c8c2134570432123ed9fe790e69eecb21686f2b07134e57701055d3dc082e530e8f70d9439cc68ac9573fb28e84e42a5401dc6c2929b0e8e2feb23dec784172c405daaab4c79d7b0ea4e142bcebdf1cdd0e2824b56d28a1801eff5854913eeb44cf31c2712f031998480e41a1b6160a682fe8e2aa28cbcc9dd157c4095401abc9883bf28073e3426a9a6e43cdd9a8bfdfb4184178bab3c4acd352852c3b8b27144e32b9c36b0eef210379ea4eef99476de2e4bf1aadae2858ced41d286fdf5fafe6084522f2ba6525e4956c5165e51f88b81e9fc32b5caf78f945a9620ea9102687a45846537d60ba152f51855f7238f2c01b2d2259de68db8436e314ecb22cf408f63119ccb49cb975a45f5abd915728e6d13bc1c4a4b56031aa7b648882c9b1a1da3e1c3971af064509ccf344f7946e3aa6ad4aa82e267b14a2ef547c97242b389824aefb911d7d513dff3f6726b5d401de54546b6c5f7b58cd658934c6c429d1a925468a4f83b667b9b2f1ce61bf641a9dd901efa5f1c3d08d81907ff6bb1ab00ed58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000079d422130c039e2d2c5e415607f5c65970bf2d180661743acb98ea41f0731c7208000000000000005eb4d05ea17e540ba763286a33333a563e572b33765f24029f2c7e45f26fcc0b0800000000000000e04239278944ad487ea5fd4da7fded649f963f56af1e5229df31c32ee5c6b5520800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a24450800000000000000f3e83b04469fe251dd7b094c735cbe348b15ad1678261f2eda2d306f2bf903680800000000000000b3550c109142c9495f5c5605a7a271525a51d865efbcf52a6fd45e5d0b226d63080000000000000009b25e6f7fef75175aabd65b4841fc1ba451a71a6102616007ffe56b604c392c0800000000000000b616fe0a3165ac28307b782453f1e1746001d358daa8181f7da13f70d653906708000000000000008c76901a20e12f2d0ae6104420f2102e02986e08f69d044694d5af0c7dc0ed0208000000000000009a8c4b2f20540539d3c24c4ce5d98c473b408718f411e4592ff2b65bd639786711000000000000007c09f7fe95024464e8f738b4be94e391124dbea31c1866e2bddbcfbd8b6039fd0992ff4032cfc224e45da8a993b9525c93882186d0bb1cfa79d477a36cb873cbf6b6e130d01669c1929f9cb808a081fc2534bc0325252af467ea414f42d600c1e165acfde74238206e2bdce9e2e913c155d3db13cf1428e02641d9a3fd28db07b3aed00366b28ad53686a167df8e08ec7683aff39c3de5d2e6acd3d53b01abd2dc5352d01c807d98a354bcac75bdfbbf45b9fb042c92aa8277760f1b774274cbe605dcfc85b89f9c8b2c4410472158a10b37a79d16178558add79aecf39a4e60f241d4c3b1d28db30da9f498676e258b9340b49def040a033c1b47898185e910c3f45dbef628265eb452476ce6b5e05b03134292a8d9f5f50c2960ecc4b17034fd5078bd1092a561977de4327d645e2dfa50648930cec566c6b44bfad62d4eec09768bc89e141558b3847cf46c4f18fb582ced6bf4b86e33c6c643dc292c8de56eb8ae3421997fde78b25e14b056cc2c3e7cedeaf7a847275ed6deacff8448fd10afa938952f2051f4a7f4f25be37028cd62ff0615d46296fc4a86bb93321aefc3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000028200747d6de69047fcea112bdc0f85c7c41fb54000000000000000000000000bcb5c86161cadc5626762a1426762a14ff5fbf671e2fa46ea5c91959a5c91959186a9e2e0251254880dba73800000000d00bf94b00000000000000000b5427383eebc70200000000ed58a975bf42eb388ad8bd500000000000000000bf34f9043b9ae4652c10321d882db914b75cec60dadff8304712e9120cc34057f29cfc4361e30a5a3aea940d00782434bf3533577770e059336d2a19ab4765027a2e304c7a2e304cab476502b136be766a4bdd0bc37fba00df09bc1f52aed36a8f99a751eec4420eeec4420e8f99a75179df7e29ded7425051e7e5348cea05181dcf194100afda2fa83b3d33a83b3d3300afda2f4283923a84dd6371ac3d53298386456200000000bb1f3530554eab3d0cfc216e68dba12e649e50692922dc68a011de45b4266b36bf1d950b67a1266e0c5c462e8dbdfb688dbdfb680c5c462e379a3d2bbc171b4fbda0b275f4d94e1f000000000000000000000000000000000000000000000000000000000000000028200747f3fd9a654feceb1600000000a9290b506c608b558ab2c70760959a2125000000000000007017ac0da690377262b2aa1b0000000000000000000000003e5d3e08cbb4c9558776723087767230abb8064a066d16054bbc0e5b5f312a08d3bc02440d49b55b6d9f981567f1da460b6b4634000000000000000036e6c36ff0f00d708d1c902bca3acd0c185a9072a3772e41d70bbc46fdd12b633e2e522fb87f594856bd004236459b5ab5d5f260bc322b0ea6b4852e0f16bd4010000000000000002807060d33e4d259c923224606e88333ae948b1caff5d43908ec855b1823e019e18fa90ef34f385a6937995ad491ba5e296e935b65e50048de081f18a1613618100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a5400000000000000000000000001000000000000000100000023000000000000007f6177170000000000000000000000001d7d641d2f9609250000000000000000c1171020c64b7b64000000000000000073bd42688bd5b53e00000000a4eafb26000000000000000000000000a4eafb2616a83e17a17df455a17df4558421c56c959d2d16b125c8487c4286692cbc9e29dbc7f409d8c9f615a6c1a212221c7d3e0000000000000000a17df4550800000000000000000000000000000098ef455a00000000000000000000000000000000d96beb63080000000000000041f6605fc2a96a1c6fda085db58f9f576b8e760ac214bf540367150041f6605f08000000000000000000000000000000e4199f3306cd1468e5300a095f94c82ada33bf6e5bc833592200000000000000ff2a313577b7d93174712f2d20c53b184b448e1689a81f0b7db061296bb48f0ae68a4577b8f51933d0f7ea0084c6fe6570d8174f3ba4475cafec0d0eff2a3135ff2a3135ff2a3135eb652435eb652435ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a3135ff2a313500000000ff2a3135140000000000000018a4c863847ba05f1773f52884ac73226e397e71ac6cc14be3220b0ca4580e53938ed934f2406731af9244501b805d2a000000000000000000000000ecfb585bd29bb9450000000082553e190000000011000000000000007fb4f273d6dedb7a5c8b9a03fa32ac4cb12c6875ec8331faeba29e0162682eef2efc1cbf407c419469e6d5141a7c56719715396d57b22d547ac45d10891cdbee658a8b98cb937bcc5c3d54b3d988bf620a99816618ec3f8d9fb42e3a4c012e61f635f6ee641a8c83624ceb390be399890ffadec9da0d774332b65acf43e7c7933bae4d123b6f363bae3a542f369ab48ace0e9aca50068f762b61722b735300ffd374af047d503e4083565512b935562d8d1516c06277af337c38b168848fc9e3cad48519309d69278553a726501c1659a1beefb07a6e53577402a1f56b22fb006e19890b2d6817d218afcca155ff811fbe0c94275f05703740bf0d41c113b6ac65f9f2d9692fd00b426a07b38f7dc869fc08408b6f677878739db5faf0b18d12a54b4a0af31a4068496e44f2400298f9d2ceb221edf6e78c6418633c610f09df0cc1cb94f6861815ca369ca70ee6a64e68102421ad507d2fd3673cbc97ac09cc6ccda0582e4ed0d9056e19db84e011daae7e521638755e045a53538393d117c58868e3ed1b16d167b9d0cdda5cba0980942c9dddca9d647568b2a04da32a5bd2b685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000001471836ab7286d3ff40c60082fb2f50fe5e5eb6c2207282aa67aa248903a866f77fb560397abaf315556cd4e6308dd614676b950df3d022b0e99c3159712da0a0f75a01330474369efa0dc6e45dd91211245bc70213c0e662afaeb730979084e5869212ea214aa1824d23e155be6d173c160b83c95397100ae0ebd5db2f94d0368f4502bd36d3c497dce444c7d75fa386fa2f3090f123e3e3936ec5559ab65686862eb3a1e5a911ff2b1f0147f89d633887784218363ae6db5f4a5421e8ef45e464edf47db6b9a48bdc9a01560aeab1dc1e5485de986363a4c3e054b847e373f26e99c5224c872560e5d0e507ebe063056152d6f4cacf1579a633f674b23612bbaa9015f7981e80ca3982f5fccd87335460c821f00e2b63cfb881d66be3e4313327a0e591223091316874030706fff410aa90d23c5cb46083916d01fae9bb254e55ed94075c01d38f0ff343f80bb573b00504b1b804edb0edf65736a1f4efc2bd283c31b41be92656ce1e046acfacf1eb5c88963e8359764d99ac15e20c46565659acc62e937920bd5b846360ecf2c0608000000000000009aaae04ee72df23d6e6a5e1f6cdae3381850220d31e7cb315c0fd64020e44c5a2000000000000000125bd8155ab52d3aef5e861efb29b27198f7554fd59dcb173838a60f628a5a3a08d20f402df5c85c416a26164d08ed673b94ea2a59eb29044ee69210019fb7303402cf0578c9e36b6eda030535e0506865e21b5548c9c4428ec24b613ab68f7204829734aeddb4547c957230bc877e0c73de8006bb489c0f066a742333dca0512000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000500e574cd679da0493851b132ae68526ca20e0373760db52fe61253631cae91f080000000000000076cbcd02d56ebf50d6ef0872b63f3150c9b5e1430c891736b92bb32c279e0f120800000000000000a9f1c566478607033037db1d6768686dddb6e867fc31f6725debb619aced4f480800000000000000560b2538ea98044985ba7f180bcd0847c2885375bf0c4336c6bcd7673f0ec34208000000000000001f73691ac91fa0188bf6b061a3d23c6faa3dd33cbb5602568a74fb0ed6a527392800000000000000ef05bc609121796e41b28906c69e9f139d2ff86442b0bb36d8f27a758750093489c0942f853479424e9090670ec95e279dda58698972d10495dc9c2733d84f3d7f600f515981b53f09bd1331dd67fb4b88b6a61e5375f72e196e595d7a80ca466efdc508705f046aafd0b2746515193d3b2f726b6d5a8b2f22030c57f5f55436a207d6160449ad38ca864e4667a2805858cbbe23c5b44a1f7776bc4c510b8b731100000000000000476a8e589f51913814fadeef39223c0c17f0b017ea00db741f802ec6f096cc1506b5c8bb86d2089c8b9cead1d6094827c91c2c83bf88569bc449d6952c215220688a1453d1e657c6230f5df2534b2b8110b1f68930d8586faa8abfbb4ce2bf7ee330f7dad6ee9181af0107cebf859b1dea9b7877a57432ad9a1ea8d250a1ee08c2b1d1dbdb4415a84811ffb927cc264ed3115885f22f233f04b26986fbe7f39f3f5b699915fdfa18f31944cff6d8736d9534f3399bcded8642c7e12eb972cd5df04ce32837773194a060fed20ec91bcf08c9e71144af5bb9fec99d38bd89558395fdbed5b68edd9262df4ae96f6e52953857648273839ea50771c477de8178f07006d75cee0dfe50a16325a823cf4604fc9525fa2fb1755c5856fb099241acb9ea034521068b46c93b084fcc142a2bf8210f05eb9c6473c7c42d7e9e9a191dce23932aa4681c3821db35ffbbd5ae31bc4c7ba97def7a7924b57bb11af9222c048e975f96bd3ebe15059b85767b9ae5960462079414871cb6d3326b60337cf88d355b18efcc610cd108a818fb8f8e340674bad6d7b1b6e27c306eb4a26eb0d78a6277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000bd3056044db4bd691eeca571c444382f69b0fa1915fd954e453cea0776728e120800000000000000292dbe40a5fd02272c516959d815b91b7019ca3747a00748a176775db3eae6300800000000000000ac0de52c12586c48f7705c705d821232e92536101212350fdfc5863132ebf94108000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a244508000000000000009923c44093ea802f8f5f8b65c1c3014a28d98b0433fdf2528e37f651d297a2710800000000000000a17a97621a267e6cf683d723b7eb800ada93e36d89c92e2244e8960d1f648053080000000000000036830c052c919d535e01f729b38c7b1ce7c5f63edcb91e3c069b2671bc1dcd6308000000000000000279741a8f1b0039bd1ee5508e9e91325a6b0b41e08bfd6b00a97d436ecc981c080000000000000085c1bd3580ba041df011012d0d0a784513317e41ac5c21595814ad1cc66dcb0108000000000000001a1bf6344df77d40251540686b3b7a2dae09b376ee1af874abcb1869cd43d2511100000000000000bac83e796b78eeac0c66fa0410f57335601fba02af94c48b54e09e49c097ae2b793c3fc03ba743b49d15f3a2deb63b2a25e45cfebf3348e9bc8ceb070115059d1f378729fd331b1926ecb3aaacf25ee0d033e01a53c9f1a0cc555a2bb38eb437113eec4d0f07c0948a6a3ab1b80d90fa30a6e293283c204f0d73cbe100fcfc17525d52dbf8e10a30b8e8b582f128ffb7ed16a1c7785ca3561cc118de77a354d82ca7fc1c4ea4cdc9a49e5657d3f97cb9a25c0c3c88b47e4f8188a2349330474533ba86e8f90f9f6cbcfc9aeb0692c8f8199522814dfac18f08947c6999731948474786d386bca710c2b85531249a5c4768a24a744ae680dbe2557c9c84f647b88d500a9c79ca3114f2a701251164cd0bcb8501d82eb88e512c7aac5edeaf26a1ae59c2e466fea4a23835873e28d29c5370cc8d9c5cfa65562ef890f6be5c4fafe8d9a6dc1ddf8ffce6d4eddce020e5f3c628b1d51592d50be33112647f77b754c87b1f1697ad321835476387ffa7ade95f0352951253ee1884541e28e3ffd998fef0070c833139975a6599ce47b4b027b0dcff0487460162add11df56704f6e31baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000009c9dfd1823ec334a812d595e93a95741a9e5bc47000000000000000000000000062a3f57f189510254c1af6354c1af630baa185413d9b121a53ccc42a53ccc42e602f8322d05415b06fd3b200000000073fd3a3f000000000000000053e0b9416f16db47000000005eecb008c7e44a038c3e25740000000000000000308c9c3bf34d3339ea93c531161c3a216b84bb2a6662025f7cdebe616f53bf5d2bb1596d7ae8f736df8515070bdf9a4c6350582a0199ea4c5d58db058f20a902d374e269d374e2698f20a902d5d347171fd9903a68adf856fd1d6b1f8d78fd4b9b0e061721f8ff0821f8ff089b0e0617cfd2d36ae1c87771e21cdb6b4dc01e3789ad225ad5fabe1c81b6604181b66041d5fabe1c1934f146fa0f5867124cef69888ff02000000000d865fb5268478624a877dc2f68428e64b4026f6d21b86905e3444756a3b3df11475ed9043bfa9d3c3e4ce947c8a0ac4ac8a0ac4a3e4ce94765fc596ec135cf6cb61b4c650974c85200000000000000000000000000000000000000000000000000000000000000009c9dfd186b03912d0afaae46000000007c83f46fcccc1b29d9a3e133b370f93f25000000000000009b3aee4a06d1df474ba3e66d000000000000000000000000abb1ea0a1a5a0c3269f8734669f87346d1467747b34c4d2eeaf1755b3313c7671916c71e55c09665c9e980473ebc6d3dd2025f1e00000000000000000701243195870b378d8b514c1bb8c104130ff45f15f96d4f0b3a2d7046e07118f88c8909b07aa3278e68a00d3abf645e0f722b1139b6296987665f49313e813910000000000000005bb39b50a1959d331ba2e15277eeb7150ef21b3323709a6d65952216ee9d3836db32c044781921435d7f6f030023551ecf92311e527dbb3492f65d50ff2cf651100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000bd6b605b000000000000000000000000d3c4e40fe27e97580000000000000000a83d2d5fb91ffa4d00000000000000002bd5ec62dbaea11900000000a1ca7c47000000000000000000000000a1ca7c47cb9f6932a64e0b4ca64e0b4c95ac5d2b18df3861d8ca316ab53e4c21091c594f7add3822943dfe3315301732eae2aa680000000000000000a64e0b4c08000000000000000000000000000000c4777760000000000000000000000000000000005e34110908000000000000000e8e8c5e1ec33113dc87c31c73713f318d631e66defc996213e0d33e0e8e8c5e080000000000000000000000000000000f8ab454e53be3674223f80b9b5f545065ec9821bf013f5622000000000000000c74b32e2c72f5125600a4163c3b2c30de14f368a5201352893f122744dbbc75908013187ea1b110ffc78771fe21261a7fe0533fda7f954f89b80a0f0c74b32e0c74b32e0c74b32e57c4ec2f57c4ec2f0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e0c74b32e000000000c74b32e1400000000000000632ec4217f6504223852445cab41845f73ef3f03d3013363e8c66f6362bea947b5623e0b65e3aa5a37c83226747dc50f000000000000000000000000573420653c171b1d000000007fadd234000000001100000000000000cc6693a516943e84aed76f1ad30427283d13c5d2a9605d12c4640a4bb712b6b2793421993a3719baf68fbe56afb53205465f7832a2d13ed1627cde36904e6925e8a87a6f4cabfc5b0e258ac742c4dd7dfb1ffd16763c36330b3208a7f7ab90fdcbc7d6e523f65118c738e3b7f2f71c7ed72512dad60029e9cbc3251878e616e9fdeafc3336e3afa582dcda265744b4cebc29f1605572148cf3c93a7d3d1519221a75a39777a32eaceeeebe9a930503adff2bace4d9e4495e0ee188f017d7ab8480a11a53c36ef0c509bce5c65fa73fe3612d01785dfa89110527e0e23ecc5741c4cd7acd245fdf0b221e594aff37e0c6b09de5a0bb76ef3a11d26121ad8f3cc82ac6b4bca1a092ab4a4877856260a606e2a7ea0b7157643e1c67b0f586698e2bfb25bd6c9c6597e080cf6f2d04a0b8a73e66d63314e90daed5bb4f8ec994f454ba037bacc71dc1c9f66dc44a0a37af3b0e91f51b3901e5177751eceee6d6f492d83293aa8a182cb9d86dfbaadcb4302e089fc6bf4dca228812afed1130214b42aa12b8ebdc9f85904549c1b09e7c0c92566da16abecf7078aac66abc0f3c28610e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000733c0d1cd204cb04cffb9563c84a7540666ead6a3535d461daef8c138e6b1a042d9ae81832d70601d5a40042877a1c178095c848befa4c02ce470d07d81267240e9a786c5548e71fc327e8337c4c8d3f46c38e628f7b10069bc1e305e1880c044fee621e4fd5e675b50f8638ce719d6dc4124b6a678bd127e908b55b0cfebe570d0582668c9f9e56bf0b184eb0968f30e7a03a59324cf56d5c1c760aec88fd0ef31f3b472a931d4fdc42a30d9030486f4366f649887f86249e545444f49bc42e8da584327a6b030fdc49dc0d9ad3b2621af73b1d666a451ae17d762a0c311335db815f539c28aa3029d0d81fa92f196fc0e116719c10f50247d6f0175df7d45895621634b6bb436c275acb02077f296d2f61f52ce090cf430a4b0338ea5c2718b2f1867569b65a5bbd30bd4848e081769438b2602636055511f4951e3a0aa46b6ff43e7231d75a3205f5fd069f5226596b25f71867332d3fbe34e71ee9394d5626dbdf0c10f77345d3cebe0bcfe86453023bd140a7c8c340031fed175a66dd3dfb5a7b605480553111a25269b74cbf20080000000000000047f8c347d9e5822ce8659f3bd4bddd30e5a0c30167aba5352c011c0d4a9f092b200000000000000067fa5677f2d0f75537aec255c269114e5524473752d8e437d1bcc171b6dd895471d326634810f300f4303a2ce71c310eb3f91927d62ec73d1669ba696d128a717b398a0fba040421ab161b5cb10f074f7945d4291549c42f9a0dc12f9fd32a506503330cbafedb5315ab245b7a113463d57f886fc3c47c54dc110b16e7f8d2732000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000007f1e466fdd71d83e3518ac1b3cfe717031cc585dcfbfd2613da4e447b502380c0800000000000000aa4f7b7232bdeb4c97db2f6364544061e72ca80e6cf0ce757e1027129564ad64080000000000000043a954550a6192608b68d9117c80b67242e31918a821d73f620b3d22c71d726b0800000000000000b7484e38e803532aa196f559aa8e1c4406aa43091dda544797119466faae2e070800000000000000d1f8e16e8059b34191dba03773a7ab544aa7f62f1b35274aba5226159a375f472800000000000000dbb09d6a32bda767a7749f2d2308e31c529b770451f14c5a5858e51ccfab5301df6a1e61dc0ac7453cff2b09d4a9393bbd7f6b3c750cdd004c94ae39371b990af98a903d9fd72a326bc6946ffe25ae199ac4e108fd823f5daf7a9f0df5ba7d20f6d59214b770904fff474f404df39a311b9b73021d153a4b90d18d0b02ac1b6742b1c10f90ac86024487b651f49b23102f430524d3bab83f98a0212bb7d6a4381100000000000000d2127e71432a6a88e09004f42057f781b009963345ae3223e1fe4518b0f9dae809527c5a99b3f780feb4873c97d6fe113146ebc5f03f8a1ddfc23b0475b2004a0d35fdc65cf95871936c5c04faa391649462e6397ebbe036fd1f872a2a3aa6e928330159b544718a40d80193faabb0098a4a2c1e96fcf817759c6d4b9ed55ee48ec27b61c4c0807897ba131d16ab0aed5ded7b84f3b973fd187c1709c22a7487473ec9e82b929b0e0c77ca3163249afe2852466da6515a718b922398e60a1131122a211b0d69d9a9b12eb87556b8158b29d9a7ebb0170831c8ea875edc7796a1a49291f81763e48562df55094724125248541ce1a79721ac00892210cf7a2a27e85f626db3e742959434c3144ef0bf4bac3f6f531e7106facffb00b3d4d24c3770488ba3c83db67fd92f159319d56fa886fdf123fbd5fdb7b18c6a764e7bfc5253e7c92fed5220706ccb26345f3eff6018c953611d7022bb39c9dc3c0f8b02b1469e3688a9af63527cc9c8b9bd57335bb82f5fc178e327ccbe0d66e579878b2cd47da486907d39b2f137ad9cfb3e0e69c623733be6c89685c1f14c6afbb49f2de091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000009829d359f6fb8b0494b2f9735bb52560c53cbe526b86fe0849172d49288f760f0800000000000000e739c7070413d86973957458375dfa1e33fe8a4ba8580320c587994a3f7b2b5908000000000000008431e519ba8c980f7011696fcab05d5d1d75406becfe62278c979006cab783190800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a2445080000000000000073edfd690c2c5e0b50618254ee9c913a58c8540a8ab2e168c912c150990a1876080000000000000018810b1f91814626e07c8d71d6f7f2568fcd47118a71a446ffe52e022ab9e85608000000000000008997b76623897b2d95be414eaca246140b61fc13a122316c952a8f716daf1f2c0800000000000000c8c14a0c1204803d16665c06690e420932a4373120b99e17988c2b70e65adb670800000000000000ee19af1e978b6f318b4cea1a36f1563f1283554582316b0dfb1e6f2f8402ed230800000000000000b55e35170d50896bf651d928fb45de0ad341a8771518962a44781b33f39ad21f1100000000000000aa50d7e68124fd7952a1cc203244b7c4f2d409efb72f9d7887a3a89cf4f5534b9ed023d4ed82aa5b8bf969ffa46dd3b61d68651c1336bf51f7f16dd2aeb3add728c3640f8be5a8e98677134e2ba0e6260f62357ab546e0aea553c460e3e03b22aec8a79fa6f06d193b01d236f4f1d5bac8b2fb819552f3fbca6bda08103800a9567b16bc804493e2dcaa1fa5b8a7a0974c3a576467628b06cb613223937c778866d7e087e54b80e663ac9fd4e2e338d15b19764e9bbb54764e3425e71f5073161a7a8b1bfef1a11d7944c8e02ccca150fd3c8f0d6eda35748431c74b44d380734be124689d3f806a99dcf20cc11c555bb82747a8f22c7a0050800d427b2b18c8af3c2a2aa117954433b90298e36d6c5f5479190bc042080bf06e81cd288080d1e231cf61e4a32453eb6e6445221f4174731a9faba0beb606555c9db84d39f64b949a93fc590489f5cde88d74dfc7fdef8d0a76eb6bb3f0887b66cadf2159fb3758a792ba311ee1cf1b30956b6c00ecec71f56046e0656fa532f0141cdc75f8cd24e866721a7c0b08af68ae8de430737f6859485c772a6f3e0e7db89129458f5ac5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000007b72610befb32e494d37042726dbcb531e4e412000000000000000000000000051ebf7702b50d43f8543593c8543593cdd449f22515a3222e704fa48e704fa483fafdf0cea61372df0b56e2600000000596f026b000000000000000083e0f0036650fc550000000003209f68ba0d064a7b7ced370000000000000000621d251089a716688690360b4140a72679e19969878d9e6c74d6a7638ef3d332e82709211651b31ecb2252218d159a67b482b70c29221a4e4f826327a14af86b60b0394760b03947a14af86b3ae5523414ab132e30ed6b5708b3636392df8e656d254777cf533e00cf533e006d254777245d6e3094d6b11780e9b870bf582d6b00823f3c189ec84a51526e0951526e09189ec84ad0ad1953fa350f43a7f487775eedf8350000000044ce46061e771032cf356d55a7df7c25bbdc0821cd92d0220aacef4d29e1c22ca8ef9b4963bc961900c1ee70cc90101ccc90101c00c1ee706195b335147cbe11470d3c0c8b8c972d00000000000000000000000000000000000000000000000000000000000000007b72610b70e55f2baf69cf560000000041d4c3106d7a2e2981f8df0fd772370d250000000000000085cb5f202ace9a2ba104511e000000000000000000000000550db82acfdf3d534ab377774ab377770a2c4d74a7fc52352412410c03c035486478cf350e5bfd4070f8f84a8de35e5824e383390000000000000000853f4755ab17202c940a233bd0ec3b0ffc728b159d67554cb90eb805fcbfbc3b8a858669e6f4a71164e88804eff1a76f7865516362873175b6f30f3c25d5d02a1000000000000000ca2c4017a72ff818257b0f1c9933eb61672517050d7bb76b01f8e00f4ef12f2217e283679cfc88747843f14672a2355c4434d80b5c04c71c9cdac023cd02c557100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f00000000000000000000000000000000000000000000008b679b75000000000000000000000000a88d343a0000000000000000000000000000000000000000e3d9663b44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a540000000000000000000000000100000000000000010000002300000000000000cea00e48000000000000000000000000209c0373117aa05c000000000000000056beca4beb6e38360000000000000000ad76194856c4e00d0000000043dbf17200000000000000000000000043dbf172ef510b434516ec504516ec50b6455567c2789561d7bbeb6d80713c27e0b4c3720424a13ca818e254bea11e2c7775dd0800000000000000004516ec5008000000000000000000000000000000f58ed500000000000000000000000000000000000d40e437080000000000000022594a29fa12b51af1389507176b334ba5571a05227b075f1a18c20322594a29080000000000000000000000000000001234172d32726d418f809968ba4d5434e78b9e29e57c045e220000000000000013bb776e2da3471599e07a0d30128a4c8aa4f0214984dc6b263874053d4e0552eeca1a13ae80fe2cbf090a03211bbe509dfa393474d4344f1ca5241e13bb776e13bb776e13bb776e7ebee1767ebee17613bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e13bb776e0000000013bb776e1400000000000000342def06d34d99033bd40d66cda67a1c93d26c2e86cfa74d31fe6d69aef9512ffdc0b94c920d0940c581c662c34c343f000000000000000000000000b310107684cad63d00000000541d2c320000000011000000000000000710b370d7b0453bb482b70ebafc77e4792ef389952343ec4143f8271cf22dac7d39d593a7fa5e6cb219eda0233d2a8139a1d77f505c77413916f1c827394772daeeee94c02eafe73ddfa565b305a1ef390586c586dec10fe25924fc70f1d30b97e6dd8c2ca6b65452c6ce428cb8de345d3a1eeedf274e7e52fa64291b936418152debeb35c721924624c2844d36eeddf9da929a5d9e3b1447d1c24aebddc1117d62b767c4b12925a9e5849d14e4de99735e7929e84117bf7d37a46e45cf15669af7ee0d19aff01c007b47e80fa949fe8fe4ca88f9eb72e0176ba78a20d1ceba42d8df812beb7782645cdf9abcf22efc6c2c5c8e1a31fb0a4ece95312524bfa7e95058a87917740516633b879d3dbbaf239e427400efed33665a99e8d5839d0a943203d44acb174dd9a05fc1af07d6376da114f4bb495632f768f67951986e16d26880bcd4689e80a6a875b07c8e7f35a0a43ea7575c035fdd0b9148530fb43437f75ab03eb785df2e8e690e8003e3bf75c0ab759f250a48613bd20b46862654377c932ac4ccc8efdd1594e7429fc24428eca7084f4a8b3c4d239a86c0e25c7035039e56f02bd36f85fb07fee01e423c6e44e056f8a4855de67549741647a6ad0948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000045b7d567fa9d6c5f89c7b8584529b76a2830f96fd94fc36ae1dc62387f1014142888e21cc9f05e5b1aecd2212b16dc67a4e33f008ad0a074d0c3b320f1d95567efd7d646b213001507badd2715e6e849ad2c1c5ab327ab679615454a7afa041b03d93b5f7be0cb63da425669b2feff55b68c3b1ee6570d49301957654f17b15131b1a02622206b41d2b5604df0c1c04631a9866a59c7d54b56ad0f33fe58bd7663fe936c93b4560aabb95c3c370d3f309d8def38eb03ab4e6ff0873932be850ded35e55e70315856b3a743505e431c306519f602fb87732177e5280eb3f0bc0c2f412e76e07263507fc45369ebbf0b1b840dfe08b91b53384acdae49a846b90a940af518d06aa738c9579d13ca7c2738ac9da1154e8e0e22aaf2bd2cda85df09ecd971149067bf352a5d803a189ea377d3d64c72cf21475035d03c23cf8ab74d999298578d1dda6d832b3a1a90d663470c9b321fa85eea355077271d1d70f14ffba7530fcc73422de141bd23c7c0857509401a2e8ab55817c4b79f414344671d8d89c05759f5af2d2ffdd102cb43a0180800000000000000e43fdf123ca48c61a0d23101567c4d18b5edfb77484ad251a4b7440d6b9bc6072000000000000000ccbef35b806a8a2c9b3a036f6bde1f5a15001042945b7420f112b1304152a6488b378d357ceb7d29df586e0bdb89912cf53f310b51418a72754b494a9a44222eebe39b3441584e00d1584327b73f4013f7f007551c9d6169aa5f185baf6c895cc6c80e264366bb536956b92e956f39540f5b115f7910571cbd794816f8f16a722000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f28180000000000000017d3f7400b7f6b71bf8ad116d3968c5c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dae3bd2726d81ae66a2596f1494f1b634cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a5208000000000000003c10a9695094c633146fe948823c076b5fe90f0144008c0e1b98177117871d590800000000000000bc2d6f138e1b0315c8568e1f7ebb26557f4d06477aa1a430fc1e9873c95c926e0800000000000000eb894e1d5e0b4f1e41386205a62d3915ebbc11103dae721e5536d02a94834c48080000000000000092965f4e9ac34e01096e0d76c071462f1db7bd268296294e79802d386a9caa3308000000000000004db398631cd0aa53786921545cbd6c168f12e5642362ea6d3bf0f36e5b222b062800000000000000975b8a02dec1b659bfad4a71c778282a288314054914ad2d32d562099a9ff0608ab58b3eb0f526146a7d39720f460025384b8138a0049124683a6e4a23f802778318260e5e5bf02be9841369cafab218bdff3449f21245131256db3a43c0dc24593e154f05e6e60cea795d42e42be853370c9671adcac96dfb8f180c39cc806012710d4aee879813a3597a5bcf0c053f03c6e6485e0c6e6cd3f1d7568b7a5e46110000000000000044ea5f774c0505b3610cc19857793ba6d5cf8c38729c16ef204f1263a31ae4e9e9f883d6c34d6117805568673f2436ac1d107792dac5f11570acc530b18826462252768ae6361745f853edcd16e4e0fc204b71f8cdcbff03ccdac232848ae77c1ec6d573bf6d7dd8323111f28c1de0f14c893f7ef7711bb6c8b989e93b18ede2d75f8762ce6892811f7eed19bf73d1167610fb67ce0d347d54a44304c0978e7cbd535ca2f8eeb7de6bd2fbf18c22c4a9f3301534792e6eb39a8fb48bf3a7f241805a79aa9a6c63d4db9d4c769f6011498f15f976e19764482d20a7a09fdc471aefed2c9eadd45fa16a0471f7574fb7584f02917690f8d9420317b07acb8e3856dea547f9afda4c3246e9fc19eebfa1b33f8ebd9c9344459875afb32c728c9dd3ac3c4bbabe4721ddc0bda894782aa22c76be1353c36453ce32cf5410336ecbc83f10b1aaf6f112fd0614ad32db7e29a971ca707e9dd603e06f83d0c118700a546d9e0dc143524c54a28ae167f337406b7273f2ee15dae686499d2fd5b2de35f23adc46ffef154c825ff95796441a57266a36ef12a93d1c0a5d8cb7b2b0fb063864ea2c9e94666fa74cca6e1f08351a73aab121069e2f114da667d03ff23eed7db769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000063cdfd136055f32ac68cde5e5986ad5ff009cf672e97ce18e249406fce85532308000000000000000f1cdf46c6b3597601d25034ce676927a9a90c13f3b93b0e78b4d41b83889f280800000000000000367d2527b6c2c52b6af15d3616c8a523a97bbe189d247b36e2cb6c1f890ba96608000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000df381a571b907d58f3ef814e8cbf872ca51c3757ea877d12c19b6d184b89fd3208000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a2445080000000000000087f960274c6a347158934777a5308c4616e60e298e3f3b23bab97963cc04dd510800000000000000bb64c80c08d43126dbbac846ad072c5f0ba70f19f4ab9c6f4fb9d25cc8289c000800000000000000b7799509f0a0e61e44a36a3c8c8cb82f2ff86212c7da3f6d0340c81d0174323d0800000000000000cb778b08881f4656bd454846a7e3185c11506635a7834b088dc6da1b46ed4e760800000000000000931d953ed384f14f9c5a8137eea86d410f08b51fb947671cf46a5604191ca648080000000000000087a7ed36f9b6bf59d88d0f6bad9f3d59bffaa25f6564241e260ebb122a521f0311000000000000003687f59e65a652c2b4c706d663eab117067834b511b43467ac075b86c15e2ab1fd7d6f7d3ba2bd272d64e6be6002668eb814a36e79ef98bce3d745ebcd0d99493676d8951e15632b4ae156e17d302ccd2c7c898f5437ef1a0f0827fb6cf1b59df5218e3a436ffb9a14892e16be32a96ae374da6572b32bdffb4a03834473506685fd11058467df84bc44c98dfb93adc356c79dec0d016ac130164abf992dcf8de9922f9d71a2f773a47a408c13e258f40a9bd3343d7fe33520ecfa87c98b29fe15045be1906d8803f092eeb8f9df00ec622eddd25747e31da109947ba86d81028bc039bb344f4eec74a19566615ad6e663d37ff05f04754a20bbd6a12bc50543d50eb63703e2b477a0f186990254ea658288de84966101a464e7e9fceff1197832a48bfb6024534627adb24f7bdfda671befaad76186b45124842496679181f6d350fe36e2ae01a3f95e88b125105fffc3f1366019574c3bddf637f18401d42faac176f8da53108c8a3a057b98043f929abd7a0ae0a196e18c5ba02a27e13684b016209129442e19e21e50bb50605e8a8a891c4ba21fe26e1189566833fdd8a8fbee66e2a49f0cc41433dc658626864e2b4f41b1b0e0f5dbf9a01a45b7881914eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000001b35836a39f14b6578fa0317c92cc45c4290021100000000000000000000000081cfa24104b76a383b2f6f4f3b2f6f4f6367b3737a304665e23f1854e23f1854a2679613c6c2c9646ce4ea000000000007e633040000000000000000767fb7702479b3200000000085339c128c7e971be7253f22000000000000000094740c46d0d48813844fe42b3786a7208516725de7ca7c0df8247215dd20b55c31628e01bb0a3451c7ccbd57949d875561d6e5509ec5b25bd7b26103e2212857673caf15673caf15e2212857c28d311bb9e1a0029147a654bd2b0a36d0d9f757786c1c34147f415d147f415d786c1c3441f2db5ca30a9918ac984a510d9d41450bceab743c3d36139b2b955b9b2b955b3c3d3613384a3240493596043f3902646f5fc92b000000002a445126e6a50c6848ce656f67890c25c044a8203e95a16172e21b36ede52d6fd6d89742d746d44fce48b61104237b7004237b70ce48b6113b351570adad1a312f7c723bda42546e00000000000000000000000000000000000000000000000000000000000000001b35836a1c9cc90aba51a214000000008233f24949546851103c5426c5405d342500000000000000c1f2e73e4b4d880c040805540000000000000000000000005ff60e6aeddfa22655db981c55db981c6911d9349b84f2255a210f45ed15cb48aeced8387899190d501351690c4d2835f91e122a00000000000000000b76f06c6f4c84157aef6834c4e5685da2057d3419fe844ae3162c70e9766b2e1f968b07c7090e4112a43a178a21cd31a817f46fa06aff45fc968261199b7e021000000000000000ce238b0f014d8b65c2a5675c239aea63e31d7631c716e12439ebaf3e14122106a443bf73b4304c098f6b3b3751f487472cb26c11c196250e0b870c096bac143f100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f00000000000000000000000000000000000000000000009084fb030000000000000000000000006ca3fc02000000000000000000000000000000000000000024e1fe004400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d0000000000000000000000000100000000000000010000002300000000000000a1d206340000000000000000000000007726e729655ac53000000000000000009995590f6360f1660000000000000000fc763932b8404b4600000000a7298a30000000000000000000000000a7298a30a3a0c3625ae10e315ae10e31721b485cf7d4a33be91f72250d55ea6b625aec64efcc3373bf9d5002d226bd2cba0e087500000000000000005ae10e3108000000000000000000000000000000eceb743f000000000000000000000000000000003e28e2100800000000000000417be6655e1b0d398ad9e440d261144d00aba460a8690e3280017525417be66508000000000000000000000000000000d03099748cc0f2737ba766542ffff842aa5c3b194c7abb572200000000000000b35ed403a5b823045d291d40ce67dd115d20225230f21257ef53b311828861481be4e0002dbcc33c485da035f7e9bf332cbbdd42e790dd23b314670fb35ed403b35ed403b35ed403e746702fe746702fb35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed403b35ed40300000000b35ed4031400000000000000d97dc347c1db615130dadf686a7f45303ba5653f3ea81f0a5ca2530707901b34a0ff4854bcb0011828b4df5cb5358d67000000000000000000000000200c631c8ec0212400000000d5d4f44c000000001100000000000000476a325728ccba484df4aa57dd785f00b9457f6dff263568a846600ffc83144d953406f65fe5168b30a45df4726f55b0a21b6f879eec8c090951d477ce24a45b8f78aac2e70897522abd2067e63723ba5cd9e963051ddf6e4b7e1387b1d24c76cc19ad60fe4bc26c5455e4cc424da72499c7e06953bad7dbaccd1378bf7458418e026aa0cb0b6efae60b9dd83c4aa94f20428e3306809aa02c146fb9ffb3f9f36bd96355af2be2d8e558b178d56431b5510b222a366dd45ef24ecad13676fd483337457e619a95d181431cd1970bdda37b2a5ca5f8d65fb6e7f06828ea595f429c94a876309c0b02833afcff981eb2d9d26208e8a5f08a09460bc58efb459310ba0ff4ff2c7da0f2840c95a964c66888568d9db5da96c31fad7ac2e430d6630f0c91c0f6984c4985fb0d3bcd260c96a731ebc498f0a9be75aac70e6c4a245510392b02ff265e3fef7e0bf6f9a09f0dc944d8252861b6771d7915e171db6e55a6aa79589b34375e7842f1f5cd63a9cc58669760e9f56dfc64542e94f2f246954ea7d63b4a689286926a1f76b265e1e7458c1a2a4b6462292c9244723ed2e341e21cceb8b1ab6666f968b6b7f80295834dc13a894c7a4ee13129982424a74a51df550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000009a37cf0ba0c1e53f0d21396cacd76e66366c401de4279074d3a19505807f331aba8aba455c209f02bb41943635720e6ea64e116847aa624c2f0efe46eede5500e4f8ce0a4aca28604d6b9c6ac2f1c4234102066ae66a8611e3bc6f32b1ebe16a8d5e221006336d625c5574592719101de08a7d3021f83d377a54e628bf599546b169992fc440e13eece08d49cd4d74038eeb0436d7afb831e4dccd167751c014acbe0870df9bfb43e9dd9049fe8198218c03163ee8b9ef0b05b8a7406cc2e6393340d62b3c510523ca05de018a4b464f63b9a21904f6732bbfb9740f4686094599787a56b11cf145d5db340765141e0752236d03312c7517603a40405b6b39406216d907e97a3c55167fee5f942ac252d273f83c676c42452b72064304fbae66ef93332a63f9b732c261ce6f4d82b937c975485ac056c46b37067015e9b33e5e7b45e267698ad4536aa66c4aa2d0c01a2d839900ac456c4c6536d82ee58cd5347b260147695a4c0f396fb80bf8efed0fbc15e3184dd0206e70004d124a2fc116155eb60ed4493a2d49b006660ebf5b190800000000000000ba036e44c388ac0b7d984e2f7aba6b533e8b8a6f4c1ef9520f79c95cc90d6c342000000000000000dbd5c45b4a144d52746a6661a43d990955408e0359feef085fb70c51cbb9dd60044036286217b56a7ba0fb507a42c30b3e3b3c4448f9bd5f4dbf390745f6b6443456290317176b2a5f712a53fab34d73e0ea06702c71a017c39b9b1843993e200419096a1b08573d15c8f6510e2e5227a871f5148b107b08e32b2b06de99e5522000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d180000000000000079f26c2034d5d047a8d2551ca2abb41950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dafaa7d0d48aaab40fb8cc71024769e48cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000007b9b07733f2c5c049babac6975913a3c03ada8292b244728289ffc5162e715210800000000000000b82f0d1a9297ec3c55591b133955bb29a4b335624def36169caf7c6e571d97090800000000000000f60e56775d43240c428f712e9b0b5a4b2acec3202735bf28121bf5479830bf180800000000000000844d912614959877b8ccd435bbbd05473acc623818772656a26b3c5c8dc9f53508000000000000007fbc324265e8a914c4f22f3543fb354646cfbf40da6ff60a37f42668d943d34c280000000000000064d2bc1fe9ed3d19272ecf58d67276066ae7773bdc58ae31385e0d376f01771b128107154a8ce43d2dede50845e71b531897364ecc4de3543ec48f11f3855726bc1d13315f6ff63e8307832a20eb9f747955a611a710bd1251b80c5c0c9aae6b24f0185c8895603dd1418c5daf149e3968b8466a5555d9616c64af542e3fdd162b3e5b47e19ef50177877b022c844e7066903367f52daa5c0c18fb194409cf4b110000000000000000733f75eda4c8e66e511db2698bc2aaef5b51d928f040453a117aee5d8e87bef7c28acc1376d6280a40f0ecb1b7b96ae06cf57b09a58a24e6455e6553d6a9616e3fcd2f7e67d4a42823708ecf91b5aea4af6fedb60ca33e25166df27ffd08a2ffaa1cd1c0e0505a24acb6b3bd54f973b6098053dff828eb50afd754c5f1dde23aff7c6f618adb33a6c44bc02252895105b6ce1dfde2071730e6e0132a19a244d1354a2ec31c87419b02b51b34da1b6d57828850f9a93ffd510cb4a094c087b2f8c2359e09529c56cb886fede7286bc6a2ec791415810455c8f3fe9f904e960e6b423fff04661455d34e167082a6d43120041e5fe1cfee2d5c104fbf3dc4d196fe8e7ecf828c298245393adbd22376c479269f7585b9503644b59ba56b028734cec8d012a3bd727800bf5e901cfd4f765549c005ecefc78511e04ef5bb821cc4ab868635df01ccd2773cb8a58d9062d5e002321b386e45552e3e3122ac4f2c03445875d8d38877cfc0a90488be835892ccfdf58843d9e034f7fdbf37616733ab7f64c313f903387ab5f085033a06220196cd69458f025d555139ee76294b8c8bfdeb983d164f61c703ec56cd3d2b8d9fc396db0eff0f1e23d41405b216e6a40102890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000553f2c40de0925084b21b04496af1d758faebc3fc1e8a55dd473ab134a013e06080000000000000008d8a25816321b123c68974776c0bf4eb21eb107d32dd813946d173b3b4b6716080000000000000036969c10b249a755364bcf3c4652dc7709de47640cb8ab3db1a4d828ceebcb0f0800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac8480800000000000000e10ac36ba017414ef6e6762c12fc83538ffa2266b47f82666d8adf17a08267080800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000002c20a31aea4d204b7095a75b1757a3063899e04f79f79c42fe89a24e43c5132108000000000000002e074a0e8ce86c63df759e193395f703eaf6221c3ec3d03fb29c69147f9a2e360800000000000000471b6901c3413412f2edc364bdff185f70775b49645a9b2d7192bd3c3b5ea0380800000000000000f179550a10e3d36f381a5d4507592537986d422869a1735eb45f521c95479d4b0800000000000000f63c9700ddda3c557427ad3870f2603d4353f956f24d590e4ff8213cbc462e5908000000000000005b2fac1b1f2ba857e912a22eb51a91152b35ac081f0dd500b808a62ace9f29581100000000000000b0809ca2d97a13a10f1caeb82bc006329ee08469247bd47180736d058cef24e3d0eb985eb101f5aeaade1deb21f20e8df2175685dee125db9a42e257d9fc90a240367fcfce10cac55ec6f5a6f9478a48d4f0f27307b56906e58a12d5aa7b2f9ea16d5c278a9b9d25b9a0c462275032d218449ed01f45a358434b68d5765744e8987d3ce937d90fefe88dd5433bf0391df2fe6904a57f9ddb4e5e276cbb2c9beb8813aec87ae74d5bdfd97b7f44f6ffe049994ff79ef1b07b30d8b1f49e5fc1c08e8b1f529bfda23bb8072e28f9412fda26ccae2020791b4ebf9885713a066bd65fbaf211577545bdf120bd316cc745183e495e9112d0324fe955eb0a16768ca869cf664720eb17ffe750ef6e6bafa005dc664a1f3898b43b13c0f76534073de469ee4c5d7ebb64672d42aa48c52802199a001eefa58c48500a466d34150f8f4ba74443098eba3383d1536407dbfc384987797f685fe72eda0d148607ebe11ae75485cdbc7a9fb6767ef91d28412a10fe07360f15877da01cac78cd543aa3e625a24a724ce99af18de38d2fdac390ada5275f5f69365fe521def7ad106d1ec6b979fcce6b8a5390eae11663f6baa84d26c3f3500e5b9a546569c7b5c6b1a1ede72bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000066cd983d8ef6e23b87d3cf1e8d9e481d7043343b00000000000000000000000005f2303658e49d6de1ccd649e1ccd64964ad833949ea43028d6ebb3d8d6ebb3d82367b44a103dd3bf16e8b2c00000000dd76f6230000000000000000f06b792357242123000000000e123401f211c2337fe3ce1500000000000000001649af6504b44b73ab83d6058eecb86c59175b159c32673a6e29dd429be37c3c3de70e0066a22701b72ec86f2f957349aea2a9326e3e02712780c41508f9ac52c472af33c472af3308f9ac524d1c165327295b5164c33251d534610001c11a11c019101db2b7c16bb2b7c16bc019101d3724e21795b5204cac1a0a76c0aefa2f9b8ff22361fc223ccc62ce3acc62ce3a61fc223c5e7aa404e9028f3df0348c219e20884f00000000992ba60e747e396462f0373c8d8c9302a9f94a1de4b2db74c816a22d26425829a59070362971a9000144ac6f6684a8136684a8130144ac6f7166a9713fe2d217b982242d3798b260000000000000000000000000000000000000000000000000000000000000000066cd983dee23230c9bce682600000000aa3b2260b8eb476cf66bbd2b100b7f0d250000000000000068ba0804b6d4503b34ce383e0000000000000000000000006420a51c1e2de966c5686514c5686514eccc35154ee21f46439de52390ebea33aad9992fffdee46f26e1f434d89fa5092ace662d0000000000000000ef189001c88e875db836e31637c329645e05af069ec6966f12cc5c0b054272514a0a8f31b3458a5319fac736a1a45a6128edb32e5a68b367c4c6b06ed7883629100000000000000011671a42fbf7185e82c83e1e6f74802faf666408365f7103c694073bdd884a597f910135d59b116d30982016238d3655c635124afa92501d6c6ae509dd016419100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000066bea5800000000000000000000000089e29707f21b8f4d000000000000000069018840374af94200000000000000006262c151f11d0f3500000000553e321a000000000000000000000000553e321ab7a0f36ba7be0229a7be0229e47f0901f35bbf54e62e08558a167769a5603a5bf1b414420f6fb330fe98352ba25318480000000000000000a7be022908000000000000000000000000000000ab811a61000000000000000000000000000000000c69fd6a080000000000000075aace686348d22a9171243e818cfc128ce49c2f9a386835302bf72175aace6808000000000000000000000000000000ae632711d150af1ec231e826049e3d778e9ee1695aaec96d2200000000000000c5b7ea1b3c39cb154ff246596c78d75f8b938121c5085729b0c3166f83aec82305119963402ae2660ff12c391f95b61a025b9e0defd597455ab44c21c5b7ea1bc5b7ea1bc5b7ea1b84d2f94a84d2f94ac5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1bc5b7ea1b00000000c5b7ea1b1400000000000000a36b3f317eb1497528c4153cf958736ad1945d2ea15df20fbe6ef00918c5250a79112b2327326d0b1454b504cb3b9e30000000000000000000000000a072866aa025c03b00000000582714190000000011000000000000009c0def822bc929c5c44c444072f82c4466097b0609646ac76ba9949e3284460d9dec94be06289cf30257a724e33964c243dc5e83e1a9cd1180dc700cabf16317c70cf126a327f6234f8245fd8ff30f782d886bda009f702030db0b3dbe0e0ac6ce20ca60f4bf8724bae10eb5e5861d2d91dfad014541faa143cdd1167d36e76a985610ecdaacc8ebb9264ebb61a5c695ead3addaa6e498ca7f6800a6a91299a0447ab597bb2bc951f94d78404506c600d79a9bee13cb221734ebe032099aae7d99899282ad75cf3421f3e619758b8d08b3cdd0636ec75d1a2d18f65f2938e83bdd2598fe27869ca21f83f976a43293844637602ea042977cb71addb372cf240b9553427c0aa668fac155a4fd20bc62ca8c8d7b300469eeb5adc61c153a622153e6adfa9dff4478665e2d1256924692287a4a210133ca6289388c761cd6260c0934771160961c404bb1f2497fe6f673baa9d06cb3886dfc7ec88b9946591a309b85a1c3df3cb586bf1681efbd7977ad321a34f0f5db28c24d1a24ab927886ed611352915bb8d58bb737b5f8b71a80e86515a8ea255283755a95db5dde1b4e1d906db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000047e68d24bd30e62056606469f4fb6d106189f43fc40e0124f1e5c12c3921e56e377c0c0584696f119b6790699d61df6ad11e950fae41da150afb6f1434728b1dcf59370fd02df930ae523c1cbe5bf50dc44a976fefde1c2255701524ed8a126aac02f06e94eb28567e102736085e5c0a256dba101908b530962ad93bd6c9ad2d74a55318cd7a3e01b5e61639bfd3860e8a98704d6afbf516f525457078df772187ab0720f2615e059fdf5c3baadf1b3d2b5b32260cb79c11647efb05bd9228084188b86d4b0124542474e0205ebb146e53455f02ee489b5343adc3369fe671703228d04f54f8ae6f5ae43e21fad9ef35d576bf66b66bb63ed88bb7290f2e17024f1971182f647157bc78a94a0f67b4532f9e8220a931f12f1aebfd084fe6a94699921b55891bc61e504cbc5cc16cd01b2f382166fb233341a331692195ce9d324b97fb0da4b2931007f2dd1d9fe0be332da93b777d8bf02a12ca3139ea8faf65fb1bc54233604b13ddc769472f80a6112540a20097d31b560fc14d1d3e1eac1d995faa1ab00b2d60b901d275e0857969080000000000000086215376b73c090be0844f14db7616050c87a032f5b7165cec598812aabda2272000000000000000186b5231a487ef137532a141862fcb428dbc3f0a93ca5f74ded3a65b5156ae188799160015f20265111f13522a69e96273d10410552b09770345cb316367e206607fd561cb4c3e27e48a2b1436dc6704c5a3bf3fdcf3213ee80db512c7a2d76677e3e21883696f374922ce63f753533f284c082d29bb296b779e9667e093fb752000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d0800000000000000cf9c6f14a37dab1b7573c37721958768eac981046f0bcc6c3000072d6705be760800000000000000b22d1a3997fbbe2b61e2f163f1e281215fe96f3a29bc89321d0a40029e7c07370800000000000000c268bd08bf8a763cedd5394a05e18713b05eef4a22feab4c5b669a5fba82486708000000000000000a4f2e2e66fae2616475813d49ec9c1825fbc04ee1370d3777f2012208fcce020800000000000000207fb46df8428f2477fb68464ee79613ab45fa1c9865bf207424001dfab08d14280000000000000054e6dd166327b412a073f919f3395f6b546d67224e0a4b75b234ea2d4c07f63d2493c860a25d215af0dd3142da258858cd0a4e0683ea864c9b85140788b1aa30a81bd22b7f920d5680df2213b68c5960eb7160746bb40c1555e17168ab88692194722b147f311320dc764637cc3bf13712a7db353b9281542f94905b6a47e53b6437d90d9ec232235e781031af345428a24b302ec9d5c711933f8319f26d6849110000000000000077260448d78c93013ba17a477158509511acf84da9b39d760b350bd475b6c080beb7748850ca7a920fcb15f9d33428a11bc886cb0b36764e32219f1a712244d1173d241d0164cee5475ea07be90560c330bbacd793cdf11e2dcfda28878f4c426a1ea39eee5fcb2e0f0363f4e0517092a77a7ce65f5cddb218750623367346c1cb4f022506db9d3d1fe75f7baa8426ab2fc029008a8e5f21d041cfb05f5509f1e686f9ab2472ef21403a342f6aa7d16cd7d1ef79c288eff3571283882d5e8a46cff2a096e187cafefea126101c1dfd1315420f2e0a14e1f80442f6bbd7f938e298510b88a7a9244862e298894ac6824d8f85d4e28242d218f46bb6f2d64bed20087eae91d8026ac5e0b2a91158d80104933b3eaca60fc36505f4c9434f2ae11f63d1f517e88e2eabc6a92618f5c08c461a9413d303c67e60b0db6f56949e393e1b0090b3f1decc2f4b660d4b046845d8af2a6b187b217dff789beb760871a79ce7e788c971d143b0269dcef88c48b42c63ebb31ff69f686025e1d6e31f532378f737948a84fbc81938d09ae1bd31b49b105ab0ad65f2ab56e606a30d4541db17b0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000000f157f3bf28b34597600bd4a5323c717cc7a42539145790206e1563874fedc660800000000000000f939b40d773b0e673388ad2eb088e527125e3e2f89a4245663becd09ac32852a0800000000000000fde3b8239cc21c49502e4845a8d5b13f74494c5bbaa57d37d1d423171bdbe65c080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a244508000000000000001a63080b53fba44195cc7d0da8a00f4f410585316b137e5769594a347273d9120800000000000000723e6b1409e65e3b7a5d773c86213c707831694bb62da2459dbfa110f38b514508000000000000002c38ea77758be201ea0c5607e7bd8c1f8bf5bb1b29183c0bd63d0c6ba610c0350800000000000000ef58844c74689236f78e8f5fd07b320024efea2a8a0c6b164a8c2d0d88a053650800000000000000f4ec630d3a86374369b7eb00300c904c8f6b4638e5ac5744907017237e2f2a0008000000000000002f95eb7698194621a0f16c3541374f692843640c562b4a0838992306f229e25c1100000000000000347a3e23521b4fd56fcd2ac0fc877f163349670853e0f94542055e245bd6b43ca7f8c257672f8a707573a9c1dba33c0b23173f5a7ec2c1adf521779117ed1ab9c4cfa701c6c0f0846c8dd38088b1f26e2832ccac9ae9b54fda4e092cd82a84afd6b00a2d2b9423445d8aca414cbd9e64487032482ed364e1838693c1a1d36a1999226177d78589c29170f0fe7cef16b0c2cd698f4818ba84952a144b0386227a754e62a0ff54970bbc7f560ab882b2cb460aa67c78f0eb809d91d2056af23cc6c45f004a2047ec56ecec5828151b1b1b0a7367b401e15e25fddfc05dbf8ee9635fb13fe78f8a372af8ea1fb157232c509d5cc47ed6ffd7e461d4503f59cd1a056ad25376eb46f1cbf610f29e2487051a83b51f3fa22cca517726f977af7e83555d1de78de5013f5a786fee42eac5caf3904d74cff7f9a8bebbb5f36b3ed98cae74b76bdf46d81eeee6ae5be2fe9d20c5a6c271501e5e3cbb985a0fdf2658b3b1c777821796e1de8026bf458517e5ba708c1cc91f5ab4cb1c7990fbf0324704756b4f82b86334aac189edf1ea77c0ca98063b6aedb71f5671bde129d96b3476b6b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000cbfdb53a116c3a6f7ca7b35ae5e6e81b89750d1b0000000000000000000000006cecdd5367096a67ec5f351fec5f351f2b70d1560c129d0be9b0296be9b0296b19c6f22e1c4bb74bdc3b5c25000000003be1af0f0000000000000000605580320326c6170000000038725e0aa7c2bb53a6fb84180000000000000000fa916f51b5ee3d75dfc0553a2d2ca83bb697002e37024a3dc280df654b8c89656f236d18818f43693ba88d07061d7a26ddf82c24457011631676b4280b23ee2667fe7a5667fe7a560b23ee267384660395ad0c5609082a75049c0a427da3f83e6f883754b34c9954b34c99546f8837540a55360a8bfff347b38e8a06e6443c246ada1f4fe6b4482c2d34e7022d34e702e6b4482c185a6f50b254c702d400df13990ad14c000000001bd41f27e0d6de538dda3e42167a596cf1a0f518b755f87420ca683960b03b5aba5ee25337ac466d8626cb0532dfbd1932dfbd198626cb05825c8b5daf3b495eaa52bc62857443770000000000000000000000000000000000000000000000000000000000000000cbfdb53a9ef5a83e5c49450400000000a505e3750f6d12046661695ece91784c2500000000000000ed1bbc46496c366c20698249000000000000000000000000f319d56fe33ada727b5700627b5700624f6d79314d2a123865bfdf6deb6c693dc40ccf33d132a62b72f35d46f29e1471149c296b00000000000000000d2de14c1afc4543442a0b50c921024ec569c9597de61c064296d13d6ef1b81aa6de7052eb4a703571790935163b012c7b1ac246be8eec6b79c4330dc248003010000000000000007aaac177798a471178c5450526ff6e3b69a77c606679846d3eba7f639cee5c39d3ead866e740615caba4110910240c2b555d6b0e59481a4b312c0946cd3ca928100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a5400000000000000000000000001000000000000000100000023000000000000001c0cf354000000000000000000000000796df730b21ee42200000000000000007784bb3fa736365600000000000000004d17852ba5b5244f0000000049b3de6a00000000000000000000000049b3de6a95ca631e3a80886d3a80886d1ffe86343f314b238d5d0864d6641d098f77ce3a60b1bd12c64e7b73b668744c1e74951800000000000000003a80886d08000000000000000000000000000000b366c23e00000000000000000000000000000000b17020410800000000000000b0238941ef53374403d11b4e0ee6690d22aa511624522f1431264213b023894108000000000000000000000000000000907f6f4958ad7f22662f5752acbfe23ed04902698d2b10152200000000000000cfaedf629800ea7058431a0794a87d64b59231350dcb771bd1fdca5b123159663cb1e9249c736e45052dbc6c4133ba4f9e70651a68ec9e51aeb5aa46cfaedf62cfaedf62cfaedf6247f3693547f36935cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf62cfaedf6200000000cfaedf6214000000000000001982db3ad4cc534d6975a21284d98c751b64ea6250b7d043d1e319230fc8ab3b5cd27e4fb43c691956e5d518e977f05a000000000000000000000000fbc82a5a99d1623c00000000f8b19353000000001100000000000000849bb7c286c863244392f5ae444385999961d7f047161ec73e1c67898d66c959bd0a01f1a49f24cfea04459327919da79d3d7897b87891bfb281c53260712bcc4572e704d1c7ff49f88c32f7ec552825c29c973cc64070be6a566066fdd34af9a20c8e34b3e5cb6b40b93467d735a6b94e953baada818e508d90fe572719750aa47fac0cf1f3b97eafdbd73c51ca4b8fecbe263d449da52165887b4e28b374d5b2ecace53fb29a3e3420e5ca8382018523799569ca9a6c64753d22d48de7ae433f53a33250ded0ac94173f89ee643d57f97f02680e7819dfc45780305018e09504c70a3a0b16402c57d884a1113fc255a3f213e2ec10f20787dcb64bd66a01d3ea67486210c65aa62f973e4bd7bead97b8d11db2d503bd07c49444273d0b7ad8f67e38b0a30feafe59495f0743df6e15cbb744485e56f56aae886c7d94fd6977462dd3c6e99c8b8419dc236d3997d2b9eab92cb633dc7460b233249b4c7812736354dd0058591e52e19523ba58dd8d303c9665548cfd8dd8e779c6900495d774bf141cfa2a442a3af2b9edc3922cdfccc841b14bcbf617117568a9c87da917f26db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000006416d25b2fd8272406bca025d758dc4b5d55223d245b3f15b1e86673a662e91ca7610b34bf5e8f563a5d042f35c1607430c2234cb247f52414f21f1d328cff5fa446f66fa189421cdc527d372c5e746a47a78f720a013c5b6edb2b720bacac5128aa30106db5de08fa9f3334b7b0cf052cf03f09a4317f051e5beb049fd17f3566461d645b3c444e0e219307932bd31305953b5b671f4309f66f13065bdd59004723f62a63967b0ec40d816882ca2b37c3f3801a9b3e6e228a3bfa286dd75f0a8915d858988a4265313ff10b76033233b627582baacc6f44e820a03a6f5b04474adc300aa6152734f6454e135491ba028eb7571b1a2fb1227769c40ddec1bb244013f94db02d6b0fb4158875817c1e171ddefc57660c716832afaa1c2696333c452e7016318fe24eb3236168e6b0705f1cc84a065ca28e3b7d88b859d7c46e231acc703922b0d72f970f4b091f6780019c642c25bcaf1a3755817b58d301413ac3c0d922f90b9511b99f410692a038008de0900a0348eb36d3f08e0d708a19128291105380add30d2cbedd4f7f74926c0800000000000000842f7619eae51341159d3a0870a0cb1613c4d07481a6b70044a23c1f826b3b722000000000000000631b3357943f0614200d635ecec1202bf0681325ceb3920b122a403343a7335414097217e643a2581f74a53fc3b5bc21f635985c810e8a4b4dc94d451bfcf82278f10b59acfd2839c3bc4f30cd11905fd53acf1087960006053520348d3c865aec3d326074afd21a638dc2640fe7c84133a5fd5e58891331981f5b303011c6542000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d08000000000000000967382efe2f7b42005f463ebab3be16bd0791509312ea6be43eb706cd91fd1508000000000000004056cd50102c3d154908361d9ed78465f1eea5709112d70f8c83902d0a497f160800000000000000166caa10042ad93bb4acb85d0aea313dc5a8642abbfe6e61589e67047113d72e0800000000000000a1fa641965dd1511536aa1033b63ff6214ae45638acb3d5bd7f4150d47645a37080000000000000004272900587bd54fbd2f3f4c45b9d7497361c063649d0a5df221635c659b1132280000000000000094c66a1ffbb9745992728e217e5c4f391320270dd05d846126143a7726870e622a226b3e5aa589155b3fe514cc466254890cd1717a669e41b4daca5240db932438a43510b04ba27224a44c3fdaa6d21e89fa9e1cebc8505aae4a5e7404d2f675f2d2736bfcc1cf4adf6c2f57b6d35830997a7747c072cb22dd6f120a1d57e235e892824d88a4a715842c7f2d7f4c905dd23c452d499c682cf7bd6e0eb94d8c6011000000000000008044113cb7d1cef49548d79606aef717f27dbeb1db25bf64b2803538d5725f9027bb7585d1e1aea6e872ec0e84d6b035d75726c1a33c06e75d1e48a73cc312eb3713573efa99cd569289e1cd34a1d67fe53de639ca5545abb5172432c04e98dc7e25bd2d5e7bdc1307d7552dbd3c5eca5bb044b216a38c7910188ebf01952a09049f7e94d806615996b18426a8f4aaa76a8d7d5acf5290673186968a10622305d978db02da8ee86f1a97274408d3b07caa111b2586a648850b8bafa6b03dda345d2c390e7b866a6837612db884d1291480b0d76ab392508e994051470eacd4497e53ee4bd495956f867e848bc29927feb79d5dbf6c26043ef11e709a99c1a975254bb01901f5698dbd2d8d0ebf8baacf1b261901f3b7a3c7199ea939a01317a07d1ce854b74809410aaa985cb87fa2fbe20788af970aa35aea07c5f923f1f56fca5aa098a775e62f519d4bb6596618728d7f6bc8834108207cb92ede6370f0de4fb7b0afe70194ee381b9a0ee1f9863c22ece3f255beb76d0fb0e5534054291b87a94b297db8d83b85459c6ea67812479b19cbe89bd9b8e7b1335670c9881d3cb0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000c1a0052eb51e7e4333eb140f7280a7540013ff17b092c76df0abbf43888cbc1208000000000000001b86af1e363e902d8b501a5e4cbb1c753ad96e49d3b28b3216b1b70ed9dd4d540800000000000000870e3924b9f6b6666977a02525aea22a21b0e35e7393571ead570d6d6286800f080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a244508000000000000005c40e94092641f1e832b2c5be08cb412269deb25236db2001070e121947dad0d0800000000000000ee4fc20bdb7dd26fd7e6da3b20f0380c6172f5575ea2b021a9de743013d1482808000000000000001dc7296bc8e382775b32604fa40f5300ecbe3604120cf44958b9015631c8ac75080000000000000035e4d947479da264c200fb1243179174870fd1732700295aee5cae74b6e390770800000000000000b3d3bd5364e5cb71fdb19425ac08fc4bf586cd45b90d3746ea72fe0c41ef7707080000000000000025c0b350856d1749b5bac82dee50693522e5b068dd67cb4a729bdb3004b5c72811000000000000003a1eab03402d86a4ffdbe4b33b04389d60e90d3aa49f016eeacf38c7ba91b48f63cff0711fcc0ff5de3dc42fbaecde9948f4cf7c745bee63fe138969034da9efbf4c82d0122875ce180412dd7a35bbf1d102e35a0a9a1612bf5ae2aa84de85e7e1acaa2d0a301ee70b0d2815c550c9b2fc4e2b9099168e30c19595c240c900b01714ba57f60ecb5fe20845761c9e770e0781c93099b0cc931088da2555a1f1ae04c06b3da29ce1410e7d8685ea486e57aacf05106157ad4f9012c26d2e95b5c6078923962515412ada6c189efd818de7f8ea67123c94e040cdb944b5dd1a6911b83a34e6fe064a06b50cb650c780d332eb3dbcfa44c6ed24116a53b08aa946b579870c0b4e62b91cd1a64b8c11337a51d4d788b393a452d564647a720056f7876a2e6b34c5fed6b7a8c577320aa623e1a38bd1e0bd06b44ff669732a979a7bc423612a080567c5daff28d6c334083409c07f8912c924aced2864da3743bb74dfb8d6e17537cafae4c4ae27ae29cad97e5705040bcd2998edc2c150eade8c75718ce195381d03da9d313c9b3bb1e3ffe23f3afe21a5a5d2bb647d8d0e86bf38f0b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000003cdba411c978bb66f6dc263457c85100b0ccdf050000000000000000000000007aadd34ed5e12c3fd1f82574d1f82574ab2fbc1a16a5ec5bd0fb525cd0fb525c78012a69d878fd28952beb5200000000a0a9eb340000000000000000f981d12485e8802d00000000231c514670911b22c56b7c2c0000000000000000d0e5d137c337613378316e11aa87582109557659c6245b666506a40bee2d7234409dcc19b77ea016f5ecb81dc38192462eed7244fc258568eb145a3a81d486680937b34c0937b34c81d48668485fa96bc3e2b257a493c37046f0cf375216d445990d5b691fd5ce651fd5ce65990d5b6938378d04ee235614d8152f3020725116ac7ccc5e2a87024f5ff2ae115ff2ae112a87024f58114e2b4bcb703a3e9f7443ae4cef4e00000000d779dd546123b64554a5cc3a925246123f9ec9046ca7c75f9d86a0051def2e7040e4187091c58e439d524110a06f2757a06f27579d5241101801b50bf9e75656f25e614fd85be17300000000000000000000000000000000000000000000000000000000000000003cdba411756d996553ad31540000000056464e047436c70b59862a690bbbb53725000000000000000627fd054f4a51137cf38e2900000000000000000000000008624a2f9deb7a6cd1c5ca6bd1c5ca6b54037521288191627df11e71c778b617e2eb09269a3beb4542c29f72aa88323b5f22874f00000000000000000154c903f384430c499d9f747c5aa861a30f174d128df765e3d551198dbd2f2eee0b972f048be42bca7c912c0637564b5dbd8a67bd611d67d2a601554a9954771000000000000000c767ae2f5fba9d72d92b6d36845e25741b310b28ce65cf24bff2f1150250261be1002f686481a821c930f1447032b9471556c9217903e85154e41b4b03369b16100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000002626623b0000000000000000000000007b37af3f72d36c5e00000000000000001af4145db3b3b71700000000000000002ada6e4fc4a1d42c00000000110c9e00000000000000000000000000110c9e003be60c50fe87e104fe87e10439a8d0709d50ba1daa3f3e5cb032c70a0947231ef700a859e196b9100b443733d9617f410000000000000000fe87e10408000000000000000000000000000000c9fa8b1f000000000000000000000000000000000ed59f18080000000000000094d42a0b20320927d8ce6a11d1df1524f591586b3f64ed22d2928e5094d42a0b08000000000000000000000000000000ed08382e355f1f641ecbe96481f92e698a804465fa6ec95c2200000000000000329c72235c72544abf0efa0517ee737107f08f1b01244302d8e1ca045438a2056d5da91402cb626d5aac5576cb37dd23fe73a75686c97076532bd76d329c7223329c7223329c7223a658d548a658d548329c7223329c7223329c7223329c7223329c7223329c7223329c7223329c7223329c7223329c7223329c7223329c722300000000329c722314000000000000003428975979b649579611945f17cd4c5182bbb869c01607343cbf2f2bec41815e6e844e39c4684438bae971661a1db02a000000000000000000000000c80ef25393b9bc0500000000b26abf2600000000110000000000000081416b31b8f6345cdf239c21f70809a1270ce271aec926eccd3b0329c16fb9b22c99582040b31eb02b158fa2bd1eaed4f664fe2d5d9cd26c578a713c98925acb2089077b978ecb625f3c0fe1432dc3db7b28375516b32f550c5173b5bd8f39dbb0830e6a1f4429febcac1341ecdc71696dfe6b888b41996f8979e75cc422c7f111e775f33248995cc8886a535e67921e9587fde6c0b0111a451b9c7d198171b2a9bb6c3c69902d36339b84b68d0674e0fe92c1358b0076ef10c626e62a17e7037748dc3892a7bafece1f5fa188aa11aead286cf7adb2572dfc79a41bdef6579acf3c4d9fa6ea361f6669356182767928fe7399d297b0826a30e6fe8d10a9c7195c64b141f82d3f019f16542938c051c90933253a31fc0d1105047d0b25672ec010273767878030b06e0d0eaebe75658c1df1ec621650ca274090551a965ce149d6d68e4c030bcbaddc7f67e90c0cfb5329c623d7057cb6ef83fed134bd165ca8d83293aa8a182cb9d86dfbaadcb4302e089fc6bf4dca228812afed1130214b42aa12b8ebdc9f85904549c1b09e7c0c92566da16abecf7078aac66abc0f3c28610e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000005266a201e756cf1af95cdd510a06717789eb6b1dd384fb159bb89223cec4d726a8fe786adfa81c5ef4ad2f25378faa56aa73556b3b22de02099dd0268a40683dac03241a440f22562f086f2564ec370684229b6612859733ce8b19396d4fa6704dcdd745fcd12d03d1969f227d4f30422c68210ee5e80052e6cd6c567dcd1d3ce20ecd381751ae3f8a7d810d48ee175654df1157279b525b739361432f709c478395ab2a607d0c26d82da44254e73810ecb9dc6fe3d0dc1ad3fe5b1e0f8dad5a35c7c12bfec5283d861b9b345001ed75abeb7d0516d9b43359f1920197414548c4c0b506a0d26d37354db819fe20e63c72965f10b0b287352fd9d3413fb334536aefb22289b4045ddb62fa418b37b22d67a50e75e0b7372429619b2d92394469441c07425c3fb31492d31f5ed0848c00f2737b66c91f7f341644921f5bdd20619a90a95020350d647c111a6fd0c5ad0cd2cebc2209df0459cd7b8e34e09b06636e14b74c0d3c8d34ba1aef0aaef5e11bb03163301e94794807bf3f1915ab0f00b926e40eab1c11014804205c109bb20f0800000000000000974ea7462f5851403764c229ad5c5152d682195990f83239fab09d1a5a7e4e2020000000000000006f261457f78abe6a813a65467e67f53b1546016bcec1ba222188eb11b36044047c5b062d4341f555f4923615ded6b07614548d33284eb60e2efa4b52f9af6503cf1ead1e543c9429b7156253e0a93c6684ac116ed63683592b0c245154ef76345bdb6526643164731d9a0f26d697cb2595c134284387f63c386e30324f37fa182000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000003eb65f326c0c003fc024f6277dcba254edb11d011a98063109ebe4259b615613080000000000000032be5510007b5324c751ba2622e6043fd70a1347de1ddf2d347fa32311f3a3640800000000000000b0166d31b15b1051a267d843c2c248497b820538fa3fa45801ee9313817b400a08000000000000003749385e6692332e1108821e41252a37d5524d6a937fa267b50d3f2ece2dab6f080000000000000016c82f7257513d1ea986836a5170d9024d128e63fdd0c2515b76f905289a8a2f28000000000000006386763a7bb30044fcfa4d3588a7ff4ecf01c01bcc44de6a063e861dd98d2c18961958777e46962aed886b571d4053645190955ecdf5dd13df75a5492484f03b360b0e2a98a928165485d0603204e30a06f612463934c91f99775e317644911de34def70bbc628669d43e00cb8772b67182f88306fccd061120d196da399c059b4844d37ca152471d3dd683a9b73457445acb339644bb6002ffdf009359cd334110000000000000094c4468a5784ccf780df12fbea4d04986c3fa1c69117f376f92f4a52a3b12fa22dd1b15cf921b4fece74380910beebaf7b82fba256eff05cf4d42fc5a76d8ba34ed67b47f5790407cede2f5521cdd2411052fdf21ab4041c1382335ba0b85a1d3f77d69c77dd56e5659e897e6ed818af9f9b5a59565cf3ae7c6f130e6308055fe4870cb58e06827672dd8f94e82be9b67abcb313dea25245e04f0be67ad99656a01feddcac672e0ce238013df6a9cea1a34e9b8fc2830c359635ea125ae49e5df55fefbe1880bf488d8715d6a1ba4ce7a75801a86931dcadf73024510bc9034e865ff470bc01b420255428c5299934099641b5c3a4e7d99e281b76097efc31662e8735b1e495cd6ffc11e60929cff837b592ead90e3d9cfdcb2331e9b5b9947c17885b3e832950c29cab56c7f938cc6c6f12c6bc4d358d6f156ab9db4c539d180371084bdc1cdc8a6bde44ecef58bfac3672f549172e49e2fe0622ad13569bbc469e3688a9af63527cc9c8b9bd57335bb82f5fc178e327ccbe0d66e579878b2cd47da486907d39b2f137ad9cfb3e0e69c623733be6c89685c1f14c6afbb49f2de091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000070ba8731f1784302cff1b7353972270e6c0e7217e447693c77f9071d2488ed4f0800000000000000f51d7408df5da8530739595e7c19ad14c4f7bb10fc74f209303b3b24540b094e0800000000000000d259da0fd4a6734873b0bc6afd887256718e10286383fd3211c2c539e4f759690800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000007e2fc31a7568d472e40a2a147d0c6d33f9ff911fa49efc62f05d24755c5dfb5d0800000000000000e57b2b279186d86161cfe62815362d372d292e12536e4f72e296a86b73694b150800000000000000ac6b66003b33a939799d3d2827d222177ef87d00f99ed329a017a014a24116090800000000000000b5ea5300820f4a288f5a78345ce59d2e64373d2fea05e50322b3e1187c760d4c0800000000000000c4969e7399921419bb97ec0e4c00c46f2025bb0858c3372952dc3262e0c5b3300800000000000000ca76790d99074c2f7e5ca26ff9dd0b649943833fb8ec1404af14446cc6dbff0e11000000000000005483074c7f72339e38440194bd5b4432c8c6cd4528cd399f479b3872ae556fd1ccee1468391a64c481235793ef9cf7ded0c28d48b50b661b3266570adc3506f93e05750b3707659e38bbfc8583fadd26e177ce65be71d7db9239f195c820ddd3811bb132ca695767fbf079cbb22aa5ca089116534aeead759e99209b03d7bf9874f72dc335b91bfaea43fe9db5a36d7cb685acf43b1ffe432b22c5ccb59cd08c2a97564755be3d3a3297121e2f0ea5fb392d9bdd14ef69da9af59dd477d9871197a9326c589bbb186482a4dba70055cdb1e6eced2b1f91987d9cc423524edd4b757db35957df8d6e3ff39f470335c59e6933b82d9b98c8c65b14c662e0f4c28453ecb0fb77a85e93bc892d1f160098ce8f4af5461542fad7bcacf3c78023899cf8856ac0270b82f8fb8d2310ccf13e9f324e1eea157b8302441507450876593aed60028833675a0c0e6084e4d99c1979704fdb17edad3564be3ad4fcdb15ad2058a792ba311ee1cf1b30956b6c00ecec71f56046e0656fa532f0141cdc75f8cd24e866721a7c0b08af68ae8de430737f6859485c772a6f3e0e7db89129458f5ac5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000020d7e017eeab7a654029ff6e4e13523e2780c01a0000000000000000000000002d475f3d60ee29474c798c004c798c00f734a4404d9c3c19e017ff22e017ff2287e5594b0749af5e0f494e4500000000b0abbe4a000000000000000032409339d18a1050000000007efcd80921e4d85374f3e5000000000000000000f94c292d065bd46f384c30404011186366ab2200e2281f6069cf511fd53f92276783db6521952f4f13adf53831447e488b82b5209dd1dd25bf6e1e0d92420d4a3d3135043d31350492420d4a62cf861a45f6314d517c1653f1a0f4423da0e027b1825755b7dbba4bb7dbba4bb1825755208f293305b84359a1150526908fc90e8435ad70fbb65019bea2e659bea2e659fbb6501994bb1b21a8d6fe0e26e52216fe93ba4a00000000fe586738b9c1fb4862e30458f5498f2c1e6e840c0bfa9566f771a75955ab2658c5e04a5554a9c45d1325196f706c6b74706c6b741325196f8ed5dd0b0589c34489183639cb5a3313000000000000000000000000000000000000000000000000000000000000000020d7e017cca45f30c7da5c49000000005b386a418b85a43b468b74397908583925000000000000003f13671795dee775d5bbad000000000000000000000000007dabb44b1cf8f16b26f6737526f67375ec510f3048a8a847501a30530c64616442137a0436fda36f966ae433a2285677354ec20c0000000000000000b3c8d472a286f90a35c704414d6c6e4bef5835536e03ab409a6d535bda91d523a529b85f5eb50e0051c1e12cf49f7f007762a50dfa659e1b5c388f36871ff1531000000000000000e86dbe58ba11aa6e2d5318190765b23fbddfab5f9d73470fdea1993b8ccec2218e8c18392f2600648065406c905bdb424f42591de396722f2c9c2273ea4b3e07100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000006c7c720b000000000000000000000000c469d5336b440d2b0000000000000000603b8853d3dba376000000000000000058dd2c09e1342058000000000b2c78420000000000000000000000000b2c78426309a54b433ec52b433ec52bf1e9655d93e95d63f3091d6172250813420c860d0ee04e5b14cbe211ed57c355d7c152200000000000000000433ec52b08000000000000000000000000000000c9fa8b1f000000000000000000000000000000000ed59f18080000000000000094d42a0b20320927d8ce6a11d1df1524f591586b3f64ed22d2928e5094d42a0b080000000000000000000000000000008c21dd58750d303c4261a95d7bbd0542139bab3859945535220000000000000082fe5f63687835449d29b26386690c6e6160f6097d7042469db5d11388ae5351c739a35f2aa3cc540503a548fa1fac18dea1573b18a3ac4f2a88ef7682fe5f6382fe5f6382fe5f63c02c3c63c02c3c6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f6382fe5f630000000082fe5f6314000000000000003e8a2e64de9fc2356f8ddf1bac9c11063e0f3262b8190a02b848e109b0c8d424be2511542458f52c08dd4c147ea455210000000000000000000000009af9fa374c717e0f0000000026d3fd5b000000001100000000000000af48b5813e91f1c6b683b95a4e203ab99817cc3f6799e400f93e36627cd0ec65e54d35179c9a05697458a6089b58a28224790e7cf11bc6651256c3c1f278f8d7dfd3c64f95b922cf408815d202a586a6b2167fd0a52fa44c5577c4559b2726eb20e4a0ec344dfe2602afcad81844c38499035c6e1400acfcc70b225e6e296be08d102e424b8c2bf1fe010711cd89df186b8a3e359cc0a059e9738afc874738c6600ad086477fb8dc1d12144d09b33910a9176a26ecfd2d7ffadf661bcb65ed2f44de2247735d7334ac2ceefb8a599d5833f939d96e5a3bb22e858e5acc448ed4e7d054b4e23f01166fe72b052be307c0f79321fd661cf4ecbbea2f19ec5db7f3a53b7308b3ffcf0de0a3ec03ae1883564486f7a412424285a3113e2b42416fab376f28bc4768f8b010dc768c61fe7d6a53841ccf3142447bf63d4ec9ba075459d6d68e4c030bcbaddc7f67e90c0cfb5329c623d7057cb6ef83fed134bd165ca8d83293aa8a182cb9d86dfbaadcb4302e089fc6bf4dca228812afed1130214b42aa12b8ebdc9f85904549c1b09e7c0c92566da16abecf7078aac66abc0f3c28610e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000004debd826ca2bb17478a9f7541216315a13932c3ac7abc833557e8a1a9be8755d7204912e067fd056c55df5125ac0c23bd6abd606a099fe4b1a32ab671441663474ff6216d8b5fa442bd1aa019a9e3a3bbd096532fe943804b0993226de068d0649baf74597dda01faf778823ecb842629a62f81f7d36333e9b144c214601b73a0fab1d133ea72139db49be4b28a1d655360e966cd0231b23b5eac30a3c56ba1c7d97ce539363d2187aca384b962c253938e47874690dbd717f50f2095439430c3f2bca1f99afc109405d1206582e4d3e960fd90ee3d90336b8ac47366bdaf8287aae4a6d1c436130a2ef932c8427ef20b5a7fd1ba9f3c36ed6fab8403fc3af400a49aa40a317a83bebdf89328eee9f5e2a910e6d1d32ef3d9add527160ca295f2aaad80ba1e56816dfcabc11c909200dc3d27e75b81faf2baa716b44db6df92967cbe2137503366cedd6f856cbc65d2ba174f0305b3d3272017ad809c119872bed23806dbcb2ab094d512d00afd79e621c327a02b06e5e18ccaff23b65a4424c48eecb137d9bcc580813f5372a94f70c080000000000000000493b573498cf08ec823d6960d3c500d329193371f8ff4e111ed05c76c7fc6a2000000000000000bc028c30f5679b1f22e33d142f5a4f6925a43d755632302fe3fd6f5a2fafed4ad256bb6847b37a4ec898d0758e62b245a0d93e2bcfa5465ba9df56410088a9703434f435a66d8e6bc71b684f4c14de07d25aa7562be1a82d88280a185a6fc9444708ef6509375b41dd2f342e2e787702eee6ff198c8f796e8f7c214f38c1f3642000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e080800000000000000491a4d07286e902371049a2d8247fe32762ab93814365d7470a3cb2355209444080000000000000032be5510007b5324c751ba2622e6043fd70a1347de1ddf2d347fa32311f3a3640800000000000000b0166d31b15b1051a267d843c2c248497b820538fa3fa45801ee9313817b400a08000000000000009a33726dbd950a596f7291329bc8b953685cff76ea33101b12b90722218ae65a08000000000000000930e812673c2820c5b49b23ba674e43648a406f6dab455d79a7217643454e3a2800000000000000c055b66b61e0a75f45e58f166e744408e1e0d032f66cee37643343389cf835205f826a1cf4002d392152f0173cb0cf4e8bcb6d0ce7787756e6e53d043c38401aae1b9a54d0ea1e59c452491123f2f420a3e4fd6d1a719c0279b5da198543fd4114d73b4d40e2483f0d781c48ee7e0576ffdf8465e3c09d23ecd954182fe2a014b2a62b4f90a55b51b16db206ba48940864d0a319f989553595de0135b3ef8a581100000000000000936f027484c42c72f7a3c8eaa947fad370c4a613b4fe04557133834c90df4572ec10068d1fec7315c6350a270655e4b99bfa7b8372eb2f06c9e5fd8aa980972bba7f3e692e2dfa7753cd55cf26caaeefc7a65e5e4bbb13db7b363afc01a7a5c14487e30fef6db8d3c9d60a5de43531a8393ca968548f93f116551830bdc1ca389d44d3b3a287af9179d6b3d7b38e3d72087129a76b84d7f30eadd80408cf4bc6f0c9e3844eacbba1761474f4d793dbb4d67d40b48473cbc9c726c564cde370bd7ab490bcb00906e56baa36eaaab4e83bf4acc535aa03ca8f7ca036d83ef70ea836ae75946751f24359629432d72eaa9b2e2eb6ed991d8ae599ebaa33eb3b299778b2b2fde7aa982e4f1235e03498ce2825a03f7229a706eb411200a1872ad58d0da472f8478c2dd2c275bc39a4837c91b1d62387fe27e501609ab7feb6d385e30371084bdc1cdc8a6bde44ecef58bfac3672f549172e49e2fe0622ad13569bbc469e3688a9af63527cc9c8b9bd57335bb82f5fc178e327ccbe0d66e579878b2cd47da486907d39b2f137ad9cfb3e0e69c623733be6c89685c1f14c6afbb49f2de091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000038ab152b006d6241dc5b8a42ae29d736f5d2762c62cc752a4aecc0426e08bc1a080000000000000049895643578b26403b641071e7ca6b1f2ba97130dc5a03167a599329cfa3202008000000000000007fca921dfb08f22d3034260a53997936a75c9963657aee4b5dc61d46495bd16d0800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a24450800000000000000fa5d1a171c6442598f2ca62235cecf47d7388d4b51fecf38af44371017a5a6590800000000000000e57b2b279186d86161cfe62815362d372d292e12536e4f72e296a86b73694b150800000000000000ac6b66003b33a939799d3d2827d222177ef87d00f99ed329a017a014a24116090800000000000000ca27522e06f9ce058d401c16ae542e40b805334eb574694ad6ecb46d1999351f08000000000000002f9f0c442733a304f3fb8d2b595b0523efa2a272f85be252d66e996280261a730800000000000000b486e8117daf16080093075542afc32723ff601afad7b23e7d11f715319a316b110000000000000078c8730c40a5fbd75ba3a1b43a711ece41af78f38f41e51ea415357edb5efea9b847ceafda8b3b7d44b588384db3edea3320bc3a73d7524130228afa75bb837cd5ef60102cf5360a6b623b1c46105200120eaaca621ada56ae681dabb2e7643c18eff3087cf39b8b262126d4285aa0f2fd7f712da9d50f3192e7a5e8d4564675777ff5cecd9e86282f2c186d098fb633af90c5cb3bb83f8434c00898ba4968d1a01743871dbeff1d29d6ebfdee25dd1918e1722e5b98aa9aae7d09b6dc700bc412d269de1ceab91e2a0bb375791d25856b239d581e4ac7c4a2916d6dd7f28aaf301d5916366cded3062911a568bcf5aaa32b3e6110c7ff1ba21ae3a85e2b94a6e00fe1a0293b42416a8d02e86eb1025b6faf689d50885da7b34f764700859899da5907104c704240791e60f787dfa564d033164a2baee9244908061df145054ced60028833675a0c0e6084e4d99c1979704fdb17edad3564be3ad4fcdb15ad2058a792ba311ee1cf1b30956b6c00ecec71f56046e0656fa532f0141cdc75f8cd24e866721a7c0b08af68ae8de430737f6859485c772a6f3e0e7db89129458f5ac5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000df414e5fa1120d19764ad31a91d65d341867ba5f000000000000000000000000e9f68557e6a89466905f503f905f503f7bf5ab16b2c8c23d37c6344937c634495448582354342144b504bf29000000009a5f3164000000000000000092f58e71cb3aac1c00000000cc0f170fc5c0452d5943ff6c0000000000000000c5c52245fbcaf73739812248a99c1f2a89ed865823beb118ec4dae75289758098d2d2a741e01b7646ed8f76c590845074436d21b5c26bb4c2d2d084b18b0695e55d3993755d3993718b0695e77a9b8571c584f5b92a6b46fdb17a54f05469c6d2aafda758c4700578c4700572aafda75e54f334009a81c5f054fac0c9bf2e057d15a2f14aecbde336b9cd0516b9cd051aecbde336d235924047cd05554d7d535c2ed367400000000a94f02154bb5e81b780f58581df6ba39e22030744e2d7a149d1f6d3acd243f100104a55789e7740e28f6444bebdf914febdf914f28f6444b7513cc473bbef01b4b2a7773ccee0c110000000000000000000000000000000000000000000000000000000000000000df414e5f7d8df7576007684700000000fde5dc106557e2572197813699d1a2582500000000000000706c086bc4e00173dee5ca0d000000000000000000000000528a3a516aef5709b8a68c6db8a68c6d77194a253d7f6c22bfb7a4217b6bba639c1d945766889339f2b9a63c7f3c186408037e2900000000000000000054a55b0191075181929d074174e725a618a9211a6f1c137b31a41320efb36e59aeba131ec8450f14b9271ada4e310674cbbc619310b457c7289b34cad3a2151000000000000000152317511aaa2616725df020823aed2f35203e052a4eb901c48b0018d06ddc3ad962e6601a651d4300e748333aea5a2c09515001fc6da56cb2e25e0165048935100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f00000000000000000000000000000000000000000000004beeae2d000000000000000000000000b8324304000000000000000000000000000000000000000093bb6b2944000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c52300000000000000000000000001000000000000000100000023000000000000005fcf1063000000000000000000000000f40db807e3b1251d0000000000000000beead45328493543000000000000000030cc0a0a53c25b170000000009be8a1300000000000000000000000009be8a13398a951d8c4cf1348c4cf1343f19cc54f40d1477a88b2105eb24932805c31274d3491e05a6a6a443d38ec2772e7de04900000000000000008c4cf13408000000000000000000000000000000a9bad06b000000000000000000000000000000005ff8a5510800000000000000a3060453d5d67549593edc27390bb4644a9f4950d7358e4d86ee6924a3060453080000000000000000000000000000002a3e8c08eef9eb324be5fa014c5c8e3f3cd5c05346a7eb322200000000000000584bb114c630d262ba1d6a44e8596e0ed2a8060906372517d753ad531d2cd12ca788463fc2c07b39d49ed33642059a67717db02a83d8fb51554c7b69584bb114584bb114584bb1147fd9c52e7fd9c52e584bb114584bb114584bb114584bb114584bb114584bb114584bb114584bb114584bb114584bb114584bb114584bb11400000000584bb1141400000000000000d6e98a73b1b100426719a32c1f82e810b968455cee04574ead213959d7f3d612dda9f3139de43e5eba86ea04047d0d52000000000000000000000000c13e4272483e5a4f00000000eab1e656000000001100000000000000cb79761004021f1845d6420c8749341476b2fc74775e53231543a49708947f4d04d664dd8029da96bb13d2681e510761248fd99f699295d4b6383a7b444deb330154aaa15ab1b5bdbb532b3acd85b2230885c101147a818b8703f9765683c7e919e280fb575c3f2593d65270e7953cd5b70feffe5f10fc70a1e4d55d4037947ca9dd0475212bf581e50616acafc51ac89602592dae130176c0c70efcb3cd73abe55813ec4ec916ee2592763846b9193772fbc281877cc67d6281530ab676818cb31a665a48091969b4dc71803083323bfe6fd86763c18abce36246ea1f9062ab13454d7beec25200258f2c011c61fc7c61a06c4197323d0d8ea6ad9d76109d5836ce9193a12b874f564a1eb81efe9a6495b5cc38059674ed57755a752e3752dc45c0061789152f3930afe24d2a3aa386c555ca65e815782bfc891d5978539c0985f2756a68627895bea54ec7e410c0c3764bc9e923e0ef4ac1bdf14028941c3bacfd219ae79801073c244b087f9e3ccf7257e9911d695a431dd70e19b99d4324c6b3b566e8ce32f97f66308cc93c2c2db1e87fef23c36fbb0ed794dc03a5223139bf64fbeb014e6a20572a73a35ba90eea7eac814554e1798e41c3b76d5502c91095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000007be1550e050d262b613c75e6a256f3ff54b005aa2b9a30a56dca84eaeff5d76c2f5b0655c0cf65f2199fd726b40144ecb66305fcc6a440ce34ac15db8c8645cf8cbef576ad8bc5e783cd12cd33e7756c473d644970925125d98bd09dda4005ed2aa6960e3a498372f593a14a8414b6e022e4547851f3f467500f305e4d67c1d7bb152347753f76ad1e5ac593c9a3c06681bd84f742ae91cf77cd910eed8e3494340693d88b8d6633c0e9a5f82e87c3c27b1fa4f3d6a9526dba6020b12d0ea4f9a27bc6dceffa2291c123208225ee02282fb4b1a4e6be30d05c03465b0584e1b1db66a1d972b647265cdc66183ed0654153e886f346041407e5bf44201ee174474fcea13d3b9d449b0ad932fa5a0d65e8264c3344124911e94ce8e75920b854e782a8f040225fe0e68fca5542399bf3428c608697ad6b8327a0bf85c5e7f0d24164a8f2755f5ad50d3e39e53441253330220dd21a6476630e57bf406872ea906afbf2a1dfe8d851b8c2d525a1be29f3d9e747576d67a3c05d168300f39a8b724bbbbe23166a2ed0bc01c471f97b9da6808000000000000006f78a6432a78a22ba2bc1148fdf7295a3dd2be6be5fd23736f2d171eca05844d2000000000000000bcfcc7472e9c81715bd78277b441843a1c76260bfbf71956d1c63e1aec181e44f2c6e228ff05b20fe2ee9914cfa4cb6337dbcc36ede3f96a5e6b885cdb64b275f6952d413d03a80944e2cf4baf6915186407ce33492c1a4498f9c96906a42644e18edb5e2773e15bb5043e11485ced2518e3a676f9072923defaac4fdf39735b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000dd03781604cdc560b4f33a4bccc7b80b50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d4603261fd9ca1c28532300631f516d52cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa158450800000000000000aab36118cde7442549c6a6657f72e16e199f882b99d8dd1d4ef05d08760f585908000000000000002f173e65e875d029b711ac6c2de8b10b95df93176997fb35df381873560689200800000000000000a47fb1537486d17476fdfa6b1f38154432c8cc485478ad663940eb7293cc3d1008000000000000003a76e7685ff71652e006124db0138e490c8944631d3e5560bc22d46fe48de6330800000000000000863caa4c609386373f7c1d3c0eb3eb2e62e1a351d096f53c2cf34b24f62b045528000000000000004099d849292e9b635c1fc632ebfc9f214059ca26fcce382c54914e000268f35b7e9c4a32c9d33a6a0de6d975ccf0a374e522b103487bf30ef6d77b0c8024d0776436992e7f8d014762a6cc0426ecf14befbe1e0a4922895ff5869f04e26dda2e25d011404b91bf07e5dd8720d0c5157367eea0380b849668662f3b4ac58d00049cd66e49e5008549672b2959ba77e71815ff9959fe4116368df68b07773d5f37110000000000000076c0ab221f587cb906d032af4de14f7c7ae0e7ae373048c8e7a46e5712547ccae215aa73ee0adad532b30b40dba34ab368a19ca83d1b39886824fdf35cd6f45237d403b33e591eb900a6bc63437e06abbbda71d86f9612a08f37f79a5f496a600df405a1f89a19597bc9937b544927226a1345bd93d984952008d967bc3c77350d7dd7c46e04bce671216e6f5144cd71266eaf9c4dcb06063b8915e893e2bf249106a696a1cadfad7e1350e14a4c4bf0104adaaab018115fca854fd2c327420a222f1c4c11bf64df5f87889ebae98c18d0852b333b2667c39815ec4b8ab4ac343fb85edfe796e517c512d1365b8500099b342a7fe1288fcc198740767fb92c323de4fa3747061dee96633511a45eb75653f32fee43e43266d76f82c5e161054efb74c1d4dac4c6b09f7b729d594f080e686e978ee9542ae0c2392b046906123c28d276fe05850f9f5271fc7c2b73946bfeec4a61dc9eddb9e6c1b0d79bbbb611eb6ccd25993a33f9d05c14a010d9acfe55516efb27fa984666ca4ca595533b2c7658dc06aa51d28bfc1185455660ab2b6f65faf4a6774bb2c06a1bfe428e3d2eeebfb5865e725f30979c77ed2b73847d240a1a2569f0707e4ddc9c826a081990686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000008631d5111a81330da39c2244a279b61bf2e19f0500df1147e4bf2526f501c21b08000000000000000ece5873d2d7e7595cee91032e6f5519733e590dbde23718add59033674c9b6b0800000000000000fcc33b310bdae8333dc17b4c813847703d8954153740f64654e1b91ce65f81130800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000866d1a4868600430ec28c36e2b8b0934f3fb59121deb5644b91dc730ee99994e08000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000006028c406d8ffc003e0b1f26a2dae8253105cca36aef0d93e63992c3d5c3e404b080000000000000058d1996954b7122230a9de083703f213157b4742bb592417b0c8da0d95ecde1708000000000000002a41f41764f67751afb16e36a45ee71f95bd2e559c27bb251b969356fdcd715b08000000000000005ca8d20d2ddca228c3ff342a969d5b0ce4c2fe48da788814484e06589971e32708000000000000009377e64063e0c9187afdf9348b0351612e0e6e717cf32616e998eb3b6a0d534708000000000000000a606903fd986f54a7c8996d54a0903b017cb55f36d9d217f8166477343a4312110000000000000089514523e7d40b2fbb1c4c4adfed9cc29f3eed7e42dc9ea681a17f700dc97a5254cf574b222e6bb99c3bff3f8ecebc1b7968c898118b00ebb541ec5ab690be356c81f980e9b0f7ac2d56f0d46158ca26e175acd665033d9b93e66542d9d745561c86417acaaa59ef2e8e1a4b5a1f584ecc6eb3c17e14e1d1696d38522910a72543a6e2a9da8f1ae9d60d5c15fb72819af2f878cbd6a6f1fff73425d960afdf92360ef270d9ecfdf0f8e232ae908ad36aa85e3fd98a510d30176c0258466ea5ef95127c89a22c06a0e8cf2f9cb578fed59569dbeb7632b4778e20606fb1ab1ece6f0ecf796885ba1f3c8271ef6d66e4536a545f2bc0324ff83204f4a43c1f288ef6a411802c867335928d207b6ce1d8a401365fccca5e32f7b22750942773002d6c879ea44e464bf14a083d413d0875a1346d31ea84d6fcad1e57a276f5e1721fa8a8b0faf6befd2b548964217eb133d83c79fc5f5cd5eb819b9bc7e224107345cdbe031e65dcf54ae0fa2f185087667eb0078bd52daa46199704f4baa6b3c16039c5d063914d290e81cd74eff0228b5a6ed93f7e921fda2fafe16872d90189c8357f1641612cb7544ccc1b7a57a20d36f6962453d69918df198aa2388d3b81a7e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000e2e2284d19c2dd5009d2794caeec876874936773000000000000000000000000ab08d9188d2ec300eb0e8666eb0e8666d3a5a6471d7fcf74957cfa2d957cfa2dcae4f663e33e56368ba2ba0200000000dacb2236000000000000000019779713a63b75060000000042434e74915d736162999f410000000000000000331e052c39eb1c5cc0c2364e5604de2d54c3410b201dd72a585da4579e518626d14602375cb72708a96f566dcf25f66d7f05621a3eba43460035d4566ffd470912e5315312e531536ffd4709615cce6ca93dbf54933bce4dc22a8304b54a842dd61ac16000bb9f2c00bb9f2cd61ac1600d59d16353e1d0676c08d25632504d2e3be0e9481fc1a9413268220e3268220e1fc1a941ed497c6ebdba9b35c5dd236e1e07862a00000000b4f48d3e683ac7447abecb49f4ccf11d533b82203d3b315915088e55fea9da1d232ca6664a0b141fb1becd1cc40cee42c40cee42b1becd1cae48a552f7b1215b3c1c12744c1cf3470000000000000000000000000000000000000000000000000000000000000000e2e2284db7a63673a759fe3f0000000074b61d67ff422630c4fc596fe1a2c5422500000000000000fc9a5d1f3278935be1035253000000000000000000000000948fc551b1977f3601eea76601eea7666db5521ce41bd70379e07c3aa07e5c678e1be00e7ee3dc574f6fce3b1b416000906dae75000000000000000051271f1670ba7102931f102facf8ea50b69e6822d97c6305a15fae3fc2340a28fa3574744f970d37ab35f633ac84f971bb5bb3240c1e74431e6a635aad41d957100000000000000044a3c33780707249ef20c95060ff9f4e39a8f02b92d3a312d84aac67b7d8c4416cddd7260f5b2370f7e962163003a74eb47c7d5272c94c5a9a7c75262aaa7a0d100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000004d86c22e000000000000000000000000e462b6066e61b3750000000000000000664bf1648fe777480000000000000000775f7a00b850340f000000009e84e8090000000000000000000000009e84e80915e4620acd349719cd349719fd44744b575b8a1b4492af35ee96e75921516e1ec00ed72fc6f6fc330040ea2b81aed4620000000000000000cd3497190800000000000000000000000000000029eba3710000000000000000000000000000000033fc88760800000000000000d9f9627609ef6d39ced7980ef4c0ba3d6335a52b00f79800f72ff635d9f9627608000000000000000000000000000000abe74332f050f432cc0f853484048c631ec9e774928c390322000000000000006688ea6c6e6fbf0bf3c75a1c130a187229915a6772cb5d6a51aba70d31ae3a38f490f310e6ad6b2b484c13141c34ee5fe55b7301b9628c562f7307616688ea6c6688ea6c6688ea6c824da94a824da94a6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c6688ea6c000000006688ea6c140000000000000045d6cc2cc6da0c6d1d6d4223ee439776d1d654538f88ea1adc4f3763c837161da4ea0249b50eda65661fe339c8d3e846000000000000000000000000d11d0e11e484632100000000edb18543000000001100000000000000f57f9fc9a84649e1bd740d148bf2d664624b462cc13dd1ff54306aa8164cb9407b12e2d55c716aeb96d23629cd043f93eb7c461a63e089c225e12416c1e31a372939e017df72dda056b26365ffe42950a3c53caa42e70ce95a25065057cd1a08b6f2c222f7996fbf70ceccc1172ce924d632f23e226442d27a062d12b37d3680fa321df4e6398bdbc60eae26677c81c8742feffe54e0c526156546de8b1ff371ce49848815af1d36b4be6295384023a6d966048f62367799d356341d1d8660bdb63dcc7b2ec3444804200586024bca20d44231b71f2d93f0565ce2caff8e354d0be9e0a9cf91affe0228073012aacbfcd7d611ae48a5ddff67861deefe45ab99c94222d2cf7ee157e2becf723b3ed881b08a8128da505fb95408f73d14e6c5831930a860571a4e778cc13ef2a4dd979f35d03d6047ada3edd9c95af4145b05c1622f1eb69eeb3e24b360670da5e441a80da7ac3e156e944c86e84bc71c3f5a240b357bcb710925c64da90fd9de8dc5d6d5af6b542148f463d6751d8420d68797705aad993cfc77ec91cdbb38f740248d82b9be52a489007d8308b8ecdbc942210e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000a865a86fc60d6b3ea3b65020238c9245d00499602bedb73a62ac76246cee2d6c75b7353c4c318459c711a84b8c579d5ac5657763079779023a89e11d1a331b256c212c0b7580926cc194603ec47ff371fbe6f529ab8b7952700396455c13460072d34562b50873666c7093138c0414641f6734625e09ad219e306e75cdd63c448da3d143b01ea1059825150385c8bb51eed9283187ba8f0e083533739cadc613a62d62224969ca63c1d0c23da7b09660bb48dc33fdb4e70f3e68f30f39cc8d5103a2e810e98a1274edcc7c2f88664040831aeb0b84cf0023d653fc060a4b761093f9dd058fd1013252cfa450a454260ce88add140ae1aa018576bc27afd8c4546398f42987176f02b5b1a3731d30a75b473fd015e5199d3b1a58df17b470f1028e0e90423dbd5c494d12140df40d4a31c1fb5a1716f68c2dabceea656c81fd617c823570513ea62306c825313aee2439ad900955e015794e10588f0e4622201a40dc761457e292292250971bf5db316b5b3c506fa8f53a0cad20e765fde5124e6ed58d6d3599c3516c9f8600a85ddb08080000000000000097a99e7568207d6dc3fd542d7d221a4c1a40c318a2f33819339b313aa75e74012000000000000000f2199f5b19f7c250fdb73625b4c5df3bd1501a1c186c511d625ba23c96aac1346e92c114dea2462809feab21379f836a4ce9411da3b335276ce9c0417ef5fb283255760dd6d4496c4db40e055da6984cb5a78912b4747854a4702a00f011df42c6c10b1835c99350dd2d840039323127ace5782eec41e24d26c43b61cb2e92432000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000004635c31849b9a545c01c871bda11ef069f09a2033d372a259707934041004e72080000000000000083e6556b32326a55787f675a16430770ec5d787603c87a02b5063c518747562c0800000000000000f8720d42bbe56304458a2529e6358d0d859b55312220f9464065351b64e4040c0800000000000000114d37209722f82e1b93392003c16c106a8ece70d55e562b45b9a9595e2843020800000000000000ed961827f37ec541de41422109489d14672d28044441d90cbe70e50102347a0b2800000000000000a033a5671f604e125ce6655a2c6bea3ddc9961348e4f47113995e304187d5a2fa51f0a051526a9731734e4202439b05e38edac1cad57a82bc6d0874d925efe0580380b41b84f6768ca766c073d8c5a4a19d5a9548da17c4e3e3dc76d15bc74658070d04953335f20d2d64848ea65b430dd5a540c8976c520b12c12077de61d4c098db12512850c58ae6d5b0d49b79b54bb4175519585e921f66aeb30c968281b11000000000000005e1f3e153cc1557c363017ffe27efe3da60f4c9e2a78c970fa8822fef0815359a0430709db49806a85f0a004a95e418f820b10e7a67b0ff2f9ec854a4c6a31255a9cacc2be5d2726313075a57814c091b2d481016acca9ff50a5eb9447864dc44cc26571e89c11060d6b7f740274c4a37a07f38faf7b8d6546850b7cda06aac5811488ca7ee13223eb74070bc29838ab2778cac0f431b3139ce339dc02dcd31346dfbb8363acdb3b52d402ff40d2fc6139847a4bcf7cbe4e2900ca77e94006173539bbfef09936a8fbe14d24d6969f8828db956448bc570bc20c53dd400e75f2372f07daf7f5184297eb3e7db4f5b372161c52760031d037334bd492bbc7280e87b8cc4db33725076418e124bbb807781ff64a14c78f6ea25ae274ad87a3d1c64478a604a557fafaede422e80eba80e6ad94426fb2e1dd005dcc47e4af7cd38ed2f86a6e33af6bdfb4a7085e3fdff5433515d288c0c89e65e2aef683d64dfe365d6e726a6d2a4b5296db8a295ab4d29c6993325e8466a927daa17ec36d2f722ec6d67804c50cc592c120aaf335c36a3df8068673bc8ba805de898a4c47de14a7e091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000fae84f59e2f5723554c8b6401dd15d475496134de0fa08650091cd059253786f08000000000000000e1f3740b295fa64d2f58013200175472ebac014c9415648032707771ca2505b0800000000000000301c05427efff87399ccc246eea00a6260f5c547a2e63214b4f0e24b40c7b5130800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a2445080000000000000020abe5688c26892c44f8f80f846a4a4554278a74a230b925d443e35eb2666d3f0800000000000000303e9e38c2f8263bc0d0d30f11ad6a01216eaf1c2ff3a4367271c328cd232a29080000000000000055825236cbd9ca3fc09cb7429457eb56141bfe7211ac2947ab2ce8584972b8340800000000000000dee0436024f1083f05eb30296a12a9050e9c6a5303650b1e35b5a6347deea84d080000000000000041a1fe377a58816efc402e3b161f322efe880454e1045a2affa6713969da274908000000000000007cc3bf3faddb585aedfc4e1f7d384b2bfda840633bee086f9445f563f3d09f0b1100000000000000e6148571b2cd69ca8d2e69a631c7fbd2432298e20919218a203137e85a1ec6f1a8760fcc12d3a6d061aeab3b4673f525adc8035ed9094b28880e2d362497b08442c65d4e7ccf45fd3f21868f19c5d8205f68d195f475860e025bfcdf6a7f46a660335a87fde2c6e9c44a84f9eb68bcd045fac7cec67a2372df1a9d5a912c3c0a0434e939b47cd01332a4fddd1df819dacd3a43206931be587cc8aeca97cff7127bb4589a37f4da5640181e99ffea520bd971c3573937ea790f5312793591f1f5451fd3080a9e2d5cf5b021a3e8a7cbd135ecc5429af361b23058775e35b5a5ddf80d051e30f2a62e21626a2402af60bf0e7dbed885c4a86c8b0f5d58ff19d6a5941f373b44db959c161064a437dd6aa250566654977079fce93fc2c862a01b1ca42001a69571f8ee5e426b94efd823267623d8678fd4574ec667c430dd175c3f69140f766be9196350bc3f9e8ea2eb32ac7912e07dc9c6b61bb6d4325eb02adc3d5dd0608bf439016b5d306363f51febec02b76c3e2db7fe953ced9d3a496dd72d00bb300dfceb8cf885cfcefcfb3f00c06bf98e8acb5660c6c55c9dcb801252c5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000000435af75dd3d9b22df887676f8f7af5612073b1500000000000000000000000028fa301954d20e5e942f4743942f47437bf98d1bd94ed41f38365c1c38365c1cd0240e4146409647714a691e0000000070faf64700000000000000007c17530fcf10823800000000538f746f79bb7a62737fed7700000000000000006f37403accb6e35d7b00723e2326ec70b033d145feca50028d32be36382c2f09419bb32f652d4848f628610c44a05b41d9ba34670fb01b705930ee4770b13b35521ff66a521ff66a70b13b359ef93a40e9804026d6cac376b2badd5fe11062545d488976cc7ae415cc7ae4155d488976db11695a4206d92e44ec1725150bc04ace6d6623bcbf693049d2a80a49d2a80abcbf69303207ee22083d8853fe98410112c0070b00000000f811114033e3dc29f6b38f21620ce262f62651185757bb0cf9656d4ad2a5a540799ac42deb806c2c9d52c6302db40c212db40c219d52c6301aaeeb4d1809063a13c9d273ae88786a00000000000000000000000000000000000000000000000000000000000000000435af752432da5e01f7b123000000009809a50fad1e465768cb0909ce0a1b3c25000000000000001b58204142ff926bb07c6a410000000000000000000000008a9b3002854be84b8afef0378afef037127b24354b47af041d2d781fc2600870b215ed4474d7d207f0e6ed0b81fede6e9daa26110000000000000000ec04460433475c4652534123e5a5c14d9b8a911870a6a43bdc74f70de40f890dd0cebf4d4a130e4d1f9cbc39afbcb116025f4b6db30dd7209014332c10a51d2810000000000000001683285e29a91327d2e0b76e8bbd4308dcf6515ddc4b1f728648911851a1865badded51e613e2234e13faf47febc980caeae375a62dcbe71cad1305097577d3b100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000202d19750000000000000000000000003431455a9935176f0000000000000000305d0d0346be7a770000000000000000eaf81f3039372c49000000007bcd846e0000000000000000000000007bcd846e64c6a4269dfdd06f9dfdd06fd0d18d100877436f6f771358a9fb160cc71c5108ba6fd87175c17739da4d8d1a7ed0b77200000000000000009dfdd06f0800000000000000000000000000000033468f5b00000000000000000000000000000000d6f65e020800000000000000cf9773549ef5935506c45810a9e7ca1933bca22064d31c2c7884724ecf97735408000000000000000000000000000000937d165e07fe834656b12e24b8ad9b37ef0dc06210d97055220000000000000010623b141453c739a21e895f1659ba4bcd716662310f9e52796caf5f304365047d879f2feeee156957dbca71bd6c4f0f60faab0ee92fd0573fe1a43610623b1410623b1410623b1417af390217af390210623b1410623b1410623b1410623b1410623b1410623b1410623b1410623b1410623b1410623b1410623b1410623b140000000010623b141400000000000000d6655b59bba30c15f40ce71b9dfc8052a9ef99362281b86c330e5627311a47542e67eb0101269030fd78726009e6e030000000000000000000000000c4ed640882129e7000000000788321400000000011000000000000007d79f744e96086b7817673080828ccb62164a7aa5c52766850e96366b680af3be287608301fd13c9c5dbe332e42a944982f98f9120ce54f9880ec77f28f5d25a6925e976f3e12c2a6307c4c5dffba240a3754b5ee7dc7f3c1868d39c8d86b049fb494e9dbbe0cee276280add751edcb9fa453c758d17fc89a38f834c9594fc0aa1e296d4674d2fd89df6583ca6d6ff0a87ccd0bc67dacaf1724eecf24c13f901e2998e538521f2aadbe8765912db89843a84c2936a86639ee47543a0b2db18bc4fa72de06dcb185f163f5c4f773295e8f3aae2856fbfa60a3e9abc0915479ec8418793d00cee3df608b6aeb755147809ad090c3a30e1491c90cec86a69d9c6c263934e7d3b020dc995795900016937ed096120a248a7c1c0801ca256c8a6c1fbc52ea1c0ad2bc4c56093974ec1088923aa916224c133b72ac9f6736a20e0a1011ab48cad7ffa24af1d558acf30c3e8a649828328a66e56e72cf51b0686db04896354dd0058591e52e19523ba58dd8d303c9665548cfd8dd8e779c6900495d774bf141cfa2a442a3af2b9edc3922cdfccc841b14bcbf617117568a9c87da917f26db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000769d4014857e9138793ad94c0a359700da5d2740e8d1a06fd63ce728d6df1c3ac9113d68919d4e3013adaa005b72365c47297c18123d39400c7519212d8dc9220db34839b546e46d6ec0e61ba88af9458dad43778d76515a11a45954b2cb740c9f9f625ad2edfe03c70d9e3148fe4b55ceb06916deb0a26305d0ee47e902366dba9cb8179607563a9442a0010d1908433847f2057f759d4f4ca0f36d11b8280ddeb0713c68dcb24b656ed11a8ac1426f6e54082ec1bfab43893e755acdd25239c68e914099a1cb10b4702234ce5184086ccd10630de4d70c2599f947a27e6541f9190c62a661f04f327abf57abb9675d2a2ef05bf174e975ec6ee11e2771f157dc5a1a00edd6256d4a045d2b2388d74d8bf3663981baf83f923ac7302c8f4f6339be9e6d4991db491625132aaf7dea3e2df470043cfa6a6c7ee26062f34f816443d3b156b702c50065ff483e749ff36140498d1d7057163675f32244d280b855677f304c3413e81612254d740aab23441ec73708077d590629aa90358cf8334e1ae0c82628aa6e55f93a83016d42952b08000000000000003880663e949b8e0d0ca9302f015da23de17dbf41cafc26080b4be65732b097122000000000000000aa001000a324424c1ec0211e5db912155f0f4a0fba80cc3c9041f766eb5db93198f53731426d502de514b7729b55536822d3ad43b2eeb95ffb988d02f3188b20c6511b3b75be2b735c77b05790ce4d6be650f6115918493ac3b14a0e7e25476a51923b5b7094dc47f23be4654f8bd126d343855206532d086778e646a0001a0b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d080000000000000085c2834034ec9f577386fc22064d6066e6e07e5754e53011f0f59b04976d361d0800000000000000ffbf11480cec7d1b9d77c931f944b54f1aa4eb395daec722e65ba5777a9196730800000000000000aa3bb333f385f8062e9bf852f7a38b5a3b645c3deef72d6c15ba03567ff9f62c080000000000000036d0c7256169fa2006ac1a3d7ff0ef24a0351d442a7a4170a0516a2d44f1dc3a0800000000000000b410b71efe4a90479719bf46719afd5637080b6e09a06b1801953f6b121215342800000000000000eab24677eeef2b210c2b3177359f7b0c3f4b646a1e36951d377b3a49686d6c512621814368919c15385c2e4ea804d16c2695ed0e7bca881a9f1593367d58d253080fc713863e291f4647ce5994b2a96cb0a8e8457e2686009b3c371a90477f575fce0d5ea7677a71d5692a129f72b516d3bf4a0c5393de243a2675740a1a8e3fa0509c4bd429a502debffe3db156e14c3b20a471334da71598acf93314fe192c1100000000000000e38a02fe0228f323f28c0a0fa264db6f6867f2aa1c25c0dcc03cdab9ea4da48912508d423f4c4b33c4c02c63323f5cfb3e2322d69fb16b41b4847a753a8c3dfaaae9d33c9ee79a255b383d5bbe4e82c67eba34860fc97f49a38d8f3767c698d48bd1d7358cf10cc1ae04e4528d3aff90da3e7780e66d6c87c5ddc62caa1962e6f5f43b1ec78f7af57d20835de2409d4ff4480ad88120b426ead6289c49f4bcc4891faa139cc86bed2f794ee48326a5eddadb45b22da360bd985dd0bb34b382dd6a7c18c35959d98ccc2a89b4e00e2dcb052a14a2975bdb3cc35485f9f9a240c53e11f14f96d234ac141fc717931bff9a87d692a33ad763b034a4102cebd792c9ed3293196cdf8aba1fa309b0d2bbe752a30d67a4589c128c9a7b73fafc8c02561fa0bf2366013b14cdc5d984f42cf1d248c4156ca29fd013d6c6424ff9f05d59d016e0d8c78830e8b805c3a2c4de55a8bb1ad11d201403fd4044c0dce62f5df24fb7b0afe70194ee381b9a0ee1f9863c22ece3f255beb76d0fb0e5534054291b87a94b297db8d83b85459c6ea67812479b19cbe89bd9b8e7b1335670c9881d3cb0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000428b5b2add06c94e4af1af73a0af0c49849627297f31431ff376fb1497960f0a080000000000000002fe853d5e6ca645ddd9d2428343586bd329f953365fe60b410f13373023d35108000000000000009e64cb46f5ef2a1ec9bcbe4c6404453be0e91165ceebdc46bf3c2375fae3344b080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a24450800000000000000574efa4b0fd7fe5bd0d4d940f9acac6e6762c8241d1aef2dcecab1006d7d282408000000000000008239bf2d2b81052882157305d299a716d6a0f947aae92d05c7a328689c5b183708000000000000008a26d926ce3fb33f0b735e465897c10277d13d6faf16dc0f789dc36c171f776308000000000000008fe623570281a336b631cc0b9fde7123420e56060871b867b338501b294d7d71080000000000000089c12d5ebaff2f5b3e98041806c04b48d61aae4c1b8a900028c83e2c682d6b130800000000000000c471836c9e9e06203da83511969f574c1649ae001a15d85414b4d006e99dba1a11000000000000008e96d126481e31244cdac8b01b0368cf8789eb18fe5f8b4610b1a9d62e1e57bbfd8831e95b058639480b7cf8f5a9998849fbefe8da8649949a1a7e1cd80b31ec5ade382c5a73ca7063bc5505d50da5d1cbb2c47fbf74d438fc5796e3ab2de12bbc2e0c589ee294b1bc1d480636599471726e268e6a1f0d07e6032178254c2975f91037692cf6db6e4ecd3cdc977a32f81254bd19ec262fa4da8ada53f609f0e3297659556802b38d875176a774018c7fdf3c82fd6c82ab4eb27d16857d81341ee9628e8cd63149400fa3cd2ed7f32ed35acbb1586a0a3f620630c2a365f70b31640ac430ecca9ccefa6779c3d2f21c874644dfdd503bb5960d1eedd65dfc366523986ed6e75a37da7d8b958ca7c89709114b24baf7846ddab1a21b21f774f946643d823e86b0f26e01f1403137c2296a95a5413ca7d957874b5425fcf4a58eb8b1c1a80d4b5e1a13d2e36a46e12f7a52fb189141321dcd1f27c80080febaa675b8d6e17537cafae4c4ae27ae29cad97e5705040bcd2998edc2c150eade8c75718ce195381d03da9d313c9b3bb1e3ffe23f3afe21a5a5d2bb647d8d0e86bf38f0b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000deabbc519d20c777c22c8261320fa50e553bee400000000000000000000000006a10a44faa82d1099b36d75a9b36d75af659ae2bdebfef1835912624359126245c445f13710b1c5fc9b5440900000000d447ef5d00000000000000004d43d9339959b50c00000000d7f3722baf5fe80ed5fe89290000000000000000d89d6113f6ade34c6e15a71d3546f50404aa2660245443267bc91026045b46674555411c667e883eca7e0233adff4418a7835b3aee47be498ab56932f057153df5886820f5886820f057153d2828150a09b1420d58671a225e0733133ec06b208d8cd703d26b2b63d26b2b638d8cd703bc3ffb5951b3b85e841f2a702f909d3286e5671a91f4e318561afb01561afb0191f4e31836d1023bb16bda56f24a2a2b97439033000000009b38fa54173d4a3f0c993d689e24b977facac1164085616a80f11942c0434165ff9ab54b58feb5320c1d1d4196b32f1396b32f130c1d1d411f2ea71c5aa266648760962ec850d7340000000000000000000000000000000000000000000000000000000000000000deabbc5156b94f5cfcf0673c000000006f36564a0a74e961645beb49e7f5123125000000000000001d76c24bb1f6121f88b7095300000000000000000000000081b8bc6c45fdc8187a66372d7a66372d4eee22279b27ec1f112af94365297e23b546b5357ac03776d098296704d20f00feae0e520000000000000000d7f49e603c927d55ecdcf839267dda580fcb316931516f3f9c91370c80ea9014703bef633316a95df8e51b77af6e983e3c84d322cc72341f9cc63d68cf50886c10000000000000003fe0f076997533718261692f9a790656c63dbf66d96caa77c13f356f2374e12b59d85e2dbff5951b7eef1d0041314d627c378277febe6831338b8428835861481000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000f48a9669000000000000000000000000ce6cf55826c8a200000000000000000018da7f2a72913d70000000000000000091812652e4b7ad3b00000000ed715f1b000000000000000000000000ed715f1b7ef3856d61ab333161ab333196562732b7f9352937c1cc18cfced91cd8ed0465a8b9dc525c26231bc97808336e209d3f000000000000000061ab3331080000000000000000000000000000004208f100000000000000000000000000000000005860d24b0800000000000000377e4609a3b6232d59e8123dac55c00ef1f4a5611737f3162cc77343377e46090800000000000000000000000000000076d92d4de998a601d126fc0f85f02b2faced5a6ebb5e306c2200000000000000bf40e30113169f48bbc6e2452bf9252f7196f8187d00fe197f82f45b00663d65afacb2286ccec71fc8c2766e61ea7a26cb8e0a5bd2d32b72f6991925bf40e301bf40e301bf40e301082d621d082d621dbf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e301bf40e30100000000bf40e30114000000000000008858a323914a3e4beb9e09612e04d80d4465ce243e80790dc50aef6c05479c545dae821f896a3f5d45d2964e29b4264d000000000000000000000000af359a13e61e260800000000bdc2e0490000000011000000000000000a7b6aa8d97d346d4de7122515591113c281c91eb2cbe507a28d8dbc3fcddb1d326e91d1c3a1e454c5f493542e20f7f307b6c5313e28560afdf27d633eae1ae63fe2cd926b73d9fba165f47d42b697f8b4eef074ebbf3536836bd279d62f96d78c0ed722a97873cc5564b4a8aaead77328d991d04257a4e470e7add2c84eb89f69a04975e95a24a1480579475ad6c5e09e304d7624b2c48d82317c5200c7b9f8677d87584fba2886268b8632ef566818801e0e9f9c6f65745f27862eee137f72b43a45a8557f5a0de244a3efd57b47dfe6544900c95c93022b9f391aa06715f862288414a809ee9d9b30f63f4bdec4ae0378d206acbef83938575a461a744f04a23b7b60c666519314dcb449111bb7c3068cb690150f2bb1d95f491ef0877b101a9ec141d859d6a896666a028ec1d59204b114347b23ab3520323e9f383e6ebe4bfb340ce2d8d08e9aa1f7fb110084a182e6e3134c94a095bfd560319480cc78a88c71a62caaa59583ca490851270c58f34823784f153d391f3498e92ca1d29b658b8e30e4cb6ae610c06639198efc43b0f326ce5aaa8acb493506596649d30d76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000008937fa623be567559756a7692e7c4435a0623f6f4c5ecf406b74716736b7611897b6b431c371422b9a21cb0eaef6d72a15c15b1f64d85e3344732064c7068f133bcf4c3fbbb671309b9e6019d705e9342e90c1333e14f2239dff9166d7e4c06e0b4a660584f3ae11c98c7615ba6ccf2a5fe1734ffc88f963b2a71771e6444b02a22a902b7675be103e3ce43dc8a42a21c09a1357ff085e11d9d0233d9f512d44e0802d2431d88c638fc3180744dfe20f29b81a3b41500a093dc03b0c885083369ae4964d0103733be94a3e0fd1de420cc55f800bce1bd70abb19460b4646300b331247460ae2f612e857e6411a999a67cae70c73c45a8b0bb95fdc228bd6ad667b37fe153e7f6667e3b50a1324754670b1ddfe1014e37e2467d52b53d5e50548fc846560905e3317e83a765487a4114abe0eaa4e968c90038c8ff65a71f5ef767e769a040b0c8c36567e6a3631347060654c321c00c3585bb3126b64206b9c4ac681c603269a2f29dad4ba0587136a64f796d205edc0bf4afc2ad9023914182a9aa6cf4b27391920d57e576242d2e94f0800000000000000e6cd214b45a9fa242089dc0c1f0d544982a39048789ef54ced24241e24826e0e2000000000000000157fcb5554c97767cfae2a2b00a2e31df494c64de8678629a5e3bd5c6a4a5a0dc235bc3e7a5a1557b158b82759689a6642d968580b5a0f04c6bc9549903164751add9c6be41b676c28297221855cc26cabf9c914cab681037124d259d6c835227a5350128be65c679c017424aab8e3187f5ffa485e731d3ac18f7209ddf787062000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b0800000000000000cfb54a17f9c79302b6eccc65cae87813b1848405837d2427001a501233ec9e010800000000000000c1ea0d22524f815fe4f51a56bf1a100bc5ab49251f1e53687d893a15db15d026080000000000000036c6e41389d2bb4e987182210a139b2fa150d0395e304f166ae24916874fcf16080000000000000089294f36f05cca05837c36266220e8279193ea4dd372ee6eb493f56123a7755c08000000000000002e776e3710981b6532ca2f32f2eaa605ec9b342e773f6858ae9c154d0acfda132800000000000000822ccd2cd7287e26fc0bbc59135e8d5c7891e52a3ee673357a87fa188f9fb80e9ee9d84c5792a6701c5cc107f5a7c2335dfc5e6dbcf79f4a291a004ca39480045ce1514dc4a7d31aeea67456b457c03241b297310f770223aafa6d227b880d02fb93b524e648ab5b496d7e148db3d4118af4d92865379927815430342712a869998bc121a7558737804d8945bcfd1d07614a182bc134885778302c75280700251100000000000000d9896fb176598aca957599fb4c8f4542548fb4e1ce79540b115dac39da90c7adf74f232306afc2bca628d11a4e203df8dc1d7c5ce22ab14fcee824e73a9c7bfd5cf33b60f0fe28f544bb959cd36cbb4730e2e405f85b41564999f5de27b00d65200707661847fa53b9bf9d75b84ad1e1ac057a7680f70fb6d0841a908b2dc01f8d20218fb93820ed794ebd587c340e906f447338e6f1500465102ba5f09428153d2227bfa31b897ac3951b2c56790f6925fb54d4bef26a7a1e0409bfb80b918671adb9f05f51c9612e963b2445904e3ed82225f56700a14e5cefdeab596760a339120bac19509b5c5734fac2700c60034899b6075b2807d41e2f4696da80cb92413826bc5ff397758558109b1299bc3602dfdb5d079e642a5513476ef99ac8657289d358a82b4d61772fb81f26d3a81afc2bba1d8eec4fe3c673c871eb34f5485b9d7c686aaeafdda25909ab5865426abb9a12f1ca188690dd381bfcf4aa70ebe6b4ff9509d8c044d14406a0ec77b40a369b8c781889cb9e71fb8032ad0133b57d346bdd8421c15c76128363ef44a929d8c80c02b8a948a0dd26f4a777c5d7c3f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000008ff0112b8ba33b017b3c4539c1790f5cf4bde34cfadfd3225f405d542e26982e080000000000000071ba7a3b99c2e667ed9da25d457ff57147338f2937037e0d95650024725e601d08000000000000001f3dfe3a02e730592443731ff3cc6e545dbb086eed7f8f0ec544cc74eb34013f08000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000ba06c35eadbf9e4f49b9d43d9aade04b4a4f43696e4d9e048a1f071ab0c2be4c080000000000000022fb85756d8a88379519c856e217e75f547be75c3efc842f3bba5b0800371056080000000000000063185629dc52ee5a577e2722931a87156272044d0b63a076eb89b03872b2721608000000000000006cc1255b7d682662b4483a12b0f271635511de1532a1533230ea4875052e262e0800000000000000504220244ff3d54614251d0d853c073b4dffc02e81949853e684ba07251d244908000000000000004c539d3c6d7ca562a309705816c6cd6ac2fa0623d1a7ba4af4062058a5ff3a3711000000000000008b385e3828521e516d462f88904cabb121d912b73ebe745076de8f6fb4b001c52a40f63f73db66707b74ecff858e131534ac1c07f646556e9690c5b42f705854c9ba5c2be8439140c6276913f4eb16001fb6a331765ff44dc1cf792e0cb2faacbc8cb4ff4096a8bd3050d4184d44eddeb94335420cce73f7e2ead40808a6583e334fcdf8e00715dd838c323abe9973fe78ff8ff38da53fe440f76c0ab4fe07ccd2d41ba2160798da7054cef5af4d25cfa63623289330113f3a10eb218a197ba5efa8d1e70d5cabd313997cc72e417d7fcd2d27c78592e31b0d0730641a342fdf91eb275a741fe50f1f8cd844c0d5306272c1f06ce32872d9df9b2fe39999d95041a69b3a38cc382d50255f9a8bebe55075c187a2af39558a68d41d8c59388296148d4a23bb8aff75a1dbc9fef81582888182c4b71856576febdaeba242ffba46710058054cf8bb1d6744c55d30b61dfa53b4d2da82639490646f6a72d4b352ec29c06608f8add081b1c25d123c5dade9f36ef97b4459cdb2eb760f6dea0aa47e28ff3bea77f26bad3f75a766818b6dd22522befb461efbd97cc68db859f8e21d7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000002816255e0860dc480c93bd5372453a4bdf68c26b0000000000000000000000003cc31a52255ad92e71a6c80d71a6c80db451113e7c17753847aa1b3247aa1b329d4abb3f951bfd756726a5670000000031e4de3b0000000000000000eabf49497440321000000000921aee4f69cd4f2d399c331a0000000000000000624502192447f52ee1269827cb4b1721f814c904dae9da19e74a740b554dd963b0211402f5d22247904b825795329a758fb58165da0456758952a066e9d57062508a526d508a526de9d57062b5be3657e3ab0b5c9a05b96b031c57005ed4ca3d1fad5569ba3b7601ba3b76011fad556928148e01073b1f4bf5d9ae08eec7e30f2012a1486de402029a8f892b9a8f892b6de402027b231c6d876b8d0bcb3b3e551ff60041000000005cf0875ea800f72c0a71922c41c6bc183dba782e1195ea39eb0da9597ae5c34109b28d75e2196613d191e24227c4977527c49775d191e2429d8da81b81271a12c8eabe2f3d14853d00000000000000000000000000000000000000000000000000000000000000002816255ed0a79e62584edc2c000000008daed80875fc74236aaec9370662804625000000000000001a817766d1dd06772707d21e000000000000000000000000b40a6a1b2956fa589dce55229dce55223efb320bee72ed4a29ad7671a5ec3d7010e53a407d8c573c3cae9a50ee67bd6031c08e1b000000000000000027335d1676d4df60a7c5dd5076304b6b6256f21d682fcc66d3ffdf13b493544d6a33846bbf75132709bfb30a5d0bcc4715b939284e050d62ffb56e66ce6cbb231000000000000000d4f7102fb539956e9c2df34ece2575041e80bd362e7fa74a4999135d2ec86871502b283628b22c1d132aea02324d281ba8bb2e218044b82a891550131ae7820a100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a5400000000000000000000000001000000000000000100000023000000000000007bf35f1b000000000000000000000000c5fc3874596672390000000000000000deb6ac77b1bf3206000000000000000088e531090cfb3530000000003c72084e0000000000000000000000003c72084ec4573a57cf52700fcf52700fe2dd0e1f1f7dc821e11c1a3ab888c4025b30a856c2350259e7d80a5c9535265f555f106c0000000000000000cf52700f0800000000000000000000000000000035ab7d3000000000000000000000000000000000eec63d250800000000000000ad36685f4e7312660f6bdd01e168a9408ddc9e025b692103defc9733ad36685f08000000000000000000000000000000303f3d304df50b227702dc6518639b6383d9b367869f3a0722000000000000004afe975b2cd3c403b7fdbb0cef89c44b2ff1b33cb9925372cbc36c70a1ed684620b2c218ac92c243b142e3699a40901120b0423ce3c1784e1175c23c4afe975b4afe975b4afe975baa38a32faa38a32f4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b4afe975b000000004afe975b14000000000000000c665c1595b08516700abb75320c272ec3016c30ac6d6b005dfa3e5c3f94e43761469c21eed1146568bceb5a6afc4c3100000000000000000000000019947c7383856149000000007ac8c17000000000110000000000000058aca5a5b78a827252e830395f993054960ac8d450bacfc59be693f41390b9fbab5a8690ecd133f2b30b0ad33724b61af2ca328474fe19f6f146b12a443bcac0b2d3957c1d3b2b3f03877d47d2533c688b32635e75ffce8627160bfbdc8c6ebd31adb469a70632fd78f656165d1386c1d69797dfa93c26ecc31568bd491a8cfab530afe37531191004b3e5729ab850e4c372d8135d6c47b1b5b76d0e60c8c838b9990e5a6d4771d8cca16513d76c9478b48e8f7ca233b7f7e112ff29f0d13846844b8e777570efe93537f01c0ea33b5155e59c7f493d5d4d18f29a857849659e88a988d110ee46b996cfc5b42e6ccc5fc12a9385892d40fe4a1ad0ad891e649b7ac1f5921ecd41ef5e5e449f7b09c13ce9b6a03bec22996f53e88b8fff35f9d7ce05a90ff43f3eab30b0790894426086cf06c55f2355b973acfb632d2ff545b1c63cebcf94f6486a9e10f7c31334ec1e01825f1bec283e36e38542dc54f19ec14761a7766c14d88adeccd9b617791593c0350ec3b96345da67db9e6c7f03f08c8868e3ed1b16d167b9d0cdda5cba0980942c9dddca9d647568b2a04da32a5bd2b685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000081def95176f77e6d44da5a0b57f9441a58729a15d09db36db9db9c276c2111050142da20885b6c1c7a975d5c8186d5718d9ad1391f39113cec91300ee9eb6d37fd1e2e71556bf811f70b59368e3d413986a6a769c9543e59730ac128f98a6074c34082283779b069fd8807395f6dfd4fbfce011eab12003649dab5403463a95fa8401317bbb78e28c69816161822b45f73dca02607855f2a93a17e59fd7423759bc85f3c77ab3c0c4bbb92753c42f8148163bd43579487455159fa096b5636177540e12a24331e1773ab662314286331144fbb52e4124e1eda6a0d276e20150d9cbb2033b9a1ba2a0ea6b27174949750df007c74c56fe8309c6ca948dd7556682e75604002b7e3029058d74cd825336cb8e5830da806c90316c5dc0934bdd269c70af23ce41ccc3ef2eedf2c22d18e4f168dac409522b94dbeac124053d0122a06874902c5be3f0a8b94930f03ac4700f27f460033fe95125a7dc3455275183f9ebb4f742ef325369e9d6e12c483b5207bf4823dc577a02ddb3caa4287086324dac75f3a3e5018438a784526b774365608000000000000008779002f5b53e21066ec701af4da6215d64d1f2d6680df05828d9571f9a9616a20000000000000004a143667b8ded370b469bd1119f0a267f7d8e35a29f2ce200826a076ba16045be094dc2097687300c02046010564393a4a76cc40a96c13494d5ae1217ebf553b9edb2320c93366546d564a470d3f0b712af94b3a8639de02514e2a01e55bee008c5d2d5dd61b9867e43d35473804ea04286e8d33de27e26b08c3ff1aa23ff35a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000a267d95662ca65487be8af3c51900c0118d7a230159a7e3ca520972795b9a3200800000000000000597b1e62719eaa1d4e9d9b447e3b9f776857ba229b06e66acdfca2179731c15108000000000000004a5e52683beb2f22e72b1510a71b2e133932602b8d2aab3d7d6d0f243d1ad32c0800000000000000349306349880ed3540d2ab0a87c7bb2817d44964e07ee46b09261325bd3db44408000000000000003cdc6d0cf6afb91ed4d87f2b832cbc24d8ba432a0a030975b9f7951a148a433128000000000000002ab40f244f0d261c8efb7527588d591c3385915f85f0fd550cb7252862fbf24d32200c648b4e5777b15ff7283cfc73474c159003607ae96bbe1b5a42b0859a2373c0fd6a04b89156d062ae3137a1b653dbe69521ff5c822eed297616fbd8aa4f8ef78f1e9cea69640a3d711febdfb64c3e3a6247a838c10dd5f8d116fdfabd4df4f25c1cf9012c685a365d5edb50bb0e98186b0c5adfea43a4078f5f07b961091100000000000000ab1bd479cdeea0dca6bb0d2a05f36804e93339903a3a045653f90141fbba7dd592db9d1e474a02bfd819544c7a01c0b313efa77abfe761160ebfb5dd2b426d5d2c01ef465882d07e9a6b3c934729d79a1f565adf5c26fede49eb6dd24b7ac5949c68f25c2158f2cc0821fc9bf53969a133750c38437df979521af8820342f741debf4893acfe64e4b4b5b6daaa5ee2de8debec5166e5f070a37e1a0df458b2f3d16181686901a1c10476dce48360a7ecc798203341b151c16358cbe6d0fab30809d7a24de0e4ed1b99c8579252434181d79f27ddc11dfc7cd218d9e4618a163aaeff9a41cca639b1e851a48fa5d9450d37760b3b0e591d8a41f871b0e4a1ed0ad2dbc399e8539c4b0d7bb95000359a05f2d5c9d9f9466b4652a97fbd4dbc9377ce2f02bf490dd9442be44e20ab74a635751783ea5a46cb73f4679f8816f95e1ab6fc6408881b2e9d44386edd557c9dd642946dce42117a3c0cad3a0e9a3a2c3c8dd3272fe6a2760c206f9c20406c77c8c2ebcc340e3d52d51e1b3c64188c9424355b18efcc610cd108a818fb8f8e340674bad6d7b1b6e27c306eb4a26eb0d78a6277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000ab874c6e02c5125882bece0301cbfc63d5f8f53724edb3752e458f58a8c45d3f08000000000000000c174a4eeb71265abd04fa4a302648653e886a3c4ffa99594f566d5d40c6592d08000000000000000371793860d4db0b35cd2931b2898f7192cff41d7455fc165ed764228955214908000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000e6e82118b6a2af1980d8d64370df2e3acb58441df2d616681463e2336ee7551608000000000000005bfc5416d4a82841038edb363f43373effc5363c228af9647ef99a39ece756610800000000000000dc3f5861e9df3e19a0e9766ee954ed3ee8641c2f12926d3375183d4cb42d462908000000000000008fcc506f61d3833522c67e12e376d520d27cc83ecdd1254de1e5862b7b77034c0800000000000000b6bb5860e9bd55199c9d963ffdce98093e42a54a61c7ec01181e3551a42cb25d0800000000000000c4869a28d23eda33ff689e467febd7507b517366ccf4686e6ccdfe2161847218110000000000000024b41b57ea91ea360278e836a25c110ff76e27b72ac7ec23f0471de43042aa05e3a047d2ae5482e2e7982bd3e42e89d0c15430b955d450b9f9fe439901c4261304d09439f305133db16381af1766fb2363ad64d8f9551376eca791b3c609835aebe1b074f7e02a5c8e45cc7d828ab63dede6861bd7c26df96ca0fb7b71d663f290e91e189cadf48b0c822d8393e94320c9b4697aebbc4ef922602dfaaee9cff728bb739edaeeb7f7fdc2022174754455e76bb3dfc491d1bf2772e0b98a77315daab8f1f3279cc079671f2c926f2919b582548d2d31ff036999540a843f4a24100c3032ea765eeb7c6576b6ba6c800cd75d50351c79201162ef4f6098baa5cd9287cf9dbc4a87f2f700dcda18cfb63609c06c012a47b0c1cf70c0e88225e4a514f3f2f47f5ca3bf1eb6c0fa1de0080e532544c4e1c0b7f9244e650eb9545ea4713c78e0b44e6e0c6c8f0015dca85d1fbc3122d2fae699f1ed691bedd9dc4bcdae59cef593fe1cabbb3c2ebbd483cf5de77c95dff91d3a2b1e62480a394ec71f5bfef0070c833139975a6599ce47b4b027b0dcff0487460162add11df56704f6e31baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000e26f2965361adc4e852bb80839ed7974004f9574000000000000000000000000abc71664b5cccf0a82ddfa1682ddfa16a18fa569a4563e417259036172590361538f4b16727a300a9c22db68000000008a51143a0000000000000000cd396550ebb9c82400000000a6243b7117fe8f74d2aede700000000000000000c07c8601f43bf93b5d5bdb25920d9c2fa2f1d84b2090d6128c730b62a5e8df034c8cbc474f0178088710b4025225d109e33c0e399935e40a66b48c22a5455513cf3bb254cf3bb254a54555135f9b9215c954aa29506c236ee6e0a03893eb424385b90a762658471e2658471e85b90a76f613625f8e9f1f5321d7c95293d2a80b811a5b249085cf6d6c9b30506c9b30509085cf6dfbd4e7046efe23560541f46f5290406300000000f055ec39c7f76b1d4048c94b4cc06f46c3daf85a26e84016a41ee9455c0f36704f9703140a7730341586e11818a8fb7318a8fb731586e1184d8fd1546105120eba13bf757ed5f25d0000000000000000000000000000000000000000000000000000000000000000e26f29656a9ba70331ca462f00000000ba75e671ba73ed6f8c3fb2674cb6e1062500000000000000947fc51e443d5731c487aa0f000000000000000000000000acfad9519383e053d7dedd41d7dedd4123c16466e0e02b3c189ade1c07177d66b772b769aa177211587e4764d6179a361487a925000000000000000086a1372ae6817d4049f1b1193f4325564986d364f2212962fc2b224366dbc356a078063b87d42a6de53d6a0857fef96ecc9877652f0b702a7b66c91fd744a30510000000000000008706066e88403b092f524a0a627a2a779d01c049caf8673323260560d10d9a2af51af52f93d20444db4d7a1f19956d6b8aed7e5707a90370f5a88a1cf1667d441000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f00000000000000000000000000000000000000000000006432a951000000000000000000000000cbe53e3d0000000000000000000000000000000000000000994c6a144400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000ab24ee770000000000000000000000004147bc149f8d9a00000000000000000026c06a3ca6901431000000000000000033923e01c8c02129000000008631281100000000000000000000000086312811b9c366128184883b8184883b55f711304600672fb0b91b383976f33b8662df47a9fe3530632311635b97794dd75f9a3b00000000000000008184883b0800000000000000000000000000000035ef4024000000000000000000000000000000005aed0520080000000000000096d87d3d9d76bd5b081de550f0a3252d048c5651bd62c072061b9a6596d87d3d08000000000000000000000000000000c2aef63069f99729fc803a644d3b122a89e5dc32aadb9154220000000000000096a5086d2a505a75cb6afb4097e250261adb36237d50a71a3cb27f26fd02780d0244b03624501915a0919314af18680f0468fd66cf50fe15683f564596a5086d96a5086d96a5086da2ea4b66a2ea4b6696a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d96a5086d0000000096a5086d14000000000000000d5b87538b58234e60a24e6d38115c34d96e0d3fd395515fe5e96659f8f5885147377c16d3a86843d9647e6520f6fd3c0000000000000000000000009649063f6ebd70000000000032fee9240000000011000000000000007467165b5fb14cc6919fceec73441c8583e457b0c60c4407fb0c78f6dcc1a42f22a12dfc0b310b04422c6a1d255181a30af3f0f2e693e841ed3c7e0db38c4b87b7058602f107632e464b3ae8cff8bac69ed9443da9f7a39372e04d2934e39aa04657a5007b6d45e09c80cf4ad0039e5feb03541ab420b57b689cd98f3d141ec276b720a5978a35e52109541595c738af72e22bffc054db223bbac235b8976adb3bc4db6b1230ef623b1aa4da236cf62afde4121b523ce8246737608fe7559eb70ae60736a843777e7615c5a7626a7e90ac59dd2434093d0190daf2d0ff1ac7a680027092c89669ecc36d755f4a4bff2a189e771227d1173a79cfb5ae12911175a8eec3b89f736728cab9a97e94541dc800be47a1e61f7f1a4e5ebeb8ccd19f962941bd219e582e5ce9f4d8cfe3321f1a30d3821a7211c063e54bb443fbb94b75901b2fe3eb6560336e74e79eef58b56ed7cd83a38b5a6671be75830212bb9618ef32d124d827ad3e582d0c197697f027078f23c8eea0eaa7c51162c115a29a016619f2093b6be91446c3541762d54fb17eb1470ff3da1e1532829c26ca1ead3ad803b513ecb49861f2e3d606984756a08011551ea6342eae4d2498523021ea209cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000a5f916426101ac179d46115b00022029e7c74a1f7579333af5498567236dc667ba5d3924ae8f3d2194e349774514cd7191284163ea2c3f44fce6c7612c60be44323ed6076ced7c1306eb841f36d90959f7fb9e50ffad7a0c286b334aba4ba51d638a8c13e774c75397ba2a5c94afc134880cfa0adf27101790bb81135ff19d678eb6ec40e2b52e623fa56538662eec0e5694954ae0d36b489d68205ee13714643c132f1ac3383a38e6dbcd1a039d1a4250cd874f97c48f40a1ae5c739c3f7d58bcc31c1536184600772f352cff0fa21fdadeba5c9746631d6300f729def41336331afb73ebecc4555c4cb4078570cf0700b60456d43d605520c76641a137e22d2dee8b12910a2754bd998a3a0c3e450764d6d453fa9c3856040b4c547fbb5e68ce0ce1616d81260417da125f476542152042ae0f3275f1417db9c2711b10c263a4b3a168a4e52a3bacb32041c03b513d12e5b07209fc215c4ce506370924006e418e0b0c74e2444e718ec5710c7fb21e2bed6a32e17993663b9fc0628ee0c821b56fa6293b24c713df116711e7a8a4640800000000000000d6d5ac1b38dc5f72f281ed46efa8733d0cf73461f44e76440fa66756ca43685c2000000000000000f684ee61ee6c365f95b2da3a53d164445ff060286b1518463e575e29937dd53e4d1f9c40e839962ec206917068e2f5548aee0333e91b35513d29c568b1ff6d6d4cf77720ad8cba3ad82a1328eb7985711560c93de88dd40ef61c346fe3715a2bac3fda156f784d52223c996f187b5b77e8c41e1bef9fed379f26d777a27edd682000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b6732545180000000000000047561044fc3e4b36b9a6564998b9733d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2477bf71dad0e83af3225223ba35fe05cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b08000000000000007b4864220edc320d0e1d36607d3ae73b768b7674367a460dec3cdf55effe0705080000000000000000ae0640d579176e6d1c741523e45c4bd054e377d29ed62a4caa4128d5ae005908000000000000008d021e44a8450f5ca8d57e606dffd2325d71db3b7bfd8e44006fe83aa66fbd1f0800000000000000c2804e013275301c623a0c771ba50c43c346fc2a33ab3f1dbf64c7278705b85f0800000000000000d6a5536ca0193245514a0d4f7b1d16429550c602309e954bf8e2dd01311cb31c280000000000000094835565f4379333d8f24e14a564de6a124adb4db566675de6f72a3bff96fd17b242c307d271bb65d80d301bc3ff5a77cc723b2dda08a3611d1bd420921a401cd3d18802ba514c4e8bf2e24aedc6a94ba2c44f1f12035d614e8be23bfa8ed91b8a715236e1d96a6c8b91431dbef8eb74d5e0eb3c95c67f1c653a2f43141f3b0a30b05074e5e3262dfa2ca47214c94709360f842b77653521a4582d4091ec9a4211000000000000006e12c722e78fdb9b5630524abad77a5e3ba1dccb9b25264a1c07083e281e73ef0c41b8abc5c1c83f87e122887d36ce085129fff4c687364315bef2dc9e57c16f2ab722fd7e7577a1ab1280dead16b61d80b857360df2fa5b909a38f679a71e247067a2722899f07745a2bf4a4709662e9145f13868c6dd271426d52c7ff0e4d07b3188805ff695a0825163b0cac050d27f4868d1fb517fddc03859761f5e1eb99ffd7066c38deb111ae2310ece9417d53c77c3e07cf3ab368a80f6389b3ee60407fd33a0299cabf72da623274c3994410d414d63ccd45dc899dad281aa7ec4eab9b6fdc75feb682977984166f3ff66e227aa1c0c314679ec663e15b50df416c9770876cdb2f04d673672da90e34866eba12c975edcd7a4eec34b5e42686128f399cdf248426533d7a15fd0821ec1c929079f41ca402c42a665dbd6fa584e945fe102128d4fdf6102058e408c8cea33e5836e4235315b01fc33c848e690fe4437a1788c05e77eed6a4166b578abbf6f103cbaa3d8bf5a94d5686ef6aa61269b7ca906cbe66a389a3ea33a11a33209a24063dbe556eff788225957a73b6457dc7f035cf06dc6760b30fb2cb016e87464f8f06f53be4fd14a8218d0d02881026168ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000001fdcef451a6ece48de4a593374906f4bb650f51920f6b9392ccaf92ba5f625210800000000000000e25512471af05b4a8b010810df1b9a32ac8af147afa27b34c4437d4c25ad650a080000000000000061be8f429fd13f063e8571290d700d553ba29a3557ccd05d0966ea55d2b8ef3208000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e7050800000000000000c108a467564d25100300d842656c5065ae71de195122052a17d1f103110324510800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000aa85f56c5edacc56561b1a13464b4b4cb0ca2c49a83af44dec76534e174c1a390800000000000000311b3900d3ba5954ac4a9425688c3e226cfc0e303f393c36201998461d1d0d54080000000000000041efdc0e014a474fd997f46c445ebe44fd78c81a3d2ede48a8ff9a699f42df0b0800000000000000aeee0c1bc05f6d4514625f77cb345a38353ed004e0d95a3dea9e143845b88265080000000000000074fd92378bcb9c279f1b1143baf0c635b32e03080b9dac119eb90b578e3fae4b0800000000000000c56ea430591c8c3589bff0751ea48c06ad995117f6cd4e60c68583698eb99a1c1100000000000000822ca65fd64a9513c51201478cace79ceaa5caae103f3e816244b17b2e1f973793cab995d1a2cb7953230325658cce3414f6756305f5630b7df18829df4fc98ac133fe6ce78abbef108023a87253ceb83c9e941e52066ca7ce56f55d7dcad7d7bd6402b7b92f76bea8b73b2bbe78a65292ee2ede462750186b0ac13575b2175a2a03c559320aecfb2eb41f9ebf17259a52867b9ccd0355f5f52fd7d097fc0c60cf9b617fb0d459b0ca2cc0273e05ecb7b8ccf4f0fe7550fd4f961b87791f8d670a05e6fd92d69919642d0e159ca533e50c7363e878fe6c783ec04823b6f2cf35a6fe4ddace56e74be1481c7007ce59ab2e0437ac619b100a4ed0dfb674aa0f1fc4c8e6ab2519ea9ed84454609f24e1d8b7f3df43fde794e1400185a4f217263efbd0e234365a639114ed790c08ab141bd021f1da8bea557d707d26dea33ccbb05dce3746e9e8b3b4e4bbce01e4cd6b366f73df4752b610555ac96d25a037e4a9a2f86bec51aca586e0c90b6e3e882c2912a5a0191698ae9c7d5e1e430d9047d5da95ca38b57ef2ea28c049e4ff0389718daf21bb79537d13568678580caf80dba2688094ef144b1676ff5dbf3ebebfabdbbfde3d1e97416e90c1c7b2e5edd45c75e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000003a833c2198cadb1ba9a69535030865161a755d400000000000000000000000001464cf5a80300806c6ce803cc6ce803cb7a84e751752e66bbc711f5cbc711f5ccc8a4e5f95b74c22f98e8f1400000000cf185c3500000000000000002c0d424d7e476e650000000013de3a4822ba985ab97fca6f0000000000000000bbac532c1418cb1a36b66a300816d475fdf7b60ac87cc35635e7141a66fec40131e1e41feb7579284e2b4d132852b76a3de1465d837c8b6e4b4167300f513104bc93bf2fbc93bf2f0f513104759628372333376b6cfcaa358a62535a8590bb055a32180e0749e24e0749e24e5a32180ec8ab3d73e6ab580fd431d073768339474894ae606d48b35515ddac6f15ddac6f6d48b355267e0c023c5c69673d9a8f58fd0e1c5a00000000db806267b80cf646975240739545455658f5b4272d8bfa2e553663477ef6f45a5bc1844b56c30c50942c3139ac36f150ac36f150942c31394eaa8409c23cd10e5958654b9593da3d00000000000000000000000000000000000000000000000000000000000000003a833c21eb863e3dbe77435c000000000dcbca29f9816766c429e31bee33415325000000000000003d3e420573522a20ef80c245000000000000000000000000da391b0eb2cc1739d815fb6dd815fb6d0a432773c4389631c31a060a20251a1a8a59d643679aa90ed3b5923e6570ba5573fca32d0000000000000000bd174e63fc53432ae9dc2c617fdd27056558350fae0f164d88448f132c950125bdd0530c53390535776483528d5a67462951f90b8fea29444b8fd0600211b35a10000000000000002f2f221860198c548d668d70fd09ad22d6b4240638b01453060dab0046dfa95583d5013931c80b6f7ffa3767dd252d4756c6153224f47959b220683ef5827a37100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000acdc9a2f000000000000000000000000a7444f72ba69ea070000000000000000306e464f3b941b13000000000000000093b302332cb5544000000000634caa13000000000000000000000000634caa13f6ffac4621b5010f21b5010f51dd9e69d4d7043c70c6675988c614477f4315409243eb084ba95c0bfddb993f76d86657000000000000000021b5010f08000000000000000000000000000000447c8467000000000000000000000000000000005e68a2680800000000000000a2766209774932427e451a536dffc060ccebc0507b93e051fa51815aa276620908000000000000000000000000000000845d581bdcac7b236a0f162ce229332725398c182b75951022000000000000001e3ca90f16dafe450c9ac16777c290170ba6130aa2586c19d7bf6a2ed6162f3b41a74e04ab861001ccdbef6c54e3615dbe5d6e0eb1df5762a6843b311e3ca90f1e3ca90f1e3ca90f3828ea0b3828ea0b1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f1e3ca90f000000001e3ca90f1400000000000000dc6f7235f932561d800d2b3a55959d18d6877256e482115419ad1125795e80030dea990381e87b1e870ec61ffeb824070000000000000000000000006c2fea06414f8e66000000004d447a4100000000110000000000000094b266a31c2f3e68171028fa58eaeb98abca33e0ef4bb133512914838f0f172b895fa1adf69a531d045a2e8832e8df8f81a555eb077d21f5bb0246ca0fb59bd5b7e6b494396585c98816ac22e310b731d3ad66e8cb8ee6d5a50f8ea2810840c9347daa2033de8fe52fa0e7486e050d89f27facc14a70b3e07285948fe1d8628ad8bd6c4a1473d9131cab3c3fda6aef3570b331c037a00b500443bd5bddfe9ea6e9b1c463a3d25c4ff8c80577774e339e2290e951cf4be2c1385d51c32049e90cf8943cf8273a816f2cc7395768839606bbf8245de52227eabdac349f4e1728b251f42871162f56a6461a613db33c2e6b768a38aec86d0bde03ad4c45b0086a46434d3e2ffa0cb8d2e99378a495fdae924b8c89e71213fad1f4fac7dad97ef3b90e08d025f2d02cafeb99774e688ab2f7a38127c00efade0168b0a619e8e0d41df2000ca18679b7be9952f9268c9eb56672d3e270cd5bdcc4a34163bbc8f855f96125c727419247d67cd471b48efb833565e8719f47f1fc4c3cd0da0517f7628650c42f196947ac67b984eee2da74a2215eeb427b1160a9b7c2c984ec09796235660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000046780027939036500631c01a55d61b4f66ccb019e7080f6d057094420125ec155ba79e42d5436f2207790035558a0d42000590353a85801a2f27b3153bae37327f4cb86d740b616690e9c532a42f4218034a2d74516013587530d81e201a9b04fc4ed31adbe0370e912a662fda9e9f433dda71574a7e774dc7bd6249f133b12cef6f4d1c83075f1704066419ad998731dc5f571c2a88cf652da2f0158dc368434efc6c003b981536d68a655eb79abf205400fb6ac0a9f56b0131060bf6d79f2f23cb0231410a210c1329a61b702017608dff6d12b1b4835936519d0aa4fad3495317f70eb81cac2156717d004761c870ab1ce06082fd82526959582f8ea2cd1f18fffb478ad3f73177c8666f7a8c866c33bd3116a7fd95646ccc2b08dc62b240c2e3716923628733c8d47a49ea25a56327227b3a91165b27e996071b1e1c71766d859f36cbf703357c41df5c590ce4513ba4dc43c1872b5f65e1265b272b6f181950d96f6e1c765a780da3046beb5d3ad3dd811096a7a5747254b907edc9fe49add59439396dc9085f67a035d709573808000000000000000d8f9f449eceb3118466d643a1c4be23238d37370e3c0e5d436d63691bdb166d20000000000000008ca26270739eb639f6c7b02f317caf4387f4fe0776710b484b2b3c4a9e3da146d253701ceeccf93231d8d2722a27bf44b0acf668c88f8020d28c6749bd9d75316c4b8f2fc363c37044ffc5233f176356ce609e6948fe291a4bab85664299cd67b4625806c6b0b9098eb33d68f4d13152f95c6121131ea656128cea308f9332542000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa1584508000000000000007ccdef1bf3ff0259e4cebd431a12e040073af7193d7ee34e939c5c4922c68b55080000000000000000ba496307b1ef425ad3ea1656cfa6369267d95770d8433d657e8134541c2a2d08000000000000005a0dd966962a1561ff33e168d1050f288ef9ad30c8f63143a3ff7a184f1b1b3b08000000000000006b41c1573216cd743ae4ca179901b35830e140395a54a12dc4c0e749c727d73208000000000000003b0d31274a068a18f73bce6dbb229f41f1c78c3aa377a025dd8e0553ea7d6b2a280000000000000077a1ea25acc092115e3bbf740557a26cf5d033732701f13197e2f12610675758c252ec0b48206b2a45d886545726385aeb256075510de34655cd48205e725e6e26ef49126965a954716aad54a9cff509285ded69a9a50116d086710b99509266f638405176fffe6abf0c9e1de4c16b09d3786430969b1535aeb55e0191986538f1a5886e09d0886da2aeb84bc28aef4ae00de52ae8339f53eecac754118cde0711000000000000007dc7146ef1844dccf5f8e135ec01799503e7f718247f2acae93fa1da7eb4b5302399539bf37ba5a83a4c1490b264e88020122c3a35e76e6c9fa913f4c96a357580c44a24728f9dae0bde84bd691536a3bae8bd2c5a4b74b295edd0fb5b36c5b1890694c5da81a2f118fb2d9636bc724ad6299336c8c3d8bc33278caee256c7350bc52985e0b67d78855b845dccc7f5498f26e74aaca6399c6dc91a657367bf6d879b25bed2822d56204fb8f6a5e74370c34929a4ad1534c2321f79d570600ddd60455a3ef751d4450af59da3525b01a822361f97e0bea0f8261c5e3117125bf2ad4637c35f1746473a1966b7ce111ac9a99fb97241b823f8d43275d842c83e0b9e9697643640970abde729be7e95d6776e6d1e743d740541ccf1acc71d3454f07a131a0425bed880e52ba57f9defdcc6e66bdfa21df836df8864d9ec2e178c723236a1bcddfb13470fa5857ffaab98b083e51de470533ac94bab3ce7f82e9bd6a74101ca27f76e7fff9483d829c6d67c1092dbd07917e34901981b8a9a67039825468a4f83b667b9b2f1ce61bf641a9dd901efa5f1c3d08d81907ff6bb1ab00ed58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000009ec1e315d231bd0a86164d3fcc046a300cc0305631f7e226e28eb860c15962290800000000000000691ffa063c6b9b1a8d6b36313d7817389d74411d966e3c3667c6b3360e8aee4b08000000000000008ee2be10bfabc33c28c9a34583e1c64a826bb624c084d628510e0818b8435f2d0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a2445080000000000000018397f5d6b95786dd83f5772de98c3495aadd22c4e85a468c87bc1662cbff80c08000000000000005cf8943b95fb220b7ce02565534e186745e05640dce503354cf7273484c732460800000000000000464d783dc78ec85a7d0b324fdc8d0c034f6f163e8033f163a1775926ec039f74080000000000000047f0ac219e53035bfcf1b06158973768398e1f4f84463b3aeaf3d66d682cee52080000000000000017d907659e3e8202765f0e32f5f83341f62e7d2cea821a0189dcc4464197424808000000000000000c01424dd9f1b64cf91f9c4e13160a4659407671266e0b56c9734f6993bd8b5f110000000000000043fb70029c6d6df37c3e2fddec1f585831503827f2ef19e9162771a33af8f8ca4ffb1a307de4fb23364ddb79acc83548151da5e65d571024e66dad57944c1f57cdbb3745e3fa1a87b17f5c8001b9de9e4ed0fafb5355bdce48ce935ae44b2fb11662490757e2d3b59ee1468e7834d4b23a4a69db1fa91d094feadce44c825c074af4670c8fa9dd73b47bfbca5336ae372b5a82e7d9de6f100a9a1b83b0b070b516b8ab7472885d8c202497fc45abbd8de582d1dcf90c22df4a323484f3514f79a4fba9f15f57a434643dbd456e7719a70b3adbab46f9badb6149ca5e177e7bd7aa1d0cc0305c295beddb92c025a1153b105fb56b0bfb1d6f6cdf83ad34ddbe084189d585de73346539311e842a0deef117701053e679d0453c97e7b35439cb485405d1852edcd5a1af9273ddcfc206feafabffa9391143ebead653d8476d212d0e0d534f3a921e30f99d2465bb561ee67a93ba8f4af6afa70c3a84ff1700bdaefdf45b46ac23632773260ab2d0b6cc1afb6d7df7761487b027ddac98969f083a10afa938952f2051f4a7f4f25be37028cd62ff0615d46296fc4a86bb93321aefc3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000085aefd6bd831c41f2083c659015ddd4c0e15942c0000000000000000000000002b2a00352d73e44348ae227448ae227476a3820d0ecaa20e99b89f7199b89f713e2a3a55fbb955414e498d32000000000980ba2200000000000000004beb12712937356e000000006f9a16417df4052aee2481210000000000000000e92dbf4ac02e156c50d86d66ab0a894116ceae077d51020cac0acc6260ed9b454a2b9555cc6b092ff856be2d938f1a5d99b1951b208eaf03a947f62b4254bf3321b29a3321b29a334254bf33040fe244b82efe588a564c76f194331a6565194227c0086d7d2c5d587d2c5d5827c0086d69825d739b8fc167a0fc75774412d82afd9966620746aa36c7f47217c7f472170746aa3672346408a8c65725aaf369681fb9121400000000e44c12366519a0580eeee9442b749241e4ead3286d17b925b3ff58072971311e96db0c757b1c3a6adc04b601b43f7c48b43f7c48dc04b60105836964a49120232e255b1fa2d4ec00000000000000000000000000000000000000000000000000000000000000000085aefd6b20800f58f3f54b3200000000401df16ec697325f33b2a86c6db18e132500000000000000a521074cb331f613cb41186b000000000000000000000000fbe59d324df986297247fa487247fa48aec8eb1eb3587f1c41f51901ede30c48e8fb51092082395be93021019b116023583cbe220000000000000000a6901837b1d49c562c08eb0c3a4d9e397065303f76737545df18914a9d7b5668750658110cc71343b73a061e864922687ccd506d2c02660b5c350673d09f1f4310000000000000008a656b4fac47286f98ba1c6073ec5550b41a740cc4379e620f6d6c26cdbe7a40b6819129031c0e736c66d716a35a0b53706e5a678175dd769d9f202eeead9571100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000026edaa5e00000000000000000000000079404c242a7260110000000000000000e774682896c7f33a00000000000000005c2f064e1847d256000000005c2886170000000000000000000000005c288617b8578c65cf9e5e44cf9e5e444b07de2b6c106a026cfcca630b878f5259c39b3e645bb24ff5a2e2449e6e2c35aab1b35d0000000000000000cf9e5e44080000000000000000000000000000005761a21600000000000000000000000000000000de266f1508000000000000007290dc22b77de04708e773001ccf0653625e0039ae51da54dd391d3c7290dc220800000000000000000000000000000026dd6d05d2dc9f5511e0c771e3337d615823cc2ad49c71332200000000000000570e00192742ac6fc01dcc29fdc94c183b7f67000c024e213f14426f6a26852ccce18b224421c85e4a58853674684e0ed49852649463720dba68c732570e0019570e0019570e0019f7bd3927f7bd3927570e0019570e0019570e0019570e0019570e0019570e0019570e0019570e0019570e0019570e0019570e0019570e001900000000570e001914000000000000009d5f561bcb858d6890d2bc61d812272249406a38c41387680e676a57c7f28a2ef4a1e817f713ce4a9022ed166b96cd67000000000000000000000000d92aa252fc8aed680000000036c3b3720000000011000000000000002691b403e98ba7fca4ad077e2e7feaca373f3f06671c42d45cbf48e31dd67aa2cdfece3972fee2a057e2c501d6796783258d6c1eead57608f64d717da8d5f99344c3f7e1bf6c7cc9139aa43d47582dbd674b2f33794a0e1366e7faecb38713fd2b1991d54033c3451f57a45e37dc510a8ffadadf5fc21473b6748cd8e2d2fc6cfc865d0b7d91df1d72b54fb93d24f5d244f9faca4d33a06694e89bb82093e31274ffd4d3bf84b4597da72b7734f8520407b133f901294c621db6dd702b877428d2c62bdd59837dfb38a82e30e7becbc21b35d8d9d8b2a37a4c002d8724220f2a7f68f173fa30979aa0b7817a6603a6f59c2f6ac3249700336d83dd31d0467a4b11e4ec982d8b9fe2737e3bfeb92c7123948985caceb966e69549cf26cccad18375c3736db4ba1742916f24ee8218799b9af47be1b1566f0c0d02194dbbb99fd91b4f40996959c7869d0cefa06af8790317f0e6bf48492ced8b54571995b83e826bc16ea5c9ff9a3add6460acd2c3e482b6a26b92babcc84076ef59370a43f46ae06c26ada2eff4fd31e9af2fd0ebb2eb237f35d6232bd2af571e8269a962d899dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000007c9aa7232ffa175a32bbf36a28ba0917ab9138166f399f36816aaa62a37ac374c1ba1840be29472b3b92fb385abc9344d4d78845b2ab4e24a12f7671c4168a6653c056711a2b7749e2b404033bb5be2b5421c92f26cdd24de7fa946dde620b5e1ef2b42739ca936492e6b513efc15c0028386f21624ef271741a6f46e58f662acb0c525818c56a4f812e870ce0b5905b959c9c58b2700b7024543e0a103e8071596c381868a0cb63b3cd292ea617762edc836939410e136b33a69b006640b26a8dbfd64fb2cab564946a6c2d6cc051699ae9736fbecfe847ad963a0be9c31458a23d9536de6515629ec53545a7fda701724612331d0dbf6e4dd68159f79cd471a8bf6817d851d56c1b921d7135d208522f40e21d7a2a572de08b900aca39e463ad874650a88db5246356016bc9bb77072fa2541f81380d5132e37373261f0a55ca331452a0102561168f255dfb0d4710a35e422c3de83e1a4a9c3558aa1af43eada3f1568688030cbaa6b06cda2a991e08a4cd4fb5651a389ed166595f94d22ad6a90c6a2dca2000989e1a6e2590e6400800000000000000a04fd0696b655409359576770617f84c88cdda16aaa74e14d09b1d458e12d50920000000000000001fec994f17176b30d6d6f7173f97b13b4d93960856fa4a62382be71e48b8ce64a530a147d2b04b3c56c07a3d3b07642902e7674fc816e964ef7ff03305c5386a7e92906de61e0f12b82c1b0c703c0120463abe0ba653012eec3e7224709eb7461ce8910cbfe218190e013111752b1365866ba73f9a4ae82b47a8b96b7aa9a6482000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee5070800000000000000fd6ac87447eb7018e7208009f9104d4d983edf250042ce44b008e71f471101520800000000000000e82db43450c78a4ebce64308f626657123382d1a9a42035e21e6162ef2ab3b250800000000000000f799ef1d224add0f1549ac3fa4bd4b6c86c6b274a0654453aaa5860667fa1e1e08000000000000004ccbd7044167c30b2e042220b923095cdb268170e9338773e2c953671cc4634a08000000000000008b2f432d7739c5355d2dd17502b2bb051da05616b9b3d53b9a04b12526d5aa072800000000000000e7a250282926255dabb272210de4c707da315f3b4cbfc20ee441d80d092e293eb40a0f154a51fa6074068108a99b37634e151b2825363c6cc362846c55fb7156c9c5a728fba29a0ece637523c35ea926aee5562f5ec3c83103cce73c2f15206af4d3fb676dd54541a420403fa617f331b26a9244a7f4425c18fc541feafdb36c125a2b593bd682380b266c4c42a1e675d1f51919a6399d148468982905c43d6211000000000000004f9eafd503fa2090ea5fca8003d92ad8355201a0e678ba4b8eec0e624ff96819564921f6d23962f78be5484002e29a2bc98ae28f24fc347ecb80cc84beabffac59c438ab8d77fae0f0de7a8a35cfdddeadc718b7c3ac02a3a6be4e5836316e9a3ed7cbebb976e44a88815b689c7e062071870f06238b16c4ce1605f162fca6285faf22d0b78fe589766b69f767efff67393d509882c39f5c97d59186f3f39601eac46e6caffc68a5f180442da1e61ccb6a3f6bd0d749e5975264e6b44afb009bde302590039174c2e226c4ace744e9346895b971d12a31a088b2e5b3286fa450fb0b30a46a617036d0829a05b0c4e5e2120933f0e0937ecf208c540349905ddd65c2185bb05932989201340d1c86b3cc7d71872cac3aba540f038e9e9e60054d6294c8e155ba6c68ca72fa2b06d5f5010a7e3c77b6ce92bc705a073166a0bdb9b1b4c29ffa1e351c161c0f641f6bad9a9a9ddb48ea2de3d87133a0cb288140b948b113acf1d575dd9da619f3cfff2a26c1cb5bbc861730c4fb1eef9fb00b48e800c4a5019f7e396926a9583cf6298006a6da4fc77824ce259332e3a8b9b3c0e402eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000dddfad157ea2b3385af21549d18dcb2f499cb1670a8e880333c7c2167899f137080000000000000009b19e342dbd655a6f5fc460504ae461615a3b54e24c275cc4e25b082c12fe420800000000000000a457ea575fe6033a6d0e53141a3f9471d62c674a6b63286d5ec7eb5976241a270800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a244508000000000000004b55506e0cd5082cf8c42523b48c241b36acba5b380d423eaf176a68234751620800000000000000a1c8323f2587046e8616cb4cdefc0a0f8b4a7115141b606aa51c931537c65c760800000000000000c307d0556871df36b79a3d6dfbe81d4e08c7fc40db64a31871ea1e4b936a3b2c080000000000000082b97c35ac33b953f0f6ba3829b9463624c40117c45e37101925192743c06d17080000000000000081b29434c7d7ff63769c61466361335feb0e0c2bdf5e1901746faf287c01e83d080000000000000042e6461c36a4f24b6d775f6d46411d3920b4290b6436694acf30e811fa3fb95d11000000000000008826af575eda4017f096906fcbddf35751b7d46dfec078618ce897cd57f6fe844aa03257c2126aadf0a0b3cf2d0b7e0fd11a7e2edea8bb9de1ef17f965dcd569596b2c6ae770ce1809280bcebbebe6473195440c89a21ae37cff00d3e31f0abfd02ea2ea7fcb752a2e1ef4ae915ff021269e194fb7715286ea69f1aebb826ce2e3244663f0732eb57041fc311a8de2c5389020fdfd1e1cc9cd1b59929a9a4052c49923aa5d8795a5b5d91ea64ce8db16f9657a55b60fb0e4903a8043d9109e7e88e2f4b92409976cb9553a27ce15e1d2e0cc70620b19d962f74101f75299639387864ef154cddbfb9fd817e4b7d5d485699485946c565460936ef6da70614abb2730fbb48a8dd10f7d6e01818a9977267d8c78b75a55c8835112265299e449e13e840b13e9387f82b4ab2c91785318b633e8834f017225c31d525a6b77612580de672dfc92c6e7acf8ea69e7f0bb817c126a438f7ab581e272785dddf5991556eb81b62dbf0afa9bc7375b6edb96e6d94de5bf2b766243bb6dc4d0d9cd4ed327aa7df0fca628d22e548fa6a4bcb4149c655963cf27bbb34eaa7f89eeedcb2e6e2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000009695592d9a0bfc66dc29b628cf3ee8098630356f0000000000000000000000007663e715c89d160932ffc97532ffc9754dbc65047577ed5d9cb576259cb576256bd44b6e3718e811440bd44e00000000405d13590000000000000000a2b2b57130a0971f00000000d8e22d72255f2d177916ff0200000000000000000646337069d40658c43d0e0e5420e31fab49c2036c6aa64af037f61e19ae5e758c66f84ac4b47f0f98f52a33fd5f8e3f36526e2418c57a3cc2ce6c721f13c659291ce72b291ce72b1f13c6593abf8b71449fb4026f468b1a6ac4003ebdee565cead2885d6dd22f136dd22f13ead2885ddd7e851cb4d99464c45216299b7c041c3040c928cbe717667f3f6a117f3f6a11cbe71766ede1dd1750ded820a71728592e52892300000000dc3dec0b7602eb4289c458736d101774f4dbc67679d2ff73435b5436fa84da0cb3ba4618118e8015737f5a147118bb727118bb72737f5a148870702f1d78ba4f6be3e51aca7d231800000000000000000000000000000000000000000000000000000000000000009695592dac4d682c6042fe3d00000000eaf1944048ab8f5cf0b7b96d259dbf0f2500000000000000954c12052c9b0848bf8a414e000000000000000000000000bc3703000a8b525e9b2ca91b9b2ca91ba68293450d2903130fbcd761a8403016348cc0073362142303374744a70a41432e8b2235000000000000000098ab034b8ed3c02f4488b70a2b039d0a086f0f741c76523c1422065627b1266a6a9a94407339e03853fe6c14413f6022fc2fbd032be8ee13c0553d6d893ed82b100000000000000015aa1044e71e38661d1ca34c8c30c34feecdac17f3d34650ccb6845ea2b50a1f8793ff404653411404301d2641e2d361c7af5f2c1bc0d13449b38073287bc114100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000a09312450000000000000000000000004656614bd37235690000000000000000bfe9a116d5c702200000000000000000f79e546371318f58000000007db9a0540000000000000000000000007db9a0547358f53fe3898420e38984205298d13de0780c558eff1811c485b57157171523cab155495626dd2aa657236a44f671530000000000000000e389842008000000000000000000000000000000ab4dec4500000000000000000000000000000000d2feab0408000000000000001cd25d29edf9374a8915ea1b848b2758931118547bc4165a203ec4451cd25d2908000000000000000000000000000000aa60b84f54c4231146d0da4b977c1164bd9cf21e167798462200000000000000654ec213184d454c6a4e37215927ea4d30eeab0fdb509523f8355118949382505cb11e13c94f9d3acffb572407d1102ac08ed576a6348d30689bfb0b654ec213654ec213654ec213a981c628a981c628654ec213654ec213654ec213654ec213654ec213654ec213654ec213654ec213654ec213654ec213654ec213654ec21300000000654ec213140000000000000088cd7c5fc031785b8ec96c3ab93588082c6c1b46392dbc6a33dfab06b30fd5506c14843f8edac219f4b84538c2a34a4e0000000000000000000000000bf2850981acc71800000000c2bf6c1500000000110000000000000045c49045c0aa62fef90325f623048dc53e8d08106650800a0b6e344e1d6aeeb35b4823d2b5144d6c93c9d74f5ae0d2cfa986caae4be504a4d714c97d9153ea1c4d3a8e0366e8e799686f8f728c60f1ce1ef7a1adfc7d3831738c235091de99cdf3ef748eb1b221eb573218a81743959937065d41666dac15773509cdc72302ccdc0656fc90339fa95a2da21be458138fa61b2b5f36a206e695c8a0a3214664d9eb8bba7f9fcc3832683010d694dc6b2e1db46170eeba028c8d5a9a642dbc29cd93f504c6d902abe8ae99d8b90cf928e3f2520b3602dfdd7cb4e1cefd722c470613452ef0d89c1f31bc4bba7985223a7ecd6f54d7023595487a7c35df544c83abdb2473a6a9e6e1fb1e044b2d2dbe25afb5384a05ae24abc2d35b313aa55077754b06a54736b91b8170e3cfd6e92617e911850cc83fb85f2cc4cfed218859a5db3d2a68f23dd6df0c149302c7ff8707ac03678feb4daa9504ed9778d6c6f78790350f0082afe392fededf0957109530ab24586017cb185966469701872f1022201a14481679078bef6944faf6c997ebfbc0695f76b611daef74c712e1120563e189cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000039f2440c7be004209bea783664bc991ba4506d1ca39ff40822ff762ad1163a11b9c3172c6be84163c03c86775ee7b23d36850543a0a07330e06c4e4fd8ad2c191fa9c552bd46203d4e93de3a07c9c067ea9b4c2b0296714bfc421105535e0c0d6a58f92acf6eda39c230c5149d50d3756a7d0a1bec2cc7175b7ed20781564a3f328dfd586f4d1107ed5b5b34f4a3221bedd54210a87b72544d55c6033c7eb35096d66d2a1cd6f53a4cb7e22d6a78415b7e0eaf682f30b3718570a65cbe02f90b4fd54d4217b9322aa9aa8518632be9202d95926a44c8e972481c5a2bb37c0c5e437848688e90c80966b7586e5f36f246c9f00b6ebf80530e63df176cb9bda118b5b7a148b99cd54e2e014f6fd93121742f2fa807c141c7125e8eea7765077a27b418376a640be203a23b6c22189b5b25f887735318d8ef0bb630be0af91dbe5b90314c19f993e5100b3cdf4d309b406fd732e56eae16e64aee45e757c033dc2ba3bf373c6d96051cacd42e48c0d1cb2a29e0a8273c51b51ffd158306a7998b0078963d136da3a24b9270c246ddd33d3708000000000000005375da461f82db5678d758079faec0287dbb9b2e72091a27b86a262369022237200000000000000031bf0c21376a2672487797333af523167fb3c85a9916db273cbd966aab40f915cbd47c5579be1f4c1c875d4988ee7865214b501b04add453cd532c427e797227a84d9f6ab1e6d83deb98da5ad3aeb362601b5c6f8f2afe2b6014664e08b6265cd22f31672ae2a05b55fc8b5966af51663fb0f9211ec86e2dc530264ee91c1d072000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f080000000000000089c6fb48bd591808fb90c163e8926b663339d3255eef4801a9ddfd23c5ad2d70080000000000000020ccb248e5fc810a58b8531405fc396be688006b24866701ad3b8770c99f3747080000000000000088031865cf819b51a2a038594190d17343ba7b0ffcdbb07498de73072de297390800000000000000d91e7e2f844005160e34f23562bb4a576aba9962a8104a6d65607b44e3652e360800000000000000f7e44601dee24705000e04266327944cb6106e15fc4549449d8fc8327d800c392800000000000000950c516a6c978a0004fd6e1a896bfb3d446ab31539646129e0867f18186b22354e84470d62c17261843eaf5b89b85039e05db76e1a4f496e847cae1b27510c74ee5e742e6fc2225f4370ba20fdd30352b5f6c540daa6c70763fa475a11524c513225c43e4beb8658f3946b2280949e298ade8260d07af34877c4461a2184eb5e5528913e8df1424287da0f0a6bf93a4c7589243c54738910d4dd9e68fd5272031100000000000000d179f112de3937992416a00d15796956adf26e75a35060a967e30c3ec5e2c33b401cbce9c87ca17916bb3fb89b1885f4804f4575c88eace75eb0ccaa873d8a3253b9bfac910b9a3e110c1aadce1d428c2a51d9b2c6dfa8709024bcbee1ea9ed7cdeb501686b5b7d932213098b86034e6b53d6e0c253751e48189d2b89397e6d07e29f1bad8dfd4ee3c077cf0fd74674afdad7d7ff7e111156c600482028a454f67b0f5e0657455f234c70d17d61aa2aa8d701a471d475a5bcb58d181101031323ff255099180f37412c97f78afe9d441bf12240858746a1e3bf9cde05b6b546de640f630549ce0bb69cc3d79b422d78e752d979f0c166413e8786ab6cea5bbf505ff747030c7c7c26a46cad12d77392d9c7b138b5566c207b1f8456e090823e0953595e71120f47d2f99bb013ff11197b59c0dca085a724f30488991d64e459c85758d5eb2a97bcefa0e2b67f82663fc38de4b4d6424f4b4fefb4832a05ad7ff798b07341855a541585c94cc73f0158297b74b16857cec295ff51a6717a87efbcb216cb8e8d6e3c8aaf3d7c1969f6a246a10d2bb3d86f81a2473a3c2dc0808896be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000dc8e2939b7415548fb1bed0e9bfb2b72d6a91405021ffa6452c379585ee3625c0800000000000000df19391665f97e73432979047695d033b9c28633cec0420de7f8462dd236205c0800000000000000a6061850c537d75d6590c0216eab2618be12df32abcaec17b20a442c4c95c4050800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a244508000000000000001448f850926c61319e534e6fd8fd916c8bbc7414d42ec17529d32102c801695308000000000000003ed37210d124d65b0137ec5bb51b7f36a08a353c71fe242e23089a2ffb3354360800000000000000781f0e02ccf03d458758f50951d2561f5b757245f93ed80a68ceb231799379490800000000000000b4c556260166ca4bb7ecfd0a86b2a0671020815677abab26c3df9d0fd23274640800000000000000b8ff7e0609fe7050fcc1ff08108dfa31c63d213b160ad832d5a4343e818503740800000000000000f970e4668c3748495a0a2e33fd7e646db6b5414e1377b907126eb50ed5fe574f110000000000000073799159a5c8c080211c6bf0a9a92701113a4dedd6562f71681309f2eb4a7ddf30537037463d304f013d05aa750de6c3a4a07e9bcc0c4809156585ffaf2b207b64f18bb6eb1819c8bc8619c086a4259073fefefef76234105654ee2239591ba3923986322afae2d133cc417b4e3f38ce6e57ad2ab9710dffc69b6044e2b19b5de2d5e5c175dcd41d9205e5d47ce5eb5ba5b1028c41c2ecf58dcb757c896f7ea2dda659aaefcff7eb5706d8e26885a324ad60fecb3c5fd309b8e5f79ded3706750ca89e04ef757e6ec58bacadfe55849d3df63695a3cbc6f9288d861ecc42231a154947ba0b22c09a412ceca77c8e8f82ef8cb72cbf5bc32dc3f4408f03d75bc95ec3fd79783b8339beea8db85b6031c6dd2eb08a62230126c11676831c29f7dd9f3e028654ec8077a04a77d673a168a94303a76d48358eaea26cce5e658066e26c4e05556d30653e2dae854618d95c5b09b79e7bde5b60d9dde3441ff8b49ce68ebf335f45453f96f27b49e8bd250bc1d1fac1d211b3d64da255780c2ff21e1f160e5a9a15033143fb3b117b3f91df080f4134db44d6cf2d903a30c0f1573d999be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000bbf8171aac00a749eb858c3dbeeecf351a300e380000000000000000000000008a3ad960bad7a213a93c8449a93c84497bf5d6668b82181252966c0652966c06ad8b6b36e0e83414ad2cf92600000000902f1d6d0000000000000000dd02cd6f17a4513e0000000061c1fc2669e14168afe1ab7700000000000000000ea433721c3cb47435015b697be9e769ed9a9b5e4707e85d4f73694743728017cb25562f4bf24940b7ce7b23dc3a0244ffc2b131334400727d295b08554ce21fc636ae37c636ae37554ce21f3a2f2004c51f9622e5bb857476ecc019ad950d10a6bca1345b273e365b273e36a6bca134f82e0c5780be8a3eb92728122b27d04d601a32562217cb634a13193e4a13193e2217cb63d68e364787df2354df60465eae6cfb2c00000000a2905f16d4df694baa87ec186fe1d46eba4f296482fdef393bc75432c4f92404ada4a11e8a84c2559604c56ab3cb5d64b3cb5d649604c56adac050448274ca033e804470a0ced0480000000000000000000000000000000000000000000000000000000000000000bbf8171a1dbf2b1a22e4a9440000000080648a619f72e35df92c066e74d78e742500000000000000c8f593714ad9901f1db2034a0000000000000000000000003cb3586e59c38526b0ff8004b0ff8004457c09406decd9670d20fb583a2c331b980f4f2706e64f58efc66331620f5837ea19d445000000000000000099434b27b9150f4677b4555604d34f4cabe25040f085a042d67558091e825e28146ee4052e0daf0db5ff3d0c61096666ac4e0a1b585011403fd02838fe3d7375100000000000000088035d20a4186e45f8d0c936bfa7755931d9be6e275e3a4e0acb8f5e1be453747e104667b9d27a5604735a56824fe2425055c75150a9df618d994a109699f652100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a5400000000000000000000000001000000000000000100000023000000000000002a4bbb4b000000000000000000000000e146244cc4e661220000000000000000562f2440d2967b6900000000000000001f909e0f42f2b429000000002ce12f5c0000000000000000000000002ce12f5c4b71ce6b8c63831d8c63831d971e68533ade373106e8801d14eec85dbff121610f530d287ffd672452f19c3b6318c84900000000000000008c63831d08000000000000000000000000000000b366c23e00000000000000000000000000000000b17020410800000000000000b0238941ef53374403d11b4e0ee6690d22aa511624522f1431264213b023894108000000000000000000000000000000f240a73eb9c5d1534a4c9b242b9c3e0f9acbf801001b5c0b22000000000000003d3d292069c7b22562edfe35289d5e2863e70d54c96449249ab167581ecc786ca9db1b5cdae35a75b90d8c368dcc1a7048440a0a46a3ca1133f0933f3d3d29203d3d29203d3d29203c5635313c5635313d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d29203d3d2920000000003d3d29201400000000000000b51e8a409876243b01ce6e094cc73f724bf9d068ae6a43526a3ac46f9c320a13a9a831726aab352e0e2b431591e7dd530000000000000000000000006d1bcb2fb151b42f000000004804884200000000110000000000000094db7065698ba3aac92415d3a647cb0ba72a7b1419c79e6863449628c6829c1d85e2329a619d98b72d4d34cefd3fbd6267422b10fc77199cd216c45f0ecd71031aacdaad681fea91db302b283256fa81cf41454dc7858039c09b9cc8675dde41646aa7f7caadda4cdcb8ea9d1684a1766e101704c0a065e0b643752d438c60e5cc065069f66f7103b44c7b418953835733b89e184fecf314e09fd0f11d6f3216983b917bf4eef258f577e0c2f9637bf69349786deb059a897e71b2417933492d8013a13592b5aa202a1356496cb7d87e5ce2f7e5a30532ff295cfb1d4eb2497e768f3ec35864be6b3085fa350b1923c20762f59615c0e785252e904b1956eb9261d1c247081e750decdaddb8a9d96efc2fbfb2d3363e43c29d8316fdd4be4f9c7d72915d013ec862bbf0f295f36054a8a5b6bf950addccd31cecf5db1bb4a8d0462dd3c6e99c8b8419dc236d3997d2b9eab92cb633dc7460b233249b4c7812736354dd0058591e52e19523ba58dd8d303c9665548cfd8dd8e779c6900495d774bf141cfa2a442a3af2b9edc3922cdfccc841b14bcbf617117568a9c87da917f26db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000011f65e18a604d173f1fced2094025b0e7481b5599a67d6172909b2673e81ef70caa5215425c3ae0448f30321a8d83a4df59e5224cf9ff6185f2f8a51fd1c7954927c245a3f3dac65d737976028af3833a5661038ec94c3403c96837454bc913b5d9ad165b873e75bdb5278188d2a9b634f0bba7688b0e157db03225f3a7f531e48294c49776bcc1885e5a8716484c35f6f77c64b9efae05d430714212c0cc5433fd4a61f15e7d64b130798698fc67275fd2bb63d60a6193edcf109578c12b42ab46e7b68edfd681f6f6a0577288be50565d3ae041275286c8f247355d523de482b80da2b877c775aacf72d41901c5b66ce4c0f5061e86e5971595959cdd18223207e7b15a6f3b5168d43c307730d2b441ac6e971652ef129dc3220605ae28f47eb06b81f3c0c093dd062772921c7b877a5c83b71d4ad6f36cb62572c95170c202c37bb750377a155e73ee954fd856d03c4fff212feb135575e71c658ecb373310c667964e30ffc2fbd795e26e769591965046c31ca4aeb0f2ece443f9421391ec399c070b8632510245b4139cb35b473080000000000000073ef59687b834a10c062ec5faa2f5b144e2bee3793e0946aa23097146837505b2000000000000000e23d8540a98ff4154034d7271e671319508535769ff9be715223e06366fa654b4f3d182aba64d223da9e4943f04aab2dfdb86777f093894b53d87f1b4cb0f946fad82a2efa73af2e2d4eec56635742708211fc1fd230d40c74888619ce8b0164f08aed74d9402848da86e24172d7f8468e80f66ff98cf91f6fdab6385d157b412000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d080000000000000056a32b1fa9e6c747bc6e9f71690b50749d8ec95cb094db11bcb9b24311ef497708000000000000004056cd50102c3d154908361d9ed78465f1eea5709112d70f8c83902d0a497f160800000000000000166caa10042ad93bb4acb85d0aea313dc5a8642abbfe6e61589e67047113d72e08000000000000003729c74616834b4adeb31b21ca101c2157d9c43a199f585196fc4c36c7cd151c080000000000000000ee8269e581a164e770f45fa7d63265ea6d6e44e07833656248815500fce46928000000000000007240670ddf528a3ade54f3435427e12a97509c2c29727f0145fa4d275987a864985e3e17361ba50b3ffd5138312d6c4106f5dc3db59c043f3062122198709419b6cd6e1df9c9eb59eaf7892a2c870029d5310f2e8186f06e7cc9c037c98efc3837b75373ead2c304f886034c6baa8537408dbd4aad72a571c750a74a9802f41be8c48b75102c7477ef87526e5a0fcf4ac7e80c257aab8730d7056b4b4849937411000000000000001634eca599f34d60d303c6ce1a233527678d581e9707f3ed57a99e90af9ef98e857810ec0d3fdb078405cc5c68a0ebb228fddc9c5f25d7fb182a44768bfe77ed6ba4d285cbc3c10101a6538fb0a61fbe40e1ba493f6262230b708008c9ab468a7e8fa9c300759a68d4ff9e231d1ade62334b70071e1cdc0fdbb2b342055c32e5b2539f97f29e0c7836ace6cf0f987ff7d1d15362ebb2baf5084262e897a919baeb346a0b0cf79b56096b88f597f723db327de9b2b8803ba5e4cad412357c570a77c7f04e570820b8e17b734745aa5afabd4dfdc71bd4608d93babe27d1b0997b65b1e9aea9dde70e6014c42eceeea57edc8f87774785167847d3cacc70c2adf611e1960f494496864b4b39575e9ea4d5ba7a19b86ca623579639e794693a6b734ce6e9cde6126aab6ab5efd2f6c15693b45be12e8195b527517bf673867f3bb5ca5aa098a775e62f519d4bb6596618728d7f6bc8834108207cb92ede6370f0de4fb7b0afe70194ee381b9a0ee1f9863c22ece3f255beb76d0fb0e5534054291b87a94b297db8d83b85459c6ea67812479b19cbe89bd9b8e7b1335670c9881d3cb0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000005d7151581ad9fb430ed1ff5770e92d403ecaf81ea985345e344d593b47aceb330800000000000000071e52002bd30d146860c943c10ee46d8d3a285b2b0cfe0dc9da4364a234fc6d08000000000000006be0cf3c566c9652de7f5a22f74adf1038a2a358259da876f76a50593ef8d62c080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a24450800000000000000610ad535f49a55609c6f351a7b1b7f55c740251da27cb40a95112a3ff5ade76a0800000000000000ee4fc20bdb7dd26fd7e6da3b20f0380c6172f5575ea2b021a9de743013d1482808000000000000001dc7296bc8e382775b32604fa40f5300ecbe3604120cf44958b9015631c8ac75080000000000000057d21a6379773a248ae3d0147af2a94fc4eb135582c1023df63af80cda1a961908000000000000001da0890e5e9acc041be1180dafba6074f91a6f4095b179716e70564cbd6948340800000000000000ffbea11ef07bad5109caa52b0616655331de6b738819d13026b59b578b10f5591100000000000000f9d616aadc755959bb5e815feb63b66a46cae6638518135cb2a2a8a4d58ee2d7047fc403256d5981f799100db853c3f4de9e78600c82f8b422fabb5946ecf6d51d5ae4d167428a97e45613f029ea2a1c215c36136fff05e352e320ae8f71ec31d31166dd194f1462cdd4d29a0b384f2e30da3084ba5ec4aeaceacfe5c933bb49e712921106fb8de36d0d25cb2b2a317cf3ededa2a90a184cd477736f74cbe6792d6e04e806e1815e94f70056ad1074cc5de5a87144d8926c19aaf7eaa7824329f36f70ba16ecd1c2f66bb1daa4db363cb313427ba97f8822f150710f73242c029bf561a542d38aa0ba87d7b9c596a7fafcf20be7210ebbdb442d20c6ddd61c1c2507fabe08f98accb748f8ad4b040912ca571569eaad5f1ebba7476534c136759312376e5a9b457d9a02d70fea1da4453780e2bc08c2ac8bcb324311309a394e23612a080567c5daff28d6c334083409c07f8912c924aced2864da3743bb74dfb8d6e17537cafae4c4ae27ae29cad97e5705040bcd2998edc2c150eade8c75718ce195381d03da9d313c9b3bb1e3ffe23f3afe21a5a5d2bb647d8d0e86bf38f0b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000001240fd285f5dc96626829e47e5f9911d05d390190000000000000000000000000b23836f71e42363b9e4370bb9e4370b8b3d114587ed0135f42ba246f42ba2463b4bb94480fb3e6886d9c96d00000000e3c32d64000000000000000091e00c19cc39025900000000fd9127414c5862327b96c31100000000000000006aff7e72e82a0b3e6391896d09a6ef3d43e5c62ff0bf024f781d711a8ec7a60e2640f16ea45ef310d412902e294c912158eeec0050637c6d952fc067909bfa6af532045cf532045c909bfa6a635e854a437a326dbe946b36114f01126fe82c2530b00954fc38831afc38831a30b00954db84251c47f0c76bdfa4354fe7678c2ad498e0588204c10f9f1059229f1059228204c10f876288490f1f1328649b3544c4488171000000004ad28a2ce4d2ff076065e10c32b009485f70f120d74fe700ae47a95ef3d3ac28cb377a0d795dc714df90484eddf4766addf4766adf90484ed1614e48a583a43c20448649be7df06800000000000000000000000000000000000000000000000000000000000000001240fd28c10e714f570a3f2d000000006a7b1c0a15533d41109e2b3ad44ecf61250000000000000082c564623f900c4ae5421b13000000000000000000000000f68e0e3d04c39b14344c3e59344c3e597195a0477317ff60917004148496421068a33f24d4276a441a5ffe5b666cbd5d2c866b390000000000000000e1c50827981c9b4c5f7c1327fbd7706b0bb28760a3c15f60ea583406f74dee70909dfb2a04474024c81ba85f52b7ee30653aa953d93466771a26a05ded3f8b361000000000000000d2ec8c2ac2018008dd7ceb09cc209d775715c976e5852f3689c0dc527abbad0d62cfbd423fe03c41819c56425b87f44d97017f0e0a9f3f675d5c8b18478250461000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000f1c5c95e0000000000000000000000006c22515c5ac8a72a000000000000000053054a504fbfe16a000000000000000023496c6af167611e00000000c7d02a46000000000000000000000000c7d02a46e9199738da81f856da81f8560b618d364d7b7110b2dfa31f1b8f65277fce884bf3beb55bea83303345e6db51eabb2e700000000000000000da81f856080000000000000000000000000000004208f100000000000000000000000000000000005860d24b0800000000000000377e4609a3b6232d59e8123dac55c00ef1f4a5611737f3162cc77343377e4609080000000000000000000000000000007e4624248c4feb0df2db3637ee0f063aa227866a22cfc52c22000000000000008fde7c41c375c64dacadfb6c306c6d5980af1e19911fc002973a38186747065c333e4749e1932f0ce2b3be1543f6c124ebc74b39f7fbc23392e4572d8fde7c418fde7c418fde7c41fa019e1ffa019e1f8fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c418fde7c41000000008fde7c411400000000000000c9ac1e152fabd010d16fa33b28e84b625778a826ddc15d569375c3149c872c269b8fda58a564294002747d179ed3476c00000000000000000000000056b4b265f3874a44000000003f326b010000000011000000000000001481ce22d67d793a2b04a4639a7468dbcfd193baeeecbebca90ff52ef1542ac1255fc33cc35d2234a8b56491b66fee639bae115baab6210814aa360366eb3e955f4b0a55025792bf2e3843c4fe445d2230a5ffc6d8b2a66957be934d0325e55791f6bdd847ae2d0488f874c8c14f6ab38794be78da8280276cef0ceb47c03b8395fdba01af6d0f72865955599a1c1f7b5758136ce7ba16d902a584327cd79c17a03b6dab3668c03db94649b50fb9fcf2d0ca4495600d18bc080ff4605dbc0f95d815c4aa15f27025b3f4969d7b338121bdf58d8f76f1552b00c6a39019dc037dd00b93d80a0667c984710f0c518212a96e000bc53cf1b718506a18f1dc382e10a6d57d40e2a9b03ca81d67d06df9fbeb9bbe5f16a82195cda2a9cb13109d01736e6a0e6fe3a6ff4dcbf8ffbe40285cd7cf8a1bff584e515abb0955c86c578a594bfb340ce2d8d08e9aa1f7fb110084a182e6e3134c94a095bfd560319480cc78a88c71a62caaa59583ca490851270c58f34823784f153d391f3498e92ca1d29b658b8e30e4cb6ae610c06639198efc43b0f326ce5aaa8acb493506596649d30d76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000583750342b4b9f4105ac8809c899fa17b96c7307e135271b4345365529f812260e37355662e02905b5111648bf3b097211f0cd3ec7874a4177f55206f196c64cccf20c5b05f50574d90d8202de3b2267d6729f4494522f456b4b5b2f447ad10ac6ed8f0cc8b1150acaf46723e931cd3a8a4459189e2ad92596d1605c257a74696a9d2d35aee2a8394d5bb14f8b1c6b71ae96973dc9b8c270533d7c723f0d3e6d79a2c46976e59a508de9437454aa122b281b933885070712b4c94719d5797f37e1ceea4301d64412402812526ea6dd1537f66a70f0f763486b06e139e9a1e305000aad17eec0556f6008e5644752ec31d3a15f7721bbed6a67dd4c1503d722275a5a26162b458c5afd3a07024f28d7502691f357d97dc4353f7fcf5d1faec560de3b4f397929987463e9bd60347d7a655c19262bef206a4008fe025f80d8c306405b1d22ac923212e9e9043e2aebc359c49ab453e3d3182a9400da4537d5e8247898a4512bf0791d7bcfb05a2ee768009442df612f55325d0d2ca05efaa59f36e3a6d35ae552405668f22e387df11517080000000000000035ceaf2a888ef7577d486c55e6f3526163ba423c7a9607679452be72cde3b92320000000000000001ab5d209cadd783918ba005b41381504d234056bba6c7f2b5be9281bc6cf6d46b1fce04d19335b028a6c4d05810e8e1da265da0324e6fa37395f9d1ca5e2782aa604843d748b3146bf4d841696f249670bf5240d9dc338025563231262b63169da9cbc330ec19e2c57d82053b01cac2ec6f7c34a7141e7563d8bea5157b96a4b2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b0800000000000000e16d9d680de4ca1a903df85a226ac164e91f955b0cf21f2b82305c3a1a412a410800000000000000c1ea0d22524f815fe4f51a56bf1a100bc5ab49251f1e53687d893a15db15d026080000000000000036c6e41389d2bb4e987182210a139b2fa150d0395e304f166ae24916874fcf1608000000000000004f396546e3e4764b71b8374c348a8349d74f280c08873e5f3fa2d4290c1a5833080000000000000042f0334e71b8945cf6a08f6379d2e13c88e9aa090380222e1b5fbf30633400522800000000000000bc9d0f77c6e9c5777d19f00800894805d1167c1c6439d71b3837092a499cff178498f62810245d6e186dd412137cc7401994220345df9839bb0b4b6f30895c4a07aa441c93ecfb7648faf8494d64d4118662f7203c42f8134ecc3d59d99b59649de2fe6fad6e351c75c8b51e869984730ca9f628f660fa20e2afb908ae68334a54cbdc541343f001efc66b1c801d1a3b17a6d851400370221b3036208581c36d11000000000000009cb28b1f57d34f4dc4ae8f55c7d858f790acccc56945ed7f680a32984437bdab4049b553a95300addc1100d72e92022555377421f8ca1092daada134009663d63d800245888c4f42f41e47442cdd7408d2a8cec4c04c5e4629190eaaef5122317571602ee5240be0c40c697f5a4d937c29b4d4961f56c364a4abd4115c00f978bee4e874e3a269f6535b96f7d6059b868c1149d57c0ba7dbb3ba9218828d6dfcbaee894883105b0bbdc51ccedfc038555394f7c1e98e02b74a16f6b602862b2580108817ff8fda140915b29ffde7dccc17b4c6718f317d881a602eccf5da0a14acc7f44b639d7c53088d2fb0224172383c3fdad9bd6e954726a2bf7c5eec604d00100caf75c86aa2213902dfc40095504b994e14c7a529134c1bc895bb628596dff35a2014814520b3d07a8085f8e73b7d3faf920025eebc8fcb15c81e37fb505b9d7c686aaeafdda25909ab5865426abb9a12f1ca188690dd381bfcf4aa70ebe6b4ff9509d8c044d14406a0ec77b40a369b8c781889cb9e71fb8032ad0133b57d346bdd8421c15c76128363ef44a929d8c80c02b8a948a0dd26f4a777c5d7c3f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000adf33401412cf345c4bfe04bbdbed6586b750a59624f67498c7e301d87acd903080000000000000073b6736e53e45f44a5fe230a50c2b86c7f1f2e2ade9a0006e8dd463f97a97d2a0800000000000000a05282459c3fe73f99f3055e30c6cc51093ed11da1571e2297516f1c9ef6720108000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000e1908c249b25f020c91276085a30db6ef5c2ce0f506f300a0facda0c8f6e4505080000000000000022fb85756d8a88379519c856e217e75f547be75c3efc842f3bba5b0800371056080000000000000063185629dc52ee5a577e2722931a87156272044d0b63a076eb89b03872b27216080000000000000033aae21a51a78d5fc46a2c1bac956728c208ff550be88c0f5847640663520263080000000000000031d12a72cbabee499af801218fabb35468da4849416f647754991d6d558a960608000000000000001f8cfa717738f90d3b77b9050dd77e55d2061f0412479061b05a38674f49b02e1100000000000000d7f0a6cc79cf6448e71b9f384e3b205fd4709ec0fd24de48a82fdc728fd3cda9d1bff9039ba193b9f3f704659fa2db03fa3ef3e0130d44932903cfb2ac82af9add66dc775817b700edb470c8ba783785b81f9329486f195fd21168a1fb41de77fb568409462a1a26c526324d39b6a02902c417d5c8ec2d333175cf69f020ff0faa650ac7b67fb15dba7cb68b7d2c2792b54a2c6f7d60761817ffb15b09431ccfd56e34b3fb717b9e084652231a20c383f1cc52d162a24ba7d13164f92ceecc5a91c94bf851db2bb644e42174f8afc2b40c60c628e2b36028fab5fb7751f7a471e8d57ab3e3e67349d9c0dfe668da2b47ecf801be72ed903a21151917bf20ebf4fb88afd8a54ab5673e0f38270d70f6eaa2605ce809f927c91f79107a9430a2510e236f6a61655fac5014d6cdb32d7dae2903df065105d9d921bc6a4ca4a0d56b710058054cf8bb1d6744c55d30b61dfa53b4d2da82639490646f6a72d4b352ec29c06608f8add081b1c25d123c5dade9f36ef97b4459cdb2eb760f6dea0aa47e28ff3bea77f26bad3f75a766818b6dd22522befb461efbd97cc68db859f8e21d7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000172fa4616cf6ba7332fa863d738a680d34d82d5a00000000000000000000000003ddb701ad93794d6a27ca626a27ca627e448951c940cc5d515fa239515fa239d16da717496ab25a262a3c2f0000000035d6af420000000000000000d91dde3eb0e3b125000000004309ab0593617712d3b14d660000000000000000437a494b8b49527576cb192708319d1edf6bae5aebd05b16aca71c22d2807a227fb940733f02ee1e4998ba5b71b206424f7b1c3407819f7397fa514a5917f0761c46123b1c46123b5917f076cba06f6e5faa7829d809230afe0728091d9512634e38ba3b366b8d02366b8d024e38ba3beea26567d56adf428c66cd3d654f5c4906f39656b9954d1d3ebfec023ebfec02b9954d1d69cdb013a5a8cb346d9b3362b7f4f06800000000d3f3070064bd522d7c5fb15656437532099475654813c63d8c86451e4df952021b47de1e0577e85060c4af43b730aa48b730aa4860c4af4333c35869011a262b1c2b614f7c336e3a0000000000000000000000000000000000000000000000000000000000000000172fa461c109d16672cd8f5a00000000f5010419f224e102b6dcd65421dc7e342500000000000000d82dd020261f40074b74ff4c000000000000000000000000bfbf25617279ed5d7220be5b7220be5bc30c3443754fab4334be29322ccd8872efb2d81323b68f686b44b31fc8673c055e83765500000000000000006f71e91fea59623c2908835ba202855b856395498e15b24f5a25b4246a6e4c2ac9c5d50c4c4ee704542bf61f3f4a0004883fed6e8d1ff1354a72ff57d8d7301d100000000000000004fac74e27d11275c738803bc6702e00554dfd255ffb96694257b712cfd1314e42e87d11b9e573583b79d75ce47ce305aff9925c8999cc60b29c9b6422745e1d1000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a000000000000000000000000010000000000000001000000230000000000000051bf16620000000000000000000000001089bd6464e4761e000000000000000070d9405ee602966100000000000000004a81824066b5061a0000000069b7914100000000000000000000000069b79141b238140a18ee1a2418ee1a240dab0b341f5b2f02a3931b55c957c314ac87941907c678574923e26dd1305806c82e043a000000000000000018ee1a240800000000000000000000000000000091990f5e00000000000000000000000000000000a9c77c18080000000000000031dad713a0c4bb5e9a72a429fbf7982e515d2d267d9dda3f1e2dd95f31dad713080000000000000000000000000000008642264eb0993f30739919602f53054041819f680a4f814c220000000000000028b3f777bd2dc25d97de7871b3371c3987f905058ebf6634e6c7b04b8fd4be67d937be1fef56ea74cb196c2efcfc4a3f38fd512595d0f153d26fef6528b3f77728b3f77728b3f7773f8de9413f8de94128b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f77728b3f7770000000028b3f77714000000000000009921a9389505383884b69865aa70480b27baaf1d98ddff18a963073d0866d00ee441ab151ea5c1771c9e5929adfdc84a000000000000000000000000ec303437190ddb4f000000004e0a394b00000000110000000000000012d1c70c7f302e79afdac8686fc02ea0aac344bb1c63e0da22ad5fb18dc6ffaf2f05ff91019c2522d2566174a3b9f8dcf9ccea181d05301fb7363b7958340a27b00098f009b65cf4dcd676fef19fc7f7a0cf3c6695b68d7877b12e1e2d1522fa7544f4a6dc94f381120d6b6ff530dcbb241860176c1df6d947bdb65d39ef026f67f06231b81d47c230249f482d6e78cb0c81310a40954f3b0fb9babfcae0266168e9fa0445954b2433733f20d2ef534c948d89961841fb19192ef0d8d79a6228e6b60f4d8b426fb6d3075d16773e79c71a411716e353fef61b4fd6114c162d70a53b8e2df1936584d3ea70a2247f672994e7e09aaad712b2eb16b252514dc5ff5fc3c3e974638f54ae66c572a47c3b0d52736df863237cf87a951a64a168e4ffbecd857c55f7488a05f23ee8f72f0452114c0f26fcca76154b4b720aa8532639f626271740b2d0fc59c710ea062f2a300f3f6fd358a0ef4fd930499406869951a033d68cc0a9f9823cdbd52534a50e4f5b2a92c503f536be6054febbcc1cec1a0f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000b80aae06d7c56c0ee9510b3ee19da46ecaa66f51b45ac74528920b2057003a4eb065332f4188e208d1becf4ad081290a9bb9161fa9eb5e4e0cdc4f604d52a170e319c034ca2335358f966139d97ded610f26a84c88444b1a1f84462f2ace724256ba03432d11cd77f9e26d33048b7775879104412afa9335fa120e321ad5e0294e0a1e281682b4032f542b48e0920861358d01386fc1761890d8d03438b53d1466b3ee6cf2ba2a5904e1015d49fd972e4fcf7d4ec05cf56a4866b005d64e244369f82f244f4712563775a7614d448115283d2b1cc5368a2434950659f749d41760dff43e138e77575b0d7a445b047d57cdfcaa71f9db5d022fc26f0ce3d2c257e994682803c553571c51303681003923f2cc1f35b3c20037db7f2154508fa310631eed241e9f9f3606f36e6eb62b4c4980ff7507db0d27146c7af05a5950611e017fb83c5d6853648a32de125bea0710ac138c30166fec11ff830d005e7c630bbae5bb6a7f019b5f075631374ec9cd64f6b7686bb7cdd341676e1e00d5c81355d3edf8666c729b39d29d1252bb34760b08000000000000000cb8a76a35b6db0a042ec015818fb719e0f46d5860d0ae1f74adc618e6f8c14b2000000000000000f7a71033d86eff573f270d5741bb623be197dc73b71241737110ef5aae21ba1d81ddb260ba9e0c2057c5c705661015673ce6d51795b8db390a455e7031f63465ea1098392f19022fcbc2e75d918f3c38c7c86e12b37b2138d03eb4412ed3d560f0a45d07e42f2242f9447d1e5673c754100e6d57d58f5e10ed2b8c4365d1c4282000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b30008000000000000006ea1831a553e996709433942d842a81326f1804f60d9a43cd125f273319ff91b08000000000000000fdaf30bc4810c586ceafe7588f641017dae0b0f9e0fa862c12bdd322efdd244080000000000000080e72f7019660861b0f73704bd49466c29ba6e5ffdbef176c8eea615ad52051708000000000000002ac06d6d4774b9542dc7da38184f0f04181ce155be0edb5f39fc1b5aac09f94f0800000000000000ecd0d95025c9105ddd69951e091a6d356d3ea02fa84023461f04f81902b17e492800000000000000563d8a5bedd4925a44721529b336b40eca0a525bc79cec44decda75654e796100c9d1c3d3fdf55430d55ea66ccd58b4a4d0254298c8baa394c8c4b77deb9101ac5fd76327edc925730590e40d655b312f87558508684222cbb1d4f2f9e127f7456d6b52a338bc324a5a8dc029054b666cf745d0c3336095a4129990d0098ef665918e073bf1e7368fdaf915ac4343a72e8bc5d41352a294f44eb072fd99348151100000000000000efb71e65e0bbbec541bf0074432ab356b8c48c4872f304c187793d1267dd39f6ac6a99ec49f60b8707566fed3d2cf78e96ccbd9e7000d977a3a3d61df1404ac0473939d160e5382a270dd8f7129f5dff684e6b0f7ed1578077b6096c45b24e4c5fa7b11568a13ff4486d6a30b911cf1f8db6df744f44c1f70be082cc3cb2f7af9b1ad5b3d5bbffc0cba41e934f70fddf7692ab0a057fa0c442fef1c9bd795e99aa9bd44f53107ac1aaa109526496e1d93d9d20dbd4812505ad6850ffd6c9c0627496edcb0b8ee8a14791d72d22c98689927dc4de5c54468aa068703ec4e58a1f67ef99bbe050af2896615199531e784f1e50555b8f8832c371f20bdb5e018e1f733385113fba1f197139335fe551e238adf66c47bca6f435c13774b1856ccc3e48106f18f1930a8130c13f1d338f933cc364836d28b7ba9f3ce642f7ef027c165460b0c017f30c97eea62eab1fdea6d284e453a66b6b148643e8bd0fe8ae0cd1c0efa09022c0a14314ee2df16b716fd581e3b514be48d66149a412be04dd81d3949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000e8aace21797fe80db01b050e0dbcf40c9a823c5ef4e5330227e2c3321097af3508000000000000009aa2e774c740d512ac9cb47083dc8b3ffd05384ab20986130c9fca08c4114f3508000000000000009ce59100edf3e82f84bdd4756e0a9d3f2d77724f10621855e1d0f254e8f6a60a0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000534aab34e8520306d4e19f45bf16044ebf32f839ea445c4782121964bbb2232708000000000000007dbefe4e48d54a37f891e916e9bc24127bfd442de7991a3c7b420a30773c015908000000000000004468011033327f09f5255c6661921872e8890e473fdc50728c487c0cdeb861510800000000000000bdc8742dcca91c383b2fdb51dc891856369bd4147e51514ea639972b884e185508000000000000004c1bfc6b150ec842551812446820a376a2ac682796a7b166bda93d10ec82012e0800000000000000d57fc14bda3df849b296341323188624d9194e469648f22a04e728180de4724d110000000000000072a1c0afa78be58585a280058118357b3f0e4df291d69e1d437b501b92fcf4e3236229f130b1a1b46c289e08ce4289c1386a8981c6921e8c9fd641bd17c44ac302539c6d140a899beb77cc6beda9ee0a2b241b4cf712f454902d1e3a9dfbd40968d2d685a649a02dfbc681fe6ac2427e10f8e6099d0a4975733d7bfe27c1354d146c9870d6c976443288109d4a3c5de4c9acbdea3ab507526f8a2df2599f21b66ada3956e8751f2bca83a9ae0a240c83d727716d61031fa3d4424473f2f16680b3c8ace6910b717ee1df72a4ae54f880031904fe5e137b785735695d9e08d005f8e05b7439f81d81ccea905981f3b3c73f7eeb5ca3cc040acca4ff0daa627e1d19baadbdd06c9d2f576a1c1477a18ce7264fbadc5b871f4a33ff00a18f037c874de53f053f2c55c7b0e936066da798ebc746678d04edcf8f0966e80b472ad014e4345aab8e13eed342f07e62680d5f3ec32270af6548fd31c31642a335eea14b6babbe1f06d09fc482ea6d1733426719dbb0d23bbb0ff7657009aa6224a694be495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000efa74772f11ae72d482bcc6450f8a51a243de55c00000000000000000000000088014c683e8f244a79e7d47679e7d4765c928a3f11e44e2c880b7a41880b7a415b786c542d35f33360fbf948000000009fb364160000000000000000bbb027550bad750f0000000023b4b776b72e9c5c7e19aa6e000000000000000021168c4fa8d47439d4d75222b38d476296926c641358b805f3b635444611001205af4e760770ee5999425a00addb1b3cb22b4e263e006a3021e1955907a7754772b8523972b8523907a775478bb23769ae519a09f005b90830ce8824ddb4c623a867bf62081d7409081d7409a867bf62ccdfc329e101ec0073f91567c14fb9272c5c8a23d5ca0c442e5d095e2e5d095ed5ca0c44a9124552f3f88900c2042f12a319425600000000d4fb8454eb8b324f2112b01f28b4fe70f76c5b46cb0c4d09efd93233467c8a0da3bf3d42963bba57dfa99715a5d7ff53a5d7ff53dfa9971585b3eb4e97547247053cdc743d75514d0000000000000000000000000000000000000000000000000000000000000000efa74772002b041ffc074345000000004fcf832142b189082c071534cfc4ae512500000000000000e81801095102f1680373ce1f000000000000000000000000587c020f369b9e31fabc9746fabc97464f21a249c87b1c53556f785370206302bd36e60ec4b55b3312741468c151c5035e62422200000000000000005f18be5db0ef1d56dffa2700faa8382c78be9468cc7fa21822dece3c5aee7d5158b6b3443f86300b39dac55875c69204a4e82933615bb52dca1a75320a4b4a5410000000000000002fc5233009514b3fec80ce2b653838185130b561381bc157b17cb40f3c9dd145b3778f3e86ed17283097f63f2378821f4be021300e297260ea4553381c24f341100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000004835e372000000000000000000000000f6672a56000000000000000000000000000000000000000052cdb81c44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a00000000000000000000000001000000000000000100000023000000000000006d0c5e6600000000000000000000000068bca54e59e8f4620000000000000000847be71e210e2b3d000000000000000058f2740c5194973c00000000cb84390a000000000000000000000000cb84390a2377ae16740b4653740b4653704a493ba7b6c422f1a8253fb20b0501ca1d68760e875f52c8f3be423d4fce5b08ffe7640000000000000000740b4653080000000000000000000000000000009f512f46000000000000000000000000000000009e21513508000000000000006318005d1572a43158673c4e1b88364bc0657d291f096d24c1234e276318005d080000000000000000000000000000003b8ba54320d5c235a77a8733791fc94ee133a3131766550a2200000000000000eefbaf06ed472c3e1ea69b65d40be65e69fa2a215556e51dec35a569e5ead1144321d371e747655abd737a3a50119b12404fd70f7c82d62bf4f51a5eeefbaf06eefbaf06eefbaf06817c410b817c410beefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf06eefbaf0600000000eefbaf0614000000000000002206c367048d0c20ce3d620b57556d048a170b714b685864ce1f5e464ef4e32a920ca64bcb85290227ae124b6a198b62000000000000000000000000bf13bd3e09ee5b6b000000007de7263100000000110000000000000027f4f688c93edec4ceb55b8d8f2e32a96309cba04c17af81c5b62285427745c273433fe0f74c8201abff39ee22a99993b5d6b9cb9aae1235b8af749e8720d3ed90fdd8d4cd0615c00305c78f6e9222e60197c2812fe6ac59e85ce67f7649aa9d05692b9bbcce5ccd888b7ed967aa58a69b42e4a7e68d0b44a896d1e00c712d60baba4a37c07d91e18a53a73e77a872dd3e807dd5950b80b2d509975cdca88c9948251fc81b7f01fd97f0ef3a7c674f6bcd60130ea486a85c7d3a8b70af3490273f9cb1a6b010361ddff4bf017fd348b01628f3a2fefe901a1bd987a945bd618134381345fa6c7362ea797165f6f16a3b89e58a458b826313dc9a6b107fddfaaf945820fdc29f32d756810a5f84c584c107c2b5194751d51fd3b983cd1b2f061eb9035d6a8db83cc3f7c8c7a08cb4083359595c75a1a1d312facc276655687d23daaac15bb6a60e5553da5b419bc7d85270377edca09ae9f240db545f6fd633e2705a2ad2966cdcf1b7422c1844ea750b41e41af6c1137780c85bee1a5a4abb215cc2c3eb97857768ea9f92d066f27fea9a6ca745f7688a8f8b93ccbff6860285f12dacaaf6d4dee4bf2f774528e812fbef524ba65018774d70b86017998b34b310fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000e92eb83fd269b0404e25270d423789383a1a0f166eb49414fa06263ab28c273b97dc2865dbf94c59698f5a1533c8c352ccfaaa2659676d6c02f47e73cb2797509ff3a8192e0973271f968e69ca9d0d06f2f6413b16c4b75b3fc53315d3abab74456f60645612d35d4534ff5e1e709939592e796eeb339e77c9e2731e8fe29c616e5e704f249441292d66654773f1780edde96c5719315141f3dacb5009324e155224f4306b5e380d5c24f4309bbd8d5d4f96082588670672e7ddf23ce5229a56cb82cb670164bd700819d16f89dc6523a515b033ae8dc46436ef5f615983653f1a99bc05ffd3260e62dc766c38e62d2057926f4ac678480dcfc01d5cb7f1e9665c4b972ab9bd8563d68b26387c8018489db2fa3a212c4012bb85793585630f5f1c18c94cf8a7324f0fe951003babd302e8bf1c29cbd1284281c75708aa571843345fea4a7eaf1a4cc4cb26038b23406bb358333f1cdac20537dfc041e8f66a14d241605846441204c9b5bf36ac6ddd0555a2953300b506169948f9594e4cd3241f96424ece5ff76e57d56b1545591c5d0800000000000000e1401d625c6f8f507f24bd47da86293adbb77c164476e63b5094da432aff4d6520000000000000001fd2ce1cebcbaf3f6321d5145589de05bd6c7a3440b73b6af596d13521d3963ba54178271443426148bba74d0204c32afe21bf0d2302362444ac2c0a6fa4fc77794d4332b98a4a733afa3a5d4a81093638ed6f132596140feef0ff3e045d0f703f5b6506129cec737c119165fdc8e941b3df1b0fdf828337138f58418efe49242000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000c7518112348ddb3f4af5c372fdf41f6a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d39e5450dcadb7a5b8edbf5563130b002cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000002dade9671d187e544b991847cb1bb4677b046719bc9d893dacbc5068a1de892c0800000000000000cfd4401ed202ee1255b1e2484d1f456a7e198c3a2f36222d940fb144d739fc4a080000000000000085353b02f84f745c6acede272ce3641e3034e00a70e7a02bce41ea4c90b1e3630800000000000000553c7a3e2b6b583e0802c132f7ee792546662f03af5f523d5cf2dc49aec55d4b0800000000000000b85860266afd586571594c173e2ac303ec75e02e61100f10b4211b760f25763a28000000000000003e30d46a10bfb66ab3724b1cd17c43574f14613189c0e0071fd82b30a4bcb327b68e9023e0827c5a8f3c8323352b0d43b972152785364c5423029548dd95f834f5fcb56c541d804773da1d56ede7aa5ff3d0cc0e4181d027c9055b56c1f6232f6a429f4270decd43a469864bb53a7f0992c4b2565e405626cc337f1f97ebb373d9653213339a3b6839b6c61b087c7531a87fb75be3a13c2a6d73270870071d3c11000000000000009fbc3480196be1adc769fc349d8446afc359ac26cbf4daf3b7bb0581d6849671fcaf63a6ec927303cb552929482988356ed8cdd159f734b3ce90b18db3a849f1d2148284a3606264c9e0c2eae528735045b222e8d4b6268674a64b4f69cfe99fd32ae12549ffc509475c457595ed06819d7d39def7d3986f1bb71e11adc834205a1aa068dc751921e77d2e5986038bb264185298133a69af8b511d92121264b708414f136b6bc44e451cf3996cf1c497d5be13007990d230dac480bfa8a6c94e7d21357dc8b3490bbcff7740bed3953459fc4c27c13b37385e76dd2107ce751ac4edc41a431efac087aec1d020d3e2af44bfd20e372991f2072384a18a2a1b164392c7bf0aa48e5998d667c0663b017a636fee3d22fea935a415efa5c0ee7439efd7a34cf45d87cc7612df3ae26417968a931905fdec377ff026fb792148c4ae9de70d9cf7ef459d4f25fc74a93ca24c01cca992575fe1c0890d8e3dfb7da0aca83a0e1e527654b7527b2fe90b3c4c88d8793b93836237b71a4554ebd146401de4c1a950208933abc9a08593ac791ae9f2896bf862ad033ced5f802889f1c0d2349bdf9a7163f489bea3478afa6b4b64bfd1843f6b43029bad1e4ec373d5593523ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000fea0de382f3ce9458aaa17244be5b03a1ff55561accf835005da80479106047108000000000000002b361833da9efb70ba243e64748c82082197af1626107f52ffc9e705089086670800000000000000fb4ac76014b8c032a8c0a22ba44ab51d7561bd488bf803449552d955f49235430800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f738065508000000000000004716f13fd0f11d710ed1d71cb24027555caf40064d22b23a840f7630ebcfba5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000004ed52102ff78780e9c5874652e00fa301129095d550953540f61fa19c2dcca320800000000000000c408b74a4b76be2b6df841779207b10833083172921745748110d31a4aadca6408000000000000007bd20a0ed81b416ed9be3432a634f261b976a11e577c1004fb0e9164076e264b08000000000000004bfbe430444913398210516cb1678b29537a7f2d1d5f557627e5a956dde12e0d080000000000000023283f6c3bb00c2aa30367318803d56a8923ea0d91ea926ec1cd0358b6d8b552080000000000000026eeb819eda1c1772403bf4ec903de486c3ef35194a1976b8a859e635fda3077110000000000000035ba32f3ff8e6617fa0381df957a94f07c00523ee4573b23a0276ec7874b99ff301f68d8dd437c8d317ce64ce55cfec9b22f30878b52dae233dce05f12d63178c385a28ec40d1163fc7ee7b1839d921eb9036b553511f2aa083297ae380960b938c5c26728b6527ab6de06fec5c688c6e3f8eff3990110b03352acdd997a862022b834849ec114081b7b3057dbc1fd34a0231a886a5d95b7c7d631e31d168c69fb5cce18d604f044a44fa0c7e81bc1f36a1023d2d73156675ccff35cb2e276f8e638a3f2658751f028fbea96c8fe4e2be7b44e1762e573ffcb9cecbf6a909d4d126de067863391f7c908be1efa56c6be8ddb443cd6b3145f3ad19444da5fcdb34efa2c025c6709c48fce8c3e217c0b6e742084c8d99cee9376580a5b213ad97ac0c041a3dac73b4efc4ad2dc8435e9123f03037c9b93fae619fed1f1278cd506691b6853814344bf6f1344d00049963ea6098a935fc57c558c2cf104fb6fd2ba806fcefd24f933eda15fa8e8e4d11089c0855374150da529fffbbcba1208d7d2136bf626c7e27928a9a581ddcd37f4e91957c1e9b969966d8c6d171f21e6047729fe2b5c19a85068e051b62fd3e76d2da898378468b5f3508c641e7c65655fc77cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000e26e4c240179852d8459f1622d0a90543e32a26a0000000000000000000000003fb13b2755ea102016e81f6b16e81f6b7f4ef23bb0ece248831f143e831f143e0f17cd3de38a0c4f5fedb4630000000027020d5d000000000000000096169b4734627e6e00000000e6308b0b7650d713a5fbf3610000000000000000b24f94516247271ac89bc159b21a61713f6bb8682091b353da8cd466f0d929257de9a21fcda0cd37428a677089895d5ff264c971e8274a088c2d42107a68bf372815136f2815136f7a68bf37baec8504cd7e225f69821d608569345250e2e42e7a8fe06bc6e08c2ac6e08c2a7a8fe06b69ba0055e647bc6295aedf5ef2ae426d8d9a53671f75f3280f0caa2e0f0caa2e1f75f3287e8b50173b2fb0086088eb7569064946000000004998b433622a774ac95c16362ad291277e15a80fdbe0760c075393444c4d9f4a4340c54e752a9b10bd05f3585bf94b605bf94b60bd05f358195fac4754e0ed5a6717051476258a5e0000000000000000000000000000000000000000000000000000000000000000e26e4c247016a73fbeccdf290000000037d1763e5db99b389e42394193bc7f4e25000000000000002af2d5561ccebd025de3ae4600000000000000000000000090f4ac6425e4275d0bb3ab710bb3ab71e112ed2c94bc3103abfc27039f312a047eaa9e72e2993533d1551e308003af095814640800000000000000003cc47c2c727a0b4cc53fc648d44d692d29c86b3c501ea729bc139736cca13a7791a82d1f374a2a6f761ddf74f912b138b8ccf83d68911e5369e8b5220444f9241000000000000000decde63cd6f5f62755d195222fe8da5f303b3708568cc31a01ec5708010db92db8021c2b165d0628a0c41c48ccf0684eb50d3000d8e8b73f5c291c41e68aeb10100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a54000000000000000000000000010000000000000001000000230000000000000052e79a160000000000000000000000003156c274af96cd10000000000000000003be8c0c8519d76a0000000000000000e5893e6f5fc8b33c000000005aef613a0000000000000000000000005aef613a3e79a0319d41546e9d41546e34e0e41a373ed464a64fd04581f65e2dcc3bcc081bec7d637f551e32eb7ebd504b5ab95700000000000000009d41546e0800000000000000000000000000000035ab7d3000000000000000000000000000000000eec63d250800000000000000ad36685f4e7312660f6bdd01e168a9408ddc9e025b692103defc9733ad36685f08000000000000000000000000000000e2dd670ab15b3a1322bca1408501914d40a7c21bc8a939362200000000000000e0b6d7750ada6507b8d42f3ea184c44a36a5a43e5faeae23b12cce349fc9d96978271d17ca544e631442415f14379e5f024b2618ba65895f5213d702e0b6d775e0b6d775e0b6d7752dc288642dc28864e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d775e0b6d77500000000e0b6d77514000000000000004ab3403f95b08516df93bf6101d0066c223c470a1d9a563bd3907a5d00899e23b639896d091ca31d0efa380f121dea04000000000000000000000000aa471a419d921636000000008c068f580000000011000000000000001f25aded81fc9c64f84ebdb04e70ccdf64bae91c51672e3c6bf0e0d682f3f420e07325071ef082a9174669a574c65e99eaab8f5ab979630455c3e54ed519b678b94471b106d8f66bd2bf7cf71f9e8f7b4b90c27e7d98fa2645de2c4fc49444a44057885ca8eab500e6e582a23b06af3d552b5c0b8da39014d1923b8df3f5f9f9d0bef67867b21085eda56611a8d7c10f8b0ec611c7787a7bcc7d9637820250ffaaae36c21093f6bc4c97424d408c89b72070369435e740e84f0e9629b6c5b65e844b8e777570efe93537f01c0ea33b5155e59c7f493d5d4d18f29a857849659e88a988d110ee46b996cfc5b42e6ccc5fc12a9385892d40fe4a1ad0ad891e649b7ac1f5921ecd41ef5e5e449f7b09c13ce9b6a03bec22996f53e88b8fff35f9d7ce05a90ff43f3eab30b0790894426086cf06c55f2355b973acfb632d2ff545b1c63cebcf94f6486a9e10f7c31334ec1e01825f1bec283e36e38542dc54f19ec14761a7766c14d88adeccd9b617791593c0350ec3b96345da67db9e6c7f03f08c8868e3ed1b16d167b9d0cdda5cba0980942c9dddca9d647568b2a04da32a5bd2b685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000041c3bf5def07da72bb30ec0ac71bb16b94bece304eb85341d54a1b42a6e2f736813c395c6e4af33ec5a87533f5e8b13ea9a67918aca0142c5b30dc1e4e3ded494d80ee584f08d039fc0aa15b5f376117e848bd04bab1dc02f6daa1305abf26740ec5d763a75136278500403b90537c21b9158920554f302595208507b7d05b06163cf241ba27ba1dad968a067d65736a59a7f40bcbef914f07a16a6b657d6551cefe556284bd1e1c4d685d76947ca932085df44478c8d408942b2f3f0aa2183e2f8f0d5d9030f616bdc68305435d732ce463d259c588205dd3f5c367484d980c5a4cd06eda78a50cf486a61c98605a5b8a96f82b9392d863477f49491fe2597064cd17009a971d5c34faa3286a6caa3a6cb4147056607e62c4d71f07a772b8132060d52b0a0fdb482f78fd5b12a62867a9c9f4592ee3932dcb5cde33a7223c5cb25bd034de1e9e19e16bd12e6a2dbb1890abf647c9e54a482a38ab3d194010414693e66c913fcd40dd0b39275502403243966f56034a676dd260c92163f6ef2fb6d6b1004d8d421d59c5b42522052e62080000000000000022646f49512ade362a77061dcfff6723086d0b65a296704a37a0263dcefbf3412000000000000000f793117075205c3813d1b239359a7c2e1c4d4f00239b773e07fbd64c287e2c0cfd53f21e568426396c3ed76b458dd81840736018ddcf2837b431b1597240021573320e355ab32d1ba1583c0208ab0a3860997a688673f23cffb42c1a4df83e02987a105c8b505a21309b1915e22f373e8813081645b0aa7197fe207342cd4c062000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a5208000000000000000179c773074a1e60b16b045f1f3b4f4932cbeb3ae2573303ea904e0b07405d290800000000000000597b1e62719eaa1d4e9d9b447e3b9f776857ba229b06e66acdfca2179731c15108000000000000004a5e52683beb2f22e72b1510a71b2e133932602b8d2aab3d7d6d0f243d1ad32c08000000000000008983dc1a9b5f7150b1596959a389653ec3ebbf40920abe2238b5a020075340220800000000000000f8bf714982e003083e5c4a10fa448e1e63c74b626bc5b627577dfe4eda2720732800000000000000b0d17f4064166261ac19b436d40e760eb39db944d8035d3593faf7079527873c5d14bb492008c7527017b76dcb2a6360f58af15803c6bc63936fe7113c1aaf5652ab8b3745218b3f1803725049f44b2843e95174d2dc32742f69a700442c6a72fdb8f35f9699d200f340fa0ccd990148d35ce71d4be6754c5ff4b424d32fbd6c8252f83d357073545a68e7153cf4f72b55c0cb53ebb18a33b5e144487763a83a11000000000000008cab35c389ae742c2f345ef38d18af6db836994959633e61bd9e617bce836b21198365d642e0e30bccc3ab76373022f866bd3f97de382d5e1df756b802d1670b19a370ebba81cd2ff484fc42f4913133f394f0f9ba00c32108cacb71a3f6a2217ee4104a0907f4587a50dcaa6f63765b4f746d3cfbc4f5c173f7730c13f6d3467d42132387125ad993ef53a4090ddf51d1ee3df926b7fea3a93a0c8f4d7ddcd394cfbb4f14bda987bfc7cc9d63215936ddea3fd16e99fe79537fec40657d9a6d09d7a24de0e4ed1b99c8579252434181d79f27ddc11dfc7cd218d9e4618a163aaeff9a41cca639b1e851a48fa5d9450d37760b3b0e591d8a41f871b0e4a1ed0ad2dbc399e8539c4b0d7bb95000359a05f2d5c9d9f9466b4652a97fbd4dbc9377ce2f02bf490dd9442be44e20ab74a635751783ea5a46cb73f4679f8816f95e1ab6fc6408881b2e9d44386edd557c9dd642946dce42117a3c0cad3a0e9a3a2c3c8dd3272fe6a2760c206f9c20406c77c8c2ebcc340e3d52d51e1b3c64188c9424355b18efcc610cd108a818fb8f8e340674bad6d7b1b6e27c306eb4a26eb0d78a6277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000081739d09a907f922b47cb028c5fd41190ef3df5952c88b1a514cef4f4e01f8670800000000000000452e1772d25d9e12d5990a4acad0695029e9100478c1dd4c078b5860115a6a09080000000000000059e57467636f4a16d6798737727a2b3a0d797444c2c00b08a3202954abaca14908000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a24450800000000000000590b3908a855f44a0bbad83f34b6ae463412d635110af40be5f5970eeecaa51408000000000000005bfc5416d4a82841038edb363f43373effc5363c228af9647ef99a39ece756610800000000000000dc3f5861e9df3e19a0e9766ee954ed3ee8641c2f12926d3375183d4cb42d462908000000000000000ef0b45704130504dc22f52cc301df40458d4e44efa4c01c9773d61db7e54d3f0800000000000000bbc6b66d18644f462784274a743f0f5645cdaf07772a0e169940cb01dd95491b0800000000000000f3802d65fc97be09246eb615bf422d6a56d539758cead940fc5c9741d9a05d4c1100000000000000489e67c9f6e4875e367f6b64b4f053ae8719131479faf12048ef0b43e16aa5c3575e08001ea7b68618cb222d37b7987f0cd567fee8aa9c68c19585a18f367a4e70cfe0229f40f00175fcbafdcf81ba35827a1fa77a795c611a9371cda678440ee45db1cdecf7a6b2da60558f793b6dd3daacf5c47e405daa460eb1c8cf9597d905363ad76d97ab51d4a0133cc3bd732804f240218344c3014ca0c9e2d89f5a943703adc9fd98efeda8cfdeffe94f922ebd97b02730f2101617bae8613eeea05aaab8f1f3279cc079671f2c926f2919b582548d2d31ff036999540a843f4a24100c3032ea765eeb7c6576b6ba6c800cd75d50351c79201162ef4f6098baa5cd9287cf9dbc4a87f2f700dcda18cfb63609c06c012a47b0c1cf70c0e88225e4a514f3f2f47f5ca3bf1eb6c0fa1de0080e532544c4e1c0b7f9244e650eb9545ea4713c78e0b44e6e0c6c8f0015dca85d1fbc3122d2fae699f1ed691bedd9dc4bcdae59cef593fe1cabbb3c2ebbd483cf5de77c95dff91d3a2b1e62480a394ec71f5bfef0070c833139975a6599ce47b4b027b0dcff0487460162add11df56704f6e31baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000ca12446b05ae8f1597d66d1f30bbf708da5a0c1800000000000000000000000013e6884fda9eb7733b641c113b641c11c1ebf93aaa74331b3ca6d0053ca6d00512c40d2ab710a26e298e86110000000067bb834800000000000000001949564dc2ad88140000000003e2c154cfad2a49e2f7a2040000000000000000485155737eaeb607361dc01cab9a4351303c0e4438edbb0cb0ff376d0e4d1a6d8208514cd4486a036901081cfc4c703d13e12456eb88de0839909310ecb11c697e5a441a7e5a441aecb11c695e3a0346e65eb92c825d300c6c962f33fe1f273608afc072b5606611b560661108afc07289bfe52f164f9d1617474f416afbd5467d3e8d2c4bef5d096da87d146da87d144bef5d0993ef28092c4db45d0e248c4ab4a4fa5f00000000a553413d5e9760000e314c66471d0f2d13a9da77d717bc255a48066edc4ef05d0a8e366db0428855a6434774a8205c75a8205c75a64347744fd6cc4cc082dd2d685d4323de7bce0d0000000000000000000000000000000000000000000000000000000000000000ca12446b096a89036d3b504d00000000278be32ee5ced560cec4be688db48670250000000000000049eff8688a293171b9555b65000000000000000000000000b319ee5a3d6994547e54c20a7e54c20a848434728ef8a24664c70404aecd024a6664b83275e7a61b6c90202f424fbe28f8160f290000000000000000f5e4540962a7760c9320a50d20e8ad6f9bbc401e46ff4359d5707108f5d70c57edf64f446922e66c04306655ffe7e7298e293627540b28618590c86958b4025b100000000000000042393f72fe308f5208938f445faa3b17cd8c3a552d35764ebb192960acf40450ba80404cebcc9b0632ad7f66e010c70cd14f4957234b97003ea0113bfb6482181000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f00000000000000000000000000000000000000000000006432a951000000000000000000000000cbe53e3d0000000000000000000000000000000000000000994c6a144400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000f66d725200000000000000000000000060981b18a7cd48310000000000000000935f2f43136f0b230000000000000000aa809b234fff547000000000f5ce444b000000000000000000000000f5ce444b9f4fe06eed4e3567ed4e35673832ae2abd02134d3ab6283722a73137b8989e37bfd60d004550dd6e56e4a513f7e0c2140000000000000000ed4e356708000000000000000000000000000000b4d1ed5a000000000000000000000000000000001548945d080000000000000032cfab05297238505884c46fecf7f1075899da4194d4021575239e3132cfab05080000000000000000000000000000004a54220371c84729c8747619c698c03fb291fb14a05f1e002200000000000000e8ed2a1b574a62460820a65671150a3fdd365b63db3f3a199e1b32458e510b19ae6c7263cd26b31cc46c3a5d677dd818819de35e396ee2738d9f611fe8ed2a1be8ed2a1be8ed2a1bdd1f1900dd1f1900e8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1be8ed2a1b00000000e8ed2a1b1400000000000000763d3065a5637a57c5db9e7256c50b4a92e96c4f1e07c0560d80e35adaf6cb18410e053bb379524fcdd8b74712be594b000000000000000000000000dc9bdc3a0208ff3e0000000067d8b220000000001100000000000000059113397bdd12e6833252b0211847e085d292c109dc17833054e14f1ba3a85b908e79a34568f5b5b67f6202b317a3a585bc05fc96cde429602e682d2bc12ec4c00e96aa711c0be8bb90e32ad8e4159dad6278baf594ea26cf9490842ee0e49cd9f8420d94d82328aefdac55b81dd2003de863ef853741357cebfca502fff72413db4c22c06dbb28c5cad559da748bcbce19474b5ab2005f44365ab1f6ca6bc86fb2c214bf0684efaadd508bbf282ef1716c325a3f267c49d0463e02cf3c27f115bda2de644cd89f7ce5c19c6c38c90cf582eb424afeda1fd0bb30049b58e6e89eaf0cc8921f8effba84cd484dc4623ba075948a97fdd99f1f70f02508790f454925605d57f57c11098e78e6ac102c90b4d2445d4f3a9534c3620b123b189902344d13ef7e0ed729bf35379e0578a517056e1709adc8052f3b7f7285f7a43e2a3270145bda8a07f5a0635d50e5aa29f5d421975809497f4f7ce4e7f01e151044fda5a3c0fe4238ffeb3f7b21672463e63bd4923a949e76072b4418c152893dfb6619f2093b6be91446c3541762d54fb17eb1470ff3da1e1532829c26ca1ead3ad803b513ecb49861f2e3d606984756a08011551ea6342eae4d2498523021ea209cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000089d7ed5493750446db5ea76ad1f0645f6abcd475247cd93191f108286377a05af7ca9604b4e790122dadb52b4292e809e0f4ad1e792b7a12ad917a54238e49690ca06e5f5487db343808f82e0796506d05c29a06f03ee70ce499f82b24bedc050bba8a2ab4bac511b14d73577e7e0261e32f0943bbe666025ea59c0eeeb6cb421a122715b1228062c133790c59c662160a8f19215f9c595e242d24670ee11e030255970b861f9f5ce4c30851cb9e80245f7ec531a635f56eef40604fe800894c933942455161116597b1d129c7a5f9684b49f86fb5f9a06ccefb1937d3acd40aa1435a7711ba1c23394cf10dcb90ce643d695833b7e90311332aa112f5dbcb41a9bd7e3e6af1e81f5cc5271d23e90f550dbe366789aca832fe72315e524b891d67ea795495924e52149daa2892dfb700bd81901ee4f1f435e2547252dcbfcb38beb01866fc426f631091210550deea50e779cd779771f108870b0b08b3fd8e69a37be02063c1e5098fc6154d98bacb75c0700f15c40b6a281f5d2d3ea9e3880bff335d2a69e2d16e1bc9c362b13eac66080000000000000018204561d69382349c814206c98072187003d134440dc754eb86ae09d6f6dc102000000000000000bd2850251b8d1c52ff2e65027d9f720354a1b55131661b685958c66f9c523b0a59119e263fb57814976ab301c4cbdf633f633b273207c87242db8b2f0efaae701ecd67004764bf424c3593778d75a2606cb92b30d2f51e635150715703900767f42d142b088a70631adb8e100622b83ba89401107bd77f47d4a2045ce852ec162000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b6732545180000000000000047561044fc3e4b36b9a6564998b9733d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2477bf71dad0e83af3225223ba35fe05cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b0800000000000000643ae53b9fca2e2ecd77611cc1ed2c418751585a734f971b8b484a009c3863450800000000000000ef531f20245bf0564d6bd21385208a71ff25af34abec4043728e0d01b4a6cf6a080000000000000070ec84566c84e73ba07cba6926bf652473e685236c3e286f7f8be24bd2d1800d08000000000000001eb6cd122257782bddc4ce19b4db981b42cb1925f877204a1107b5505925d735080000000000000021ed382e613cd118c6f6c44b3d96832d6a2cad1bd7000a0b85c2560f2a8ba44e28000000000000007b9e545d9441c30b1232a135d956331092daa85945956c4b738cb051b45357670f56820bf85dab77074e6e4599c2356423fa892ca773370b798db82dc52c91726e690f48a0a084694ea7a952767aff6fff5a7c3c828e536fd802a46baec5cd356389546830fe6b497cb9f951c5d49e064732b44aa500402da9abfb3c130e554575b75f40588ed373f7070a59182d934c742bb72becd40759ab538354d434810f110000000000000047a17440039df0a38b85ab4157cc1abaa1093816f89934c6c53da81f7bb4dd4dd668e534abaa04718ee1d8f0a051077b143c59eb857aaa0c01edfe4857d91904696ea51aaf031b2e636d391ecea75168b8c49d192650bebb6d5b130c54461b94089417f9ba40a64ead43cd0183f26cbed4c3869cbbab860cceeb067f83e03559a1e07d9f33445c3d88b56e92c2c1427b83ddd24aab00ad475762b1a6a7c658c3c192e08e49169d994f3c5d6f70ba673813fdfeb17110469fb2a960f0e72fd63c31a867ffcd37d0a74dd34ccae3e5c3d5850f9ca3a819134851e16b483a9934c9e47d23f4c7fd094d21625cc1a849ad266cd56a65257a089775b5ee4166c166a2f257e23a1cad7fa07cfd053b7b0bdacfe2eb2b8ab11c38c47aba6619ef2866f055a8b028f1819f175a38375b7f32fe796d730b43c4f09631311741873f968df50f2862539a0cfedf459fd85c50d959e92604c1a6683b95cd84c4562a1003602a628011b8dd67a7b9dc2a012e06c9d5b0fc5f2ca4aaa8bc7ce12bde617ddadc93a906cbe66a389a3ea33a11a33209a24063dbe556eff788225957a73b6457dc7f035cf06dc6760b30fb2cb016e87464f8f06f53be4fd14a8218d0d02881026168ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c00000000000000080000000000000043d19f651d879c1892d53730bf985d473c9a453e828173143f581035b060fe0308000000000000008223320b7dbf7d13c05450288c7cd837410a6159851257098d7b386be7813154080000000000000050a6020cc764e362950a8d14a04c211039600519b490ba751e8d113f56ac623708000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e7050800000000000000c108a467564d25100300d842656c5065ae71de195122052a17d1f103110324510800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a24450800000000000000b509ed150e47443dfef8102be0bdd70703227d400f3f5b0be24f6a72c1960820080000000000000048286f3042d1eb26f8919d07e9752a40cd21312325a0a45c589387609341af310800000000000000f1e4c44f7d12ba40e16d6f2367681c065c4fae5477609043d693826cfaf8bc600800000000000000c0fac301109c1759c839663d06f0702a4329d673221caa75d41fbb735ac0f163080000000000000065c9f029d8acf2365834aa716c3e463376737a0b19993e323a247919a6e7c1380800000000000000925347134b34b263db35bb6180d6214a9d8de85fa014f15845569b7618dbae3c110000000000000050c5c9354be72a7fe4f9aae0ba55a76a7897ad76265f4fdbc709c23cb5447d7bf2a31235d27997c3686f87a5b1be3257686780d966184de20980aba49fb668f18ec260bd25fdc7538da66fafba71a43d2a392c2c1ee551d27278064bff442c480cfa45e95f81964e7f9e8eaf01c1783d8e8eae1484c258e6d11a4c5ab8fbcbfb70b04495134ce1200bf9435d64ff9b096e52d00ad956a2be4e7095f12a6b15003453790b075428b8026cbfe7d281db331e3a55580334e9f2f5d310066cddfb58f23fd3e112f9524d4796e7c70e275c2687c7c9b56771edcd3ade95bc3b6005ef8e82a3139acf7624ac38d34f52d660ede3dd6811a361af01764869d2fe504004ad32331f61af4a21eb648440a0309fe034a7eb5b351f75521a6154572cba81d1107a40a53d674c320956e8b5ed4b95581e4119e4c40497c4fb4eb79b7d20695170a826fbf81d630f04b7c1216437a13b9f902e6013fee44fabfd593fc8e38f8552e58486e5bcddc7cab9e72f8d36c3ca807549cd5f619f891c9e94b9759df021da95ca38b57ef2ea28c049e4ff0389718daf21bb79537d13568678580caf80dba2688094ef144b1676ff5dbf3ebebfabdbbfde3d1e97416e90c1c7b2e5edd45c75e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000047b6316c692b240b75184e4600c24d403f57b70000000000000000000000000050d9cd446c0980017b2d8f547b2d8f54dda42c453860c06cde92cf6ede92cf6e33dde8777155354cdfc7f3620000000016d0a32b00000000000000005a23e65b9653092200000000841b9e1f5801f034859e522800000000000000005c2d5b4d564b0656e298430b85915f67f301bb04bb49ce0b02f8ca2ce819b426c5f85e29df2d7c09b16c6d079474f618e1cc75660fc23d4a0d162a400774627500a1786600a1786607746275feb1134e5c0984665ab01966cd943537c67b2a511c0afc277e98484e7e98484e1c0afc27c3d5a9017a1f046fe3a84a29af9b7f0fbb2d3f1491aaca2b045d2a29045d2a2991aaca2b56b38c6ddc2bc8055cbff80d8985783700000000b6c7ce29d442cd5b444d3d0437462c4785b57f176c3e6935d9df3831a17acb76c1dd691f199f805b4dbcd725d0ac632ad0ac632a4dbcd725ddc19e0e11a0a50d88de8513c84a6a02000000000000000000000000000000000000000000000000000000000000000047b6316c2dceaf12614af4750000000027b2bd5ed3471d0893178208bc78dc2525000000000000006c2eaf27527d29288164413200000000000000000000000052569245fa16455f24559c2f24559c2f4f9c474ca376f5775d728f46c85f4d026e9f9225b22e616d2e14773c4c76fa03d561e2500000000000000000450bf05f05d8873e93c6ad3f9362cc6dcd63f32abb31ee59d1573e1a7859d04c9d149301459e495ac08d7865b53d2a4bf696682d66ecbe770d0fed69b95a4c1c10000000000000009c4da166de4c7d2c726abb75b098465966e85b07867cfa31fd4ea80140288e49e733926679564546c9f4b6664d8bfb7027b60b097094ca3d97675409fbe3b322100000000000000000000000000000000000000000000000462539340000000000000000000000004625393400000000000000000000000000000000000000000000000052490e490f00000000000000000000000000000000000000000000003da8fb420000000000000000000000002ebe3c50000000000000000000000000000000000000000010eabe6a44000000000000002cedf4520000000000000000000000009f76bf697f03ad0a0000000000000000d4c1221b000000000000000000000000dfa1fb5800000000235e041f0000000000000000000000000000000000000000235e041fb0b6f12e8a376c1ba5b39d0e94070238000000000000000000000000000000000000000000000000000000002cedf4520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cedf452000000000000000000000000000000000000000000000000000000000000000000000000235e041f00000000556a8f3d2feb092a0000000000000000000000000100000000000000010000002300000000000000cc43b32a000000000000000000000000b86011612b418c4d00000000000000004380cd37e116ed5b0000000000000000a30553283b25de1d00000000118a3223000000000000000000000000118a3223b48f854befb46369efb46369c449864e1d65860abde73d3d5316e7162935c1174355fc2e5a86174688597f332371b03e0000000000000000efb463690800000000000000000000000000000038feb61a00000000000000000000000000000000b68220580800000000000000572d8d1e8df23f62483afb6d150fe71a55ed8820cc3d7110ef0d1f0f572d8d1e08000000000000000000000000000000e0cf91467dd7ba467630fa337dce525de5b07a74a1531e3022000000000000003b5d8b3f1e62a60095835f221466a9353bd9c773448ef6590697a20353239b65a467610638b045613ece250fca9366229bbf481a0457a95d2239c01d3b5d8b3f3b5d8b3f3b5d8b3feb32de3beb32de3b3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f3b5d8b3f000000003b5d8b3f1400000000000000183ad7576710de70d4798b5cabd0296cd7569e0f64da26064e9a6346e1567715bc8c812a3c172b68ab27182878bd643c0000000000000000000000009086660489ec2f5700000000849562560000000011000000000000006d5259568d35f7600dd01d71056f3c951b53cdb816a8ef33ae3b0d5084236756d12c3d9d3ca810a22feac6da4ee4978efa68e7b59263ec98a39146544cc4c2983efd47240ca49ee6631ed89dd93de425a9b0cf80eec6442a9bca704fd3a5ceeca514a79c26a86d921cae50656857bf5ecc902fee434f7ccb549ea25abd0effffc412e21958d66720ea08f80da9001c65a8fff9d97c0b1d02b30c4bdcf7a382b2aaaf73e720b2c66bf28c62247182714409befa24e25aff57227e0a7be5571eb5bf68a0a980eedf301b96ed2fb7f59fe16d9c143333a8f44a7ac35c4952d86433689e2ffa9b81f0b58eb9b83c8c848ff88f72f9020e5481674f76597ba64918e90856d1af1fb9568dfcaa2af4bf3e545e55ad402bcb2f9d560412e651bb20fd36bf6219d64abb7a7a68ae181c074a4eed256ae10bd88e296a1cd0f57740acdf47db1a7f8e77827fde37a754f4d3301b55a5c358f66ac0072b7ab2017d47ec3ecb8e07d89efe5b500844a1246d2d30e78916a42c40c069f71f79be9402d52f5660705aad993cfc77ec91cdbb38f740248d82b9be52a489007d8308b8ecdbc942210e38bbe8f6d2f649706611ffb5d01ab72a6abb9b6e8d56126c5511ac59eeecd510fa5a87380e0e0ddb26fba7506a1475bef6bb74fef81801d9e1995654803b7390fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000002bb2e62d74dd990f827832674d7c711bfb687f0fd09d0324dbbbdc3f4cc7e847ac7a4554fb8cc42bbdb4071e5ef1ce6287a483579b0cb630b659eb6995b55325d63bae262074e51a70e93c69a652824d97bf5346fd27b03f0713f1715ad41d23ee96d444e891233b4c00d71eea5e882609b16270b2092c70b957223fe046f059e304e24d6e91a40d04234f614aaf5d741d8e3c0c3c665e7102b2322c58c7fa28db5a57644861e90dddda95675cb0b15ef3f0560461a1ca1165c18226fde5821adbd6f60fd52ce3625655a735c3b41b5c41d2b4652113ab5d3cfa1c54e983ce4403ef0058570681077b056b345ecbec22e93a6941907173177e14163c26cfce259f5195250bce183b796fb46749294709a20349022d1861773026633515bdaa56cb93a34daeae774d2288e03a8126ec33a1fa3a6405206b6ea7fd3c2ee82aa909e5f80d3aeb1ee227b340c63cfecde373c4d73464ff0b451f6ef52849143847577d2e30215f54d87375dcc444c8a1b0151b19936f6ce7ad2aee5aeb129f4b51333577aa4a319fbf6472654f2aa1debf290800000000000000855a056b31cb1632b4189c541964044c141b783548faee66c16d5e3c8e1e35162000000000000000b0a33159c492c957b8ad482bc8956e1494f41f3cabb2a575e91e7c7743731d751b7056144578534d38b4650c27252b5f6299dc4e201c26577623013832beeb22f9492357bdf83046eaef5f6e38ee334ccc06ab77e24ef75f4999f25a905d2e625ec977415b69ec69dde9fc09cf8b4f059e274d194376251377e10a6588b1102a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f413a91a13db93f141dc9ac36727b915633378c9c25371caf6ca3764d5ad7dd7f4149509450e0cfd63365d78a28eb5f6b25d4e9ea37ac668d393510e21ee1801e551800000000000000b730d05a7d36466eb4a68058cc00424c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200def843f0e6a93373daad20c1c85f5d823cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e5915983c11060ff12a510058b110258e59152ead883e71ea2e04a3b25755f177753e8d416352607c8c058091ec4bbe22f127378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f789264727078e1fb0321e4b09df6f2b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4124964d73096d2552519dba5b5cf01a236ff6552e1a328064f61b021224473e0808000000000000006c4cd35a57aaf743ae1dda028881430ef32f9b1fb80fea6184fefc20944c90090800000000000000484cd326eb11e00857e13e4e836d316f377f543b10e59b3b7e193f371c94bd690800000000000000d254764ce888ad2071b0c35a4c12fe71f196ce2bbb98b744aad18f61983de220080000000000000011af6404f45da33f976da8648752cf68e72232108666a83a4a632863bae7345508000000000000003816230d4d898a14ea35a608e5ce0d63c19e061cb1a89042dab3e16a35547b5c28000000000000004a98346c7853f95c95a2e2298621ee0645f293038344a408890571546a582739d19c011c3506e751ba78be3b1118192bebefcb6f5928f324214da8162f966e6ebed49117265d7962df0b912e336cb34bf453f85e77713c1ad566f63edf40160e4203d45b8e23c1334428c14dab0fb707361c6433f0588b2a25fb2e58d1ce912f4229b062c567cc22e52afc3846b6c177011da52c0e9f416953f55f60f5511b4711000000000000003cb8cd10a259b39feaf15a4976b2f2df5bb5b8a284a7f0e40859acd809ae09dc5aba48172f72d42a20b9356c18fb8c37e577a5cc93e37d497fb52f452f1f5ad60d6f5baccabed54c94f296e9605a444dcdd80904cc96eea90a32515b9a88dedfc77ed6b1c22a780503df19a932c3345d0d5b0f4e9ddcec96a0e9fc8bc230d4a52bc6b48dd502977f2662de7d3ae128a13dd746f7f45c64dbf7fa57b0242781b533a48e82a11029f32645460507f684136e0f20cc2d943711832d4bc901ef955ac05b53d4c07eca5d4e29076c42a618e9ba93fc8e27f9ba3556e3efe28bda004b01717df868265a09af1ff50478fd647855870d586484ae5ac25c17e5e0a86af1f77903cb605c26d6443211b73b042ac984a28fb3da92ef9094d44afc4d648f84af3b12c3a2c67aa88f8174ec0654b83140aa24acd15f376a262dba386033f02096dc1b03384e9cc02ad5f67ac65c04e27d3229811816d82d50631bba21d6a3f60beda424ea2ee515e02c49c0580d205ca79d21a4c3ebfbd2f2a02df76c0ad53dc6d67804c50cc592c120aaf335c36a3df8068673bc8ba805de898a4c47de14a7e091ab0e90065d948a2fd36d9e8d326bfc86ba20a8803bb7feb8fca7920fdcc923ccce4b4b9de42a405a3dbb8be4e5c2d7cb33fd6a5891dece353273beb44f5c6d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000004c1a3100abb21563647bbc6c70c8a90c43f7e001d904c61b5aed1154d66ad2120800000000000000f115d25c4ea85d4b0467ca708354b1300e49245cf900b5037371190fada11f1f08000000000000008eac465063525c4178ba3c30d1d2dd3e702eca761c826c3558d7427311d6eb280800000000000000ef84ab428fb05e62893b384624fbd22d58ed4e4a27b2026d6a48f471f7380655080000000000000035423e49a4b8c31958cbef2f91caeb227c04a04da797d6627902fc3773eb2c5a0800000000000000d4093073b6db6673e07e4d74cd53e324ac985f0cba225b3dad2402644b9a244508000000000000005188af07b0da2d5af51f5f109a51012ad92206218e16d44a83b384312f7a784a0800000000000000f4005513094ee502f4c7d256bafcb351747b255ba89cd8375d2956724dddba470800000000000000c2259114422a640c8631016228400851464a6c57134d7222e427477294fdde390800000000000000c21eff46f575322e1e522a277963ea607b1ccb2c0cd13e635386c849818e9455080000000000000032bddc620f59934b07ddd25883cc6d053efe083994840a171ce75d72b8a3984c0800000000000000da578c69034b5d6c0e24d14a5de67c14a72a5835e5e0bd1b6ac9c56ff3b6da041100000000000000acd7e5e25251a8a91b1492ddb0af2cc82dfd9210234f17a75342725bb1c2f7516a5520cffeccdc3259ba4bb58ea71db406eda269744d864afeb16f14429e48c055691f7fef7610cb7a11e4a393eb2fda1ad81a2c07aad69d618c534adcbe33be1531521c1355b12bfc68516541f7716e0076aee39c0ba3a5b569e119cd56acdf59115910fbb36349221a04d1a8706f895945022901faec10b71bba40a7d4874002e91bce1baba55c2e929619d85bc3f644c6f4ea3e56a98e499261621b4091592a3a67b11ee6006bcc1ed357eaaebd4138acf29c57e25cdab0804de8fdf22d41dd4e564195e86c230f8e6b84106f8cb4353eb2ce9657a303947abb6bf570f27cafd43d161648c597b0c91c6575da6e0510824e1f58ca5f2c45ca25942ddca4dabb0616a662304b8fadfd3eea86fa748924ff56946070f5a0ee609501d1e6d1c4763265857c9db06f86d6e34371082ec5cc314e117991b2d06cbb72bda2fff00ad944ac4d6057fb57a22679bc0d014452afe2a64c5cc597deaa4155629d4d5e0e2d00bb300dfceb8cf885cfcefcfb3f00c06bf98e8acb5660c6c55c9dcb801252c5cdb3597a5c75571ee74e1f5705ba2352bb8f1b5747324abd3e61b971688fdb7cc6f41d7577c0b3bb08ddcf1a80d7c67dde3a07cece130c0dd1819190eebe7ed61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000114566202d196058daed46729e345a3c8d41730a0000000000000000000000008647c30ff2be322fb3f6f018b3f6f018389b962bb160315ab1727229b1727229f81cac4f52ba986f74a3fc14000000003af61e190000000000000000116c42541a5b6b6400000000d820244cad201528a5e3f5300000000000000000bf7bd831b451f13d11386d6dee0832721b59e075f1ba99575fb9154c2bf54e0711b77470d7315c1335e96616d42c613c7362ca7317be05028481ee4bae96156d86b89e5886b89e58ae96156d779da470513669052ac60a735dc85269e4f1111c1270f610853d9642853d96421270f610a78f14613283880e3db994430517ab574aef050fb04567083262ed213262ed21b0456708a40490283334f134c88dba3b34c6fd6800000000db620c369ef128443cf9886fe86aff2e8d50661bd8981d48052e955440f3bf5a3f2d8f11c627bb503fcd515b1e0257071e0257073fcd515b34e0890f2efbc922cac2a65b3666b041000000000000000000000000000000000000000000000000000000000000000011456620f0ad440ad42390460000000026d1180f5069ef328435a64263d5665e25000000000000002913b811b497596ffff7d829000000000000000000000000aae8a22989cdbc753d7a212b3d7a212b48f64a117a8ccf1615c2b137f629ec7250274b430f5ec13629a1b32e9d0bbc1b270642670000000000000000e87eef0de141df0a8dca9d3fdb9f8c3af5a30274f40a8f57728f5e4dc6d69f10dbaa95324060b812bfa7d73c05aa5d36c882e040678e82704f512c680a10745a1000000000000000b9552974ebe468114a707a31c62b3729326cab1a91a92d4a11974677b534fb3135c9d954a08c473e28a2d236cb529a35e73f8d371c4a9c57d3b9f1307d266711100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d00000000000000000000000001000000000000000100000023000000000000006a83b506000000000000000000000000d5b17e22f7afdf070000000000000000fd34db304caa0a0c00000000000000003a623846d6d2245f00000000485ff260000000000000000000000000485ff26081c12a2f56944f1656944f166841721a20827f730dcf402fd28cba2efb772f6497d8dd126435381be22ba80bec109a0f000000000000000056944f1608000000000000000000000000000000b274f96c000000000000000000000000000000003ad7296d0800000000000000528b4007d7e11a4d02a84f6c55dd874f3968e149d3c3b402e76b6d3b528b40070800000000000000000000000000000019d6102353da7c3599c47f19a724b963f846e6747faa000f22000000000000008bb165767bceec32e9e3142b957e7c21bfc8033e8b59390751d9691d20945f4d81c6df47ba4b363447a15e0fa35b720decd1e93a346cf825606e65098bb165768bb165768bb165760a29f8300a29f8308bb165768bb165768bb165768bb165768bb165768bb165768bb165768bb165768bb165768bb165768bb165768bb16576000000008bb165761400000000000000f3e93a144ae3ad55699d1901d42fcf686b92b567b332e74c10621a67057688640cfaad335bb7c23b1fd69768c2dfd42800000000000000000000000062c3fb1fe8f5d56f00000000209d0c67000000001100000000000000603449f6d5556900210b3e19ec51dc7069d0ad2909310d7881c73da3fe19bd900082fb964796698f6cbd0059533d64ed1ebf631de934d98e025490d9f9f1a260ae155fb9ee3b122602d219f508763ef5b90d3805757fd87cca4d31137e5f6d2a7eb8995dd464d247733c7d44c675d801abcc593c86bb5f61a751a08af4a9fb5d6a46c65a275445c0b22f7059989061ab0b539f68d7329d23337aa14d694a048de56fe442d52acfdff512722875a78b5a56522ba7b69b53ff0363d649036f3ff3521dd0cded5ef2f2d837c6f947adf1c5e2f3d4da4270eedcb1bde8f0cbf1c44a507f51e4298ce2e76bdfb3f3439ecf5643075f5c3629b875f64f797aba9aa670bf56255fc7a9876a54dd34d5f1074c3608d055d97a8be0e9eb5cb332c747054e5917ca8d00e20c3e8bbf8d299caf66f8a87df03ee37b8dfd4ff50fbdcd760d359d33459960820b66ce891a858b86d7e2252fd6ecc47c5d667dce26aafeb5d215da146f9a2ad9ebfea6d3c8a157c5d938a0130bfb5454d9e6a6400ae65e2c6b5c6a585c259235bde2c07007778d462fcbf480a3ce6f0f5d980afd59f9d5d67133dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c00000000000000640000000000000053167472ea44a72ffed53c53ce4fef407a23795ec3f235279b83a90a58f1ee262869e620dc908f5f5f55fd209ad2031c90a9c65309df771b19cfe50ccd74e673562eb81a38057c57bb2f9433abfcb22ba2e6f4387d68432fda530612c7ea881aa662431f3c7bd21acae3ed18a7a7db5562cf38613394006787e4af28bbbef119322721329165e203e5be171f72514a6cc4d1680cf9af4e476eec0041eb21bb0f31ed7914f2e6db47ce24b956b03b66771d875200e083af4ff6232c12fd86055767f0ad3d0c4b733361850c36c96ee9290e3e51612c75b46558666640450c5467085325602519a2410056d21c7aff11637f547e0b061c13508546b018854f6975f826746c8fee6d34c45a8a58d36c5d6a68385b16fedf910e2c354d760ce18f00012e9b4582486761842b1a74f960932ff3e4c36112e7ab1e17b8be62d82c39600dfb4b3c476eff4e866ec361ee444f0175a2566b57e1e742a8206e49ac6dc614034d7604a61de3147921481210f69f5465ecef33c1eb123f48882f44929e1d425e515520206e0c2546dd04166ed9603208000000000000004f2e7746200d63003670c8141e72c435d16d900b803816258157a0040e2ec056200000000000000077e59350a1acc41d10b93400b7242e1a648d842b93b7243063420f0ed7e7f20b9a465e6de447503261548109901eb96c0a2d2d0133febd52f28c912d740add639dc6e849cad85320def41d70c75421256d494566cb6ba34036fd656a38ee3b5fa5de9b5d3824bf12f956ed0e7c6a150721ed136ed0a20765e476db255aeaa92f2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee507080000000000000021e2992e3704a2727687ca517ff48466f68f1a1cec07c41f93ef0e437d282c5208000000000000007886770a83ac5314fcaca43b819c8236f08bd71da5aa1309b4ae4c2780d2485f0800000000000000178a014f9dddc9737d294d5e2a99616a06911116c291c12393707f5f739a06270800000000000000c3f22b4398c5cb384df37f23c07c4c371a5955496367784c8ef8715197dc1244080000000000000059f23a5960142b63df884c59f4e0155c4faa462e9da346506a213b5cb436b55f28000000000000006831e8172a3a8675c1feaf778fcb7f18bb90d26970090251b967373afc2236629a85b214269e5034832bce3bbb10c60befe9462a53f4a90921500f665361ac18e189133428a8ad5bd64f4554d4f56266b07d3938c6557167b46e65028fa58e327757632fbc854172afe8282a2d346b248ce7c359477dbf699733cb6dbf182a4ce6ac850785201f0fe2a83901e68ec43df3e60413be9f3b3eedea8a044b12494c1100000000000000e1190a33f5d8db323864cbdded86e35a3c8cbf230700e92a0b12db6172c7375096598fff5707a3b1eb258bbabfd4c447276184c2e845fbb2bdf7e6a9457c6b23b7d068945fb88259cbad0400fdbb23bb896b761f7bfdd39e5f43afc617c450deccfba3e98d52a3b0649330581a9fb502a535f60deb51e65c9d9d75cb9435da229bd42c70d3ff3ac15009842b4bb786ff386f51741a993693e0a6eabf53f237d6dd45f0909103df531b7e2c3b721c27d672b3150edeab0c869e2db0332a044d4767fb2ec60e66a821dc734b1ce59b855e00e3dd45614f688d2437fe0a7db84e0c56855e04208df5361a3e7b9f4176a09181204082b95973491b101ca26f2178607c479daa4e55bb7e6d82423e93b9c2b57885e7335b4b90f90e7abd0d1b1108745ae9a6ba3c9cee5af68334f34a13350d3bea0157167ca05d0dec395a56378be8b85efa09c768f0ee358918f9d4dbd9f49cbdba716d902e9fad4b040f41f2b62fc270910e06608c3396d903f9bdc0a5303ef41e29746847a019a8a6c75338bd9470361858c64ef784e99a131dd8d7372d8380ca32e5cf6b833d38e00ac4bb901b02eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000008021c50fd7dc532c6dd38543a2db2514035c2858fe061e3e7a89e7486751151908000000000000005967aa48c9d77652df30ed6fbf743707e4a6e2618cf4120644b8f271a56a3f4108000000000000007803642f91dcc202703d57237334b559940c96401c80c84ff3cf4b38286444590800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000dd45175ae5ff73333279236a1dfba81fb0d7d5259b8ea33fb595f10231ebca0208000000000000009769225b0bf8f959eec4d712f9a33645765f5f636cd45457784c9a1c45e553420800000000000000d5dd7c276b6fa156732573346edb72768236b449976efc203177360d3a41a25408000000000000005621541a66729f62d1b520438eeae036677dd06c6d70042ae82c535dd7a2f74308000000000000001b690f2dccff7319105efe5ee9fbd76afa123a00bf8e18257c61ba2f55f695680800000000000000f39ba962449b8c26368e8d5be5a0c018cbda1f3cd341ae472c1a5419d9a26e5a11000000000000008a33ff1cce2084a824a57193f3cf7caf1fc86b7f48e962ab287c832bfc43159af9947c20b7c6112ab66281bde3fd135fea9e21e665e46b48cd4789b083dd91b5c6b97b556b1c7ec4d49f696197a4d396c94d7c63c2c798216e6c937de8c8460b3ef9de04a5ed1ea6b4c470c1f93841d75a20128ad443addb102a24afc35fcada0340210d91982f6ccb59a8fe23ed69a2b542db93203e75b814ba8d8cb9eab5b83a39900282db63236b0167a605a3ccdf36d8d0eb74785d34be0b964d39cd68d4c1450925fa27e0a021f41d413fe204c5a7fa9ac9acaf0ee5ff9aaa253e19c40b09d832678dcefc330066d46ea5dbb6095a9b5b5715e2ccb129d714c6e9bbe87d13cf46212dd5644ef6a9add23f23c0bd2444b152cb98c9463217f20a2b5178f6e40078f9c7e252c327de659c7fdae63b482acb213226243afbb3f5ba9efc693f881fec140f28887cc45f3c83c08071a0d972a2120996d0e7c472caa3fb1431aa63a42dcd26067365cfcbdb61d82da6e8a153b5d192c81508bd02389dd032e998de6ef46e1357822b8fba5dbeb77b625b6cc57f3badffa6a49829af5a85120f5f2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000691bc9725a2e423c8bd028007fd2ca6cee6fc238000000000000000000000000938bf4407170f62057116f2457116f249a639f2cd0c85f1ea2b0065da2b0065de6b37e228a32e26d7b45111600000000fb864e630000000000000000e55462288a4f735200000000bc3e001e125cf34f3652e7520000000000000000eedc624270c79541e35d680ae8c8ef666606582e99e436052001bb4a5f3f5d03a49a3841ea1ae963477a1637227e8e463638334a03d5dc235d875b5bf701e62b4181eb424181eb42f701e62b399a3d230caba3699722a80a52297b761da700624cd2612ba4203352a42033524cd2612ba86827492811497507457613fb67d314d7c5575578cd1d0a52b0916f52b0916f78cd1d0a0245113eefcf2151b65e594f7a7d914000000000ec067d687359d741f82854626df11911ea9e99601ffbed4a0afe952da8afe96dc99f0c19b987b43fd5c3fe69d0d3e460d0d3e460d5c3fe69cd620f40eeacea6fc102494dd212c6000000000000000000000000000000000000000000000000000000000000000000691bc9727c5218672900bb47000000009e1d2f75644a3258fce6a85020b86e1f2500000000000000c98d9a09cdca0a545cea2d4400000000000000000000000042017125a0701944d6282b44d6282b44bb10d83c4b46ce3071620376fac6f42a6d1b9c38ea752b3c487504019b2ed400f9dd90110000000000000000a76597241ccc27566bbebf3e36c49354a8b52a205f903f55478ff5750ac8f51bf88119059ba5884f98fb65313926ed574508480d6451086b14519455a595d9281000000000000000f5b4cc70fd20d3174e3dd503e0b1bf00373fa572cd28d669c47de45a542a402d6c8e0512be473b169331085dacc0cb107a1f516903904168a6da224d2a15d76f1000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d00000000000000000000000001000000000000000100000023000000000000002487452a00000000000000000000000047ccc26c68403c4d00000000000000000ad39201cae9f91d0000000000000000e4f9a937d507c556000000006ad17d4f0000000000000000000000006ad17d4f4dcb270f22d3ec6522d3ec65d4da8b4336a6f63bbfb8bf346f8c584d5036801deff3fd2add706f4fb5f3c84cfe4ba73b000000000000000022d3ec65080000000000000000000000000000008603045d000000000000000000000000000000000a23901b0800000000000000f3c76c13cc4a7103fcd520060219ff651896cb6493948e2f4456d660f3c76c130800000000000000000000000000000008577c18b8d4854c6a19b43c3d6cca13b94f2d2da049705c220000000000000036e9564cef08f70aef69ae5238492d24e1cae712379b1a156d697163dbb212178b738e3c428fb756378c832b734a836e189d0819bae8d708b2e3135436e9564c36e9564c36e9564c36e3941036e3941036e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c36e9564c0000000036e9564c1400000000000000ed2f6e0c8644d94f3f99eb0134db5b5af5417058a9d742023be0fa73632d5e1d1b0dba39d956ca126b310916f9819841000000000000000000000000a3d13224ba24c0730000000096f47135000000001100000000000000116227c78ffcfc4f48b4d7427016408a75b0d2f5d0eec6ea20eecda314d47fa5ab301218f53a98a7e8671f93d2396fcdb9a5b7133311b017f1a6d23c6416f5b3a8f38bde52c3716be90aa6c3a582bc76345259c4514ae1dff28bf3bb221701edaf528772fc8f761c256eb70423589e2d87c478430471e974a83de7a8fdd116b8e2f108fd5a0baa50227ada4df8aae9fa37b180a844fd48b41a3caa7dd17bc8bb3eefafc3de9c113e18f1407c553e903c4ec6583e1a1b9aba7765b755b9a1b6dca7d831873d7d0334aa5e9f8f65d6d70189349eb4e556eb01f3ed4e31f0e6f4b010dc18ad98ea58cebd0fbde5abcf4709651fc0ea7a37fe4449a70ef684ae495155da5708d4bde9de632b69cb19ca942738b6b51d47d5b9b7f6bce01707e4ecb2fef8141c25190bcf807ce0fa3ec6e0a3b2b915e58b4e90e4810778ca99c2db4fb6256bf7127e5fa3854913f2c88c17bb9da88768779f7bf0a6f6c30f66f4f10fde443e802755f96cae6822d9829916477dbe1c77206aa4f2b30224bb1026112200b4b3869cbb404e113ca89f7ea50f2b35e529613f932d6a15c92247c920794a76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000009d0a155bf9285d044df0fa357673ac1178c50e447f2ca83606645b40bddc5744ecfdb35bf610a54132b57543478af1653bf5eb26f859e83c8f4bba2a4edb087565fb7136f541e00eb3d6f03788843948ea2d6f50c436401bec56f41e2304e54b3626e947dcf1b72c4c6d206d55771038614dd63170df0a3921c05118bb69ac66d344430b4bd16e14dc8cc6006f853c282ad0392add408d769ee931404a59a8515204ea2a042d13013cacbe1da10a113c151c4d3f27f30d69c058e10cc50e9c23d6e46a0642dd112dc95d780df60cb925f2a3404c1c7fb85f822cc0565026ad5401df235cdef23b5a2bd943338aae6c344e344b0a1919c00596f9722b1d90aa73af24192f8162ce5fe0a4735cf3129b4d031b5f040ff76a6df5575e6e3cf13e023323cb3d22049e6bb573be00eb532109b195053f7377a85a91c65e2ced8a9f4463b56f6c4a3c5d2315f7851c8242a95ec9d88f60aef85e0252f5923e85d394493da9c24ff48e640881563e1c39fb4331b508705f7f266e1adf5a56135d6e370e6746ce0c048d39281a1f6f65d3f175170800000000000000ba361450a15cf92408ebea6c6fd09e5a2770ca33d239aa39927b26002643f82920000000000000005bb3273ec3d8d17118c0696eb654ff478a8528139ebb256fa2737d4066639007a043001762bef17186439d1be48b304ee26674026cdb8849cf464507f01c1532963c210e8700254481de381d11517d2d1fb893325fd6b1188398a206bf2115695ddee02c53ac801e80dfe22553ba952b343f266b8cc7fb76f2fc0b6f972ded382000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b08000000000000004da7e220c1e83f7255587345ba34e9146662f41fa2949b24ff92a040a66e5263080000000000000077d52008ca566c5e8ac86c63c352cf18a431df1a8c06f454ab1fd6012465521c0800000000000000f6a276052250606b12173f14e4f1a60ea031933e73c2f118e07f0b64794cf401080000000000000021412014e31ae45ad7ba750bb9158025b88f910f10e7425daee57c472e8fd8290800000000000000fb5e4244f9fb9d515abf12557436b235722d2b76e9791d65dfad0e6d3bce15502800000000000000bb478a0d7c982453857ef2215cefe45bbecc8f30057d3549b19d115f935b212f4ac5f347ec75e608e45d712a98488b23f610a30f551ed8699bf4fe63230cd808de5d3931a7f59c2b36c66f7087e4b97469cc273140535752b1ea425c8b4f9f2b227ef23dae088d3a8ccba701197cf15dac3d4c1d844f1d1b565cb846d6455b506fe89867983252775cae995f38afdf1fdfbeaa715b1c4f4ffd23d7541adb681111000000000000009d21b398758df424c5785a8bb2eda04b5f1d88d413335647fe3383eaa9b6660af758a23df5281ffbc6134c813511f1b9368a537ba4c8bcf496b4acdcad8e6e5f07a9736cf5752047891ef3d386322920ce24e3945323d6944f393d56697c426abc3fa96a665dd20ea6cb066c8faa004f82a51ced33d22cce17f0d52b5fe0a34a62d8bdd64a82708d83c2cd8d8af5f6752ca95b74179aa6a43ddef6b0124a81386a317e20b05bf644792b760e771161fd2e70be1b5c7cb77fb00b1e8dbc5bf0e3290e4cdf12316d676e7e3410ce9c08fe6ffffe85c519be6c127d6dc63e73ff01ccc28ca45a9e42731d2c7ac11e81fd69a38d8a082eb98b614bea93b47499e6df0b07f4dcec502d2dd8b4f57def9cad3d9bff7b30fc2d9bc69178bb19b7a238c5107aad215de642e42dc548a482d460cf30c6b5a6d6af20dda14e1134f4acff087ffd050a68e37f1b5169ebda899dfd4c2bd9ae271d5fd080583aba98b5966d6d0c8fab6e84239494873dd918de95cecf6235a036112b239c7fa6ae5749ddbddda53f2e0278bf44eeadc289d4a7e0e05ea19213ef5ff45ceade02578c6961a2a5f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000506bf0480b887603da583542c5bdd60c89c78c3de984ee5c1ae78e204d3e4e6308000000000000007adc7b5b2b18d96e6d52e32d8e42e61262d02513ecafa44080099005514561130800000000000000da62ba47529f010d3d6f2a2c1a17b945084fc50247e25d54661e803b5ce8434a08000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a244508000000000000008c2c345c74e3ee63b3ea4918fad8026b522b456dbb0bf5340f49ac196668da3d0800000000000000ac7a1455fa766b6ac85a0c111054500a7036864e9894985c42ad8e37f8d76d250800000000000000bc76e231e7584e6e930a9f470c68d6708709ef33ce97070b5ddfbd0b2c9bb93c08000000000000008402e94fa60c396c3bab06639d7e9f1770f84e0b99df0553c35c4a6c00e7ba1c0800000000000000d76aa3019cfdf005dadc5f7431ffda1ac0726a5d82ca7111fa748310edc56a0e0800000000000000745f174f49797e61d8ba1e3a785492423dd3181d04b5564d2216591f13d72b4d110000000000000026920c094afc82ca62f34bf28d8ded54a7eb3b8dcd81f287475665a577b27528d42e3c6d6ae3174eb06a2a01f39a1420664a08abf8881a220caeb6b4cefce46fbc869cde777b96f73c534d09819799fabf570a3b5ec4f5ec17d1a6bd4fdd94dd0a16009cdace14abe2646edae1ce09c8b46cec576dcc36380fa2c49feacbdf52c247e846d3a9734de17aad9f66ce86f57871ffe7af3ca38f3f299b3639622b412185cf876da442967b5937c338687a2ca1c43ba35c33314b85ba793c279aa384c964213f655f97ae911d9535e8a1981fe73c57c763870b71ded26ed30c408e6a998b02fcf839842f678b9b6326e3ff54149b1f89f5eeef40bbff90ae3708739490d0956134e78493733a2407147f462c69331be0c7f64ce6593fb2e0c10142c21ad4ada92dc4bed3f8fada2ec5da013da877fa4c7373d1c59172baa27e38af518264fb5b296d3b6197411a2f4e6794314288afee1cfeb512fc11308845a450ad1f365e964b6298a1cd0a5d4705a95621d8dd1100cef9995b7f6e45d218e1398ac95946338bd3ab7de5a89c4f17e2f19102f2fd033ce6ce762f81ab0a60a19dfc7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000007cc9438ae6f346101aff05cb41644070171ae67000000000000000000000000d83dbe3b3fd7d15183b3184083b318407df71021f6c19a62ecc12171ecc12171dc90a24ab8c5ea2e198f712400000000e179b03e0000000000000000b258b63da037923b00000000066cc0366ca59d56897e5d38000000000000000090139d7363e475439d1ab413091d0e65d93f291efb336b3fd404b5497c14e6687ff9b0011825825d3014496576403d306006ce2ef1a04e35ae232b55cc954b5d1774614417746144cc954b5d82c05807dbb2911da154850d112a5452a0ce314d5a12592f8911fe418911fe415a12592ff4e23f013267787740d6af31d7c930540eec67404a3a1549ac1ab32cac1ab32c4a3a1549d871c8151d115071a95dc94e3a11fc4a00000000ed744b480e54a82f68d2006205894452315f9e2dcc82565a16a0da5cbd1b1d14bd59a9202350315c88128524f49a685ef49a685e8812852454c5244e08c14f4f5842375adbcd7f15000000000000000000000000000000000000000000000000000000000000000007cc9438720de70e740e27470000000012f16a64c6cba003196b9652768c9a6225000000000000008ca2aa49e8b1e74ec09a257600000000000000000000000040dcde08962359166fa1d8466fa1d84652ba455d2912fe5fff69265be2ce8b39503ca008320f476550f52b5a25da8e5411bb9136000000000000000075a192194a5e690f4f391364bca9b40776aa9d35bcb8264d13b3045a55377d03823871621dd2506d1006825ea98cc62da28fd764dae19c4df3f8926d258ff617100000000000000053ccea1087bf3702bebc466c1f75ff5014ac08109faa491bfcc5690cd9e72d3813b5640c8ec26119b4b5f75e59f8686927fd7477774b6171b895c1356a34ee53100000000000000000000000000000000000000000000000dd214f0a000000000000000000000000dd214f0a00000000000000000000000000000000000000000000000078c8935c0f0000000000000000000000000000000000000000000000a0f55a100000000000000000000000003838440c000000000000000000000000000000000000000068bd16044400000000000000ead5f957000000000000000000000000fccd5d2b0b710f4400000000000000003e37895b00000000000000000000000052490e4900000000b0b6f12e0000000000000000000000000000000000000000b0b6f12e8a376c1ba5b39d0e235e041ff9f9ce6c00000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ead5f957000000000000000000000000000000000000000000000000000000000000000000000000b0b6f12e00000000ad95703ac811a22d000000000000000000000000010000000000000001000000230000000000000059aa8e43000000000000000000000000856eea067ac3dc4100000000000000005083cb5867a43f290000000000000000ea047a74fc57b26b00000000f6019d30000000000000000000000000f6019d30df06172dda5ec920da5ec920443e732ea70d4e442d3aeb035ca6335b038d33500de88550db68614ccc75d20082b43a550000000000000000da5ec9200800000000000000000000000000000067a3e931000000000000000000000000000000005c1b09520800000000000000df85af63da3023776f86a807c8939d77b34ba161f537800fb57bb10ddf85af6308000000000000000000000000000000f586e12ba52a0867a752102922f40b73e43ef95fc77ad777220000000000000065ff5a4b5eb73a1c7c6fce5f8c43721bdf1e0a35a0ac103b50ff3d61d601fc7538d1af42d161044497da042bfd5cce14b54d3e6c06263d49d527281365ff5a4b65ff5a4b65ff5a4b764e0a11764e0a1165ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b65ff5a4b0000000065ff5a4b14000000000000008670d35b4ffd3710bb283e141a45cd575f1c8f4359cd891ba57cb56cbdcbf5579930fe181f1754248b82a803fa253b1d000000000000000000000000e6719130eb6c1e2e000000006c1af33b000000001100000000000000c172738523e5a525823950a2560e3ffbbfc2984022c07730fc2bc91ac34046f5a9a6f32019a2e1e1c95f87530f2c019fd70eb4e2955ff9cd84e023c0eb13078f2212a74a870e07e0e6f1e1de2eea912ebca997f57f5e6d024fe5e22d286b903243d7418d10ebe2f6a534f26b491b085e2069a894e824ec4cbdd48b2bc4bade51247c48ab4b0e2130cf5d949dc85b523e4d15ca449d8050aebd5877fadb5b5d18215c0ec0b54fde262381547d552687de4a257449a183ff98bfb16636e20a93cac35f035414e91f8652c32be0d3eca867a8583abc19e4a93259c9061b879c5786a420572a2d410fb64b3353a19b1800453ab03d22dcd907dd834387e2b80df64fec065510cbdf9d232aef35b91af70c7a3a16728f92c2e4ad3fcd1f15081f5c830475ef7defa0d08310c8ad713c13cdcc3438b5b8cb5598507141c3f6c2e99ad2be316e274f487008bbb200122cb8e0a824a3f037d59514794cfd4932e41143db8ea5216552c4c1f73520aa31d858ccd3b4cf6c963432367982f806f94e8c8a6ae06c26ada2eff4fd31e9af2fd0ebb2eb237f35d6232bd2af571e8269a962d899dff0c435891ecd3af5618e21afd31d8fed9da7166e02af58b5ea15f3422a2b75550498ea81e7110350f97c07cdb6ee33ba5727ad79e3b7211ee13b970b97455cd8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000004ac6a81c4100e951a7d90e0476bb6d6352332c65f9433062f67f29511ff496408d9ff16666550b4b0b266d66bf44003824fefd6cf12a6740818528120872ed48b83d146ddf72034f94731963e7f63c6dc583516c00de533ed5aad7448fbbb26c988e1d208898524127e7785b26fd8e33125bfd4600da0c1d27b61d0e5a17f9721bd87004e2850806f10f604e1603d60a89b5ab2ea7147426ddc466372fc04d118d78974a3b333e20a7e35655cb13f13806de4c66b76b840239edb3170de29f74b9ee86278839795e65907967d35d752efa8a1314546a643932705853a8ce7223af58460de1aa7f466e2a496edd32f25a7fd6233c06a78825d5cce303e2865558d91a136b81731d1c4981252933f72f24d59e185e37cbc34f8067d264abc72d4df39cea442f26ce40b1a6504aaeace102e9c71a419758b43905daca27cd62891cb277db0c3d931228903e333e18245168053f9643cfa1e50bc83d17075fa8e87074e52c2384796e20191efc31e6e93d6fef84fb4cea3f673582f1c831388c7e2b9790d662e3893462cbf9a24a1f2edd6e0800000000000000b869a73b108e2b3ddd46445889aad46e78bd3e3c053d5373b668621b99f49237200000000000000066af0c2e89961b36c655514a6dab7760e02c5a6d74293c08ec31ca0e1a7fdf18ff783454597fc805e3203f50bea7b477e6ca4804ad44c1150843c52343cb10615534a8671ccde8214c3a0417af4d3213cee1bd33d5ed1a377e1f4e1ab0506710f41c8c47cbece7663d700670a75be70c597b064260555a4c375e2e238527c2432000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41a714fa481655713abad7f117d1fa9721378c9c25371caf6ca3764d5ad7dd7f41764d7d32609fee2e988b1b165ab062618081d65e583ab96b29377023e75cbb1d1800000000000000954c671a1fa53023cb341b5422fd094f50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d5e3d4f776014b456c7c716772a55a661cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811eb7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f05b7ecfc3aa4d03f7710ee915d70828f056710786e7a49413355d58848055f6b218d91d2067a2b6e03a8d6bd5926a2d555378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f416890140bb178de286610d9129b00e90f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419d7ec54161c2a60dc1a3ec155325430af3ba4c367ce9fb628afac41eceaee50708000000000000004172c27120208f3f2f557a3f3e93a43164c87c44be1a303fcae8590bdd6237310800000000000000a9fdfa75c0a449083e2fbb4685391b0690a9ae66433952268cdaaf481a6c37640800000000000000a9c2c06c4af83f0f59323b588ce8c8380a7bd63983add42af627b16437f00e3e0800000000000000d3a56d4e525c7b3de953747467bcaf3525fe320222d4d06f62597838268781490800000000000000f25c9c60fdd0d655dbc14000c5cba21da2cc3c365bb3354821f1695dbc36741628000000000000006d9d5e394f0f285bf8f3ae12d7296869ca334b577227ef752f5c2e53fcacdc62926ea3268ba45c2380b7f1542c335156bb3acb676c1f8b70deb772673421101cffc89527ca6f3723ebfe30194ad4393ede0b02507f32e82d60bb6050e96b08391dc8545b611a3c3576e74f53cac1974dd40b5a26d15a7a32e439541d990ddd57da26c840d043331c5fa3a71973d6321eb317fb207b7bc931a4e84f71f859d33b11000000000000003433256728fbe3eef2626d6051b1a12c168b757fb0100f3ba743107f8a16ea083a51f64e98432709aeff03afee42714d03753e8bc734376f4d94d02e01f8be0e6db965839ed8b55b3fde85716729c2ea020a3147a22e09cee12594953eda0e1f0edf2988854228600841c4c7627c86460b0ff1f99f432f487f879f43373601fd338bfcad9c5fe78845cc703510ba4ca7a76b51b090eb16843c9d0696c7cd1e00eb6a06a311a5a5434b42facba4b6259186905d51e0c6d04edebc5968e1f153fcf0b00c4a363139313a8471558324ea2befb7fe221b74f936d12697a36d7b3787d451c71c49ade85fb185465783793b0198056f5b0dfb77ee9629264fd55dede30f497f732d6f2217f374ee72dadae2a1cf7edc4aa293c7e971fc559b943fe131201a1c82108a3e47acf4e86a38c93e45363d7044b651cc362114eb71696195d93fb742b9d0321b23e581ca255de85094390e1c46541ee00bd79c37d5b1560b2a89c2c95ed31695cf78790e653c0d80bc4ac59b6505208ae1625191829d763b3c00c4a5019f7e396926a9583cf6298006a6da4fc77824ce259332e3a8b9b3c0e402eabe0bd3f9e8eb096ee842351c1a29523353db1622114f31d8d5fc84080a2202890e1400dcd464883d83e28c7d36d9e897f101e636cfca3889719cbe9f6b64868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000fd36ab2393b37822b84f8762530a415317c35f63f0f0db5bdd777d31776d1d0b0800000000000000d2ab02012b290853846b3230a937c53741b4ff0dd2d3b46a72aee92f9768423b08000000000000009726bf09dccaa976220b0659700c575e326592127c7d2d2362c5664f46354c2c0800000000000000eebf9f19ff81a15b2f2578128defcd282310e35e6c456e1e59dbea5a30eac84808000000000000008a11ae55926acb147284b31fbbcd7273376b951b3b4cde7062830139f2e8ac470800000000000000dde7be2b66c2642196d8ab3fb1742d14ac985f0cba225b3dad2402644b9a24450800000000000000ef8335339c4d425aa4677622b348ac3a0d881d3bd03b146aa10eab6b0805205e0800000000000000b8959433d164075570de8175bce22a53fe25c00556236267ef29ed76e34338490800000000000000fbf1a1025054d410e586737792e66429cf69f646049ff83e94d74b3f2169765e08000000000000005a490d0c01596a4028da5d54663000167ecdaf57f4981112befc7c62016efa130800000000000000f2b43c6d0af42719be0bc33201a181255f72db59c2198d2bf458044d8a8a7d3208000000000000006f81474d076d914db749b42af2267a41c3e50e029ea59f542b0eb600386fe82b11000000000000001d1a816f634532e0756b0b3aaf0622fca250bf2937a3635f7884615069e1b4dc5a8d13a32caa17ea39929fc80b56f5630e41aa6b995e0ba4b5bd3f76b116cdabb778ca61aae8d90e876b7015695f232e1a25ad6774d1f748a978d3c28afaa94a8d4667b18b25bd1728c13a7fc671d5dbc6f64ebef0e2fa25554b72efa63fdba4f44b301ad423166fa99d1835d513039ac31fa2a190ad29695e45b3d61657df9229d467f2555808f4af30664fbd1ea60697875605f088b4f16cc59fe779872a0ef3b3fa27b3d510ec5c02e1dfc5d743fde144706e80f6046d846cd1744ee180609dd54ba22461edf82a3e862575fa33187734d05b16e79349a2d6a5072c4501608348110038868f03ae31c7869ea8f9cfc8c0073925465ce7c4a2dc0c9a6849588d3c88858d06f2c422dfee3e93b3f678d1c2d0a6fc3b247c0ac75ecfbb415d58aeeacaa84e8e36fefca0a3a06e5b3180c47cb87d36c490c749cbe4a24e7d7a3ce7b0818c44fc1c4a7bcb1ac7b09c17d109e97f116caa0df8f4afa7577839e655aa7df0fca628d22e548fa6a4bcb4149c655963cf27bbb34eaa7f89eeedcb2e6e2e30e15beca868d460190e6b472403a6b1f6d011bb1de5f9353979938a50c72d2bb9e1e4157e43423437864e6951c796011dbd7e255181d1daba2017f7947ab0f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b0000000000000079bae3128c062d2f42d6666484fdc316e48d0c6d000000000000000000000000d6185206ed70203a49bfca2d49bfca2d0139ac5edc65b32a7abafa097abafa09b442f7762427641c02b5e82e00000000dcf2a316000000000000000099eac059d2601a240000000040f3ed182cbcff239077e10a00000000000000004dd6de2fafb5293ee129df61ade0936d7f1c471c89451c6586bba36c3e49dd0be2527a4ee3bc8006e2ced645fad17c3f00f520166a061e5f1180b3067deaa206fb172f63fb172f637deaa206a286be2a55223a54cc2af02a99b9331fdf33ce06b7a743396389371d6389371db7a7433947e68d40538342558047756222114e0f9b88383bded89b5ba553fb15a553fb15ded89b5b446be82fcf30665b6e466b27eb6bb06f000000001da07232d035f93a38a2a958c607884e3da8ae319a92e8472649cb0ef1e86a660810101a158ed52f7bcc930db8795201b87952017bcc930d87927b3412745211dce58b0b65b39643000000000000000000000000000000000000000000000000000000000000000079bae312af54f50a086bf41900000000f89a971f6fd59e719eb767097ea7b257250000000000000048bce51c545de50dedd9d92a000000000000000000000000e449e9596f266b3008269e0108269e014a3fdd720fcd931e5c8b9a597be65504fa4c9016726d103cf8e83205bc344e20cfb96f1d000000000000000052b13b0b0c2dbc473683742e791ff176816c1469e3a06b46cd8bf05803ad526f811945246352493b03e11e21c01a8058e387404039e461248b6346026956281f1000000000000000a575ae42403eed12af65f041a56c911eb68bf80c265c612ae437fc0079f4a43a155d7609112b666b22b91312113795581b7bda2d77c260302ba73b695a23d9471000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f000000000000000000000000000000000000000000000018bbe155000000000000000000000000524c69400000000000000000000000000000000000000000c66e7815440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a0000000000000000000000000100000000000000010000002300000000000000220c6d370000000000000000000000005e8e260af635b016000000000000000017264c00b257c16900000000000000009edf50170a50842600000000fb0edf73000000000000000000000000fb0edf7398ee2f13a23eb439a23eb43916e216150584c257f53b1450532cb850a088321d47e93b26bb147f342067a463803247020000000000000000a23eb43908000000000000000000000000000000fcb1174e00000000000000000000000000000000ec33651808000000000000003c350e27b41f6860fd4edf6ea2606243a6e0e20b9de7b503955f62403c350e27080000000000000000000000000000009c05985dee82631eee2d22321bfe676c32cc67609470443c220000000000000044ed076ecfa9f1580433400058deb22010c908610841e35be7ef8035be316d6db6784e3993c7553ab93d1f394c4ce304d5d442040ef85b1f3fef831344ed076e44ed076e44ed076e0afad73c0afad73c44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e44ed076e0000000044ed076e1400000000000000568fcd6109f9d730679d2e0cf7ea760e904d480257eefe0c7f7ae526c76e6167be559b60a95a5a30384e6706e3ecbf51000000000000000000000000da8a115c5d66e361000000008c203f44000000001100000000000000c52a4f52eb59455d27e9352d2b026baafd303a21912ee88a6dc847a2c4c6b1b154bca2c155c78c6d3d257995bd1e6efc325a4fb1fb827758f7289df7fca573c69d84b646e94a0dac23324c1b9ec7d0bbc5121a63e1a6d548624478779e41ea5d371855537dc63306fc4b4ce009477b03c9e74bd4cf8b78a4bd4dad2dc6cf5901e9c2088a00ceee06cafae1ba5c077a7cffee0005840a5ebf8f1f235b992c0763ba97910169d5c13c27ac68cdc32df6bc9003e531475327fc271e9f1962853046806d26208c930d5953ed64188f409d7ddbdff042618a443746687a3c49fae144be295357b78c10c4de9abe4c3b3fafc0ecf108285c15aac3f774b7d985dc7c651f52364d49ab039f334b092fd7d7753e518d42002e7af64d4fb92d4a010e8e3d554b30e7981fcb09c0e9552e96c69a847f6159f024b99eb633f29c0690c4503af26e7e8723dd70f99a3ba94ef03c97f184c2c7d43033f043a0108f2424e7a9b2e155b65c57a03d62438ba9799b9906b374114999cdc06a0d3893a166f13171890f6a600803048e9357b20d4ebdeb69556d448d14f346bc17ff5ee8cc573f6fe392b7548b324b0510ae9623c9e48ee6bf8e72c47b8843cddcdb6c622c7304487290eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000d394c87729de223207a5c30df8f89c2364bfd31e9acd7609c7ec6c565a0d4a0f451707201fff855b85f98563a3ff3e063470be2d5e5c643f1e65195e93ab4e2cf027df1234d65e773c0aae32f02a402b1387043809712b3e04c1eb5c09c7c0537d0770323ed2df7247ce8324224b9103b161e35df678dc566f0b6b0afcd4aa1ce9dd7a605e19103eb86f6f171a42d40f4df5f6300e1c0b470a5c8f0d22c9701156a07723a9b1b04dd1c0543cdd10081b393aef251b729331cfe3c84cb7abf560626dd718bf74f22b7a9be71d9d316a2c9463e5721dbf327167872e1160164f075b4b590cb7ba1a20956963779f61006bf60011189a331b1561b2426b7ca61d2790033473110f913e500be33c5c362f005f083420cd9086453d9aec3a8b29fd3cf9eec817c5a7772602165a6e48006b4446bac31a40bfd0088adb7948ec51005895a7956fc847be68b16e011c53dc4e393e64ee4fc8f1a754f4c32014a1cb135e04e7173eb7804526b74e81292587761241c9640c97ee561aacc2451156788f0493cc7b1a89625d159872d77657ab25300800000000000000a1a3d629903da2530b4a0c09d44950530e92fa692ea623521a470e01d350ac1220000000000000001c7e162b57cf142add957f3216da0b1eccef1414ba5bcb30628c9e717d103545152dd22b6ef85528bb357e1e4c25a708ea556f666b337b41a2f064570709d449cbf1ab5e4c60ca5a78add417565299267c57a5131c1f6166e4d116721979cb4f3a71474c56afa1067a3baf48cb4c48676aa50f251cb6665cf4ca2c0837acc82c2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000007f3fe507de533a3bf993897013fac85a50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200ddf20ec601b63e55e5b36af197d78313ccf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b3000800000000000000865a3741a5d4cd1f5642ad047edcb8182daf2e0e7300f506a974e0485bf5af230800000000000000be0e61763c9bd82d12b16642fc24cc1c8c868a12812e3005cbe10b542b8a34690800000000000000dc4d54542f23453b962a05010bfade2a7f92017696504a61d8d783128a81216a0800000000000000f16470613a3f7e3dc141d932ccf7881cc3ac00254086a23a602d3a2f0608a157080000000000000019fc992545868928c0d1a2181e9d10654876343f237bea345388fc6f8a58fc3528000000000000002dd1d407c7b95a05cb179831f7a4dd0b66cc053f99da57416ff4543fc7dbb339c1811770fbb0a6707eb6a61fce34326ad7721f0c5670e9762e5d26657fe4947331eb7c0b90a8c043ff1d224220352a187354ff107f79b90644a8351edca0c71b363e492e969c6955ee0ec145c85feb5e401a3a32685ad30adc235a325962cd61dd13ab2656ea06152a2e3d2c7e7c360aed712912d75327395836f85306f039001100000000000000dbe9afb83bf79ec7fe6c179f123586f407491c016e1ad301ae922206d774ef44d93e6d6ca703019bbe1253c5586697205ee234a5432f8bc529c53f6858fe8220e4256be765a95605f3b436b58951e0056800f0eb5c9f01924adbe972b60c33afdd5590b7f0f3b59ab6545514ff0f48e4f527e857c9e1298d1c3e343189ba3596a3966e622921210cd38f99baf2b0843df45505e8c9b92a5e20a2ade1abdd037efcdbb66e943afe87c5768ec642c28e6755ae4cda7111ea2e932033457554210cac2ebe4cfb3a05bf849ec28da16ccced6c39178c723f4b76a1ac2c00940c718822dfde2e7bb81752c97e30d35b423a7c5df3646ad3c518f051f7f0157a9441f536f869b658edce310d77024f044012082f4e1918783cf114d5b58e3961945728a386b45f994add91ad59291b5203f0181359fe9163bba784e8cb655415d8b7f2bc547bcc8e615952d6e4e329fd1e5f3a30898bce49d0e4a866495f0e61ea6023438737ec1b46d6f06ccf014563f29c98702ee686563cd431c2534c459aa73ba7949f7f624abe0b413c9bd85466c92e933c280d1f65acab628ef514617210fb7b9b4906fad0f17d2a0c78168b5dbf085602c7da96263111f90c135db964f58bd8268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000e7164f53ce701e061649176edf5e9d5a5dc4ed269608b00b7c66a2273a2e5f10080000000000000024a7e56a64576639779e15400a84454c3e79420d30a49b274ddcd36253ff0c3408000000000000002e93650d21620a08bfabd100a22bdd3cafba9e4125e2890286c7a96c9deb346e0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000937f8b04bed08e506a87dd0fa4f42d53ef73086fa64cd0143be84f11ae2611480800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000a487125ba3f4b44a23c5bf5019e19771633e00764a7624151e300e03ec4b5e730800000000000000bd77151e1fe19222755463743157da389552e801a9a51c34de08c65fdd1eba670800000000000000cb4d25738d1b172454b12e55b44a0929ec043a2079ed4c486353d8215d1fa1570800000000000000a704005caccb301cefbefe38bc7d8d0cd3dd5d1b40dc2e3d43273b4a66bc19480800000000000000b5c6c71da63e79415c620f73e64f6a2d9383c66104e84b4e52117c2ace66692f08000000000000005d5b5665a6ed483f9ca85626cde9d33e7d753b0ea6fc965e92eea935cf4b1b731100000000000000019b37b4fc3197c7b06afa6fbeb25c2508bee2413f457b05853a55be7c0a56aa99abbb6d3f3e1b985a88d471103c115a69125532a4df717490b9462cea775897e33cc5967c48a34915bffb3cdd2da4209f4f277399cac91f9d6e5e3676bfe1f6d04a160ac319b9a4625bc0684b7235bd5c909c9b8bbaf6f003050cd747038956541dc742a01f0be12e7742549270a619dd9d45e7cdf82f09225e9773b5193135feca0a0704cbb4b5324e42840161d693984dcce56735c13f0d53385b7ebf5421a896403a8847a6080c24758309e447e755c16c8adc763cc788d3798355b9707071e52d84c2590b84c0054338dd18db02eedb2c3f5609ceaf58ab7c465d9376c931f26b460efda7e79a39728429d3a3b4f7b55bdd2702c80d58a3f2352a2d7337b843c6ed054baf08c9deea0aa0bad3ee4925659b3d936d0edac64147371970a11b1050d519f4e191998832a6ea76c7ccf7f758b1a8879e5b433cbad874812deb2d3b1b22412c34145c264bad65eee436265b7e9987152808254a4fba9383fa96495406b3871e903e76896c9557e085730b5b330365a9197eeb198715d098deb90de8ff1d944e658aee6f06a32d6c50e70800d1d6977d5adec164adcc7a4847b775876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b000000000000006424810902e2cd32a410853729128d6d6af6226f00000000000000000000000032b20247da30ca3178d78e7578d78e7559fcb214dc878e72a18c4d14a18c4d14ec7d8144e2af8d498b04580900000000c8d82c4800000000000000006157c367bbc5760000000000cb597e2f4b359d4c88755768000000000000000042e0f75289cc7152821e564c906e7c26bf3386279edb7e6eddaf74678a9e8305e5808c63e6335e42b1e4102159bd190e3bead03e348de33bc4842c5a6626211762ee2f1162ee2f1166262117ad18902551243a3eb2f733695df6be04d34d9f3a80b3fa609ba468459ba4684580b3fa6040158946514e756c3f46b35b8300633a264d3f432050722e26064761260647612050722e4dd13d51fa80bc6d4e87e11e5525ab0e00000000ccc910478dc01e31312eda2159bec604d27ea4708e442a0e0188d80c55882c3ae38743150b1ddf398b54591215165a1015165a108b54591236ae4a4e1287e2360992615b49bf1d520000000000000000000000000000000000000000000000000000000000000000642481093067cd636cf09006000000007d690665ce9e69530f3fbf777a55bc722500000000000000c7573539e5bcbc2c1cb13324000000000000000000000000a7b9fa09e6221c4a2871762f2871762fc0001d6bb3aab768dcf831080e56bd5f55f12a094472c13494e2af75bef3210cac1e421b0000000000000000c8d5e14e1fd3ee35c49a2d62f8e09b5140bf1b40ce61ad075ab97b47d39a1d01d65a4a23054153169ca0be2d4f0a1c08d607b763280e612d8f781f50a8c1f94e1000000000000000ae28c64604021355824daa130dd16418a9c8e6121bfe5331173c456f5387be728d94881c3e66a43c43904e1d344ad07265bfa1413dffed4a3399b8031468d03f100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f00000000000000000000000000000000000000000000008b679b75000000000000000000000000a88d343a0000000000000000000000000000000000000000e3d9663b44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a540000000000000000000000000100000000000000010000002300000000000000e2cc0f620000000000000000000000009b57f84c02c79a67000000000000000029bd07494d7f492a0000000000000000e8b85e1d522c574e0000000082dfe81500000000000000000000000082dfe8156a984733bbc49e09bbc49e097188de6d6d28f559801dd93f82f5751f736625108ce72e766135a80455d05a0edaf78e1f0000000000000000bbc49e09080000000000000000000000000000007fe6362100000000000000000000000000000000f6c235090800000000000000ddfe2f22c97de556587d796c2846b777ee1c615183e8593a5323103bddfe2f2208000000000000000000000000000000e1e4673cb53da61e824af655bef6fe0c5d6f251bbe50891a2200000000000000c7e7ec7376f3c0216e2b58062ae1b232779db8246b06e25bc7f7c434ebd965595597ea163ebe980037cec52ab60db55d923cb3111b2f1934798f9a16c7e7ec73c7e7ec73c7e7ec73ced6c64eced6c64ec7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec73c7e7ec7300000000c7e7ec731400000000000000d4882f6d02d281064e6cc60588eeea6d3a8224681e167a583c1a520dee97865d3d9b5a5fdebb165b1aa50a764f72ac23000000000000000000000000774afd3bcb4d771800000000073039280000000011000000000000000c15eadce190f81ed49a99bedca6560b50ea156335a04d8ec483062cc1f9d240934d8b29e914073bacf65e0c51ac69fdd9e4954bfc7b6b445fa9aec1cb011c63ac287c492502136590a0a62154287df8fe79a6b858fb9fb3e7f21aca0b5df97d65b0288701692103d4cbe42490f1901720cdeb8e96a317dccbbd27e1647a4673f25c87b88d63b13a6b6f6752f183cf3178d7c194c37606971999566017a928b0e3701f3f0de864d26575d027e650af15d9f7c1bb367e6d2027fec40010b017f8c70847702f00909fa329568f197d2cd5d3a1e3c5d1c4c0e311c45a69265b072bd71d96d729f00b7483912b353dcbad1555cacd0ae1054f6870f3700fb1687a481e8eb0b0843980e0aeb74de5429f47bee14a6660f39c767f8c7f6ba2a2fb97fe2259532c8c0bd5cd515fc6027b4dcc1611d832b8406d4b71b922449303d10f38b3549e67ef46fb8460b254efe2051a759533aa48bc3e1a8a6df96a4cc306f5a3ec0fb96bfaa1c48272a3ba1e39befb5a82319d2a2215698963ad9f6ea239c629937011d2653fb24022ba4f649746acf6f19f78fb3c00198a9dd281125f57741435039e56f02bd36f85fb07fee01e423c6e44e056f8a4855de67549741647a6ad0948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000095886f418a47836207343e5f39ed3b46470bc523b01b22477363e54535161c59c4fb3b6f0e59f47000417f2be52e8365a205fc75a0b03174afb2f86102a6ba39495af168af985c4aa6adda64b6f88f6b3679a816e77e5c739e5e70172e241268cc81185529f47e102b64106461bee43d80efb749a63934336f04cc4b56d5ef5fa4c23f4521f6a510193a3a3f52841a301030cb09c214b51977f68237624ad32bc2da8c02b348ff3138831c71466d3c034cd50a206d9ece370f85ee2b11dd5f1b91fda752a0bc5c2337dea0595e4e8d1b698e0f4635df250c6557b6672b75382cc546d3631b7fd421772b486f3d29a343d9838323636e0d58c1a7f2774dea3b638c7f680c06b67c4be971de4a401e6d0d2b1eb1414bb7c07397b21940da79660a55960f544bf0b1739d84f6644074bd3dfb89ed0ad595ac27a31c6e53827c1f4c4d7814668ac2fc44f55f2e35a5e94c72272a5d3c6ee98e38c3b8b16602ad44501e174f678f046d169b6c0951c702b5579964834807dc066c1836cb27da472a1d88fe071f00f4c7158a3f895568bf622f0800000000000000181e3b1fad420f2eff386328c9293d7593aed54ab02054693de69721d7bb140220000000000000003c989f6a38cb7805d3107b616da68a4d8ef3fa172b88b02f106eee5a2ae8cc73a4fd6d2cf4c3cd60d4107f07f07682225911e33694e3aa0e86beca02c3cfc21ccf845a64d803250152a9ba75f1cc0953c13edc04f4fda82010501f3364f4bd0652fa2812de8ac20d7aad7d5706258b070d2f2e28b1ed821ceabce90e9b714b232000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f28180000000000000017d3f7400b7f6b71bf8ad116d3968c5c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dae3bd2726d81ae66a2596f1494f1b634cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000df37c5522fcbf544c29ab13f425cbb26ce5b6144a74e3f1754443a6602863c26080000000000000085504561c96e4d6f61510c64daef4944586cf415920c3b43888d27435bae50310800000000000000de206a5dcd14db0c77dd1e292fd56400981122667a174953bff2b65d57264a300800000000000000d7868f22dfa07c33aa1bb31382636830fdbf363f568bf16e86048b41e5e239040800000000000000aaba882b6fbd8340935e4e7767bfd13392d1244e4e65de588fc47750bea8e9342800000000000000ce6d0c433dee9e3fa7e5f412338e7e6c2bda264892d03f6271e6dd281b649837396d0f49f56aa304bc971818f7b685691883a7744a072b17b8c05426d744f65d380cd62486d3f238ba7cef3e94791e5d386e8c6b47f4e150f7e43619c4010d11d936ff111ff0c842eb87fc476f0074651a5d276ee9c4775db2f6653d29841b365787961e8aaf303f4d3c4f75ae62b92e0fb0b11c96e9e070317332147438e93b110000000000000036bd35077feb00fbaa6db7f7ebca26a37ada28886e60cc9ef9ca8592170276be1d2d6b4f3abf0e30084f59213683b7a263eb85c50acc21fdc544a16d93d5c6e0a3e7d26e7e0a0a95df6a3ec9e765e98bb11f1952ef1efba79373ba4aa716c86506a0ca15f80164d7ca290485fc998015f7a43f2f8c26f3502d1310ae2ad6d5085da002ee72eeeab6b4dd97372671a69c8438d3e50ac7987ab809bfd4affb6825a29bb634041dc3bdbb6be420608022ebc86ae26b06aa73a3bc2a1a5dd76f2d4f18b738e0d08b5f4bd8592a8156b7a2473a898db4bdac496cc30e3cd47b19aa789935fc93d5bbe0c018270f12277b380a02649ea977802c79c943c36ef3678cd9ab996f1528c3cd1523e1dc6d389824117563edd5cbb0ec9d16b51b3a9943c16cbf59ab3ffece6bf97c22b7f372be7a203acdd3d5b4a4e5e3f0a943a79971322164e1a638ca23ad1bfefa4ae64bbae67bfaa83104ce83405b32d9462998b48afc4b6ca77076808e73038f0c776ba601dcc436063a3f58b11b149ddb35317c3ed2983f3d29c3609af3b517626e39a1b483260114fdb39c6a0785f06d9e0a2d733564ea2c9e94666fa74cca6e1f08351a73aab121069e2f114da667d03ff23eed7db769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000a7578526a8b0706001590e3738a966405edb6247340c624d6ff24d62bed3de2c080000000000000058df527353a4055554c8a4119cae5e192e428d646bc0541b13dd2d49c83adb5e0800000000000000259af04f20745a43a64c9429a03ded09a161671766a20113f0ea984e2350666a08000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000df381a571b907d58f3ef814e8cbf872ca51c3757ea877d12c19b6d184b89fd3208000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a244508000000000000008a771f0b77c2655d09edf53a4c43460a0cb6172417d2a66121a6841510f88c120800000000000000bcfbf82cfce754342b626b420803e20d0af4296272f9ea31956bff16cb85083c08000000000000009a7fea32fff98b6d8e6ad772b6d1386b993d7349160e655bc3373d329dc55662080000000000000076e2b777d5ea4135eeab6b345fad900e82e4994af71d0821d268386ba36d101308000000000000001630d41110b61b4916ad5d1a0f25e003624b6077d29aa377374f781b93833a7008000000000000004c33355b0cc66454eb08f45fd593263215b5985c182ce9576cabaf5494f6e6171100000000000000f815ad6f3af638e3f4052259e26d620441b06e1ace47fba4dacc49304c720934f907c89ea2309e39d8fb56ee22d6e3c533ec7238f2a0d66eb9ed839dfae473cc8e3c6cd8a10df0a36484bc2ff968e6c70852e1778f92894f3a9f5668e2dd091d1bc278f7c51bcee555ebed5ca2890fbc28ab57e59c1e94e0c8fc9b6612146fa44a916c5a3473b0433ad64cb4683496f1227d2a7f6d9ccecfc771b32cc58e877eed09f928635448db453e3acec9f7dbc0b0a23ecef0b5d3441d6840c08800f949f6d4fecb9e91953bda1efef002b01d01f50b8e5657a423aae2a721abca36de7db1454ac9c07cd8650f2b0c891a8b9e9255465a996b317ee9fbaad0382bb4e0994dd284e14a489995da2697351b6f92f68473ec71a52cd40cfb7beeb7e455cd6a6eab427767fd180a5d4bc53c56b67d0f9b79945f70a808ecb84d57f4802e190f43242cfa18881dc0b45c5bc1bc14254b4acefff38c717f18d989cf1af24fb0a3c6b3afcf67d3894b39ea2dad630cbb18a9beb3c7fbba8f6f3129e9999a5e1ffa3809d5493bd3d50d356266bef4b8efcf35201629477de4324407a59822ca85b8fbee66e2a49f0cc41433dc658626864e2b4f41b1b0e0f5dbf9a01a45b7881914eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000009d1f7a062385d009fea1281d14bc2b14a7319d33000000000000000000000000112feb592bb57106979bdd60979bdd600793bd6cef43373ffb793c6dfb793c6d623b4232d605c75b3d345511000000005d731b5c000000000000000061f89804e6855c3700000000f0b48c2d505417300f7ecb560000000000000000081efa6f693e583fd0e43169a26403405df6b87065e085716623cc08e66ee269d21d213b5ab63f6e1dd17e2ff6f2ec0711ce51054c71fa0cd1ded2390e8995509fe705689fe705680e8995502c7067460a0844748b6c6f2b972c49367f5eb532bb76f65ff5a96022f5a96022bb76f65f0b251777af1eca3a7231f95ba145720d77af69692cfa381ce471576de471576d2cfa381cbf318266ee09892056f8cc3586ec316c00000000ef28633426279902948e2b75a286214d4144384317cf11533ac20160a15b58418eb582314770e310d43c144a5eb244695eb24469d43c144a5ac6b83a245477671103ac369b31362800000000000000000000000000000000000000000000000000000000000000009d1f7a06d58d8756faa0ad67000000006c3113169253711bf6efa55df917905525000000000000003fa3a86c8ee525382cf7385d000000000000000000000000b1b1c064d23ca02ae2a3bc20e2a3bc203198f331e2d47c5d5009f33360f2b07323225261169a2911eab8dd34ade70f41c82923690000000000000000fcd959082593c75f112b3f766fab602de0961647cf71e3081722875a7f83631aa57daf1d1e2b974fe75e2935754eb0346d1ace1ba3572a409c4a20094db40d72100000000000000091dcb363adbfb7238dc3d9327ff79c01405eb40c03978e0a9255234fda6ef01769b19a57bd94c2270cdeac6b9cad2158efb2ff752529de6356558f343687a14a100000000000000000000000000000000000000000000000526bea60000000000000000000000000526bea60000000000000000000000000000000000000000000000000d59a3a540f0000000000000000000000000000000000000000000000f7708c45000000000000000000000000b954291600000000000000000000000000000000000000003e1c632f44000000000000002366a64f000000000000000000000000c4880e00901702000000000000000000d728ab1b000000000000000000000000301c000000000000d2e3ff770000000000000000000000000000000000000000d2e3ff772d65c523101e0000f4983a549611a64f000000000000000000000000000000000000000000000000000000002366a64f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002366a64f000000000000000000000000000000000000000000000000000000000000000000000000d2e3ff770000000021feff7704b73a54000000000000000000000000010000000000000001000000230000000000000096a87e7000000000000000000000000000181c766ff9655100000000000000003442766f357188060000000000000000c4b80e3a1aab2d6d0000000075cb5a0d00000000000000000000000075cb5a0d39846947522f973c522f973c1823d90e99a96d2df80a382630e205583920c9365d73e30129442a71e65bd540bd8618440000000000000000522f973c0800000000000000000000000000000019e9631d00000000000000000000000000000000d283843408000000000000006fe380358c066969d14b5a00a4b2b00043ae78682208304e5d93b1676fe3803508000000000000000000000000000000a901414d87b7c749ec9c96033a059c4885584835c2d3a16122000000000000007881e638566b3155935c4d0834af6f0e2a839e62c9043104e0660534a55c825067a2d440ce907a089fbff6380ed2263e7c14a662b1ef651613c5b2067881e6387881e6387881e6384d33325c4d33325c7881e6387881e6387881e6387881e6387881e6387881e6387881e6387881e6387881e6387881e6387881e6387881e638000000007881e638140000000000000084803c50700f421ded7b062b071478421a987117c75f943585314f66c2d817024e76632f7077d973c592c2311874e51c00000000000000000000000048f9861e2f26d966000000000870f76400000000110000000000000038edc0bf0d7f29e01b13bf956465cf4d95b1590040475c7630bfae441a0d202920825deaa4f77097651fddb92d8e2012b78557594930ce933d75812b79e34fb0c746cf7565084f2b03a179c0509003d4e12bedcc1165fc8191ac3e2347cdb8088e0e886d80b9d69b6263c7dfc1079d99d79f1abfe3fa94010e43a423f3d39c89b2637f3d73b1db2ad7150eebc933ece83afce77f53850eda7bde4303f55abcaeca80bbb2d89dddbeaeacbe9c11a29d89bd65b2abb65c503dda7f8a8e1cd1286189d2d5d3bb8ee45adac9d78eb3e71b978904ed746a27cca3d526d0a68885eb11fb5b27194e8ed23d749dd52c8e115787576ad68d7226219141288fc07e485cbe71521b8e489b62fcdd8ec93c06cce7ebbf393ec13ffe7817e41d40501da89d29673b18c5a57f74f0555878f6535dd12deb8c4b1bda3dbdca18e413120bfd633a69d92fb824aa3526c803d29cb7f68d5eeb82858fb95cbea995ff9cd148850a3d6ccda0582e4ed0d9056e19db84e011daae7e521638755e045a53538393d117c58868e3ed1b16d167b9d0cdda5cba0980942c9dddca9d647568b2a04da32a5bd2b685da4a1f39f90635b0ea9d806cb58296206a4fc99d0abbd54976cb0a5351a90948fa3eec540189c33ac91788f1222307235ae84080710df47abdac15b95216d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c0000000000000064000000000000008f21f30337702e0e4877f65982967d606d1e72712e6984515363843ba33b4172dda4f82c5c146c4c2e3e4e40f9effa2570500e5fd9090f3e33b2fc572a91e376bcaf5b22b8a32d1fd13e5c5b467ab33c38bef54f745943556058060ddb4d861abd96a81a2046441934696e2218ae41127e2ee71642bf546896dd832e7d38d867fd836a2838dc8c419bf66b0ceaaa9a17ff45e11837601e4c287a5f375382253bc6ae025f23eb5a3be841bf54dc68a6381484256cc3781764a70b012e7843a66a4783a82497e8531b7610107489c18605a16d89543301c40f2d6d644a03dc3452cb7f9455696d453b74e1ca3a0a24b12824e15c1e9817526d0723b61befd5ac0fe5cd812b498904188d7c634126bd19656663ce1f72c171738de90516efdb8e132998813d5d5d1420fc638131fd8e7463ce792757a5df1a65299afd1b8a2cde3959405a445c555f4d6d94fc09bc85604d7ffc10170ec0e30f846a3709cf5b1a71c6192b0a254db9696fafcd47e673f65e34f2035054c1c93e5a0d4116f093b877e021cc652917090469a69b05c6c3f85d0800000000000000c612314bfdcaaa775d3b2a026fe77b2f7493ff09b2f32211e6b5f46ec201945c2000000000000000a7a1db1460d0e9205294e3511385d7182d83824cd9e385566fe5fe31808a6207c425ae7610ac503add037f2b83360130a643635a1e215e5268678d155e70247024c71724ed0ad35e340fa9730fbecd5d761f1e1aa1e9833aa8b536754656563d2467de223c681f3679aeda75910c67640b47374b3062ed69c012b128045be7492000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f419bb37c21f0f3b73f1855b92070d82167378c9c25371caf6ca3764d5ad7dd7f4182745d3531657309a8b0355cc3c8cb0003ca5b37649bf64e93c8e74c84a30f281800000000000000b571ba410bb51106f8c9e0162ddd652550323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200de47bf20ec4925c377db8c531212f8067cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b2d7ccf2293068d26e23fb2123429973b05785e12f7004773fc304316e83fbe0253f35d389d6b0b4f37d3de41b04c671f378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41f30b2a58ccc4131dd91f0f3ec06f130e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f417572d30dc5d87d25a2e50f5e3200fd7022c72051e6c4614db70653097bb32a520800000000000000d132a62fa535aa6adef2ac0740b5cb6561c9fa65793f9857fbe6fe4bd54e633d080000000000000008f5fb628b2ba25efa6a8b362ec0a23373c29f238538a7410e6c18132c48354b08000000000000006208c14ff8f8d606a7cb75660878d7673081114984415644ada3671cde7e0b250800000000000000fd12633321c5562d746bdd3d785bb424dedf4773a52e3337f766b376b3c69d690800000000000000b4407024b255c028de400b648dcc626dfebdb411a4023344da593a0c0c582c552800000000000000018381585038e053bf2389396dd2c56767d02260b70c6c10acbcd4467c347c585291513975e928542a20182db0fa6319a413b37670e82b5ba71d84485cb71a58a60d7552eee440156121713d4ee6bd7212c99b44a8a89437eb2361212e0a4022ca798952dcd35b4f83f035498776b64cfad0815df2c03c2e8495704f4bb49360b1d5e66293c4ed39bf56cf0781bd8170f0982f25ca031d68b2ea843d6fb53c541100000000000000ce65285a108c19747ddde1d1356ba1458ade58559b60662974876d69108bfa9b203dc8812c51ac7fdae47b8f537c0847541a58ab7289ffb6b1d20588e5f999fddd810569a4a5c1a8761db426dd1935d1bea9a982fc9e666ace23ea899e252c20a7bd202d97ac00f7f5711fd2dc495a52a2741c03228957fd9aae813d171e55d1bbdc6b11c1a146093e070100489d590a495d67b038a22fcb6394634259402bb20aa6926bde028f529305163d0b7d345fd25a98b3e36674c464efb14d1b6082089a66de0051cab4279a2cd69d5d5363a4c7905d340d9c982e6e9e260326e2385f175e55781df0c1be41a3a782a8268ec0d9c0fda00f97946a46007556ee5f507edaeae93d97cbd3738311c8539547436cc0a8fffa83620f05480972dd027c1b3a5e87531a3d6dbe19f9fed722cb0e10f10825a7021e55fbca9214e1e6efa61914dfd40fd3f7d541a9a4a58388b01b5c0b2744bf458098e9d4266eaa9ade08bbda8e975f96bd3ebe15059b85767b9ae5960462079414871cb6d3326b60337cf88d355b18efcc610cd108a818fb8f8e340674bad6d7b1b6e27c306eb4a26eb0d78a6277e553a6c727155c34787f84c035ed94406dc3572504082350cf6e0ff0d777b769cce24eeb8c158b8f64d9186f23677d36cb4c484b71042a5c830a8d4d8044ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000060e97c69c51af439103b9968f3cb2a21ccece6014fc45d5d5430544444d8786008000000000000000af31d18b4fdfc14d93c5f240b7f135f4a242463fc59f875a288c3372c34f55e0800000000000000795d09732bbe4104de950a2e8a2a4421f8a19a319d8e83699a08b5438b0d4a6508000000000000003d610d08bb37fc39c41d642612e015542daff012d83afa4d98db4c4474934b5d0800000000000000b55d7c77d76a4b3aa2a34002832ae201aa14e3155bffd101b2201231098d9a3008000000000000008863c8738f192c6c24c7065baf053533ac985f0cba225b3dad2402644b9a2445080000000000000043ad364b5c199400ee995926d71f4c6321bf4e21938a1d14cbf245271fca1b6a08000000000000005db9015933ddb731ffdf003f5dea014f718ed3513980d347b60a061817328b3e080000000000000024a41f011e9a93369601f75ffefae3357a58231f97629e14d128b74ef454153e0800000000000000cdff1d285888cb41a268c64a5d4c7d1ffe365f3e093189414b49fb5e3541d0570800000000000000a536e30319b3ea20b9fbad6818dccc5fa4f35c3f2ff54807c3939c49da44e9040800000000000000d5e187507f970e610f20ca42361acd093bda4d3524d1823c8bd6e103350af941110000000000000016cb18a323378010f9dd5f23a77cee37939b603e261965e6f9933b63afc0b1faaf1ae7519ceb46ac2fbfbe2d7e9dd7362af4ed1b0cc27dcdf2af10db479f86eee8a5e006cb04a50d5fc3ca408a4f028964fbbd4977aa1f91ab8eccbb790896e776d3d279d349ff7c30e5ced5a04a8cf1a39eb50889b12ba405f5407f86d1cfc5f6597f8b2d52a97ab3f7d473cc58577a6df1da7679bc7bb2f72c72aeaa9d9644d9bc52fc35ed5cd9c0167a0ae4b50ba5680349ab5b2b0b8f013ef388cdd8bdc180978a3dd4e3edee3abd87bae4a94a837e21ef436a22efc52621bdfca53d6f2ae90abfa44bd93783cd1634650a816e1a72d734ce0acbc2a6aae93177dbfa0a7994c130cd0688da0c405ec6b49795f5f003e6515c34657520477e19023a4807775e620a64f57a71a6f193924fbf332be017dbfaf494a88f18f56c4a4eece3a11c31e7b810f122d11c21baad9f0482ea40e902e8c668b03971542b8d1ef3730d4cc87b1f1697ad321835476387ffa7ade95f0352951253ee1884541e28e3ffd998fef0070c833139975a6599ce47b4b027b0dcff0487460162add11df56704f6e31baecc5aa8f663ac9f58a8684ccef6ab0d323683313b91df3b4fcf0c750c6217eaf5dcacbc1c95d1dc34c52e3a7221c1e3c056b475751e1d82c3703c7fdd12e42441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000008b44e66868476213148e354c165acd5ec92fb95d000000000000000000000000b6a1a034490abb680915bd180915bd1809df455cb6f9160c781a0620781a0620db255a5518ca6f10c2bab2430000000072681c70000000000000000077e631153a1f512200000000fe219e5f00c94d0024d5704600000000000000009d48ab2d539dc709150a7961e169b02d8300901877bb190f6489de53847bac4c122c556602289057c1a61d1c519460649ac7b21c75a6410ee19dbf4e8a5b4412f4d30e73f4d30e738a5b441266cd62105d708f3ff6d7d75e88461e653b059477e6a99657243d1f52243d1f52e6a996578e8f5d30cb201e0e2e3ba513426f341adcbd870fea359067d98c5674d98c5674ea359067fc01ed1b9743dc0d30082974b202c94200000000fbbb0e1417386950e502364a38101c493ae539065df4fe27f0311420b2499d381209cf38b69b7d0596f7541f8705e86e8705e86e96f7541fa8f8921d91ef2f251bd1142bfae1082f00000000000000000000000000000000000000000000000000000000000000008b44e668944d18518036192d00000000055fc74ee3d37071ade0da51e62bf118250000000000000078839a0aad92d831d24fac61000000000000000000000000463bc1691e6b4730cd375b18cd375b182f5b385a2f59d9261573e7116486dc00cd6f6b5f9613215af39b6a2c7504892aba14aa35000000000000000080a065306290c761a8e89d674ce319658f6bb636f17caa0bf5d1b24e1824aa01812d071a71387115c8851b46845be25536ffae0bffb8415fcbd484319e74fd2a10000000000000006cf9547156df0c2c74b8be6c9b01165287dafa768c7021591aa82935054b5819f3961f624c9fdb760463494a6934d74220f962542cc2694612056b2dfa683c0d100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000276b69290000000000000000000000008c139f03b1193d670000000000000000729c7658d8442e400000000000000000fa04ec327c31fc2d000000002f4f0e1b0000000000000000000000002f4f0e1b2954fa4da485f603a485f6039475cf6df4930a67e9c30b301e01dc037ff01765fa104b616eed17642d5f9d547e1a8d520000000000000000a485f603080000000000000000000000000000004ad558510000000000000000000000000000000054a4df770800000000000000b2edd34f2f1f224a71e3b7249c7f28154872d94f47bdf31ffe505124b2edd34f080000000000000000000000000000007164b5424710155df546d0363a96d452787e156a314211212200000000000000b2a1bf47b9a3442b69758f28a29306668e7cfb21cba6523240c4ec372dbd0a75aa05c9736545e05da143246ce46f9c35e9e0a947cbd4746d2759705fb2a1bf47b2a1bf47b2a1bf473f8c250d3f8c250db2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf47b2a1bf4700000000b2a1bf47140000000000000082136c353d570e03eee23873d287413de5a408427ef8f93b509e7f5ab930284cbc9334548edc7b40ccd82177fbdfb41d000000000000000000000000bc2b2b38bbb19547000000007827c7110000000011000000000000003cb795f846e6b4b7eb2470fae2163a6cf09766449a29b49ab31ea3cdf2a3fe7f4e18a72073a078d685a42922af5af9981a039d6d1bb2446ea4f40524aacf07e59fd04b45a309b3b83b01cde536c1fbdabd405ef099a077b10fd4b8d84d2c070a72ec5b0fefc68fa6f0a884c422b11f95e8fda33539b4b86205c516d53eae4611007c497d359dee8f53c62f521f66659db2c3cf81f9e07063ee5f6b5a3d1cf5bedaa8b50ffc1269faa105d2384b6839522d56dcc0ad480d3f91253b1b053d09d8502834f4f271865b13a46fec8bda57064f5904c825ea4d4bb23e2675a96861f8c3f5bddcbe41bbd8d734f72fc716c9e339648304f607ecc29108053158c21bc39be49916fa8af4064a8de65eeee4ce752248ecb81ced045c625f7d636c5f8bbfbe4eb139f8f24187bdd52bcfcbc27aceec222d0f57ef17faa691de73301d700b2c83a154b03db9328e7d18c8125b171d3fab76851991fe39aea4a3a1022c8ce3350f0082afe392fededf0957109530ab24586017cb185966469701872f1022201a14481679078bef6944faf6c997ebfbc0695f76b611daef74c712e1120563e189cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000dbfcd26bf65dd7465b323a6266d3b51418bfd1426bf678321683056f68d39b084421b11360a4e877e3d92308033ebb2584cb5c3ab6cf6f3e8c66e562486443533ba5154edb5ec80aedea9174c0f0c22af2a41627d9a847630cf8ae295c7bcc54c358bb270ac0344ba59dd4358df42330628b424b933ad3404928e0147126fc6a6c970a029c431b2ad20ea544d818be622fa477390d826142a69f1c4bbc2bda4780adb34dbfbeec61fd5d4d4b814db5130f9ed948717cbe36c9eb247734eb0f61dc540a0d12936b1a006fc33b86e23a49d5ef085ae1cf0527318e5212fcc87a0980ba4a594e5c935750cc4356e67880763d867876d90c7269b980045ceeeff54607cd052dda5e510f967e060ebf63ef334b04987112a08459b875417331b06675217a21702bab2a0e5c93fe2f641d457209e9b15617809e35b79f0b4e2dfc8264112e7b40ef331341186f8e71f3174f1dbcbb53134c37200abeafb0048f90771bb4027450878cbf4f62911f6792cb582e8cc5ec63aab966531714f857bc97c61a213cd4100eec6c1331d8bf408fe4c92c080000000000000078e28304a9573500cc91b9090e78c755ceddfb20c6ab6f6a7fa1461b7218cb4b2000000000000000ba36a9559a17813735183871431ff91fb5737a5150aadd70ffe12c1887212010ced7e92ae9b429656448122dd422a945f212380c4f6e65160bb3e421dcb805667006e941a84e7a0383fc12511820b26de7279255bbc44076640e98696b4395617b826b09c105955097edce59f3cfd45ab5d8e1399f77cb54284ad165a6a3e2102000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f0800000000000000d8e6763f3bba0f3f4e815c57d019b952a827201a8463cf21c9ee055663b2c73f08000000000000003673af39992a3d11deb563230b94be4ba51c38635458020d08a1d3547847b2620800000000000000735858230a0e2a5d57b5b404ca310141549706473bd48d4e37ffba27b75c6e650800000000000000579a2a06547fdf0c8e42ba47f0b2d20ec1fc722a06077b7103c94a4f8395831208000000000000006246557268573e09ea767e53d92e8a49d424494f6a206742086e505ca24034602800000000000000184cd33f36424f64e2c1b21eb18ee200c290e575a8d1d002958a09244270e3267824e1421b368847387c2e4ef5bf6652ecd1f0264e172c3f0b5ea74174ab772f46b0a04c8c403f4b35ba213e7cd0be2567e5dd021f9b380006e606727289746a4774cd5a3a7fa65cd27aef74c95ece67b3a31e11cdf9370cefdf35073a17cf2ec6e5a0150c31af04f5b47e0157dfc76242cf802203103d702464480f637ea37411000000000000002a61f4a8614e65a1ef07643e22b5b37b1d0efa0c968533d6c3ee2268bb87b7290f4735bcbb7557b0aefe69c50598f4676698a13a6cf064aa3dd4ec74a43bb3848cb48df9c4355379d5b287032ba3faa347fe4cd91605442f002c8e01a0bd726d794c8727c2b11fdfdd4eb4ef631bc077b489ef0ec564b49e0d764520eaa67b6c7290dd35e15a8ce438c6ee7d2dd50a9337c0bcc88def47c28146c0d79935fe01d8359ceb7f8684e468b2306eeb221f7b52925c45fdd1daaa61dfb02395b367fc83956cd743656a0e3247ce534f311da6e0661ee6154aa26192462ccc8857b53209198af8f82bb842512bbdcf15b3da3ae743af46d5202a7203491b2e18b7ba05dc3486fe01f9f82bcbfea4b2f3abed715a7de5b4b69ad8b35b9d02e1d135216ef10ca25161e1b17e087c199d093f0709f333cc20f799ff112526d5aa97e975a35bf37aacfcf11f0e445bef97ca03f7e4e29a0469aa57c0615dc83cb9eec84fa8798b07341855a541585c94cc73f0158297b74b16857cec295ff51a6717a87efbcb216cb8e8d6e3c8aaf3d7c1969f6a246a10d2bb3d86f81a2473a3c2dc0808896be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c0000000000000008000000000000000690261bbaeb2e01104f1468384a9c272482326819d10f2843df3119537f0a400800000000000000c7e764719f22715a6040ee31c33cd63c80a1a61ffc5ce54d09eae46928704f5408000000000000001472fc766213ba10724ecb20fd29f03111fa416035ddb10d9e5c021d7ce47d5f0800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a2445080000000000000079600f5a6872fa0363c81a413223c2742a7aa205ab250264314ecd4a8dd1702908000000000000001cecf21ff77ce34d7493a676c3278d3549758d57ab38a70cecd1bb35c43afc1508000000000000001a7fde619cad2d508a9a8337745322588db29470ab0be6646939934a643ce12a080000000000000095b6ba229b0e6140cc5a6253c6fef61170b6d7740c0d371d78d50474a826856608000000000000002f5dc523330e544ad73b1859e823070d2e55d06e26092e0c4ea9c145148c2d3b080000000000000056c4e322ac299136044f8430d053bd2d573be520db2a623e0a419a1db8243b0611000000000000007e762f0afc336d9ffd0561cb2c9fac75de82cf0aab291bf4ed2dc782037e92ed95afc7eeef0aa7ea5c84a8a3f2b23378829a30b9d40ec5046769c90347a401fc2369866b902a1f2f0c29c89b08d9acb0157e78a019cc038a511f89827f91bbb7c5b7038a9a27a4215108b94e24d2fd5b424bae4ad1a0acc7a6e4ada4bca572ffd337f3961d7118eae1c3bf8f612740f5b4284099f2aae817f8eb57f19be8eeefd1a089df03207bc7759a910bfac8727481d3aace3b5e57a5f5ea87ad3dc221530268bc9e7e1a78ea3e9490d62215c3a1e753ac7e9b0a33cccae28295d08f2cc125d52b11e0c4bd62c8aa0862179c6d150594d3dbaf4e7a28032ca77511d2a99b3a6b8c45e10c50d6c56a214647d76b8641747796fffa9ea151bb558a8fdb778e65eba16555678e55f7ebffe51df6a2aa4aaf2e618a3620410963a8697a1ebaa5cc2702da7ad93dfd52d14ee6b184733b54a0c1b9a6f8aac40e582197ecba04588ebf335f45453f96f27b49e8bd250bc1d1fac1d211b3d64da255780c2ff21e1f160e5a9a15033143fb3b117b3f91df080f4134db44d6cf2d903a30c0f1573d999be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000f9378f2db0916e3e064d6c3b21b9e95fb5c11c40000000000000000000000000f9a6633a3715662f5cb8e41f5cb8e41fa4e3652646493e3471d5c96071d5c96078e9b53e7148ed2908a33a7700000000b90250220000000000000000c35f663d1399fe19000000006fe6a74ccd2a23142744e0100000000000000000cbd07c05e147080fcaa692251385df625d9c650909c8704a57623e6e4fd27f70a97f81652f813067d6396e1ec9416b13e8211069b66e490057848305199280394156c75a4156c75a199280392ea025578cc213435cb9294b115e4a4f4461c5267c45031989ccfb2989ccfb297c4503198b48a0720ff6f03a7057083c0dc67419bd78242d91b7124e873199218731992191b7124e86666f30c5d38a1d8bbf9819ffc54c5e00000000dabf8a31eec9c96906f2cd2eb7ae503d795bb86f2396f81b6af20806198d263ab4e89941856b3877321bb029bea35c20bea35c20321bb0294b9b343a9d9e844cdc1a246e09f1562e0000000000000000000000000000000000000000000000000000000000000000f9378f2dc562103cdc2478750000000083ff685bd3471f2d03ee2431e8aa333d2500000000000000c965480920d3283a45096f040000000000000000000000003785f00a210c902bfa452e08fa452e0862b2ab19c6ba702e6e01c7254bec8c1b9d755c3ddc79701dccddf8311a88f90e84a046120000000000000000ab319321a8fc0301c90c2814bb5dc53637a1046b06bdc22177a21867bd98d23315831e1478c2f4114f650f147ed4410cadbc441a4779b1227525b824bf86ab3e100000000000000085e7ff5a0b55496f5275db2619dc923f49b38103fe037f3ccecbf15a6b42200af3c62e39947d5601a6d7ef3e12ee92124ed89c39ffc0d1622203fe6806832c041000000000000000000000000000000000000000000000007131893d0000000000000000000000007131893d0000000000000000000000000000000000000000000000005d4c62690f0000000000000000000000000000000000000000000000fe5aff620000000000000000000000003e843f0e0000000000000000000000000000000000000000c0d6bf544400000000000000c78c20410000000000000000000000007f5d3364dae0f74e0000000000000000de0eb57200000000000000000000000078c8935c000000008a376c1b00000000000000000000000000000000000000008a376c1ba5b39d0e235e041fb0b6f12e6433651b00000000000000000000000000000000000000000000000000000000c78c2041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c78c20410000000000000000000000000000000000000000000000000000000000000000000000008a376c1b00000000556a8f3dd314f64d0000000000000000000000000100000000000000010000002300000000000000ab3de94300000000000000000000000093e7011c6e543d550000000000000000ac8b513d3ad5d64300000000000000009a654a2caccc2a1600000000780e5e08000000000000000000000000780e5e081274a834be40d34abe40d34a7d5916764c1667631095bb5bf7fd2864b76a711ba9fbf536bb286e04ff91f9381303ea060000000000000000be40d34a08000000000000000000000000000000f0ff2d1300000000000000000000000000000000ae71546c0800000000000000b12c5a4f4f80e909bbac731f7311da2f8d96130a1e2ecb4ceeaea619b12c5a4f080000000000000000000000000000003504761b344b0f16f8c3ad14917eec679656e9464a32c24f2200000000000000e46924279700284345b88425f006a811ef67b812eb55cd72f030ee16eff20c44a6f90e03c9ed2477a7cdb656b175df1fc1c8b535fcf11d708bc8101fe4692427e4692427e4692427a3500a68a3500a68e4692427e4692427e4692427e4692427e4692427e4692427e4692427e4692427e4692427e4692427e4692427e469242700000000e469242714000000000000003a31e22d52cb580db74cdd35d5af5d051f63804754fe68309c278f0a2c65a32edd52ff2e3801bd0cf1048a779b7dac28000000000000000000000000593bd4029b44a75300000000861cf05000000000110000000000000028c7f50e43e1c43f6997adf6256389d620b2aa90d1a8d37a01fd7f1a5d9f42757bc9d2d9f7bf7b9e33f686d7579e3cf506f1e30bb71d69718d7ad1d2e0f681c693b7868f364f8cebc67f6f44355d40e6061b57113b769d069cb785b29b0aaadde90556966dabcaeccf88c63d213b0fc9996c0662db2e461cdf28a34ccb223af5c35f38743dc2fcc107dc3e213bc78b87298bf235de4d8626eb57f0aa58fbe506acda6ed3a1687e27c8ad4c5ea01d5013bafc5b52de1ee32b2f678ec6b3c1173a97b4b02a9fb7695d961cd552fc13ffa59dd006e865fc2611c05cd49eba8ef6cc09e53113c0f13f40b569d720298f61e2657b7d7adc1111d4898eb5a7ac3a61963a53c8182941ad7afb3843297d28bf22cbc8d78d8f5abc68ead5ba2d16d7ffeda327a8f628233ce57c1fd4790df15e96bc6334d881103ab55343f7c34f62014ff22daa2b341abd1cd967150b97716d2a0b00c37b222bae08d5b7e05e580c6403de443e802755f96cae6822d9829916477dbe1c77206aa4f2b30224bb1026112200b4b3869cbb404e113ca89f7ea50f2b35e529613f932d6a15c92247c920794a76665546d46045559910c8f6a48f7aef18ea36a61d85905ba5bf33da03a4246a9cde270af9a8553998c33e76890bff6514ec2bc03bff47fea5d6ff585f959da690fc41cffabe94f9bb8675a658a6fb7cb96a6fc5b1072f30bc486a8aaeaa15e4674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c000000000000006400000000000000ac311a1e9f0a7670c35dd24cf75b3a400cd01a752eabe057a4c3b9323d1ffd174062160bbc43df71812a802f9e7a291117b8604d3c755a5d852ab224fa8ab5414e3903381b87d85faa0bdf2eb9e7cd1c64bead3b55eb72005358c15e39eabd0ce404112cba0cc7191347744fc85d7a60e29aed69172d26050395ae664468be3938c4713b1618392398b4551b5044ea5cd2c724484bbb28742acae36e992b6c4bc00631661c87f2415563f328bb3bbc2f815c6837969514600cae66703a96770b2ff835582034ce4d223c5b768f039e695255ba2d5b4a11016569c026575a205c5dc0af1379113646e5d3d4205239466c07d1fe111d1d9953ff0d2c52b4f7c71d1449586b98e9a6192aed17538accb6005c04054cb8246e56e5da9c0b447e8d49fb5edb6a0f1d1501a02b4d43e7855a53913e950085ff353f286902001fd5b80b0b00bd623b37a53ac45ce51c60f07e17187f4362c284f4454cb7885e8bcecf52d8055d74b7ba835bde279e77e56fb15f434840482ed35f498649a1644d1d2d1875b8a90ddfa9f8076e959a41c73e4b52080000000000000020335037988b0737f344c11a5ac96c10ce9a116dd805332194b88142fbbea615200000000000000026371a4d1f845f0805c2cd45f8f61448a20f8d70648c1b2e6f0bdf42a9a8073dbac670757925db12a38c0b0affa45705ab6b291c28884c4f961d96286b864b4bb42afe3edf0cd166659d9d50f5742d2f8d18bc4bb109c40bff882637d47e5e119e3a0009a1a8773b8cf29c637787be4d2597d41139a64e33e9ab4f0da3f695192000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f411c62cb13e9ebc24a0a5a167294f46964378c9c25371caf6ca3764d5ad7dd7f417d987e0b3df5fd2c36ec67454c908c2ed607556eb6f89e4dcc85cb06b67325451800000000000000b2e6286b501f295ab7e018382b28c32950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d2443f84b09a1e768939a2a4b6fe52066cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811ecb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ccb962c4375bb761a4e89641cdbddbc2ce8c37c767cf54a685400ce1fc13a185ea05032611978502beb3cb6416c268a31378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fd4c4732513f78686874190403ed903b378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4128e63340a965cf3316ff3211d3b982253104c90d42f4df2ae87a994cd462994b080000000000000061366d397674943fd8887e0e4b2eb0275e2b082b840f2525fccfc775f53a334e0800000000000000a7a5e615a64ce74e1fffde361a4cba765af2ed73579f7d650b18243909e6e43308000000000000008e52b32d115cc250bc4fc900943bc81c8e3bbd707189c901a52a6d1b5c7986540800000000000000db105001f888ce5b7ba53f63cea44e0dc50d70086cf11b77d245a5065f7dd352080000000000000058c46b6e6242cf448fed3e2a6618a841920bb14c258ad27528ea9e323b89075328000000000000001d2ef8363e5b270670810f182851eb30791fe55b00d863015472ed23df4e4e3c5a12000c7704af6fbc6f8c73653ec268cef6605f12dbae349b663203548acb72925ef841f6c9ec2bc178f6643364b823dbdc444123bb1035964ced4ef51fda6f65eb9701e8d0724ea9a3e36be6479f33cc30000a12be5845dbd1163883568d36c15dac76215f6944d0d27d1f7cd79323bffe9c555ada00627e2e754f80f0937211000000000000003eb9c0fec3a10346770a342f81af15ba63c501a2c7c8762c868305e2b339f85c9e19ca0a9c0eef330b2ec1fcaa2e311b61b265f648afd88bde3917fa5c162644bec25d0d404f5f92f01260becc385bbf8737408f04dc789e0e10d8f2c8a62dd37f6830360fcfd7e26feab61e8d2624e0fd58162cf09af4e421ac859860e5f7ce5b83ce4b689def1aa5f3bacf3c251aa6afa4db2275d9620b219cbd0c39cfba74c42994ae92c39f0029f6df8f275e33876ad143e953b5fa6808b4f918bb2623c824597b5dbd5b1458c66e989b5361f73732cb167359dfa75fa45720b305425c486c1bd80a20623d4f357ca407503a16bd1af18cb5617d9b6d5c6d59790cc04d8e0cc683887ab9fab2af5db07eeadff0687102a74a85d8a6f40d4a41bf31e9e12204a2a8a646a1e31465f8e8b46072203dc9a34202265bcecfa9c695e0f68079a4a2c6e93679b6e682e0110bb9e44a035e80a8b98f341ef0ee53a415816b6d95130c8fab6e84239494873dd918de95cecf6235a036112b239c7fa6ae5749ddbddda53f2e0278bf44eeadc289d4a7e0e05ea19213ef5ff45ceade02578c6961a2a5f9bcadbe32d08b023a7de047f4a765c7565ae3875a11364cf5dafb5a586de4a5ba001cf2eb61d8beec983e6c75eb44256776556b54df28e4cc62346fbaba78766d1bffc915ab04d8d424ee2c00073c49285b4b5f80b16920378692b7ebbaaa794e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c000000000000000800000000000000708fca25b27b3a3aa99ac106d7283c40a83b500febdc7440656b106478f6042808000000000000006dc765311cd3bd1e731320337380966403569e3d4fd87f52e8d433542dbe92640800000000000000bf4a8b20bd66e62042d7c372f56d324d27e9142ee227c41c59432c1363e4cf7408000000000000003cfbd351737cb06a933eb649f1980f21a08f8d311398493c56a1c92bee15e705080000000000000030bdf87753222a303bcaef4e3684824d487fa2464d790414723ddd4c1439b7450800000000000000012077282058de15c90cd01e20385a27ac985f0cba225b3dad2402644b9a2445080000000000000021623c725c63e1584aba3155ecc4041496a8a65cc4d88a70a7030018846f747608000000000000002704ae2065a03e720073ab49fb3fd2465cf2ac3744035e0227891e35dd8e526e08000000000000009c5575037327ad50a108cd68183e7f159915ac2ac2e76900541ab807be90d9720800000000000000b323a869aa992c1d42ce1a212e224b264c710a474c47151adea99074ea1ece1808000000000000000e0ef9229d6f932fda58204d13fd4d51ec116a4ced15341420aa1010799aa82408000000000000008f33e55e22c8e11be1a9b23629cca402ea14bd4d47f7cc6cb908f340d8acf84e1100000000000000a3d5a58205cb8a96e07842d8ebbebfff2cc3e9e4ccdb53ac4357f5e0c53e77b770acb3962f6a1c271cc72cfcb31516433d857d47e6f83c07b7c54a69651fbda2929d10e4288f386894f037bb58a04f7a112faae62449358a307a8c35ad587073bd86ad02ab6f16315e7a118ec78ec823bf3210869618bf25b8ee9f597309a53f5fd885a877318d0145852e64082747d69b225d4800981e44a94203a083ec5410a8953c30f61e78843c8f38306b1adb837bee049694a34598d9a2895757b3e46635adf21bf0aded7b7f6de5bd8576ff04ddd0deb8ae59cbef9cf28f67c061ef1a4d703e82a5f3d6d4c2e5b1bc1505daae6df9ebe748ba445fc383bf6ad2f895470b0f7239e5f0065b52463176fb48e738ec85c0e33fbee52ec9414e482b0b0e283f5e19d94a4d995b42a2e404b4625be9115ba7917189334b888a5dd5c0eaf14e055b263c6bb98eda497f09385dcadf8806d773017320c1265b489697ee640e801f365e964b6298a1cd0a5d4705a95621d8dd1100cef9995b7f6e45d218e1398ac95946338bd3ab7de5a89c4f17e2f19102f2fd033ce6ce762f81ab0a60a19dfc7a9ef0edef69b4ea5b60d11579c59df9daa3b12e2c701245c5dfc7547e21b56375e7c320349e761015c8ff84e6402332747124549f7132f1062744494e57b500d61fbdf3254a9dc88299e815ea6073718360526b6b6766c10ec7448b0f35138aaf77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c03000000000000000c000000000000006b00000000000000b0f06443e944345260c7bb6020c64d5104c4333d0000000000000000000000007b8d913fe1b7e2583a92dc563a92dc569f3cc859ed40135cbac3b84cbac3b84c8fdbd913370a2f6d6b15605d00000000055e561e0000000000000000642e3c2b212c1d4d00000000d7b48035236036118f29d5150000000000000000a0baa46923764b672277c52d3a4dc23c047f7c1a520f9b342903af42b8f7056b4cc2a91adeeb6f68883aa443091f726398b02874b6415e2a892cda76d21ae5051520f0171520f017d21ae5054ab7b84bf9639a4cf425cf2a2730dc4825144b53d6e7636eee407e23ee407e23d6e7636e5cd8c33f86a957336bf6b83a0658bc1477b74a36cbf5d00a671a2b5a671a2b5acbf5d00a5a2546414a557730a86608625eac1714000000003a7ae251a2105c0e2f4a910fe6a00637c85b740928279659fd2e302e6687a11b3cece83402bf4c77b7480b074724a15e4724a15eb7480b07b75a730efccada39d50d974c1f64a8450000000000000000000000000000000000000000000000000000000000000000b0f06443c783b14cad364a3300000000e20edb461a02e34e912636357c1aae1b25000000000000005fe2cd691c73cc1193978149000000000000000000000000888c270d239f7139ca7e1315ca7e13156ecc0d27fab1417653e9e6195c9dda105b7b19269737d27233b0d6421ea0b36da62bcb26000000000000000028235710d10a851471d9fc31d7781e271e3b2112f3e30850fb01c80def7ce4257ce76f6906ca03154c9cb63233bb136bb000c82562e74d1b58e4b93a3b6fa76710000000000000000d09207629fbef11019f7e47a018bc45d0d4fd154db7223960644b12836d80467039cd25a3e53230626c83035b6b74257039dc40eb618d594048940a184e0d71100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000dcee6b320000000000000000000000001fe956383b231b400000000000000000f7481842e64dab760000000000000000996888196e654049000000002946ff320000000000000000000000002946ff32c2ae874c2f14c81d2f14c81dda77477490961861dc4b2e4a5f1ddb6a19655f5fbeda753798afad6387e7896654255c6300000000000000002f14c81d080000000000000000000000000000004ad558510000000000000000000000000000000054a4df770800000000000000b2edd34f2f1f224a71e3b7249c7f28154872d94f47bdf31ffe505124b2edd34f08000000000000000000000000000000c7349936847f2f100a8457683c1ed03b9332a04945ea9a1b2200000000000000c4345758c33c2c08137e1f266945da5c8234fb54c369890f0fece613f70f4d2c4a7d0930e8980c687b129b318bf3f94abdf98055957d360badb0ba36c4345758c4345758c43457587ff999617ff99961c4345758c4345758c4345758c4345758c4345758c4345758c4345758c4345758c4345758c4345758c4345758c434575800000000c43457581400000000000000f0c6a06776c92d32f78d26676f02a83279748143c48df85e2424b64298394f2695077612dedc4d1899b8f43a519cca63000000000000000000000000dc8a152c280ba96b00000000ea038649000000001100000000000000bb51f258fd99c712087c6ede173de90ea6692c08d654feadfd39caeea6b64cc85a630b6efe26f6f0adfe6e222590b85a598e59cb53d1280fd08137c6accf9eb258c7de5943f5de668a796f834d80646f8b04841880e4e6817da66430b98b47811b2655eebc9ad2335736d9b4511e4b8b166154b6d9126f0a7f8dc338849806d38dd3e6bb793ceee3338186931c83ce4b5e53ec1ad972ed367a3b4ff7f7f7ea88818e019e93a11568d2f3dd0bce54702d2f8d8add641785a9a18a69acb37b47abde89a3983cf3eb8867eade374a6a02867796544251ee03d4290da73ddbe62accbbd3201ad28c116abc57a05aea7d321e136c6584faf40ae1caab2b757882bc519afc070ed7670632611cbbd66b0a1cbbfb73b0967a343a1d108b4ffa5cc0ad22be4eb139f8f24187bdd52bcfcbc27aceec222d0f57ef17faa691de73301d700b2c83a154b03db9328e7d18c8125b171d3fab76851991fe39aea4a3a1022c8ce3350f0082afe392fededf0957109530ab24586017cb185966469701872f1022201a14481679078bef6944faf6c997ebfbc0695f76b611daef74c712e1120563e189cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c00000000000000640000000000000061d796005a4fea1b9541ba2728ba863eb767d308a13729502a99ce1752595a1a2dece97127bb965471e56e5ebd1ba46da55c990ca64b147443f890002968f72144b6fb18fa4e2d0030c7195e0f8ac3521d9bbe187dd5c33f8acfa7331c2b856f55ff7f71b6fe750bc023461158f67c0bde2c6811fc82eb332d65ee43a6c120549e14730228f7ac5cd3688e6d410f651e8f04144c3bc68f2c822fe33fe868c91806568f3b45d32a6182e0ff03c12c1a72ae4dd31477eea33ab3ce414d96b00e1fe2a08b0eedd0d060382312495b646263a9506706dea3ad6bcb03252f6033ec67c3bf2448572919549ed33570d5acae4310387f4a74f33901ab7c5a562ba9b7405962ea41ca8b6845d94fb837b41c5143db0b66017de5616b5fa56c02df9f0501caf50373937f5173feeacf3ff3d2be4ecaef9d38bf709548c3fdbb5e825fc346749a1e3bc4504d5af65dcb527213741e877d8d6f71bc290b6fefbd59c39ee20a6ac6203747fb6e22f00ed2432b13ca5c9d77615e8f3f9a59a707c9165a63ae3a0b9ea215294ec93aacf3be288ac1643e0800000000000000caad981db9a2d914c6c71f307114c6051025267540e0750f4026252f1ae1265d20000000000000007f7f5d0e25d17664be15b8380eb8af5eef79983df0efaf73b90114678a44405502ec334593eb0b66f6cf2668594d8b6c6c9620740e1ddc39ae9c154ff37aaf069833e56e35af653a4c972f40c669fb77685e296e5fa9773f84ee3d2a066e1917b2226c1d0bb16c2067c8945b31d9691e6bbff5624f913c1962f77f2c47ba81022000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f080000000000000068082738e40665222b16ac3d56043d32d2ca2e64039f875134d0c43527cf5e1f08000000000000003673af39992a3d11deb563230b94be4ba51c38635458020d08a1d3547847b2620800000000000000735858230a0e2a5d57b5b404ca310141549706473bd48d4e37ffba27b75c6e6508000000000000004de1b8443f46cb285fe72c120624b676165f0b32c243776598669111fdc1096f080000000000000046ebf03428e22d17840dd072e81a153a4841bb44763e4d2cb15c871409cae266280000000000000081047218f6c72a524469a544fbebd813c6d86022e0cdf21da12521098875cc38e08fdb62c90401615da9277388dbe75962cb8e0b69f4ee646f2bb05f852f8e6fc187c4289bd50535ce10d04b1cf14402b8d6e417d1e6ea53d70619403c3bdc59422dcf318453cb04935c135884a394092b2c87248ee2c7239727fd4b25c7be169ae82a232291855a9466ad61af010a0fba76d21ec2233b5828ba6e1d7254ae311100000000000000f98613f7897c11074addc8dcd6373ad03128fcdb7bce03e5eefbd29e9cb431855a1fecdb3e6e9d4fa3fa0baa55c46cb2428651aa058aae32862354881aba11ad81231eb17b07d76a25209b68c8000932042fa79f9369e37ff171bdd1e99c0c1334bbb0e19ad0daa22953fef3bf03aaeae461bb4d1ab06ba095292c7cc26a5d83853a0bd1277d7ddc47f6a6b4fb4d35a067b79499b936e0dff8d46fd2dd049ac010f7bf74da66fa5a8c408fd701d20124f4cad5840d6d54941d635e3ced0d530841a5fb6e5929af1a86331eea5f4598402fc6acf4c69cef0a3d29543cc1d7bc151eaf263ff0f3b10230d200abfd60d284f8c6933f591eb3a74f41addc188efea06820704f1d85cd049079818dd0b6db0edd292d0ff9d9d602a0b2871d025d195ef10ca25161e1b17e087c199d093f0709f333cc20f799ff112526d5aa97e975a35bf37aacfcf11f0e445bef97ca03f7e4e29a0469aa57c0615dc83cb9eec84fa8798b07341855a541585c94cc73f0158297b74b16857cec295ff51a6717a87efbcb216cb8e8d6e3c8aaf3d7c1969f6a246a10d2bb3d86f81a2473a3c2dc0808896be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c00000000000000080000000000000026c2f12ecf35a46df3cbeb6249b6d066d2e974012c0bef69dd6a8e4c65add761080000000000000093b1311a250ba0307a06ae608b9909231f1ffa47670b6617bb4637431f140006080000000000000008a59d06daa1890ed85620450c2eb341bd551403bb77822f6c3e5053dfbb70430800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a24450800000000000000f9f74a443ecb0420f7c13515b4b31c7481e7d801aa763727d002202f5d1d727008000000000000001cecf21ff77ce34d7493a676c3278d3549758d57ab38a70cecd1bb35c43afc1508000000000000001a7fde619cad2d508a9a8337745322588db29470ab0be6646939934a643ce12a0800000000000000851c5e54fa6f3e49a91fb065258db719f185af6f6e2c3c6424e2a30786e95b5008000000000000002b7d1d01f42f5d2e8635780a02f5d80e41e4f9646a48003c06805637f6da641b0800000000000000b8d33b362f0aae018a8c90761f4561707180c76e582dcb0c66a4e06ad51c7e411100000000000000067fa8ca50a9a68bc32d1d22d184a61698a8edf8beccb5a138da8854deacac5ea67c0eeaa816ae8d98a10cebf77b0a0a6275f65e4ded9fc0203410c2dbb13c7510b2025aa518a79bc37eaaa4e3b35d5b561f8c9f88d4f02a07fd202b5132b564122492d80cf7bc2bd5901c4c76d2bc3e9605404568816af9d1388a6a8f2fc2e802d88ac86b3a0ad7ce5da2fbb8dfb9761ebb38d4fa9b5c27878eb3161bc22df23fe9badf13fa7d32b947196a9d77d8916d78c72955c852365e143fa4380f238c695de868ce722799030fdd8eb86d43b5e478978806f9d253976b64184759d0656bbd521e26563ecbe2165b6c8254d01735c060c5c1120fbb675da8ecebccd30447efc92a214918460069778897425c02aa6616840f8633df80235d2346becfd165eba16555678e55f7ebffe51df6a2aa4aaf2e618a3620410963a8697a1ebaa5cc2702da7ad93dfd52d14ee6b184733b54a0c1b9a6f8aac40e582197ecba04588ebf335f45453f96f27b49e8bd250bc1d1fac1d211b3d64da255780c2ff21e1f160e5a9a15033143fb3b117b3f91df080f4134db44d6cf2d903a30c0f1573d999be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b000000000000004ce3970f11c8f3411f7b20063190784c3cbb5943000000000000000000000000433deb29c8ed234b54426f1054426f1086167c21c3980c49e2892237e28922377e7449634e2b825424223e60000000003e40153500000000000000004a7e4b558f04f76500000000824f2520b15a063c923c2a220000000000000000263597523823d44b0ee7cf1d5c9408026dc3d870b61c6868df87510c7a70ae5980ad156b2f15e34511a8e413b870c164e21c042d2803df5a7c2b7063c1fdad370a4ead5b0a4ead5bc1fdad37851ff83b6214a8481332ec04631aae73e6fdce2c0f74bc746f12ed0e6f12ed0e0f74bc743327c72c82101c41d3585340d5dbb90d1b6b6967b4d47d232a8802332a880233b4d47d23228bd9082b823f6836d32f643724915100000000075e2c38d96dcc77de6d204d5b72fa161493462a72205c08ab51d93f1dfd9b663140484ad54b8b5a35bc836a733a7051733a705135bc836ab4d85f47e3a7e970a16162753ceaf04300000000000000000000000000000000000000000000000000000000000000004ce3970fc31eee08dcd0ad0300000000f63ed25810df02532d6599751ab4145a25000000000000005aacf171dd53132b2736df4c000000000000000000000000f83e283b6230dc1d8a4913538a491353febf9b0b6aaeba433f163d304057770f657171431e112135568b440c3769fa5af6f8151a00000000000000005819da08066ba41c8b7d1a3dd5997a439450e458f688126cd683b04ad4426f2af3ca7b4114cb6f67fb80ef6b14626d5bc34894454178a9327d36b306c3ba200b1000000000000000b802dc0f98801f058d65882a3b36c82bc19f3e105c9dff05ed91b92b82588b5c95b20f73535ba86df92a0e3b146bf001378a6e598259725019474a5b8db5c046100000000000000000000000000000000000000000000000c587ff77000000000000000000000000c587ff77000000000000000000000000000000000000000000000000f2e1ff770f0000000000000000000000000000000000000000000000cb1abc3600000000000000000000000018140d0b0000000000000000000000000000000000000000b306af2b44000000000000005da0c7230000000000000000000000007cd5374ec27d59280000000000000000a7a53263000000000000000000000000d59a3a54000000002d65c52300000000000000000000000000000000000000002d65c523101e0000f4983a54d2e3ff77e3cf1717000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005da0c7230000000000000000000000000000000000000000000000000000000000000000000000002d65c52300000000e1010000c57c3a540000000000000000000000000100000000000000010000002300000000000000c8a6be0f000000000000000000000000414ac9734f37ba760000000000000000c8ff550092fc7433000000000000000049872e36ab866b1200000000705eba75000000000000000000000000705eba75b8e5e833636c5446636c5446ccb9b31498637814abc2e42abf75db1c64171c0810625e1c304afa1da11238049bc595360000000000000000636c544608000000000000000000000000000000b366c23e00000000000000000000000000000000b17020410800000000000000b0238941ef53374403d11b4e0ee6690d22aa511624522f1431264213b0238941080000000000000000000000000000002dda8b6ca2499b5bd4047e060fd8425748532347875a1775220000000000000065ff9029a7b44718eb2782315cc55b5c8ffd9d19cf07890fc36bc14ce1e2460156c26d0d21e37c3a8b74814122404906b515f40dedfeda6263658b0465ff902965ff902965ff9029eb64d53deb64d53d65ff902965ff902965ff902965ff902965ff902965ff902965ff902965ff902965ff902965ff902965ff902965ff90290000000065ff90291400000000000000b18ba229d4cc534d8b8d066bfacaef0b703de918f45c17470ec3a96c1ee9e21a1bb5553aca12a9067b7ddf37075d08410000000000000000000000008fc86c42fb76c1710000000052c99e6a0000000011000000000000000fa3fc60487fab3deb92b0c862e19691b83c07a49b8d94160f65b3b52e80cd7bd2b24afdccec281db0c6ccc4467284d1cce0935c9d9d729f150d2ceba0ee4dfaff48e3ae8cf6db0606b3df6c5ee9230cd918682a3114cad3a4dcc4359d305dfd4fe5c6d8cb8fe318a213edb867c48a6b3b4fd91021198cc024463bd3fdeabefb922444aab1c73de2747919b7851b43d7af24ec0f0b73ff07364c3b5c29420a553c2841128c8facf8a5a09d1aa5127301bb6f30c3521dd0876dacac57ff8cc2793082a7d0d5e686ef4eeed0433994cd7d09b759b949130a2564b312fa1fffeb5e04c70a3a0b16402c57d884a1113fc255a3f213e2ec10f20787dcb64bd66a01d3ea67486210c65aa62f973e4bd7bead97b8d11db2d503bd07c49444273d0b7ad8f67e38b0a30feafe59495f0743df6e15cbb744485e56f56aae886c7d94fd6977462dd3c6e99c8b8419dc236d3997d2b9eab92cb633dc7460b233249b4c7812736354dd0058591e52e19523ba58dd8d303c9665548cfd8dd8e779c6900495d774bf141cfa2a442a3af2b9edc3922cdfccc841b14bcbf617117568a9c87da917f26db2a053580a821f6ec58ba5bee5e58c7ad908589eb09081fca63fb9287cbfeb47b7eb05dff1bbf59695dc87a6503af56615e80f34b5c650181cdef004eb391f69d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000500c92136c639811c8f1f93f3daa8963b20f6b086ebfc46e60d39947ca3ce73272451d1b1d47e73e791840374e735d448fe5f939eae0334f3363295dc82f1230b87c7823c803734286bdbf6dbb491b1b00b50c73301cc920df5ca22e11d1c33e4f2f8148b930f41275b43336546caf1ec8914316596c61083798c41eb06a1e269b4b0a4b4e6c8b493cf9c208bb958f3ef0fb0f36a0bb7a24f54e256806372518014fdb1a21ca48328ec2540a0d14d233a00cc06052c2b5396479361ae6a580352fd4c46c1062be0dae730a496674d0392232ed29a1227946a83eee74418e7f3218f9186ca457ba71ec6c4c548368ad3b2098085c6b0a78701903334d6f08151835385a5f4a431117784f6262409db46d6e293f69a8bee52447945b373041a00d262d853d578725308f0f41025ed5c33fb59f133529a59f0e0217b677bd9c723e1a72ec21f97ed27408fe8c0d889ce66246cea4624c2c2707056e2100c020445e0bb9104decc266323d0adb38195ac80f9618730bc03f0313a7d8d7255eb66143f53f6c54b35f631e1893411f4d4f6105080000000000000049e0c62619e6361adb9ffb14d54df308e78da73233ad550f44ebf31f955813312000000000000000e51b2a4b0c5bbb2d5f901a11e1ac8a46242a05170fbaf504eac2713ba078c421b508e21cc4f0ac57b7277d598ca0e60a7303322ada0a68187087971b412a311c329bd91f7cbc6606a8c18c06e4f45e2517835a01c917082c722c7031a822d20d9a255e3695458b324a1d0051c5eaf86e722388480676a35dceca83031e9bb15a2000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f41fa868f1bf1d301236a82c63cfe1fc519378c9c25371caf6ca3764d5ad7dd7f4135f6af37bf8f2403a6a20460e3935c136c3f20748b1345093c52f3196b8725081800000000000000d0670d2120d7e6353d5d632c615bc67750323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200df7f1c8525d766302843165361638b80acf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a5dffd300d2c841736c0ac6692be1a82a8dae5c6e8216991cd8a08231034ca44cd2d1664e9ccd7a4accd4d504e30f5e5a378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4179c5771acb63bb661546a516fa23a640378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41d8e80a23f6b67f067118d650c93ecf6c8e9da80045c5516881e03030e794101d080000000000000038175c263d04611a8f74644adfb8f409a9849c516c25b3736d2487693f3a251908000000000000004056cd50102c3d154908361d9ed78465f1eea5709112d70f8c83902d0a497f160800000000000000166caa10042ad93bb4acb85d0aea313dc5a8642abbfe6e61589e67047113d72e0800000000000000cca32102eaa88b1f6b007a6f2fd9872b9efcad704d74e2196cad5d43081be80f08000000000000003bf6c217bf06133792def238892ccf3c486dfb691191f4698265835c68f5471a2800000000000000fb9ce9708a2dfc09af9b452cf221112a1d3a152bcb5872303f28d02f082436338e00086d1fcc170e13b8974894a10f53e70562031d804240d449e045eccc9f2afd0860213a7074402042d5079ad0076a673ee85f7716f65147504c070b680a338ef5ff127b9224551e76bb4aa4890d2cb9dfde6f255f452f04e5ec4bb9ec442401b10854c055a94859fb1133197e2d1d8c1da71abda4876df03b1b2576e6f01b1100000000000000ea505a7ca5ee419ec6a4cdf99adcb46a59e4b6754362b957fe2e3298f77249347562500a38aa631159352722b40b00400eb1f43ebc8b5bfa31a49f26977a278e6545c004f969e6a0d1684dd290317fbd274b879c3e5f987b4a6b88ea6676d4ed1fdf9e0061b3a09fbcfc056f94357d71a0fbb983110df292cabfe229649a0a66ddd6e70eb31f1fed85d54df37d93a54e2d79d5bcd90b9a801e09004e284ce055c90c781f5d411d8df0a0eb57df0098eac15a09210c6270ca0947809ee6b1a9541719c72ff3e212f28c7b13e30c8a33b29c8b5ad9d0d7f6a51901743bca6f13897e53ee4bd495956f867e848bc29927feb79d5dbf6c26043ef11e709a99c1a975254bb01901f5698dbd2d8d0ebf8baacf1b261901f3b7a3c7199ea939a01317a07d1ce854b74809410aaa985cb87fa2fbe20788af970aa35aea07c5f923f1f56fca5aa098a775e62f519d4bb6596618728d7f6bc8834108207cb92ede6370f0de4fb7b0afe70194ee381b9a0ee1f9863c22ece3f255beb76d0fb0e5534054291b87a94b297db8d83b85459c6ea67812479b19cbe89bd9b8e7b1335670c9881d3cb0defa1124d474c87b593e721ca948154ba534726f2b28ec1437e625e32d0723c95d74f5283cd45733b62e541bad547c40e69ebfc5bf3a9ddc77c0e9ecae0306aa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000f94b966115680768cde81e7367260b6e143186372ea41a510cb76b125a6c5e6d0800000000000000172da151c3a1e55330b60c60194bf96e3ef0f22c2667a127335aac6097faca360800000000000000598aa3760ca8276c9c4e4b5959dfe26902c20254e9a9404121fd2c4abb55b008080000000000000092cfc542dd18e124479722373c4be50a36bd1b5b6268ad0f90079f4336c1305a08000000000000009d25ca6cf7b3c17096c93b587b8f1b288d161269da1a27430f3fd70d509e85390800000000000000cd5ca04b5a9b7d47bec28d4ebf93c143ac985f0cba225b3dad2402644b9a24450800000000000000e6c9f951d0b6836bff54972a0e6f2b4e944e335cead22940ce444005919d7f730800000000000000ee4fc20bdb7dd26fd7e6da3b20f0380c6172f5575ea2b021a9de743013d1482808000000000000001dc7296bc8e382775b32604fa40f5300ecbe3604120cf44958b9015631c8ac7508000000000000004a5cb40d0c9d6b16e41a1919bf3a4f4a415cf317b3812d62393c2f5ddc11e9040800000000000000a542a957385c0c5dcf8a736c5525927537851667c786bb4983c7a50faa96161b080000000000000054860e348a4ebb6d707ae270b1a70b1eeafa8a676799bd41bc59af5893bbc44e110000000000000045fee77e5b441a4a3d73eacdf6d13a6b5087fc640d40d4c71615da5a4556a7c4dca5c760bb0923ab5ec9c31f8d2633056766e71583cb427bd86da8f41d9d92830d8e6e0cf2ee78c2f1be26ed088383d43c0e4af2753989b228538e72bef8e57e3c38a8a0b2a8efcd8d5da0d0d34997012c1ec6cb7d043eba50fa1dd82c1eb577160989c6e2ba4e8b364cd61a1d6c10c3966c1224ec5c8484f44600632ae00e470928f1ce025f62e0ba456124399909326c4a813b7a47da6d54efab45ddc75451ec15bff2b125041bc1a55235c69b4d82dfcd00511c76914b2dafb3e1474e09feb83a34e6fe064a06b50cb650c780d332eb3dbcfa44c6ed24116a53b08aa946b579870c0b4e62b91cd1a64b8c11337a51d4d788b393a452d564647a720056f7876a2e6b34c5fed6b7a8c577320aa623e1a38bd1e0bd06b44ff669732a979a7bc423612a080567c5daff28d6c334083409c07f8912c924aced2864da3743bb74dfb8d6e17537cafae4c4ae27ae29cad97e5705040bcd2998edc2c150eade8c75718ce195381d03da9d313c9b3bb1e3ffe23f3afe21a5a5d2bb647d8d0e86bf38f0b98c96f86e4ddbb0b2180aaf893fa0852101b1c9e27c6c97b1b7adeb65e8a5275a2c0b71788c3ff8c3aba7c9582507466cbd1067fd862f5be686627fdd7a64d4a864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000049bb25246438d70fef277d15329c8c3edad5f03d0000000000000000000000000281892cff99f306361d6c6e361d6c6eb1c9841e204e2a550aafdf570aafdf57c9b0a3772f91a86c3ddef565000000004692fa1d000000000000000005ddf73c8c94d77200000000c9b7df5bfabae34e1863fa340000000000000000e746136861f4fd71bbcfcd69dbcc4e4a369f7a51b944da5366540673f64c553f47c9d768668ef83190fb667235fa85275cae99535305104d2fe05622289b535d9f47f3429f47f342289b535d1ee6233ac0a52f2f05878f57d7a48b4b5633b673e3ce295efdc34a4afdc34a4ae3ce295e685a62529cbe6067e754f3162d36d86e82f41917d36e570b8a05906b8a05906bd36e570bd480251909d75b2fa942a73d1b396f48000000001dbcf41685330d52a2c8fe5a3a0a643bcb60426b4ce6d16a6466765dbae4ae03499428454d1a211d2dc6952b71773e3671773e362dc6952bf131e137ab84ce16411c653c5b14d874000000000000000000000000000000000000000000000000000000000000000049bb25241c52902f3c075f3e000000002b4c447263a3844ac1e73723b314ff532500000000000000232dd85bf4bc013d248f2f760000000000000000000000000a3b21618a1b7e69d8022e69d8022e695208d53644ef0753f824a560a0fc976b3d96606867dfd41af8ae871101fb336418c9577000000000000000004474e86ec00afb4a3e2388756d4cf6685769a521ee8e920830c83807fdef9a0f338d1b1bd83e112e10158913f86c2d6a9c1e892a29699b28cd8dbe74796c410e100000000000000090ec835223729003a2088505027ca54ba7548505404cbe2389454224cd34972028f90428fc8d0101dfde4b27b75e41170964526c19b70a0b4185c53ac3bc9e76100000000000000000000000000000000000000000000000379c1517000000000000000000000000379c15170000000000000000000000000000000000000000000000000e67c5230f0000000000000000000000000000000000000000000000396845070000000000000000000000002b0e742300000000000000000000000000000000000000000f5ad15b44000000000000001f7859280000000000000000000000004980f077e4c4fd770000000000000000fcbc545c000000000000000000000000f2e1ff7700000000101e00000000000000000000000000000000000000000000101e0000f4983a54d2e3ff772d65c5234fd25928000000000000000000000000000000000000000000000000000000001f7859280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f785928000000000000000000000000000000000000000000000000000000000000000000000000101e00000000000021feff77fe48c5230000000000000000000000000100000000000000010000002300000000000000024fd251000000000000000000000000be609f5a83e13c4800000000000000009602c86ec865ab230000000000000000ad037a27238ca20700000000530f2352000000000000000000000000530f2352ff129d01229f3f09229f3f094e0584268adb067119183175f1b573566d8aab556694fb4649401e0c189ce87621506d2f0000000000000000229f3f090800000000000000000000000000000044851428000000000000000000000000000000005e4b201c08000000000000008855050a8ab3d94bc414d802609b1e48c5e9c42f922ef730cea769278855050a0800000000000000000000000000000088b188473a13841b081abc33957ae6661724641630f75a432200000000000000a5535b2e303e70038e13020d0e2188310624294de3fdf5482dbe7c64bba7895777be9e1ab4816c5b506c192b8770ea6c4861132dc748590c7c7f7b66a5535b2ea5535b2ea5535b2e9e7479449e747944a5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2ea5535b2e00000000a5535b2e140000000000000049f8491fa70c2c25ee40556b03c420511683cb5d572a6a4902f8db4de46b9e105a319a193fe4352864552407e4ae3b0e000000000000000000000000a5354e75ea924f700000000070cc9a0a000000001100000000000000b75406d91977401c9fbc6192860c2f67cde80086b2cbc0ded6faef5fc25e3a53918c5046024cc4300fc113b66b9c68534487717f7bddf66bdddac0d41d83953c1c83f762e6ff966138401da998bb7cf85924457e4d1ecda2eb641b5c005a1ee839526a1e264e9d223fec1a3f3ffcf2b9cbdcbed88b66a5a78be47e971097633a996be4dc8aabc3fd1ed70b8dfcda27111a7d187c3f68c8dda968f66bb6c0e1d7569db1f19f8cdc3a3fe96b8c0461e4887ff1721bd79ce8ffbeab62a00783b55b6c4b28a2937d5d84534296cd0c4e6c1cadd74b64327e625a0cd7b3c08c8dad99950484a550f7122c0a51fa14edf3f2b46ee251a8fa7179f79a3f89211683b5110a2b7acf4c8800197f69502da902efeef274d9ba5d120f27d8c6c9fd1f941ada09ebf62f3887a6710a13df267e21a5d6a0aedf533edba32a1a3b471d65cae6c7fc4b22b5b91f94a6a3d7205a606b8071acc61afca9398f40b37ef3a8a147b41e8e65ec5b2a4f81fe8391ea88da7dea8c5c7fc421f0597187069857d88ec04725a8aa8974ae33079d9d6a8642274190f9cd637ae4df4927a5d08edad15e5d5912660b897698df11ae3e98b31ebec1b53ff1922c6b77d69a8ac2c5483879f6a6bb1095cc0aee2277b84859ac04fb4fde8c2f8e7234d4ec8cc553fdc2dc14f7faf0d122576b70126b91d3a3bb70a020213cd9e274012c4bdeafdc5ac008f074c4232151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000a44e9b1da6cbf048732eac2af32b471c382d7e48581e9f68ef72b142b9a0d809221e770b991b696eebfcba3dfb42a033ef0e8b51411df10097b0b6546f7183716b9d442db85dba2f7bcbb14960a7173798ebad5e614f264f1017a33c2feba8721cf5b06e492e5365029fa63f31544e0a39b36617ec523a2ffcfdb3316e432a4220efb6093473200c1440963be7c55e27e51aa85345209913273a72332033d73ef5ee845fef390743f874935443f36a0ec763ab51f4b0626cdd9d1c69f418fa68a83da54a7a792004026faf432175a722b0f05c0a6dcb6a4bed29b945e0043d2b4605013d5454fa5954735d44b9e6d25f08b26f1e54bc8124fac9e44a364e51659d44176be562445dd16d12251c567f0d6102dd425ecab149958e84035ed86308a059671bf222be6c1d4acf423f67d23562479d69ba919b3d69494d075665ca1ebedfc74a0dfbe72d208f7210f4ea4a4f1a4ff62471cacd30e1f61c059c7302778efdba7277fef41041aa8828330a607344f0b82e17be77431856e3754af89d24e6a4db0fe71b0a2a098fe73fb639933008000000000000003eeac61cb823fd709390605981f6de3189dca3533c3ca72ab31cff1b16dcaf1720000000000000006595ad757458e55c1cbe664e02b623088ce8c8162926a7639fd31e397e55415cca9e9b3b7d4b112bc6daa443fd90213d21a296191586f015b428b654f5059c726b02d55b7df4380b05e5b822b170f55daccff12c13b76068c85fb20999e22503d8b919200fbcb028edd02868e816581f50c5482954e38913fdf7cb1b39b887112000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f41cb2d2211880e8e59192596772fd59d00378c9c25371caf6ca3764d5ad7dd7f415941e97457ba816eb254023e6b529b762be3286f44758205c702f5043c2a46481800000000000000a930ab621f508c60d0ac1d55cafca03e50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d24ef99643aec8e73d915452cfbfeb90dcf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e34cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc92834cfcc45e052f065c9588b72456bc928887757203293021a6e3dca281879e31f99055c65fc1ead678699992f2b7e8257378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41aa40713ba78cf944d958aa1b8014fe41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c699a00a33ac59320057c763dadd9f3075065b059783ea228b1ace193aa15845080000000000000072bcd6234e1f6e0445282c404aea82063fafb96a058e1c11291c2a1b390f553c08000000000000004bf3162450e27448416e7a642bd4502191d43b61fe05a12a52586c4831e605420800000000000000299644439a75c40062402d38d9fdc014c5e00f0b6489b233835faf141471ca770800000000000000021651286546892de933a927535e5f06afb3740a971c7f1afe558a24448cc32e08000000000000009726e7720b6dfa07774778758b6b964c29c8a22e007813573300c24e5d5607382800000000000000c19fe641969b8b0f8f41de1ae372e24ac8cd3e48aa425457f80ca661331a98065ca838711da9f27129a5401bfc83f45cb3bf1c08c2d06a60e678b454e0b6ca4e31d35404d20b1b715cc3756395c74e63b697ad6e20a1485af4c4405dfd33645a07d3f7734d5edd6a42080c3da6b0a5129b4c43043c14b4196a632c6daf9d8a3cd8f7c30327e33a04493ab014f3b65b14b6ab31613511101e0ae4014900b3352e1100000000000000e05c0b3198b6792420626bf2a8dc669b74a13365d3a62b94cfa7997f5a63a41a7085e7a5a2670a581bc38ee367599e5f549c97814578895722492111d8ba34aef6950d2ca8e6084fd1f976679f7ed5e2c4f16845f3a27779d4bb6968b221d058d35f00d4007bbea31e3920eae9b7570e2ab4057a83d8656e418cbc35e883d9c99d0a0a782736ec0ad637483bc3fb87b0570da62bc4a47d9f32e0bec975d251a83bebac9fd58f84a8673d572582ee409312388c2d6d78b8b1940bf7b01232fc8251853e742eae1ef6242c52fbcba12ada37600fb637178b4d3287e348eba6bd47fd404d5c7e67af477767f211db24559771cde040d6637d2274b0e18405be4172a0fcc600580cf3ce4d5b2e1d41174323b92974d1619fb7dd2356a6f806fcf74a1bd0baa4f9f3c86e63c7b257dd8623106f73652e6bb78275e6a071a1dc3c723ff99059a558b116bb2eb83ed990d6a61888ef4358ef15006b83070cbac33f44cea9544bbcce016fcc0def25da330b57ffdfb49e9f54726bdb3ecae15afa8c375b986e710caa1df015830256abb1c6a1e6ccfb831acec26bde1cfbb8468a401900d58bf1ee2749ab5deae280c8ed2001b3fe5722099b9e1f477736409a66df2aea686ce1ecc1a262eee9dbc2a7f6ff692eedc1b2383e20d86923024b91ddc2d8a2ed811350ee54446bbbc0e39edf56740e3d1a5f7b7535493e3a41ca4ec42926e6b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000feef5725bb6b111c79550f415f45e12c1a866f1dbe383519369b1123a836ab3808000000000000008e42a201d5bff339244d9f09b394854a346b530dedef071a3cd7c730667b544d08000000000000009e59cf6f08d59e16787a8b5c289ea715ba2ba765d04e8a731f161b162b9c5e2d0800000000000000389eb7593e389c4aa0617241aa48b850b4b5a752fa73580c102aad2f819121680800000000000000513817507280705b7481f13034bb63768bb1ea66876dd01226e09f3a5e913d0908000000000000004dc6de27471a191d85c416383e860819ac985f0cba225b3dad2402644b9a244508000000000000007e71b939d0265e6894471152d1207f0186367551e833ad5dec92b10066ecb00708000000000000008f3c2a77bd1aa45207c33e5ff1bbf4517ea4f3715d776463b12ac62e4fb3b422080000000000000017c5cc04b528bf632929c321da03db256bdaa6622bdbf0463d8e7157bc6788140800000000000000cf276039b54ab401d85b853c57db0343e77d4d561cc63e49bdc6fa19f1cec90d0800000000000000fd887c2c612c9446c46f035edbc1124f8312ba281953fe493065af495ebe461d08000000000000002629885254996d5991a17b1dfed33e3735fd902d8af744288c366671c40c866a11000000000000001d721ccbef44068a4c6527ee874b07b2ab89fabb7d5d809cb5aae0517e6428b6d08cde0f2bcfd2267dd4c01db92abda0980a0d4353aebe7642375d6554646655b3839e944d9177638b407e5dc37eadd21739e73674a94084299f915dfde9036be69d633f7977122282574181217c168251e41a25509e1222a150e31c41a68f6b25887aabd2d7cbbf3daf9af0e2a9115f545521e4597c81f6a48a33d5ea169d739cb4b8d4481c665984e4e09ecca165e727781825d1a2fdcbdc01eec9f08028c911bbd9925a5da4d93c54b240def7f7aeefd868ccade7739d98894046b90fa829f6426dbf7043924c958385fcde40b4378b9bc49c8ae502b2b28c0374e903bedfc49f992f47bea7d578620303fef40bd3e8832c76226b2b443a29b9b56adb0f74f389d24015217dff7e198948670bb3dda23b1ef73c0294d3d09fe121857a5dba0caa3a76e2d0fdda2ef8bbc72229ec85b3e4f377aef2c3ac5394f92ade5412913e6ac181564633b025ddc10d7140c23561e669e3fb5bcf30ff6894a3fd719b66b96328056daa7c3650c5db90bdf45dcf713ad0a266cbc3c0c1f5aad77c374523c3fc392afc9ef9e25c741848699d56735cba6e3cc388221348df6d93a2815945e1b887e2146ac60348fde8e790e2444fb985fdb960df326fa77b8b81b123d2812441e19700c31110e63aad245affc3085cff25e89fb4aa0bd3901489db3592017a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000390b3e524e0dbe0bd75a4066485709637b4842250000000000000000000000000730046a7173c2399c833d6c9c833d6c969e722a1d52cd64f09cae23f09cae230d542661218e196cc22d812b000000003d0ead7600000000000000002b13d27035a3404800000000b4cbeb504c829f3899a975090000000000000000a87cf9653451d815c4024e37b70a7a158d54ea25c9f4c125a8408155c5706a4e453b757480ede00093697e224b550e3cedbaa049c96bf355873c2b3fcf10483c7d4361727d436172cf10483c837274299d4ded262989f71bf7027575f406bd54fc1b703a7229933e7229933efc1b703a71d7176e4d177f20fe4dc24296e27924e61d9d2fe171e60be8fa4864e8fa4864e171e60b9d69e635fb80592b9d788443bde5ed3c0000000085f48e1ff0894e4de089400c4f72b00a629cc446544bb552dbe70a29a0341028bd62164b34a05610fc405a5d1162684211626842fc405a5d90607e0c64ebca072ab50f3204b076670000000000000000000000000000000000000000000000000000000000000000390b3e529d7f1731237acf140000000042714b440a8245241017b42292e1de2a2500000000000000e38b872afc42593e0ba2626b0000000000000000000000003b5cab747e2265404bfae2174bfae21730a74528a1b3161e96573e5ab698721f75e01a3517e068688e835725cb9a346b4df35a170000000000000000f3d39119756666427aa38161f037bc45a84a31223d6b152d477f7a1f1d9ca9750d77651bec2ce0495e77ef59874f3275fd3d1873aa46444592cc3b7516bea95a1000000000000000a27ced3545f42f45b85ed470b8982e0ab265c2359a21c84d5170fa2ecf231257ad452c4bea152c383e19e346610a413141e26234d0775005d100ad186e16a36d100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f0000000000000000000000000000000000000000000000ca23fc15000000000000000000000000d81a7d4c0000000000000000000000000000000000000000f3087f414400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c523000000000000000000000000010000000000000001000000230000000000000092ee7136000000000000000000000000fbb541369e4429230000000000000000bceeb20d5ca1961800000000000000007496637323db371b00000000ab18a159000000000000000000000000ab18a1591eaf0455418a3c70418a3c70b775f811b7439b3064e22b2eb596392308b2ee3d876d985b9c7e6656bf43d668af9bca390000000000000000418a3c700800000000000000000000000000000054e97f36000000000000000000000000000000008644d03b0800000000000000bdad5f730410103dce68db25a58a850f51ae315fc433ab3f2916166abdad5f7308000000000000000000000000000000a6617a5b04f3c30d399207344e99a6399f101a09bf67163922000000000000008248632e1112cc37d94c247505685947d52ac353fe3fd41f0a25ce676254b56d6489dc674b004e6a146b970340437d20ae6d732c2b6a3150f17090518248632e8248632e8248632e9a925e739a925e738248632e8248632e8248632e8248632e8248632e8248632e8248632e8248632e8248632e8248632e8248632e8248632e000000008248632e14000000000000009630ea40af75f33701add84c44f9042c444c2c57d6a3f53f65f1c0302a0f0706606ff35c3bbb3b3e250b247286d6a230000000000000000000000000326e3a028e4f7062000000000f7c5f77000000001100000000000000b692856facc593e7e6801a2a2b90b7ddc6c30b0e06952d190c2ce2e57612aad6abd88e6447275c5e0d143eb8d3a96d6e905269bdebd91c8a2336e5dc3c623e559984491e3c6cf5b00035851715f869a055fb03c0dc75791e5a9f72502015035424522550a1866bf188d004adc6a62999698513d398f6b59809123bcc69903e6dc2041ecfd7683406bc06a757200c57cf3dfd9083348f595314703f6e33d80201cbd4c9cd27c71bf8a0ff0ef762875074e949a6bc9db55d655f1993e9f805aa36a93e28a55b0899ea29d07a70f7cb9a23decb38bbb9abd0a7041b886b756de34da8be023e4283f843dc9e2991dc9b6d2b99a4544b90523c6b697ff166e0a89862f21f3ab68e00603ba443356a81c39a3cfa8d3b9c14e48ab2109d3404fc680c378ece210566628a72af29917f929c20ed736bc9160503f7c2fb4acf44f113d872bfba7490862371c9143262eb5bb7b8b0cdbf6b32d1f07e53c1f3ca12a05cb38a7498ba2a2a2ed030a423aeed5ffd60aed4542d308f1ded942a550f9077e505e7bd6e623155076c501f66fd38404c5d08fb4107f1636f21ac949c3e8045bf1810502a96a457e20c722e4a3b554a390a17aafdfd2723f922d1df63ebc947c0ca4a64e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000ab369a3cc790e74d54bad30f4177b22b449c0e627ffd4774c44c6e0ef6c74272f63daf46df0c675b1d2db029f8e9f4376f7fed5bfe7abd719a690956b60a5c34adf91b020d5e2823b053b173b9480a37cc75074e752ad12ba9b36f179729e31d7b25db64e752464801a07b276205671e42b0b34a0ba1b024c44e424f31ade202d53bc05215581068f2df1e74865db15ebc9a1e708358e83636c41a3a02eb5f3f741de822273d480d52b4fe09246f592f725c0c47df85696dd3df0153db340a268e611761f3232e303cfe8c5bb1e8716458eba865a865ec4d109eeb4571efc32eee152e41c6f4d10490b88c1f703da824545b35057785cc30f72123269b634b0ace783846f732461aec38d83f255bfe7588268a6e57c44d766654d747510ff65a1b15f9753d3ea173f9b09f343cee4c3b3d727a17e8ce89488b65276f8612682f764825475bd86e3170b0f2633e191d706f09b018374c7e384035774b62fda759b0834e492c2d3a2b25528858b9966c15572cd30a682d94221f51402030a5c7643ef9a00f76180b726f9d4f619f51ca5e080000000000000057b2d71e3eb9441f519f721e35912319bfb47f4eff619236c97aa950b104601e2000000000000000586cfa493923663967d65304a070f4464b34165b8f35b33ef980c31f3fba2f564f97287364e4151afce640733e87467387eb42410620d2037d1d2c473efe4f27e98ae46d34d06a655e5dac6ac3db3a716399a266873d4e2d3db866252530f94d6db29168b77f8306b58a750f52798c5dcea4102d21f97c6583576f4c1a8bfa722000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d781426518000000000000009a27556a9004355183fcbb37da73b04950323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dcaf2d6270280f6452bf1f06ca1482738cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f080000000000000033f51a6f76aa4341c998a87058127637dcf3fa7588be991741aeea3493cd402108000000000000002ae4b6749faf736e435fe421fcb23c084cd42e5899899b0255b8743437c5f95d0800000000000000f21368294141fd691516bd4d8c89d43ba804062a0102b40869286316e689bb0e0800000000000000376efa00d0f1026efd209d4210ed665e910ac86dab55803c8954255094b9f83008000000000000000091bb04a06ee9045fa39a2f952da5112095be1f5f3821742b899a4f82e7be082800000000000000a153902b89e6af50411e125c0c96773d1abb1570a2258719f5f9921e44947d69de279737a146ab5cf6182c4a99f9782e03f701231519942291f8796b4dd45f1be9aae14a8ed581609da59d0ffd174f3e4e855c5a777f0618493a9937d5b6c922d3b95904ac065350510b0d75938efd1157468872cbd2842b040e07632644ac657a2cc045b0a1012849364a04b3779a2541d1ee2489937e46bd7b89617b39e17511000000000000007b5ea485cb51e8e067f9fa9943db2dfc1d84e795dba518fad4fabcf57981d4f3a7d667e0957b042a1ca451f02f5d7b05ec491aacacc36cead84fea248810fcaa5bfc6688da4ec4bb19550f09194aa8491e24f3fb641ab645b2357006bbe29a430aa938fd861d2f91bc73cbd6bb3ece811ed4f11259a8c58c7f9a93e8db9d96c00bf5d04aaf4d89d31720daad2d581187a6c54e97d8026f4dd422189c56b0a5eacde687b7c63d08ef60ea7e450661cd775671e6e2024dcdc4fadbe9f89a1bbf20f178c3aa08becdadcc65d346008b30378c2ede2964161e86bca604dc474c0ef847615ffff3e34bdad245b53b4da68166c50ca4b971ecd6d586b2e2a2c4884ea9c190ca51e469d11f07408a682e5b0b6e219b96d8dd443aaef9dc84792bf178955eb9fc4e27bb1584b2c75b4620c5f4cbecdf1feebe16b289eda40e6bd3162f186dd178a6608d17ddd64e3890c4f034072095273347928a15980a67ae486bddab2c60e97df2a0ae08c4cf771110fab61053d7e9d0e20f8af24b6162de78a727a2eb143da2eb28a45d5500141fb2a6b66be22e567d555dafb600e617a28bf89518033db16e9425bad22285f2c1b893665039c6f452607bc6c9304266853b50ebc8dc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000564fb744aa75dd1bba7206154e558335bedb7f0f44f0e0297616b7355bd79d0b080000000000000085319c12ab6016180ca53c54f542ae5aa303721a1391b53df6efa65542fa7662080000000000000079140764e6e88a60d6bc3b2a6534452d99c5a536d02c7a25f1f98956f1b1dc630800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae064708000000000000005108f33d6d04dc1e1ebce14b9cebf10de27cf31ee3c9a0257eb9b54d642e2602080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a2445080000000000000023f30e3f36f09f041e50183daa02001c555dc461f1ee90463887d73931eb7d73080000000000000004b5fc56adfb312348fbab398b497a5a108c1140a154263a9c804d3bc8c6313f0800000000000000c9b8865627f4e12656b01820d8b14e707bb6383e7d77ed60d6603732b7018f200800000000000000bcd81274dff3be5f8955741f173509710d3ed664c9a2e95c910df67774987e560800000000000000383844744a8e2e5838adb8704bb49468085eb70479a85a4a4ec9935b3844670a08000000000000007c8eb236fdd04e53fba29b2bd7557847614aa66c0f723a6ea6d1c31b29d132371100000000000000f2b419bd03263c84e8226bc31707fe89796f5003ca75f0317bf0f9debfd3cbdfad7f2575485214676f6984f7b02942ef8c70c68968b66c1a56d1515c3e8d2d534899bf9df0ffd7de7257872200adbfec85184292d6d0d13999d356249eb71bf29370c17478c7632b33a6769c5b05ba940bf7eaf5510fa3fe5ae40c6b960ba551971f121b5ee9b3b805a78f8332ca877a890440cbb73c43cc0e7da35d56c89bcd2e25bd677f900a092a17e56bf65f5df027b643cc4f83513dc57b8c074cfb613fa5d3d064cfc0ec6ad2ef50842da6656f406be8e51018534f32bee5253eea9c42785087dce30707e0efd18b4522c37748b058645dd222bb33e9687185eb98c93fd3744b60b5b21614ae08207d7e14cb8dc4d985bdc17851190725a8e18602dcd88db3b07c32bb79b38f99f6f9e35fa726d67fa3755bd7a68d5b0ab6987c53a55fb92fa40895dfefc8f77e9524db4d76a25db38f550bbb6611643382654afecb082eac28dcb170ad354b1d82f1a23eac84f73e66faaa4cf67e9bdd394730185acc27258e821c8f34f141464835c05ef8b4d75c52b32b7d8412792c5b07052eebd265d87fe77f599621d2f1be8034cc462df7b3f4884c14ae2457ec6d9fe4e2a1058b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b0000000000000088d8051c8ca137319f6e64445f228219817f1a24000000000000000000000000ea80385c7b117f4638e5743b38e5743bf4bc8937063ab66599c38f4c99c38f4ceef36d68e5809544019a6b58000000003a1acd6500000000000000005dc16533b973ca700000000030dcba431a3f76264a6f65040000000000000000767c7600f1671d24b37e8e770073bf3d7559b4467a27fa5b2d449b1cd1536f4fc58e9a35589f7627bbdace32e42d3a2213fb6a062dca8a05593caf0f80ab2361a06ceb5ba06ceb5b80ab2361f3c18740d9c1e45f055444699407042afe5110317c5a7f6a0eac71270eac71277c5a7f6a69c7151bb434ce52ab4b5e1360ef3c23ffa9ed3d1d7f6a3316f8d27216f8d2721d7f6a336363ec4fb412ee71ba438a5c1f258e50000000001b74131421c7d544175d4c3e3e743a4bab26a823dadf5b101ec49d52cf3cd2766f73bd52b95d923c8d2f6b43fca0b426fca0b4268d2f6b4303178f1095c44756c5f1d45d21003d19000000000000000000000000000000000000000000000000000000000000000088d8051c387918149319573b00000000c52f2f69d8a5184ca1c2583b2a39f741250000000000000027b9372719dcd7645070e96e000000000000000000000000087a75124622564fc036fd27c036fd272e87ec3667c6c074a946ea15e3a76416486ef8230f94fb3b328c206555a95569551a2b6b00000000000000000a1733192ebfdd637809da0ef11c041d7b40b52bb3ee821a7ebbcd658256830eabb0c95d0e0b6a334de37d6444b1940f86e9b3498ff3a3527296991fe13fff1010000000000000004a81886c5835d85b439ef3611583c562a744c800233cae5a0e5b1b34c203f0291087e72a20b0576dfd87116b8624dd1ae08b646692bf4825da99af627c8af002100000000000000000000000000000000000000000000000c0700000000000000000000000000000c0700000000000000000000000000000000000000000000000000000301c00000f000000000000000000000000000000000000000000000086b64074000000000000000000000000e488301b0000000000000000000000000000000000000000a22d10594400000000000000778138540000000000000000000000001523c92905a6a64f0000000000000000ba74cd140000000000000000000000000e67c52300000000f4983a540000000000000000000000000000000000000000f4983a54d2e3ff772d65c523101e0000514ce860000000000000000000000000000000000000000000000000000000007781385400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077813854000000000000000000000000000000000000000000000000000000000000000000000000f4983a5400000000e10100003d83c5230000000000000000000000000100000000000000010000002300000000000000f269f0200000000000000000000000003e82da059c8d106b000000000000000068c5155c5ab5063b0000000000000000c86dd735c2632a260000000061461a0b00000000000000000000000061461a0b29b4f140eb171c67eb171c67512b7149f01b9e6a7451c202c56fb270e44a4262f21b5646a1e3b651acd40236f9ad2b460000000000000000eb171c6708000000000000000000000000000000256d1e540000000000000000000000000000000028581c5a0800000000000000d4fa4e00bdd8164dea99183501996666fab77476df8f002898953043d4fa4e0008000000000000000000000000000000b4f1be1c1da41f41764ea566029c3a1cb64c0b5eaec8504c22000000000000001cdd871ecfbda61af1c8234d66233744d394134599bccf44a8b9654185136322e457d4185680f416724eda359576df57e01ff570ab6656564a13641b1cdd871e1cdd871e1cdd871ed99c3253d99c32531cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e1cdd871e000000001cdd871e140000000000000010d34b2ea592a024fbb0b837bab4331bc0037b5b9fd2e2041600b95ac7f4e547105f5007321add5042a2730877c85223000000000000000000000000ead21e60dcd00d3e00000000f682320d000000001100000000000000a9443dccf0c71226e5039bdc931ee77265f0a2763c7e7595da996bd3343459b986e22cadb01be5abbdf1c83a5fa039156058df287868eb976720abc383295aeb38e500cc71e670eafff5af34d33eda8a3945c3aa7dc685e25eae4500b2f4fdca4adb06ba8248e356f0dafa3efbea7e05a138f3ead09e4ebc48ef29be05e8be9480af1a63516c370526702ad541d0901b03966722f20a4c37c0b73464ffdcbdc59c867227eac7925bc34a961ed09ac3c8f71558e79003ce254f39070cc9d5c91e0780bab03952539ef98209aaa181770dba8f9186304cb2399eecd0a5f173f7af35af50838679fbeb79b7d4fd3d98a66471f6494f3bb143762211f2a7c9a2ed492ef4ad6f096e975b4009bd4b3666f460cb39b254a7bee360d3542ce3bd7047fee3ec7f01630f8ad421162507be342bff81ad73971204c956147cd080ad6f73a587138e1453469751eaf692ecdd390a45aa5faa0bda1274699abb00c07230fbc7c31fee7773b216c326ca1320fd55a787113e6df720ac414b10264bb8b914ee254855666406323fa64e7130e390be2ee38b0588c5c005c05f635834dcccf7874c89cbf8fa25ef36c0dece34ed8a35184c9a02a25ce9d723a7bcb9ab753ac3fd8564e3d7a7365f42a6809b7ee2d8044c7bb174bbe5f9e1e85988348aec77576dc869d2bf5be150b0d0013d27c7a09d359bfac0a43c68fce94a419ad13941bece372151a7294ba07761e2df8f3f06b1d589dfcab88018aa1661ac73f145e18fe0bb0c000000000000006400000000000000aafb310f72e19a0ebc8cde16ce1a190614411c14498fc42d164fb71ec2605664bc33301d6a053b625385e11a4e873c7089cd8609b4cc7807844ba8414d8ecd753b4cf70717f229467c7ddf4d986cff3b8c4dda3c1ba58303976cba23a720ed3e6670be0dabce1c11f9f47b4b5cda3e486db36206cb58736cf48fe45dfc2d296da2c48a41188c1d56a2300b77723a3e0ed905516fef2cc019d75e1b4683611b1c458622665d49752e01420116e08cfa0013c1ef72d4c1c112bcdb620952b6580f46a31d0aef5c840bb11910625703bc3aef411466bb755a18d532b81cc698dc5e2f355e0a076afd51ec86ec0f942a2c09637d005a3837b23456b7781aa3edce6ff735260ae945934a653c4b263c82361ea6ef2f7730411e5e57084b57ebbca02721d26e1cde78f1127e7a7a106cf94d3409b4bf2b3acd2e03abc92a587c0cde51c7eed963fa13cb54d62259384f568d76cfe825275c4c7831ecec76678390e00bde1b15523e3ffa36db389b46db454d31bcffdd166a6a32023c4822527d1e2c1872dae76818d683473ecec6603296c50e0800000000000000c94d6727762acf1165d764590773484d30e19e4ba5c9da39902b181a49c7292820000000000000006d767162a809c36c2b954e095a6caf2cdff3a445369fe46ccba2a02d18c5c52654b7053e0bb00051bf2370164f683f132fc19f3db8c1d80e39b2c524c1291d17d4cbf2171c61b9093b70a4768ae09572f0793064a0d5056725d03e62a81f6e3e03bd4a1ff0c5614df774e330c5ee6d51a6098c7132339f419b4f5e60076357382000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f411f1d9d470aaa1103ac3160697e511d77378c9c25371caf6ca3764d5ad7dd7f4173c60920c8a5963e138e352a0effc7465f4cb84b19246470805dca58d7814265180000000000000043389d147d001d391ef7ef4a8a46b44c50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d16e12264c1809737b4105467641ffd03cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d6c5bbe754b954c445b56763a6920752d59390e69025f6d6486688f0e3af8f34c73804b4e6c0359756b05040a501e2867378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41e2b6ee598805a618e1829e1f0ba16924378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f4194253d35c330b44aa6730b7137f8400ddc676f4ececf155e098661649382dc1f080000000000000096dd3858bf092d2009df4457c673be30303d48769d9b8140c50ae86576bb925b08000000000000009134de4ea881f31734b21d1b3014c55e6e3f5467ba0b083dc2524965f9bd965b0800000000000000b9aa4b3338ad900a69065b6a15d9b64825cc4275067f52359a09b461eeeb212e080000000000000075e3d7676548e24601de04327e4d1e449a17e742cda1d37442e5af4cea29ec020800000000000000424ec1679a92236b530bd85577a8db15f585295bd061af28ecd4f83bfaab8f282800000000000000f9a41723ab7f503ff4e40f5742910c22760e1e6f08879a517317bd4aff78a4272cc61846e5cb1527bf67841eb2918711f624765ce872364b09d3c21c9fa7124ef7d59e5ab3a2a23991cd0e0f67f05140083f334da73e650f55fce066b29b89625340c04ffd78b73872972843e8357241f8cf6e506e3ff8177890613ba1fa2f58b7e0b670ff875d644d6924066080a9336074da2e8e29b249d62f0c1e74bf3b571100000000000000ae99e1436c0c0707ddf5740bb63f7b466873f6ea635a314efac33968fa4415ea8f5beb498dc5b8035abcbb924aab97a801af8c6a90088822663c4e5d64ca01e981f3ba622c07f8ec283aa4511379e136e9d2138546d90a00e65396221f02eea14b28e51fcdc08747be5112dd7b66c37363918adcc0fe51c607e56a62ca7ff5fd513df5d5babae2d763e8d2d6b7d6fdd27e2881be5fffe2b8cb5474e4866dbfd6d38dd2e3482c2be65d5339b963d95db25b89b5e500d5ab9243d7607e536b4e5c938fd8242b94342a3c17fd2b7c704e01a9d1d093fb6109f56ecea3309e4c97cc0d7abefc3a1e1f1a3774ea3c5e71dda6b806dfa81540a1da43fbfaab73e45293e800ec62845d0aa208c07f937e3d7ccd708015408178f5e9256e22fc0205355dbf37587d672c4308548f6b58745b59572208a74af89ad07864a69431c642fadcc0fd5b5b21f203824502068f5274c23ea6e93aaca48b0956cbcd5a41951a955de62c13af66cd6071fbb56bc0ca0dd88254187abdf84a5b2c6c8e4639485278abcd76f85d69b03c44ed07df983acede766dd51afa7febb6dc44348a7bcd9b49086be5a890b76834f78afed3d73b895b2c5e009d6ff6345ef48299a928d432222edc0e913cbc43a92a2d237dc1d50235480ec0502de23a63a906d1e8d96505d5feaa1a6e6ec57e0ecb13572b7f7632b623e2254b44a92cd9508f154fa442719a71b172996504a477e9a54579007b5616754daa1f4ac9ada4d42c90eb6e565c0d120c000000000000000800000000000000c0a3ed68a8da1d5351df8f75af79b71a2bdbbb0f0b4a1b03dad6de26b0534212080000000000000056e6e0473e904c73ca7a2e28b0d4a320b4d6653b8e0d503b9869b537f4a3d11108000000000000009a97f202e2b6865a7d86a450b2d5324a91ecbf0e98744d365848e2318f7fe3390800000000000000bbb46c6f266ef942f5256e04ac15476f12f4fb6aa8725d5a80ed485964ae06470800000000000000d0af2260a295dd424fa2a8414610be67f31a751cd837082436ae281501b09c4f080000000000000008cd06507c98c741ebc88f442ef87b08ac985f0cba225b3dad2402644b9a24450800000000000000a3a5e8769cc3256fd9fe773b0f45094153c4e536e8cee40adc096c4d27ca8330080000000000000063829c68a388e1311feccb286ceeac23c9dcf101da9aa70bc39d1e632b2e90140800000000000000b8ed8969b98e80517573a33b3af5ee01736b241ac417d91c3c96333dec87e50f0800000000000000080fe812ffd4c41c06291930ff323c651ed81f1c163b723fb83a8c0c90c2a1670800000000000000a4dba62e0fe25407897e0c6327b953381c86516e8a2ec410fe82f906487712090800000000000000d723b9083c13122b58294804d676985262f25d238e931e00de00ba25080c86341100000000000000ed554ef8f908d6b9c80602f8d0961e0c2e30ca73b57cada43fcfe7f1e3a8c52fe6602407491ab2ef64a16009e0c5fc3f497cc3b4ce1ffff3211ea8f5a3e62083221dc730f077c169e4f0c075394e3478ece7af4a7b3bcc6cfa1ca2981966c1acbc3e0d482e6591c70db71fd6370758458829215ac8de8048f66a19c16d489310baff921824db0c34004c5a62605f92b0d0d7ccd2a7e2764e2d5135543963d4dd5a7700a52657f1d1ad2e4531be76ef409df60d6a043dc0012e986f69fb552172a263d44bf2e110235a6f6df3dd867e34b419df3334712b8120d02fd1df8ce8affae8a5fffc466f69d7e18afe3ca5b8fc4be286f04d59880be54295a0ecde81086b9b28c873c2ff07df6dbb1a6c538e17666e7d1c354f504d54ae0f4adaf54e085f27806b1760f6a3d807087cd2fc45ea69c2ef60672b8deedac74f9aa95dd736bd46b796e486342fc006121e14a328a9cf60a08cbccde63f4be80f07812c2ddd52c1deb7e41cd3607e187458ae94e137f5d639b20713034f9eba66f53a8a1e12a10e9410ce18dd7159b0d78c47be97c5ccf90c719a9d51c97be4e79345ac553d9be87d9eb06290a578c1278e3e22a2b8ba44551c1b564c9f4a92500c3ce99d678b4d841e1c6187de643a3891445fdd5abeaf7fc5e52170b346728b19cad0e7aaa864eb6c105eedad7039a7d054b8041c885a8238331ea22482463609dc6390857a42096de2dff49cedc840fd24f3cb022e0e5e2f01f34090b34d554ccf078ce603000000000000000c000000000000006b00000000000000d2c1f3593c90202075d2923b3db571334d3ca71f000000000000000000000000f637e64346ed6c0dc9977967c9977967c4ba5a1761560335a791293ba791293b0fe4966aa319ad44e47cb43a000000001518b9110000000000000000a2f5a53fecca4a64000000007dc1bd255a932905ac3d79740000000000000000cc11d31d0ae4b80abc84ad211930f201c675984a303e0c1ee6705c104a89972a98d25d195b016a177ae9302f9650d3132de7cd20d7417b0e059bd70df198151fe13ba440e13ba440f198151f88bde42a60117012e7836834a706b848ba97905bcecb1c50c89ee15ac89ee15acecb1c50369a102abf25eb32b56a6f6ceeeb1925235156705fe65233896d862e896d862e5fe652330d0ee22a02bdfe73db4b2266a610cb4d00000000c9ce381148dd635ea53235464bcb69677e2e8f5d2f888a6ed1e84c322b26324ee8365a715fc1ab00a5883751ac297149ac297149a58837516b2baa71b47ab763008e3d281c523a410000000000000000000000000000000000000000000000000000000000000000d2c1f3598918fc2b53ae32760000000002fb6942c3ab917683f4ae052fce8d6c25000000000000001553a74d6e0d5e32e72059390000000000000000000000004c6d057646957737f6186772f61867720cf49a144dc9a53fc0f192639dfc342a4c32840e219cfc43950fa531c107e24eda673f5700000000000000002c764a4613654003c228302ad3f6ba1b8ef830717600e126a56b31464b455b649603aa77f09b234759875e67df848755fc20e96a1b71ea1dd1f8a1701fa9e24010000000000000003340c03f9d51866ae5286e63b47a94682b8850228392383caae193069686de0de4e0d40098d64515c5fa693454e4694a0d6bf307bc69d115aa7fba010ffd51521000000000000000000000000000000000000000000000007a87ee730000000000000000000000007a87ee73000000000000000000000000000000000000000000000000dfa1fb580f0000000000000000000000000000000000000000000000d95f400b000000000000000000000000e34770260000000000000000000000000000000000000000f717d05c440000000000000039b0f003000000000000000000000000855faf6ed7aa4b52000000000000000044f89e060000000000000000000000005d4c626900000000a5b39d0e0000000000000000000000000000000000000000a5b39d0e235e041fb0b6f12e8a376c1b28cbc92f0000000000000000000000000000000000000000000000000000000039b0f00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039b0f003000000000000000000000000000000000000000000000000000000000000000000000000a5b39d0e00000000ad95703a3aee5d4a000000000000000000000000010000000000000001000000230000000000000049670d08000000000000000000000000f70115429f36415b000000000000000088371442e2327d77000000000000000035c4660076621b7000000000687d7c41000000000000000000000000687d7c419d41e34112a4fe3912a4fe39d44fbd4f2f1d040e8efdb145e8d87452f7bd406cc4b4195cd6a89534cf88f629c93cf131000000000000000012a4fe3908000000000000000000000000000000122bf13000000000000000000000000000000000aaf06e5908000000000000005b805a303fa048475d160238d04efe3e3a24a23d587a9226e506e9135b805a3008000000000000000000000000000000c846d92f5464f0237e2c914886019d70c9a1675ca1c04b1c22000000000000007308da1d38964f0a091d6e640351ac55fd4f8d3d94ee566a6e426b20203976409842c4201897ac0ec90e541bfa91be311a07a3600967bf35a9ac4b407308da1d7308da1d7308da1d3f0b31583f0b31587308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d7308da1d000000007308da1d1400000000000000cc66ec1535b1cf15b45b3b684ebc803b9b60454b6b77cd1d86252663aed0c764e4bc422eccdcbe4a077d3672afddc40700000000000000000000000084f5711bd4ef4d0800000000b760594f000000001100000000000000e4c266bf99351f331e0f79c84a96706b74cf1801b55d0aa09c161439bf241f05966881a828a487e1acc4bd2c000b2b71b84aa7b1bb940ad9118dbf0c0a88069afb9fc05d6c6c53cb1ac8a8cef98b3811648a41c48075fe3258e36647b1aef236ef5f79a17d4ab0d53294e6f94ccafa1c6c11c25d95a1cac551d1795deee7f129534a8f155d75b6df3e013becb0b54518359f44922febbe196a06939d6ff9d6256d42433ebb69f6d8251017fef61c224f5f2561c261543ed78874c45a5b92bc41af0f635fe8e24e74fe6e09facf74aaf90224657eb906f8d53c2a678563e802aec49e58388c8bc118afcf30be61391b1940b23dc45187b430f095d745adbff70223fb448eb7afc2a5fcfd2011b1cacab1682f8a1c217554a2636a19342a4ba11a8b15e39e51083d7b7b6c4654cd8fa2d30b37ba13324c8391a82bf7004c23af4f0d369dfe2bcb591a8a368a942d98b271be9ecb84653d179278c4771051e447627af5252b16a0978ac937e3d0d3ac502cfcfd8b1ed6d45c295b8b197a7c522fdbfaa579a23741683b4292dbfd16ee21c6c7cac5aee5255d731e2a37042ac555a39dc50841905d99f347efafe398cf38f2973021ae3e84fcb405a65657ed9ca8aa90eae8503729b05f3d44d12bedaf9fd74e6b71452015bb274288c52d518cbd2ad8336762b2822c591a76516b7e9430a1bef600d1fe75f0e0f6b1dd7014e48463674ba22cd64bef23421ab9851cf8d431cdeb359662c42723f65d7838c886a3a80c0000000000000064000000000000006e9c3e67a5183f705c3bc1332bc9c36e4c9afa740b4e4c1805c8ba32479aae16dc816c63c4f5bb032e9f36719e018c3d0abe79419333bb04356f172e34c3d66bd63c9455238982327299cf27335ddf4ec0d0fe5c88ad35037273584782ad465a560594509325f443535106038e5b4e0984efa515436dfe058e0cb0344452942556ecf938afc685563933970440b02757e9d79357e871df1eb7a94f0f9d7f3c715fe7dd2471c72e5a52b3fc341333a645ca92ef409d1ab40ea269ef6a1bbf9a3ab9dd9b0f614e4827189bd908a3d5a002fa38c40c17eef337326614389696e4153392e94c3dc1aa1168b4ad2f390f6c2da2fc80541e470b3a53ef9d24979745385b47026ce3123742b6bf96680ac4be5c969679524df18721b18af12d68343447ffb24f5685458d1ea9370e6c03a9974d2451b4508e82da42155013618bf15970860c996420501f0bc5a36420bd3ab15845156227ea6586091a728118d038d7403f53ff3e3592bb1a82b0283b4d3e86004f611903df82c931e54ac81c857ccd60be6a464cd4290e74cc2fb443ed5e92290800000000000000c906c83859dcb42d54e038465aa7756e704fdf5d7465974b2d56de18ec37ba0d2000000000000000f41a93213f338f3fbecb86226e338a64ac92024659b007049db205339b94bf0198bde203c30b673050cf6f32aa1e1b0f85ebbb0506599f156f78cb2768bf8c382f9a6a739cb4a70590320165cdd76c17769ad1635a4de50a6750705a8d6688111d8103097c43cc4670a4833b774fd30036a441583330e350b158d72bd2e9c9632000000000000000378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41837d6473bbff101dba4f37423b9e493f378c9c25371caf6ca3764d5ad7dd7f41473c707392f0ec29dfe663288e0d311ccfc5466193ae3c53ebad7c038485be2518000000000000006629e406dfbc0d1e83566515387cc13d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200d50323e20aef388644e6ec15770e1200dd885ba7217c992771efaac5a98818d34cf4185085aeea41c904dcb34274a715b6c000000000000001ea674277ca9bb13ba90006826de811e10e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d87410e6f35a683a2a61132ad2269da7d874f755a35e46e0946e7def703987eb407676270408ac3b4152e2a1f110bd0d1f11378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f419b617f0b9dfb89302a8aec2d9e7c373e378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41378c9c25371caf6ca3764d5ad7dd7f41c01f756b9ed76f158f88de108945cc506e1d2833b8cd574464f6523a6813b300080000000000000053bf3155bce9d203e838ea5c4fbb0842ac311d6866c4e40446863a1f798beb340800000000000000111c351a8a226d0628fd9c2042655b6f8776e367dc67543d5aff9f22e2586a2d080000000000000081f778495120e56f52dd977645d09121f63b8239f14c040fd8344a754112543e080000000000000056d29f498b906403162ac123cde3e42c3a89b82e33bf1b331fc7a957a0a6a25d080000000000000092d98f0f659956617580c4478d74906e7ce714409935c97722184d4b4ffe81622800000000000000a8f7110d314399232e0de317dd24a06a513efb3092e31209fbc69d674c89c42379d2275690cb4377fb43da3708a3b53b4e49d91da3213e4a64d5174a42b0fd68ae6fbc3261b67b4ad8d95946c159bc3ed3dfa25e5e825760a866b951b9cb4651b22e7f252bf7215e4854e31d65373134b4e3ce4531f14d3febd2c44442f743520c08982f898d541a83e9394820594d6e0388d74056d17e3c8627cc274f40894311000000000000004281f7d7453507e6aa1eade4f6bdad1b0aad267066a7a85e280a63cfc7c374e1eeb2596189441065d418cdd4e2f9c69d348cf2dba192fc5534448602bb79ac21aeea86e26b76f7eeab61326993c5bb6bae5fbe540d2395600182c8e7318a103662d9193414eaea9b893ed03b8c48e6c3b6d2558c1b399ff32f21ad63f4823259a6593d6a7340eddcf1cc843a26b7ba8a5ef19b2b9651a29815de37e6c7448c096bcb773930c9f6bb87b951abec64d9213cb57282cb87d2f7df8a0a3a089c83bd17150da766a5ac7b9043d29d57c26fb8a939ef13235a76cd089cb31a5c8a5fb9916d4e64b4903bb472d8a06533ddc453e5056b1408d70707858de4186cc64971b83c800748c7516f37094ead18b300a0b545bef18ab6ce2e5cb03b103fa4bb897f1d7cd93ae19aee5875433548dc43127aa3326d95da9ce668a4a1921ff704e20a99fd13578d2e70fc3cef50c963ad7bfba592bdb86499d312b96a1c1e16176d28a9ac6f74c394da18806f82aab2951874f332a8673e32623c2a1532222e708352bf33d749f08d15b5329a37f8238aab3d45475989d3b3dc8999b732d82741c9ebfa6a5979e733714a3deadc1857e0e4427e5546d4ec200c2df4603c6303dc76268b73cdff029fa441e6a285ee74f2cef46f4fd69aebcf5feca94a91aba92d92868b8ccf21f667fbb0a6139b4ec1fc06dbfb6c2b272896398a94cc56263c26114e369e2878692ab67750c166149b387a3e854ae06ce8505e2fe19bfc2b03c7b00c0000000000000008000000000000006a50425c59d82a611fe8a70510909f424cc0e410b161352944ebc35ad009164f080000000000000061a090431e672203c367e953a1df8c65cfcea3272143631e18e83804bd2476630800000000000000cdd60e502e344e252a9d8715c0b6757550f272191898a825216c20775d753d4f0800000000000000a943d865fc47c23b559d000101064a2f0e89f05037faa2749f353918795bee4a0800000000000000dda9c332e2dd006728e5e850da77f02e209e2a305a96644a03a00c67fd8e9a0c0800000000000000f841e86f7071e06713b371533c171038ac985f0cba225b3dad2402644b9a24450800000000000000274dd515c789ed27bac832454fac472cd24bac46465750385a36034c80583a7208000000000000004b035a1d2679ca0013ce6a6010aa6b5bc44d9c4360df6a70e37a5358a64581360800000000000000499c840731d1e82e5d522e700e1fae14c871574469790b0b77d896642c71551e0800000000000000cf507d44b347212b0d27cf1f0a0eef0cd03cb2388091bc1e0bfd9d3a6a223641080000000000000059aac6758d982739bc4a5e43ac266827e53e873efee41708486000472a87b64e0800000000000000fff63015d40a780b5090264b5dd29d122811ce3ee31c684d1d1a9c7257b1771c1100000000000000488f2b20707f77b869867e7924d68cdac534c3344451b4e051d2f429e8d2df302091b776feb57ec5fd15d25e79d6d5f0e3463440fd574c173bd3894a8a4fb81786b26f5a6f44facfb9e9eb48703ea8d9da8422d1ad75cc9ce2de05f4e299aa03f55583160269940d5c02810f6880f8018774748e2184dfd393e114f166ddffaaed5d585d9481c8e973a6c1dfbeccc6dc314a09ee8fa5d4a99015c76057a2589ab6c01d8626c1ee9b22a6eb024d08b13353a76074c8e7ea8b2bf57a6e49f4c88957eee024efdaf9649d718dbc6c1f09ace28fc97312fafb47f451fdbee3804d97b0ae7184038fa8bb2caf61e6c285dacb214a24833d05707a3ab9b62686f853d49b0d2779fe4cc2e4976fcedf0b055e6f5e6b801129eadced37e050dafe8fa3988793973bb57a3c7b7baf5fab531affde22afe3abdb99a5dd3c29705a55a9ba607e276d28e3d0fa7f58142dfebc7a7436929b56257cd7e45c64184e20d98a8c626dc9dd7d31b636040aeca111a6ef7bd4dbd5414dc5ba7549267e11db3f777b32a7a21eb479b9a32094bbede65bd5f49c2cf4a6e68857e3fb07a58585c386e0c476ddd9daf56d4eb13748cbd4ed68d38dd4e7cf4d5a52ee23f431c3b033d7e5fc75876a235b031009544ad7f68aaf86e2792e462b8d20096740d63814d4ca0308f82ce1b8dc9d15860caa9ccbdc4459055e308b35c222ac09f0078002be10d6e0af77ed4eba9db403f1bf1f670ba709cd2b6176683e9e8202c8043aeb21a41f2c0c000000000000000300000000000000435055070000000000000050726f6772616d030000000000000041646403000000000000005375620700000000000000426974776973650a000000000000005368696674526967687402000000000000004c740a000000000000004d656d6f7279496e69740e000000000000004d656d6f727946696e616c697a650d000000000000004d656d6f727950726f6772616d08000000000000004669656c644c5455040000000000000042797465","stdin":{"buffer":{"data":[136,19,0,0]}},"stdout":{"buffer":{"data":[13,225,126,230,21,91,244,145]}}} \ No newline at end of file diff --git a/recursion/verifier/script/src/lib.rs b/recursion/verifier/script/src/lib.rs new file mode 100644 index 0000000000..dfe0f6a3c3 --- /dev/null +++ b/recursion/verifier/script/src/lib.rs @@ -0,0 +1,20 @@ +use sp1_core::runtime::Instruction; +use sp1_core::runtime::Opcode; +use sp1_core::runtime::Program; +use sp1_core::utils::BabyBearBlake3; +use sp1_core::SP1ProofWithIO; + +pub fn get_fixture_proof() -> SP1ProofWithIO { + let proof_str = include_str!("./fixtures/fib-proof-with-pis.json"); + + serde_json::from_str(proof_str).expect("loading proof failed") +} + +pub fn simple_program() -> Program { + let instructions = vec![ + Instruction::new(Opcode::ADD, 29, 0, 5, false, true), + Instruction::new(Opcode::ADD, 30, 0, 37, false, true), + Instruction::new(Opcode::ADD, 31, 30, 29, false, false), + ]; + Program::new(instructions, 0, 0) +} diff --git a/recursion/verifier/script/src/main.rs b/recursion/verifier/script/src/main.rs new file mode 100644 index 0000000000..4a38401413 --- /dev/null +++ b/recursion/verifier/script/src/main.rs @@ -0,0 +1,70 @@ +//! A simple script to generate and verify the proof of a given program. + +use sp1_core::runtime::Program; +use sp1_core::runtime::Runtime; +use sp1_core::stark::LocalProver; +use sp1_core::stark::RiscvStark; +use sp1_core::stark::VerifyingKey; +use sp1_core::utils; +use sp1_core::utils::BabyBearBlake3; +use sp1_core::utils::StarkUtils; +use sp1_core::SP1Prover; +use sp1_core::SP1Stdin; +use sp1_core::SP1Verifier; + +use verifier_script::{get_fixture_proof, simple_program}; + +const VERIFIER_ELF: &[u8] = include_bytes!("../../program/elf/riscv32im-succinct-zkvm-elf"); + +fn main() { + // let config = BabyBearBlake3::new(); + // let machine = RiscvStark::new(config); + + // let program = simple_program(); + // let (pk, vk) = machine.setup(&program); + + // let mut runtime = Runtime::new(program); + // runtime.run(); + + // let mut challenger = machine.config().challenger(); + // let proof = machine.prove::>(&pk, runtime.record, &mut challenger); + + // let mut challenger = machine.config().challenger(); + // machine.verify(&vk, &proof, &mut challenger).unwrap(); + + utils::setup_logger(); + + // Write the first shard proof to stdin of the recursive verifier. + let mut stdin = SP1Stdin::new(); + let proof = get_fixture_proof().proof; + stdin.write(&proof); + + // Execute the recursive verifier and get the cycle counts. + // SP1Prover::execute(VERIFIER_ELF, stdin).expect("execution failed"); + // Generate a recursive proof. + let proof = SP1Prover::prove(VERIFIER_ELF, stdin).expect("proving failed"); + // Verify the recursive proof. + SP1Verifier::verify(VERIFIER_ELF, &proof).expect("verification failed"); + println!("verification succeeded!"); +} + +#[cfg(test)] +mod tests { + use super::*; + use sp1_recursion::RISCV_STARK; + + #[test] + fn test_main_execution() { + type SC = sp1_recursion::utils::BabyBearBlake3; + + let config = SC::new(); + let mut stdin = SP1Stdin::new(); + let proof = get_fixture_proof().proof; + + let vk = VerifyingKey::empty(); + let mut challenger = config.challenger(); + RISCV_STARK + .verify(&vk, &proof, &mut challenger) + .expect("proof verification failed"); + } +} diff --git a/tests/blake3-compress/Cargo.lock b/tests/blake3-compress/Cargo.lock index a04b262d90..374d3c23ed 100644 --- a/tests/blake3-compress/Cargo.lock +++ b/tests/blake3-compress/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -343,18 +343,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/blake3-compress/elf/riscv32im-succinct-zkvm-elf b/tests/blake3-compress/elf/riscv32im-succinct-zkvm-elf index cf8abfc952..36082582df 100755 Binary files a/tests/blake3-compress/elf/riscv32im-succinct-zkvm-elf and b/tests/blake3-compress/elf/riscv32im-succinct-zkvm-elf differ diff --git a/tests/blake3-compress/src/main.rs b/tests/blake3-compress/src/main.rs index cbda6a9c42..6bbee4916f 100644 --- a/tests/blake3-compress/src/main.rs +++ b/tests/blake3-compress/src/main.rs @@ -7,34 +7,36 @@ extern "C" { pub fn main() { // The input message and state are simply 0, 1, ..., 95 followed by some fixed constants. - let input_message: [u8; 64] = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - ]; + for _i in 0..10 { + let input_message: [u8; 64] = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + ]; - let mut input_state: [u8; 64] = [ - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 103, 230, 9, 106, 133, 174, 103, 187, 114, 243, 110, - 60, 58, 245, 79, 165, 96, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, - ]; + let mut input_state: [u8; 64] = [ + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 103, 230, 9, 106, 133, 174, 103, 187, 114, 243, + 110, 60, 58, 245, 79, 165, 96, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, + ]; - unsafe { - syscall_blake3_compress_inner( - input_state.as_mut_ptr() as *mut u32, - input_message.as_ptr() as *const u32, - ); - } + unsafe { + syscall_blake3_compress_inner( + input_state.as_mut_ptr() as *mut u32, + input_message.as_ptr() as *const u32, + ); + } - // The expected output state is the result of compress_inner. - let output_state: [u8; 64] = [ - 239, 181, 94, 129, 58, 124, 80, 104, 126, 210, 5, 157, 255, 58, 238, 89, 252, 106, 170, 12, - 233, 56, 58, 31, 215, 16, 105, 97, 11, 229, 238, 73, 6, 79, 155, 180, 197, 73, 116, 0, 127, - 22, 16, 39, 116, 174, 85, 5, 61, 94, 87, 6, 236, 10, 36, 238, 119, 171, 207, 171, 189, 216, - 43, 250, - ]; + // The expected output state is the result of compress_inner. + let output_state: [u8; 64] = [ + 239, 181, 94, 129, 58, 124, 80, 104, 126, 210, 5, 157, 255, 58, 238, 89, 252, 106, 170, + 12, 233, 56, 58, 31, 215, 16, 105, 97, 11, 229, 238, 73, 6, 79, 155, 180, 197, 73, 116, + 0, 127, 22, 16, 39, 116, 174, 85, 5, 61, 94, 87, 6, 236, 10, 36, 238, 119, 171, 207, + 171, 189, 216, 43, 250, + ]; - assert_eq!(input_state, output_state); + assert_eq!(input_state, output_state); + } println!("done"); } diff --git a/tests/cycle-tracker/Cargo.lock b/tests/cycle-tracker/Cargo.lock index 3e337a7787..c322d28f7d 100644 --- a/tests/cycle-tracker/Cargo.lock +++ b/tests/cycle-tracker/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -344,22 +344,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.51", ] [[package]] @@ -448,9 +448,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/ecrecover/Cargo.lock b/tests/ecrecover/Cargo.lock index 251730ee7b..b7c0a06c25 100644 --- a/tests/ecrecover/Cargo.lock +++ b/tests/ecrecover/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -271,28 +271,27 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -312,9 +311,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -421,18 +420,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -505,9 +504,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/ed-add/Cargo.lock b/tests/ed-add/Cargo.lock index 7c8fe2381e..47a70b01b8 100644 --- a/tests/ed-add/Cargo.lock +++ b/tests/ed-add/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -270,28 +270,27 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -311,9 +310,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -420,18 +419,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -504,9 +503,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/ed-decompress/Cargo.lock b/tests/ed-decompress/Cargo.lock index 67939b434c..2975c9462e 100644 --- a/tests/ed-decompress/Cargo.lock +++ b/tests/ed-decompress/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -350,18 +350,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -434,9 +434,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/fri-fold/Cargo.toml b/tests/fri-fold/Cargo.toml new file mode 100644 index 0000000000..0d59a5c9dd --- /dev/null +++ b/tests/fri-fold/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] +[package] +name = "fri-fold-test" +version = "0.1.0" +edition = "2021" + +[dependencies] +sp1-zkvm = { path = "../../zkvm/entrypoint" } diff --git a/tests/fri-fold/elf/riscv32im-succinct-zkvm-elf b/tests/fri-fold/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000..786f8b691f Binary files /dev/null and b/tests/fri-fold/elf/riscv32im-succinct-zkvm-elf differ diff --git a/tests/fri-fold/src/main.rs b/tests/fri-fold/src/main.rs new file mode 100644 index 0000000000..cad16c9801 --- /dev/null +++ b/tests/fri-fold/src/main.rs @@ -0,0 +1,43 @@ +#![no_main] +sp1_zkvm::entrypoint!(main); + +extern "C" { + fn syscall_fri_fold(input_mem_ptr: *const u32, output_mem_ptr: *const *mut u32); +} + +pub fn main() { + let x = 31; + let alpha_base_slice = [534846791, 266430563, 1876720999, 461694771]; + let z_base_slice = [1454407147, 568676784, 1977102820, 1323872866]; + let p_at_z_base_slice = [1257978304, 1179973496, 1444690212, 456956341]; + let p_at_x = 777132171; + + let ro_base_slice = [1847687120, 1423454610, 1144640053, 1381242286]; + let alpha_pow_base_slice = [540044308, 1018290973, 627874647, 969069565]; + + let mut input_vec = Vec::new(); + input_vec.push(x); + input_vec.extend_from_slice(&alpha_base_slice); + input_vec.extend_from_slice(&z_base_slice); + input_vec.extend_from_slice(&p_at_z_base_slice); + input_vec.push(p_at_x); + + let mut ro_alpha_pow_ptrs = [ro_base_slice.as_ptr(), alpha_pow_base_slice.as_ptr()]; + + unsafe { + syscall_fri_fold( + input_vec.as_slice().as_ptr() as *const u32, + ro_alpha_pow_ptrs.as_mut_ptr() as *const *mut u32, + ); + } + + let expected_ro_base_slice = [1306862788, 594458733, 1798096294, 1881139490]; + let expected_alpha_pow_base_slice = [1726063080, 1854443909, 1099989448, 144245555]; + + for i in 0..4 { + assert_eq!(ro_base_slice[i], expected_ro_base_slice[i]); + assert_eq!(alpha_pow_base_slice[i], expected_alpha_pow_base_slice[i]); + } + + println!("done"); +} diff --git a/tests/keccak-permute/Cargo.lock b/tests/keccak-permute/Cargo.lock index 46f234993f..5008b071d0 100644 --- a/tests/keccak-permute/Cargo.lock +++ b/tests/keccak-permute/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -343,18 +343,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/keccak256/Cargo.lock b/tests/keccak256/Cargo.lock index f3ce1b00e1..3659252ffe 100644 --- a/tests/keccak256/Cargo.lock +++ b/tests/keccak256/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -350,18 +350,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -434,9 +434,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/secp256k1-add/Cargo.lock b/tests/secp256k1-add/Cargo.lock index 2b703f04b5..df78246c1c 100644 --- a/tests/secp256k1-add/Cargo.lock +++ b/tests/secp256k1-add/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -261,28 +261,27 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -302,9 +301,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -420,18 +419,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -504,9 +503,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/secp256k1-decompress/Cargo.lock b/tests/secp256k1-decompress/Cargo.lock index d572c62ae2..3537473a2e 100644 --- a/tests/secp256k1-decompress/Cargo.lock +++ b/tests/secp256k1-decompress/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -343,18 +343,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/secp256k1-double/Cargo.lock b/tests/secp256k1-double/Cargo.lock index 40e647b5b8..09972fe61e 100644 --- a/tests/secp256k1-double/Cargo.lock +++ b/tests/secp256k1-double/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "autocfg" @@ -261,28 +261,27 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -302,9 +301,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -420,18 +419,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -504,9 +503,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/sha-compress/Cargo.lock b/tests/sha-compress/Cargo.lock index 2787c0d8b3..c1eab9a370 100644 --- a/tests/sha-compress/Cargo.lock +++ b/tests/sha-compress/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -336,18 +336,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/sha-extend/Cargo.lock b/tests/sha-extend/Cargo.lock index 50d7bd1005..bf9376f006 100644 --- a/tests/sha-extend/Cargo.lock +++ b/tests/sha-extend/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -336,18 +336,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -427,9 +427,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/tests/sha2/Cargo.lock b/tests/sha2/Cargo.lock index 761c49cca4..ae31c4d47f 100644 --- a/tests/sha2/Cargo.lock +++ b/tests/sha2/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "base16ct" @@ -348,18 +348,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -452,9 +452,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" dependencies = [ "proc-macro2", "quote", diff --git a/zkvm/entrypoint/src/syscalls/fri_fold.rs b/zkvm/entrypoint/src/syscalls/fri_fold.rs new file mode 100644 index 0000000000..c8a432a089 --- /dev/null +++ b/zkvm/entrypoint/src/syscalls/fri_fold.rs @@ -0,0 +1,22 @@ +#[cfg(target_os = "zkvm")] +use core::arch::asm; + +/// Fri fold operation. +/// +/// The result is written to the addresses in the output mem entries. +#[allow(unused_variables)] +#[no_mangle] +pub extern "C" fn syscall_fri_fold(input_mem_ptr: *const u32, output_mem_ptr: *const *mut u32) { + #[cfg(target_os = "zkvm")] + unsafe { + asm!( + "ecall", + in("t0") crate::syscalls::FRI_FOLD, + in("a0") input_mem_ptr, + in("a1") output_mem_ptr + ); + } + + #[cfg(not(target_os = "zkvm"))] + unreachable!() +} diff --git a/zkvm/entrypoint/src/syscalls/mod.rs b/zkvm/entrypoint/src/syscalls/mod.rs index 8960f39648..d5e7781d16 100644 --- a/zkvm/entrypoint/src/syscalls/mod.rs +++ b/zkvm/entrypoint/src/syscalls/mod.rs @@ -1,5 +1,6 @@ mod blake3_compress; mod ed25519; +mod fri_fold; mod halt; mod io; mod keccak_permute; @@ -11,6 +12,7 @@ mod sys; mod unconstrained; pub use ed25519::*; +pub use fri_fold::*; pub use halt::*; pub use io::*; pub use keccak_permute::*; @@ -60,5 +62,8 @@ pub const EXIT_UNCONSTRAINED: u32 = 111; /// Executes `BLAKE3_COMPRESS_INNER`. pub const BLAKE3_COMPRESS_INNER: u32 = 112; +/// Executes `FRI_FOLD`. +pub const FRI_FOLD: u32 = 113; + /// Writes to a file descriptor. Currently only used for `STDOUT/STDERR`. pub const WRITE: u32 = 999; diff --git a/zkvm/precompiles/src/lib.rs b/zkvm/precompiles/src/lib.rs index eae9d8a8d7..d8ebf0724b 100644 --- a/zkvm/precompiles/src/lib.rs +++ b/zkvm/precompiles/src/lib.rs @@ -15,6 +15,7 @@ extern "C" { pub fn syscall_secp256k1_decompress(point: &mut [u8; 64], is_odd: bool); pub fn syscall_keccak_permute(state: *mut u64); pub fn syscall_blake3_compress_inner(p: *mut u32, q: *const u32); + pub fn syscall_fri_fold(input_mem_ptr: *const u32, output_mem_ptr: *const *mut u32); pub fn syscall_enter_unconstrained() -> bool; pub fn syscall_exit_unconstrained(); pub fn sys_alloc_aligned(bytes: usize, align: usize) -> *mut u8;