From e178eb6c3786eedaf7b89072fc369917bcaeffd1 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Thu, 4 Mar 2021 22:18:04 +0530 Subject: [PATCH 01/65] added json parsing Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 146826 -> 63068 bytes rate-limit-filter/src/lib.rs | 48 +++++++++--------- rate-limit-filter/src/rate_limiter/mod.rs | 3 ++ .../src/{ => rate_limiter}/rate_limiter.rs | 1 + rate-limit-filter/src/yaml_parse/mod.rs | 3 ++ rate-limit-filter/src/yaml_parse/rules.rs | 21 ++++++++ 6 files changed, 52 insertions(+), 24 deletions(-) create mode 100644 rate-limit-filter/src/rate_limiter/mod.rs rename rate-limit-filter/src/{ => rate_limiter}/rate_limiter.rs (98%) create mode 100644 rate-limit-filter/src/yaml_parse/mod.rs create mode 100644 rate-limit-filter/src/yaml_parse/rules.rs diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 5ac40b122b116bbccbefe5543474c6fc77510b85..38ff96ffa6cd78618ab645fbda0cb24cf5281f37 100644 GIT binary patch delta 19096 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 literal 146826 zcmeFa3$$g`S?9YR`*rr?oPFwf>P4-+L*IL7gH*cdDn=4b%`>EcR0t&IW-xLc4H(M6 zITfHD5YpD;1S*w^9Zjhu5=E^jTGckC)rzrtNX)_DZB$gE7|Ry#*rRV9*y}N0-~8q`zxlo9T+#Kr-W^9#6n`N;@496F{&@d&>3+NL z5M3AZzn*nRQk7dhRQx64mE9Ie+(edlpXJ?W#r0dalD^`7`{I4q)%*)pzi(fZKT^IK za_(2Lk?^2$bKA|kuibsqySH6?^Yu61vTNHrZ@Kw~T~W1^aTghP-}KIz zYj54Q^QK#Fxc1#QZQp*=P{x&|8gIGz2X1=TZ9A{uebX&BN0F*oF-ZOX+kW5&w(Y$3 z``^2J+peftN>m#Q6ITyP-ni}h8z}ki>u8;C8E(IR`)%8N z`|ErYJGZ_2mfN>2%wq^UFVA!9_UqrdNG9t@0Ok4{Zdh20Wmq!k40qsi_j{uep&%rv z6T=D12PJmhc>T_8H(Yze^}Db4aECM%T9CHJm)p7RT{rF84bnn}9k*?x*Vdx|?9Oew zZrM(^hcc9VbHg?(G@PMa!?v5xlp%~d;u_OAn{jq>|L4Y9*?0S8G((#-6Ns`8jB&qVMo+Qm^EJ>C}ojS?UI{h#&qJ;D+ zxud9}lJ$CJ$;u>3lS-Xi61l0=nS%R)k;0)pEZ)Sk_J`B zwc;POMJfMU=@K$^t7528J!w^1NwuEnsg{B|{wEW_HdGIYAz=h~#?)W^Q-e{|Qc40i z+=PF?Olqal?Y7$0b{tisYP+4*T3{r;HGYb}Y8pr5wGp_qo1LADTJ?u26Sa3Ug?GLe zR9(Ak_w_q>M~BkdyBYpl-Wkm$f!?nF{+q77ecR4mu%>G_T>F}9H$?v-4N1HS)Nt)P zcW%3W_qOQIl8&bcl8h++-=tl<5HtN;5=c!Mwr$@=nJ1F*BFpXX4uISrhZ*kMF!s1D zIvx+I7k7;wjF%N<{iFhp8{QlJMmzxV=56m0m^X`lVXqIw6Gf35Zh6nmyLMCL-JVN) zG&z5-?<%jADxWDOa;2zZY|gF6G>Pp$|(!V|K}16VU7m|xGVbQIIt;d$kV?6 z7W#Bg66Sa*VfW7KZ`#h_M86W36aB<5sytBwH|Gl1TAd$D0#~y-L$RXL{}cxfKx)An z27KjDl95k9R4#5k86QnQntmYt`{XOh52gP-d0%=o{jbT<^rw<9BtOgjgUQU7;wO`z zNPjy0ne=ay7m}}%`03=!$-(4<$z#bc#UCWoAH<)Izwd!0`+9tD^0)CXCI2BglAex_ zCLd2rW^x#SmweLDHeuY`2d-JD|z?xbot}SGj#8g zqv>BKf0aCy{CxU}_!O^yDg9V_UwSltEdF?WD1IpZO#C0?kHxHg0okAu2D zP44(m{EO+&CtsxX!|C57KWbUNp1cr0ocvAv!|DG_9*?isG0Q;wUGjMV`i1nW1M&Zi zZ@n}9@$`ShA4%_uo4CX=Y&xU>_yD67u&YF2PR50Pu!-j6QrM62EUtm
81Ks9=NS#(YyN5 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

y1s=-3AHU$qQu%3 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 N)~6d_&#c#k{6ABPupj^c diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index fb36b7f..7bb1c66 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -1,16 +1,22 @@ mod rate_limiter; +mod yaml_parse; + +use yaml_parse::JsonPath; -//use postgres::{Client, Error, NoTls}; use proxy_wasm::traits::*; use proxy_wasm::types::*; use rate_limiter::RateLimiter; -use serde::{Deserialize, Serialize}; +use serde::Deserialize; +use std::fs::File; +use std::io::BufReader; +use std::path::Path; use std::time::SystemTime; #[no_mangle] pub fn _start() { proxy_wasm::set_log_level(LogLevel::Info); + proxy_wasm::set_http_context(|_context_id, _root_context_id| -> Box { Box::new(UpstreamCall::new()) }); @@ -18,31 +24,22 @@ pub fn _start() { #[derive(Debug)] struct UpstreamCall { - //paths: Vec, + paths: Vec, } impl UpstreamCall { fn new() -> Self { - return Self { - //paths: retrieve().unwrap(), - }; - } -} + // Parsing JSON + let path = Path::new("filter.json"); + let file = File::open(path).unwrap(); + let reader = BufReader::new(file); + let json: Vec = serde_json::from_reader(reader).unwrap(); -/* -fn retrieve() -> Result, Error> { - let mut client = Client::connect("host=localhost user=postgres dbname=mesherydb", NoTls)?; - let array = client - .query("SELECT PathName FROM Paths", &[])? - .iter() - .map(|x| x.get(0)) - .collect(); - Ok(array) + Self { paths: json } + } } -*/ -//to be removed -static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -51,7 +48,7 @@ static CORS_HEADERS: [(&str, &str); 5] = [ ("Access-Control-Max-Age", "3600"), ]; -#[derive(Serialize, Deserialize, Debug)] +#[derive(Deserialize, Debug)] struct Data { username: String, plan: String, @@ -59,23 +56,26 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { + let allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); + if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { self.send_http_response(204, CORS_HEADERS.to_vec(), None); return Action::Pause; } } + /* if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - /* + */ if let Some(path) = self.get_http_request_header(":path") { - if self.paths.binary_search(&path.to_string()).is_ok() { + if allowed_paths.binary_search(&path.to_string()).is_ok() { return Action::Continue; } - }*/ + } if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); diff --git a/rate-limit-filter/src/rate_limiter/mod.rs b/rate-limit-filter/src/rate_limiter/mod.rs new file mode 100644 index 0000000..9bfd2ec --- /dev/null +++ b/rate-limit-filter/src/rate_limiter/mod.rs @@ -0,0 +1,3 @@ +mod rate_limiter; + +pub use rate_limiter::*; diff --git a/rate-limit-filter/src/rate_limiter.rs b/rate-limit-filter/src/rate_limiter/rate_limiter.rs similarity index 98% rename from rate-limit-filter/src/rate_limiter.rs rename to rate-limit-filter/src/rate_limiter/rate_limiter.rs index f5e266c..80e9eb8 100644 --- a/rate-limit-filter/src/rate_limiter.rs +++ b/rate-limit-filter/src/rate_limiter/rate_limiter.rs @@ -13,6 +13,7 @@ pub struct RateLimiter { impl RateLimiter { fn new(key: &String, plan: &String) -> Self { + // make these dynamic as well let limit = match plan.as_str() { "Enterprise" => Some(100), "Team" => Some(50), diff --git a/rate-limit-filter/src/yaml_parse/mod.rs b/rate-limit-filter/src/yaml_parse/mod.rs new file mode 100644 index 0000000..68f051d --- /dev/null +++ b/rate-limit-filter/src/yaml_parse/mod.rs @@ -0,0 +1,3 @@ +mod rules; + +pub use rules::JsonPath; diff --git a/rate-limit-filter/src/yaml_parse/rules.rs b/rate-limit-filter/src/yaml_parse/rules.rs new file mode 100644 index 0000000..3ec2b3e --- /dev/null +++ b/rate-limit-filter/src/yaml_parse/rules.rs @@ -0,0 +1,21 @@ +use serde::Deserialize; + +#[derive(Deserialize, Debug)] +pub struct JsonPath { + pub name: String, + rule: Rule, +} + +#[derive(Deserialize, Debug)] +#[serde(rename_all(deserialize = "kebab-case"))] +#[serde(tag = "RuleType", content = "parameters")] +pub enum Rule { + RateLimiter(Vec), + None, +} + +#[derive(Deserialize, Debug)] +pub struct RateLimiter { + pub identifier: String, + pub limit: u32, +} From c542efe0a8baaaed114719758d768de7970aaf8f Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Thu, 4 Mar 2021 23:16:58 +0530 Subject: [PATCH 02/65] fixed path Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 7bb1c66..7e0eb67 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -72,7 +72,7 @@ impl HttpContext for UpstreamCall { } */ if let Some(path) = self.get_http_request_header(":path") { - if allowed_paths.binary_search(&path.to_string()).is_ok() { + if allowed_paths.binary_search(&format!("/{}", &path)).is_ok() { return Action::Continue; } } From 230e73ff717a35f2bc6311d26c6e099c54d738f7 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Thu, 4 Mar 2021 23:44:36 +0530 Subject: [PATCH 03/65] json test Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 7e0eb67..a4a8208 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -39,7 +39,7 @@ impl UpstreamCall { } } -//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -56,7 +56,7 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { - let allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); + let _allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { @@ -64,18 +64,18 @@ impl HttpContext for UpstreamCall { return Action::Pause; } } - /* if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - */ + /* if let Some(path) = self.get_http_request_header(":path") { if allowed_paths.binary_search(&format!("/{}", &path)).is_ok() { return Action::Continue; } } + */ if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From 41e27d2e13b2b3441a937707b46c3eb9e8572dd6 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 12:32:12 +0530 Subject: [PATCH 04/65] test#1 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 63068 -> 63068 bytes rate-limit-filter/src/lib.rs | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 38ff96ffa6cd78618ab645fbda0cb24cf5281f37..d8cdf07998f0544aa2fa13a788fb5a9430aa6d19 100644 GIT binary patch delta 16 YcmccfhWXAL<_(V57!@}=U6WD(07@ Box { Box::new(UpstreamCall::new()) }); @@ -35,7 +34,7 @@ impl UpstreamCall { let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); - Self { paths: json } + return Self { paths: json }; } } From 862bee75b27071f5b711d467b62a2cf80677f9ac Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 12:38:11 +0530 Subject: [PATCH 05/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 86cb699..99068d4 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -23,7 +23,7 @@ pub fn _start() { #[derive(Debug)] struct UpstreamCall { - paths: Vec, + //paths: Vec, } impl UpstreamCall { @@ -34,7 +34,7 @@ impl UpstreamCall { let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); - return Self { paths: json }; + return Self { }; } } @@ -55,7 +55,7 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { - let _allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); + //let allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { From 0f188ef16114a6709d9faa6551b3f19b60d4ddca Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 18:57:42 +0530 Subject: [PATCH 06/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 63068 -> 146838 bytes rate-limit-filter/src/lib.rs | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index d8cdf07998f0544aa2fa13a788fb5a9430aa6d19..89838dae51448542b5ce1b4b81e3c2b6c7f6bfb8 100644 GIT binary patch literal 146838 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 99068d4..b8be6c6 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -1,11 +1,11 @@ mod rate_limiter; mod yaml_parse; +use rate_limiter::RateLimiter; use yaml_parse::JsonPath; use proxy_wasm::traits::*; use proxy_wasm::types::*; -use rate_limiter::RateLimiter; use serde::Deserialize; use std::fs::File; @@ -28,13 +28,13 @@ struct UpstreamCall { impl UpstreamCall { fn new() -> Self { - // Parsing JSON + /* Parsing JSON let path = Path::new("filter.json"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); - - return Self { }; + */ + return Self {}; } } From c9623f20b6c0ad2a5894a5e261409f506a796008 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 19:15:11 +0530 Subject: [PATCH 07/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 146838 -> 73232 bytes rate-limit-filter/src/lib.rs | 24 ++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 89838dae51448542b5ce1b4b81e3c2b6c7f6bfb8..f342a0037d1061577857d56c867be9e6f085ac4d 100644 GIT binary patch delta 23052 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 x$0)NdF3gcW2Qc9S{)~LGuP61ODvp| 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, -} +struct UpstreamCall {} impl UpstreamCall { fn new() -> Self { - /* Parsing JSON + return Self {}; + } + + fn parse_json() -> Vec { + //Parsing JSON let path = Path::new("filter.json"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); - */ - return Self {}; + json } } -static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -55,7 +56,10 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { - //let allowed_paths: Vec = self.paths.iter().map(|e| e.name.clone()).collect(); + let allowed_paths: Vec = UpstreamCall::parse_json() + .iter() + .map(|e| e.name.clone()) + .collect(); if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { @@ -63,18 +67,18 @@ impl HttpContext for UpstreamCall { return Action::Pause; } } + /* if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - /* + */ if let Some(path) = self.get_http_request_header(":path") { if allowed_paths.binary_search(&format!("/{}", &path)).is_ok() { return Action::Continue; } } - */ if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From 88e245418ba27268068b163d2a2cac161a438e55 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 19:16:12 +0530 Subject: [PATCH 08/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index ebf544d..c76aea2 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -102,7 +102,7 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()).ok(); count = rl.count.to_string(); rl.set(); - headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); + headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key),("json","parsed")]); self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; } From 08fb24a1d3d5c4852ec7fc228ad5aed17ccbcb48 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 19:29:49 +0530 Subject: [PATCH 09/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index c76aea2..31b6819 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -75,7 +75,7 @@ impl HttpContext for UpstreamCall { } */ if let Some(path) = self.get_http_request_header(":path") { - if allowed_paths.binary_search(&format!("/{}", &path)).is_ok() { + if allowed_paths.binary_search(&path).is_ok() { return Action::Continue; } } @@ -102,7 +102,11 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()).ok(); count = rl.count.to_string(); rl.set(); - headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key),("json","parsed")]); + headers.append(&mut vec![ + ("x-rate-limit", &count), + ("x-app-user", &rl.key), + ("json", "parsed"), + ]); self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; } From b6837ba7779a13699efe8224b32d007ef458273b Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 20:56:56 +0530 Subject: [PATCH 10/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 33 +++++++++++++---------- rate-limit-filter/src/yaml_parse/rules.rs | 6 ++--- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 31b6819..7a095fc 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -22,20 +22,30 @@ pub fn _start() { } #[derive(Debug)] -struct UpstreamCall {} +struct UpstreamCall { + data: Vec, + paths: Vec, +} impl UpstreamCall { fn new() -> Self { - return Self {}; - } - - fn parse_json() -> Vec { //Parsing JSON - let path = Path::new("filter.json"); - let file = File::open(path).unwrap(); + let file_path = Path::new("filter.json"); + let file = File::open(file_path).unwrap(); let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); - json + let path_vec = UpstreamCall::get_paths(&json); + + Self { + data: json, + paths: path_vec, + } + } + + fn get_paths(json: &Vec) -> Vec { + let mut allowed_paths: Vec = json.iter().map(|e| e.name.clone()).collect(); + allowed_paths.sort(); + allowed_paths } } @@ -56,11 +66,6 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { - let allowed_paths: Vec = UpstreamCall::parse_json() - .iter() - .map(|e| e.name.clone()) - .collect(); - if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { self.send_http_response(204, CORS_HEADERS.to_vec(), None); @@ -75,7 +80,7 @@ impl HttpContext for UpstreamCall { } */ if let Some(path) = self.get_http_request_header(":path") { - if allowed_paths.binary_search(&path).is_ok() { + if self.paths.binary_search(&path).is_ok() { return Action::Continue; } } diff --git a/rate-limit-filter/src/yaml_parse/rules.rs b/rate-limit-filter/src/yaml_parse/rules.rs index 3ec2b3e..ad9c357 100644 --- a/rate-limit-filter/src/yaml_parse/rules.rs +++ b/rate-limit-filter/src/yaml_parse/rules.rs @@ -1,12 +1,12 @@ use serde::Deserialize; -#[derive(Deserialize, Debug)] +#[derive(Clone, Deserialize, Debug)] pub struct JsonPath { pub name: String, rule: Rule, } -#[derive(Deserialize, Debug)] +#[derive(Clone, Deserialize, Debug)] #[serde(rename_all(deserialize = "kebab-case"))] #[serde(tag = "RuleType", content = "parameters")] pub enum Rule { @@ -14,7 +14,7 @@ pub enum Rule { None, } -#[derive(Deserialize, Debug)] +#[derive(Clone, Deserialize, Debug)] pub struct RateLimiter { pub identifier: String, pub limit: u32, From 6f3b94fbaedfe5f9305044dbe337383588a2996c Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 5 Mar 2021 21:19:38 +0530 Subject: [PATCH 11/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 73232 -> 63068 bytes rate-limit-filter/src/lib.rs | 1 + 2 files changed, 1 insertion(+) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index f342a0037d1061577857d56c867be9e6f085ac4d..38ff96ffa6cd78618ab645fbda0cb24cf5281f37 100644 GIT binary patch delta 18083 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 I?C+2NKNK5KNdN!< diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 7a095fc..fd9bacf 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -80,6 +80,7 @@ impl HttpContext for UpstreamCall { } */ if let Some(path) = self.get_http_request_header(":path") { + proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Paths: {:?},\n search: {:?}", self.paths,self.paths.binary_search(&path).is_ok()).as_str()).ok(); if self.paths.binary_search(&path).is_ok() { return Action::Continue; } From 3900abdd8666c50a797b18e2be29ef1dc099057e Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sat, 6 Mar 2021 00:31:33 +0530 Subject: [PATCH 12/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 63068 -> 147566 bytes rate-limit-filter/src/lib.rs | 26 ++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 38ff96ffa6cd78618ab645fbda0cb24cf5281f37..bfdc968005faaf2e09fad02e3e21e254caa7074f 100644 GIT binary patch literal 147566 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 IojUaY0Slc;lK=n! delta 19431 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index fd9bacf..170ae42 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -23,22 +23,22 @@ pub fn _start() { #[derive(Debug)] struct UpstreamCall { - data: Vec, - paths: Vec, + //data: Vec, +//paths: Vec, } impl UpstreamCall { fn new() -> Self { - //Parsing JSON + /*Parsing JSON let file_path = Path::new("filter.json"); let file = File::open(file_path).unwrap(); let reader = BufReader::new(file); let json: Vec = serde_json::from_reader(reader).unwrap(); let path_vec = UpstreamCall::get_paths(&json); - + */ Self { - data: json, - paths: path_vec, + //data: json, + //paths: path_vec, } } @@ -49,7 +49,7 @@ impl UpstreamCall { } } -//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -66,25 +66,29 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { + proxy_wasm::hostcalls::log( + LogLevel::Debug, + format!("Obj {:?}", self.get_configuration()).as_str(), + ) + .ok(); if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { self.send_http_response(204, CORS_HEADERS.to_vec(), None); return Action::Pause; } } - /* + if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - */ + /* if let Some(path) = self.get_http_request_header(":path") { - proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Paths: {:?},\n search: {:?}", self.paths,self.paths.binary_search(&path).is_ok()).as_str()).ok(); if self.paths.binary_search(&path).is_ok() { return Action::Continue; } - } + }*/ if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From 87108ed2fb1634df4c1e5d7c06d4a3278b15d384 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sat, 6 Mar 2021 00:50:17 +0530 Subject: [PATCH 13/65] test#2 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 170ae42..f70b269 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -67,7 +67,7 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { proxy_wasm::hostcalls::log( - LogLevel::Debug, + LogLevel::Trace, format!("Obj {:?}", self.get_configuration()).as_str(), ) .ok(); From 59da0843b21c6fbad52298c97e055e035e3adff5 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 11:14:09 +0530 Subject: [PATCH 14/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/Cargo.toml | 9 ++- .../pkg/rate_limit_filter_bg.wasm | Bin 147566 -> 147505 bytes rate-limit-filter/src/lib.rs | 56 +++++++----------- 3 files changed, 27 insertions(+), 38 deletions(-) diff --git a/rate-limit-filter/Cargo.toml b/rate-limit-filter/Cargo.toml index f1c2712..85befb5 100644 --- a/rate-limit-filter/Cargo.toml +++ b/rate-limit-filter/Cargo.toml @@ -9,10 +9,9 @@ edition = "2018" crate-type = ["cdylib"] [dependencies] -wasm-bindgen = "0.2" +base64 = "0.13.0" +bincode = "1.0" proxy-wasm = "^0.1" serde = { version = "1.0", default-features = false, features = ["derive"] } -bincode = "1.0" -#postgres = "^0.19.0" -base64 = "0.12.1" -serde_json ="1.0" \ No newline at end of file +serde_json ="1.0" +wasm-bindgen = "0.2" diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index bfdc968005faaf2e09fad02e3e21e254caa7074f..a83aa9dfb2924a2abdb345d8f4c3f3fb909e57ed 100644 GIT binary patch delta 33255 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 HD{7fZ&PMK+S=z<0d^kr)1G@Oo) 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 K>cydA$^Qpiq60Yq diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index f70b269..2ac5f50 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -1,16 +1,12 @@ mod rate_limiter; mod yaml_parse; -use rate_limiter::RateLimiter; -use yaml_parse::JsonPath; - use proxy_wasm::traits::*; use proxy_wasm::types::*; +use rate_limiter::RateLimiter; use serde::Deserialize; +use yaml_parse::JsonPath; -use std::fs::File; -use std::io::BufReader; -use std::path::Path; use std::time::SystemTime; #[no_mangle] @@ -23,22 +19,15 @@ pub fn _start() { #[derive(Debug)] struct UpstreamCall { - //data: Vec, -//paths: Vec, + data: Vec, + paths: Vec, } impl UpstreamCall { fn new() -> Self { - /*Parsing JSON - let file_path = Path::new("filter.json"); - let file = File::open(file_path).unwrap(); - let reader = BufReader::new(file); - let json: Vec = serde_json::from_reader(reader).unwrap(); - let path_vec = UpstreamCall::get_paths(&json); - */ Self { - //data: json, - //paths: path_vec, + data: Vec::new(), + paths: Vec::new(), } } @@ -49,7 +38,7 @@ impl UpstreamCall { } } -static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -66,31 +55,27 @@ struct Data { impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { - proxy_wasm::hostcalls::log( - LogLevel::Trace, - format!("Obj {:?}", self.get_configuration()).as_str(), - ) - .ok(); if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { self.send_http_response(204, CORS_HEADERS.to_vec(), None); return Action::Pause; } } - + /* if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - /* + */ if let Some(path) = self.get_http_request_header(":path") { if self.paths.binary_search(&path).is_ok() { return Action::Continue; } - }*/ + } if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { + let json_test = format!("{:?}", self.paths); let obj: Data = serde_json::from_slice(&token).unwrap(); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", obj).as_str()).ok(); let curr = self.get_current_time(); @@ -115,7 +100,7 @@ impl HttpContext for UpstreamCall { headers.append(&mut vec![ ("x-rate-limit", &count), ("x-app-user", &rl.key), - ("json", "parsed"), + ("json_test", json_test.as_str()), ]); self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; @@ -132,10 +117,15 @@ impl HttpContext for UpstreamCall { } } -impl UpstreamCall { - // fn retrieve_rl(&self) -> RateLimiter { - // } -} - impl Context for UpstreamCall {} -impl RootContext for UpstreamCall {} +impl RootContext for UpstreamCall { + //TODO: Revisit this once the read only feature is released in Istio 1.10 + fn on_configure(&mut self, _: usize) -> bool { + if let Some(config_bytes) = self.get_configuration() { + let config_b64 = base64::decode(config_bytes).unwrap(); + self.data = serde_json::from_slice(&config_b64).unwrap(); + self.paths = UpstreamCall::get_paths(&self.data); + } + true + } +} From 9a4793e22c619e919faa0e6a3c9fb558f80e5c6a Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 12:26:43 +0530 Subject: [PATCH 15/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147505 -> 147453 bytes rate-limit-filter/src/lib.rs | 9 +++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index a83aa9dfb2924a2abdb345d8f4c3f3fb909e57ed..bdb3c9fb73f8361995234a36e1fbc794e1a75088 100644 GIT binary patch delta 4480 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 2ac5f50..e1d247a 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -75,7 +75,6 @@ impl HttpContext for UpstreamCall { } if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { - let json_test = format!("{:?}", self.paths); let obj: Data = serde_json::from_slice(&token).unwrap(); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", obj).as_str()).ok(); let curr = self.get_current_time(); @@ -97,11 +96,7 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()).ok(); count = rl.count.to_string(); rl.set(); - headers.append(&mut vec![ - ("x-rate-limit", &count), - ("x-app-user", &rl.key), - ("json_test", json_test.as_str()), - ]); + headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; } @@ -111,7 +106,9 @@ impl HttpContext for UpstreamCall { } fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { + let json_test = format!("{:?}", self.paths); self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); + self.set_http_response_header("json_test", Some(json_test.as_str())); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From ba5ba35094c44e1086a5ab2caa82c4cd66bc74a7 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 12:47:02 +0530 Subject: [PATCH 16/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index e1d247a..8b76d98 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -119,7 +119,7 @@ impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_configure(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { - let config_b64 = base64::decode(config_bytes).unwrap(); + let config_b64 = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); self.data = serde_json::from_slice(&config_b64).unwrap(); self.paths = UpstreamCall::get_paths(&self.data); } From d63f5af845fed7139ce0e88ed77ac24063c06896 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 17:39:49 +0530 Subject: [PATCH 17/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147453 -> 147735 bytes rate-limit-filter/src/lib.rs | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index bdb3c9fb73f8361995234a36e1fbc794e1a75088..0f38e10330a67ee2d15217b34d9e4fcdc008235e 100644 GIT binary patch delta 29026 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 8b76d98..ec86773 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -21,6 +21,7 @@ pub fn _start() { struct UpstreamCall { data: Vec, paths: Vec, + test: Vec, } impl UpstreamCall { @@ -28,6 +29,7 @@ impl UpstreamCall { Self { data: Vec::new(), paths: Vec::new(), + test: Vec::new(), } } @@ -107,8 +109,10 @@ impl HttpContext for UpstreamCall { fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { let json_test = format!("{:?}", self.paths); + let bytes_test = format!("{:?}", self.test); self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); self.set_http_response_header("json_test", Some(json_test.as_str())); + self.set_http_response_header("bytes_test", Some(bytes_test.as_str())); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } @@ -119,7 +123,9 @@ impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_configure(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { - let config_b64 = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); + let config_b64: Bytes = + base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); + self.test = config_b64.clone(); self.data = serde_json::from_slice(&config_b64).unwrap(); self.paths = UpstreamCall::get_paths(&self.data); } From add084dbc4d01f7802cf5c3be81bfd4bd2712b4d Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 17:52:58 +0530 Subject: [PATCH 18/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index ec86773..179610e 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -123,9 +123,9 @@ impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_configure(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { + self.test = config_bytes.clone(); let config_b64: Bytes = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); - self.test = config_b64.clone(); self.data = serde_json::from_slice(&config_b64).unwrap(); self.paths = UpstreamCall::get_paths(&self.data); } From 1d93fcfae47cac4ddd646a18e2012fcb672dcb7e Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 17:58:02 +0530 Subject: [PATCH 19/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147735 -> 147621 bytes rate-limit-filter/src/lib.rs | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 0f38e10330a67ee2d15217b34d9e4fcdc008235e..e6a0bdf223b5d42114f93c1f9632cb9c6a5ad954 100644 GIT binary patch delta 26880 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 delta 27053 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 SFV42WJ#Z5C$b>YJ`~Lt?PEY6n diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 179610e..40b0409 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -21,7 +21,7 @@ pub fn _start() { struct UpstreamCall { data: Vec, paths: Vec, - test: Vec, + test: String, } impl UpstreamCall { @@ -29,7 +29,7 @@ impl UpstreamCall { Self { data: Vec::new(), paths: Vec::new(), - test: Vec::new(), + test: String::new(), } } @@ -123,7 +123,7 @@ impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_configure(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { - self.test = config_bytes.clone(); + self.test = String::from_utf8(config_bytes.clone()).unwrap(); let config_b64: Bytes = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); self.data = serde_json::from_slice(&config_b64).unwrap(); From 61f3a6f4ac7ab622ab0f151f8a56e67ce2fa2c6a Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sun, 7 Mar 2021 22:52:32 +0530 Subject: [PATCH 20/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147621 -> 147754 bytes rate-limit-filter/src/lib.rs | 9 ++++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index e6a0bdf223b5d42114f93c1f9632cb9c6a5ad954..3a8d2b5be0491c043909992278fa9b8fc5de289b 100644 GIT binary patch delta 15562 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 delta 15479 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 L+Q3&Ov)um!cIGBE diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 40b0409..f70d6a1 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -29,7 +29,7 @@ impl UpstreamCall { Self { data: Vec::new(), paths: Vec::new(), - test: String::new(), + test: String::from("default"), } } @@ -123,10 +123,9 @@ impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_configure(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { - self.test = String::from_utf8(config_bytes.clone()).unwrap(); - let config_b64: Bytes = - base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); - self.data = serde_json::from_slice(&config_b64).unwrap(); + self.test = format!("{:?}", config_bytes.clone()); + //let config_b64: Bytes = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); + self.data = serde_json::from_str(&String::from_utf8(config_bytes).unwrap()).unwrap(); self.paths = UpstreamCall::get_paths(&self.data); } true From 3b879971850b03b773c774ec311f3fa6034e87ec Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 00:07:58 +0530 Subject: [PATCH 21/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index f70d6a1..5e941f1 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -121,11 +121,12 @@ impl HttpContext for UpstreamCall { impl Context for UpstreamCall {} impl RootContext for UpstreamCall { //TODO: Revisit this once the read only feature is released in Istio 1.10 - fn on_configure(&mut self, _: usize) -> bool { + fn on_vm_start(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { self.test = format!("{:?}", config_bytes.clone()); - //let config_b64: Bytes = base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); - self.data = serde_json::from_str(&String::from_utf8(config_bytes).unwrap()).unwrap(); + let config_b64: Bytes = + base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); + self.data = serde_json::from_str(&String::from_utf8(config_b64).unwrap()).unwrap(); self.paths = UpstreamCall::get_paths(&self.data); } true From 774ec5c1786a6ad07ec30616d989b876d9e83fda Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 00:13:08 +0530 Subject: [PATCH 22/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147754 -> 147752 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 3a8d2b5be0491c043909992278fa9b8fc5de289b..61e27e39337864a0c2a99d0cbd0782cb03f84806 100644 GIT binary patch delta 9637 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 delta 9641 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 oC+o}*#`-283}Xuu$P3t Date: Tue, 9 Mar 2021 00:53:29 +0530 Subject: [PATCH 23/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 147752 -> 198403 bytes rate-limit-filter/src/lib.rs | 74 +++++++++++------- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 61e27e39337864a0c2a99d0cbd0782cb03f84806..618031491f807cb16dcecc21fda7e7c4d8ca363d 100644 GIT binary patch literal 198403 zcmd?S3$$g`Rp-55=Y7t-=hpMqi`wUeF}&DdDqr(an8f6++o=LV2xw#XMnR=)Mt5wnjcp}HjT$4isB}vrD%y$CijgQ9lKOuC zxz^ripL=f=1wn`3_^P1x*?X>tg$#q8hh)koil*Bl}qv@gq|G_!uo5qo&@_wV^loLxtqnF^cQ{UOgQ<78SP? zw|#+strc$6gnFW8qJNr2rRodTdPaBZB|UybmyC<=)E-({@^keq>E2roxAq^r_4aq~ z*>~$ZqD1#YfB%lXi+gUk?cl+^w=C{iy!oAb_uO**Ew>)pd&8}_+;}LeRVp5$;^NIW zEbQ68_u$R9-ni$TH}Bhb^H{}=l@@Qk<-2Zv$886%U%dI&TcSwKY#5b(=WXBhU3(Ai z`ObGQ?mZN>D~0M~W#Q)0n>X#f{zl$>=k@#d?7#lzgNOW3LIu5j)(RSHrNZIs_uaPF z_rJ||ad7WDZ#}$sWgSDwxXl}a{{0Lt|@-ngH33vZ`^a^^^4bgxI>vM+9@U%a z)+DZ{*_I@!r~IKPOH%6cH%)8F+BlksCpO110>_?8@Fd)-DgNjM{xoYFcv4fXC~m}Y zJDSX_V0|a~;xlEjZa?!--cO6uhwI-v>vbh0&6>&G>^r-eqG zbUJA#uJMD$>lr}vzfh9JS<{*Wt-?eL>_(FYgYP+tI^c&cRmRWipIGmtD(d$&(ps(C z<-aVhcd|yjKmJ(qu|)GdRc|5R-O|#jsMGjlHeG)wBI4k?lc>Ju(Bkz67o$H)>+giT zZoMJ;{xs0@_1}5(p2K?&9zyi(*|FzUdv-+MlZ7Il1ZvxJ!@<4RFYb+gD(!iSqsWNv zr_*lvK*IVzrGb=HVeh`Zyz_86RaQCt&H%{&iGu|3eVF*&8~tTGYF^SidOluPzU!G5 zIBtA*^mp+H#9Q{hOJLq2{y=(KC`;52UT1&Em+#osTAW zXMdmm@ASF!PtvE-C(}Pp|1AB@^zQ8L?EUG74x?@jJV-W&f+`n$=U=~M9!#;4Q&k-V42PGs)c z^gY?{B;S|(N%Et~XVR}EpG&@y{$cvzH;-}j^+O7G$6_ony8r;;yG;|t(JwLZo352b&R{(1TbAm?Y(|D3)j{SWcy(oa+R zOCahmlb=i9oBa%T-U|gZR;SDf?8ShCZA=P4{`t<3>mE7>No=5K(MhkBHfx|97K*e}*!M$$2Gi@W2s97 z$ALwVKsO5q^X37KGo=UJAGm3J6qIz*SvpjO65=?oT}^+$8|U>a4h)kmz{}5^AK+&u z=?~-VcpldZxI06GC*36|?))Df@1Xo@I^_jgx_V15&eNG>deG1$&>uJ5VZ56mq;8$- z>)-idEZinr{Gc^$gV;tllQf4>9$%7lfg`#kX?A0V&pZ8j0hKU@WB}rZv06!NhIR=% zQ~+Bv+aG{1gEDh85On~e0Ra@SY%LKp6xCeD%MI6e>+%Ng=IQP&^XeWL7^6BjX!wUY z6rmN==8kD#TiHCCRj&^^Il>`o4dAnrRF3E>Z;8b@Lh=6Q#bU1!CRxMc^sK zmL9w$$@FVpWaMJI<=1>(*E@B$l&ESp7wrV%ED@d8t8`u;(RuyMbPfPpnb(5Y2XVn| z#Sn*yV-!YYwF7kM=d7fjynY!|ofui#D|wRFfR!=jnJ&;cgA>))je%e>&p@;(28uPA zAfx1fVa?BHPfwwKdKU+b^%!-S5>bhD(glO`)yy-^^|V+@q+>ldyICi%6`&--GX>OE zxn2^%)m?fRT1pq)^GxpiAOf4u26>|4$2R;}!&k4&v=uYN#D*Gm1f_=|Kr{{m6vRw2 zc`&MrNdhp4 zxe^X|G(}Vcn~70K#<&$8KwiNF#q^j=0DR5hh}hiwy$FT(Mr2oWVA#m6zJlx^q=M`u zZsD&c0CNfAQWwG9v6eLw4}rmwXOm!ZB$`22DVh@#&HNigbGkw_Q+HL-oJcgMC=Q4y z9f@WHAca57 z+}S@Gb1cyE=*lfB`9SCgg&Dh#ax;iPlU`LlB)~A4&$Hd)T|+O*9(h?M3tEHk5;u7j zV2fN#sTo<>FZESYV~k3Ky9dy|moAc58oH-Ny-s~-)+-VScNw`dV0&Ez-VtMa!ih~j zxrce*rqzLpJiBTO(`ygKzfs41T;QGFu7PW;_S8M7hlZy6^b9Q-xf8#|GYMS7k#6qf zAKmC$mfWkG_lFW)%WC)O=AKZZYgz3<-F!5Z=vr2LSU2~F5?#w`kLc#1P@-#D?UZgl z9!hjAt9?c{p9m$omeoF8EqPQodZNL7wtDlpZuCSYk5zA;)Qz5~g2DtW4U z^NeovL?usGZ=TbQo~Y#6>dn%ll<0{{o>xh6b3!G0qLL5j=1%_6jjmW>E`31MAx#~XLR$4P@-#D z?NQx)I+W;IR(o7GpA99tmeror&10cN*Rt9db@N0h(Y37hjBcI^CAyZ?p3}|Kp+wiR z+7inS_iQN9wX7yd;u-3BJud1m`xwpOU4sc{hV0=^hdTE-fvgC2R!|xvtb7 zbX$w-_C>^!?d5|f_|4EZ1{li74ux*u?*nuCngN#ZZ%ga@3hT4an01N{@R3C}@|O9GHG zOH9rlV-cVspt*zgug&K*!Bh*jdgN_&S(kdqnv~_mYHQN?9mBX>lgbG8Yf|QJD`1qi zdZJP2Z=v@vD}c_dhE!GqaIwCsSbE-8uY)>ot7G4oB>{E;R7SdA<GfqD$wbG-lZj5-T`de{r$mm+G-yKk$ZnVMg58FtB?zR^WutSkm+aE?aA7r> z`Q}aZs;#6^CpPLNtWZWKTM|YXOOY8UP0>=>xnQ72Edz`i42*FCM^lPx1gxK0=~L69 z0@*9!U|C43j@Q*&el5wm!z<9j0!U_!ra@4OS{HCou9zvkvZo~{$YWU*cLHD{Zv*T_ za5`vB+;!qzICrQa$n0eq5j*%SGX}dLi3Tl()}MFx!w%f;WUz7G+L<(0)!QSjuKK*$ zlu+Qh6&8b4BPaDPEJJz22v3VG-gj%wD+4fdo>fwAQ=BA$UyAi&V3yP~OG>N8FCcH^ z!^uW#+w81sTZTO1mv{xgVERx&4wOcqoCwquo{>Bgzr$L2x7l z>CG>#unI2-zq}V@<+_UDmW%j8q_0?4Wj5p4igguAqF7f+kPFMG5H6K<614c6!q4JHcGKlf{1mth|dCN(mYdH=KNaFP{FCx<4b>YDka zAY|brM78=qnGV}0=jz9X8|Ly855PGa9vI4JNrgP_e<{wJn)Otd=CBS;GqmIL{r{M5 zhNM`r&JVluJaEygBU%;ItW=wMm)2RErS8)|cS_27kR`Ku%Qf(TxEjJ`G$OIq!bB}j zQX&r>*Bm4`f9B%BhP<__w<(|Ct>e(q{6&$t{M&Z(456c2cRIdIcPHnXcjf8Hx%{p> z2OGMZI<8F{XaFB?yy?m#SQl0S$NE?p}>c zF8Xa<*{eguo9FZHl|Anm#Zt*9m}-Gkn|~GmZkRhAe>-oJyXLTT`E%-YbjO`Mm<|t~eEl8VHT~T)+wZtjh0PPH z{oJIAruF;zhP^by@2{tNdg+Nf@4Ry-RMN!i6V{tHmbfxsiED+jR;A45td~GV{=Igk z%w~(SPAKbC%50t}>xQy!rOalCvR)|bRmyB`D4Pgn6O}TX70M<<*<__m^YQJdrjA3f z{xidQA3Z6Y_YK}Ek2Kv>D4VL3d7L-hnozc;Qs!~qbZbM|+De(ndDE>6W$P+s9_LNB zK9sGmlzE&t-G)%Mp;G2?-gFy7*~Utl$9WT+cmLVpd^*s`w82}Y^OoBb$~INXJkDEg zb12(fDf2jQxh7Rt6&$~?|n?z~WTUZu?Ayydosvh9^J zkMkBdU-Qom=Xsko^Pr7-n4ZTEnGUe+^8QuW&hn?Hc~1s>$AUw+*^&MoQ#Vx99jYdE zx9{$?xv&VAR_ZCN@vbX-th{(6jnk9rf|pWhoQ5<`QjuV`=nfjkKQA;+ih({zy~ZId zYWVau3XPMxq*B9c9ABf*I4P#fs12`ie2qfmq%Nz}@EXV0C^Sy$YLyyZk(tyXy3EqL?Gjwrc^#x~ z&>a;U7$xz7#c}v?MX$%qzx&GG1Q%?pR3tDtGM0*8GGXLaQ7js|XfL-!w#&-60%e`i z%L;>}haKb+?0zd=VU6@QQ=BR)rMFj@BE2mXXIBx)SMdrvq_>q~78O#SZMVV*>20I9 zeib&AidR@5z4It;T!sH$#VgH^CgvyRN8H_xwZ`9je*9F_|0#K}V_v+!ywi&9+e z)SoWzq?jHn?`qsVRo)Rlch8o04esuIAoSqPn>r(Y@f3GPTLz>1+c2E#=WNovj@k)g zMUD|f#DL`;RMwDtn2Gl5hew0)@E1LdMOlEgAETA5q=he#8Lmrr4*>Lakpl94r6%y4k0 z7NliPgqC}@n2thN`701NuVjhTlfQFeg4D<)jj~!DAe-*|d8hSs-kghfChK_c@PnsV zp!WGSeMxd5m-qjK9?Y<`Y`Pg-S2o>PA>EToF?Q; zmY}V1QF@tf3uD}W((<;(<{vqj*Kj}4|5jT#>z;ZUZP*ey6&-@Z)A1c1k3FrS4Ucn) zuns8#i~E2^C+SwSwyYTz>nwr~xKt@R0>oCld6aM1iNh|Ij9~4br~PkLi{_fbMOOXr7$gao60AyYqbR_>p%Xo%_@efAWjjvALxm`OW)2o*a=2gRrmb-!_==Z(3|S zb~C$s>%i!?*Fj_0ESg0xBw2&zCj_Sao#r+oEk}fv9SmL5@eibf^{WA6u#NX{-pU@% zQxE4=dU!;mdL&-n$L4eFV*AQ2wyTTnl`ft{wYw*i6U zOXn4@8u54>_&GAC8Xg}-LC}^6;bBKY2dR2Rj;_1npt;ng9SS1pN>*Zwi`C_iLQ}hM z@(!V75igW`2q;Z*A=EJUGz$ER8o*3)BBK*@b6yA3*j;cnG^jw3i5eJ_9EDw&Vunkk zE;MPN>nF-ZD+^q01}%1=W!}^;gNW-y0!T_A-JsENfBT_NMsBOS=fj_j`b!dn_w&nb zbDu6BJf;U*-81EbrF(gBiF<^Lf8{fJu+uI5P^Im3x{qM& z3d!3Zu=pB{foCLvCWzqN`~XFSt5-S!)IJiEQw0$6Dy|O1CkWsaT=tIv229)(1b9Xz z;xhSDpOo7XD4PKhPhosOvVjp_0u-5{gEY>ju%To$uO-0;3;^-cBl9sK{7k54T=);G z$A@cy^~I*y!QmRuMT3o@EH>`;M0!c`IL5ep9Oo|lR@5XR&mJXXHJ6mGx6~Y~xhXtK zskvM$sE0l|T3nWz!?ke3T6m%6*|ua<37WvDrSu)BCod!iTc9zmmOFzfBQnJX)RPDc z+`~m;9fVe3A^_A+jGUZOmcZ_kCG}Nh2{w8+2ojcmftqUrtlW;A2*T3ib^HKuzhMdTT3-y9 z;TA)dN?$Q%rtcibjNrf)D#u)m7_UWM_pGd8M+0OZL)WmUzp-JP2vvTyiO|u=+tAyf zZ6>yc=B4|?H4p%ugMfy+K&xdXbr&Mj3>s;!(PTsF=Pof}&xQ-aO$&t8(NOa)^2RbW zY^4DwhwYt z=mc4EE(l@~ttE7!#y1xRh@S!v7ZwO^8eDm$D65$TQj-O;QDLN3-XEmmA&Dq?c%YTx z)?j&Tm>;&J);8o@ub^zhnW?2@8tFhZz($h>V|K@wZp7|b2lMd%2xVu$l`=64TzNO4 zOgdqxVuqXpH3?Y_>;f|m4r17QvW1;363IH*8wVm|Zyd-ZkXSL)yjZiq%rC$a{>Dr$ zkrVtQQ4EWcpbAR zL0&}wkM68yZ>+4m8?!^TcE$%VvQS5N=JUb2@MU&4(&xehhC$+{@=pIl;NhaENxHj? zdH}u}rAjOfqw%7sB?;t>DkKil85-xoYho79xh)wo7R4-*adl~|Pp%xPDVLc75*r(< z&=Fkj{lARSz1csI;SOh4ibr>P^>>vukl0c@S{SB&DK44P#0{Z@fni;W(sBlxP*{@t zSZBk%OZod7uXK!d(S2}fDLb%BJjzfZBjqY6uZqnea!%u^mxD!XpPBjo=M(Q4Bk!%y zJtl1%?hh=Xui?HLDd|qtKNHQnJKu||;x&k1)<8VHD4I5xS8twQ)U^hUq?>>YS8pHSByOhPFN z1kVHBu(P&k@Bfx_n`v%)?iFM&K-XW>Tp-a^2@#PjOboT-d&QsX zqgeJ>2`*k`5kjro#4`nnEGvP&DuiX7w>@FCM}&nvu)Muh2`f=24PpK<&0n+snPiX{ zK6u_?K>d^X+Tc~>alK16-4m*rsU{ka^>JSWrD>7=!Ofw6lg1 z(p0ue5DYDP0^Tme@<`p9WELcFV;hnuQwTH8C;P7}=(1PZWnp%psf)FgB|suy zC$~G4`NE_ma(ZUA!(9D;{3EA~jj{_O(wn*A`W@`d%NyW+M7e(qdl?HDm|_8sr>@%g zEU)dBzj%f=bihQ-0oifSmjYDlgv89bdzXQ zl_QDfXbhVsd4v?(YRS}0r0_#tUtk$T@CaTSQM|{jRqo9Xo9^FQDAOo#ojc!?|Btb< zYPI=o~0yX0A7s-ZSvrv$TElAQ96Ml+*cr) zW{zcgMX%9iCRV)GUiGyv^IFZnmWfnXye8N7%HIBn*Ao9)EWVk{yXah8X5?n+7f#-8 zK7o&5QjhVh)ug>3H(UgXDXZAXfd@V(tKG#UXfm2&T*tz=o~9>k8x6cpg=1v}VOInH zoACrGe;z2VCk>#b<7B{96BJ@x{w)?NjAd0?v0 ztG%azk5I!Z?QQT0$=^c17bD#HO z%p_?Ivqj+uvkVkD^0ycaNF_sBVRRG#Ld>fJC?St55Ra954YwM4E#q8`6@RLaA`sBt zg1RIO&sHCDXD zTotIXY<|Wig{mn4mWo8)bS0aWN7fn!R^~Q|QABda!GYw~*}La1=M$SP$@v#F492a7 z>_y0V*7m7mZ9k4NLe3T3i!R7#UtS45s8p&cOTnIvk^-NbQCXIqd!_NG~aD@KGM=`b~`=;_@sAuXV%%O=p z9hBLGy+rg`Ih?V#)MI=u)85b@gRWLCD>4%SKG~x+5&?woWkOYqc^5Ik&|1N){(PV@ zhOIu572!#{SdI8OTQMp>6XSN8L|y9Ej*(IaYdv+d3;BAHLh4>SpHKN;m(KgOn=Jcb zjSy)nCPvx6feW6v3%O{f0luz90Rc!NsPvH>&oi^v?Llr5Ry#6aY1@tLn`dds?x14pc2`IxFa?F56?#y2Bxd;bn%_?oe77Xb&Y;Yh8H z=6Ni{Yi3HLAr3XtFaC&Bh1LjcV$iYBVBGHSj+IjM%4bf0JJ%W!0=Pvx{2G zZz#FAXPb)19h(A5hrdB-;*7oET<<90k>aRv|BK8onFnTfrtZ^eC%fQ<+t;Sy=_s`Q{_}v~mij^G!$d>9=BWTQWh5 zSs<|D9wabUCKI%ZWP<4zOeU~5%@DF=0xX?;T5cR=jtoSl zFe$F)yS~q2*?GN)!appS6y++S@Z3I(quLUmfcf$*XhqUuZyU;ceW(n!SE~_pCu?T{ zht;xb`+DNFGG^*ys%w`T(e5-+6$N**rx6v=jqke8kjYLG!DdqkS$KO!L6r z$3u+ptP#!CXi49no?E)-FP=!3hMR;B(C+V#9UV;57RxD)UqR`acxgF|Syc86;Na4q zp+EeU{`d^3A8N5r^0W7Z1AJP@#-c6`R&uQ5W{3XVFUfnhrQ$t{4bZ%Gaxe|Fo2t-) zKta37pxu;DFAX;fQhw!|fszd*1(d$C4n9(PZ4!HkE%wm#;mW4@__gOyrgwo%qbi$X zPaUSrhm*O&F8KLze#Hk!HW2x@^2sY;k{14cg(fY}Aka_9GiX|Lh!8}C{xo;9Ldk5h zaSuVa#zW|!`2ov7R%kYTvC-0Js<&bCaf$~AfGq|sOFykstTNknp z9xjR*akV&vamqym*{t%rLk6ii_!$G@$R7m5bA0?@2p5_L=chxt2O?WEV#qz1J~A|> z4Y(J#LZmfKf6cS(^aE^uI!=2apRGUMv%l}y$Edus-(q#u`KuK0$bbPLx` zia^(JCj!jbU?caXD3EzDS~C(0g3}}=2{K+FNP|GaP0jKEdKi%~NK;(G#G;XHNz5>5 zLBXDM^R_6seHjwET~aV))PwtwJw2ixOf7f2m1|6E&S`y7PA zw!roHiEs~-Gcd)Apl&IH;wq@yG=@6RuKb89>Yy7j|GA-V6e})yF_xZan3=O;(Cc32 zL2oJtJ*9L3B(F)l#}mekV1rytC`dMp$R(r+RL2ZgY0MJ5LEr^)DRM%{vn|Pmc^`{X zl@w7d;|&8%A7X4ToA$M5zyQ|VNEaZiHSNtaPrKYc@{;%P8xaGSEn%@JFn}x%G9T&z z18|-)1*(Y>tIT>3`528tLSZnzQyXPWi44_Y*A%vuk1jnp?($4r!ZMCz~u`j73P zT9_N=92_$+&#<&izS43 z3h$NLKpH^sy(ldp9Uu+dkP<*a3Up=;+9`qR*Mi!P(=N_FGW;4mKTbsFC_HMY^+*Kc>zMF0s@P83q+ctkliQ~g`Fj+lTzu^zVWbUWDpbwxi582{`uIS~NYzqu2m7J^2*zf3Q}gd)q)_kyN}WY@lGSdJ3@C zSytNPrq_&wA2}@XwxLpUO;Nr{^7QJ1IMd|=Q+?uqMTlFzZiQwZmGJceRPLTE@5($L zDUl;7g*up{GC@Y6pqp6<5IJ(_N&ykME}_w)CjSVRQ{Nn zkA6Fj-r)q|Gd6gGu7=j4&yNLV}2g z31NbC3<2s?0cy(;FayPUkl2B)FG)TCZ7Vc=kFHpo4|1Jr?o98~JsV>)pH;4WfHH)7$yg(68ut&ff7EGQ2k6FGPxf-wTra<3Uf2 z+(&R+AsU3;1<~=H(H{Gi-o7)vR>cp-!%Wxv{RubNe&j6lKLbcA!?W+(U?kb1HjpJ3 zq}T3@VAi}Y=CVyUG`xqc(KO6j9iOQNRvD05U?>uC@?yrTVhdR_jx7c%WW9k4xVpxp z>T>R$i-fA#h5mP{;oHN}Jjxo-z-N*p=oI8=;$A6ENC^K!Xog$%FrwZ;Bfcjg@}g)d z#ys3$r~OIgWp)EZT@8n2ce&eap?B%uB#6O^G)L#E zWV36t2xx!8LqC74Ir(+ITDIx^7$qK7;UaMlg74rS8TRDrL*8kt!-Ua=rI_@D+bo|j z6uU374g@@T9UJng=oR-@JQP>$WQ}Mfp>{g<>zjD|B*mQBQB=>{MnE}r7+fw&K$3^| z8jzQ7mMtUY8#e7JZ_FgusHd6aP4Z3KQ1W{J*KNGlC}W+X%Mp7us0A?9Jk)|MAZn?( zR`3kj4GDTS1iQg4Gy+|@ST^Y^XIo_C`&~BO|3YMeD+tkd2`$>#F5elw!hS`JQk#+z z_f7LQP$gotJe}Zs%Avjlk~Q}eJ}cAG$RqqqoB)9=@Zn97s1I*8i2w#6;B6%f5F&t8 z=L6QbVWFGa&pb&ia%>68>44U>Y6w2 zY#0R#Mn|b{W#3_o~5Mi9k^A8h!<3ahb(5QL~c^5F-)tEfNP zSf>ZcUBw32F(UI$PyELfG|A3O6n>~Y!^zKq0}@{|O1)a|WAQtn^b4YmUgTodo)2LY z*AD#L-x*!N19a`B$!vlX%zU~%5xCD~LM^xp#U>JuuZ+K0d~{KCfss{9xh=voDX0pq zW&MvS6;?Ux4SCnu+GbG#bUIUb9|}U(2jh-_^m0zK%BHBr@!6ze>h}9x85TeSGG4eJ z^&{(8>c#)EW|>V7MqG&~;Sc_K6U~ex_p*|4_@nUF6-eUn21AmKA2bB?Ah>hGhJ{QR z9E9DHDW`F=K5H^g8>3BvjS*`VKbL7NvZ#ve9oaFOT1g9-U3pghtNqXo1Jc*)b}XYG|U9#8~w{!9`}Dwq6s~Bon#dI+e|ylNOBRSU*fHqTcnbV*&gG4zE zIUpoKkXt^SZkVO`?1P2qUtqA%1?x7jZXt;RNpJ+>=QVMg3mUG)bHW`)o3<|!DG>2Y z@eomEWK<-wlZf+#q>U+(7e#m(@L}ERIO5P7eF&SPB^KZ8sr=gwoQ`jaoMB-=$?O8o z|0h0tiUZjCzYr(0V}IonXF_K&#3_zw)*<1_#RFUjz>eX`epW#I_V2~YHhAymZYH@GD$w=5xc_4`K9hVjX3%CsSgj|m)~uFazD>+Z zLoqtl`hdjDG~QvY^3RU>{@+j)GMuwhl=yWygp{}w)^l!FDN|&mI=wSBsI=A!dcl(` z!#qC_v2f@Z3jYFp|6f(PrkfkrU?&;dXl0^GFn+-}dZgi1S%-xK_^W}E0LHznYOc!@ z2(~@<+NHVIzV`u-mCMbt$HGT0d7}gzzsdJ?xdmgnaSzdNV)LY>BEM%BE=f-4y=MT@kJ!)De*8j=5p4A+o!Vha6oWDGnnLFJxQ*7N!9**j19D4UvCiU$!d#8`>Q zMAUz|yC1O>_kSssS*G>0l#j6(N=;M9z7LwFz}mp{kUV%Wc6lk?>p1|kV6?+rrJdL1 zk^8i{zOB838nnQw{ zrcby)8*|h5H!Lx^nbwVbm2;K7^q``j?T7TpoZr)E9{U1^s@J!Vn zRJBvzU#W'cw<{7Vq=;|)KqHy$h-mf`!1!s%j4{gA{Nf5L)KqM>4x0nN*2l(knH zWjva7-!DXCfjsZ+kHRiXkwNC)F$*`>mZ-BM=lcS3`~Y+g5ifw4*%4mo#Sr=M_l^)r zjpcJPUdKIxBz8N)d_AqndxC##zP`L6nc}NduZY}}Y@m`uUWPS3_a@Sq%km9W>}E4p zgC#rH{63f3c=j3NW^L?!24Mr$@^t{Jm|m7`ph{-_UltL5BUM&zq%!&Go_!BMzZMtp znCCTtpv$(2pgkWWQ+0Y{n%=* z+K)D@xn=mll#ffl`108y5Rz)sQmh?al}?i2AlLMO)8a443p>Irx74BuP7nF9`d zQV^l28m^;AP(iBQidU?QSFExh%=^M#Fzs9W!K%Ol6i!aLLbNAoSxJFm&nKaC!*GR9 zv=~}-CYP<3wZV(TR_vLlMTFYrrKJ*{Q`w5WlldCI8Eh>$>5_cqo++wvb^-?ukG9?F z5DWx4(UU$tsze*Xa)3wz$<$#gUcj%cjbLwpEcKVYNwytKXtV5mZ3i2FOzMzT7_#J8AW!()$ZN>R>IO!CAzT^Ti2qvzGYbV zzN|#K^5f7b4k6cFT^^l`#x*|v;k7?95CBG-hE%CzC^BgxeD)H?%WSR?fa6KQ%)JDl zPxNM&nBKCC?iagzptgdjLVmY7SS6y6PJYdTKPudJU~hfr=6s6blw6Fy9Pj;00uFRB z92ylDzSLSd@1^ieF3RgO@(9LtATTL%;_2W zo3`T^64V`@p0z%vha38}FbZoOs8Gk5=MogQ3-qQ_D;iOwzcz;4Pz&|Y~9_l_jB{xOM%|OYtUGohX zNsn%!11mA_Qa;*eAV1YEh~pp|0TZ&}wauVVwi2r#XIv8laUzlWCLHr*+nfCJQnac^ zLpO-%z`PV1^CERM$Vdc-i1x@e*|26)!2yc_|j=;Iu!XKdz80%is`r zV8Sud1oIgtyj@HE}d~&XPY)DG>3ERN1=>byFkH3*JGNR;Z*5Qe5DO~p1&Sm1r$PsQ_ z&*km&B&rfp#lTYP)9j-yfktM}Zro;fQo z_^!=w4P_$bO{J0Yr+BQF4gm&Ek;K^oGWqx|h7WwE#95XZIO}w`Fa*BCmKzQ}GaG)A zuMdbwnV2@zGo)*VZ=Z}52e#!CM)K(^vOKn}%acHt>M7-XJV4dha_#9(D+*4FG~bUB zyS3v<5oa)^3?~E4cE)5(1XdH<7i=@QzcXlAR|fF3gB8g2CIc4o$i37!lvd7Ns5g{7 zz>SXq7Fpb=F~?u)L6gTy(15RNW+9iP5y2NBbrY zQVIC{Iez*)2MA_o9BUv$Jc3)Hm68P5KC8_d#4V%@;MoW7V`*r~ZyYn{?@r1UGD0i7 zMZHJLdP;b;JFC}b&6szj8Aw{~{~B8>K&Vbu;Tj>wQu0qMDlTThZWqOF#YP#(ok1%sIsBZ1 zVg}b0*)sC0;4bzY0K;&t$)=2>z(j+>i%x^3V529Jp{258#w(Q_k}+w9Hqo+N!fu#K zmOxYc6k#U0ox%5TeB?cCH(divDjTL8tVs!#8$chw*#R^ceH#)QWevdgN7R0nuUBFg zPf`n(flm{i#*jWzW>GSB;!lZ0 zwKe$h@(zx6U(}tEB}nvlM%pRJ0gu89$NrR90ef#WtdKPk)F=lo=G-AykVqDjv5=wW z%cFsz6%r!|eoi(qY#`K&&>>)71}*UcJpzflhZ(271sq67B85vFpg<52`o6dXA@Wdy zkO!y?w&~;(I==`!DbmOQKo~cgao*a$paWEmnRsAQvMn%0Wn|#4!*gU*Vmv39v3GSi zyj2p#nIxmhuC^~ghW(G|Knn3&$(h`d6EEa=bU#<3o2lskq-H_ZsM^ekBcsPt)>a}k z^&&59-*u7998=AY{R`T^zXt0M;UkkkZo>Za#Xn4$Z3n{Q5DZ=eVGtNs@m*GXm@5RF z6SfaxULsfYEyW+iyuIkH0I;QzLte$CafF(5W{*ZN)FtMD1=-C8q#)*%mUAXC&$1iy z1Z+#l#{o3Wpzj;gmY3IgHOQ_j(sg`yeY)$9guL{cx|C*7U(%Xq67oQpdI>KQ#qe|Y zmQ)V0c!^Jrvm`#|Et7%atkd+GVj!{_jC9(#60qK$o#M!;s>hW66`G;{VVl|Wc1^wi zFNO2bUttlCl|`hTef-1Z5PME}5q=70CB#d`Su^6G)Ju}LKwZfEYw~oLpxf=Ysps|) z0(rPDj3W1o$MN*ZP{Ijn_K&R=mXS{D&+mIBfWg+vWD_39i z?HuF_J&XRIfo5ix>^uZ_>;$}Ul>%9;dp-ccrzItmmiqP+SB2G+gjg`)10`rlGtGsQ zUbbNiqHrjIRJ4}W1W8>Hy4BBYVGwf{CIBUh7gzR)urDEbv1%cDj8&S_4v9P8-sE87 z1&Ct`5|+IsdB^D?Vy87a?!H)wAx$qxrw8i`8jwI_W8CpPo{QnWu1>O_d;J}E<6J+w20R`7jO^=Cmt0iREL4s4 z#QY#;YVsccFu5{HCKqfK2JAVngTx&2r3LvUd-fLR_46v9;ILO~#jA+X`3@*#ps`uU z0pUC3Y%|pFkWv((p?bdfKMN%zm~-M#JZ`$@%Ey51?)_gyC0f)5Mh-n$;B+sn&ILo| zrNTHPDUgaL^|QbNcZ6P0q%X|Wm=#Qvv!NK=Vs;pAb4d_Bo^$0E8>-Okr`slCQaIMs z8T#!@H5f%cX#yhKq2rAZp;9g!d}RoPI5|Y7n1WStKQXK=NLuoyJ5i2Z@PMFY_@He# z0UJb^(KOMvoaRjLXmTct$zj}#i|vyjI$nL6#1{-e{Gk4;6IAp+njOnO_PIESwu~7` z-Q$llTi*r|jqw>um0ajyqePeGmP>BoP`ZW-Yv8wY!ELFW;yTKl5dFcSoeqt6LSH<= z<}D?eVj}vhV*}t{{}l=!Ln)KwyxpiK&(P1Pam~u8al(Tp7WlG^(|X4Wk%T|@hyK(t zC7RFO_bb2fC%^a8ANkq*J9@$uB7N8z_;WtSdxRd!kzugxW-*j8vI%i2w#!v)3gRHl za%A4dm9LC(nU_PQ%wTm~yrJW>gyiwgPzKi)*n}0YP-u3S%N^c8iOHcyhWL_~ul6xH%hp+-zrqE6KgxM?i(KL-~mn8b1e0V4U>MI|l=4nLuQ z6GAj|+D{Vk15Yz2KzpUd57|zw0O9QA+~9aWgg-_C$$N24m#d1}Q0LClWJC9{?;Z@1 zQ)XC{bf=$G%CTPbgL2e@!6Tl2P%YBS=I^4udj!sNJKW=c068yVI*B7t6rv14BAvl1 z$BP||iXD0qh?2g<4nx>M*x&*w=A@VL%WSs(w*s+k36n7Z7)m?gSR@Eh+*BO2Svy~odxrR}@veR2 zqB}Z`qF0_q(a~uXtV50r`A6qb;A=n1sli=+<)SlpI{exG)}Bnk_?7YWFn&$k=Qp{i z5+E^Or{vPHl+ONJhUpgU-2Eb$jy{5gINCDwg-c7PqELRjFYhlaUs{So1-|gD2KaW% zSOa_!B2+l$D`YDw_&#_y2}KigufO{N+s~X9-+5qOFPEmCHi&&prGAyVO6|e<#-5Z$~fCP0qy z>`2}ZPmUPooBF26VC!5g)j;phspD71(fk4i;>ltEE_ynCgsu158(#Fk?bxtaX?N7E zb&x?rMDg47=C}T5$Zh^@w=?jx{_C8*QN%0 z_K{95b1cQ&ecxLT^?^ZmdIOfqs;PY49hfQ5%!0H7 zTZ!>e=12JMOn%;xqZ;6P)sP5`#m(s~Go0Omg%#^Sa#)a^tt@sLSk*%v32ZFSX)EJI&;=OroGQJ%uKYIETLHK zlR*%LS0P$TL{IDP81}A}ISXm$YmXjdM!H9^nkhS)uYqIP^v$EAJny{~{i2Tega5(WjSB98m*v?C_hMBTNQ{ zIjU04PrZfGwMQW1{*kw7v8PE;ejZz@uu~1))R;Vi3(Vl=mAA2lQ}sarEgxlSJK&P? zw}B#kbxdfLk&DAiUm9VPHo&jLqqA1GVQh?yyQBHUF;64Cqk|2=HVJHc0ow-H7z?Zd zfCX%+aEsy>Y&KPs`MM*+jZ6YdSzdV?GclR3Ig07p1uzN>CSAVIx+kG4{&E5E9TEVRNNJZuYBUiipt?5FP|+Rgu_>!C?ABwSDr2( zgyUA8FCTp62Y_Ikd-#K)Q6T;8$UUTTf#5zW2rqJEEuryy2V?)R$=?z$K z^dZJP4UN*u5pfBG3N14yeKpEy8#FpGx9%7URWvns?XkS0rdeUaN6VVF09H+gfd#N? ztgYPl(m$4mR>nRnx;B^YOfKfh^I$~gP|fOWMM>3&Ix0Cqzm%aqYrj}wD-5cKNJbH%ovr#}@ajhb!hfjgZyS3W+-6?#&A~Mdp zXGUBAxP;~qlt8+w`GRB7C!f_T$!840-A`hTC7-d@MF56P(#zAEIK?}pH*rD^g1C}< zwiPY`{a9K6!9UX>^=!uH@?ckAh@GxjGQUVv7U#QrmE}B2JyR+8Q|cMXvy6ed(?ibb zP_`bIY}l4r%rA^rLzn-`q@|wKS4ll1bNF0S&!ksIm~9uE0U?$dRto{M7|??8qG&6I z-Lf};Y$ZrGgY|0a*|N8aeryJ-{aEVR7=CJgWqqc((dKE}Nmdz1vNG)q8mmby6G?Fd#-tJBk^f9> z*-QxA7KmlmS0tk~#NQ+wjq$gqy^xG%GM6M~z zVOn!t6?vpe#QnEvTwAq!2tnnksBNQ!u6$OIj+V8<9d^j0X9%SoFVVPULxmOmh?NL7 z2^4&u)zc}7WcIO^K!tW|KpM=kL9KjPQqM%jI3w`Rh)ONnBt3_8u5O8LnP{BeB5w`H zi;S4PVN@zVl2{EFSCP);+5RP@b9KisUyednKvEpXuLlGWm|46}DBGq`U z&<&dwjP#16N3m1{v@Hz>0D(_=U)%^jeu_dMvlW?A%JKr2ph`f2OFkFtafx&8wK9Bl zJT6`>k4rBDSs__WC?vV~uvE=*JPc*#WLlO5<$)^Pf?j;GMtlj$N(cvfER&N8+wKLE zldNLrGi&0;akc}Hnv}`QQ~b?wdnx{D-Y*L>6H8&uD-jDiL0>Ft5K5^M4Wi;niYhhU z$Rl{iwRaC|d@?boe0~stalG0>7t4nP^PdTEpwxftj?%RM6UiWw*i@^E--rWYW=%)P ze<(n#UXjNCk78cG6G`gZ;XeO5s{BbSzhCfYVl^`Ut%bUEu8pYKV#OUZ)JRbphN&e@ zo{om;g@Q(_VG86hOh$?69Y)D}ev}F+2+L~7@^Fcq<*`tuZSyK(+*SvJbZF~hds+w{ z5CsCyy@@AaC;D36243THZ{wA#HlZCF=R6WSPh|xZva`>*iSDXUNF$wd6YW)-z?wbx zCVHzjp%B73Lt!6ST7e75-!eZU3iCcO&^}*() zN9+d$&!hx%d5ojg*cj3hV6ZW&7pGMmco>sqS$Q*g`PrNltL1FYgc(FIj8uO^&NbEp zoR>xaAq6%Ow~dJzdotp`ikLCpF~$@BDLn-KOIL^)3@y)qzW)d@mztPq=3aCuq>N%tuY+pG?kIywJS&R6&s0t$}EtT(i3__24|9WkQMyL8Jbt%n@ibV`V9@%&clK3x zUea%KXH^^U^=V-H0e8yRw{Q1W>#Vgl*Bo}wScT z@WvsdJrK${Ah^P8Ya^5L_){iY=f`m_(RDmT?dzCBR;#I^tnQ(YGUtC7OVnyH!lG4Q z0O6H{jT1TwtNa=t?rMc)ri;xXyupb&UB2mJrnW+=D%CPgr-b>|kk|4VLJGEJ_1xj? zoB>W&Ph)V>qZWV_$|8Hj9wB5?2m`RWRk&S|7{>3pC_haWI@( z(EbDwoDPN~-Y<$2jrfD%RKbp`3&qi#vgfPk)K#0%Idz;CtR~dQ@+NdXoo4qel(Uq) zCSHwnJhF(2oC$K&s=8%yJ=U!sn!Y4fso;;a18@ynK*>FN7NDZD!32+y*U#a1B!F~Q z{ONW`k}UqzSc{O>?CR`;~YQDh{LhVJ$!b$fn<+|iWd{7BgN<|IIZ}#RlegCze@m# z?ODWA?GvBK@B)&GbRi?$OI|uh-g-A9NmL9%*%756n%$X_-RY87N5~@`^K=t;M*dtG zvb+UnevQMp&hQ#5@iV{1X86@#>md0mSn>#BIk$osFlXa&I;MX-w?i!86trqTXty|%~tW09SfKGbWCw}WDKr`p0RyykN1;o zd8RaUM?RB@Gnnkcc^##LOmNS#%iBAeNp?P;2T$9BoL}PlMBJWWX!ZAap0a<%U&a5k zdLm7DjU`#5>G=Kahzatv5=y`bJXnh$5jBQ8K1TUsB5L$HnnRG_$$Jry6usGcl0nQQ zZ&70$Jt5%z$6MnOo~oK$VhH(I-Nc;qPUl9@cf9FY)~Htr|K}UKhhm z2N5*Q5fB=z`sSj|A=;xlfQ+@PIW|hH?Lv^+{`?6Y=OwM}=ajmpfsJp)&OCsv7P?|($iX!_#y`!?UPcyxghj=yk7s2D1{_+abziGtu zRN=tZe;*@603LR|!q>9{a44Kzs5X76EC=D9K0F{xMYawK{N)uuHaQYN#pD?3mdoUSEUqH&jf_9e2NZd~Sl+7h-Y$EM z69D)`1MD@%IT$v}c?}M$YaK$^a>QXozk`nWHI%Vbspm%%D2n>9O8UllpJgw=;ZLme zvy5}q58HNMCTy@Uq(e@hEtQ{4$#P)Qe$Ww_$51y)xGXSj!(@jCMHM;h3@K)F*e}uH zlV(|bZ8EK4S;R*PRL$bwu|QR@wv*X&`Rko;=)d(zn$_x!W~<%l_9iC#8>cp|S*wHq z$wq0I8ox~F+B9|T8G=n*r8S5}^|;5T*B)+h6-)IUT(r1>H_P<~PHm=CbFK5iv9i5H z*V*6_;{KX*tYmKA7r-2rAg}45l?@70cKL=ZzU>%kf41I<>Ck)5l+&yEB9!} z3nGZ++F23AT3ZPEzg`eQFVqmWsStGW3nJ)+8j>AwP6&FThA_Yc(KiE;)Wn(Rp0%lP z)cpBxH5Is$icrAk22yD0jO2)6QE=(mxFf=4&E6X7%Arkk#~j+G2=FcMKWK63;L1LJ z(8O18Dsv~!m4BI^7*g^EL~cc0eBReBs~XER2-1Y>i<2dn;-9t^k~G7`U>i3EI9(}R z^ht9G3F|A9SUNi!z}jbRPw}6Z4QRfvat5HubO&g~-9XGa1AV6UB+jBOspxF% zhikj+VN4H^@ncJbl}c!QB~fShmS0J*s$$gSQANble3FM~fBOM9>)E7a49pq1q)|T` zxgh;FaKYuho(o*8jYupwGzAz&rtI&1U!9sr-go^M_7l!HCYY3nETICKHae zAX-M>DtaY9?QpbAJ=OH_9f*#hM6cW#-RcL$%H}49DbaU9bgTc&1uU#~81ha2`xctS z{>`$zNq5sFk_pb&l4@*Sa~#b{Ou~Ipfr$^=$J2#7={ZbURn!p$nVT}80)#9<3J7)L zVh)6Th6#kKygGzKgn0=g9JUIK*BOlX=L;C6X*oU$mmmApY=0dOa450j(dKn!Mj^Lo zNhADGPI$JxZ-ucd(=YFFa6LQuz32)vf~+m(LJ3&L#wItF*e%9hhf(c+ZN&@B=rO6h zn52TTQ)O!+IK|K#(IrfPrcA2j-2LNFd0fhrc zWiF6N0fQgYK?Xp?OsOXg@{B!Ynr-;(#qKh@PYYnm-%ipmnzn5oHV*>i zdS(!eC0-;5o;gM!T<2n+K1$~zJA)=c`?~kaUs1zf0aRK+&LlSu@GZ_H*GcmUTJ!bU zsRU*daBZ2V}NMA?E8Yw&0B z5iF*am4OiZlp)q1IpE2)_d44*s|-l3ACk92yP`&>p#N`%b?A=?)cLZ|HG4nE=J18? z@%NcHuv5$VVw&6FlYL;bkI0wHiwF_*5!R!OYGfezWhPdPRRCI_;3x%?H%{hV%ktKu z)%;xuFVmtvW}%f%F&<1m`-qu){v$y1!>L(Jp;s;V%!p9ivYkeq8S7eSJ$1sGF)*0T zrE==VM4mr3F5AV-=o3jyjkIs*MvaT7IbEat=+4$*qzBW(biv%7sn%AC(D*BBEY@NQ zLE39ZCgi;MmA$RELMLJ}aS>C1;m=fsiYGl zP(J+Nv#I{@J@&^7ZQ2$YAIM1?BQu?Q4qHmy1e+W;>kA*QaSKt`cO2$*5agb@>yvnl ztbYk{WvI0w=^6$z)&rgMhED8YkD$)Eo09WE*|<{=sB_Gkp%NPW!7g$WfFzxIX9qy) zw{37{w>yDgPCMaSM|_)@_Xw-&^)N_w_OscMqcFUgL{0=B6UEXb^bMHoI?xxr*`Vu| z-t*o&Z$B_VoJ#F?QmK7yi)Y>%IygwD)Lf%4XKP1|V8PeG$$I`ZuwXx!GsQgY_aU{# zr%#QGJ2?M1QG`oGJ1EGT0B}La?ASR`EP3BIck=7M`_yCa``Uw#NBw`t;ePoPmwe54 z52qfm0|yKv=(oIfV8}icZG6XMfhq$CliD(eQqj>G8V5(ksS_&cjnqyah~5l-^ zk}CMK&JZS354cT-{l>kN04Q&PTgEAqP5EU@{J9<2(*+GtH@mkKBTym>bZRz}1c?-w zomhvW)~cOTtnFMilI1jJdcdL(T$ZMY zq(GRJNJ|zZJp5D*dWnd+?J1FqX2}kH6bZJ@OoD11ma)mQoOMr>!-;XSY#tbL9u2#G zIpSpnS#s2j5hJI+P_IIa;-(eE$fs}*a3~KW%N7pt0;pqhNW21#7eR~J3R-0*8YQhF z4Wt1*oon!pp{_=>T4YYqZp+gulY_(|%n2RoX>lilZsk+xC!S)%!VIdTwGYCdpO6Nd zYEQGm5o|`n2^@4l5QWDt2n_NiKw--vbxzB4CNjZ-F8Gs$lk972Ka5$Aa1rLVTg18_ zG7?ZGLNDaK*gPs2(9+(z;z6Ap*7wTg@xMA1xvlQ0XHYInY{??Zv_{3ZTJigNO!E5Po|Bp)oB# zbr3P7w!OeRXf&m~7m}l%u+yh9zY`6UhdkH>zV@IbfTAe^2K#9+MD$qZ{sV)DO2(XE zpb5bcB6N-eJp&9$9x3%VHh+?V4Q6QH1Lctg#B8z26O#+MKQKq*qf1L~O$>l!830N@ zqY`5h0N_FZ$okOQzw94u`~ESZA#@F2$pLh%Z^|^2S%#fxFGUjeQqax9#MoYnBzh5l zd}aMxyykx=F~p%xzkyNNmI|BM>Zr5}2PC80%FKDrAM6^285~dBqzSB+H4iZwZQI52 zcpL(=pFKy42Y~=K@Wfa`u#6Z3GazF< z@xJ6nE$ckc!id9)ba+3YQ968s99Av%{WN%5>HBprw6YFb0U|q?NymDGboiGx+SLJr z3ahE`_KgBJN`;3$S;vm2!Ve@i%WQaRRI=e=@@15Z_ONt#FGeMZCACMCjnC_!g0khH zE$G!iF?!WppR@e7bog<8VW9xWk5aECEGu`&waOif`^sGnuP#o-*uKtF$=-f!BJOG* z9BZs>qzDaoSqsv8T+n-F;Au$pbQUPazYc+>#5yPCaz~a`zplH=2Y17xa6uI#j>WZO zs!~?3Twsq{l|;1iFFb^T*gjGINy4wluCc$vFp)|mxt!s!DC9FQ zBy~qTpg$`jxtz6qkz9^xPT)pap(|c%ulkyj%Q=@-91SpW$3EQ%sy4C-22tKQm%7oNj{5}xz4+LX#eGn zSp?I6Ec^^`%d4}zv8UMqPdI0JV-sjj$g(S5ctx$&s;&6bszsw`u^f6vAEJ(=e-W0` zggNAjhjI?!_8l8O)Uo`LA!)pprSV=P8~uQtxfSbgd%M#gU?tFdMAB{-(~@s=3DaOHfULA?;+-xa7<+(vv^~!IEU0FLWgf z<~WbS!6Ve=nV7_bJ|a5XJTpFn68N?{*OGj!)o=nsWCH&M5Bx~S{$vRJ)$wKmpR#}$ zCNtA141zU0Qby!x^5xbhFf~>K{8wrKbulT+8gF*|e8h@|i7G4^P_O#rcqt6gSdm#g z#&9-oSQZ{UTTa+q8aSq8J0DWyF4ZxD=+*AHUfmD5ic0li(MTVg#akgK-bs%7kKA*X zjJDii#s{wCFq{1D2he|;4x4{w-%uLiqp_CK9DTqcI{qhnT-g^ZH^s1V2w%(bLqK}^ zYhQiWJVAZ$2&|zd@y)b2McMK31oNHvQw?lY>pwvO&ny;i*ru7(oDg~mK9vX47JYT! zQ{Fy=x0SxwxLEDWJ`%ySj9hFrbCz)aSqo>$0!`t?kh_f-rk%`fzABg)ADyHI4jic< z%N4={glVl$Fr@ewZ{Z8v!=}cmgXKoRTKlqo@bk3};8s~#D5~4@uF`rP`e=D!7yjMz5y=^1PJ#m`|KL1rTg0DBwx|^TksD9Ders$IxVrR1nQS z^890%{8P?9+lT;QqqIv=MGACQADNMhX=bEB zfzPru@<)OnAXCu~INxSW?A|{i+Z}dTwH2L=;lo5(?vdW(v`JCQT?<+<-6g zfCeuV2-3V1q0m@ByNwG4qIy-LXsj+28YUFrX5;v#;?|`E3qnBx-h@Idp)g)$Oek;! z$|^DeHjqq^54<81E;gFDxTJ|BNQ79T45|n;A!RCwz*SlGTo4HQG`1&zAbrB!exs26 zSd!j@IabHtgevaTbEhJ=#y!iW|1nt^&*J5DoR)_}$ld>Cen0)!6zQ|I@AEOW#3(X^ z(m0#B45jgf56ZM7xp1vA=Qx%Kr6FO*LTOS0pqe#jo)SvahzNVhmyNdZp|s40(pbtZ zqKAr58Zm}5hSE67D}>UDFq%ROgwaNATCRcx=jaFpfZrT-pbsR-BqNVUaWsGCa}h_g z?*dpHtzmIA{}mu!_i?nQkE3xaC+$g;S{w}|gg9Dnc^u8c?oo)N$x0S`=*udKqg|&s znt~}FyaW{+f>>xeso(K98f_^sI~GIB8#lR24=g}M!-+G8E`0PXb+*oBlE4M(QXvTW zZ3-qVI`D$W!yyB(2Cq7o?sX9UO~TVlq9%*3+Zz9C4)uf|xU3||3@ZP5rec_mVY(Nm3->FYrka-FxTVX+tLw+M>)AXpis9t(nb7V|-{?47u4A|F;yhd) z_(Fd~xs@XiRL&9QW93UaqTDKgdsX0w@?{l@9yp?06|xl-bVPZ)g(8k95AVJ{98q37 z%c0_0_t~N1sTecfE2Vcim3pwtD_V?xG4OaqJ6(|1W!Q18vz=)%os^bIv{YqpD7Y07WX2eGjGFJQ6LtGg9HB zwN?!h5`qG)cIUn48v}cE4;WP$NF_x`KVzzZ0;5DJFk*m!5h96_NW|a^ic-Eh2X;x&8@&shC@i?qIY(MJQE6wu z>;{Pp$4Fg@Q-e7pQnO)481@qE-C-CbGvLbZEWc95_ZEgtl)U`(ePo%Hi5|pm1F28H zW?%8IfsHZLO1+&d-DJ}~g`e>=l&Ad^-Y}TYXqWBCii4lB>Jv zGwofQ>HC43GxeoMxJtXybsagb%F_J_y(M)>8_s%s#0C&Do=7;nEH?nMO z_0>K?%dt~^DxNL)ih9~jvgufUGw&Lk8mXJEU9)O;UqYst^qx2RDXz7))+Cqt=pe!Wr7|E%##(!~nslZupS zEacL;i2q}0%VB|5YETRVJBuxLSYY(Y>)!kdaQ4p&6-$8%osD8bVU_*oii$0uLKLN= zUT)4bbS30~T5JlMsKqdJlF7l!&6gK{YaYqJygI~uojC~Q6WPiC3(Sw+vZB9G;S|z2 zZ;yYvofE_4P_l&5-8fVSnFaky-y-?7s&_Ns{AKN+vMj(?SOFcZCR;vJV<%<Dq)2VyRaP@Pc`;ItdBD?ztW!Osvxm{%=fUA& zS<0v`T_-%}6P@dHlkRSlNCGTzr+1)wsJ;rV+qGMJGk)7_ zPipQ1B<-8$R6mRS(XUKPa}&aH`cnd6b>fbP1v+ta#CdbX7?dLT>G;BdfJExX6nPCV z7|-prSqIt0w0WQ7Ul5 qM^7ZfzV+i8^f&2&>w$F4^2bj}? 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


Qa;#79t23nkIF7-JNBK+<;P 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 P6<6g;BeZ7DcQpMAe@mxV delta 41971 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 z Box { - Box::new(UpstreamCall::new()) + proxy_wasm::set_root_context(|_| -> Box { + Box::new(UpstreamCallRoot { + config_json: String::new(), + }) }); + //proxy_wasm::set_http_context(|_context_id, _root_context_id| -> Box { + // Box::new(UpstreamCall::new()) + //}); +} + +//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; +static CORS_HEADERS: [(&str, &str); 5] = [ + ("Powered-By", "proxy-wasm"), + ("Access-Control-Allow-Origin", "*"), + ("Access-Control-Allow-Methods", "*"), + ("Access-Control-Allow-Headers", "*"), + ("Access-Control-Max-Age", "3600"), +]; + +#[derive(Deserialize, Debug)] +struct Data { + username: String, + plan: String, } #[derive(Debug)] struct UpstreamCall { - data: Vec, + config_json: Vec, paths: Vec, test: String, } impl UpstreamCall { - fn new() -> Self { + fn new(json: &String) -> Self { + let data: Vec = serde_json::from_str(json).unwrap(); Self { - data: Vec::new(), - paths: Vec::new(), - test: String::from("default"), + config_json: data.clone(), + paths: UpstreamCall::get_paths(&data), + test: format!("{:?}", data.clone()), } } @@ -40,20 +61,7 @@ impl UpstreamCall { } } -//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; -static CORS_HEADERS: [(&str, &str); 5] = [ - ("Powered-By", "proxy-wasm"), - ("Access-Control-Allow-Origin", "*"), - ("Access-Control-Allow-Methods", "*"), - ("Access-Control-Allow-Headers", "*"), - ("Access-Control-Max-Age", "3600"), -]; - -#[derive(Deserialize, Debug)] -struct Data { - username: String, - plan: String, -} +impl Context for UpstreamCall {} impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { @@ -118,17 +126,27 @@ impl HttpContext for UpstreamCall { } } -impl Context for UpstreamCall {} -impl RootContext for UpstreamCall { +struct UpstreamCallRoot { + config_json: String, +} + +impl Context for UpstreamCallRoot {} +impl RootContext for UpstreamCallRoot { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_vm_start(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { - self.test = format!("{:?}", config_bytes.clone()); - let config_b64: Bytes = - base64::decode(String::from_utf8(config_bytes).unwrap()).unwrap(); - self.data = serde_json::from_str(&String::from_utf8(config_b64).unwrap()).unwrap(); - self.paths = UpstreamCall::get_paths(&self.data); + let config_str = String::from_utf8(config_bytes).unwrap(); + let config_b64 = base64::decode(config_str).unwrap(); + self.config_json = String::from_utf8(config_b64).unwrap(); } true } + + fn create_http_context(&self, _: u32) -> Option> { + Some(Box::new(UpstreamCall::new(&self.config_json))) + } + + fn get_type(&self) -> Option { + Some(ContextType::HttpContext) + } } From 1c050a5472febdebaf61782bfca707318f00cb5e Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 00:57:13 +0530 Subject: [PATCH 24/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198403 -> 198403 bytes rate-limit-filter/src/yaml_parse/rules.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 618031491f807cb16dcecc21fda7e7c4d8ca363d..357d193b4dd4371976aad5e6c2cd86d121736286 100644 GIT binary patch delta 21 ccmZqf<7w{WX=q{G!eqXIv1q%+2By), None, From fe0e7074de075af8ba76ed2f49dd2b3c2c88bada Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 01:05:39 +0530 Subject: [PATCH 25/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198403 -> 149174 bytes rate-limit-filter/src/lib.rs | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 357d193b4dd4371976aad5e6c2cd86d121736286..83d3eb39a1c2e5948edc0057c906fad9bb8e92fa 100644 GIT binary patch delta 42525 zcmcG%30zgx_6L6UzL)U=9u$>P&P7C26r6|DIG9?_+G`#Z6-yjYM4QY@N<}$@U361Y zX<1qhXues_Fav|9||PyZ0LQ+Vk3Luf5N4 z*{X==R)(c1xeMknMN!x{EO`p|`Iv8t%O?W>$`pnN@anYB81sj+*Hf4)Z|6;7U$J8$y5+?j<76y`t9E&}sF{x*I+E*-yPT^fGpx?c8Gx*l`| zaW@ZEg4~K5vEWd5A`5oA67b^&%EjDn(A`0-4OgOgRJ@{aDjrAR<~+0==SmQ8A)JRR ztz4Y9Ricy-a3~$?1m5>m3>-Jo6ad$|FF9b3;V(yUeFcuQRTp%dH zD25U(Q!55{f?sImtgt z8)iy_sAxkTiX9Z>3yM^f$lxG%2*V$hlyeUcg?tul|G5<~x$x(4wFZ|OL>WOk_qaVg zD1=jY1-npAJm5l+LrD@E34|~(w<31@QI?A0p;96qhFBMaKqN48w_8;`5fMR%2L(k$ zxOlJ!C7Z{V@}>Un!D$iqyMpKB&YoQ`O?i#`CkMy*cDvdeU0*PF^0b1vMR_+DO`cYm zms^yle8wYf()5D4c}gRXuo1HhZcx7Dt!#LD-t0W2`HDx|s6}%oFDS|_EK+u|);1D( z%$Rw@!oob|83ys4Xw)I=qM6fXDK#v{=9|ATZ(-hK6lD4>%8UNQkoctMS*%T+UU1Xg z1x29FnLItWC|7yde`!c(w#R>4NE~~_zb2#;d&&P|NJ9KB*49o_m2544nm2hG zTGr-MKIUP+xR|0d&mDZHYrSi=>lFW!m%IMp_qukvegf`aeD06z4Ig5U@$dO2*SCCw zYqRS~*9m@y>m;y0^MCVId^P`&Kh6BEFB#$9X0NjAzUBAvm-uEjd#h^&e-YScTwk$A zk#Z$}hdsnUW54t5{2u<8tIYKQ+vU2K|HhW{ZLWQMhIS|4$bV+f@SXfA*H7$ezQyIc zi$BhPVbAhi{Ga@qyZICRSN0s=&5yGkyp(U^Cs;MF;(PgnyaqX)D~FfaeW+atKM3CM z*c|-`N^ei7MZ3C+KhRH-Y~d)Hk_LxYoK>x{mNB{sNz0j8@p`dX>-ngY9%Z z$$vnz4A|-VFF(e=<6B)Xu#bU$#`UOcyK5_}V;k9W_AmAx+rcW?n~dsO!5(7|ux+lB zjO4tA&hHqqfwm`y8*8{FUc>`MdIs$&>m;T9~b}eNe@lW_k{wcrh zKDNWPg&#%!54w)?b&}_9*D3ZU|1T4+Wv+U5Nzpy1&u_dDMS9vb{%&>$U$DaUkgJ$K z;<}54pV|}hpsUjVa(EAZV6XqD@JYOGpMRvMmV(HLYkA#%|E!4T33{n@d;gHgq>ux9 z_bEDfb0gnwUAJ$alJ8|a+xSQ5i=ujxq?@8@A`XHx->Yz+Uc1-dp+gc!FtydS6x6iJ zjIP_iPf6#>*hrVAL^7nkUu{nr#ih?e<$5Zyh3D4MGuS9Bz4-TFzR7Jcj*oM@e76(U8^f-Z4q>-GEnX>GEGH&RMP zFD_m@KP5yb2nEegQAk!3Ao&AS3eyw~&*%iA95(n;T*FbFBm4d9+N7sCN(a`USt(p^ zH5M5WUYGJvwy)cCiJ;cdIEiW4?@x>w>MMR(=9&UFq;!u>7>;Cw)ZF0m=p~5ir;;hf z5lTx~{e&&{7~w()S5F;Atwq3L0_seFLYvY=K!ZtX*z0rf9V1esNuto^J3+t^lR}}* zR$K$%xJjYVW-BGiNs~gM%~nQ~68xZ~J{ht3Du}egAj#0;)61Qd^#l-x>RRapHWNS? zqHJ^mI|v{QQMOuukDzLT2t~kdCs0EGVTiKF2^=7RFhr?!0*4473{eg`fqDW6LzKe= z)cH)P&Pi$_puwb2s1unI9V4L81SquGP7rX!q)=$H6=U}5$4v@_He2bweLnP&Nuto^ zE2Bgu_@P`WwAm^MSYc8qwAt1ZP;OEvwAnTjP-#*qwAp++2-;|pD75*i3D{~D74uQ5U|IjP-wFqBB0i!P-w6vQcu|P>Y$SeO5$jHFFy&T65At{nCz*q=&kbg zo9Cx6{pNgXpn4*Le|l_I`;!zeE-q#uL@%lPqciH+yb7O%!mjx;sMNU0$Fz2nl@ zRR1+`%S=7XoqG0IoYb=&jn$XaHhRz5UnYpZ8Xe}m}#B1Fnn8tK9Uq6nN0Q+-N ziedeE=o$4wrf#} zTXz*nrG}*^U~w=SCrD?STTh-}l;WOGiPCu}H2@Zwp2-1=Mt<^ucGOUY>ZXp9J&hlK zb#fQB!T)*kP@fh|nwfc9L5k+mnfez`X@w=gqlMDy<3`X5DYZ}?%^RwPsfT$=__mzj zB`NK4w9-vTthL*e!VrK%W9l}hh0@yMq98OSIG?b(FJJwD$7|TpXuEQQ~q=v5ApkkZ#Z-9JF|Y=07ZDoa~t3 z4bxkhe61XONd}+h(S!Y3=Q96+)Py9L9_>Z_kXy9m43fFEmz=KqJ0&oeKe1E7K$jk4 zvc)*qjEr4+Ta(t-K}#@1_~%I(D>@|vxsY*$%y@8G!a%OanMI6q6w%0->+vQn-a(6% z61l%DErD_WRw*ON~+zo4ab=AhG-ZZv%K7uO%b9( zlz#H=8b$qe_*Y`e)+T<1fW;gntu$BmJ** z?cj?-PX&*S3`UoQBO#4aqsxq%wE{V0Y-ETehd9X8_md){F%d#wa7L&e9d?nv=Pnek z35C-c5+1Z64yeI~T!4-k&~&iUU^!_Mg8;3dI!ZCYfGTY$1khFsLe`A34)JKgveNpB zQnP6!s6`lvZU+AKl$xvFJC;;bb5rOOO^)NCh%9h}0eaof$FHLLp8n z1^u9vSZWMN+hZa0DH3HMNSc1&-Wo;kp`SpYR>Gc@nsb#45ko;)xlumc|3;4?nf0hn zKdwSc2KD0^2zK8?h;-=JP(2;Xt%eY*&}I_(Hun$Ae1K*8-_0BnT}_xKs%C2p*eEsA z@68$j+SOUTSgC(y)@uF%_iH_GYWF(#wng92`mmWgL0`|Hb^U6uw*LJ+2ey5k$Dffp zj=#?RQ+mbaKtp40h3d*UP)B_e&fA zR4h>SSfaSBr{+%QrPzoRhXP%U0p>2$T2mu}GtNZ0)N#9N`fcVRQu;S+SHZxpoa(af zf|ofP=bt=uuCM%FnK3%dQ4B!gR-xn|wjtTIku7L8L^R!pHf9OXbuKK*7N1OILsDXp zL37hA@lUugp3U*kzHoHz#?y;K>|nOrh{ml2Nm>KiPLDU5kUB*(Wt$VwhNu+#{IS^! znDDR2&J5mt2gYho|Gw;T>@vTqYcBOa%s)hr2Xv(Y?YdK+%-RZ$jbfaxW|$=oytPj394F1XNK7#{QsT@yP44VOjXSYnYey_HQ1Rb7_5L zjRLzYXghWKpU_ORqBe3?k z(;?$nrGLmpYnj+pchOahZS(gS@hGeCzdd3+e!U~FiW2u*|B{ERVIdX0H$_2 z)EQ-{R``#OYzw}ii#vK`bx8%P*}HmQdS-S^q5ey;g|WN#w6#+)Y2e?4QN-1ut+Se!|36Wisn%>v3Q}ELWZNG3aP8m zM;?uPL;U)<82_>{Yr6`m)z+zBh^>2 zj(AZA_i!zAc%kgxS|uN7%BI~WDpnB2i9T*Sn)2AVDfpc@J^>@{Oj+JBe%oMV*Pk;V|QLWG{GIMw=(8G`VU!Ks7z3)FdVKFJ@ITLS6g67qNbMCEp;A^+>JIAVyP`jBc*04X6P&%A{r^rmMYhVr1Dg>s0)}| zQ?y9h?F8$Gg7Z@qGDW1wzQ|p&+3g}BJNGjx&Hws8n;9E=q5=vnM7`I~^2hW#1z-fm zEYm3l^j1Ec)Ks_}w@l6*J$n|$#$6A99)x7R{3QMt_dlGU6yt}Tn2seHKNqJ!OBUs; ztNm}~U(|jB1LzqU8H&lMNMS)3iJAVcvlg+f{tdIHbVEL)J`hdU_HdOf zVG?h6z`v=`%l!V=3dh3^OP}8v&9IS9I+nuEF*$T}q-dvU;MuL*<-8Xg%=Dmo$@WWrw5 z4;`!TUITgEjP}uw5wHU}s2^h9oQW-(+EG7Dd?)UgeEv5U;GD}TrED#z2W=_n7qt@h zu};lN5ln#qOhmAUHuC1kNl`E{(2qg=`9&xLOl8!<7^p$2A3Ym55t#o_ezL!$NDHkn z2J!~~)}l@=3uP4fKC@~@R?=!WGH7lGOhL)pw5quoP=vsyYRRJ?^P|rF&1T$4tx+C~ zU$mpY^xm$l>#kk*p5hsY_5mf;Rfy(+aZJt-=-b0KItWnle#zwjWaZBZ$7~9Ama~w+ zLH}V@UV>AgMK`7S=ib*oxTXfOdij^%_a5Ky>aM9}u?%bCZL1gK_r&VUqShlTJxi~7 z8C;kN*W5o|%Y+^Yr`Zs$DVPl|%!ZV3QdD}3F&kdL|H9p7ybqJUy9&!zH5np3**(x{oU5w#A}xOH?CR0_b=ZSxAtw9uSQ^ri_EloDxY75A|&a@5y&E7 zbiNI*@fx!XdLvl%?s~aZMD%gAeuN;H+M6GIng7WAbJoR1)Rd5GISb1q5UbY>38@D{ zeUJNZc-+swX8x0pHwJ&ryh=obf5)bH*p+Nk4t_7%Gz`C`GX8J*8?~A66XkEY{Qb}7 zo@|0Y?8$nP^Tm@(D46z?FGPw9_4wC474LU#=}zcgTe^dF%9fb~{CmqcMwX%e)lcU5 zPi~Dez+ej`rm5RLkKZOI6?yI$ofkn9$~~Z>uJK>Lz5U?hRp@8A>bbBRZidLg)(pAf zY)e%%S~+QzGYS5%w;pj-oT%|{d23=a9E{|1L^4woz%7@b5)8uv`%M@J35O1Z9pEXg zwP^JK-*x0r3WJhu^-dLUVEzN|JnWzqy!#D{D*g<^Fi~IexiNfayf=|IR{NiSuU|-Q zHBe2=|I2&RsE*gXzm$Sc-!;|55FPYzdriM6;g;B`V3>j(GD#j7n-t}2KSKz3Nl)ZwQMoP|H>ER zsH&~BNNR?p#%EZJ3(7s6yN6@*f-p2*<5=~+__DWyFZrwOtc}TsHg0A+{PkF3i!#LZ zYuX~&phexr@&IXAZN=d>tgS!n+iqQ&zCp9L)+@h78@@}sl}a?QuEGz4jq$-R5HH6M zskZCBT`T+cmv6^W--c4(23vg#H?Y~aA=J0izWb-6|GFM&MSVNy`{$@{fBb&EgSPI6 z7g==6zEwO=?7HDtd)9V8%)k6hrg%fSk7r|HU^+C5|Gzgwv+RoeaS@9$RZ7VNaz6W4 z|MUZ!v+IuIxIi+;fA7zeuP7&ip;2n?5L3GQ0p4RpyV1YM4)0=L3FQv+@Slj zf0^zZpdWZ?AEp2tC|z7if0v@yNVtnDlz?gzkdz$&z~qh6DF&kj3{563T*e?L%aU{0 zq=e}d10~&})Elq{*e3-aG7zyAL+L+df@YZdDDGhcv)N8l4+Irg)hUJ|t+z>sOj3kSF_2)}m`zZM6DUd*sZ$K3LpG_{ zKpe0UCyc~3Y>1Wmn1R7o&lI=bNYi8^Dh$M78&S5`|M7{h;Prp&_f$-bQ-5?K)%W|} z08IQJftXGwyG6phgWrNd{bG#yuRGbdRmH0{iu6L0{;7D?zu{zFNcm%O~|V{ z(x1)rfBt!KS4uBaLJUrRXs?2E6g^A}n?(mInrn1|9_E#zv;G>|vGGxemMerClj=A@ za)0O2!wd*(sa5G4jiSP`@Ib=^YX5Mc-DlBwxI@dsyvJ2e8?kC%r=1epXobxLT0&3dhijqxpA2jQLc z%?J#;0_S@$Bgw&d%9MgAzkrp|)-4Ft3YBGnCj$G`X6BOt%w#Bo9~{{3NO4pKStwX- zZoLc(np;04I=fjCOBci4Y&ZW3#dovWyzxOXGl)G(aAYvcCU|@>i=_sc8O-_*8HJR` zLXF)ocJn9@m7dyEH?`eHl*X{sb|a=I>vb05zN(Ld*~5%oD;9^cB?HT!0=bL+6$OuS zy>uJGXStdO4^jk{Oqc%B)4-(Z_v}FMG_?3mgpaw@Jkd9dZGxHlaTv?sU-K$YID47_ ze$m4+!cIPp?0YGmdquIzM$wuPt*KZftKL=FLBUeSp7o+EPg5=m{C_jGE5Nxi%c8*)1Jph?}*hRyC$2|!o%t%Rea0BfO?SveO< zksZU@c`6%>a{$;JA~%MmhHpHKgl{9^NpW8c>))vldY=2}VD~Uf;aE)d%CBk^FZ!Dd za(I|DT#gjq#jqh%^R`+H)x2k0HkxIfVcqw@jHBy6IQ^mX-?Fb!*cg2y0<7v{Ydhv= zsUo{Q`<3+-17ew%-6XDwWmz3})AHX@uSX!4e~3ZGYF}fEOwm4Kdn}6^X_^Hg)UeLl zq9Ha?o5#Y=1F3=Hdkl*Kq~lEhv-FLY_)kSt9J@H)yl*tZFi9}{=j*PKxQuQ-8QFmB+XVAOZslt4<*NrFVnm`A5;5J;PX4dZy^VqSTWn^m6OTHcr-vP=#?& zSw;licESa(Q^~kwAijuagOW&&PPcSWJSw#&i)UV55Q7rfEirYtwUO`TJlpz*OJ<_` z6xK-`Nr1l*!0!ocXK#6vihiht}FIQck#C%dse%hghnhcX_GDr)PYLXPyX=<`ZGE0bSR;-jF z#oeqLrzW$3EJai%vsI*pGBh@Yw9qPzm1G!dF%`N2T2X_N<4}qrhEfb7_pFOFXgY$E z4~n5))B}3!Ixp)ra1?N`5~SD8P1`e4O6Q}tsyu1zV&;7u<3N3sM?_H`o5jW3vRID~NW!D)LMpVYlA`NZl@ z%nL8M(FV{ovhtW1C|`J2)X^xP7}1q&4xzo?fqZD{6|=|XAH29Z-;r<;IUP>$P>aI9HE)x{a?J~rGE(dZCC z;*L3r@n0iO&Lb*D?IyDrbVcz>S(?NiY*72}X?5-fXPJ4#m4!tUn{_d#2b+#fqladD>>`Dl$?~!16N@t$?GDAsOqRvAiSAigWY&n$S*$Y~Bo<_`+llyN7V8dB>&fO5 z=IU*%!JrDkd3i7bb&dG0CxmnqVZB(6&$&-@>ANX+!-~SPEFo##(7}I8 z&W$ZNB_uiFGYa4=Z^0=c;(R8QNBg)q)erT$Nu2D(Qkh$Ld$V>|nTkAE*G^O9C$N&} z?e#L~b7P$dhPJ0UqXk8~G1$|2j5mS;)$1Wcs+RaW>P-k}0V?awhB=n8hTd$%-z{SU zwc9Elgtq1&l{pQK~&9mya-jss+m7{7&gV>+3XRDexG?dNYKXNhPLgw}C z{)nuMSPYUi;+>pOs13X-RMlea0kKij%UOu{5a7VnOx(ZHmUzQUv?Xk)-alB+%P`o5_LGQb4Pp zHHD8Fc+Y7`u*o=U5=yc8v=mr@|29S0X(_Ola6R{L`u#+`F}myqrUY47$UXZ)Sg5Zf z%vOdCXDY3SILT+~QXJlsnxV7&6l_D&d6s&oSTu}X%NC2eVXQbCmM|`JxKp5b$iIaE z{w-kSaa9l?9D$%*iFk8Y+> z3`ag&c_b$jh+!Yx%Nq*9D-Ve&BUl`N{ULGN2x#^H3}+*AOi{ye2NAMp=ST?}VcM9Y z{zfRVv=rKlEfw2Guwii!%Z!4fkZ|_N^1IMpV)ZE2HlzY(p$%1;`@(#~4` ztH&7SZ*9q@^0(1~?DEIJoH$eY+uHKq`8)Zo#v1b5Ipw$4TvGl>JT*Iy)?2o{by@T1K zrNGop=dt;)c3=P@P}ho{*J6V{NKCkvVLK=CuVtONdcRn6EnDf^dK8v{wAvSA*e}l4 z_Ygu_Kmg!m?*s>om=et4q#G+gjKS_x`Wa6jmSW3ca)D_1hRq@n_tm|3! z-)(R2y`E)Y7h8QjyWsTg?eMAC3qU*KdaSWgB@l{G?)0optG($Zw6*D_@nBu!7gtYa z@x21J$Z{AoZ*Z;Ms7z<=MxU6>Zi#a2M$LUF-EkLFrm#KcC3oWrzevwD_Ld`a*)^;} zynP35dsXLRGgKk6X0cgpq!>GmC5k0eStJ`ScFsn8^Hhd=PX=qoY<9K5)5RcP!LF=& zYZ}aHvZLB)t;yXHl*ha*s^UxZKx=))S7>F}l6_{dHLSCEeFi(;*R+ztPWMW@8^j}h zd~QkYir&c#5l0;#5J+1yqPSN4Q-}jDY9-Dg44d}Cr3;qZknv8 zYlHFVD0+)Y!uhEpY(A@IqH6zq_KUm&7mN)ptwIs9CowfD#2X8w<7;6NyM_P6#IYjG zD1?_RWGi|ytWB#UYDceI`f*FJd{Ey_YOvGZ5@p#CjuWT*O|A z-^L>ud4_NW5;GGgXtesJ^N46T*=}MT{*M0BO>7J1{3AEBb&z(!E$rI%kOm!ROH1d8 zhN$hgu-8Z-+;S`HVjeJtreN=ays*>5G{dU^ZYYF3x3a+y+4D9QtF6UI#}sqpUN-Gy zv6BFIKOSLVRf7x4X4Gxi!WoB_p~jUEC`eo##~yC2Sa%yV40dOWnI=BGjV0NPnD~@A z7~vELW7J}cae6#fQ;rcs9t1;wxJ>=AN^Duou4-j^d$dqo;lZ2{ZEk1xgbb$Dzka`X z>~_{CPQGp--({08ozPSyS1tTk$8KlEiPF;}$Oi;LNJ{J;h=^A2n)D#VUEm}YQHW$Q$rrK}%Y zC1x#!XKSrh2jg*^LZF9q2#hc&7QeS)@b0}&2D8e zKS>?v)(2az2RF{>50tV|z0056he0y|O91x#V-S=`#Kq`%H&$ix18~G}{-x?<3R1%1 z_pn}5D=I1B8Tp6{3o?xl-8^Be-Hb^n@8IEFM6V-APRSrZjW)yq9Vdv?!}H=)8CwY# z`O4L7>A76wihed1dDW=;TE_6Z|W-=S3Xb7_Cr>~~3P4T#nx10v2SkN##e zEz+a!GoVP&B0TyoK-m824;$FFzyk6ckOvUn{Q2uQDf@aNhI;gG43MA@kN%DUwFiW8 z`HBHW0D|fLk^$l93a1eIE&~b&gqi%X0g)6;+_K+l#625XYU{T#(4c{6PnZEEapaF0 zv3Db;5q8L*ZDj2;aPTcJEYYd2USAB4s-pB$pcCo1{1D(Siqc=g2Z}}N))_6ar{!O|yK zr|5dD0(uRywKZ_{6D(Dtv6|5xX&=J+_2T;{V6ZU}yos&S%tShj3jN6A7^OH{(cnka z4?r4*tk}H?nu%5YzKI=R)0>w-w{r2UeoFe|Q1*dsTyt#!9>{a)uImgIa zLVeuL^#KA?AMehX6~tXR)G%OMaJNGP4~G|zZm6gf#iKp7wQhOqdno)Eg{O-}neAm@BqBF6e8TSdvN`WyU?s=P4sw1gGpsL6mM8gjkecxfXk`=V`od7GyD{6jY z5n{xYgHvjZQ#;xsE-y42pDct*>W^?N8&eMM^J|-zg$)JHCWa0;`7e7%Y?)-qIrxs(SGYmwg?+nt*Y|y1A>+20j zeBHo$uscP&k6HJQrT;V<1%*OuQTL#b@ID;dT|)yFjiieiA6wIoUZQ1a228uHAG3`9 z@>q?_V>L4xgBLMqszY8ES9*UJ9TD7xiVW5`9l6m8S^KJJ^$F`W_6VaXqs#c0spRh*kZWesXZi^U<35?}RDsl1DXDpfT z*em}18SBVi7Dqp087Z58q*~)>09nRjff|4iN~#uDB@n~QRk|4RIqMsBKWFV@q+{2G44BkEWR|(b4@X(N_}AwwZk((}_AF_`??5)P7I4Qk{)BiPexx$O z_%n15vcuj&&KFMeg-kW$3I|FDotW_jOARUc7|Gt|Rd{#hN*1zb1N!(|CZ20#cZM9i zLw2~x`I22lv-+Vg*=3%F;(b&P=m1^(`6WwBYvHWYk06cSTQcYk6yLoRLf~b(MHRv3vSUd(HO5vrRz}Pb9MZt4hf_Qi<3Kcc$5#hm}bS}hYDeu6$V z*2r|jJl5!}7?uuf(sT}x-g~F zd+0b)PsQf5{L2~|%h91qiZqX4$*DsH21DF1v@e)weZbxcZB5@Ag4Ltpl}ZItrI7}e zcIX%sz$=7-HmD%YP>LU^4IUE@{lfbD9>dNSmdGK}N+>v|t=?wf)MBQ-!eE8c*_Z|v zT2zd|NN3@CHKpU~e<&T2ydcFO4&PS|C7(w4K}xcI$fCfekbZvHqR(S< zdF!vZ2vtXt$c?Sx#9rp1eu5H`Lf7p5WU9HJlpX=2)N(dZr|8@Mf`njMXyi+K3$lzL z&MqX%vKvh5G~7eiP+yb28Mtmb-A@2Rt;K+pvIMk<(9s^fAs{QaN(?)}zA){#_Ts|d zFnB7+C~g}Otjl-t@V+GcqK4Z??D!3n>PhkKZ`c735(&Sv@d#%9&Jr=HN`GhFo0onl zB>8$y_5CO#l;<12vxFhGVSpvHSiYeIqr=qr8tcLn`@8UFKE1iq4Q)U=jhGq?Cei5+ zmeQPoCE|!dt(yD?Jj53^T6f7YuyIAhf^-G{O6W$CvBd$c+=j?nt|LxplJWTb8QZp| z1HTg6yEp%&jo_Lx-cJ1aC+;>%yuE>xTVpZ`F_JXtZeFvRw-pmlS)7)HwNgUIV7|89 zK)QE{?i!>(^(;f0|*jlvs3dFKxDb`Y%zIPG!e>zy^%EHwup^}FXKu{D%m zpu z(9bQw{UX5w!?#de@8MTBXN2-OGJ4a)Ck?SPYC)s@+<9aqu8ZJ9y~br+Iv0e=5P_7t z;ruh4+44%4F7`z5-lHxyUgU_?_k$d;_$tyJg+8K_s^b0s$y6^U6PlLlJ;cp0J{>Fa zz)0>*yf_kA;&|zFd16r{?*I;Iw8!dui35t)DPu<@??;C$5qRwyhb%_{%0m|u?$L_3 zVNuU;=A!L$F-}k1siG#7$BG+N9)p&>UFDZIx9sU%*xa%$Xy@65q9~g8$GP{`Xg-2n zC4P$L=^3~PfcmDVxGBiOxN%{~FtwK9Wfo(rKs$30Wi8#8nBnd@IFvlOJevXgW)Y`5?XnQV`kxhtOc9qhHcNZ+vxozY(=(Hlz;ufvb* znA6<_#y+Dqj(1^qiyz{61~2_5SMi@6@T?c-ZuZ~vvNSHMAfgZB{*B3*4C?W899zv86 zLM22i199pUl0*{%7iEd#7$I5_BGN#7YIESb8pQD~AtH!_u7CmYIw8W;Lq2Z2h|KgC z2qUwh8(d)7L5OflL-(_Qc#IITsC4}bhzD#ATze(NNJ$-DgF&vUBy)zPxBpm z89cG-j~s2p$cD!hg$95bXyC{ugkBm$WWD%R2eba=D}WNrr24-JinpL=2#T|yCkTqL zAU{EE49Ewe4v^_T{tLt?i?y)@^nMHIKnv(uf=r=IUq_H#n2&1#4Yg#xMo^3i_0blWhzVOzU`S0F>gI7|iH1 zv916~vYJDq@jqZ~b4Jz^AW2p^XwY(dTkw*H4!cOB1a%g#Ii9v!tk!tChY+pLm`|mZ z));B}QL1P>SdCo*1{xs}z>sseucN{B2HcP>{;I1s{i+P>aR-R6cgvF+*iI&-ig#i2W})F;i&AssHy3ES?nT z3`{=5%h^Iq&~@mOa*(XIg22yv=2Do|%u zpldpx6oU1blQw#~3-6I#4QHU-%abFP_VN*?BNnHP3S76gleU@0ovb3ME00gAW*Yuc z3is(L#6P-XRjL-ZcI64u_1hx-<6U_H_7iQp@lj^EX_Fr+uFpofOU!bw>BduH4}OHc z>PEzT{RG9!iHdE;Tiy5#cAY7$p5f@U*%|!9@$lkP7fUa`p(UiPXPjWbfk!78xSc^3 zr|E=((O~%Jp+?Akhtx2UQO#gFnP1bL_lkMk<;6I_CmA)K11IFER?F1K#Yf$F+J%q9 z8DpXrr?};Z6X7Scc(qa$47fCbq>C5lASb};MxrY+CbE0*9_)Kj(1Z8yXn0AiGs}aR zcG5AUH_F(>=(2M0S`VnrT=88Go=hIEh)h0?Rf=mec|jY8{ew*-6lsb}OpL+SBU6ND z@x&p`_6^J*vXsbD^ZdeawFoAsiti6&=P1YE8#D&thjtG9X<0m_*ZV}EK?M!6195YE zYN;0eGb5p-ACYwNd=|eX;X9fED0nm@dk0PbtuZBl5cr&DoM`C9lM^;qpsNol@@fy$ z56knN_Za6swnRMAm-iKgJ^A?2vj6Bb8Qp}7EYSS;eggG3P)0A~(x%Dvh9eaej z6Spyep>Nc=_1g7>xe|i|`xv@Jv1fgaXc)lzgzw&f;r<>9XylOm_c;^`-vHh}t@b%9 zgJRgPltD#RKn7)1W(Fso{a-Tpw~;~VFIEQsHZy3D7)K52elao#Iryv0psM{qj_W5E zh`$EGz|Rzk7x3Qp+=mN5thfU6xA9{zL+NfC#3!6D@0}O$>%jZP1u*V2MetzW$(BpH z@X%m~+}y!@`svi&pBlOTF_`bLsdkwx>Ssgv%uc1aDGP0mFPmW-L4ftSDQUg0pnJ3{ zUKRyIVXW*vL5&oH);D6RUJdUtEd^Znjlo-M1Y!a)dDv}$dX35Aa{Kf>MjQfgJ4nt) zHJZi}zP?7UxYGbKE@wvoZ3%}%2w$?p>MCL`QX7lc13XVc;c6x7VgN}aMXzKohI`4csb+<|FlEW_~ zw`C3#W~Qjf;hM=y-x;)40<%wl$l-mlM5YeoY2Y0_%)x6f^^K<74a4}=t&LL$xgPc7 zsc3DNnBR>jg_t!FJul)jA#mMAJgqBMRYmGf7@YFvF*TBgC6r#YzyYv)2Q?P4Q1RVG zJk?`nqk{Ra$S~}V~5RI zD()G{6PQmtF_K?sHv$daVquM9*4QHRt&wE_YgUw`15cZM~~uZ5jT=gKyFwM zFtNS^j}bYec^hBdYcLh`)&|-Y zl#&$MjR3^1K>RS8ue1k7^At7fxpNFUdzkoo3{OU9hm3V}wrv(2H+iocYa30WaGHgR z=f~0jG>1*&SU%&N?fKX^evkL`C8yc2kf&Q>?09@ct3td#p7-Hfn7Hs(9_y=oShf!N zsx|aF8CshNMJ`ILsMUyDD=PVfiT;#>e!xMGFzMTfPX1t|uXoVtD2LKN<47OTWHG>7 zEOt%cm)YYUjY{Jlz7Uan0mi-6B10$g)YPY#;gy1k;F8}z*ayd={HBJq94EQ6)h;6J zO3bxIqUV)7LA*ARCyY0}7npA?oi(_OVEQ|@8vYK&^FL>>XwrFQu*b?^%lXvc@Fd>Z zszK_d=a<2E=rQ_$%m19gJLi`{!~Z#h;(wf14UYVuGw5*{Pv~;)PF`_DHjya2jL%>X zhz~B~x6P#MAlSyIz%4^B5YZ(J=oTy$=5+(}1tJVe+U3)=AM-sNdBkM!c{VrqDGXQn z5LmI3Co!1O`u6YW&67d;>ljoPo3Tp`b&zWSHnViQk*lJ`V zzP*a)r8XZUKv(K#J`xZ^uEkQh@@hVD;`y*+0hI>`=Qk`eui8$f>lY`gtF~j~pm_6c} z>-aVHsK)I^vF|#pgC*uVc;q@h)25OgGv#^*b@}x?x1Z_u;EpY#;r5WWuG~eMZjTnb z$dt)2AT!1E$-HCt^QZ?5EMvC&#o;L!4sTB8?VzF;PvJ=}6?@0ZDLgjAoY!P9w>TAO zUT98Q)95rY$?znfr;ti(nv_#ndYZ);nTkCv3}uwle7{&4=<){4xeIpij52-G|KG?w zY012+d1p_{HXVP^R=34b2)?vO-(tWCsl1AaYacNA#fYhVt=<1*Fn>K2{arUR|w&7FzYW8Lb{X5Qp6(h93jY^Y*~_9EDqC>9F+%Ku~Zc2@pjE;%{WSz zhuH_r!|d&O{8fwT$QO{<4Whv$KW$U;CDt>zqQI0Y4$RJFaGjUA*^E%tVjZb+iY*hTK60T1_-wX>t%GPj3bTt3I8asp-JB{*^d=}owCLfcrl zVPs4tIb=~Xdeu_;%NRL2CQ0d_|tQ^Ucq(cD!$H;WgEb+dUNn}w#uhqGyGVX_3x;g?%(FmAfR6w3_; zgjh6(53`foTjM%2`O!Ii$Z6EH+D|YR>FY-3`M>V*6e;LNG@|TA%n29X-NtB-iN`1Y zt(zCvS{mP0HOG5w0q-MTEa21G<3gL~*r8KJbLWxjH;b`i9=tBP_;wzQwR$dYp3f6~ zC!smiEIac z4=)+Z!S}q2YY@jdE!~}jV0p*5Kc~?pF9=EFupjdi*B8?4rsAwp}MGN%y+CttvfbIB(X0}la&dRp= z(bL%uFMwN17d?yk=tOv{s&ZyP}XRZ5Y+_|QO0Zgf)?_xf(m3fVrG?eW2o{RZt>zW}U z#Vfb*%+ovB>Z5Lp`NSC0sc*@k!_kqVY%!1RalP~tsR5-HrD!HAHiE$vP+?3~JF?{p6;Rr zi6u*TQuq=?X*@GPUEy1D;Sg~x~MGiT%6+}wSVGup+~v+-7+#_KvOZ>gz2WseUj=IwfKVYF#* zd!gav0*`C`=mjj75zX2cGfZmVQggiARSaYDti^E-DpWGs6>`?%9B}f!cLx@gC(qV& z&VmnI%2oEnSr-ZO8|32Vr99m?-7piH^|)R~mwVjiO-94zME^sGPBtag6miR?Wx1^A zzXHLzO-njFQq<)%)=tmlT*XUbMLCDyEe182%a) zhyM@BUjM%(gNOJ3lH0%WTH>Ajiq21+L|3KjbqM6=7bh8Kg@%!a{-Pra^<5_Jyo>kp zeoZ|nwZ$3P-ZI$ewZ7-?;+I99+Jp}5sBgqwIUFP;+|7HYZD9BYg9lczxsF?t2H%_| z+r|7|yePbzcd}P^`TCOBcsHM(WxQOh!WBTDG0T7sq)*z=fBr-<@~EaG#OVo_hilh} zp38Y^cjQI7|IxqCyWX5K_muJp!R1JRW&FNUJ}UTrN8H~W$5+c5ct^`<@p zf1h*8ZsyJM!Js>r>eF!d=cQtJCmqUgF5Hs?EN z*Fp#GW^&wkJN{D*?Y5vkqHsI-IDn1V?9i&ZdIfAQtI>`fmW?JYM$#7gRuZ*!ulQvJ z?~qacGJqXOOq--KCm`8q^Fqs|E1ObeujIXLxfOp&xj0aNY$abc0`JXv#+r63Dnx@4 zL+21$opihm6l<*73ZBehW4KnB`uL_*Jf+L0tVOq;fqk=S(eICm*eI1(C}ojZ;7 z0vl?kok!zUnDYee-t==e+X<8V($zebKBsxhYGX^eaW(HgHVft&%rx{h(_`e7wr-vr z$B<(fa32}30Lqc(G$oox+GbNZb-14=b~=Hhciay<)Vx+g^2#Yq6t`|KlAghxwU92y_;V1C+Z`=UP&$!c#E;Ro1{ZF38uH> z7BT!Kppb%q0i-?z4Kl#iiEzT9r>RF*irM9Su=)Ne-l-vedeuM@%f;Suo<<)EA&<08 zq;$BB^ap5XNw`)FSi@5;sYP$1S~vue8)g8s?%e6Y$7$ex((oDEQ8bjOGKQ~2o?J5d zx{CE_7I>3j5!J8Z{eAsx&tbqNYN|JF&T;IG3hO)8lESri;GSNx5fm?UrdmQRhwx4r z5~hLfa#Cc!ECM3?*qM{~>@@ef&XA_x*|X`Xpcar^XeQfhW%WE@VXGzKvHj#8g{ z$dDxjnWJ)16Hx+3?M!qPd|*4{N(Y&)Mhq>izRbm=f~Q4R)BXiF)!;5u9}-~|JauRT zHrqP!&^VyxH(VfcDbf3o8H@jL8>SVtqa2APe@PiTXmC9wX2Eutwp)6mC`-c&W@M>& zdeO4SyeMUN#ZBLx!2M$yF8GPnOXy7xszCEKW-Mh{XmC*Fy3)caf3yNusedwWWI56Z z5aPtp2YBW`PVd4qc1Jhr)6;p+*xjAPz6W^6^g>UXd3c90)O>j7Q@fx>q#TW9u)BzS zP@eC1e~@c<;|^aHWL`3gM=rwv>62DE|PHN{{i!0m~|G`kVN=Ja&1i+`rZ z^`sz;VV_|FRKmjr-}yjVk@N}z-0DD2k{mRoEkdN72YdCZN}kAJf>G$Jz>sxJ`$Wke ztJlFptCJw-2(*Zw5-}=(7>BaZ=%fyBIdH9H2k3Gk?kYKDii;oOnOcU2+}g%iQU79| zHc}QLAT3{AA-037%|K7I$%Fen_&PA&WD&<6;_ZB@$&UP?(9{g#qZXtex?lLP%M(Xm z7zYsp4Kfu~I$snxUksTxH?CfL9O5W-3vnbL;wS^@BA}nPq3XkoQbDklE8ZGg_b|pG z*~q|+l@%l+Q!m#QPisa0i1x(z4mSe1MnxHAj(258C~)gjgY>22OQb0Dcw~OiM0c=e zNdU)72up>@7cTjvT^)gFx=-dsGK5d1HVOXIp2FkWD@HZP(sihmnp;VPHB%x(Zv0^D^6iu~`c|v4ni_LI} zCs@J7IPu^0Jh`pnaU-Su!zji?#0K6ga^;KghU?_a_U!YD@z3&fv0wwo)wxG`V%u6p zRT30MVR%CExakpzkMYM^r!!TV3or#w7@o~cuwDEqypgUdvjDFEKjG=2KN1m+XU@z8 z3uex}L7Oo%Z}xO;%9J9mDy@KDhLDK^yLfVVxrus=i=<6>ai|7xv}6%A@A6?nRPh8~ zBal}D`3?jpBedZ90Qj>27+;fY!T(bLd@=wILT5SUM;Y)mJ3|)|q&f=V2HeE~cLm(e z0e1%+?|^l{Q4aVbz^x@L@c(5D!bdN}?a%V7gQmDu?eWB#a2!Hv9vXI5u@gn| zr~EQ8;X@woiwIGbYe4IZJgM3id<1bPoDo1j7(hQ101ph{j|hNO1NPY&)&>aJ69Cr) zz)b-#jT2{qcL&f92f!yK>}#%ZbpS(S08G8&%pg4gt`Fcp9sp|r{0&4${&owT2uP3` zkRUbyP7HvH0@BY5fN3Z=E06@(=R|k|7-&2>>AeEr9s%&>0q~>%`04<7s-lF*44T4> z`OrDM<$UOb1oVfBVm=(&$uoU~vc_>5;+-9EI^tdM(3~Kiu6T&wnls%@*qV+RfQjFl zKQN9Is#7MOEIim#C{$+(d*kV&DB_1Le7NYpm6wd&h((+<@OCq-Mo6>lU4&HNI)sT1 z_*eiO5uwW2nu5?RQn&G}E(;2$WzL>CwMXFs<#Aw1`jvR7U&c?(*J_9p@y8>?!fkxf z@cxkokHvd0XdNWoz%LJgR{+-VjKGtMhh&Wu8Qb|4(PI(44$t*?Cg7PY%D3}r-7d;4 z%3Zi1uW)YeoIGdCQ@!TR&YioUsBq!5B8}L@&^n$GrQ8e($))EO5%CPaAmyDXvXP9Y zq>!pYp}Un)ozPZd<}*BH$gPAkpW6^R;l%+ksYE9|Q5<}XcW!$#MA8a+J07c--D3Vv zc$I&`w>&*&khU8f)X$$Gq<;Utl{oe}mW5DNc%R^lqAya7b(qFdn4-VAp{naY`KGY8 zcL25uw-oVZcuHvbSino;#We@`sMetghUmTsNwl6|h`u&~M8}A%PdPqA`WjE3S^*B4 z3=cA6uv+k5z@*eI_)Wkx5G}YCFb!A>J^&bl(uR|TIt)oZ-BTJt>25XP|Yd;yVf zM~T(dJWFI%^YE%Zuk))}>(UM_t&Y%SIT88DWHII-zcr;c*_e>UA;zq*;FoP!G#%ti z#!k^xr2qxFA;_qZ6ZQgc!3zTD1QVS`F8!fCnCP;<4!prv@d@6lE8pat$3NLoRf0i$ z8X8v)ZQ{9{M4{t!PDIlPIzV2aacmZ-L=#%pZMYsA0O#Nm5B@A z=G}%nQLB;SlDUg=XV08|S<#FE!{<&bm=2?@g{1q52W{v~=NC`E&3pGq%uuD7(FGxm z?$HRTrRd!>a|SNTEu5J<7c0Px86xW)>~f0DG;{NAD!OG}o@Oyr08f)=;oO-;7IFu0 zG+^`QE}T<~I5p6m+|`<=riXIEy}xrk^;E`L|Vlx;?#nI*?GBh zC2ey6Emt#&A(dH|2a(FTmMol`ck{eFlxaHHa*Gx&7^EqoJyfL)*;CVesfd#PB;`mZ zm<4wYfcpo)mj=M3yqxLR1i()R!21l?XJ`0L0K+GMY4NuTq@oRJrLtg808A#fvjF1* z;2Q$q)e?p&V+q_6!0=K4Oq&X42EPWtk;SxF-M>0q{l> zUI!VLdZB- zM~}<~Js!2N(k~83e{%p_WWxU_oC)1mRG=-mv2dms{|UdFm-Q3%pYTDEdm+x&l~Ny0 z9n;^?hwU-+2ZLeTxc7S1g90iW1 zSPdTfL!p&@c(Mi=yNeqJw%lFR5)=N2&)8jba-#kPv=e>>Fb%B(#+01*IS=o2@gQSL zk~XERo&2u>rswq*_UA#Q=nm{}2x-j?y1+0JwF{*E>AUs0RJ103ZEPLEpgh zCZ4zOT$)!jrr-vwbHfV@3knTBH}Le(peOs_JrgF}`*{9?rydXC>5pX6gqW5)dp7#E z%G-!LpFW}zg`N-bj9&nY1q--S+DE|8nmKp+oV*1Ka&O2}8URy`D5sC{^chS`vH~-z zV1brLCDgiDxZ^{N1^pC4%ER3FEGU|uSu}G_9=_zryYtwgBI7H5wXb5RD#u4Y7^#sh zcmq#08+DOxw9#CSAqDb?!h$){)TDMNb8A7% zEWQVitRF&W);}oX*f-F%@9QG#TRtk@ons8wo(QRPhajZvK`;N7FXHugiiq#<1)h_4 ziq7BhjNsb4_9-457JSFo@Umgz*mt}Kh1wC`mBKMc_=vEwVXEAk7l}DP@nrGB5gcKH z)^LOm^;tAp6Q~{*jD<$_y#@aam{g_(Q=y#vECA*KFnJlB{Nz0X+{+e7Iyc#o!PS7B z8BPb>4|JvK)$jRy9<#j+6%Wd;eDf51!Fve!Ik;-fF<#B59vG#{UE5-Cx5Z<@n-Qln zSn!hpFfG_lIxXH#c&iPI89(u%X_g#X(4BnYC~7p`CJ-ppgOTFEPdu@!#TyA4%_$3x z0i5oD2jVWylnm2AeK={EPv&dyKgLXWX_zxaem-D9uXuI`VhQ zJq&mV()Q?qGL9AR|IA1Esxgu1Z;%Fy$Bb*^R0XWcuSCEfs;Qj7GcR}U%xSZrHFJx! z&Yd%~3E(5zM1)wQ@L|Aa8PiRg6+&_5-K-TXEYb>QXj2Oo&Yh0kMA41nkzaVyxMDDC zNW30lYlM`srCNVO{C7Nm;L+&sw(yMb342joWqX`s6p;(#3u*N6gWV2 z8-4>zz&AiXsIdPCOmU#hlHm)jB6EumZ7t3#hRNpwQcV=cbWaa^_+vDbW0Brj_ Lu%6z)#@q}5u;7eL literal 198403 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 qM^7ZfzV+i8^f&2&>w$F4^2bj}? z?VXAUt3fLP^$f*?&3D|l6Fbc>vX&x5L0@)IDSgmx9>iu8Ht|G2Mxjk{Y=e{Zu!3Y6 zSG)42HHmBO+tc?)c&_{z5oTOybDLs(_?AF42Y7UQWiaN658TnwCuB6~%xp(*UaSU( z`!Z%c!h!BRtQm(Bfy%!;4k<#Gi^q#NdbE2o$8lj^JXk=6M>(9Pd@EwcIq=fQu{h1` z7*tAnPI$3+GDT%-MkABXj9fZ{Pt+5y#-@p?2Q%(shXJWWDvYaS)C| z_1WbJvX4m{`zzk(=YtoP5AjI3)gIti()Rtj=cKj!^gBGa_=0}1js5wsod}a(xQ2pu z5)zfdFW^;Z*}fubfj|N+4T^cH%A&%_@XotX+@LAdly{^e2q|uZGIdc_B%A;7pFufM zNibP_hYs*w;KZ_(94bVAd&v>2K_>N z*X#E>zCO3QZm8onX4@POcTP1h+!-JuyHyv-Hd4}t0?x~eFN5L<3E@b^bSSYjWm^Oj z>_R@eH1)1XPnXPhWXLJk>7(k{*QfjW2_u2y)eOr=GAu3ZYC~ws7}G?Z6uxy;Vfch$ zVnxnf6ZYISFEz(Z4fpvkvj*to3O{n>YUad|BlKz9AAK{!WK+WOympGLKqs-25&w*6 zY4SB|%NZ&#gbqnkyyWF<1w86LT|d-0cZ*PjYis6ZmKmfsl4uhTp9h5Pw&|ORJTqyy z6c{Smh%+;IN=rDxYkHkF?g+!&Gpx60@2=&J({^wS=>W&&X z&->i!_F~qpQ&nIoe^t*~xm%9V*4w#IgY5N)k>ZAr?L~Uk_sLz2c_lD^* zGc9@uZ6}@;d?i9(OH_jIUWmexV`321-Rdr3UdQ#@OVHc7)jg~QTpuTO(f`5kBSXYV zI5g_fFg>IhU@;*ZB0lrec}k=Qxk_iGqbeao+B+7irP$8Sp$kJKQUpgYspv;L(imbs zUG6t_IBqY9--o8O4?#3pGze=;jbl%FJYZ{^1qHN4D12}h(kY&;m-X!LX_jyiGU4jR z^gO^ag}I4aPAY-D=>(5CcJ#yDwMB??xw#d)TTFk%mV@#%)!5dt(AA-w7+KC$9a@BI zeN4UHX+$-c4%t893g%ov)7PRKyqylv?%9Rvfxo9yWcqugV85YixeOWCM}bEmk^x$z zYAW!6w@jMS#C5TUl1+_VvwOqwZ0S*0u~ErDAK3crvLZNko&Rb*tKrLkO?k<@f2rS! zcsN{9hmCT<5yCwed1vIY$6m5O9eZr?BAWcz?_a(@ee4gOchP0seEx0t_df6EKXD6} zKe6MY%k=y!thfi$`yW}jfSb>Ko;O=v{sSL<{r)soHNW`|t`@%SvdcINPJvt)#6AwS zoSEMBi~M|`N_T#O-;Y(Jx5*+VrO+h3h3 zc7I-en^)fZilbO>U=h5NT?@0Z%wmwTWDclX!Edm9Ht!j8IBn$y@12i9t`{flB1P!j zYaVt-8$*oqDv{6nC3-AM%ukmPJ^L%TlXiNMTN1DK_KFj6(by4bi4Irj!4h+8hp#lt zPSut6s|;b5qn~5KAfs~Bx4vMct)z+ITjg!9#9~(3vd?nd5y&=cgn1S2*R0h8Fc8j& zx4-JmM$PVw88!o;iGiEh*G>ES%X$s0m}l9xnyN$T^n*%w4gu~Kx&IzzpT%|}V>&^v8a?W3a_&9225Bf>su3c^H0ZRWTnuoUH#Q9Z(xDo#V>;*wl8 zT-FJWCn_Z_0R73|P3m*g$BUzj?cjSbY=~hH#93tIw*u5`MQxF{p6PB~p&NYBfku`v zoT;&|JQNzvJh~9d^yr3#$DGU~uEv%z_YRSRF`O>IGGSz@IoB$sWR`5_U`3yF=YbL zTdNW@Qyv^$rf+tk4)W6|F9;_-Dsi8jxCn~o{mQ1{uqQr-j0}FR4z>!EZ262HMA~ze zZpf4lkXlW5@xyZ62y&%E2X`Ef4J+uwt%#P--_G=2V`R*`<9v5!TdZvY&8I>F3-c>g zN4|vi5Q6Cu_o3e&aTGQUqNRTy2053WBi=vgj^ol`(~}jgO8~@EFBG27{&n zjbVvQ3{PK&R_DX>)mPSv3YWp?&6P4Luz)o_k(|&a^HuS`9F0V30%Wxal)%i(3<7fs z%~8yiMABs@lM;#!UnjwD9lFqRgK`gS$ zgmr%5HHmBk2+B*S#RsU$FGvxfxS4qcCoah3zaSBD-f>&>X%e$ci~O5EKqZP-n^!N1 zVx9ul^~(l8@WT=@%X4ds%!DW6MNtj3;_2_0Wf&8klNVNzm~jOOtW=+knB~vn{$@R4 zPWb69@*bSaz{(J7Dp{#srzOv!>DAu$9}jRwp;PwukAAB3t`Jpvp7YA(_~pF^ChsLN z0ayE)wxo7WK1W+C)ZoLILq^Y1ZUUHXVuv(#L@D&6bhly_pT`|}$sW=5bzf#BQ2gTT zmm2)dKfI&+P{BA2QxnohzX1&^)$wxsAdXy{2B)nQU(yE9+_YJx->o{CW9zi1SL%VV z6Qh>zax`$hYa>5(g0S=~En$!Te_&yhj;iI)%O;ycJdL8+5Kq9~g;`ybx{n12v9g~Y z{d3vzv=jST%2na&67l!LYJ0E)G`6{x9Ry)C6_}zc z50x?C4~?XNr^8*gD7nYhyemR1Df3^hR`!p#gKwfswkS7)rd9uPj17MzD@Xkl%N-9*S`R|Ao#`^OZ97>A^6>zUoa7v*?-nid(IlCB*b^Uc$yqoJYh zD5Pk#$oIhd(PSo%!%|*PhjK5O?|Z#!Bx|&r6&O~@BHpVoORnjmzd4TCHa*6VBaP7v zPJy66Qw4fzx@eeDT(!T1RwTO6_cjQXxgIkB($=78E)LvRLP#9ADpek9*|!q}BReM( zC4y&Fh`83Xivp}eN8p9iH_6MRy<&)!+xg*mjk82VD;{hViA)D*P61$FLZceuT?P;c zrU5kLr{&=H^#mw^6tcqvQRSZ}rMS=mj7d`mVWOSMX8o6RuJF~c}#c06J&*MtiziO|KmP^aQ$o{Fsfnn!ToYV;u|rOPf1 z3VK&Buy5}(4B5O}F@{nptEzzKT&uA1=cL=)u<|^&TZ4?Ic?XX6L@=^*)^rFs%>6oIrXBVeh=5adP;^1#`cw_B`4s-`Z;k~J@|b3L8ghX!dVEZm zDk|6KQ0RC~9jJ`?8@BCEzy{N*)pU}s;mUtBx@>8&ouh-N{l1abdADxlhBAXRxM?qIwB8FcyaGcMlgX~DF`%4z_;IM8pQBl@jDbcfdMHwc{! zA>2e~xi+PaOd8R`>HC4oa|G^Uh|XXDaTv|v?>LQ1*!Qc))dB2q;J_z zUN4O{!+$6p{jIyE$q`h2iAWb?B|$TMdT87im7q2htUOjk7;&X$WAqW*F)Zj4(AS6R zpa6GFmg^$1Uz0jYLQc+*t?-Nsb{?`qBb)QrU6FbO9FMSSs%mr(JuN8!FP?2k>kFJ8 z{HpFHDF9mTOBPv=K9om~miU2ehGHy4)p$;;NO2!h;9HH#6orT+mzkfR#}Bjb9Dc%KwmY7mMR`=JmHZhdLY>-e z@d{VVx$vYKSTGVPI-{2R^u_uD`{lXSg_4fK22aasfeA)U*{QlKS^y$_Mnehh&6U!& ztmu1lqqOK&dTNC~RL;79w^W3fTcj^Q7A@MQA62Rv!5#qZ7UyF%4=BQ&+CrhB5&?xX zwJ%21l?-2MTT(1V<7$MdJK;#(r4K&Kn9|9DCYcJ~$q&XU4kzPP1ALb>ywRRq++A3j zBR?gizCGP=^4_kyhUGwsRWPKOt$-&laA@B$>ds-*T{V}yX5b?AbnV5t-itE!^(LuE z?B$vMPC5vOTyE?BtMXOh-!krW$R)!j=`h=ciMH7SX${qwUm0)N7N=Al^uN2bdM2^qZP3nCPF9HsZ$v?rao!wRDuy^vFhy46o@)? zZlQ=>Cnl~_sZ_jmDixqGcU3AbG!1Bsh!Ui%TcGcrs8z8CrqVi%E+BkX*fd2Yi^J|e z{Q9iXr|yr%KL#rn1(+TLA!X`YGP{%53}f4+7=BHW2+Ecap)CFDwwZ@NYGf#pV@4ON z5+V_DbxU$1s51VvVce?TCkZt?1Q1ccO^BnS0Of5{)RBDA=Et1Fhs6sRW}lgeR+Ynt zwWgf>f~)H@OIlSQGpE;`*N5<^&laYdjMM9!S_d1~!)1u>_6yS?-Z=j@Je3@K4NO2c$DFLTa>_rvP z8C*y%E-;t~w7nOaH_ImH-ZfoemQ`<*sB6_!%A4MO^zF_lrB2AJm=Bq#FQ9ue2RJ(i zwE@WhkXHbir1p_Zs4pop{gB1Te)`PhdS9&rKKkiF`X#HNjqchm*Vo~Al9zS4gR4t? zrO3Ef_-ci#3nl#W@ua>r?O?-aAPor;8<+cf(c+E2aH1Ap)wLLHD*`3jmacK3#A!wz zkpVOh@T@~2S>gm`?7AMxK8x|3P%Do)4l@%E{(IuwF^m=_3!Ij9?HcmRaUe#;96Zv^;>^oy|yp>p_SKUzclO zBwa6|R~}cQY6!}bpMfegaC7=R2VT*V!ZEtoE9^Upy(+QB-c7DClMd?DE_FM@Ldy<8 zA?%LkBL*cY1VtYaf}+qO`%@qeXnzhg;#u+FAV_GO9-bP?)x-L>De}2CuJ`q0FduCP zQ&W}ElIvz&Dtb*frZKv^x-pe5bD=Qtz7I3co<|z3Bl7#pvBdRHaQ!>OE)6mPd7u)n z$9y{tXMbyrI7T5Ekp^9AWT(LIjY+KlDWLpPf|pD*R4SmbSvmwZ==KjN(W1*H89YUfQEJ< zQs@29b_fvxQwL8G7kCcLKZVkJYW{P8r z1iXR-bSo>Ax|h)%gJI;)b{eBbi*;#0V4d0m>)NJ0?q{q!scDDx+-pT+xtB)jMd*Z!e>cjzctII zpKCi6TP;v*Z>V8RQK={jEO$k~M(l#N8;r50alz0}*EjF)=u09DD> ztwesfVo&U)jzY6u>g@TP_ELvi^rXDhIgFz9QeWGRAW3JCH)ZD3!gN9}wIZi9rPwkV z`Sh4EO36e7&=Yr4bCyrIsYRR3DG>GP*-iZ_4>PM%O9NkPKlN*H&|>d>jmP>)`>DGz zYCYC7e(Fn^-=xPg`noiCbUH#=TEDR8>1^1_$G=*p@z6$0W97*+jZd_mXnL?I)3`>S z>*aK7SAI3qcwNUdUdMRH_J4)8D75OyaE+YyQ(S``{ZDZXR6!(2)@>A<3vix8mcV5sV4mUxzfuR2?bqrf zfq_Ij_aPofYa|QFfKb_)^(%A|kB*1rV_6AkyO&;rPlGi{Vzo@!E7c*CQMCgt3`Wn% z@U)QEwjLlD(zo>WN>*Ac5D+(4y8WHU=|_0F=z^;CAARPTb^vsz# z+>mT2JLr;PZ7cklj$)wG3WJGoYG9Sdz=NeoPM}?@ydC!`M)>C;r-{o+@pz;W(w8Ny z)tw~}JJbY)X6wTeYfpqg7p_*Nk**_9U08?`J1#xnRwBWvA~j2_#AbD$*aegbU9D(n zF~Cr9j5==7Q$6_gUInQ0^?7Y~ccTPFcL)FE-OU-S0q>kO-Q7)h)2`%{mpR!eB*X!; zA|b>L^*Z<0VH`CNwf(^FSQ{Uv>lg7r zJlnB<^pR?bGXbRF<;@!FR(M}m;ms#eAt5m*U*XT3M1?p+PgLO@9fTh~i3+W`X2ePh zT?dEPbrs%v5*7Lk3suO*oIUkyg|H(H%8{_=&lxwnrX} zA)X8)9>z_-`0Sc5bRL63^)DahBaTn^f&$D+BIKjm&#`S zII`votO%Qa@u<oPB7*9!};PDm9CTNz`3VR;|@LRsyd{io+6#gyv2RPUq_tAv%JGD}L3eK2+_i$fBF z97~FsZ_V;*`5;!(TP19u+4C0$nm2!W$t60b&Z>ZRo(Zrv>(?b}nFTXM7i1v}UR=wz z$=XZ)JWOA#iBc-Gu|mc-2R168Un{3pWi6TdbwVl`_ONj%OS9}Jr*-Q#k%PlHXEJ|_ z^6NVJQj4h$tY#3rbaFU&oQ<0W1$xy!kmz#Bp87mKWhV#YtVn9CTw0E?+tBR1t`!0q ziAZ!gRERpKC~(3KLJk261J2&4dnKP6S^T|svS51`3j2gM6@gkU4_1NPvM$hP`oP2p0}s? zp6DNcnUACAsaG#s?&;@3IW*P%-F&R0wt+K1GZH;_SJXWue)J4ip!4D9bUyr0k}vY2 zEZ0=PrnTAm?se<4(`-@-U$EZ#h`!^J#BgoM_8VGMEUzW zpFG}bW{6aUrs2;lROR6vIbC$gJiJHI*7`$sdR8&f{cYp=s;N_+uim%(gX2nhvvIp2 z{q1}B&+h-qZ{7Gyw?Aj95Zkwi8>sf(^h@uKcdIs#E-&o+;a~adul(nS|L#|RtyuLP z$k_Mm5C43Ax%xxsWuM?%{d{Q_bO>_|(7gbuA>Jq8Pr-7;_K*8i;g4?cQYIIPEKW)w5RUKF|196@OC3Amh zP`)mH9u`CxI9rG?K~6!0DY}J-1-v;m*ZlMiAi@mJ+VHd)h>(#<)*L;Vf(YqBV)hJ3 zvZS*Qx&?(jgJg>3DrHjzTUC7~0SlIbr7(0_qvCbWeWWxoYzbodqlknAzV!}TjFFNR zO2VBm{wa2M#okmj61Mi~FcN*iI$j~=H1%1C8E6V^PNX@Bs1kR5A|FDCV|28<68B9$ zBdrNU=@6F_aW&j3C(_nQP9$8_Q3q%LStF3rK~5xv0V}RR8%~ypYfw%kC)QCQ4m<0+ zoJfjrW+@_1L9DC_mQcGM_RrOK_>Piw0$sq5eS>$2vdT#0f;h9F@Wiu z6{bY~AjfsdYb1muofxa<-X?=^(NS!d)kvCX^je=TmoBqhOsW^@sTR;Bp>})Z;Bn1$ z)V|InSp2m)wq{LbJ5oR%JuVOE4_i2QLS|L^k4$rZNQkL~u#7eGhBr`PJU^6nyk4m! zm<0Ren?BMoS^DXRex4m^8aB2rLI3Qq@Y~VyJh_kpv-&ISDcPZ7Ce%Mks~i-#k61^7 z(e=|kemPqVAQx2{Q=V3C^v0+y7b~k4l@SPZU@IFbC;uq~AIkuwbECxc4hHOI7#jq8 zI!u_v?DHFyVXS)unGez#al~ijAKmc7DK}|Q&K|}0k_k2MZ zAm&B<1H`;Mf_9A7JR6v{bF0zhc)l4l9W$DGGid68q`(gHr=$CJ3-KC34HA%cAWb94 z&yUUY(_0K?`^lq0+7{K$jJ?ZdyifNOli;M6T?g`%%a1_|ct~aJmY;fq@xn)sToNvWDmYBWMT?N}L_@N;E#s(!FK-%kr*tn3|G2B9qHN z1VYdbU^@8|@w(zdX@o(!5qk&M^Yj&u6@}|FW|(z(>WauBK1Ar)7Em8KKHZhll%Q{z z5Vx@(@~HH*!Yaz*|2Weuyta z8x&r_wxTsLl{90@A?HY6B8rxu(Wm6fCkwrj1=7+2f-dPO0D`6^8<58x{aWFl*n=+S z#2=zwfyC7))2IZa1>kZ#ZAt!P1WQDMIID1rcQ=AU!9{?s;KESc!PW2Jf;kv21SukW zG0p>*o{$jLO(=y8U~6aRB6&iIm(^PduoTdnt;k@k55uW9+nktOa=c7(w$<4rC!?id zyxVPzlu45<($YRCiA7uS01N^lz1lAdBB9b|LF)#}qf}G{0H`Cng09(=2l1&&ds`LW ziHy3`Yzv1z@3QaO5uviyq2c%&dvw^?580-pUxEA;W}48P8H9A59yqd9x0LXM9J0EQ zZt7k`BXOs9qsL@W6KUA8=1&Ldj;=7n9Cxm0o}S;`y<>>u&hIpgt^;0lW_9|WYFChz z1`}*(Fu}%-^w49+i}bvpwd?+#>(8h{XSJIC5`5`Pkfkp{?mAyS*nat|gOcb%mX)b| zC{UR=0=OF^!A@sJK|HrnRN)q2oAZ3ytRPzFupX|;jAA1r(t=(@W)v-8kr{;m35Lc} z{d8KCXw`WgWaX!~kr!q1p@0o;6}oMkX9S_Mg{E1P7ln_M7o}~ytAn1d&WjRYMP3w9 z&um^4rmA~21<&dlEa~`RmU(>LxUQL8BkR=F_6@wSKLlY4g$ervyip3ibB(YZPjZcr z1RdJgt^t~?=q<5laAY-XD5{EH&`)Ob|pr%5J}a^p-QD3@z9iImDDVt7y&+q!99 zP-q{=;+=zPt~;x}mWV1XwadObcsX;!yN7|A4FR94G<#YDJQZ0^=L>dggzAZMFEJeQ zV2xopgyZd&2cn-|9%={c2sI@K#BESzCHdp(SVCc^18r{7dUv+gy{YZUiVpimS(19` z*NY4I`zOT(q*Nw}$UY`62}AZ-0zgh~s(l5!u>Y-?H{gpZ7!9U&2>O~8P6E-D{I0H~ z24z)As7Bm+5t|FOdfdd~$rwUmEgWPLaUQ&>ZvNrAnCsJ<+x9(9#uU~^kVR)h$!WW* z0<8HmN6n`NM#IJW=^F#5>UKZ6U3MK{Q9eOe5w?sJm)x|g+9*y}*=T?$wXpB{pa0W) z-_8Hex`Z2D_~w;}4{S)gXlF#C35m_Z==&1>S^5+xw=&TpQUXA@eYNOitl5;AFx2qQ zelE|>2`$m$!qv^t=(tk6_lgfN}AMWGt=TqJIzr(Ne0TtFM&YKgH0Lb#k<5>cLzg2M%w!RCw1^b%*bM<$ z#Lj_AAdKq+RHZRsn*=NkC0;ulCZ{r!2}}!jWDcchn-?yl){+x>J0JPtah>@6AW0Qt zPs@C>4UU#~I1CZu+?)+$>*e92RS7>$-EL|CH1DE~+3_JF)04&&rNh|jSB6V(6 zsF?y1meK;bSuVc&nN|w~E8njP$gppbf+SgPl8w)gCc{%5;O+E~sBF8p;mQzI)M=+t zmE=kq)!E^o!?EqE-QFNPtV(e{Tf1;{n=0HGXRiY7SLMD^3 z+{i;?czE0L_I(AJeCI_kJl^7(%Jkfe5np-@Zb{s{S2Z<%o9$O$H6F=tH^Pa;H*SFD z)PUABH|MyXp+;}O!_m#-8X*+}yaYHZMM>ZTAddZCTLBF2#Y=Q2>}%Rn+W?+V$fHZ{ ziq<)rpe6bcJpfc`j^5Nc{VC7maJ@3Eq{r^QtKCLAb0?gl@)$8&8BZZo)194Ebl(g@ zI-by~6x>4?7ojgK8QXNctb5&W9FT35OvYgI2sXcxCRAOYZ_&EMJ2_Yg5OTe>aKM7y zA-2B>Vv*oAfC}}Ba<7x%E; zWv~4MEK43OfI#gFT9vR$pqh5*8v-+R#NZg_h(~oJ|C)sNC5l*M}Y0k=d4@klWV|6++g#$j;qZ& zh>i$YhK#H&OUaSwk6w;jduls4OXJKI^ZwKpbG@71RNjv}FD`mFy^XvdcY62fem770 z6UUJRu_4=Y`00&(PPj!UEQ1zM2Z9si$jYPG-rczF`N@j+P$z6MA0{p_5$`LqR<4%} zV)r!#HCY%FpRVZdG{_NeJ^4zcXkDHQ4pyPG^OtBEs3ps7`KxgyO%({yS|hU!YAgap zZq|7v5a9UA;_EDQkQd%oW+hRM_1{+mzg_8p= zr$18TW>(gQU6=3!RK^fZXV}+)N{AZUx)X&vbkacAzbU9dtGI`Q#`e$@Pk<#Z!UUh!Dq@PQEXGrGO*k ze5Frc1~obXxY`RIl)J=MWSPozbGjy&0p-SwQ&UWP6a`4lG||dXWH9^DG=#FXDk`rx zoEs>2U45uo*gswZ?DQk-6+pb_dsiV&1KWWoXor?@po~#7p;X+5dv~^C@sX%lj3HO7 zTDyt?!4;p*4+FWw(Zge+cBOJHz+k10t2pR}*Qy!;FjCf3sfEi>k18y=W7QT5 zY>>;1*1Y(jH#hpYXqX2iO$-Dx7`O(-M2G4AkF+X@k|sU0!QJZ7jjfdJ=t^^oF^$I8 z8&fjHbYseRDp)$Ymd91SLn+gd=<3h9y`z)evbs^v5GPn3aEuX6VobQ8wi|R96*8x= zfqfE65j#?O*-Cb6iqwmL-X~`&(Q73&JrAY)?!u@X&&$lf5|7?U3I<6p!tnBZI-5t5 z130d>+RNJ1Q=|lShyRy>CE%&4mP`7NW+`^sg=%rnhYY1snB^0I7!Vdo5}*mNk{W4d z7y*0O(8Nkck5*ud$IMC@uV=#c95|o_AK);24COUGiSM>y>jm~$&44UORZe}_Gb~A+NptBI_NSoO>G#H8?i{xsBpc56$H)W8lz06%sb(Kya* z|Km_f;P;HigX>;-M$0x}o8f-WQw&o9A^tL#Ny5sPD78tuK6=7ZveMO0oM_;vKA1l{bVDE?Bm{Yrp-JO`NL(-6tlbg z?Gn!`v6p)v|GtX}&D41ci~Du30l(Oqm<%#k3B^$Km7KtuN!bJ~R-r=?e7Xk_1)>wM z!dlcigqtBzk*#x9H(D;kuZ^|tpjKv`n<3><3Jy8P6+u%a+^(vLXcC<{+EfS98;=ZM ze%Y43%mTW{3du>5j5ve9G(UJ*s`9Z5#FNODsUrw5MoX1qXnn)u(M#bM?J*d+QI3LM zzZzJPTFRgMD?4<;FOB@+fMU6mK~JuX7)S7#A>5|L!)q_cKC}=@W5Y};6F|VlME0Vy zVOIire}`nQah~?)=VLUan#Z9c1`O8BoYiq8Ew*HbRudY_jS-ex5t+_ljr!0|SAV>w zFL23-c`Qde#}Ose6b%c$2&l(UCj>M28j-(BEYFBsyc4Tr!^S2!Y;W zQs?4$VLk_0BrMbngqKN5upPWNM(m+>VLuWTqD9Q3+iWRBr7XviFRK!9R0}NHgua&K zF?9>}m0p_~hr-aDQc(-yxy_u!AVY#Q#U!}6+N_8GrQDn1lbhC)TXZBSMrhU6)*uHd z^2t=)0RNkKD2tbIAy;K_L1L*(bKe%8O2Gm5dj-zQKi7Ilsf9~*s;W#O!873cItC-B z_YyahJ65NnYcvkO6y|~m_0sV?epqJc;g`PTAg9L9exaG5FC;U~zl1;fkaEoe2bLe8 zvHBOo!BOv3@9Z?idh}9!OCV%`<-MPMG}@2Z<6vNC;$C`jk^lQ1CgOs`*>vys8~Ahw zsxk*;y!gg@zVMbW-uuUgKWNveJ|@!afsY?A_CK#KaI+{-i#C>;Eh@nh$khkNOTRpQ z{>LYCJC7XxcVKreIl5_sai)gN3($c=t1JSA6pf{3={A zXJLBZ1sv>LY}mKNiJ7y^*;8OZ(4wsh%xC7C&m^s^i2?x|TLFL?p^hSKWGgmpjUv7V z*zjwQ2guq2v9C?@FDrfc3&Y!mBVzeiJFkdM)3`9L1~d* zUExpPR19BOh*J#|bzG+!C=i606D+?mUwMp2P$L}>y3%({V% zSL2{0Ek>>`X4m-casDhQ7D%C0hAW0iy4&Ih`_=q3^9^JVVX5#qq(|v8I%x@#6gk1A zIQ^+?2P90_ZJ0-zzgUMa&Ev?0@h)ri;22M?mKc{oSij&2;9xo!qn-`MaKK3F&$2o3 zp97=o947*gq*@{jDn<+0V>+@zi~8bzSy05I%?p<@n}zieiNc}RGLRAyie6)dbYW4& z6cB*voA^hnZ5A%#U>Z8^e~tE*_xayzPW0GTHynx(9Clvy=ogo_)~G4VTByui2V#JI zgrn@SCe}yUW5odB)?23-AZ%FDh#8<5tQa8CnNtjKYxqSKg9@wZ7OQpQavbW}twQS* zK$IHJFjBU*1|#Jxk`FF#)l$OM2gX}BWTdiBY{p2bVem9bn4_w9OIq*kyZwRVZ+!Dxuf2Zvo_YkehxrVnvdm|q;dU^! zB~L955?kiH^$3#D{x-%9fKvZb2&9q9Dcv)4jfDAG<4BN1AM2!!ympA@{x3DWCr}C-8oK%(4spnen zzVj{?%UAG_2QTC24nMfi-|y!8OXzIR86IA#5m~?SH4T}0^^`hDb>8z~HL`AALQ&;_fEh$(iwqUTFKVpf@=WmUuxI zXt?R2-_N`lZn@zx?~Hq>ca>%}gsW-6cugJi&hW;e?s~&!=DXiW?9hwwRe&=1@YG@M z43dv?hXy1xgf|Q2Vf4SZ1y69GIpg6|(_#A!m9YYm$0B@r9)n!}s)Y;rjSgLhug*GvrdL=odKHt#c zCxO$k+d^H?;oWP7M^jjy0;ev!u2m`2{Fs!n%IXH z8gm|21+8A_7jKXQXBUnx%Hzp7u=P20U62!J)qgXOde(uEH##5kG_f&ocnsHBA>dDg z*2BVT360Tx2=AsKJRO_PBUNjO2jQ<6eY*x34HG^JHn^S+PIcNW=ck)+VwFLb%14$q zL%UE$-)X{Oj}GbH8iFeuT2^>**Zc=DT_#Hb1QxGb?AD)Rdi)XAX^LsBYbypS30^0t zn5AoYvt|}E0kLw^ZrNt>585r@J(+F^$S2k<2z7Wfp-f5nN$4H2Bs1OT$b+VM;91OG z5QwI-S%2}T^QxPZ_yhta>N4Zy@D^Rbd_k$U4@qu5FNEI_8oxC`2ASN>;vf~N32e>R zSR#8%V~{nO<+mT%f zT68_){|fH*RxE0;Jie!9;bGyDbPvN4$%^HQqDObrC)u7=8Qjl&K;Y8$C2AWnR2BEI z|21=})i-RGQ9_{roobjEAZ3CL)g?Sg@>I3(Cbwe5bM+!AIm{kafCq(EB8Q~{*m~o< zCqy%gMyv`jDU4qpW{hogT%$U5O{Md>z>O?6Rtg$-e8!Rjo_5lcv9xJsjiSU+TBQq*Gnp6r;n) zc&??u_Ry1MMi)czGSbRD_LBYlS-gnrkNy7T`_sq%;Ca{^i}d-o5lHxXKmUnaxcrG7 z7hR_3UwQoT;$V9JBMTRB^SRISW~{z-m5Ql^KF^ZUV?5_vo8Wv@=v6>0AB z+dS3pD~@`eVxL?69Q`HLcATYhS&c)z5DvKx!0R$(Wz6R-2`y^tvd@NEA<2lcDZ%;? zXz$lmSqxC7|Ax;=g(8#C+h6r&!?F9Qw9hZEebF3^82-V{S8(~~lg@><-TUZRwr1s;$vcFqQs(rY#M<&2h*dUpyt@Dau zP@Dz$cyTl%2rj_)3(G6_!KZH{woNW|1U}^f8t5{eavG19(0%nG_oPmB|FG0|qK=>53be z2qBz$I$4i%cSOs%D*{Ww85BcSduWbXg;`e#ERKD;xM(M@lay|$*QX^`F|HrvITDgX zx|H6-8Vl%!LCfQ;VdN4}TN@VUO%C{m0_(CU-84=}uf(%XNRv6sIq<71@)2ToW)^yU zL9MQ)hFEI@gEaaN8MnRVGVWmrV%M~x4?vS@kmLmx+iJ_x7zfJ1@wT`5FBFG^12No> z3*g_~*W{Dvxr>h%|DPJ8wk1Ev%BDajnk7C_L(fi4lSR$=qvOdsNk1$%1yr)W6rc-B z2F61m;^M%T{%L9}o7CVY*kuw2{6eTQsTDFPF%BXL+#y}-n%xhHC)SQn8manMhoK^qY&e->gj>6ze%9plc1qP*jBIVDg=V(nF!1o;0m5vNvSQg%%&h$X= zC)Hs=w#`-lO+Nw@c#aHUacB_s4T~PaX=H%}es%yr`_?qU9;g!yNz^bJEaRVD^q3$q z5`q?<2=2qZtwg1AC7-xER)FUZr5|M}K8WyOA!-xYtOsuj8$*EFOO77HMlTo|iE0~m z#;gRha!)>=K^j}7HG-pie0$1?tME2#(@@B*h>w<1)wImtA{-%W^ux?w9TgqaD3roH zBF@lgwuGP}^CS-d=bgcuk5$d)pfEpCt+CvGk!&l|x+Qac6oRzL-18ejx@I0>bZUul z`nT!b>@{CuCgGuAg*mX5%pbk}U~b3^s%T1^=t5AJ7>rgX*|ycnZn)w2B&UHUCWE5s zri2W#lPNYsUE~!stY_a;E=)bM_RQP`JzY6$nCgllw|p@A-?VzQ>KnajRM9L99~9>i z9jhhpb|N2OSEV$ovx<4TS#Vr;2C{|AYFAb|%Ue%eyOe`(EEm?VOfQvX0wgsjQyH|W z?yp~&UOth^#L6)Wu8X}4(dK&LcKbj^-;4&*s9eKZN^gf<3YyVdfr6$SlmVQ(@(v^(zB+Z>6K~~eWI2aL%=Uk@jbSn?8ctXdb+JmqCLtQhTiHC) ztq$&qmjQ?i($+NB5~%7M2^{>M9tNU1JxvBtGXZsM9m9(EdE$(>;fuKO z(}EzSN@nfl0*vq=t9R{*3}N3zy{q^(OJ;P}Y-gh0RZ{P4A*Qai>Yb{!8kvPMWmy}v znjLAQB>|{^?kD{d^7kHq)S#gqekLl&GJh9 z5Fdw#TC-Q%BINX9p=lSj^3$}7y>Qepam2iYMXV;sP+Z|Dh9`}+hgAHDl-IJ-6q?4P z8%hAdWL<(fW^R$~M8oB<7l{W5QW<9`0>d#sKFgh=a#_@5e{#3rsTvw?1qrHPhqG9` z181WTaOjq$;{de?UTt0%T@X1ir|gL@!ZelnqAXN`W|?j-m+C;r!B+91t~c%WN;RFf+ff zxU^;Kw$Uj#f4=a8t_?dJr;nun7I)jZ8!e`L;_ejg@EhGZDY31jZ2vojnayPe_ekSgoNl6SW?~l7B?y$rB zSlrEXhe70Raks!7#*n`a%&0wrvmfG4cHXU$^D8;_JerPyI6Wv?(%Zv4g`%|%pT+In zKXez=vch|jjwdTu^1Pkblw7UoXcY`D5=S6WuU8OwIyE`+0ut9_woc#v_PYvnwsQ+H z0T}u%+!N2D9NR^@adK1byAHF@aZY&AyrONf2Y~f5TS;{Ii-224G7G}{TL?*VsQfxD zr04lcDj{^8VRlN&7Ur0QvbyPtfQpj&<_VPhF-GMt=p{d_iw!EiXPv3Dk?T;MRF
Qa;#79t23nkIF7-JNBK+<;P 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 Self { - let data: Vec = serde_json::from_str(json).unwrap(); + //let data: Vec = serde_json::from_str(json).unwrap(); Self { - config_json: data.clone(), - paths: UpstreamCall::get_paths(&data), - test: format!("{:?}", data.clone()), + config_json: Vec::new(), //data.clone(), + paths: Vec::new(), //UpstreamCall::get_paths(&data), + test: json.clone(), //format!("{:?}", data.clone()), } } From e7e431b8eeb8795dad4a1cca3632d830a662a11e Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 01:20:01 +0530 Subject: [PATCH 26/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 149174 -> 198403 bytes rate-limit-filter/src/lib.rs | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 83d3eb39a1c2e5948edc0057c906fad9bb8e92fa..357d193b4dd4371976aad5e6c2cd86d121736286 100644 GIT binary patch literal 198403 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 qM^7ZfzV+i8^f&2&>w$F4^2bj}? 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
Qa;#79t23nkIF7-JNBK+<;P z0oh~lXRRgYruR+Lwi($dtan)_6X2LS)Y$o3=Aa$s4jt(sP~KJ8nS{Y{D1)HBOV`|f z7oqeFNB7kh#nZ!dOCDb=8x6m+1`&Tmq2omy=&U-rL&cGDk!dV41PlX7-#}a~mn`Fs z_91MUA&!o@Gvi8nhNrfRazC*sRbf%W7U5$O;IFbO;YCimlu?OS%!AVQ79LfH#O}s* zBL4_NAhDbg>3V^;Rf&d}qki93Pe>8Xga0)d+!Dy9w3IT!2!s z0u^#kdPlzcg!Qo@?d5X^KWy_E^#>|+{9lF;c+C#AtM!$^@9gqqP? zNyVhLva~BX4>Ypah#+Jag3J{jC82r;#r$N~*r6@FJ9RnoNK4zoxu$rTeqv*@HmPEH zwqAyGMSP7YOPQ%7<0j+F*QZmUcM%Z)gNx)j(Z(nU{JGN7^cuUAMz(hVD0Pn`Q9lI& zmIssa)B#+KtE5yj81EYLt<6{p8fM8gx-hK@gAzbk1uwXaU`^3HWa7}C*?ww#665I^Ukw~WW-d3bAnfFYG3v{wBi zJ&eUYg$W!%K+L)o^DW0CaAj|rWMPnkyllBta-U}FypJfUHK%qM{^~u&bKOq;Ds>(#sRn~U+utkD(F6<7 zAtaC9E4@MXuDvQF4T8E!x<3xhgGU1Sx$a~$_kv3)y*7^cJ|f;adQeqLJ!IQ?wO9WbTKP+Qr6W6ogNGC! zB1iB!N$9dwVwe;4(i^6PG#8m*viQz0wPH#cv98$~qcNz?*;BoUj=@PJa-rUw!w)^# zO&yK+s%fuwBN<;))*y+MlD}32PL&2PD2Nu&gGQPcr|I$#>!~rE9{8E##VE{ql-T9r zKw$u9d@cCRw`JPHKCfq7X+@4JIG;U(0>Xl7+uhN}OU5;_q}n&XjzX#4Sb<`s)5Du- zl&%^UBZ6yN7}ulU)z|}qkQROTTS=Vr|t%1wC!Y9DZ8#tO$Zv^9{EZd4^JF>8G zS!9CQvPfwTp2xk1j;kF&zce-oz-M;hZWoOZZe!Z9UKrD+LmFV9UfVS7 zAz^86gsy@^!2-n=P~%H6DfpAeCH7{tm9Tm}sY)`1K$((hgGMHhcwglVB#LkVl3ojm zy}%$n!=YNjLORu-ldNT?5^z4-pOdWw07$evRaX|?irc*5W(q84rg7&&b=#j5TTbVO z(K)48){JC?WJQ#JVDxC|nx((+cFd$;?DJL@G+)2m&%%hX>jj0&*eet92*?+|pB*=- z9>^07qKTM?KGZfBe%LBxbAd3bz%#8!2pnzfsi)VfIObaOUMqr@vd|Z+la6D)VI-*<(RoUBZ@t{e?-I8HF@5)m!4?!fC^HqJ(nu}!*Yx+-7{QraEcguE(n#ahh>=QVTvRbiiE8=tTV^ zxYaduFNisd66l<9K@bTSX+h!^;&A&|h7jXPPZocxMxkueQj6`UIda;6>5&e^lbNoE(oNT4>Se63Ps?B@n+m82W*2!y=dNxB9HFPoqB6>f*(t%OETK9h zSVAu$q3m=5wy+ZFBHR8#-GO6d;K8faQ|A}xAgfnF78Q(phy$#7ZggL8G>k(4yYI-a z{@yn|L9nm~Xi%#)u#6(t!J{A|RikeccuhQdOpki;=y(y&uKh8d&Be1LUcriVi=J)G z&zxYtNDt`QPM$GDRckV|LAtw>yuaDI_fEKeHW0+r)>^L6Ij`&MaD4{I>-xI7z?0?r z(~`g}*JrGSSorUg^1q*SKh|UUn?VK3-w>)*{JxUx4{fa1fsF)zJKQ(;hRKCA!zhi$ z5=M$P=!I(p7ELi*IwbPT^wOJQ^Ta7u9h;{pY+q?yg4c*(%=WL##L>$CE!Pj?Ksr(E z9zUxiH3$_naSWv>&POQXuvHYNh-3bV#Ai%LBF@HVcxxbxgV@}4q8gAHSYx^vL|cAm zbiDSR3?rMpjt&7y&#TtJ1|8YLZa;K8g^JCS|LB{b(&FUt^|3k zNNVfILvwi*dF;dRkL91bywdedEV{v%rYLp3rXgyyNn!C*HHVI1WQHoN1Mu1o^}Q|U z!2GD)5|w0%B{s>td}qE;$to7uvKB3q!$4}?K4(9&mxBD?!?C%_j0#~v8)-N$37(C0A0s7^jlL{X1^tya9Rx9O^3T;RRM(eEn0 z7Mk`k<4V1xYsLT0^f2%MV$L|2j^|D?BFn5I^n|YvH%$au#6)kJ?F4LV-R7N|qa)~6 zT8rTc{44j5KFLkx!9=CIDO>$yBgPyA)Qr_v9gO#E;ZeL{(_lOdq{6#Aad*e1OeuR0 zn54LhU_BX3B3RGd<{afHRMlOu-n<=sQk@r2NJq8_1hp|Yo=~>ltMT`ROsZjmGHhb-a z6*EXdq(-sVX?XsVve_N!by49@AXaX3iKKO&x-rF+*P7}!{)~wiW|q-AFiMC@vs1?t)>vZXVbBpVr6N<> zk;G|-0(?!VVQOLi+7W}Njr=X)Lz-Hc|0yY93aS&4!Bo+crh%z%CIoOStfZ~j7Q;R( zwxONRifz`;CkygZ)L;wLD!;^6%@?MI>mQ98-u@3p4R_CoXVWXiCUO}}>3;;dO!jw4 zT@$%XmIa3>Mn_I~Fn5Gp#&T{ln#g7H;)Ptsa@ehTlFR4`LQ6d@mo5HT9z{iR6tc9Z+uw5B z@-(IZUk!PN>?e*vq+^y*&e^XN6BOS^R3skpbi+^SD|vvQrHn1AXvM(~y2@EmxRN7e z#c!46obN>T6u= zJW5@eN3S68Zhtxs{1hUNWAsW)Mb%#6V$Gn47(MyDL3Km5L!^!-hlJw>W#sQF9gg0^G|?Z~0&tU6m?=aylHr?d zaMZJG2RzVozZDoSZ6|&wUtm(yj+H(E@lavo%`ByIJun9S#k*=9KR-z)DGHW=imgLG zSU$dup)eq1%Oqk=aS03={;mki1mz041nZbU@@WCi?>Mg$`v_U`iGA}r5a6;cIUNew zW|%FiFP!1-80inC>4_2{ebj`1JA13tR|$TT6NoJc(pu0$Mf$5eijKGJ+ny?A|4OG3 z8?<>87hYWC|CC2@2ym;@h%HQ|5nG@=a5t0wOU41`QCw&iKe)Ug0J-|WcwxizU(my* z>A$F9^8#X=t=9q~S!fnk=llAFI(7xHlU9a`3IP|A(jX~l$ut47g|4Z8S3`4^Y%G;3 zSD5<_J5C9vfg4^We!cpQm?YJ!JON3fG&x#PqCZi}G@v*ff-c5{tGsMWj}gfsFZNlo z63GI4&;m?yzI+;bL2-uK}#)J1H8c3E>lS; z|018vqGd1eV#w59TMc*tJ#yJkSEEH&faxjNxO7}b`WJO<#;j;FV!M0K`{mnKCGo57 zaE8)`ot3lc2C3a<$9L7;$se7rOIKX)xMFC85VD6BTTRWF*+M%=mUHJ zvLppH^N=){u{c=d=|vo zyYQZxh+h^eS&Fn!k@}e>hPQ54+dy8#v)kXPwVy2?={b@(O2Alxdc^lRk&UYh`DMbE z*mOoeAd=eX`(5q#+D$V1J@%RWeYIEr5~2UsA1~6D^f&t1KDxgg7ip1s%$v8qn@22+ z!max_((5WMk}ihVZ`bRdUhiNr;iu8-TCX*O=wq;%wrjxO_Vq?SjlQmQ0I7zR2!_}_ z`YBgUt8IzN^wwdqboQL)Wp?ddhAC5^?B}ky5%~q z?|XZeGp^UZH)Enm+nOTX^q$^DJK+jKwSREK-TI#p2_TcSc!&~&v+exX+e^(@(bx)^PY~ zf~2RD!UH^bH$tOK7EPVbhyz8Y!6wH{agcyFs?s9X_4w)R8(>zcZm*P@hU}53nB4^| zgQ4x~w8Mg{TYiI?W23(IW`uP05`8e z3V($#v|_N^_qE=Q#ds$Wm~&8#Sn0$!Br+*e9u8O<26wsVIx;A@CNs?xidnVhUUkg*w|7&{oCxtupRSfHBAk*qmaeS5}x z&)nY_qS1tt6VFXoJPgi^p^BVfXp&JZWB~~%(YLl&UKC|JXB??bwSq{xpfxZ{4brF` zqf~pcwDCzIQ?oKUv@B#0pHx$y;X+x_5|opHscIE%V~szQ_1kVVtnZ9jad%M$TyCH-Ju6D5y0326ZNFe4DLDPNP2dk_@dPS@Z&y0vrYUiNiF6g&p)8$9 zavT}~{=~S70|zClfmGHA9+n59K`zGC0fwPHHv+aJMY%hU09vI6#*^iOr|jdBU5G`1 z7P>;zpTF{ZA?&4IUn#WAs9HGYhZkV9&@v+1h=3#y(m`1xN*y{8BN7A7 zzHVLPTw9orwDzp3*JDd%Q7+y2-vtr#SQAv$9*t^KIe|s{S!-4z##i7j7u8-Ejb|1I zfwc>dw(zd0?N|n~>sK6OL+2?jE7&Ynel}ypFl*|Zs)3$@q>LdE`$Rxsi4-}Csj)jt z8#G0@-feYj9{n4199nd00Vej$^OQm zaU}zQSYWs5T4+}JpGQVc1L1PLt)FisYxzC_$`^LdY3*7W& z^gmP6+)FQ z3chON6#c5zH_t58=5=~CH`Oay6~V!(UMYrvI&HboLijLyxJS1|)B#Jkd9e8An`Xnr zEzZgo#RX~0tgi#Ma1>fRlU>R+3><{6R@tH5_8&kwb+h_h2N-jr(t>|C9m~=0i2nbce35eMg=~Z;^y$+QYTuqvVyS4s=AY4o$(Jmd3Vq5$52v{Zx1vCC2s6 zSo6@23*tCsKGK9P#p=~p=Dj0I0GN(8HGAn9!WxW9ucj91Y~&j;=XUJ6xdV7EC2lgw zL?zkvLLJ_hDs}PbZ%OSFz1UHMJs$oKV`+*Db|MaVc|!l`v|~^Qj9-G;`VZfws|D-n zZ#YOhD|gd07o8uTY>V6nf#HE8fX!aGze(ztr0?pxY|XKMwI zY~qla29n4+bq@5>!j8qocSp=DW)l{QzK=6?8Ix+`X&47&;_*yu+Ev!%Xs z0!hot7bjJ(&yW!AEL)(`P&LKkJ7!n#!>JU5+L0a=vX)jMt2j-g=4DM}ZNwXW24Jb! z_u$X|>RW#Ny+3u$_J8g50==A>l8!+II^IRmm8KdRfWgqt>8vx;%RHjWSv)vuOs@D7 z3H@YzhIgr`m-tGFJ9(L_f5$&?^&}cm*Orz=%19SkSvkGE0+s4V0|X)eNz(kG3{^U9@Fq$6J;vBvO< zWeurT=q+B&Fye7IjP`vJEi>jCXO*`eV6$PU@Hfe}GsO5o4y0y5NurUshmEq&^3#i4 z7&ywx5IdFLCCo#v1wvrmFPkl1@=5$DSMsXba8|IM-$c6RSPr!p%Xf~(<|qSC4J|D? zO{+e*T-NHK-ACHr&Fiy~D_92(r5&$Fek{ISGBL}6)@k0ME+i$89v-@kC7nzZq$Ysd zHa^adctrV=%FCH%OpC~Zy_nu7I(}ZdLr@)&zCe+Kiyx6j7nCe+WbCrSKJW*4V{zDN7L7GF4Q4GAa8pQH=xLaPH~Wrap-XgCNO%rHB?(WZP}dK z)z4hf?9N6dYtA+EP1wR524)!WdD*m)T~v@e&Y=Hdbw2xktG$zdks}boLC(_*fd7Gl z$m)X;&00Y`qLO$?UF6cBuJA*_FMSqApEhSJLGHI5u54>Xhd`v@4i|MuAvP!q94nShET0QGYhUbpczcnYEOU2(1 zG`vG>kP$ud^FIp{MuHl17_JC2Jxk|aHKJ&lL(^y8h@yu3s69>s;og*1L#OTL(99dE z*c=)kcHx;JbBR!-)rum;p)6?9hN>}!C9am9t4u_Va2tQe^{LiiY)}bO4RKk%0xYlX ze$BE=&)`Mc=@}Z{HZ%tOe+FD~0AYK=lcdJLQ1-^6JJ}M#3)T}$`0UKsWpUp$?ukH8 zG*4_~_{YKf3;$8^{w@C#;2q`3^d3APdiG9dhOD<=Tb_gTnV0L4e%=s!BGMO8K4_{B zN{2_HeVItxRgffOB5O)^WDfH*6e1U=F`1@vRiO%?xR%7Hml*Nj_*gd5{C&IFRP?G{ zZ2I1Gr}N5+YA?^xHVS$lP&*?0jsJFg1@kJW}1-Z4q% zB_)3c!64fH4mT3|ta{*>Q4th|Tx4FXVVAlW|C$oG=0nTnM~Tf*Q=8sSJ(OdZpQf3+ znG|!EBI+GK`mbKAx_0d!?Lb`P$PW79_!>~PP}D{ISJAWi&Wbf3w!Hb&TCwIOV80j$ z8I70mGmjK3o4&5_Y{<|raMQzonax-*HVz$h!qD{a7eQ%NY#$;WXzu~WjS-dTr3^Ie z<%ENB+j*S1mdBaQg_+ODUgJ!}^N|5YK7z*?$^Rrw)9fQh5Fj7mkL_}|)NBG?wFU@x zQex?Rn~9IL3~|-DdBXDXWpY~Ly1ZV5V&4et{s@^EN4J-wH&r+TOcGh*3#~~^Ivt}7 zn-jz7BRkyp}?A z>$GS$7dWCXSxwZ38@d8~Y7p9$qS5Z%Hp%4M>WW~19J@A{HBKv1#cXS?Jpg&;^ngjI zn$tK~LuvQ7;eD0KSQMR4t`sYn4m_*(LJmD0S`W{dgq@Mnjp*Vw>}+nmuruUa2I|CN zXEGj6j_(b-9WbrbgxPCl z0BR3!D`8^tWsm-()YJh_jKz*FrON3M-Xu1~;=&l?4DZg3jgkr-Br}k5o&trqz3Sr+ z*$__8wTUU~Yl&m3NAKYSlGR{XJmr-8mvm(%yW_EvqYO-nrF0Ae%akk)QeJ5au|#p5 zvSB$+MRfweBq{|1jiXYIyhH5D|nE4q*D z{z^`1%YS-4AtW*;`yh4>ohRpKW81s*ca~q4So3Jv3~X#BicwyJTqpJiom3C6rcZI^ zD6g5469I&uCh&1K&~?*e7w0_3O?;8p1) z554m%GmQmfyAy?VAW*`CW{3nKLwGH zcq~y92-a@POx5Bt^)%w`wtlk`P_gacOfV)D)q+97KXM)))K5Xd>mc>VtDO3k^-IDZ!4aoUq7*QM9oRZw z^vYgu&>K|J@y@*cosQO*%>#LmjktRDuaep(=?rzqhX0i_2>d| zcHSusM=T#mRu_ciHmOf?lk1zLv&e-j3THb&+qlHMB28!am;puEJq$`)o}FZX(xW2T zmgI)i9AkaR?rR;qD0SId+3^Y$xz)<#mVd5eo{D{(L;0Orik21Nz*@nf?g;Wo)7Zo$ z->JY6Vz&9Y`ulGtcG1cHA1q!=TuXT= zN*$wX6yd}K585yL(k34R^>gadEmu+&L|JHGtt;Fn(=^5s_t zzx*niIcIF7Y3BrW9xh25nt|sA8wnUwFV7xyg9r4%yztJ0>Y?hKTAiklM0E5ymqC++ z>c2$6%;uzZBbvg8}m8AL-ZjjOm}P^HidP}KpTi@3@L z=7iCT&O*a5Wj`mQMzPRFD*=L!;=oy2ArVzUPkf-}WAJKC9|_2u;cH1vl2%BQ#T3If5MmvT6UD@1dj z*-cv%_Cx}Q9#|0UihAH0fc`L;C9Otepbqd(wS?v{z6^{o8nGksYX9>a(QlwdJj3_| z_fud76KO7OBU9{}hV7~kJK6Kmi_up1!*p2dgQs#>0djBP6u8}b7=i)lVuTTR;HGg$A^+d`2T30TyR2VwYzh=rNg|)y7ImlVHM_kM&PQa^-BCaWFu;`90K9r;%IcFJ z?B6x>#ACZP_dG{*r0&8^kGy3CCQo%IC|6J{ZD<~4pbH}^b?!CB*RRK6p-TUVc>~Hkm)zvIAapJ8Pu=lUhqnX zHAK>)?KA?S=iw%$3e+PCA@)!tM2Q`={;@^i=}-!f3-gJ^Hw-9_T|FpbyFz`YVj+ zE3d}{83y{oedu#q&=-=0UbdnSj;Ek6qR)xlZFp%QPZuT6ioRz8r7}liIpUb2n#0x* z#~e$hD3(_~_W1t~QT%|9EyCl3CVG+tmK9BTj84VU8R(W9Sn(24(TUx00O9Q^_Hkun zHx4bZfgj)cToTxJx42v{`K-m<8Z*{>35-JLMUbcF* z_so81gXU?9$ne@*%je_xCszCy?A93v_$s|DgtACo_#=AqIcBiWr?ovFx1*xJ;mGkv z)E0O|NWw?P<$V%v$yqXB)N4VnX1*r&v69R2B(G`uM#Wp(4?+_mg1C6y*q&W2M2oWF z4Ur~RS}upH)A!0m-f5HAVsAQCR#Xl*9NmB!hi4aV?g!{GC)vXV6PDT}1IiaD9~I<8 zLg)D(M-C$ym+N5EU;Yc85B_YR4#QE-N;Eu~fNN~&A*SeKM}k7-MNa{l=(?S*O=>p- z_b_1n5nHt|?k&FLv4kzYox7AEM(87By1Ma++l%=Y3lJ%ET=zt(ZK|?+ zgwJxOA#^Yyd-}{Hl^QhIfHs#Z1ec+aFRLyeh<$)-G??M4a~p)fPy`OR!_0^Kd+`A# zQad!tXgO2CrqBqKa%lvwI19wuFItE?+o`}%OA%iRay{n+mWgnTm@PJ92pe8R9i^&> zy_D3X(I!R(fIKA_)<+~A=SW6UE>J5DAeKfX#|jz0rXZLGOK1QlEmW+&Z;D`k#f?~E zw?L^8XHsa{s395-O+mbXm_`_iU37|ojjU`Hx8bihXv&WsqR4J^E46BNNHiCuNMWe^ zbPyAA44W#YQy-d-mLl=k>D<=3e$}Cy=i2I}n-q zJz81uFCSwM0x1Y*k~=v&IOGRz_;fraM~vF-0+#{0pusOT z(V;V31UEmgNJ)#`E~p4uGF?AZ4P{fTWlsx)u(78FK63QTK-Fld;b3$KwdxcOfoL?5 z=oBP!w~?|jS&)cgL!895AC<5L1z-<4Ch-6_1<2F#@wbflqp%6W`hO+n?7@HN<)h)cE{~DHBO!hR}+FyhPuU zm_$eMfT$1xaqssh?y8hDoQ**hBRLBSis?_>6*gexo{Z?wG?YIvHf)n(#mn28b-dTL`2}E1)1Wk4LSLZHIpDEqv@6)>XD?bjMS_jH4{i=j-;r!&9mw@P)=p|2l6`}3^;l_0>T-9 zuXZrt00Z0%pivb8A2FaB1MtNT25evggF-fa)7bJzo*3XF_igs%t{8 z5Q;RRm4q%Zp?d_;R8A86g{I&uEfv6Xh8+E=J)u7go0-}<&aVv^c;2>T}t_B@%GNYPw{15}G zms`wQGp#}4vlz7=qMB}0C)sczd4s|aFrXG<1XB1ThOTaC1P*dzTAoGmlv@o&-{6Cs z*nx{-#fkrFjB{6kVO0)_!YxZ2R}qe5DTL!WsEIZ}fbztqr5m2u@sP%N-Cl%pEYLxD z%~R;P8I_{hv+YOfezXig8rMJx+Ep~9QAHJ_A^4`6!oV%!GcmWTA#Nqw z77$re6>^TJ-y&;R$Fme!^4VIU%G`mfqBF`vmV(g%lx5PuBjq#@nJI2r zY6~=Cv6+!HjiR=2O_ZZCaJMdri^rl`68F3QRp?U{YTX;v#CSr-MnQQrY2UwEP3CX) z%rc|Oca!+ijQThH9hEa8sM$TnM8I9t3}waJH=Iag5GhxAY~}|%NPx7MUl3intv7~X9kLh_YF_9F zj4o0;%HUYRsN-bI(0-6jEarc>p;YQV;_4?RRvxM&w2M&++bh3yi)BQPBnidl1{|d1 z(_++UF;7rnMQBY~;O8;)WVK7iO6GBhp&txIos1EV+f#8vjcM(}&E!8qv7(}JZB|q* zu%O7YEXeL-L3YK0>^>G`S1br6$|+FDN3kFltXPmNj;`{tAQTFAq3o`xi+M_{VlhAh z-h)N46%^t@?1cIs63N)4&B(I7(Dj5JhoxX9X6Sh`NH|b1R4{OP4g^($Xa~0l;7RuU z>9A?h^aCp$KD-g)x#ViRbebRi0X2)}j6-z7X`IFe=Bz5wPN(K9^Rosi6D-rR9dLD5 zYtbCk!c(Pl172geIxwIE>mnz@hgd%X0@@1BR0gQ$0-%IXs^+8zeq=`}@_a{X;wPMZ zeB~Cq-KK_>;R|i!0w9p0ym5p|6c@m$uqm>H9vFto@@wEYTh@1qtS>%_M<4mX6ttId z%Zq8`;ymL!o&v&ev4L6xGB@iHUS1AmqGG)ID?)V?{>vCj<^~}rhLTg!m)x9ob_zzZ z4&QgEI&KgV2p6F=F@qhDk{Dm+OmYw)=Aa}penlJ)WJ*~61@e959Z1LoE^oD{0To`H=PvQ5WRVOsb?q#@CUjW_Z#O1JkHI2Tf^@TFaLbaT*EJaCaDP z$ddKJ#($hjy^J`EbITpsC1&H(?Ej^MtOiJ7DlyWmcvZLdxDgd(r+iWzgvTjblo%kk23(k+#9(SqB}NWv!jl_X4GuRV zQo+n*j~Hw#Y_YHs4nALBD1)_A=^|g)aicQ3fb1|IWA8yV|Z3zbaVm^?Vt+dkU}}N z5afq27+7c7aEBUfhr9&`@YyixB;r$FwAn*RfSUnGK%K%5N@${0;wk*HFhv=wEE#Mc zSc18U)OH1)HRHRs^64a)w#_wwJtR)_8x$ZmSJvRrPhd0TKe+q2qK=L$Z!ONja=GFL z)Kfna)EcmFC#t>twKy~ZJ_#H-z)JLIDDrMfvwHn;GUAnFbsU)Nn;5 zK0%e3-vqGe{EGAQKpbG#dIT!1)RZ+hZ$=^tIPA3ChYZXuiRKj5a|a`Es(=WK@vI`m zXiktDRDKRqH7h_w60N70e|%05XGDn4o>GZm-!Z8<#mQ{xAtfCG@yDeqHL00xNW zkKxYVm;S>UFkoJ;4{RcXeM|@AAxpPIJFy#oI_gF4f{#jYIDoq#fPq)nmm_#No>t(M za|Ne#U^dEw#s&`KR2)VzETpZI&24ntVW-w{K{*l!^JLJI;w<90MA8Lu8DFR1GMnN* zzF3^Ln2S?D6bVE45A6Fm$`=kc@7ToU&DyMhHhJXhbkZDYjE)nVSEocyBi}HaW4AQN zF3ph-;7M~hmLl04cnKKIp&&+c)R*>Db8M9jKP)!K&gMW!_?rU^vC(oOJf97Ait%qW z2UMb((^6>%`+TQ|L!LmT;~sa4mBV*$;L+m3Z;j6|xIVHWjkWz1?pE}pu~;ke9fl}n z+I7A=EJU?yFNYXpB8R1Ds8npBAycYyxzr)21(93I$aEs2sa``V;FJi;B~F0D;VFE= z3NH00Q8~G+l`Ky@GprNd?!o!T6k=Mg~yDjiuqihyk6w2Lg6U zjINSTW8|aD6Fxgby@Hx84ppWFfsa%+pzcCEc(!4w*1ZH1$S=-Q0~ZNPJNp*y*>1Lw zIk1Uqb}+=!#K$DyteZF=IiJ@ie)Bh*xNpWrqZ63}o49r+Lo7{PB>`vM#N{_byI?P_ zSF#ZFWX=_N+LW3l5eqa3H4!0E2+c1?VJ?FY&-aQAyliR;NTv z6LowAc4Vvgk^$yE@Ug^U{M>ngJu%pmEi)n5^W@|>k*Rl->2#ZZjcjjWcM z7xPKYi&+!T`h&*2__Xc9326VT?fS$}rDKgR2Pvjym;OSlIIofZGHe*4*(yVvI=h`V zNJ*m%M>M`s{e{U4ohJrLs<29-M>i=wA1s$WsE%hbOEhd5Tt!y447=(x(`-m{qx2c5 zgMG%TsXpVA>N9&lpM7KS!}8i@Pu68enLSzk`P*6@vKYSmBw8#XhB-Cf2-XWY4JKFKg(S7JeRz|7~)+6eAIX|0~zo&(z@b6^XWeth;0Aka>gl{F^lIc!96z_sL{ zdPW9l6nYihtC~%81o63|^oNy+>jellGspDQC7z3{7``@Ob7?MgC~Pip@pJNZsKur)~cq0gW|)?-d$IuZJ|t1npM1d_RwO*B++#gMDsrF%dT&@@V zxK%c0*?u5)PvR81jj@C!uniei7pota;IRM)M!~w`CZ}+t0k-QLhpH^UR5BI6W%1FAGK zS474qMP#xz5j0Lkb>N7E@(S+5VQ2^t#fVG}giNSXxK@jF#Awujc8zGKW@n%s2sO|y zxp2h@Xoom4mi{mp4Y~o^l|HV}Zs;z`a~9c}?iLzHQUe5-D;4rN+IUs9_P9Y%%W&nB zTB%^69v{*V+H94KEdh$e;Y%MzOk)TudCJO(h1D4y&UH!ZWKoqI$(~Re+r@}piR+VG zos96rVH+ZnMtHCc8S8LpjxxV;f{Zv$Ssg%MVtPQO8AnU2vqQr0^$3TYjILHpc+TNx zcF>0=(*oSMqyS10kpv7XXF^~bb;SqaIkMyfh~N8L3oZqwf!2mwTPq^~VwxPd5?hNW zEh<7<8-|U4Xt5q)w$^2~*7bK=3kJs4!q^;+j4P?u!pjw{h0_ssxT~=m>T4}wGz)To zO;yR6m<&f6iw`A{d4dpMviXFbZ~!VDXqn)NCNg$e7#DYB2rm(NBim9%N;oJb=n{0# zK1u_0hNl)+_P{u3DWLa`8a;TTI3OEwKP9WMl8MSr@p*@5t1lCl!(0NABR`cKO;V%i zCC*Asr)AMIu?NNhu0*M0i{_a&oH$uDNBDdD1_3sH(&xy=Cb!3pDjh4yCp8G@>g_rB zgURvn0((rN9VsOXf7s(Ffz|@lDgb8@xc30LT=PNWsZRmX;nET01P(4)fLk#@xwgB$ z^HbUX=9mhkGP0zA0X5G*p#HBnb-ur;2mX)us_x^GTMf>kW(0~of~PCLH=IUlH~lP+ zuG*lyg~5HugVn@AR@f~hxx3j27%T>27wv?so1jQ`^kCKI0cQO0W`vreH-6 zft^Aw0o&EePOU1Uxpg~hhp~{w#Rx1^3ZsXa3^Q+jLTW1 z0-9Z}M~uM+wm}*Ydl#mGm_;~cwokFi)fehkF#ba3Qnw0qKm$=;W&V%3%TX2%sz!z) zC`WFxCqvXBv%m>-z|T224F?5`fliw7GapJY0c+#H5EZutYJ1R&o-#<)uy+UwFkFD- z<;ymZ6Fo#sfPT4R{}h7&)9knb&%PCVPJ$WXKb8nPtq~%P2+uMCOfJk}pEZKpi14B% zhr_-IID;5zq{6_fX}u6lNSG7HmN~9abs1SenEHONIT@-5Gm^=W4Ou94j!$YbBnIi@ z=E(B!{6BmH-PT~Um`5*zJII&BX`4kS|)}~^v6*{o8 zMt~q^DG>xogr+I0!N0`Sb*{1e zT@kd_#OB|rtaQ9^b@m`S{>)6hfv>V=*PjJb-~TUHw%NH)C@)i2a8m1{_j{&XKd@T(_NdeQ2(FHSH`o&T^CN%Jii0g8!nPJY#+S(VoQG9~Wm0 zNd_wa|3-#EE|?RPP_F&S+=RW)2_-mXeazZ833OMD1{c2?>)I}1=w}?`Y|S9|Lyg%ApVVxHpC$6_@y%ACW-vn%3+X!9q{9?T#-igK-#K$n5KGysz(QFRXtgBiG)Nly?bQQr6E|0m?@}msL2$c zRP`vm0;&f?6_;jEJ%{UV%2k@z!lP{LOL!`X4CRM75n$c^X;<4n5m&ZZ2vS4NTBrRCvDXSNTKmqwtoh=uZt77W&5XVnw7dh>7XtgZv=z_HBv#*iA3c< zr43~#MsvzHG=xn^BK$iWl?jMJ3aCa44Rr$(bupvMvWKE}k%O92fUxTz3mvK05j+Nf zF~)=f#1F5K2E`IY*9g%Ykh>`f=^bI6Im-H9;5lRF%yE~=lFoOn^mD1z5wlizof=nV z&yTAJvKsoTWzMe70$IyVNqpX`m3}VO+GSSjWb`T4}?O|T;@yk7urNrR4utbzxM$rp;tSzR;PkZiR#mguy2pG+Ls{G9f@sc#J4&$Q4xOs2b5FI;1`(gLpSCiVX-+-=~G=s)OgMqHEMK0n!QZ zx1eEf?oQY(_~o5h0i6NFNUtkAfVp5pFnC@?urEU3l-NIL$|w>F*rv>4)FOh>7pA>W z87S>&zV%PIBV|*B!-*Q(LPBjCWF767M^0`q&T0vTOP2&aT8bbZZ(*J;@gM`Nr=;A; z069m+$mMnh@K6-un%UlD#sFwpTbWLo3hy{&ldQuP2%nz=uqJC0bR&@^+ZS;MH&z?q z`487{*S{J6-3a)th*dWm7?n=P;l5 z;DdwevtDOx^<=*$1H|}96bgVzqUSy^EhGwbq8MQj_mXLn63g*`C0pl^#aqrQ;Ybv( z2E3%5J_*^7k(`;H}ntx}=o zHv-Vq9T-a=j9ow9&#N3rGwIQ!2mRbNmSg(D}!XagVbK={T#JDPPAUrAx+U z+jET(;p0Qp;!IXyoCZh7k;dcnFzcHz;ZQo>fW1&lB%{(pFuUMd2tHq5$-Te^CJoPz zaGr!|*qEmI+=5kildVNNJR#y5#jHRXJp0=NqhuDg*h3=+Z=z!>dR?}W?X7-}N-sdO3K8v%%?@U!+3YRNiwa*}9!%WOUt=6h&O7?7d0DWS7 zdDT5mjaqr}HeXPhs-evlLWIlW-)_889uWv~DM2cOx6s1UZ3>-sA38Y`tO!R(A2tI% zPBHWJqtjsKlZ+XslSr{{ECxrC`6jSePgoh0KXZ$7l*rdQK(K81Q5%ajb7Qd`syQ*C zd5n$443Ie`eCy34gX9{K_5p^T(;X7cBabTL3IIw!jVr*agC^nlym(Jlr0YBt zx!9-C`HCE?n1p4CIhtY%43LCG3Iz*W2AP63g9j8v*&HBh4q{M@B9|E}(U6ak0Mvp6 zHh!YbCJKq&y_C$6Q&(3JX~$H;h)VZ!wsJJB27XNotXDLxHRWnrLc}#p_UY5S$SQ>e z3c=?3`p_qC=`bhLBZ~(i*^gh&QUuSQL+MvBUqX?vqIl%U9(1%5=;SmhS^XJ;*7Qfh zDswm&f@BgVn_SEQY{gfEX$EjB8I^x54pGj41l@Zn&jq8|zQ%Dm#zr3F)`U_j!qtR0 zl~@+3hJI2rFA6iyo*=H~8fFzH=wlgaelZE2OM1aP&~i8ex`_QE(u;(o9J&1h6Gcid zr3KUAsmQNRb~)s?&_{lC6#0!UkNhfJMr3(qEccaxle|dc`1nFu63_OvL#Pc+hk{QG z05hV+85qFfZ)(Rp8MQncJLb7IC`VZmnvYK6fn z1&a161&Yqfv9y1cp(iQRXuy2aR9#uFj<{5C&aJfNPoKIpC_6@h=c}~cf2Xv8XC6y` zXBY)$OHoV?E{vR-EQTocMsqac5wK-+Dj&VFqjQX}->F3jK|Ll6)Iw#-1sk;Wm13KA z52G|x^aw%{8a61)pf>O_l&)q5!aNO01cHX`+g(G{vx?{wD5%+~^@&xc2?EjaoSVDYS($YQna8U?id@i012{ z=BtcdRyARWqBf<|l5m9YaY9*9`lW|~IznCu>>4B$DU)ecK*-rZ%+NwUv>8Sj?j4us zNX&Q3Y9ae>BQ`ks0b4d^M~2qn(?V>gC<(NF7A4KU{qL8g+VpY-+qB^vN>XjAXi4+u z{rxsU8UcG1EotdFl*GAE#Y>t$|L?bnqPpU=cQ{Z3juah%vXWmPG86-Y_6#X)(dVJB z&}KM`^S$r@m(h6);?RP_=R(f;ZsFOkV3af;QB_!OiSU>&g2mzUl%*N7%ZDtp%RShv z>4`W^Y2PpcECQ^~K|HJKSV}ujyg|N|5Xc+OQ_hRQF;RaSgK!hBli`z|lxqJJYj&Nd z1{hxtvNoWrW>5A&TjbG1(~Soq-ka1GDtCSCO0R75$dMPI>HaVlfrezZf~m^Y^|2LN z=OXEOs^VIRksutOr<@;qs!YxUgQbxyubrJJDks}fKB5qnN~!rk8fToc{aNW()T(MA z;ITQ>s{GrZ5#-tVE#6!>LQ`Jo5lUDbPe|f(*|rVZDGC^>DP0>bj8}T(<*Dg z$_)JrV~(>(&LCjSDbtwH3OA-?L4~DenNq?kT*~~4my)gqqmr0**f7!JX#P`pqU>C| z5|T+7QFS~h>4;GXoUOwvIV9g$g4}9G1sAj|L8b+b7x&i{9WB=GIKA2lQNt5SO&gng zpA_NiZZ0^MtJ!Yw6(RFM2UZ@b$|P`6QoAb!e$EutA*g8Y7`PqhxxoVZrhs zR%X#()xvT7HrwzR*TOfmA2HQATmn4p!#_2HfmI4omD{yFM$_Cg*^M%?|LKx${?|&H z@voIM%U9C17=omx6m3d0{`Id6#*mz(9BbINkKSi$YdDImV7M1yRa@SuKN5W^k_g#v7vfCCIRO(^up zNz*iRV`&I=wBs1RaG>C+=YfJtJiBlc6pSDv#W;XA4OUEZp(&%7PWf`6T*<@f{@8{^ zAs1J;5eE5XiaX6%S@6&474@sC`$Z@%)=|Kk#awG1B#hFPFO_Z+FDn)aeT@cR_)^*Y z&Q@w*!D2hYr}g;^s4$Nzt&hJxSe!a?y2ifI}!^@~P$T;@*7C5_M zqy=}t&e1547UoYfda2gAhE$}hG2S%yH>dCDHGU;ob#%pYW_`|(^HRUcdNw(u>1WD$ z&ELzJT<;8Z-WQxR4eFvXL)c=13;tnG*2UpjB(Db_TbFZ>#jjZH@mEs>^>~i;g_Gr7QsDhi7H@1SCa)poI8%9LW z&YQs{t5{vSpfg~Y??brq=dxHN$|f&?WmP_)N&BrV0I1~ixo{^3`{^?d z#0|l$AuxmgoH2u)r_bP-GiFc{JYE88u=b1@EcM%z45s8;4FwLY6L2vim=kc3r$G~N zo9DvT_I);RanY~Sls~F}dXKMNljAR*g&t|@xd&p%T|yT_2ncL6u)KQA_evBLh#=}A z;EAplrMQZAIx+`yrBD?JAgSIjBk%)phNKcbwblj z#6W&%j%h@J1e%Ppi`)W>HTO?G4&q0tWq9UH73$5CmEAiBoi__3*RBWkPv18`L zUp7}$3;UB)BJmbpcQ}p(B&G%|JMt3L&$L4{X7(C1 zIbtUqPqeu`u>qCwEWBZZCIc`yO%;`9>9>|NB~b5?W(~q5O^mM`-^ANuGC(0~4>18M z$RQqFLcA(rJ}M-x#kQ7?}z3P`~wO74S#Tes-% z=qAtF)hGh5tUcv&#h$7YDL83LK^8P6_y!njCjIVtSY;T{^`}bJgsH?8*&Je)@f9$z znsV5b9Z}^Dk5j}gcl2Eb8=!%WRbU_Xlq+XN+o$OEnP}$pLeIq$WKg&+GfvQeU3Q!A z;Gya6mOz8-nE>HA-HCWqY=+pCFSBv|0f4xQ!zy5jfRmVI*NNg>z6huf__rqv9*epL zBcx}~$_<*QmFK`J5E-qC7*mc3u7-$K&QVBGBW3<}C%MQ~RoloFgT1F%w-neSqr3MrgLU*sJknY>_(vR|yJXnPVYLb2TW#@7%X@goyO7!I;vioTUMU z?AD8XEh&#c;1DizPG|z?y=`kS;6mJ8sAqb%5^%b^xGt3b;ryS9Ly$ot_-&wFA^2_J z96tDM;4B$!RikzWc!!5IGM(}{Q8i!AE=k6I_)Ms)O0XK)T89sudIms+Ic}hwB0rjChDS z&iyI`q(o(#an!05j`G;)D8(lIscL|7*e%tJGH3_Drv*#wF805*iaa-r(Ik+mRLO3C zh^lWr?tj3eEG%G*D2EIU4jHNtUwVF{+>)C4C0Gk!c4!)lWHaPnxcdVe6R8#m@=$rA z2r7%mJ>KJ-;Dhw>o{$L=8HvTRgnLhUExEZT0ZG+0&og(R_o{g|;U?;A71g48j^s!U z1~P*9Dyavkh1TG50Yve3_tQ3iRshFHL<~wZVuVDLv;HFSsEXX}aQT5JVRw&_K5*_5fNmeSn4mv$$-@96 z_|{*QXKfZ>trfV_3cPLwZWRPz8Tw}6&yH^JXZMUX-g29(p5Vf>-)B!dgbu7<%?66{ zCt7E70cRLvK(sZp6*gBTq~}=D`m8;a|^twX=77IXM6RuymW7iv3WV(7WoCKxv3LcG%qMFEGo`#QIwaLjX0UPg)It; z7&T^6QtOee<70|*vvTt$=Eh`a<`z$i8IxPwB0F<*3#Q_|upmvIYaQqv0Z z3Y!-cYMRzqb8DHnSH@Kv7rI7%yxVbEVaFL@XVCkQAUHG#4hw?AgWyVl3yTVh(~9)& zg?YJsQj5mw6EpFzrS8r4<^X+#T0AzHTx_Icde$KVS8i&Kx1c!NYoza+TIB7KnUe{G zm&rmal8q{wmYI$$Gcz*11=);hB<+-1lv*~;Q%F-Eq@UWyNVEVB(h->7@#;s<_;^%y0;c0Ju8fo~iksv@~yFVcWL3-bqCxC!}T< zgVIy8vw^PB-V9V*mls*yApE2Od3h}gykj!a8Iy&E$AAEeM>kK)%ZZ8erlqxR*``hU z=r-Q8q?WB(pfA$BF>%dfo5v9X>0>ZSX@ZM}4!1TG^;wL{*2H~2VE$6|PML-1z{z@M zPQD_n)S}G1T)n_sR9ujYN~Y$jF^i$xX(r)OqlfM?|vA?w^R zMPmz>B5gd<{@ZlD2j!Bk8{;BAI2QRMziNOhGZ+1ynXXIkx7C~JX20p0mL1|2y1gEE z(s)j0VIlCWW8`P214H*1?^oc?{LH*mlXY!fQ2O-Ze4q#%#>@d}b|VhQf|-ZGrBR=P z%v7KceWDkQ1uFGaQh%QLf;{=Sk+yQETdM;YQGK;H-zDK4`z{dgXE|Q-3-TsSj+vNR zm=l8`(_9UiqJmWLJ`!DjlraotBmfD-u?Zio1plSL9jar-V~I6 zeGt4M2tE)5JA?9D8}xo(5PUocUKa%K4}wV~R(v!Lf_DeSKN1A%LGkwly+0ZRHw=nj zCkSp31Q!LR&kus@2Ei8w!BIgld8f6#Era0ZLGZvJxNi_lo@~u;v;oIf`rqNtd8n(E zKVOD6@Q1Dteq>0yQGLCI#o0w|+ZN|eEJ)37++>svIRo)Bs&hfXD8;QbrZwehBRrGG znQ#+4UyiGW5!MuU#wVsA8nk8x%x9({pJ#mX3c~E07Pw+@#o=P#wKDGUxF_IhjVlpX z60SD5V6xKM;cAbo1FkD@U5P6hmj_o0u8z1m;p&X53$8wS6RF$Aq)hfR8Knfobj-^w zD#*)@@j%8+jOh(&m6>~ax$k;TM+!NXX>OF&lqp3*0E^d!3ekL zg1;Mg9C{*hqCW1@FSs{AT}?PC2<{KK7T)8~0l^&=3aHQ`k2fHUdM0sr39hy|QrF&n z`giNyt6$rE=&GJ#)V?6|IuWP?a#Ib^o6dA*`oVbS`071+oZcW(m1Djm@2!VxQcMAa z3lw}PrITV(^YdeoQ4uN*qD+8P^CykT$jpZRI}WP! z$Rdb(UVS_F>(jeer*6HjLOFM$d~4lqMc75S%=*j;g69I(aWQQ}T%@nAxVqu$j_Yb% zJ#h8J)eBc|Tzzm|gNr<%AFlqm2H+x(7=(-X7=nvDf$blTYXmN)zZTa>TueU-S1K;@ ziZop5xV*SBaE-w=7FQ;&akw}xvvK9%%Egt3D<9W*Tm`r&bIBu%aZSKA5!WPK)cj5T z-Z~~H;~n*V%LGBY4q^O}t{k|mF!5rA$?L4}^+B-RfZez=?G#)_S!MKg%T!2fUq$Kd z%-bCQ?9ZTijX9U%v_+eW_bh`K+r>GPHEbHfjIzyiz4CIsmU?Ibc}z$AzQ}|5^q-vX z%}*^rF(A7_Q}glH#!s4sjEFfGYz&8(DM%;+ynwBc40cW|3czS?KNW zP0i_pe$9hLL#zzoQ6mNU-hvkFS`!d{`H7n*KP7K?C%@x8vYP5^H|`ue7Q!mX&&kQm zP0K6JEyBbQ?{30n)@4QzJTnL`34)nERWJ08FZSl9fl=HH*p!L0@H`vWEx2yQMVP#f z{B14j#ozzJ9PwAwmAuZJBi<%8_v;`*^BBvlLeomBt2xm;++9d#O-p_hI2z7!o-sPL z&rozg{(I<#SK^ULLeZH)_2CS@{56lI`^yQhI0!o4SW3o@V+>J!I$b7>z+E6#@Ugqe9>agj8z znAQiw^x#i_C(`P;tTanLaXT(k4$i~#d?U={A$J793xZ(sjD9f1G9NQd37#nct$DNj zQ`a3LYcwjIm!Wz@I!O8}5cTJ8NNH7TsWJ5e>P1=CP1!ej2@;KGY8 z)}x{?X?SVrWsMp)xx8t!(wOEgVi^O5yZD6GrKO2UZQ8bLUs~GXiYryZ|GocGb2LUZ zrGwFc0Q~r|1H7mRR_qwaA#Q+||2+(pYBsa=zHYQoM?mZA)mQEF(?($H;}iZT+wX6# zQT@oER{PtlA_TX(3eMm8Ji8=pU^wz49#EU;5wP{!R7W+NOHA>f)+{ zt2Qpk8_zc{Y|vaU)INMAga>{NljWujQTOC|>OT8*bsu+B?jg}%fUVQ>&3ClaG!tCru84<9)H zmhPT8D1JgmZELSFIU84Y)H>WTYX9IbIwsG3cG87U)$G*g(3cBC*kX@)w$s`NKAzlh()XS2us3dY`5e7-f}`d0M^^XmY@cy*|M-t@>3l==i(7o# zXhY|ykG}b9U)+(--_KpzX2=yyx-?u9KKsyZBfHej4SDw2b$51I{AQQvuO8jn#W7{~ z_xJBS+2zKbTMANBT3z*(K6%HV)yG~{KXXvWb+sS7>gk7SUH<;|_pZ9I`{E$i35CH^&{plj;VeVZoz_Gs71TkHJ(;eYmY?J;%7kj;mxb$f7l$HUKO zb?LUbRsVyJgih%;eCgU}8qIjRTjAD+md1Vkb+>tK-wL00ZT;@|rB8dKO8slPZ#ePU zg!fWsc8{HUSBPg zcl5X;HDgw0furYde_r{Wqjyrzf}``k+B7=1=T*nrRC(#dvYvIX+xl*kmp|&c#I#^u2KR z3*PURz2CQCug0%FJSV*0>eOGJocrVz{UWCh`muIQVZYwPS05O0bVa|kXLgS+{{6Fl z7v*mmQR&6%{V(m&=Gi%8uj=1?$*g5hrcCWW_4S39uI~1q{=<*_nOkSiH~kC8ueA>o} zZrau%dDy_W-R~{AEc}jvCl_wMDz^I@13R=`H)Q?dzXoPBykOmL55*2D`LXt8g>R(~ z+IQfALsd`QJ816Hul?5Kik*WFjc8T4wx@G&R)RJ^Dz(kvH&V1CnJ?rGeyK@G(wFZ) zJoxhXrJFz5x_fYfr|YC@$Epn3*f{2g?}v9B@^it_M=p(@G-UO>2~}Hoo*c5R?h~0W zANX>}l}l@EI=HO%(B50?{DW7^?>N@?d;luh?|GwVdw}wwHy!yTTx3v+2`g|VR^JM&poc(uo-Pd8< zh)qw9h*_1fbVPBzXOjk%>>5!$^~=zlrIoH-Ii+XAPR`_OKm2r5%z%)hYqwQ@VbT+! zk6$}|(6_Y)blrRHQ+M}io^aa*BZsZuKl#S|t|JS67*Xfpxzk2AdZz86uWLUu^5>D2 zvi5%V?Z_XWf4lRb4=x;ar0gh(any>0L3!|fP+dX_ImebO_reQR`{oIY^h`ivoW zKb77(vh}_{Uj8b*;2umya%@&anHEwChvhi<7#^AuJfi&nl|*6 zi+}QVaLqgV;rr1Uk=y_C+_u?+GUnYda)0T#+cN%K^U_ayN57Vl^uW097ajXOD6`DJ*Ag0wtPqfRu zcg*pUsI!;pXN53y8fqyU%K-qEY7;TZT-%93vUX2HhlDT zc^#@Z9N&5Bn!Ihba^AUn@&3H&!?%{Kf4y%0jy6+w4ye~BzvJx1oqo_~+ z>$Q`AjPLjJlKTrz#uV)Oz2ie+uZ}Lb<;cQY-ppN8urltiAFl8IPJwIWl)~G3*$dy9 zFl=Y+m#qtL=wIM``M&JJokd%spWF9Pp|kJgm0u11u<+(b2i@J^kgKT1*55xHU+gKW zb6wGZ?e7&AJ$TQ%-`{Z6%A&N=*IGUu`9)FtR|}_q*1Kl0>#06_cRk#_cudX$m-o?< z;tk;wd!5{|w)p3_YJ7RZ@qO`!Cwr`(mZDFXd&Sbh7xn8up+&E)KYcysmI*JVUN>&< z##blQoH}<|(~p0hFm!Q?ITLm?o|u2rv6%jjkrOX#`SRi#qwk!!X4=8m?`^wv;_wH* zjZf}&a^jz_xudrJ*mBakU;8&{`}mkikHkLl%+)77jkbLQ9AT|4BDsLtQiyZ+NfZ4-Xj(dYX2I^1Ia z#xe8yF1IzkX>X?&ukVp`>}gll;p<0+UiaYknGL7>KC4cblodm!{MCO))-B=lrzBne z`sS4po2G0zQn+qlxP9uH zKkjXFqJd-D;$m%f`~8X29CvC@T>V+jv@eGxcklhgvT2_b>}>E=|Bt54pXc0P|MJSy zU;OyS+-usVOm8y(lDEFzI$?UNqE+oLzJAs8rCWcP`RleXrr!fa%AEP%i|6}r-H$8K z9C3avLFIWSExjzzgX3I0TJ%QBqopVAwCWDQ9mejz<6w0zdyKM6!j$`i3BMi$J7F)Td&Iv|H#iAkF)f$t zW0RV>Wm$R*?6oyez7>wLz=c8Y3G@9@T>OC_h)Y9RW?JaY&S;)lI1)a@1tUjeQ7t{S zU~=PJ@5GUCYish4w^#Wbo86&}jR~aV0&iMzK_PuEWd+ga*5LQI#M*B&lXPz( z+-bdZRD;v=7}(XZ$PAy%0(7_;l$Vo}nhiTW77J3-8L6-sPS<1Tq=y9(eK~$iRnmVdX&MH$<^~lkAwefIj_)jSanK;XJ{tSj%H^U=j7^eYsxEV+)M)LhN*(v z>X2d^Te!7Q(CZf5xlFSIcP`O?j63Pr#6}U^2!cE~wd07x<+g}ewOkn(H@7%DJ79HF zYm9goB7R3KpXKFf+Cz9Ym7ryK?q@6v_r&|IaCGe<>mL0wuTx&*oxBj}nQ$n*&g;pY z+$*oBUvYkZUIE;IyQ#I6{;6X+W2u^y7LfPD$lHk05mai%F@jRy({Ba^)@ivv-GHKu zBwr+Jy&qv5__A2T9`&cw3sGCWt=tL~jb~&Qk@{2hVtLnCRu7xR$GOEVz=L}<(x>50 z{8Pw+h>J|uRK0Cmt;C3X8}868OxF;@w*!0#;p`XeSisQm1#9b!bl^AaPT!lI2(OCx z)^ZLYj7l7xJ&xm<{gjiMuZ6c%N}aigUjs1d#>^8$i>(4MJtCZS=$$YA(L&_y5ym`? za^QasS0sdy-neWEFWiDutoNlGVQK*A+9bdb5t@(1z;Smr!nj0!C+@@(mMqmOr3`X? z)N+JVDx2@Qe#TZKBjiMb#J%^x-X1MC&vcl{ilbIK{Y8hwljNs5QY44_Zx47n*?_^ci ze2Mf+@t!~4>B19`35a zK``Cbtm(O&ZG}l!R(N9&{9O?IIbhO+Ss%Ki*SEl~AegQp*8F=1!DE8pJA&YqLGa5# zFkNA+`Tr3FR|X@tzONSqHwuEU4uS^!b6ayG-<^|Ks&Z z^JZs*EzL-Bi`#0hL%GA4^~fnEqWtwS<6UILdlmTP4`iWjz-5Iu0zMo5z_ezcHo|jY z+s{&Nl*jYvj4F;qq^#Day<8=8nt^!v6WFK{_^jr52@O^No@P_O@jPXL;`#{JZd@PZ^0%9l4{nmnOgHP5iTA9R3DYH)a2m)IUY1Z*;E6fXNax?PMlU5_ znnJ{<{%h*V1$lWzW)c+Ti#GvrD6h=2?!>dDtg%H!`DU`9lKg3ABMr+k^O%EY=6Q;; zvHKxiH@9G+6-tfED=0M6KaRAlgBhoz!VtZSxp~6c6knOtgGpCrnSQML>qUNL#Vh;O z3bXI5F#E|0e;EY-5Ck6yf=>j&p%}2%{Hg}Q+}2}#9~A^s?pWU^1;L&mxO)&xmqcs& zR0B3~W{yC!AF}bj9@=2SQ-ab@3WAFa_`lJPcA!Hb&p#U;`3Z1f)uGNmj||k4mS3Ut zq}t&3?NPP~*9V+zfg1p(9$>z|7;qa4tOMqlFyCJSxS9oSXu#d*;ti+nF0iE(7kE3S z7WT|6%pu3@oReQPIVCmSQ!u8O+pjSZ?m|mQ@2s@c+}u3O{$-o5o~rjBOBt&7$OB^a zenoi&sbe_lZJ~~RHZ*QcyANrt@E3r|`@X^z z*kk8II%nr$r-w-9rNI3#ltJB_ePgY|e!#rG##PqVS@EsV4O7&@(KWc!J}?4z41>S5 za5M>NKHC+C-n%UeiWi*j>OZev`;Q{yI@_AT!GvF{Jy`VQCkxcYgEdI*BWE~ny| z`X1#MZ9a!_H^Y9$^Dnr5#l>*`m?veMNl(ho61=5RA4LVk*wUzW@JX4L8K+^<#kMqW z9`{1)d4+15eO|s78%Ssk7I*oA;(S=zCKllI2K_p3L0(a24)y}UC)|`&>DZ`cJ}Xyv z-?k%vRul7zvAcUT20s+bA{@n_n+mpf5-gX6qYJ2U>iL=Z;9ThiIIaNOvcb|OfDLk@ zVg|wrfK6e11*IZa&H^wVSm9L68c^{JWBt_WKjxBM>gEpU9c14GVOn{*% zGXp!g#?n*{BauEfFE2~aD9Fo!oRAPyehl7IVpz)ey&|VRjJzq^#^EB3oA5)ZbX5zy z%z*zy7+Xyo{DtcnE-PM+113F(<6<1@W+!o3!%6{rX}&g$#(ZbuoXE1mHoyaXXG3(( z%jivl7D=k8cMz#}D2TT|iMMxgQ8#5c<{m@iu^TsW3?h}LkVrjh8roTiGewBA4`|Z^ z+U%8A>pl*#UlGNinF5l1(S+clu4@es11#s#q_s#(j7>_+@W#fb zw;Y|?Caz6-MqGMQT&uL$_}J8h^!P+?e5=v18Qw%$LC5x6VSyPrMZUG9Jy*G9%kfy` zc>(%}1DZ08TSv+YqpJazgm7+$h)K>C$^L4o)WM_gqngqSFwnP1&zw9`EZ~Bp1>Mw^>K@3K+4Q$^{C^ri@)oI6U9pIM(jP6Y*U)wGi=uTuM{l#c=xOpHLGv#^LbW&ZucEkci;6v z?)d*)wkBiq>V~arUO4pql=fBnm!@qf9I&nSp+CL9G+sa8k1cyj_WYQ8Wc#5#Bmd|Z zV$!0oS2D7TTBdvD1R2-}#!POJ4h=kyOU-3_B)xeKPb9fQkJYpuSF0^&KM&qtY=MUYww9L;xHaDI?Od;eV@JJj zHXhqXQK!AN`Mxc+Pv)=Ob8MHuz4xqt<@nPROMgGMN8rd0vpk3H82C!H3@yr%NVAFaG}e<4%fF zEvMh4Y{gc+`P2@iFkp(UUhlxdm`cwC7ft4@a_Lexcu0d zr2q6e(MjNTS8jf9@2;&gvQG36_{DeLuh*#4XK&0r(O=-Z-@Npt?Mt%mTzX=-z%w2h zJ+)!>s!v}$kuLD>pNym7ylVROJ2!uM<-IjZw+S5DuIc5Q+{5=bFWn{Z`wI#) z?`_!diEgEP1g`RycGEA<&N`7+x?kWQ>Q!5i9{%YFXwOcsyBX^wAvv&S<_}z zT6lC)n=5a)NMtrvx@v~KdHwc980z-_13vb-p|*(EJspcrte)@@AmL5 zH|>^fuyDn@aD2+27mnEUiyS$DgDAeO|7f$!o(n45C|4k9Z_BTj{*&#KMz(B$yH7lH z-@Om#EK9MG58)84tf_0SpH%6W;kGFPPptFVxS-f!O{@ZHaRHN4-uA3ye-eZRo%JFQs$ z@s#_I?X({h*xhOQiXJ^Cy!3^Znf(ZM|*)Eum9EB1)tV^@Ha;% zfj^$O_r=^-@BX2xvxmUJdQ2IKIR=Lu6pK=$mGpIs+vOD0iKjHsErlE@gC6UCBe}jg8~<_U-l7aS({U@}CUKF9I#4g^xe_n!$X>{o?7F z6W~OI?cy?<#yhkAl@Xtk%Y@l8jV-Wwa97#-MNw2jMze^?6whXJ3ekIlmo)BC&SKn;#S7cLWCgl9@n6TTPEEYF0O z1igPK=>5f~Y%|a_EOrExr_qgK8~O6njrg(6o5wV@l*2;}Xu-|Q&FGcdt1Jcs^pl*_ zNzhe%dANg9JB|FSqyGHyb^-pWDLpcVmsq1l&2(*`(&%ltLvfdbrp!EQ81KxxnghY;L!TJ& zUxcp$jS8GVVP>R{#w)@qB0?~eK_0kieQ@WjiS>!Z-HD5|T@zO=TsnW(M>LCQhMPWB zpV~O0akC~7!x*1&dDX`A2rEHx3W^C3ImENbpR=+4%okVeBsdGk#kP!Xg-L8eZ0lG| zabw%W#m2?OwTx>O7ax}p*E%jSE-9`}%h;B2EnBv1)iSXRa~o< zty;B;Zo$q8iE)W76I&(5CnhAePE1TpN^Fx9n-rJS zGO1Nkd{RPE>!ie_q@*@&P{lSVz74W&gJf+Gq;O{9fGbjUan-{Wj0$s1Z5X6*(F2J% zW=wb>;D#3XK`@1jh^uq_VeP=1ffH!F)(Xjyl`V3-IcZ~QO1@^WI{2$E$|EmQBti?K z&k>V00(H_QgFsU_+)|%{bo8RS5%*}^C0m2QVDu^|DkLQf<-wLIfVLKKNege`&hZye zEjT1woPMzby!U$AE+DqWbK# zI|KfOmpBZ5E!4wS_S60xK|d#dnullOySCLX8ltdn`gfbK>ECU_rhoUa=FOXr5XV1* z7Qin8cnhgu6f6Nlm3?#@?(9|51~D2((&p;zJBU|uV?H!d22zp;&6!Ah9BHZ`O~f$e z!&n7(@=7xgaxGeWQ^nC(@ih2kx6|pRNr$pRN@=~Zm~W6jYh>0Z8F`UnGH|C2GZ%MK zs+qU7r)e(7AP6+%VonTG7*^dZ)?7@?7b73qk$#4>phT?$P7dPK3Udlyd$usQ(0rc* zc6|xLtuRNs3EzzObu92Qz#Rdb+`X2OFM>3k|L{YR@-y#9B4v}(`7^^=AM@GTPQ&3E z2WMl|fEIf+dd6@i0cam;fXjqA>ZsXhHb+QEXs9DBG(5agwTK3;x{)<1yQ@^L>U2A* zSHGZAEnDr7I`+DbdSMOh7uqhar8}BBn%QGq&26!cID1Rm3j5>sC!8z8|FRzoIpI9% zD6O=5(&Ra}EsGsAc+TAU4KDnwO4X}-96R2;#g)THjC}UX8Mobj$AZV7e(|L@Hoy7S z=lj1d)tuF;H;Ic+Y}>9wx9%fm+>V!PUwmovTibW+|5|fat|D*Sw(H!bTlZ_zy)*8( z|A9BR@2Fg@N#|~Z(!ICc@i-#C@#fzBUmvbqt#h|@Z^?}RtbgUz4?a5l^G!47EPwQs zSKrvOea9!CcD?82cQ$X|(XChSK|`(`dCTqdo__B6S2u3n@=>)~wTBJ={g0ESC6#l= zf4;X$)r)iU8eBMX>a-`HdTIS%wQ657@cPcsYB#K^QnE6kv8!aCqi(p(*}@s`40G7R zLc^*>^r>1sY(SX9*&w2lBis?@u!99eIzt?;P+OInA#EMi!a_sbVS~c#VKpoFadvdX zIBd>pp;aT>IxoC*q@Lp(cWKGikQ>)H>V@8T!Z9SQrmJ?P8j&?3$Aw0O)(agH)-eCHFMSrbva5_;Z@X?J)AL)qVV>Ps*d(yN#RXHZY-@DkTs#-GF zdE=tGu9~wKhO`K27iO}>z3Oe^pPK_uUGGM@9^iIuiqdnJi=9@ zcI!56AA5ZF$CVQ2-|<*jM7t|8GUqMG8~M|rp`-7+zft1>4=jD?;pHnHTm9ntO`)#H znisacvhy{MuGsd@(y+SqqA$JT$~QJU^-C_jtZ}QPwq3jT=+ke&K+@Q#G;c;$;iRe4 zZ(aVxQ~$56V~dTdh|W1Pb7$^j9|hX7-R`=@3fpbF-9p(%L8t|5EH{c^%74#l z6pbROJ6!P3lyi2Cqy6&*zE9hk8ri_361wuDSGEa9*{UnCLU?wTcgi{?JTjdZL*3uKr}|HV?gM?3z-y~{Sa zjulv3P)@c*g#9aPM|XHVw$r^S+M{>G3T4&p#Q5edIUdxGMNs8z#QzXND+AMS?4NY~ zPhYrvvhDQssm-$=O%+s1U~#$A?Ih*mskuF4y`rG1x=dG}`$M1nDrLWYtNc(quM)ca z((~de8Q``GpDp^oJ4f_*ZMT16iMQL1_|KI$^HYz9s!t6x`(L*5I)UZGof1wl|Ldl0 z!Vx%KwQ<{{{wHfK5JNKBf#qO}81;5J{-t~@&?0Oa(w2W=`WqeK0e;kbLeV25^2C2q zFY7Ds^r|_R%8n>y^MGpdKYzqIY5kuXzN3zZjdRval9^iyS8PV_9o>7kyqn6#w%#q9 zS=u@}?ni1o4W)yW+@LbwW~@lKA_Vh283SVv9$XuZPmt$}_HRCTXOsfY(#&mbf*ec_ zL{Y!(h_1W~zkl{0B_bvinDJ>>R!H}pE99R!I66Fec=+f<#i3$8r~2=#x$-`PjM=nE zuvcV}J-K*>EvlV~dx`n@FD;4YRA#1m;$pD{-<@xX|2f~v{+?O=)<5&B|ALV$IJ4Qt zz)0@>;6lD_X+t4XKhphce0J;2LnD3t6SIA9UT)|gyS~uRzHJy_^9zHSg^?XU-I(2Z z?T3Y(36>tZ2_FwptW(7(br&H0pvTQrhha>ig$Uwdh)4Ihowf~21=yrvWHUb&f<%tM zg(lUg9I|_zrn1lk;9wmf7Dy2ZBy|jNwj6{^)q0Vk zvV^4VQQkiS;FPA&u)#Yu;&~1MP=*}G&pJUexZ1$@%TP=(>mV`#P67vzW)#GG1SOoq zxlok9&i8=(OW<}gLdBrG@JHOV-&QY7gO z+B<}w;p^@kWJ7u0PPjJlMhSWyCGqXB>8XZcZUkt-3~*gtktRS51QnN8wP`}FktFqw zfdc%I__63eibL95Ib@_jcgHw&qhvPVZ`9W`2H*_Q5|D6`R;70=P&P7C26r6|DIG9?_+G`#Z6-yjYM4QY@N<}$@U361Y zX<1qhXues_Fav|9||PyZ0LQ+Vk3Luf5N4 z*{X==R)(c1xeMknMN!x{EO`p|`Iv8t%O?W>$`pnN@anYB81sj+*Hf4)Z|6;7U$J8$y5+?j<76y`t9E&}sF{x*I+E*-yPT^fGpx?c8Gx*l`| zaW@ZEg4~K5vEWd5A`5oA67b^&%EjDn(A`0-4OgOgRJ@{aDjrAR<~+0==SmQ8A)JRR ztz4Y9Ricy-a3~$?1m5>m3>-Jo6ad$|FF9b3;V(yUeFcuQRTp%dH zD25U(Q!55{f?sImtgt z8)iy_sAxkTiX9Z>3yM^f$lxG%2*V$hlyeUcg?tul|G5<~x$x(4wFZ|OL>WOk_qaVg zD1=jY1-npAJm5l+LrD@E34|~(w<31@QI?A0p;96qhFBMaKqN48w_8;`5fMR%2L(k$ zxOlJ!C7Z{V@}>Un!D$iqyMpKB&YoQ`O?i#`CkMy*cDvdeU0*PF^0b1vMR_+DO`cYm zms^yle8wYf()5D4c}gRXuo1HhZcx7Dt!#LD-t0W2`HDx|s6}%oFDS|_EK+u|);1D( z%$Rw@!oob|83ys4Xw)I=qM6fXDK#v{=9|ATZ(-hK6lD4>%8UNQkoctMS*%T+UU1Xg z1x29FnLItWC|7yde`!c(w#R>4NE~~_zb2#;d&&P|NJ9KB*49o_m2544nm2hG zTGr-MKIUP+xR|0d&mDZHYrSi=>lFW!m%IMp_qukvegf`aeD06z4Ig5U@$dO2*SCCw zYqRS~*9m@y>m;y0^MCVId^P`&Kh6BEFB#$9X0NjAzUBAvm-uEjd#h^&e-YScTwk$A zk#Z$}hdsnUW54t5{2u<8tIYKQ+vU2K|HhW{ZLWQMhIS|4$bV+f@SXfA*H7$ezQyIc zi$BhPVbAhi{Ga@qyZICRSN0s=&5yGkyp(U^Cs;MF;(PgnyaqX)D~FfaeW+atKM3CM z*c|-`N^ei7MZ3C+KhRH-Y~d)Hk_LxYoK>x{mNB{sNz0j8@p`dX>-ngY9%Z z$$vnz4A|-VFF(e=<6B)Xu#bU$#`UOcyK5_}V;k9W_AmAx+rcW?n~dsO!5(7|ux+lB zjO4tA&hHqqfwm`y8*8{FUc>`MdIs$&>m;T9~b}eNe@lW_k{wcrh zKDNWPg&#%!54w)?b&}_9*D3ZU|1T4+Wv+U5Nzpy1&u_dDMS9vb{%&>$U$DaUkgJ$K z;<}54pV|}hpsUjVa(EAZV6XqD@JYOGpMRvMmV(HLYkA#%|E!4T33{n@d;gHgq>ux9 z_bEDfb0gnwUAJ$alJ8|a+xSQ5i=ujxq?@8@A`XHx->Yz+Uc1-dp+gc!FtydS6x6iJ zjIP_iPf6#>*hrVAL^7nkUu{nr#ih?e<$5Zyh3D4MGuS9Bz4-TFzR7Jcj*oM@e76(U8^f-Z4q>-GEnX>GEGH&RMP zFD_m@KP5yb2nEegQAk!3Ao&AS3eyw~&*%iA95(n;T*FbFBm4d9+N7sCN(a`USt(p^ zH5M5WUYGJvwy)cCiJ;cdIEiW4?@x>w>MMR(=9&UFq;!u>7>;Cw)ZF0m=p~5ir;;hf z5lTx~{e&&{7~w()S5F;Atwq3L0_seFLYvY=K!ZtX*z0rf9V1esNuto^J3+t^lR}}* zR$K$%xJjYVW-BGiNs~gM%~nQ~68xZ~J{ht3Du}egAj#0;)61Qd^#l-x>RRapHWNS? zqHJ^mI|v{QQMOuukDzLT2t~kdCs0EGVTiKF2^=7RFhr?!0*4473{eg`fqDW6LzKe= z)cH)P&Pi$_puwb2s1unI9V4L81SquGP7rX!q)=$H6=U}5$4v@_He2bweLnP&Nuto^ zE2Bgu_@P`WwAm^MSYc8qwAt1ZP;OEvwAnTjP-#*qwAp++2-;|pD75*i3D{~D74uQ5U|IjP-wFqBB0i!P-w6vQcu|P>Y$SeO5$jHFFy&T65At{nCz*q=&kbg zo9Cx6{pNgXpn4*Le|l_I`;!zeE-q#uL@%lPqciH+yb7O%!mjx;sMNU0$Fz2nl@ zRR1+`%S=7XoqG0IoYb=&jn$XaHhRz5UnYpZ8Xe}m}#B1Fnn8tK9Uq6nN0Q+-N ziedeE=o$4wrf#} zTXz*nrG}*^U~w=SCrD?STTh-}l;WOGiPCu}H2@Zwp2-1=Mt<^ucGOUY>ZXp9J&hlK zb#fQB!T)*kP@fh|nwfc9L5k+mnfez`X@w=gqlMDy<3`X5DYZ}?%^RwPsfT$=__mzj zB`NK4w9-vTthL*e!VrK%W9l}hh0@yMq98OSIG?b(FJJwD$7|TpXuEQQ~q=v5ApkkZ#Z-9JF|Y=07ZDoa~t3 z4bxkhe61XONd}+h(S!Y3=Q96+)Py9L9_>Z_kXy9m43fFEmz=KqJ0&oeKe1E7K$jk4 zvc)*qjEr4+Ta(t-K}#@1_~%I(D>@|vxsY*$%y@8G!a%OanMI6q6w%0->+vQn-a(6% z61l%DErD_WRw*ON~+zo4ab=AhG-ZZv%K7uO%b9( zlz#H=8b$qe_*Y`e)+T<1fW;gntu$BmJ** z?cj?-PX&*S3`UoQBO#4aqsxq%wE{V0Y-ETehd9X8_md){F%d#wa7L&e9d?nv=Pnek z35C-c5+1Z64yeI~T!4-k&~&iUU^!_Mg8;3dI!ZCYfGTY$1khFsLe`A34)JKgveNpB zQnP6!s6`lvZU+AKl$xvFJC;;bb5rOOO^)NCh%9h}0eaof$FHLLp8n z1^u9vSZWMN+hZa0DH3HMNSc1&-Wo;kp`SpYR>Gc@nsb#45ko;)xlumc|3;4?nf0hn zKdwSc2KD0^2zK8?h;-=JP(2;Xt%eY*&}I_(Hun$Ae1K*8-_0BnT}_xKs%C2p*eEsA z@68$j+SOUTSgC(y)@uF%_iH_GYWF(#wng92`mmWgL0`|Hb^U6uw*LJ+2ey5k$Dffp zj=#?RQ+mbaKtp40h3d*UP)B_e&fA zR4h>SSfaSBr{+%QrPzoRhXP%U0p>2$T2mu}GtNZ0)N#9N`fcVRQu;S+SHZxpoa(af zf|ofP=bt=uuCM%FnK3%dQ4B!gR-xn|wjtTIku7L8L^R!pHf9OXbuKK*7N1OILsDXp zL37hA@lUugp3U*kzHoHz#?y;K>|nOrh{ml2Nm>KiPLDU5kUB*(Wt$VwhNu+#{IS^! znDDR2&J5mt2gYho|Gw;T>@vTqYcBOa%s)hr2Xv(Y?YdK+%-RZ$jbfaxW|$=oytPj394F1XNK7#{QsT@yP44VOjXSYnYey_HQ1Rb7_5L zjRLzYXghWKpU_ORqBe3?k z(;?$nrGLmpYnj+pchOahZS(gS@hGeCzdd3+e!U~FiW2u*|B{ERVIdX0H$_2 z)EQ-{R``#OYzw}ii#vK`bx8%P*}HmQdS-S^q5ey;g|WN#w6#+)Y2e?4QN-1ut+Se!|36Wisn%>v3Q}ELWZNG3aP8m zM;?uPL;U)<82_>{Yr6`m)z+zBh^>2 zj(AZA_i!zAc%kgxS|uN7%BI~WDpnB2i9T*Sn)2AVDfpc@J^>@{Oj+JBe%oMV*Pk;V|QLWG{GIMw=(8G`VU!Ks7z3)FdVKFJ@ITLS6g67qNbMCEp;A^+>JIAVyP`jBc*04X6P&%A{r^rmMYhVr1Dg>s0)}| zQ?y9h?F8$Gg7Z@qGDW1wzQ|p&+3g}BJNGjx&Hws8n;9E=q5=vnM7`I~^2hW#1z-fm zEYm3l^j1Ec)Ks_}w@l6*J$n|$#$6A99)x7R{3QMt_dlGU6yt}Tn2seHKNqJ!OBUs; ztNm}~U(|jB1LzqU8H&lMNMS)3iJAVcvlg+f{tdIHbVEL)J`hdU_HdOf zVG?h6z`v=`%l!V=3dh3^OP}8v&9IS9I+nuEF*$T}q-dvU;MuL*<-8Xg%=Dmo$@WWrw5 z4;`!TUITgEjP}uw5wHU}s2^h9oQW-(+EG7Dd?)UgeEv5U;GD}TrED#z2W=_n7qt@h zu};lN5ln#qOhmAUHuC1kNl`E{(2qg=`9&xLOl8!<7^p$2A3Ym55t#o_ezL!$NDHkn z2J!~~)}l@=3uP4fKC@~@R?=!WGH7lGOhL)pw5quoP=vsyYRRJ?^P|rF&1T$4tx+C~ zU$mpY^xm$l>#kk*p5hsY_5mf;Rfy(+aZJt-=-b0KItWnle#zwjWaZBZ$7~9Ama~w+ zLH}V@UV>AgMK`7S=ib*oxTXfOdij^%_a5Ky>aM9}u?%bCZL1gK_r&VUqShlTJxi~7 z8C;kN*W5o|%Y+^Yr`Zs$DVPl|%!ZV3QdD}3F&kdL|H9p7ybqJUy9&!zH5np3**(x{oU5w#A}xOH?CR0_b=ZSxAtw9uSQ^ri_EloDxY75A|&a@5y&E7 zbiNI*@fx!XdLvl%?s~aZMD%gAeuN;H+M6GIng7WAbJoR1)Rd5GISb1q5UbY>38@D{ zeUJNZc-+swX8x0pHwJ&ryh=obf5)bH*p+Nk4t_7%Gz`C`GX8J*8?~A66XkEY{Qb}7 zo@|0Y?8$nP^Tm@(D46z?FGPw9_4wC474LU#=}zcgTe^dF%9fb~{CmqcMwX%e)lcU5 zPi~Dez+ej`rm5RLkKZOI6?yI$ofkn9$~~Z>uJK>Lz5U?hRp@8A>bbBRZidLg)(pAf zY)e%%S~+QzGYS5%w;pj-oT%|{d23=a9E{|1L^4woz%7@b5)8uv`%M@J35O1Z9pEXg zwP^JK-*x0r3WJhu^-dLUVEzN|JnWzqy!#D{D*g<^Fi~IexiNfayf=|IR{NiSuU|-Q zHBe2=|I2&RsE*gXzm$Sc-!;|55FPYzdriM6;g;B`V3>j(GD#j7n-t}2KSKz3Nl)ZwQMoP|H>ER zsH&~BNNR?p#%EZJ3(7s6yN6@*f-p2*<5=~+__DWyFZrwOtc}TsHg0A+{PkF3i!#LZ zYuX~&phexr@&IXAZN=d>tgS!n+iqQ&zCp9L)+@h78@@}sl}a?QuEGz4jq$-R5HH6M zskZCBT`T+cmv6^W--c4(23vg#H?Y~aA=J0izWb-6|GFM&MSVNy`{$@{fBb&EgSPI6 z7g==6zEwO=?7HDtd)9V8%)k6hrg%fSk7r|HU^+C5|Gzgwv+RoeaS@9$RZ7VNaz6W4 z|MUZ!v+IuIxIi+;fA7zeuP7&ip;2n?5L3GQ0p4RpyV1YM4)0=L3FQv+@Slj zf0^zZpdWZ?AEp2tC|z7if0v@yNVtnDlz?gzkdz$&z~qh6DF&kj3{563T*e?L%aU{0 zq=e}d10~&})Elq{*e3-aG7zyAL+L+df@YZdDDGhcv)N8l4+Irg)hUJ|t+z>sOj3kSF_2)}m`zZM6DUd*sZ$K3LpG_{ zKpe0UCyc~3Y>1Wmn1R7o&lI=bNYi8^Dh$M78&S5`|M7{h;Prp&_f$-bQ-5?K)%W|} z08IQJftXGwyG6phgWrNd{bG#yuRGbdRmH0{iu6L0{;7D?zu{zFNcm%O~|V{ z(x1)rfBt!KS4uBaLJUrRXs?2E6g^A}n?(mInrn1|9_E#zv;G>|vGGxemMerClj=A@ za)0O2!wd*(sa5G4jiSP`@Ib=^YX5Mc-DlBwxI@dsyvJ2e8?kC%r=1epXobxLT0&3dhijqxpA2jQLc z%?J#;0_S@$Bgw&d%9MgAzkrp|)-4Ft3YBGnCj$G`X6BOt%w#Bo9~{{3NO4pKStwX- zZoLc(np;04I=fjCOBci4Y&ZW3#dovWyzxOXGl)G(aAYvcCU|@>i=_sc8O-_*8HJR` zLXF)ocJn9@m7dyEH?`eHl*X{sb|a=I>vb05zN(Ld*~5%oD;9^cB?HT!0=bL+6$OuS zy>uJGXStdO4^jk{Oqc%B)4-(Z_v}FMG_?3mgpaw@Jkd9dZGxHlaTv?sU-K$YID47_ ze$m4+!cIPp?0YGmdquIzM$wuPt*KZftKL=FLBUeSp7o+EPg5=m{C_jGE5Nxi%c8*)1Jph?}*hRyC$2|!o%t%Rea0BfO?SveO< zksZU@c`6%>a{$;JA~%MmhHpHKgl{9^NpW8c>))vldY=2}VD~Uf;aE)d%CBk^FZ!Dd za(I|DT#gjq#jqh%^R`+H)x2k0HkxIfVcqw@jHBy6IQ^mX-?Fb!*cg2y0<7v{Ydhv= zsUo{Q`<3+-17ew%-6XDwWmz3})AHX@uSX!4e~3ZGYF}fEOwm4Kdn}6^X_^Hg)UeLl zq9Ha?o5#Y=1F3=Hdkl*Kq~lEhv-FLY_)kSt9J@H)yl*tZFi9}{=j*PKxQuQ-8QFmB+XVAOZslt4<*NrFVnm`A5;5J;PX4dZy^VqSTWn^m6OTHcr-vP=#?& zSw;licESa(Q^~kwAijuagOW&&PPcSWJSw#&i)UV55Q7rfEirYtwUO`TJlpz*OJ<_` z6xK-`Nr1l*!0!ocXK#6vihiht}FIQck#C%dse%hghnhcX_GDr)PYLXPyX=<`ZGE0bSR;-jF z#oeqLrzW$3EJai%vsI*pGBh@Yw9qPzm1G!dF%`N2T2X_N<4}qrhEfb7_pFOFXgY$E z4~n5))B}3!Ixp)ra1?N`5~SD8P1`e4O6Q}tsyu1zV&;7u<3N3sM?_H`o5jW3vRID~NW!D)LMpVYlA`NZl@ z%nL8M(FV{ovhtW1C|`J2)X^xP7}1q&4xzo?fqZD{6|=|XAH29Z-;r<;IUP>$P>aI9HE)x{a?J~rGE(dZCC z;*L3r@n0iO&Lb*D?IyDrbVcz>S(?NiY*72}X?5-fXPJ4#m4!tUn{_d#2b+#fqladD>>`Dl$?~!16N@t$?GDAsOqRvAiSAigWY&n$S*$Y~Bo<_`+llyN7V8dB>&fO5 z=IU*%!JrDkd3i7bb&dG0CxmnqVZB(6&$&-@>ANX+!-~SPEFo##(7}I8 z&W$ZNB_uiFGYa4=Z^0=c;(R8QNBg)q)erT$Nu2D(Qkh$Ld$V>|nTkAE*G^O9C$N&} z?e#L~b7P$dhPJ0UqXk8~G1$|2j5mS;)$1Wcs+RaW>P-k}0V?awhB=n8hTd$%-z{SU zwc9Elgtq1&l{pQK~&9mya-jss+m7{7&gV>+3XRDexG?dNYKXNhPLgw}C z{)nuMSPYUi;+>pOs13X-RMlea0kKij%UOu{5a7VnOx(ZHmUzQUv?Xk)-alB+%P`o5_LGQb4Pp zHHD8Fc+Y7`u*o=U5=yc8v=mr@|29S0X(_Ola6R{L`u#+`F}myqrUY47$UXZ)Sg5Zf z%vOdCXDY3SILT+~QXJlsnxV7&6l_D&d6s&oSTu}X%NC2eVXQbCmM|`JxKp5b$iIaE z{w-kSaa9l?9D$%*iFk8Y+> z3`ag&c_b$jh+!Yx%Nq*9D-Ve&BUl`N{ULGN2x#^H3}+*AOi{ye2NAMp=ST?}VcM9Y z{zfRVv=rKlEfw2Guwii!%Z!4fkZ|_N^1IMpV)ZE2HlzY(p$%1;`@(#~4` ztH&7SZ*9q@^0(1~?DEIJoH$eY+uHKq`8)Zo#v1b5Ipw$4TvGl>JT*Iy)?2o{by@T1K zrNGop=dt;)c3=P@P}ho{*J6V{NKCkvVLK=CuVtONdcRn6EnDf^dK8v{wAvSA*e}l4 z_Ygu_Kmg!m?*s>om=et4q#G+gjKS_x`Wa6jmSW3ca)D_1hRq@n_tm|3! z-)(R2y`E)Y7h8QjyWsTg?eMAC3qU*KdaSWgB@l{G?)0optG($Zw6*D_@nBu!7gtYa z@x21J$Z{AoZ*Z;Ms7z<=MxU6>Zi#a2M$LUF-EkLFrm#KcC3oWrzevwD_Ld`a*)^;} zynP35dsXLRGgKk6X0cgpq!>GmC5k0eStJ`ScFsn8^Hhd=PX=qoY<9K5)5RcP!LF=& zYZ}aHvZLB)t;yXHl*ha*s^UxZKx=))S7>F}l6_{dHLSCEeFi(;*R+ztPWMW@8^j}h zd~QkYir&c#5l0;#5J+1yqPSN4Q-}jDY9-Dg44d}Cr3;qZknv8 zYlHFVD0+)Y!uhEpY(A@IqH6zq_KUm&7mN)ptwIs9CowfD#2X8w<7;6NyM_P6#IYjG zD1?_RWGi|ytWB#UYDceI`f*FJd{Ey_YOvGZ5@p#CjuWT*O|A z-^L>ud4_NW5;GGgXtesJ^N46T*=}MT{*M0BO>7J1{3AEBb&z(!E$rI%kOm!ROH1d8 zhN$hgu-8Z-+;S`HVjeJtreN=ays*>5G{dU^ZYYF3x3a+y+4D9QtF6UI#}sqpUN-Gy zv6BFIKOSLVRf7x4X4Gxi!WoB_p~jUEC`eo##~yC2Sa%yV40dOWnI=BGjV0NPnD~@A z7~vELW7J}cae6#fQ;rcs9t1;wxJ>=AN^Duou4-j^d$dqo;lZ2{ZEk1xgbb$Dzka`X z>~_{CPQGp--({08ozPSyS1tTk$8KlEiPF;}$Oi;LNJ{J;h=^A2n)D#VUEm}YQHW$Q$rrK}%Y zC1x#!XKSrh2jg*^LZF9q2#hc&7QeS)@b0}&2D8e zKS>?v)(2az2RF{>50tV|z0056he0y|O91x#V-S=`#Kq`%H&$ix18~G}{-x?<3R1%1 z_pn}5D=I1B8Tp6{3o?xl-8^Be-Hb^n@8IEFM6V-APRSrZjW)yq9Vdv?!}H=)8CwY# z`O4L7>A76wihed1dDW=;TE_6Z|W-=S3Xb7_Cr>~~3P4T#nx10v2SkN##e zEz+a!GoVP&B0TyoK-m824;$FFzyk6ckOvUn{Q2uQDf@aNhI;gG43MA@kN%DUwFiW8 z`HBHW0D|fLk^$l93a1eIE&~b&gqi%X0g)6;+_K+l#625XYU{T#(4c{6PnZEEapaF0 zv3Db;5q8L*ZDj2;aPTcJEYYd2USAB4s-pB$pcCo1{1D(Siqc=g2Z}}N))_6ar{!O|yK zr|5dD0(uRywKZ_{6D(Dtv6|5xX&=J+_2T;{V6ZU}yos&S%tShj3jN6A7^OH{(cnka z4?r4*tk}H?nu%5YzKI=R)0>w-w{r2UeoFe|Q1*dsTyt#!9>{a)uImgIa zLVeuL^#KA?AMehX6~tXR)G%OMaJNGP4~G|zZm6gf#iKp7wQhOqdno)Eg{O-}neAm@BqBF6e8TSdvN`WyU?s=P4sw1gGpsL6mM8gjkecxfXk`=V`od7GyD{6jY z5n{xYgHvjZQ#;xsE-y42pDct*>W^?N8&eMM^J|-zg$)JHCWa0;`7e7%Y?)-qIrxs(SGYmwg?+nt*Y|y1A>+20j zeBHo$uscP&k6HJQrT;V<1%*OuQTL#b@ID;dT|)yFjiieiA6wIoUZQ1a228uHAG3`9 z@>q?_V>L4xgBLMqszY8ES9*UJ9TD7xiVW5`9l6m8S^KJJ^$F`W_6VaXqs#c0spRh*kZWesXZi^U<35?}RDsl1DXDpfT z*em}18SBVi7Dqp087Z58q*~)>09nRjff|4iN~#uDB@n~QRk|4RIqMsBKWFV@q+{2G44BkEWR|(b4@X(N_}AwwZk((}_AF_`??5)P7I4Qk{)BiPexx$O z_%n15vcuj&&KFMeg-kW$3I|FDotW_jOARUc7|Gt|Rd{#hN*1zb1N!(|CZ20#cZM9i zLw2~x`I22lv-+Vg*=3%F;(b&P=m1^(`6WwBYvHWYk06cSTQcYk6yLoRLf~b(MHRv3vSUd(HO5vrRz}Pb9MZt4hf_Qi<3Kcc$5#hm}bS}hYDeu6$V z*2r|jJl5!}7?uuf(sT}x-g~F zd+0b)PsQf5{L2~|%h91qiZqX4$*DsH21DF1v@e)weZbxcZB5@Ag4Ltpl}ZItrI7}e zcIX%sz$=7-HmD%YP>LU^4IUE@{lfbD9>dNSmdGK}N+>v|t=?wf)MBQ-!eE8c*_Z|v zT2zd|NN3@CHKpU~e<&T2ydcFO4&PS|C7(w4K}xcI$fCfekbZvHqR(S< zdF!vZ2vtXt$c?Sx#9rp1eu5H`Lf7p5WU9HJlpX=2)N(dZr|8@Mf`njMXyi+K3$lzL z&MqX%vKvh5G~7eiP+yb28Mtmb-A@2Rt;K+pvIMk<(9s^fAs{QaN(?)}zA){#_Ts|d zFnB7+C~g}Otjl-t@V+GcqK4Z??D!3n>PhkKZ`c735(&Sv@d#%9&Jr=HN`GhFo0onl zB>8$y_5CO#l;<12vxFhGVSpvHSiYeIqr=qr8tcLn`@8UFKE1iq4Q)U=jhGq?Cei5+ zmeQPoCE|!dt(yD?Jj53^T6f7YuyIAhf^-G{O6W$CvBd$c+=j?nt|LxplJWTb8QZp| z1HTg6yEp%&jo_Lx-cJ1aC+;>%yuE>xTVpZ`F_JXtZeFvRw-pmlS)7)HwNgUIV7|89 zK)QE{?i!>(^(;f0|*jlvs3dFKxDb`Y%zIPG!e>zy^%EHwup^}FXKu{D%m zpu z(9bQw{UX5w!?#de@8MTBXN2-OGJ4a)Ck?SPYC)s@+<9aqu8ZJ9y~br+Iv0e=5P_7t z;ruh4+44%4F7`z5-lHxyUgU_?_k$d;_$tyJg+8K_s^b0s$y6^U6PlLlJ;cp0J{>Fa zz)0>*yf_kA;&|zFd16r{?*I;Iw8!dui35t)DPu<@??;C$5qRwyhb%_{%0m|u?$L_3 zVNuU;=A!L$F-}k1siG#7$BG+N9)p&>UFDZIx9sU%*xa%$Xy@65q9~g8$GP{`Xg-2n zC4P$L=^3~PfcmDVxGBiOxN%{~FtwK9Wfo(rKs$30Wi8#8nBnd@IFvlOJevXgW)Y`5?XnQV`kxhtOc9qhHcNZ+vxozY(=(Hlz;ufvb* znA6<_#y+Dqj(1^qiyz{61~2_5SMi@6@T?c-ZuZ~vvNSHMAfgZB{*B3*4C?W899zv86 zLM22i199pUl0*{%7iEd#7$I5_BGN#7YIESb8pQD~AtH!_u7CmYIw8W;Lq2Z2h|KgC z2qUwh8(d)7L5OflL-(_Qc#IITsC4}bhzD#ATze(NNJ$-DgF&vUBy)zPxBpm z89cG-j~s2p$cD!hg$95bXyC{ugkBm$WWD%R2eba=D}WNrr24-JinpL=2#T|yCkTqL zAU{EE49Ewe4v^_T{tLt?i?y)@^nMHIKnv(uf=r=IUq_H#n2&1#4Yg#xMo^3i_0blWhzVOzU`S0F>gI7|iH1 zv916~vYJDq@jqZ~b4Jz^AW2p^XwY(dTkw*H4!cOB1a%g#Ii9v!tk!tChY+pLm`|mZ z));B}QL1P>SdCo*1{xs}z>sseucN{B2HcP>{;I1s{i+P>aR-R6cgvF+*iI&-ig#i2W})F;i&AssHy3ES?nT z3`{=5%h^Iq&~@mOa*(XIg22yv=2Do|%u zpldpx6oU1blQw#~3-6I#4QHU-%abFP_VN*?BNnHP3S76gleU@0ovb3ME00gAW*Yuc z3is(L#6P-XRjL-ZcI64u_1hx-<6U_H_7iQp@lj^EX_Fr+uFpofOU!bw>BduH4}OHc z>PEzT{RG9!iHdE;Tiy5#cAY7$p5f@U*%|!9@$lkP7fUa`p(UiPXPjWbfk!78xSc^3 zr|E=((O~%Jp+?Akhtx2UQO#gFnP1bL_lkMk<;6I_CmA)K11IFER?F1K#Yf$F+J%q9 z8DpXrr?};Z6X7Scc(qa$47fCbq>C5lASb};MxrY+CbE0*9_)Kj(1Z8yXn0AiGs}aR zcG5AUH_F(>=(2M0S`VnrT=88Go=hIEh)h0?Rf=mec|jY8{ew*-6lsb}OpL+SBU6ND z@x&p`_6^J*vXsbD^ZdeawFoAsiti6&=P1YE8#D&thjtG9X<0m_*ZV}EK?M!6195YE zYN;0eGb5p-ACYwNd=|eX;X9fED0nm@dk0PbtuZBl5cr&DoM`C9lM^;qpsNol@@fy$ z56knN_Za6swnRMAm-iKgJ^A?2vj6Bb8Qp}7EYSS;eggG3P)0A~(x%Dvh9eaej z6Spyep>Nc=_1g7>xe|i|`xv@Jv1fgaXc)lzgzw&f;r<>9XylOm_c;^`-vHh}t@b%9 zgJRgPltD#RKn7)1W(Fso{a-Tpw~;~VFIEQsHZy3D7)K52elao#Iryv0psM{qj_W5E zh`$EGz|Rzk7x3Qp+=mN5thfU6xA9{zL+NfC#3!6D@0}O$>%jZP1u*V2MetzW$(BpH z@X%m~+}y!@`svi&pBlOTF_`bLsdkwx>Ssgv%uc1aDGP0mFPmW-L4ftSDQUg0pnJ3{ zUKRyIVXW*vL5&oH);D6RUJdUtEd^Znjlo-M1Y!a)dDv}$dX35Aa{Kf>MjQfgJ4nt) zHJZi}zP?7UxYGbKE@wvoZ3%}%2w$?p>MCL`QX7lc13XVc;c6x7VgN}aMXzKohI`4csb+<|FlEW_~ zw`C3#W~Qjf;hM=y-x;)40<%wl$l-mlM5YeoY2Y0_%)x6f^^K<74a4}=t&LL$xgPc7 zsc3DNnBR>jg_t!FJul)jA#mMAJgqBMRYmGf7@YFvF*TBgC6r#YzyYv)2Q?P4Q1RVG zJk?`nqk{Ra$S~}V~5RI zD()G{6PQmtF_K?sHv$daVquM9*4QHRt&wE_YgUw`15cZM~~uZ5jT=gKyFwM zFtNS^j}bYec^hBdYcLh`)&|-Y zl#&$MjR3^1K>RS8ue1k7^At7fxpNFUdzkoo3{OU9hm3V}wrv(2H+iocYa30WaGHgR z=f~0jG>1*&SU%&N?fKX^evkL`C8yc2kf&Q>?09@ct3td#p7-Hfn7Hs(9_y=oShf!N zsx|aF8CshNMJ`ILsMUyDD=PVfiT;#>e!xMGFzMTfPX1t|uXoVtD2LKN<47OTWHG>7 zEOt%cm)YYUjY{Jlz7Uan0mi-6B10$g)YPY#;gy1k;F8}z*ayd={HBJq94EQ6)h;6J zO3bxIqUV)7LA*ARCyY0}7npA?oi(_OVEQ|@8vYK&^FL>>XwrFQu*b?^%lXvc@Fd>Z zszK_d=a<2E=rQ_$%m19gJLi`{!~Z#h;(wf14UYVuGw5*{Pv~;)PF`_DHjya2jL%>X zhz~B~x6P#MAlSyIz%4^B5YZ(J=oTy$=5+(}1tJVe+U3)=AM-sNdBkM!c{VrqDGXQn z5LmI3Co!1O`u6YW&67d;>ljoPo3Tp`b&zWSHnViQk*lJ`V zzP*a)r8XZUKv(K#J`xZ^uEkQh@@hVD;`y*+0hI>`=Qk`eui8$f>lY`gtF~j~pm_6c} z>-aVHsK)I^vF|#pgC*uVc;q@h)25OgGv#^*b@}x?x1Z_u;EpY#;r5WWuG~eMZjTnb z$dt)2AT!1E$-HCt^QZ?5EMvC&#o;L!4sTB8?VzF;PvJ=}6?@0ZDLgjAoY!P9w>TAO zUT98Q)95rY$?znfr;ti(nv_#ndYZ);nTkCv3}uwle7{&4=<){4xeIpij52-G|KG?w zY012+d1p_{HXVP^R=34b2)?vO-(tWCsl1AaYacNA#fYhVt=<1*Fn>K2{arUR|w&7FzYW8Lb{X5Qp6(h93jY^Y*~_9EDqC>9F+%Ku~Zc2@pjE;%{WSz zhuH_r!|d&O{8fwT$QO{<4Whv$KW$U;CDt>zqQI0Y4$RJFaGjUA*^E%tVjZb+iY*hTK60T1_-wX>t%GPj3bTt3I8asp-JB{*^d=}owCLfcrl zVPs4tIb=~Xdeu_;%NRL2CQ0d_|tQ^Ucq(cD!$H;WgEb+dUNn}w#uhqGyGVX_3x;g?%(FmAfR6w3_; zgjh6(53`foTjM%2`O!Ii$Z6EH+D|YR>FY-3`M>V*6e;LNG@|TA%n29X-NtB-iN`1Y zt(zCvS{mP0HOG5w0q-MTEa21G<3gL~*r8KJbLWxjH;b`i9=tBP_;wzQwR$dYp3f6~ zC!smiEIac z4=)+Z!S}q2YY@jdE!~}jV0p*5Kc~?pF9=EFupjdi*B8?4rsAwp}MGN%y+CttvfbIB(X0}la&dRp= z(bL%uFMwN17d?yk=tOv{s&ZyP}XRZ5Y+_|QO0Zgf)?_xf(m3fVrG?eW2o{RZt>zW}U z#Vfb*%+ovB>Z5Lp`NSC0sc*@k!_kqVY%!1RalP~tsR5-HrD!HAHiE$vP+?3~JF?{p6;Rr zi6u*TQuq=?X*@GPUEy1D;Sg~x~MGiT%6+}wSVGup+~v+-7+#_KvOZ>gz2WseUj=IwfKVYF#* zd!gav0*`C`=mjj75zX2cGfZmVQggiARSaYDti^E-DpWGs6>`?%9B}f!cLx@gC(qV& z&VmnI%2oEnSr-ZO8|32Vr99m?-7piH^|)R~mwVjiO-94zME^sGPBtag6miR?Wx1^A zzXHLzO-njFQq<)%)=tmlT*XUbMLCDyEe182%a) zhyM@BUjM%(gNOJ3lH0%WTH>Ajiq21+L|3KjbqM6=7bh8Kg@%!a{-Pra^<5_Jyo>kp zeoZ|nwZ$3P-ZI$ewZ7-?;+I99+Jp}5sBgqwIUFP;+|7HYZD9BYg9lczxsF?t2H%_| z+r|7|yePbzcd}P^`TCOBcsHM(WxQOh!WBTDG0T7sq)*z=fBr-<@~EaG#OVo_hilh} zp38Y^cjQI7|IxqCyWX5K_muJp!R1JRW&FNUJ}UTrN8H~W$5+c5ct^`<@p zf1h*8ZsyJM!Js>r>eF!d=cQtJCmqUgF5Hs?EN z*Fp#GW^&wkJN{D*?Y5vkqHsI-IDn1V?9i&ZdIfAQtI>`fmW?JYM$#7gRuZ*!ulQvJ z?~qacGJqXOOq--KCm`8q^Fqs|E1ObeujIXLxfOp&xj0aNY$abc0`JXv#+r63Dnx@4 zL+21$opihm6l<*73ZBehW4KnB`uL_*Jf+L0tVOq;fqk=S(eICm*eI1(C}ojZ;7 z0vl?kok!zUnDYee-t==e+X<8V($zebKBsxhYGX^eaW(HgHVft&%rx{h(_`e7wr-vr z$B<(fa32}30Lqc(G$oox+GbNZb-14=b~=Hhciay<)Vx+g^2#Yq6t`|KlAghxwU92y_;V1C+Z`=UP&$!c#E;Ro1{ZF38uH> z7BT!Kppb%q0i-?z4Kl#iiEzT9r>RF*irM9Su=)Ne-l-vedeuM@%f;Suo<<)EA&<08 zq;$BB^ap5XNw`)FSi@5;sYP$1S~vue8)g8s?%e6Y$7$ex((oDEQ8bjOGKQ~2o?J5d zx{CE_7I>3j5!J8Z{eAsx&tbqNYN|JF&T;IG3hO)8lESri;GSNx5fm?UrdmQRhwx4r z5~hLfa#Cc!ECM3?*qM{~>@@ef&XA_x*|X`Xpcar^XeQfhW%WE@VXGzKvHj#8g{ z$dDxjnWJ)16Hx+3?M!qPd|*4{N(Y&)Mhq>izRbm=f~Q4R)BXiF)!;5u9}-~|JauRT zHrqP!&^VyxH(VfcDbf3o8H@jL8>SVtqa2APe@PiTXmC9wX2Eutwp)6mC`-c&W@M>& zdeO4SyeMUN#ZBLx!2M$yF8GPnOXy7xszCEKW-Mh{XmC*Fy3)caf3yNusedwWWI56Z z5aPtp2YBW`PVd4qc1Jhr)6;p+*xjAPz6W^6^g>UXd3c90)O>j7Q@fx>q#TW9u)BzS zP@eC1e~@c<;|^aHWL`3gM=rwv>62DE|PHN{{i!0m~|G`kVN=Ja&1i+`rZ z^`sz;VV_|FRKmjr-}yjVk@N}z-0DD2k{mRoEkdN72YdCZN}kAJf>G$Jz>sxJ`$Wke ztJlFptCJw-2(*Zw5-}=(7>BaZ=%fyBIdH9H2k3Gk?kYKDii;oOnOcU2+}g%iQU79| zHc}QLAT3{AA-037%|K7I$%Fen_&PA&WD&<6;_ZB@$&UP?(9{g#qZXtex?lLP%M(Xm z7zYsp4Kfu~I$snxUksTxH?CfL9O5W-3vnbL;wS^@BA}nPq3XkoQbDklE8ZGg_b|pG z*~q|+l@%l+Q!m#QPisa0i1x(z4mSe1MnxHAj(258C~)gjgY>22OQb0Dcw~OiM0c=e zNdU)72up>@7cTjvT^)gFx=-dsGK5d1HVOXIp2FkWD@HZP(sihmnp;VPHB%x(Zv0^D^6iu~`c|v4ni_LI} zCs@J7IPu^0Jh`pnaU-Su!zji?#0K6ga^;KghU?_a_U!YD@z3&fv0wwo)wxG`V%u6p zRT30MVR%CExakpzkMYM^r!!TV3or#w7@o~cuwDEqypgUdvjDFEKjG=2KN1m+XU@z8 z3uex}L7Oo%Z}xO;%9J9mDy@KDhLDK^yLfVVxrus=i=<6>ai|7xv}6%A@A6?nRPh8~ zBal}D`3?jpBedZ90Qj>27+;fY!T(bLd@=wILT5SUM;Y)mJ3|)|q&f=V2HeE~cLm(e z0e1%+?|^l{Q4aVbz^x@L@c(5D!bdN}?a%V7gQmDu?eWB#a2!Hv9vXI5u@gn| zr~EQ8;X@woiwIGbYe4IZJgM3id<1bPoDo1j7(hQ101ph{j|hNO1NPY&)&>aJ69Cr) zz)b-#jT2{qcL&f92f!yK>}#%ZbpS(S08G8&%pg4gt`Fcp9sp|r{0&4${&owT2uP3` zkRUbyP7HvH0@BY5fN3Z=E06@(=R|k|7-&2>>AeEr9s%&>0q~>%`04<7s-lF*44T4> z`OrDM<$UOb1oVfBVm=(&$uoU~vc_>5;+-9EI^tdM(3~Kiu6T&wnls%@*qV+RfQjFl zKQN9Is#7MOEIim#C{$+(d*kV&DB_1Le7NYpm6wd&h((+<@OCq-Mo6>lU4&HNI)sT1 z_*eiO5uwW2nu5?RQn&G}E(;2$WzL>CwMXFs<#Aw1`jvR7U&c?(*J_9p@y8>?!fkxf z@cxkokHvd0XdNWoz%LJgR{+-VjKGtMhh&Wu8Qb|4(PI(44$t*?Cg7PY%D3}r-7d;4 z%3Zi1uW)YeoIGdCQ@!TR&YioUsBq!5B8}L@&^n$GrQ8e($))EO5%CPaAmyDXvXP9Y zq>!pYp}Un)ozPZd<}*BH$gPAkpW6^R;l%+ksYE9|Q5<}XcW!$#MA8a+J07c--D3Vv zc$I&`w>&*&khU8f)X$$Gq<;Utl{oe}mW5DNc%R^lqAya7b(qFdn4-VAp{naY`KGY8 zcL25uw-oVZcuHvbSino;#We@`sMetghUmTsNwl6|h`u&~M8}A%PdPqA`WjE3S^*B4 z3=cA6uv+k5z@*eI_)Wkx5G}YCFb!A>J^&bl(uR|TIt)oZ-BTJt>25XP|Yd;yVf zM~T(dJWFI%^YE%Zuk))}>(UM_t&Y%SIT88DWHII-zcr;c*_e>UA;zq*;FoP!G#%ti z#!k^xr2qxFA;_qZ6ZQgc!3zTD1QVS`F8!fCnCP;<4!prv@d@6lE8pat$3NLoRf0i$ z8X8v)ZQ{9{M4{t!PDIlPIzV2aacmZ-L=#%pZMYsA0O#Nm5B@A z=G}%nQLB;SlDUg=XV08|S<#FE!{<&bm=2?@g{1q52W{v~=NC`E&3pGq%uuD7(FGxm z?$HRTrRd!>a|SNTEu5J<7c0Px86xW)>~f0DG;{NAD!OG}o@Oyr08f)=;oO-;7IFu0 zG+^`QE}T<~I5p6m+|`<=riXIEy}xrk^;E`L|Vlx;?#nI*?GBh zC2ey6Emt#&A(dH|2a(FTmMol`ck{eFlxaHHa*Gx&7^EqoJyfL)*;CVesfd#PB;`mZ zm<4wYfcpo)mj=M3yqxLR1i()R!21l?XJ`0L0K+GMY4NuTq@oRJrLtg808A#fvjF1* z;2Q$q)e?p&V+q_6!0=K4Oq&X42EPWtk;SxF-M>0q{l> zUI!VLdZB- zM~}<~Js!2N(k~83e{%p_WWxU_oC)1mRG=-mv2dms{|UdFm-Q3%pYTDEdm+x&l~Ny0 z9n;^?hwU-+2ZLeTxc7S1g90iW1 zSPdTfL!p&@c(Mi=yNeqJw%lFR5)=N2&)8jba-#kPv=e>>Fb%B(#+01*IS=o2@gQSL zk~XERo&2u>rswq*_UA#Q=nm{}2x-j?y1+0JwF{*E>AUs0RJ103ZEPLEpgh zCZ4zOT$)!jrr-vwbHfV@3knTBH}Le(peOs_JrgF}`*{9?rydXC>5pX6gqW5)dp7#E z%G-!LpFW}zg`N-bj9&nY1q--S+DE|8nmKp+oV*1Ka&O2}8URy`D5sC{^chS`vH~-z zV1brLCDgiDxZ^{N1^pC4%ER3FEGU|uSu}G_9=_zryYtwgBI7H5wXb5RD#u4Y7^#sh zcmq#08+DOxw9#CSAqDb?!h$){)TDMNb8A7% zEWQVitRF&W);}oX*f-F%@9QG#TRtk@ons8wo(QRPhajZvK`;N7FXHugiiq#<1)h_4 ziq7BhjNsb4_9-457JSFo@Umgz*mt}Kh1wC`mBKMc_=vEwVXEAk7l}DP@nrGB5gcKH z)^LOm^;tAp6Q~{*jD<$_y#@aam{g_(Q=y#vECA*KFnJlB{Nz0X+{+e7Iyc#o!PS7B z8BPb>4|JvK)$jRy9<#j+6%Wd;eDf51!Fve!Ik;-fF<#B59vG#{UE5-Cx5Z<@n-Qln zSn!hpFfG_lIxXH#c&iPI89(u%X_g#X(4BnYC~7p`CJ-ppgOTFEPdu@!#TyA4%_$3x z0i5oD2jVWylnm2AeK={EPv&dyKgLXWX_zxaem-D9uXuI`VhQ zJq&mV()Q?qGL9AR|IA1Esxgu1Z;%Fy$Bb*^R0XWcuSCEfs;Qj7GcR}U%xSZrHFJx! z&Yd%~3E(5zM1)wQ@L|Aa8PiRg6+&_5-K-TXEYb>QXj2Oo&Yh0kMA41nkzaVyxMDDC zNW30lYlM`srCNVO{C7Nm;L+&sw(yMb342joWqX`s6p;(#3u*N6gWV2 z8-4>zz&AiXsIdPCOmU#hlHm)jB6EumZ7t3#hRNpwQcV=cbWaa^_+vDbW0Brj_ Lu%6z)#@q}5u;7eL diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index b3165d1..9e842f7 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -46,11 +46,11 @@ struct UpstreamCall { impl UpstreamCall { fn new(json: &String) -> Self { - //let data: Vec = serde_json::from_str(json).unwrap(); + let data: Vec = serde_json::from_str(json).unwrap(); Self { - config_json: Vec::new(), //data.clone(), - paths: Vec::new(), //UpstreamCall::get_paths(&data), - test: json.clone(), //format!("{:?}", data.clone()), + config_json: data.clone(), + paths: UpstreamCall::get_paths(&data), + test: format!("{:?}", data.clone()), } } From 162cf543483407799b2846a703d44b26065bd244 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 01:29:12 +0530 Subject: [PATCH 27/65] test#3 Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 9e842f7..e15d31c 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -17,12 +17,8 @@ pub fn _start() { config_json: String::new(), }) }); - //proxy_wasm::set_http_context(|_context_id, _root_context_id| -> Box { - // Box::new(UpstreamCall::new()) - //}); } -//static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -71,13 +67,6 @@ impl HttpContext for UpstreamCall { return Action::Pause; } } - /* - if let Some(path) = self.get_http_request_header(":path") { - if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { - return Action::Continue; - } - } - */ if let Some(path) = self.get_http_request_header(":path") { if self.paths.binary_search(&path).is_ok() { return Action::Continue; @@ -116,11 +105,7 @@ impl HttpContext for UpstreamCall { } fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { - let json_test = format!("{:?}", self.paths); - let bytes_test = format!("{:?}", self.test); self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("json_test", Some(json_test.as_str())); - self.set_http_response_header("test", Some(bytes_test.as_str())); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 87fedf11acfaac7541c93a6a206ae60434b97e92 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 02:21:42 +0530 Subject: [PATCH 28/65] added JSON parsing+cleanup Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/{yaml_parse => json_parse}/mod.rs | 0 rate-limit-filter/src/{yaml_parse => json_parse}/rules.rs | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename rate-limit-filter/src/{yaml_parse => json_parse}/mod.rs (100%) rename rate-limit-filter/src/{yaml_parse => json_parse}/rules.rs (100%) diff --git a/rate-limit-filter/src/yaml_parse/mod.rs b/rate-limit-filter/src/json_parse/mod.rs similarity index 100% rename from rate-limit-filter/src/yaml_parse/mod.rs rename to rate-limit-filter/src/json_parse/mod.rs diff --git a/rate-limit-filter/src/yaml_parse/rules.rs b/rate-limit-filter/src/json_parse/rules.rs similarity index 100% rename from rate-limit-filter/src/yaml_parse/rules.rs rename to rate-limit-filter/src/json_parse/rules.rs From fa9e5af16c6fa3157c6f3aeca4a079fa7120f437 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Tue, 9 Mar 2021 04:54:36 +0530 Subject: [PATCH 29/65] test#4 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198403 -> 198855 bytes rate-limit-filter/src/json_parse/mod.rs | 2 + rate-limit-filter/src/json_parse/rules.rs | 12 +-- rate-limit-filter/src/lib.rs | 100 ++++++++++++------ .../src/rate_limiter/rate_limiter.rs | 21 ++-- 5 files changed, 87 insertions(+), 48 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 357d193b4dd4371976aad5e6c2cd86d121736286..30131414ba4679c05049780ac0ee9ad4a822b252 100644 GIT binary patch delta 55131 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

hqR#3vkMNvX9rnxnn|v8h5Oz5zIcFz| zyRdutTc=rehZ;aK8E^A5r&+rDC?L)GmC)V?uEblRiwdLSGzITQI1O_d{scNV^>>Nu zB<2f$Wt-dA)nKd)<^!8?;c;9u>ybsbKAd%l!JEz8$ny}1<#|YuuV`k&;`U56=Z8AD zl=)xyhs`Xzdoy4sz?fUi9e5|W)b_vd#53&TR2gd&*i^RZaLM-j;I), + RateLimiter(Vec), None, } -#[derive(Clone, Deserialize, Debug)] -pub struct RateLimiter { +#[derive(Clone, Debug, Deserialize, PartialEq, PartialOrd)] +pub struct RateLimiterJson { pub identifier: String, pub limit: u32, } diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index e15d31c..b40b6a1 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -1,11 +1,11 @@ +mod json_parse; mod rate_limiter; -mod yaml_parse; +use json_parse::{JsonPath, RateLimiterJson, Rule}; use proxy_wasm::traits::*; use proxy_wasm::types::*; use rate_limiter::RateLimiter; use serde::Deserialize; -use yaml_parse::JsonPath; use std::time::SystemTime; @@ -36,18 +36,13 @@ struct Data { #[derive(Debug)] struct UpstreamCall { config_json: Vec, - paths: Vec, - test: String, } impl UpstreamCall { - fn new(json: &String) -> Self { - let data: Vec = serde_json::from_str(json).unwrap(); - Self { - config_json: data.clone(), - paths: UpstreamCall::get_paths(&data), - test: format!("{:?}", data.clone()), - } + fn new(json_str: &String) -> Self { + let mut json: Vec = serde_json::from_str(json_str).unwrap(); + json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); + Self { config_json: json } } fn get_paths(json: &Vec) -> Vec { @@ -55,6 +50,23 @@ impl UpstreamCall { allowed_paths.sort(); allowed_paths } + + fn is_rate_limiter(&self, path: String) -> Option> { + // only meant to check if rule type is rate limiter + let comp_type = Rule::RateLimiter(Vec::new()); + let rule_vec = self + .config_json + .binary_search_by(|x| x.name.cmp(&path)) + .unwrap(); + if std::mem::discriminant(&self.config_json[rule_vec].rule) + == std::mem::discriminant(&comp_type) + { + if let Rule::RateLimiter(plans_vec) = &self.config_json[rule_vec].rule { + return Some(plans_vec.to_vec()); + } + } + return None; + } } impl Context for UpstreamCall {} @@ -68,36 +80,54 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { - if self.paths.binary_search(&path).is_ok() { + if UpstreamCall::get_paths(&self.config_json) + .binary_search(&path) + .is_ok() + { return Action::Continue; } } - if let Some(header) = self.get_http_request_header("Authorization") { - if let Ok(token) = base64::decode(header) { - let obj: Data = serde_json::from_slice(&token).unwrap(); - proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", obj).as_str()).ok(); - let curr = self.get_current_time(); - let tm = curr.duration_since(SystemTime::UNIX_EPOCH).unwrap(); - let mn = (tm.as_secs() / 60) % 60; - let _sc = tm.as_secs() % 60; - let mut rl = RateLimiter::get(obj.username, obj.plan); - - let mut headers = CORS_HEADERS.to_vec(); - let count: String; - - if !rl.update(mn as i32) { + if let Some(plans_vec) = + self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) + { + if let Some(header) = self.get_http_request_header("Authorization") { + if let Ok(token) = base64::decode(header) { + let obj: Data = serde_json::from_slice(&token).unwrap(); + + proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", obj).as_str()) + .ok(); + + let curr = self.get_current_time(); + let tm = curr.duration_since(SystemTime::UNIX_EPOCH).unwrap(); + let mn = (tm.as_secs() / 60) % 60; + let _sc = tm.as_secs() % 60; + let mut rl = RateLimiter::get(&obj.username, &obj.plan); + + let mut headers = CORS_HEADERS.to_vec(); + let count: String; + + let limit = plans_vec + .into_iter() + .filter(|x| x.identifier == obj.plan) + .map(|x| x.limit) + .collect::>()[0]; + + if rl.update(mn as i32) > limit { + count = rl.count.to_string(); + headers + .append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); + self.send_http_response(429, headers, Some(b"Limit exceeded.\n")); + rl.set(); + return Action::Pause; + } + proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()) + .ok(); count = rl.count.to_string(); - headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); - self.send_http_response(429, headers, Some(b"Limit exceeded.\n")); rl.set(); - return Action::Pause; + headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); + self.send_http_response(200, headers, Some(b"All Good!\n")); + return Action::Continue; } - proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()).ok(); - count = rl.count.to_string(); - rl.set(); - headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); - self.send_http_response(200, headers, Some(b"All Good!\n")); - return Action::Continue; } } self.send_http_response(401, CORS_HEADERS.to_vec(), Some(b"Unauthorized\n")); diff --git a/rate-limit-filter/src/rate_limiter/rate_limiter.rs b/rate-limit-filter/src/rate_limiter/rate_limiter.rs index 80e9eb8..4dd6efc 100644 --- a/rate-limit-filter/src/rate_limiter/rate_limiter.rs +++ b/rate-limit-filter/src/rate_limiter/rate_limiter.rs @@ -5,33 +5,36 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct RateLimiter { - pub rpm: Option, + //pub rpm: Option, pub min: i32, pub count: u32, pub key: String, } impl RateLimiter { - fn new(key: &String, plan: &String) -> Self { + fn new(key: &String, _plan: &String) -> Self { // make these dynamic as well + /* let limit = match plan.as_str() { "Enterprise" => Some(100), "Team" => Some(50), "Personal" => Some(10), _ => None, }; + */ Self { - rpm: limit, + //rpm: limit, min: -1, count: 0, key: key.clone(), } } - pub fn get(key: String, plan: String) -> Self { + pub fn get(key: &String, plan: &String) -> Self { if let Ok(data) = proxy_wasm::hostcalls::get_shared_data(&key.clone()) { if let Some(data) = data.0 { let data: Option = bincode::deserialize(&data).unwrap_or(None); - if let Some(mut obj) = data { + if let Some(obj) = data { + /* let limit = match plan.as_str() { "Enterprise" => Some(100), "Team" => Some(50), @@ -39,6 +42,7 @@ impl RateLimiter { _ => None, }; obj.rpm = limit; + */ return obj; } } @@ -50,7 +54,7 @@ impl RateLimiter { let encoded: Vec = bincode::serialize(&target).unwrap(); proxy_wasm::hostcalls::set_shared_data(&self.key.clone(), Some(&encoded), None).ok(); } - pub fn update(&mut self, time: i32) -> bool { + pub fn update(&mut self, time: i32) -> u32 { if self.min != time { self.min = time; self.count = 0; @@ -58,14 +62,17 @@ impl RateLimiter { self.count += 1; proxy_wasm::hostcalls::log( LogLevel::Debug, - format!("Obj {:?} {:?}", self.count, self.rpm).as_str(), + format!("Obj {:?} ", self.count).as_str(), //{:?}", self.rpm ) .ok(); + self.count + /* if let Some(sm) = self.rpm { if self.count > sm { return false; } } return true; + */ } } From cb39b760d5a64d5975f6f2a913d73c5ea9b9bdcd Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:17:19 +0530 Subject: [PATCH 30/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198855 -> 199766 bytes rate-limit-filter/src/lib.rs | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 30131414ba4679c05049780ac0ee9ad4a822b252..214b3e0b1c7dc299c6afa55ba7fb004175bed1e7 100644 GIT binary patch delta 46046 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 Ir8uAdKese1{r~^~ diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index b40b6a1..b982170 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -36,13 +36,14 @@ struct Data { #[derive(Debug)] struct UpstreamCall { config_json: Vec, + test: String, } impl UpstreamCall { fn new(json_str: &String) -> Self { let mut json: Vec = serde_json::from_str(json_str).unwrap(); json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { config_json: json } + Self { config_json: json, test:String::new() } } fn get_paths(json: &Vec) -> Vec { @@ -87,7 +88,8 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - if let Some(plans_vec) = + self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); + if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { if let Some(header) = self.get_http_request_header("Authorization") { @@ -136,6 +138,7 @@ impl HttpContext for UpstreamCall { fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); + self.set_http_response_header("x-test", Some(&self.test)); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From cec0cc0b54fe998381151d59a6cf3d0cc5b3c377 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:20:59 +0530 Subject: [PATCH 31/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199766 -> 200144 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 214b3e0b1c7dc299c6afa55ba7fb004175bed1e7..0cb29dba5c9f2bf9ddacd8dd5793a1727d03cdb2 100644 GIT binary patch delta 22028 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 N-ZrIJ9=EEg{}12#XDt8# delta 21987 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index b982170..4bd4ffa 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -138,7 +138,7 @@ impl HttpContext for UpstreamCall { fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&self.test)); + self.set_http_response_header("x-test", Some(&format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()))); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 4425e355d7dd54350570ec697e1159e8a7c4e5d2 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:25:43 +0530 Subject: [PATCH 32/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200144 -> 177931 bytes rate-limit-filter/src/lib.rs | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 0cb29dba5c9f2bf9ddacd8dd5793a1727d03cdb2..b08a614633d8844f646d6f37f3bd34121578a380 100644 GIT binary patch delta 44159 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 delta 62456 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 4bd4ffa..c7bcd7e 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -52,7 +52,7 @@ impl UpstreamCall { allowed_paths } - fn is_rate_limiter(&self, path: String) -> Option> { + fn is_rate_limiter(&self, path: String) -> bool{//Option> { // only meant to check if rule type is rate limiter let comp_type = Rule::RateLimiter(Vec::new()); let rule_vec = self @@ -63,10 +63,11 @@ impl UpstreamCall { == std::mem::discriminant(&comp_type) { if let Rule::RateLimiter(plans_vec) = &self.config_json[rule_vec].rule { - return Some(plans_vec.to_vec()); + //return Some(plans_vec.to_vec()); + return true } } - return None; + return false } } @@ -88,7 +89,7 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); + /*self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { @@ -131,14 +132,14 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - } + }*/ self.send_http_response(401, CORS_HEADERS.to_vec(), Some(b"Unauthorized\n")); Action::Pause } fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()))); + self.set_http_response_header("x-test", Some(&format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap())))); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 30321d892477fd0740937bb1c9e1cdb98eaaa2a3 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:31:11 +0530 Subject: [PATCH 33/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 177931 -> 200379 bytes rate-limit-filter/src/lib.rs | 17 ++++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index b08a614633d8844f646d6f37f3bd34121578a380..94c7d8b98b0945bda16cfc919410f7645cfacfb7 100644 GIT binary patch delta 62816 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%0Djz?6?$D6!*DYPr^ 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 Ai2wiq delta 44595 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index c7bcd7e..e0f8d99 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -52,7 +52,7 @@ impl UpstreamCall { allowed_paths } - fn is_rate_limiter(&self, path: String) -> bool{//Option> { + fn is_rate_limiter(&self, path: String) -> Option> { // only meant to check if rule type is rate limiter let comp_type = Rule::RateLimiter(Vec::new()); let rule_vec = self @@ -63,11 +63,10 @@ impl UpstreamCall { == std::mem::discriminant(&comp_type) { if let Rule::RateLimiter(plans_vec) = &self.config_json[rule_vec].rule { - //return Some(plans_vec.to_vec()); - return true + return Some(plans_vec.to_vec()); } } - return false + return None } } @@ -89,7 +88,7 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - /*self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); + self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { @@ -132,14 +131,18 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - }*/ + } self.send_http_response(401, CORS_HEADERS.to_vec(), Some(b"Unauthorized\n")); Action::Pause } fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { + match self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { + Some(s) =>self.test = String::from("hello"), + None => self.test = String::from("ohno"), + } self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap())))); + self.set_http_response_header("x-test", Some(&format!("{:?}",self.test))); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 1613ffa1203c0ee433fe3b546b6779b576fd96cb Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:35:17 +0530 Subject: [PATCH 34/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200379 -> 199652 bytes rate-limit-filter/src/lib.rs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 94c7d8b98b0945bda16cfc919410f7645cfacfb7..b183d599991681a881fee118afc274bcdeb90a48 100644 GIT binary patch delta 38072 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 delta 38425 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 F{vWio^!xw- diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index e0f8d99..b55109a 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -88,7 +88,7 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - self.test = format!("{:?}",self.is_rate_limiter(self.get_http_request_header(":path").unwrap()).unwrap()); + if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { @@ -142,7 +142,7 @@ impl HttpContext for UpstreamCall { None => self.test = String::from("ohno"), } self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&format!("{:?}",self.test))); + self.set_http_response_header("x-test", Some(&self.test)); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From f49861ef7171ac6afd0c7d36ac5eb1f2d2c938fc Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:38:10 +0530 Subject: [PATCH 35/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199652 -> 198921 bytes rate-limit-filter/src/lib.rs | 7 +------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index b183d599991681a881fee118afc274bcdeb90a48..f6296b070f395e4f3c6ba3e4e3cb2cbedc0310ee 100644 GIT binary patch delta 37301 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 Action { - match self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { - Some(s) =>self.test = String::from("hello"), - None => self.test = String::from("ohno"), - } self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&self.test)); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 48196acbff27be1a474a0a09d60ea753b998ee1f Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:43:35 +0530 Subject: [PATCH 36/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198921 -> 199848 bytes rate-limit-filter/src/lib.rs | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index f6296b070f395e4f3c6ba3e4e3cb2cbedc0310ee..d237d6559c9eac58f3a6df4d07696fad4de849d9 100644 GIT binary patch delta 45752 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 LVFjP Self { let mut json: Vec = serde_json::from_str(json_str).unwrap(); json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { config_json: json, test:String::new() } + Self { config_json: json, test:String::from("default") } } fn get_paths(json: &Vec) -> Vec { @@ -88,6 +88,9 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } + if let Some(s) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()){ + self.test = format!("{:?}",s); + } if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) @@ -138,6 +141,7 @@ impl HttpContext for UpstreamCall { fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); + self.set_http_response_header("x-test", Some(&self.test)); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From 114ff7d93c804b5aa9a4e02cbab83f5bf273f75c Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:45:59 +0530 Subject: [PATCH 37/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199848 -> 199579 bytes rate-limit-filter/src/lib.rs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index d237d6559c9eac58f3a6df4d07696fad4de849d9..a3770ce2b1bdcdecb47c505d182f563d3f183307 100644 GIT binary patch delta 37602 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 delta 37377 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 Date: Fri, 19 Mar 2021 13:49:03 +0530 Subject: [PATCH 38/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199579 -> 199589 bytes rate-limit-filter/src/lib.rs | 21 ++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index a3770ce2b1bdcdecb47c505d182f563d3f183307..cec61ca4a68499c76700a463cf2c8b5091026ff2 100644 GIT binary patch delta 530 zcmbO|ooDHEo(;>n7*B3q!KLBG_+j(K03~LT|ML$pIPwbYW@K_uVA5c+aAb66nOwL> zN*KtoQDSxFWl&&pbja3ZW>Dmv91|!tIVelz3BV3({k#F*bNHa#>$+x19PF@rBpOGKPSDJh-nj0u{EBX$j z$mH!YQxzB$7zC_%7`YXAmxJ8ODqzL!c!9x@Mc@dt5`!x*|KtgQ-ji3w%2{n$0QTrj zMkNMEZg*ZDM@B^!9$s$88MA@n+KxRyX@Q?i4BU=vj*J3Vn1Kwa%#z6;W4AFfHSdXQ z-xJ5UeNP+{f4HD60|SEu5U=1DVBiAMj??dKWs<6QEG@~%FUqV+EXmBzgUKZTO#%LTIKkocuQwj#sy X(rrvdii^n824{p!KLBG_-ymV03~MeU-J(zII;@tW@K_;a!_E>V6t#zbZ2px z>>r{(x!FK$vO)-pP=*q-D~p38nP49&;l+Kgzu0I^kWYDq?Zihn?e zr@vpYRY77&23$=vP+kX!QxbFYGD{G86M$k$K1-g2gESRqUlxJn93FBqX{oS<1gGUw4G^k2mm~Shz$S$ diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index bb56a57..c10a81a 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -43,7 +43,10 @@ impl UpstreamCall { fn new(json_str: &String) -> Self { let mut json: Vec = serde_json::from_str(json_str).unwrap(); json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { config_json: json, test:String::from("default") } + Self { + config_json: json, + test: String::from("default"), + } } fn get_paths(json: &Vec) -> Vec { @@ -66,7 +69,7 @@ impl UpstreamCall { return Some(plans_vec.to_vec()); } } - return None + return None; } } @@ -88,14 +91,14 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - if let None = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()){ - self.test = String::from("damnit"); - } - if let Some(plans_vec) = - self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) - { - if let Some(header) = self.get_http_request_header("Authorization") { + if let Some(header) = self.get_http_request_header("Authorization") { + if let None = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { + self.test = String::from("damnit"); + } + if let Some(plans_vec) = + self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) + { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From e410185330a710262acfa01252a7015659ecfdf2 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:51:51 +0530 Subject: [PATCH 39/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199589 -> 197064 bytes rate-limit-filter/src/lib.rs | 14 ++++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index cec61ca4a68499c76700a463cf2c8b5091026ff2..cd8221ec2c2273015f1a93cf48e9b3866bc765be 100644 GIT binary patch delta 43453 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 delta 46034 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 BU)=xz diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index c10a81a..e4293bd 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -93,12 +93,6 @@ impl HttpContext for UpstreamCall { } if let Some(header) = self.get_http_request_header("Authorization") { - if let None = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { - self.test = String::from("damnit"); - } - if let Some(plans_vec) = - self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) - { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); @@ -114,13 +108,13 @@ impl HttpContext for UpstreamCall { let mut headers = CORS_HEADERS.to_vec(); let count: String; - let limit = plans_vec + /*let limit = plans_vec .into_iter() .filter(|x| x.identifier == obj.plan) .map(|x| x.limit) .collect::>()[0]; - - if rl.update(mn as i32) > limit { + */ + if rl.update(mn as i32) > 10{//limit { count = rl.count.to_string(); headers .append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); @@ -136,7 +130,7 @@ impl HttpContext for UpstreamCall { self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; } - } + } self.send_http_response(401, CORS_HEADERS.to_vec(), Some(b"Unauthorized\n")); Action::Pause From 3c3a61d1757056b3e12df373591c3a3221eb1905 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 13:55:08 +0530 Subject: [PATCH 40/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 197064 -> 197084 bytes rate-limit-filter/src/lib.rs | 2 ++ 2 files changed, 2 insertions(+) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index cd8221ec2c2273015f1a93cf48e9b3866bc765be..0eb8b9e534b4e36942764571da232e7b316e3b4e 100644 GIT binary patch delta 18775 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index e4293bd..72c8dc0 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -84,6 +84,8 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { + proxy_wasm::hostcalls::log(LogLevel::Debug, "testing") + .ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() From 6551fb39dd4c1017ce1cd48c4c688361dccbd5a3 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 14:09:47 +0530 Subject: [PATCH 41/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 197084 -> 197094 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 0eb8b9e534b4e36942764571da232e7b316e3b4e..abd61be1acff9743151db9728a9494c99e5348e5 100644 GIT binary patch delta 115 zcmV-(0F3|KgAC?_46r%{0R*!<1!DyPqqCn10aF3lv!Pv40RaQE@m|FO0YS61VM_r4 zL6iStfdN5-e`B|QV*v-(0nwL-Is$zGLAL`t0x2^O10(<-03ZP%0uTTq00cmn3t<97 V3y|Z$01%D?01F@kw~1~7Q Date: Fri, 19 Mar 2021 14:15:12 +0530 Subject: [PATCH 42/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 197094 -> 199830 bytes rate-limit-filter/src/lib.rs | 26 ++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index abd61be1acff9743151db9728a9494c99e5348e5..e38ed07bfd8e939ba758c333e06c611c26a2c88d 100644 GIT binary patch delta 49010 zcmd443w#wt5;uCP=j7yZ5;B26LLP7u0)(d^8W0dOD4@vO_Y+VN4G4nBqRVmu1PO{5 zok$}fMn#D{6bu?v)S$>iQ38t^6g94hup*$cii&#w)jcyg7*KY<@BZ$^-80kG)zv-S z)z#Hi)t!Aaucz95kZHAYXv+FA6XC9~n`A1!9a0K>@>` zE=0gE3?KQ0LBPd-h7lzik*@(YNJB9n3L(dbr(iPrp8+WUi-~GNQOE?{Xree@q5?Pe zHSk6I!akp$|M{BvqEH5dUf3(ps1*OTaN=8RVtEUldMEl}m1s-Gw zKWg&%eMSHcPg0c7-Y68}cKPwYMu}1WSo|XqONz1~f&%sXk|~gBBt*r<`J#m|e1gBu z=ZnEVWTGC#TwTUJXG=f2j!VAa;{QfAy|G7)>jB(m8e1=^emD=4v1wOPRs9NIvkPiqLAD_=O zgCG+X6(5iP`6&?eN7L;zTgvJ0^{sILUX=-Vtcr_8Y1rH|f?J$M}v@vWGk2&QW)c8a{E<$eZr+{b-xf zX>`bj%(f-IPAJ=R~)ppX}$N)4Lv`#$MTpqfq*eNyBd#kHY^FP3vV$ znmF>-vG_vYVVhzy=!o4crYU`4cZ<8$Lv zqt@7Cd}eGlX8Iooe5QZCcv!3yCB|Du?~ja4#x7$ftuekgem8zK-Z0)Vwg9o%c$n6T z_2L!dLE}?VEy|4h#csgoiJ77h*gHg_QD%HWHvM9}Cw>FjB7b-v9RZ2$;sNoQctUJ6 zz7_9?Z;g+Q1!9(en|MXMD~=mQ#>>=vv-na}ivNhC;wR$;@tyeD*dq3cb>f)#K}f{y)kb4bDuc7f@ix*Jxf|>r8jCIEI z#xKSX^r-r#BSxWrKRqZurdMdXcu0IrJLq1)AM`HmruXQ$@w#9_wz1y`e}tFcMYT~x zGyQYvIn{=rjUv>00Nq?+JZtjAH9|~ zipS^!;~V2maoDJ!xYBiT2kj@~I*Ib__O7^LV(kt)H@J}>hl1CNwL9$r@h@>|Ny8Mo zSwd!X`SuMy3%I=#b~IeOV}q|Ci$uQukHIY)bY@CdHmHhU3Cw~lp9ot^x7)vGW(qvc zPrQ~Nk0+jyw07qPU#{>COfW*e1md!vC#G;sKPTSFI1|h+{CL{DoFBjGRF|Zl+@=Xh z$xR&c)_P3`%}^CBN>UZQoYWznb3#U*@L4GGebO`fGtTlpVRyq!w-wpGP}D{Kd~4lK zJGxP)J{!5D&nhgOIw3pS;uKn1knLkyTaZ#e0A*9i7sCH9PUoB|jhAio!S`(2X-{pG zn-kGGphk_!7FOawRK##g(L>v|G-?yi-4PN@X8lh4*G9bt*E-aIhLZk)>3vX)fgwMz zg4SN9@OyJEvCV~AH4Ic_s~Hx}x$AhuR@xm?=7jh2>mK|toS)V%Cvk)mdz}P7J+xz- zIOyc?(?dHNnNwJe9ELFIafmQsZ%m>N;OJnSHd|(_~9<$r-!zH6LXy$etKwSoG5j2`01gQb7HZ|>8)Qpyw#kw zRAuR>gQusG;&W?dBo3x$bxM}lgXx^oF^A`yH|cyF;DopF-l4)TowTkRdu*>&<&Il z42JwxOhIChMas1FPVtI3%K-j7r#n7LZ>yw08{x}}1$DE)+66*Lc13*@itQ?5PAVMg zM8~e3_JtYCPA1bSQ+@DRnXjKzrZ;QWL7*iAo85h})A($kKOf@Ln4Immj7iqXCAIp@ z>?n)ydCezG%Jxs-Lb)P_I|UNIVe>yo@Qa&wYr@^B|C6HR`r3|Fj zdMQ6r8@*H%QoFoV0I9uRDjKPyZi*QOD{XvqFcb&{EVOP{d1Gz~YFFt{JRkrpuUOkI zP4wTZnyE8m3Xr*0WhwyhV+u4t6*rI!#ac^U3~Ne=K^m~aPVIPh?@~7}6m5kVxyS`r zBNRvjn4DFzqRMA=w5sqhKj8`ui_9APfsU7UEPJL3gJGh_o8*c1cpO)NT#QwWm5XT` z!V|1}WI4({Y$u&j6DVXd&r}>f16z&9>|>p#&^&uW=SFy+)p>C8JR{BWWibbp$6~;& zGQx1}?>sn+jF7+gbj*3Pt5NI+LW!Rd76ZXZ6Kc>0VeI{=E)-*q0=Bh|yw_TxU%`sV zDCVM}m@$?)$ujQ*au5U>Sm6N<0c19CGPB7Xj}kqZmVRYYc=ITQ8kpljG~~|}W_DDb zD31j`x86T7)R;eDUd4B3Hl^W9B!oeRwH^=iIQQ!|24q?XJ-~5|v0#CVQI0n&&#LtR zM;Or6Du2Ymz{uxXE8jxunTmq5-lcByjI0z?zdEV_W5k`n%_@d$sR;mF12#je8md+q zS*Z?4n4|3Rc^M5*xG6w|U=_n0Rq;q(xdj83QYEF<2)gm>{&DKDicM(Mofm>FDwVf{`MEV`KG z1WQ%Sv7}JYEVVBTkWW{;yP;tHLej^B0eS< zie?3{W+rA=jQN(mvv(VM%Rb(_Gl+IPzY~6kpMO*C!6j8btYIO48y_?RB=8)TAW%3# zM9}}-{`&lk21Som`T8dCm;<@UZhV2Hnu=8yTt#%ij_&(JU^iEsW?Oxm*l+bcOD9v2 z%(6rM+R$#hf4|Wk6izaK1$a3ZD-C~ysi2MOLG4fbwFs)uNkTuGLn`7gyn>oY1AS~n zSt1xgp~k-JqOV}LIV3+spXDK&QHfcM+fh zUFgw>GB@htTyjV@3QQ_6-vr3&RuBSpy$RE$hTtLE7#C(IbTvBZ&rnJiz<^w6ZR299 z2SUR9kiwuA?3WN@5mpRteiSz!4bw$=4koYy!V3!PAz8cvqjBBPRKKpFQ$Z-&+@KoR zEz2K@Mh`_>sbjOS#^;JokSOtE3$mghMx$BpnF7H$xxmQRtq6t5+-5*ND5--kM@_7t zKnK7#u$mTS#dB!_W1=8Chj;#5W1(ILN?gX#!dNq&sMCOU!D znk)nBVH9(QlMMN@h(Sia2#1+jESj7RDOHdi&yCFvpcSk!h42!S9UF=b85gHxjI#p} zHerh(u6-A#gGsG0kYf8W!bR!9tN_{_k4);D&P@&l$3XLjT=fNk8;|Bj^XH%fax0)P z*FY>HR1JOjt?vX-@-ruK-{GsHxv41X=kCGBMd86b=Jm}akVGw5Ir?Dnh#%W$BCB%I zjFYeoZ!vho2czLEbGFs8t~N3qUX7P7!E=nOo% znNJC{oBn(zflHirqAbYiDI3{N)?~b<+7m8MwjX;q3Oui;cq;cNSQb>0nOz;pP>$AH z36WDaQFo5&5|BH2RnP%-pJXt>kP;%fT!RKPFejUp+i-h^nv)o!Bmxu6AA=wCWHz0!ynB35WA%+|P=7bo)a}G?!lf>)p8n3%^^Tb%yzWrWzqo?!4Eue%Ez%QnL7+nq~ zM(tB{Zx<4}o6}QI=yUTkg`}E@-a+9SZXep7CvK1I1%t_hFn&?5`5lU3_V%WsSV!>& zk>pg~slc3IRfipk2mVUJM>rBsGnO+1e~@@oC-D}r5($x~IzUSaqXZRVnEi~ECobhg zo?tc0b!Jd8PLwFa&bgG7?(VOdj81awWUr+ zp`_bHZlG0sUln?QxyBrt&{(Kpz<8ks9@T7vM~0vg6K_u-TL&W@CRTUU5@29eu=cY0 zm}4C)!mdiGt0-GWSw567SiK~OWArJHtdCoU74mf>JJ2T~4nxg6wiMNcpoWz>)n+jd zC>p$bMc4o#?Sb(BtchmvFs!4jYt^@;lA+)G1s7uY+r_nqs4jKh36nzsYEglN6>Ye{({7<&1 zoE{G(W7P2Vf5ro0W`h4)Jb*>_uXrG0=;L_!u;%}NHS}ua!(fE}p8s|D-JA6snQQYNKJ@uJuJ#m0!#8upfe)Nr4Wgbt3j8sE1b%v{$KxC)KqS zL1Kbh*E0HmydvdOA~#Z#2XS{@!!%_@2oeg@MXhULRIHYr|3g*&L3apV&QrErO1y7G zi_C?*^>>k`)FFi-5v?LdJ7PzmK~d;xKs5|$4Wp3iN^pU-T%gvai@rp0PAU6_0aMLE z-ZHb4U}6kl`-8xCu>hMz0&}=uaN=j` z_Ln&A*JEG96{}VM!n(Hez$@h12OQ)yYd@AVtE)d@*?`OAs3Xjg@y&wqA#AWL3<7pj zyn9OwC1BT%&r%lJ1PrlCEw3oLVlO#XHoNxHWV`UnsEXNFWg1j!KXvVe*B#?BicKJn ztl~v(D%y%PVX;X|Tk4o?y%d*Yj)-%!6(KLR-0pu}s7qZruWOWL&8wllS*&8pt=|%j zu?xl&!DMxK%*A-`G4@ItX_t;&NdL0WxUDHIvM;*recEg{A9n-bGscaADQf??p#(cg z_uD(iE@T_8Szs=-C*5AdRulA*U~5bWnvQ@?8W!e}6B+^g&Iv`07eRA@8w55O-ih+= zf^9DiCbpx6cK3+`sM4N2@#>^Sq%f2ct1-Tt*p>#{nRoQ2o%V=3GE)vH?P3Ic0+{_* zLK$a;#oTI_-jPp(>~}Xdv%kNiD-2=nCb2o}GW8pt)VU$7GtpW(#zqNkF&R0-{&Z41 z+H1$%IS$Rd>&^$Fl<~(Nza-6WJ$XF+&6bm4^RwTa{3P;6|7~;{$oOHNu*ljq1M_AN zeoR;m{qcUg|KyAc|CILJJ)Q4rgkJ4)S1bIEy{iKt3-8Lq?~c2&`VQuXhu9LMzNEe7 zchvV>I9}c?W6KUK5^VnC1fD8wZB{u^I%jj4-R&BUH;I~!LQvAMCw6^V9MpYafgQ=-fs$gs`6w@GgS1hZN zL32~ZGqdg?$fQoQuR_^-XNS+-$Ys?ei3gYM@>0BX@AaAhDX&wimZ(r8wvCwc?7qd9 zfX>3=BG7C;XAmv6$IZz~JnB)w?#wK=m(0lzvamIesUQ2moUtf%`Mpoz_osV@2TD~v z_VxGOgO2#}zL@~uI`<0vZkT%)x}(Sa0|<%YdABqEyy=5=XYjmdE0s#A?}bST-mdJJ zi!cyuCQ?1&^hwCtYheuTOJw; zIy9oOz5StE&@tU??ij>%MRW{08y!<=pV%>?lsjg8={Wp;S~}S2n2IhBUuU!{`N$op z=ui+-vH+h7(O%|(qmZgnDf^WLKcubpGSDq!fM1vW&LcOU6-my`uA`;)5ZP=D?iQbaR*}Cbm1vuN)#9o6{b2EB3AL!p>SPt}K@*SL-5wp;06VTYwy|2t zypOV%J(}Nq>H9#+vDSUSNIZDnn$I`~?ZA>Y^o-qUNn0wfxMs;p5(^gDv1NY~WsB?? zWp{`t7FGOMw!;XQEyEhx)GES5FPKSIlC_>wdd)y;kDIcb)phSvF0!+_9`yju>RR-) zi{Y%Ur5?apPnT*yFJI7l)J79Btr|S^myopsF%C?V+hA=3s@1_d>XHBtC0X0JQOoUF zPi<`VBNkRRmBJWqakxwgVn8QqGKn_hrEHP7t^M zSkB^h#qyr`-M>5wYe(FQZY>|zE|@6m3%mjQuwZ++pH1HE;1RHYnYH%l6`4uM*8=w& z#*8u#+YhhE2Ca1~UdHboE3@fpd;ZGnT0zpP-TSj#eH05`-sOXm`R0>}viRmeba1Nz3frtG~qW>uZ|B!Svah z-uTUa{(Su2{5-!uqka#n-!m#0GEx1$P|=wR?5`?nP_}Aq7{B>16ykTo3j^_+_+m%o z_ImMFyqCZD@4zyV<%^H8$FJ>ecUsp#Cj)L0IOnbVVys@*+1JndH=9kBAJ}KUjUGeF zfI$FCHwdwQjJdY98uLyGLjyvyE)_T-<%b>uMcStnX-H62$e#C7h*noT_tFBoWG@_U z=BI?M7ZmLdzEs%Iy8BW?P%q3%%7)uD1Mk{W0*edkO=aB?=c{mXWWeXVzdAU4VMw zzk?A7%;{7KW5QMZVX zvkf`X&q}~ zN2`84p(l=S=!pJm_eLg-wJ&;Oazp4o?9jtrGEd~-@oAa8M}{F@zS@toEl;ETMxD5Z-|4KVfKgm%1V&0H=EVCwtYJHEqnB) z=1|_ZZOpWnZfbi3n}Gp)9N+k76~VE5Y6 z?$ibOQ+f18{3?%Uhkx%SvQX}l?cIfyqUZ@hDDk~=>Po~6FdKC(A#JKIGs*mi!yIs|ye zp)nVnZP&h=W!G+N;$j`&c76mI_{e>o6q)As_;)>|``$g@#otx;n)#jwz4^ThT!hti z(4XG>)rB74-rs#4P(9pzT~qBrX~*TJ*ILE3SVl+hxUxQQ`;KAF>M*0gC~)1eZONbI zGr%?IoAY+wO^?_w@62>7`ef%9bgRALpJ~CxJQ_>!g8+5L$E?-k^_G3p`-Rvee);}*6us<&8QH@v($3IpVfy0T8GPFbA|77<*SH84N&BY{ zT7pXR51Yj}AncMpyuaJu*|o_67?vq^JzNRd7vO1G1C3(OEN%?eSG6h0wVL!}TwY!m z*l{&?1lF7L;<4T~|ah1jG;e$DQh3z$6&%^t0GpM%Da!0$qP;qK1qi`3#> z$YvLW^&Ll@R(q>xHb{SB@7rA_j{a^Je>AKaJmmr9+;j~+uqVJ{3lRq|CxW3q+8T48 zk=-zqWZqY?_2Z8T9QxEJkJZ5jeEM%n*s~whGpzjwK>fIVe(f-^bcZc#^J0s30KzJl zoxkrAyUphfusC-6d?tR^f6j|+&wssdVlgF_-pXn1GYjmjFP=u$mM<9L!o9o-Z{2$- zew%&CtMI@tc@?hwQmw)iAFzk+>un#{*WfZm2VxjfFJkp%^M2i0YG4trOL6>BT`Eei ztlC87uB;UUzG@_(C5$-m80~)O-vh9o4OG7i|9w+yM4%9hTtCO9z%mHyz5=Oe$~utU z^6L;sq^PeHh)5ao^)1vWG9pEnt+C%Zh;WpLzWE|qVK-pPa9X&zKYo)HP#Hmc!#CL+ zk3tC9K|IPuht6T;QUz=15?GATm>OFix`u}emL3e>&xa~-?#F)iNZ&fx@gvUxCMlmn z_O|cNJkNg{1Fnjz* zGF$!gKZBXAVwkN0E?Xhw(P67-uvPvKuh+3q^pBgFt+pR~ybdJK&h}$(IrQ@5_PE~;BgEx~FzPSGRsA9ZFD8rkTV{LQ+sOf|~#6fHqtSkgXay>GWXmq&z-3`7F zOKXIAz~yX}sdO77h7${%gvu#Ff@47%Sp3FbJh*-wSe$wT9Tl?0IaN+hta?LEu3N)8 z9hgl1gsmzKDR&{(IslNFWvVwcx6I30?PSGU{Dv%e!X3iG zQ~}UKk9xI+AUe|_SBPT?+*2Oln8v8}07u@FuNbrs6LD1(4U~ud^eXu)@gB#MQ^9bk z?JTk2UD+d=&Q7fPtjbr=!N;2mL{NSv!_hPRJz>Q%oJgq8PfUEmKfs zK?rfn9B+ll8w;^HV?a~|=vc8?ig<%q>Xp5biL1?tAJb+Rr<6s}UxkVM+TsAWVL8H`7VMl~$AP&&!4bv%O_X|=>f#;mgRDH0`+XU5x_iA8pB)l6H8~uqP8<6lF0%C_3D{>}CGU zp@LV@gGyqcN<`tiVpLmnP-Y$Sp5?N-0oE-v`nv{n9fjnOM4U9-gcc>zSg~=r>}S#w zoc`LRd`@>rqEtrjmqcC9xek>aiBStZ1a4uBwSXJMqh&c#stB#o#+XuWa&v2~0#sHe z(Gx_|18~gK93<}sJfAeo zdu799dY@KR?oXyqNbGq*Zf-*17~b^p=>v`vk~gH#aJo~zkwR@!V2FVJqc``wSpj95 zU`~`GmAXZ#OnF`^ok^8)Vk-UeXLepWzbReYR96(sAz83`_DSF<0fffP6qUg=!eQ1L zX{J*$%m%VmI<=s^vVS^V&udLm$TaV(T%Atu5hJYLPDR!z6?>edc? zh=B2<{J!8QuXMsEhc=@W%o9YEBF4a~hqq4Q$u7;PS4zFia-CV+jBd+4_C2VYRxyJ( zlHFZgRh1EotITYUV;aZ4&@l~BR*F2YIpqWjp?R4P%Uhe%KymCFxvn`4;ty*aO2&sZ z2oVgkYISeg7#l@paX5Gg6((DShf#1r<(w>fmT0N$)`B`Gl<-2|!dj~qdO5iTopHXi z)JJm%M6`w*TFCv83gZN_)~UY1k8)C4)kly8bE77-zXc6QbIz#oHV;ZMSbu_L^urOh zwL9gY96Ez$%V{~(Bm0CSG8>eAQz*v*cmxM;ggIM&oI{zp4mqgf>M%%= zcka;~8EQ$XLmli8?=lrW$ItK~IPfpO1+6`Jg_$NBmYKnz=`@1_+l0th#5mWm+Q4*; zLojkqOKKm_r{i!S@b~682O~GMr0$ta#tQ4UFm>LQ>*F^3p=e8rJfjuekgN|ig0%Y| zjwZ@wH&RRab}OiHNYu2VHPPz$-QJzDq&0<3I2I$?XUW8lG$__ZiSh0Hmd%A=fXWac~OwwNs$FjzVRtuJi!)af|JZAi?DR z6VZ$x^gGA3D9=Kr(+rO2y%J4Lkw15%?oHmsT8<^iuN90aENpmRB>SI3qp-`CYt8`+ zY-B6&GxD2rXbdfrS9QmV5*eDWMAKjn7dBER4K-+h!II)Ach!;8Z1-FsVwbsE;map_Qy;J0m1uWAcX^jXE}$5<-N*G;qTT0K zK5+qEe(J_2_NCGEviw_L$`0zB*dhmB$cZC>75-aPKfY0GiOO)0t5eWZ9 zk)nD<)ESdM>8)d``%-z5IK73%=9J9}a|a)+SA=brf7Zb@^-8E9nm=h)RlO3*aM|up zij@DMh%D?+SJ3^kra$KJ=E~TMX%f-K%4q{Ag_ZyL18HvbG1knE?UZc>QG2oHfZQ;c z8qs}n%pl6hy3fdp>;39$-~G1r;E!*->Fd4fxA*t%n)PdWjn70DzF1y2m{N1_j-5qs zrZnphIPoB@>F*sxts>}$22(}`3N|5KPy%}$dHWzr zVfqbENk3tTrk{-U>SRrC?9m@InnA}}JYhQhLe=e0wrH_V5!Y$!G5^eaQLK;rrRP&zmB=ZHSjED*tsk3BT(c z7oHnkW?f5-vattM{wO{bMI6w|o2M+EIIa_2w!MZ1vlqT^0xO%I7rsvdq=Uj%`&$DA z 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�=1!g~Y#YED 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

SFX6Yo44} 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 SkM$dD!3A|oUxDv2J^4Qp?Wq3% delta 46593 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ⅇ7VqUjAT1Q3 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, - test: String, } impl UpstreamCall { fn new(json_str: &String) -> Self { let mut json: Vec = serde_json::from_str(json_str).unwrap(); json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { - config_json: json, - test: String::from("default"), - } + Self { config_json: json} } fn get_paths(json: &Vec) -> Vec { @@ -69,7 +65,7 @@ impl UpstreamCall { return Some(plans_vec.to_vec()); } } - return None; + return None } } @@ -84,8 +80,6 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { - proxy_wasm::hostcalls::log(LogLevel::Warn, "testing") - .ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() @@ -93,8 +87,13 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } + let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); - if let Some(header) = self.get_http_request_header("Authorization") { + proxy_wasm::hostcalls::log(LogLevel::Info, format!(" {:?}", test).as_str()).ok(); + if let Some(plans_vec) = + self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) + { + if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); @@ -110,13 +109,13 @@ impl HttpContext for UpstreamCall { let mut headers = CORS_HEADERS.to_vec(); let count: String; - /*let limit = plans_vec + let limit = plans_vec .into_iter() .filter(|x| x.identifier == obj.plan) .map(|x| x.limit) .collect::>()[0]; - */ - if rl.update(mn as i32) > 10{//limit { + + if rl.update(mn as i32) > limit { count = rl.count.to_string(); headers .append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); @@ -132,7 +131,7 @@ impl HttpContext for UpstreamCall { self.send_http_response(200, headers, Some(b"All Good!\n")); return Action::Continue; } - + } } self.send_http_response(401, CORS_HEADERS.to_vec(), Some(b"Unauthorized\n")); Action::Pause @@ -140,7 +139,6 @@ impl HttpContext for UpstreamCall { fn on_http_response_headers(&mut self, _num_headers: usize) -> Action { self.set_http_response_header("x-app-serving", Some("rate-limit-filter")); - self.set_http_response_header("x-test", Some(&self.test)); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("RESPONDING").as_str()).ok(); Action::Continue } From c143c3bf5455b340dcbe9d182c4533b85db4c4db Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 14:19:15 +0530 Subject: [PATCH 43/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199830 -> 199705 bytes rate-limit-filter/src/lib.rs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index e38ed07bfd8e939ba758c333e06c611c26a2c88d..f7bb0e5b0f58eb5a60426d0a8d128ad94c9d846f 100644 GIT binary patch delta 3457 zcmc&%O=ule6uv(*FE4Lq(t)NL+bDO&U?*0gtI0zmy!-GaY7s3Kj3A9rkTA(2EupyT z1S>VrLQ`I7(%MDApSY+{QK^Dp#DZNEaiO$33*B@fw2Fv}B7W!InU~ieYQ=@gV(#BL z=R4+2`i*jONnk?skvi&h{!6|9md z51;bLNT!+o11Gf`e#r|{V?os#sRlXsE1v#=X(#+n#;ipZJ-dJa45* zuo2_@To!(dC7omn%Ci`!0hol~krKnQ9`}t%WqhDj+QdR#UnD8Qr9^mXnnRa29`tG+ zNdvt?&;iN_!ucpDj^D+NN+(v(SqfP2+=9Qx0M950-&l^W@=f{TyK9AGTT}6x5xdN? zR6J{jIG>6M2&l|T9WrhYX-TG3?9e9(KM+WPLm_5~U=gQJHR{nU!T}Bai4sl6x(`h~ z;WtK261lnRfoP8&n28K}rCjaLWN_Zas+`krW?JsgWW$(8EG|kVb(PRGreTW$2`mWj z2#vH)qFfJT08!CXSzHO2r+F5+h+rayqFxKUN4en;Z0+JNz`m>bbl|9p`h-7}V=zv$=eBqVgH)b! zG#}eS_*88=hMpb3<_phvJ$>ppIJr&V1U18(f_X3mXP};!>M^Ls9I}-iTZr2<8ruua zF7cb92A6vXCM2CKX+NKDD8n%aJ+S4e-j?dc$=1FWMI8yV^)?ktTVFR=2758bE(fP0 z-rjp)Fz0%Karq*#x<} zx!U2WX#cqD!JJVw5_PMD5UxVpG4wJu{Sj!agYKH{v&KdX*KRc-Z8?Mms|QJ2Xw(mo zdK|7}D-r!MSg8lIBo{24qZNRsE+h1IlD){XSPly|B1s0dFZ6kql?&jd7$w$Ajrzlh zCO01H%blW2?oxEBs5vTD0umnLIyVj@PlRC>1xMc*gj`ba&8eTw5rYq>uy%pK!JAaP z-W6g=Crq5QvyVFcX}fTm-wN7f4qFDLX_YIyNZk^Z7?#jmxvvy&6b(Z6FH+pT zJ~42A3C1<{PYKrRd96`$?w!|8TJ!%Wubs5!_sHwV=;@Tzma`vM09FU1wLGz)I_Zpifm$Q+=M%V_yJ@wHx^(-ERQXVjZ+t zT$t2hJGTUG=swlCBtW$P_FfJ~q_RY3Dehln9V>Nxtcb+t_R6>XMkLS@r0)|s;P7ZF zl)h{pRZyWay|j$Dorg$xlAc%Pp{eylXbJjlI(4JnbqZJFh@4XWC_rIT}z?ymbZ7cf2RdH{J??pf?`9F$I1BW%&IgH>_jo2HxI0skYYFZGr&? qcrn}xL4Ky delta 3630 zcmc&%O=w+36rP{^e)8VE?FdmrV`c6&(Dzz}w~(7qvUv00C6PuCW? zc*#r03?KFC!v1Pe5#y0;2DImEmQ*E+HZ^APbLhAo?y%inT}yNOT#JnaBAc0lx-FW4 zDC0h6Ca11)G7e`WLBY8x2Hek;Q}{8S`a(vmNh^)qpcvOevsjFE zY~<8+r%sv^5fr8q^*KalDABNa@x!!MjlOM-J#GaS2v{2nPTD`!V`hb*)t5%%=o0uO}p)@Sa`N&W9slAYsNY+J~>H>`O zqfuESjy{2n@<5@BT53#+QIGD?a#ufc9Ob>bNe$O|!^Zl3UN$K<^^DSn=laWG9=Lrh z@{xXmtjkjoOz#3*?DYY+K*xat-gdyZlLwBy&O?)CBZpzhBPLPoaOwg<)o0WK?@hC4 zOv4E5mUXGAOW4&s(xkW(^MVVQ6*0pR0X5(okWtj>m*VF5PqXoeHv^>6B?6guOyrh{ z8gwDrq-sAV--ADpL)PGSmzjIFg~SnMx5eU^HFB3FvDiz~Sj=DnJh3L!8*qZW8LWUH zI6a0T^}YaX{@~Kd>1WzNp$v1bNV|a=g_6h|?Vmqf>$O#`sJuwrmk^gda@k7^b){fd z0N(`NRl3=Q#|8z88~f7jBRxR|we?UT56&hhNKsr7Kp>1G zh#SUZXhbM(ScZS%J%$;>%l4yFC-C18u25R5_fac^|EkuA=qjm?63Y!Mx z3mzyck)+JLpy!JtEZZyvq{_aB`yN<)A1HF1Lp3D7E|{Gvlq!S4;eHh8YynW zJjIkU%Lo}R#ZP6FZw4i7r4ycqJDrcg8s|174iJf;XcMZgaHHML?lse(2lpS=XF>Ts zu(lM7UJP$9(HRxiAonrAVi9sb79NIKy9}1Y}5dZKmzwR zKrB4!AgC8kH>;OcMbUksJ7P(>k3Rd+M;{=r5lF-$RMk%SKxcI(J5@J_M2_J_vkG6f zW9W^SHF5_iCMEinscFux8A>YQzc*`}Gb zO?T&i-S_yGi9v~%oObVlS>C-IPU=(|u6~htoKxeY2~x98;uq*4Y?iEZbMIW%f7^mZ z!axn#m%xhu*b@A|#*w{^ai1XEcjhwO^B+yBU~CN({>%Gva*J4H$8Sx(d25nizBMVn R-IIHTF;>0Yx+GrS`v=E>iO>K5 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 947d563..e558cde 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -80,6 +80,8 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { + let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); + proxy_wasm::hostcalls::log(LogLevel::Warn, format!(" {:?}", test).as_str()).ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() @@ -87,9 +89,7 @@ impl HttpContext for UpstreamCall { return Action::Continue; } } - let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); - proxy_wasm::hostcalls::log(LogLevel::Info, format!(" {:?}", test).as_str()).ok(); if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) { From 1446b7bd5ee44de75b34a7a408b6992e3c2f0484 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 14:21:49 +0530 Subject: [PATCH 44/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199705 -> 199324 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index f7bb0e5b0f58eb5a60426d0a8d128ad94c9d846f..56fb708e17a31cf0c4631d95741daeb201daa941 100644 GIT binary patch delta 36196 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 mGTqO4j3^@9OX*Y(y9QR~8nNB1toc7R!mWD% delta 36496 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

L+R|CEgKj#U4q0QHKHnIdJvtWl0MH1l?Ss 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 Date: Fri, 19 Mar 2021 14:24:59 +0530 Subject: [PATCH 45/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199324 -> 199707 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 56fb708e17a31cf0c4631d95741daeb201daa941..0fba99a0ad7dd00f50f1ff3e3bf06dfb4b4b2999 100644 GIT binary patch delta 36503 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 delta 35972 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 LaD@ Date: Fri, 19 Mar 2021 14:30:53 +0530 Subject: [PATCH 46/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199707 -> 199884 bytes rate-limit-filter/src/lib.rs | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 0fba99a0ad7dd00f50f1ff3e3bf06dfb4b4b2999..72c83b10df77dda846f6ad70518288e3ae561759 100644 GIT binary patch delta 3725 zcmc&%U1%Le6rP{GKe@Zxj*^zpSeV^Ldec_8irj?ShdY6L6KTW*D)d3`n^HD?Xk#dO zC~mMp3ks&B*w_Xv7-+S%Cp>vrL%;*A~5Eb_5f^e`>V5}W;YWc%#M zOI|u;_@Gx4_D74d7>;EE)6(2KyT}@$$lgpr-4pdt z_MKl{{zOB25NDyz?@Tjq zOh5_r`Z}oV08;hwI{BRG4m4|&dI0KE;zydHu`M+LZdvB+&K zY6Of~dYUEbHIikNCmyDX2?kM-=DetbWGJ{+<9_yNrL!&5Hnd|DV%n)8OXfDz0Rg54 zxW!`@&MhKHC_Q#o#c>PwK1-_NpnX+%o5UKz(qd6>;Y0|N)VP3*p{XqT)yD#EV$Mx; z4hQ>F=r&<{x;}wH~%X6OqO)}@++Ja!Tos3{ zJAPhep#l~TK^2I>U-%X@7)!*YBVdYy0YY;;qahRf(F##nZXkaN-76;NGdpAkyjU~sP*e0^bLVvCDZIBZ5<+wG zoy9D_)M&WXr8M}038FQY#0-xlSiu?!`inG1VU@P+NOU6e(}_i9dd&UlMW!AI2Kp!f zB8CkTl^jh5Jpk2-m}S(U(3ZcDalRgwAWNaP0CO7EhE7IiBZ>j5BoDmEJ9U*C?d}$6 zCLL(NSe^nMUFa*Ns_4XHW}c3yu!i{n4=5~RJ`JkE!*klMqY**nNlqoCDp1kP48?L; z%yA>Ky9uQOO}N_$eBn_AK^@}M+c7A*0jfI&$_={gpo<2GTO&Zk9CoU`2qY@HPUTA0 z&49=u^p+*qvi15Cz%wOWW9Sys2>G^POXi*bz<+zINn5?w0> z(Dyfrfi~((|B8CceER=UZ<$XYPW@--2$uM>M7+v~9}MA+R>X531ymy8^3)xLnYK}j zu?>DZhs%H)SDZ*~3~}vd_F)EZxgD9HZPW^C)-`ImwoyxiMorgJSX|qvvDY^0K>7G@ z=HCbI-R52N&MfU|eYh$r=9XQ8sY+r_pMlsC37xgIArqQh6+(WSX-Li9e?@H@>65te z*lT(f8Qvx}8#VQ)G+g~6ac8D#KrgsPubT;qKJNT2cn|Q+;^0{)7U2i62EC~6HDyG-R9eOoBYb%ruhEAlP@!d8yjPLLd8mWHu3uuekWdi Ued3wDn$2UraOKWr@!Y{b0RUl_Gynhq delta 3503 zcmc&%OK4nG7(S1CXC^cE#tV&_HnE(0t#o25bagY-pz{Z3QYk))F1oOd2uirgBCVka zf;X5_0~Sn~U}D=vK_ws+3JO&atXQy%Aa0~x6m;oAXb}++7k>XaGn47VT5(~*%z6Ef z?|+^%>+c1pR)cfzl-0`lPfnD#H}CyoSXFZM#)E>+$>~IG6Gl<3_3g6{L0W|R@Bs&z#8(M8A2jP(Tc zb6NB?wy2sJ2+tBw128keBBMrhE$JWC#@fKUe29%2tuq(nGAg>9OUSBBgncAqZJ`$! zIzU-Q7$1ji^4pkE==usWI}8rIbl`syfM*3nuV7dg8Q}ywXQw0!D9+tBT)dclgh zBC=HNu~YD;YCkwl=A;~hrmEUTng^43JXE6(6++^%%SBa*Sn^PcizH$Y5ad^((R1#A zq+;}y6;q9K-xR@Gq`{fkT4Rh)!Au5c;Dq!Xy_S(alIglt58te7qp8Gb>eJB0#sCZ4 zJ<2l*m{rnX1`q|B%927TDkQVmherWC?sLG4#*elcKPUMV^!p^IL(hccW^pYp0JaV^ zGRZBCA4}fSb(NbUgv%pI+2|~(Fw(>W3R5x#gGmVv@l0Xw5Rx$oygEU?2}tZ23S@EwVk(AUhf`DJ2r5PD6ud%|npn zbIP;hV0E$e*uv(HALhUfffdu&Fnu_09B#0?5h+)AQ;Bwkc3ou9l1Q9NBzG)Z^@ZVF z(riZnoHv82w5N^3T%1)k#SstJz*EAEePp~)-dcC6?zFiwXHHw-$N?KhWO;AWb`w^u zymUYg(^yXF8`svj(g#Rn?vU1D$mo~jpn+^o5l**Zdz zN56mxl`}5)A^9<@W8djDS#+q~7IV!`j7+yLw%unve^X!78+~z6X0Y6cHE@nAP(2TQ zh%P4>_MhN|YnNWy({TZUoqz^JOAwM<`>?92Ron{x_}KjT*qhuIt7-}DvzrjhGVvOy zCpG7?Tv+FzX2Z1v7~sGrT*jV5KR`V~KGe@R6jLNCcG24-6{jWiUwpsQBS%v80UKfc zMBZU;`)Az78QBBcV(tVEC~coymF>_ibD43w1USZHY!h+`g<$tKXu6tr)8*l=@{TUx zILm6=5Nx+T3pmzscZtE-f1J5s%qm9Q4SI>!J6ItgVtTws4Wg1NsJR*HkIQX0fxd%~ z@zLVj7Z3nW=6&ISvN7ObvF)oeksKB;mIw*XJR_gsbqM*f$2~;`YDI2Uo464y$yk6$ zqKo0i^bKOnkrdoUaXEac6STrILTli~W!PZ+6iiN2?BT%5@PP)-iawKMx>tW6#Nc=~ zRf9%QIaLD~mQJ%x5o^d(6<~zG5)Oh?c^Hn`bHS|iyX~Q=LPMc>WG;j)N>c5o!@NbY zC=**GuwHPdKy`S0oncXO3$!IHBDWZ{i$Pu>S2QVjeo?a7&{3auD!L^$kHFRN;JL)X zLw$Y(a8!;i+ebz-lv{#L>>3#K_u~KIH#8;<(`cDdMyd z=rTv^4uS5*IsbnG-Hmg8=RkjqPS0UJ$zhJ#VV(%#i%xRO3coB+PQJS+ezh5jHJfj@ z@Fa3e<0y9VW#@KwMw@q68ezXFpvd|wR*ric7=bs&*522FZM+^DFRoGUyS-29e$%}= zka_>@Nga-A1M`siBF(ud40dXCqV0*#-9x}7JUoFOp@V>v0|t+!%FvZ};j0}GVKQ1? z!Tb_fqLWH&5KV0mp-0eBrn=thp~6Kus;A6=GVX$%?O|yBaljlzV~l>*cz1Hn@q}CD zjXQYZ$NzR}6R6V-?FKCxhT>t<8 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 6a88622..467cd62 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -80,8 +80,6 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { - let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); - proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test: {:?}", test).as_str()).ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() @@ -92,7 +90,9 @@ impl HttpContext for UpstreamCall { if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) - { + { + let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); + proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test2: {:?}", test).as_str()).ok(); if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From 42346364420db04b82a09cb5a8978851b6efc36a Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 14:38:38 +0530 Subject: [PATCH 47/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199884 -> 199959 bytes rate-limit-filter/src/lib.rs | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 72c83b10df77dda846f6ad70518288e3ae561759..5b6375264523c23e0179a762fde7d68f431eb832 100644 GIT binary patch delta 1813 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 YxIVwMII(zm(>(G_;o_g4iCt6w0K0-%^Z)<= diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 467cd62..6e73756 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -42,7 +42,7 @@ impl UpstreamCall { fn new(json_str: &String) -> Self { let mut json: Vec = serde_json::from_str(json_str).unwrap(); json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { config_json: json} + Self { config_json: json } } fn get_paths(json: &Vec) -> Vec { @@ -65,7 +65,7 @@ impl UpstreamCall { return Some(plans_vec.to_vec()); } } - return None + return None; } } @@ -88,12 +88,12 @@ impl HttpContext for UpstreamCall { } } - if let Some(plans_vec) = - self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) - { + if let Some(header) = self.get_http_request_header("Authorization") { let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test2: {:?}", test).as_str()).ok(); - if let Some(header) = self.get_http_request_header("Authorization") { + if let Some(plans_vec) = + self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) + { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); From 5bc6fd6231de9f94683ad941fbd5849d75940e44 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 14:47:50 +0530 Subject: [PATCH 48/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199959 -> 200289 bytes rate-limit-filter/src/lib.rs | 2 ++ 2 files changed, 2 insertions(+) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 5b6375264523c23e0179a762fde7d68f431eb832..e5bdc2f75caf17fdeb895512d048c6f7befbd488 100644 GIT binary patch delta 30310 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 delta 30207 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 6e73756..ba40197 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -88,6 +88,8 @@ impl HttpContext for UpstreamCall { } } + proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test2: {:?}", self.get_http_request_header("Authorization")).as_str()).ok(); + if let Some(header) = self.get_http_request_header("Authorization") { let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test2: {:?}", test).as_str()).ok(); From 7b26f29081a118524fe88e84dc253855e602e589 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 15:54:41 +0530 Subject: [PATCH 49/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200289 -> 200225 bytes rate-limit-filter/src/lib.rs | 9 ++++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index e5bdc2f75caf17fdeb895512d048c6f7befbd488..4393dca94f9c0e15090bd9c2e4b4dd1249698bf2 100644 GIT binary patch delta 21074 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 HIqUxb2KfHO delta 21084 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 onSrlEo Date: Fri, 19 Mar 2021 16:00:51 +0530 Subject: [PATCH 50/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200225 -> 200546 bytes rate-limit-filter/src/lib.rs | 2 ++ 2 files changed, 2 insertions(+) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 4393dca94f9c0e15090bd9c2e4b4dd1249698bf2..bd6e8677ad0940c6c5f5fda37802c140d7e3f98e 100644 GIT binary patch delta 21289 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%0AO$?MLJJ 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 delta 21073 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 UF4-K;#xX9Xag6*TLcRC@0N=4W$N&HU diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 1b5a8ad..04ff8bc 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -80,6 +80,8 @@ impl HttpContext for UpstreamCall { } } if let Some(path) = self.get_http_request_header(":path") { + let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); + proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test1: {:?}", test).as_str()).ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() From 2065ebfc79c6364e6bffd2dd48c5db1b510c915a Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 16:04:31 +0530 Subject: [PATCH 51/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200546 -> 200750 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index bd6e8677ad0940c6c5f5fda37802c140d7e3f98e..ab43c93625022d9b61c319d61bd30a48d01c48fa 100644 GIT binary patch delta 19495 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 delta 19522 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 Date: Fri, 19 Mar 2021 16:27:18 +0530 Subject: [PATCH 52/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200750 -> 200487 bytes rate-limit-filter/src/lib.rs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index ab43c93625022d9b61c319d61bd30a48d01c48fa..095862b74fb4e3dc4724fdea768ed2510887ef2c 100644 GIT binary patch delta 20670 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 2917cef..9b213cf 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -81,12 +81,12 @@ impl HttpContext for UpstreamCall { } if let Some(path) = self.get_http_request_header(":path") { let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); - proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test1: {:?}", self.is_rate_limiter(self.get_http_request_header(":path").unwrap())).as_str()).ok(); + proxy_wasm::hostcalls::log(LogLevel::Warn, &format!("test1: {:?}", test)).ok(); if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() { - return Action::Continue; + //return Action::Continue; } } From 1ddb93d50708ce6ffe01df4e5815064f157281d5 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 19:33:15 +0530 Subject: [PATCH 53/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200487 -> 197115 bytes rate-limit-filter/src/lib.rs | 13 +++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 095862b74fb4e3dc4724fdea768ed2510887ef2c..615f172bd1bee44eab2ea0c10c07b4488477427c 100644 GIT binary patch delta 48588 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 DhCSZc delta 33267 zcmdtL3shA_8#jJt_TlCMJt#K;^>9kZxz@mOu?qkvVTkqz67Olv-R_o&v?QikZ|FqkEV!6dnyU(YKmgkeEFpH%) z*!Nn-sT?bnBnW>&iRIF_1HrZLEYJ=C3GQlpmE(c?Hi^9^t1! zd6ci?>EJ)f)0JH13#PGpg{f3t)e@X0CWhk}sVdXLQD*qBq zI-|TPSzc4Jl w%2&!MWgjpb6v19Y<-g=5EN-6NA;Q5}v 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 7dfd1c6..268771c 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -84,10 +84,12 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log( LogLevel::Warn, format!( - "test1: {:?}", + "test1: {:?}\n {:?}\n {:?}",&path, + UpstreamCall::get_paths(&self.config_json) + .binary_search(&path) + .is_ok(), UpstreamCall::get_paths(&self.config_json) .binary_search(&path) - .is_ok() ) .as_str(), ) @@ -108,8 +110,9 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log( LogLevel::Warn, format!( - "test2: {:?}", - ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() + "test2: {:?}\n {:?}\n {:?}",&path, + ALLOWED_PATHS.binary_search(&path.as_str()).is_ok(), + ALLOWED_PATHS.binary_search(&path.as_str()) ) .as_str(), ) From 9ca12bdefd3c79dc2bd519a615b205f38247fd02 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 20:51:27 +0530 Subject: [PATCH 60/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 202008 -> 201918 bytes rate-limit-filter/src/lib.rs | 47 ++++++++++++------ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 19329eb439c4af7c229db06e5e6d3b987b1bf356..532f25fc03b3ed6b5fb88399ec7cc63196c294c4 100644 GIT binary patch delta 22702 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 Option { + let comp_type = Rule::None; + let rule_vec = self + .config_json + .binary_search_by(|x| x.name.cmp(&path)) + .unwrap(); + if std::mem::discriminant(&self.config_json[rule_vec].rule) + == std::mem::discriminant(&comp_type) + { + return Some(path); + } + return None; + } + fn is_rate_limiter(&self, path: String) -> Option> { // only meant to check if rule type is rate limiter let comp_type = Rule::RateLimiter(Vec::new()); @@ -84,12 +98,12 @@ impl HttpContext for UpstreamCall { proxy_wasm::hostcalls::log( LogLevel::Warn, format!( - "test1: {:?}\n {:?}\n {:?}",&path, + "test1: {:?}\n {:?}\n {:?}", + &path, UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok(), - UpstreamCall::get_paths(&self.config_json) - .binary_search(&path) + UpstreamCall::get_paths(&self.config_json).binary_search(&path) ) .as_str(), ) @@ -102,23 +116,24 @@ impl HttpContext for UpstreamCall { } } */ - if let Some(path) = self.get_http_request_header(":path") { + if let Some(path) = self.is_none(self.get_http_request_header(":path").unwrap()) { + /* if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() - { - proxy_wasm::hostcalls::log( - LogLevel::Warn, - format!( - "test2: {:?}\n {:?}\n {:?}",&path, - ALLOWED_PATHS.binary_search(&path.as_str()).is_ok(), - ALLOWED_PATHS.binary_search(&path.as_str()) - ) - .as_str(), + */ + proxy_wasm::hostcalls::log( + LogLevel::Warn, + format!( + "test2: {:?}\n {:?}\n {:?}", + &path, + ALLOWED_PATHS.binary_search(&path.as_str()).is_ok(), + ALLOWED_PATHS.binary_search(&path.as_str()) ) - .ok(); - return Action::Continue; - } + .as_str(), + ) + .ok(); + return Action::Continue; } if let Some(plans_vec) = From 37d12fa54ad08f8dbaa94df012ccf0dbd2dda592 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 21:31:36 +0530 Subject: [PATCH 61/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 201918 -> 198581 bytes rate-limit-filter/src/lib.rs | 81 ++++-------------- 2 files changed, 16 insertions(+), 65 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 532f25fc03b3ed6b5fb88399ec7cc63196c294c4..2db84830880cdf13fcd505076ad3f9e6cc5a9e2c 100644 GIT binary patch delta 51803 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 F{tGpM0bT$A delta 55131 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 8868039..e3b40f8 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -7,6 +7,7 @@ use proxy_wasm::types::*; use rate_limiter::RateLimiter; use serde::Deserialize; +use std::collections::HashMap; use std::time::SystemTime; #[no_mangle] @@ -19,7 +20,6 @@ pub fn _start() { }); } -static ALLOWED_PATHS: [&str; 4] = ["/auth", "/signup", "/upgrade", "/pull"]; static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -36,31 +36,25 @@ struct Data { #[derive(Debug)] struct UpstreamCall { - config_json: Vec, + config_json: HashMap, } impl UpstreamCall { fn new(json_str: &String) -> Self { - let mut json: Vec = serde_json::from_str(json_str).unwrap(); - json.sort_by(|a, b| a.name.partial_cmp(&b.name).unwrap()); - Self { config_json: json } - } - - fn get_paths(json: &Vec) -> Vec { - let mut allowed_paths: Vec = json.iter().map(|e| e.name.clone()).collect(); - allowed_paths.sort(); - allowed_paths + let json: Vec = serde_json::from_str(json_str).unwrap(); + let mut json_hm: HashMap = HashMap::new(); + for i in json { + json_hm.insert(i.name, i.rule); + } + Self { + config_json: json_hm, + } } fn is_none(&self, path: String) -> Option { let comp_type = Rule::None; - let rule_vec = self - .config_json - .binary_search_by(|x| x.name.cmp(&path)) - .unwrap(); - if std::mem::discriminant(&self.config_json[rule_vec].rule) - == std::mem::discriminant(&comp_type) - { + let rule_vec = self.config_json.get(&path).unwrap(); + if std::mem::discriminant(rule_vec) == std::mem::discriminant(&comp_type) { return Some(path); } return None; @@ -69,14 +63,9 @@ impl UpstreamCall { fn is_rate_limiter(&self, path: String) -> Option> { // only meant to check if rule type is rate limiter let comp_type = Rule::RateLimiter(Vec::new()); - let rule_vec = self - .config_json - .binary_search_by(|x| x.name.cmp(&path)) - .unwrap(); - if std::mem::discriminant(&self.config_json[rule_vec].rule) - == std::mem::discriminant(&comp_type) - { - if let Rule::RateLimiter(plans_vec) = &self.config_json[rule_vec].rule { + let rule = self.config_json.get(&path).unwrap(); + if std::mem::discriminant(rule) == std::mem::discriminant(&comp_type) { + if let Rule::RateLimiter(plans_vec) = rule { return Some(plans_vec.to_vec()); } } @@ -94,45 +83,7 @@ impl HttpContext for UpstreamCall { return Action::Pause; } } - if let Some(path) = self.get_http_request_header(":path") { - proxy_wasm::hostcalls::log( - LogLevel::Warn, - format!( - "test1: {:?}\n {:?}\n {:?}", - &path, - UpstreamCall::get_paths(&self.config_json) - .binary_search(&path) - .is_ok(), - UpstreamCall::get_paths(&self.config_json).binary_search(&path) - ) - .as_str(), - ) - .ok(); - } - /* - if let Some(path) = self.get_http_request_header(":path") { - if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { - return Action::Continue; - } - } - */ - if let Some(path) = self.is_none(self.get_http_request_header(":path").unwrap()) { - /* - if UpstreamCall::get_paths(&self.config_json) - .binary_search(&path) - .is_ok() - */ - proxy_wasm::hostcalls::log( - LogLevel::Warn, - format!( - "test2: {:?}\n {:?}\n {:?}", - &path, - ALLOWED_PATHS.binary_search(&path.as_str()).is_ok(), - ALLOWED_PATHS.binary_search(&path.as_str()) - ) - .as_str(), - ) - .ok(); + if let Some(_) = self.is_none(self.get_http_request_header(":path").unwrap()) { return Action::Continue; } From 535f98197602fff738b958235b2498901c00a969 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 21:38:37 +0530 Subject: [PATCH 62/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198581 -> 199216 bytes rate-limit-filter/src/lib.rs | 21 +++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 2db84830880cdf13fcd505076ad3f9e6cc5a9e2c..f841d1e2d5b4b96885df6122c105d5b2ba240995 100644 GIT binary patch delta 21611 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 v@xi^A-aAKf{ delta 21485 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 Box { Box::new(UpstreamCallRoot { - config_json: String::new(), + config_json: HashMap::new(), }) }); } @@ -40,14 +40,9 @@ struct UpstreamCall { } impl UpstreamCall { - fn new(json_str: &String) -> Self { - let json: Vec = serde_json::from_str(json_str).unwrap(); - let mut json_hm: HashMap = HashMap::new(); - for i in json { - json_hm.insert(i.name, i.rule); - } + fn new(json_hm: &HashMap) -> Self { Self { - config_json: json_hm, + config_json: json_hm.clone(), } } @@ -144,7 +139,7 @@ impl HttpContext for UpstreamCall { } struct UpstreamCallRoot { - config_json: String, + config_json: HashMap, } impl Context for UpstreamCallRoot {} @@ -154,7 +149,13 @@ impl RootContext for UpstreamCallRoot { if let Some(config_bytes) = self.get_configuration() { let config_str = String::from_utf8(config_bytes).unwrap(); let config_b64 = base64::decode(config_str).unwrap(); - self.config_json = String::from_utf8(config_b64).unwrap(); + let json_str = String::from_utf8(config_b64).unwrap(); + + let json_vec: Vec = serde_json::from_str(&json_str).unwrap(); + + for i in json_vec { + self.config_json.insert(i.name, i.rule); + } } true } From 8c076a71a78bbcefc00d5535daad5850060de1eb Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 23:12:01 +0530 Subject: [PATCH 63/65] finishing touches Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 199216 -> 198308 bytes rate-limit-filter/src/lib.rs | 21 +++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index f841d1e2d5b4b96885df6122c105d5b2ba240995..5d6e4b72b8a5325adda0e6533f3470020613ee24 100644 GIT binary patch delta 45281 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 Q`}Ez3Aay6#6Jpo=A3ZuyN&o-= diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 11c022a..b4cfb5b 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -46,20 +46,18 @@ impl UpstreamCall { } } - fn is_none(&self, path: String) -> Option { - let comp_type = Rule::None; + fn rule_is_none(&self, path: String) -> Option { let rule_vec = self.config_json.get(&path).unwrap(); - if std::mem::discriminant(rule_vec) == std::mem::discriminant(&comp_type) { + if std::mem::discriminant(rule_vec) == std::mem::discriminant(&Rule::None) { return Some(path); } return None; } - fn is_rate_limiter(&self, path: String) -> Option> { + fn rule_is_rate_limiter(&self, path: String) -> Option> { // only meant to check if rule type is rate limiter - let comp_type = Rule::RateLimiter(Vec::new()); let rule = self.config_json.get(&path).unwrap(); - if std::mem::discriminant(rule) == std::mem::discriminant(&comp_type) { + if std::mem::discriminant(rule) == std::mem::discriminant(&Rule::RateLimiter(Vec::new())) { if let Rule::RateLimiter(plans_vec) = rule { return Some(plans_vec.to_vec()); } @@ -78,15 +76,16 @@ impl HttpContext for UpstreamCall { return Action::Pause; } } - if let Some(_) = self.is_none(self.get_http_request_header(":path").unwrap()) { + if let Some(_) = self.rule_is_none(self.get_http_request_header(":path").unwrap()) { return Action::Continue; } + proxy_wasm::hostcalls::log(LogLevel::Info, "Working!").ok(); + proxy_wasm::hostcalls::log(LogLevel::Warn, "Working!").ok(); + if let Some(plans_vec) = - self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) + self.rule_is_rate_limiter(self.get_http_request_header(":path").unwrap()) { - let test = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()); - proxy_wasm::hostcalls::log(LogLevel::Warn, format!("test3: {:?}", test).as_str()).ok(); if let Some(header) = self.get_http_request_header("Authorization") { if let Ok(token) = base64::decode(header) { let obj: Data = serde_json::from_slice(&token).unwrap(); @@ -143,7 +142,7 @@ struct UpstreamCallRoot { } impl Context for UpstreamCallRoot {} -impl RootContext for UpstreamCallRoot { +impl<'a> RootContext for UpstreamCallRoot { //TODO: Revisit this once the read only feature is released in Istio 1.10 fn on_vm_start(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { From fa36eee82879d4fba3ac7949f117e57117935d21 Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 23:16:43 +0530 Subject: [PATCH 64/65] finishing touches Signed-off-by: adpranavb2000@gmail.com --- rate-limit-filter/src/lib.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index b4cfb5b..da82f11 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -80,9 +80,6 @@ impl HttpContext for UpstreamCall { return Action::Continue; } - proxy_wasm::hostcalls::log(LogLevel::Info, "Working!").ok(); - proxy_wasm::hostcalls::log(LogLevel::Warn, "Working!").ok(); - if let Some(plans_vec) = self.rule_is_rate_limiter(self.get_http_request_header(":path").unwrap()) { From 7b4e81f08341a25585ab9562363fb5dcc318e07e Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Sat, 20 Mar 2021 00:43:09 +0530 Subject: [PATCH 65/65] generalised wasm filter#1 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 198308 -> 198382 bytes rate-limit-filter/src/lib.rs | 54 +++++++++++++++--- .../src/rate_limiter/rate_limiter.rs | 40 +++---------- 3 files changed, 54 insertions(+), 40 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 5d6e4b72b8a5325adda0e6533f3470020613ee24..85e05394c2fd4240c9bcfe82696e169d3d508e13 100644 GIT binary patch delta 21344 zcmbV!3tW^%_y04qyWEz`auo#RSwKa_`~B|VJefaM7^?N}8SVQTjhnqXQ}Vl)wYl0*IyA6`m#X9PNWTusp}$pt<;#LA|;ZeRx1g z;>xuFCRGVwf^r0mSH==SD5|n_Ey!Z0m>bLfeh_KC8vM1P|}#$|YVg zk3uTbns_f^$`r10MTuSpv?C2R1d|43!9A=*S4{)Bg4|C9Z__Fj=_n0}H7fQ&NC%rc zYt=H*JW3QhE`{`tFQb%-$j)B7GTvJdg3@X63gxvMNbGh@3k?e_)fw@ov8Y;wV^wIE z1P@(QMYSxA=OXA@q3+-y9VpUH0l{kJ49Xa)gD=V!{RP(jbW08o6su@C7 zQA6o3$5Da`gDMUZQOmTFXx_vvramih>tB#^Ij_KiHp(iO?i!TzP5cG$_Uq(a4 zL_~!a)PRtOFD(NC1?4wH%x07G(d!}yU&NqLWV=8ifjk$W&@D!dqA4v3JY|XR* zExs{wo7y{#?PG-~$W=x(E^Z@O^B?yE9kOA}Q(90;A6>N}A8 zT(!$uI<(3$BBtajbM5ySszBG+s;kVkuns*~v14?HdojNEcL)!^`m8wBfhy}0*Lqfn zxWVDn1Nu;M4;7Z^znA|?ikW`h8AlSFg*!hUsT z)?6+IFSLw5@+^d@*L2=N1No68A+6eOq)7&};%UgyI3g-mlh-6rEsxX|LXP;6%VyPG zSsLXJzDr(9%?zaRa^FEE+Uwa-L#SGIZq+nY{{6_$OhGvtt7w9&<}L~h%|^$u(ftF9 zKpPieR?SJE6_tmL+2wEjCWiZG@%s`KQRX-{Ex~bSS|u|%c22ivnN3)^RFi5=gLu5J z>bE+ciLBL_rk5{Wyfba3$iDx9b$6|dXJZ2tP1IXuw_~MIO=+sv%6NYfnVuH!lf->g z%Q#X*MO=yZ85h7Pu3BtAaV!E>DEGUOA${JGVt@+2OHg~>7Xy0G?U+hEu=)r=y9 zVuwi>8{n-H(c3X``j~i=h*|@sd@@zG3ZaccyB~Chd9%f{m3EWk;&pM}u9`UPGx{Vz zIh6I6$~o4|=;PQnBba$PDrd|b>ZLMU9j0*-?*$DIB-=4nlX#NVu2I8KIY66juodk^ zt%2#8lqO*89oJspJ{(IOD4_L9>ta#{V$gHdk!hCMr*1 zng}N7x$ApHQqHsDVJMRLJX;BJN#Zx7JdT&g#hbpvT6c!SZB7k3uZVwlx+?ZjJlokEHyA?Sa!;=2ORTfj>xKfNuTaq z#17!aC{tHnm{*anP^1%z7z!E$P9CFbC8gQcYYOMFcr7eouC~Z$D1xEowT7XuY=%)b z39b?s!_qJ&+B9m`b4KwU+{GKEAxS9}>{0?vI)Im=ysK!Tbx3P1Oqv!dDv?WR5EdXr zZ<_K5!w;d_h9jEmQ3xuCLL6l`cE~c+ASFcIwkotg)qHw@O7+TjS3TY|9#e?fO_(hZ z>6NBhP-S<2tr%!Z5<95=7=yK_uIOv~l*KE;IzAv8eWdsYY2#EiO{KO&Rwg^c5x(ssZUkI6{0l-$I8)QCm_)i4S5wPUU#f;?z3Lj&3> znNaoN2>;bjMV&B^2k=N$5q<-B7y|h`^@t5Dbd`T7LS*OzhW`ML;>G&s9k0yk*Ae3n zUV`Qp&^iR*qXU};Y#MOH%?vVz=W%NI@lkH~y&|cq+m^1Ar*o<499U@I)MOwTmK*4}Ak5$dEFk@H2S~5q& zO?OAUK!Z2Hon?eTPX6JJJ8$mAN*yIP56v)X<9?oKd>Vq?^b$q&GXT{{YI}heNRwc; zpG;U*sbMH`6$<)m9frqPtfm|aVCYj9W@~muTk=do8Nbpo@1~*AsuvAoZ%hh5@~zBi z@!quFX-mz9xzUc)xxvxdR5-29{=QZ%g zV`+(sssyj9wxz8CA zE@!CFO=#s~2$ySAYOqz!WhoC>@H7vqB%O~(vaiMr5$^;Bx&tHxifF&5S1TZT5U`E@2cJ3f8*Vt9j_2KQqr zL^aN-N0x?rW@2z^9ZPazvFUjv=LCDU{I*9MnNPtHjLKfvf6ZLK+o$djK%!_W56O+> ztjW>siM!Z&NAVMx>_U0elOLM0nl_`uqeLA7y^DiIu*luwZf&4a0}0o7sQkAf>~fBe zxCyTDQ0FGN#zUi*SZq06xx)S*!&Zj`sL4bjsn}f{F;v9t3x?DF zvf~?6<&pdeJTJfeSiZw-y;0&>hss>-`=(A z>H?Jhnya&hIL?(XS4nFuWbbmCH7@T;Nuec?G<%@Pv2J(z)ze2h+V7cgbyg3@OM6aT zouyZ(*B*=G!`HfBUF30&VvC%e0$X&mP$M08E@l@T!zxx_K<}ss(i(o>>kkHHV;0)# zX)O%LV$j>M@=d#A@|zLVi;uoBo`MhcAo@)WEqrqf5x42+S3MY3sqr4FoItz}G*lkB zmuaO$@0&u@rTZ38P@^Mt{~SVV_b;O0puD+?Gp`EhC92BJZ{5pSO?md) z`HY=#gugS1ohYCG&PdQ4n+}a^S3^?N0d@-=w&46qPxkwvT?{+bZPhz1KKTuhiNWrC z{?Qv*o#XYR16gJHFGu@(b!!>dLI1 zdxqArvQr?~u(77i`45PfIA(oQi1N>UbDKx`x1O5I^YY5~o!aabb^(?-ttV6LK0J$$ z;_ya9ljE+YyV?2jGfj6gAD6k=UB2?nEqwaH61Sa!RX=VZ!_L%`;nCKeCd6RI@<~G5 zjJ7cmmBhE>s7gJTo^}4n0jzJ>q0k=4q=+UBcQN@8XmA0IQx5NkF>sQM5^}%+RyCXj(QKU%X$Vy4xJEGuWjdkSO(@X`qn5gqF4Axp z(;(8RR%bT3rE5SS#e)RJP;`TvRh{MHSw*$Zt9SFNbOO9(S1IRp0=5P&LX%F&aT6MJ zLbjVwuM@C+b0sM_s%ZeXLMPyuSErO16p;f0n0A{MgSzl(U8%EOES%oxsS4bz3KuIt zPzv3H5G5Rry=LXPH=oBjw_NpuA&M zN?LauN6@UvJLY)gVk$f6`0?VfD>#FiiLI^fj07i{0%m-5ce((?AnnaePlO%VMlaZeT32o7{#u)btcu+Al?!5pDNII5KC8 z-3N<+C;*czktS3i>lquKm=78@WiocuB{Eho&sy0OR_`3` z&$e1ZvQJkj*gRP1(6N-_HS*73*7-_$lgtfaF>*%8)tL3fT$NDvD>AT&Dg^p@tjk(! zx$D+i+Cy0kE0ZHaSr1krmxZ$HSedgbl)b}zihn}#Fj3)rJe+;Ye5%RzC*V-?o_4I? z2v=6#q^O=1tiQI&5f!u!M8aJHtBK+@ZdMNE0moA|wqw&-i5wBh+OZ-zGm@pZx(AR) zBU#_huDh7=0XSg(kft||6@skV2{&!eaqj@CD3)q_7CGIxMN;XYN0X;h4=hL|LopaT zM6pSW$4+}H@^oE1(6)#3QCeoiHHj`0allt0H$<`SR=T&rwbbP}9Phpt#fHXECL&AM zg!0xkA^mU;3{CC{)vwx+rSVVX%U9>HP5}xXm2mB-1f=@*Y?qgIEmR{5qM5y`>)@X* z!EnK&s{(luw=y%Huf#SGG#{E_dGecR)-$jQWs;Oarz15|jbRC_#yKX2Wz&RxCzd68 z>2ps09Lw6Jw4R?B;;JuAVk;&SvwPD}#q3gPCb!H~l886EXX=Cw>^;n)kT^CUb1E~A zJ#>veITKx}krT(%^wy`Qh0cUbG>?-Ilxox1kkot@JI-xr@)5g9j#k;|#KM0v_qM65 zo39rcB2g(n>%unjo5;EBmlFn6GQTR{tc^ z1~K8hqaUVNh-;o|nYpHXZGU#}KPcq9UdTZz(hj?|c>sIUZ4`DpmkeSBSIs_j2z%06 z_yDy&ox2>8zYJvwvStWNux7idPv}%TSRT}Ob?Pdjp1j}4p<1WD4Jtb*zaPq`!C(y< z#)gG7Ty|}p=$JYNg%!z%hcPwu3VQDS^7UaX?#cw`K1L?c}r&aFLuQ$P6LYAeU3F=a6gI6{+*G56H+7tOLrn zjDXba5iAJtfg_mR`Pc}y$>h~Qwx&V$PGQ~I5qWD08^CrvGloUVS5jC!M31Gga6_mu zg>}}2+R1LCS)5C9!DvG=)F)WDGTbz}MYi6M9inF#>Jx5=%^cGr_VgHcmj4;!&QhAj zvf%cmTIY~cM%NEib8>%GuapMaV=U{Bd>4*oqhngc;Dj1-a6eTW1m7Nu8QLH(j%6cQ zsT?wnwFkOkoJM>cfk$e1enx8ed}<_8*K2~#$nor$i9c5EJbevgWNFgL=`oEZyH91;YbOcg0(@Y(F3a4hEGo8D8t#unL@f=O zxJNh1x2Ce0o&H(Ta>O(i#gS(AG&a+%F3Qoj+@9)kQkU{al?-*cKa9C&(M{7>1ssg6 z)7hVvkyXFJuxY-{THGtHO%pXl&@3H6R8S+hOqidjceDM#tC!#1$T}o9xruZYtRXFd zFBbjm-;Mm}VmSME*=rW-6ti2pFhs_J{ zSkm>y9M}2swBcA7aX3>$>x5V>Y!7M<|*D~0b=GfYu#-_uB zlgNhF$hm7Zo9K<*zw^>P>}#{}=0?TUD;Fj5$1L_FE0+JtX8j|zmkjh=rp3jB2LYpg zIGf$CzXsB{Mb4S`vqsLUoTJyV2^NI8kFxnZ=gqh(fArIA6b@LOH%s<_83(PK4z-iNJ&OoX4(P`^qCC<6)iUGXSTBlY@xR%GxV$GZ zjTL2pLhA`mopOM?D9S($XFn;eo7oUn;T*S_C34J-r6p_$tJ2!Kv4maZIc4(HR@OH- zr|bY+cR{DYSqMSyzKv~ZPh=1U@e1Kn+J0U<=h=i@Z25Fq8)4tOI)`L#cNZK90@u!a4Q4?UM*k; z<6OFvE$5i*pS{Wo5!|(lb@Qt`=sK40llSjp?R|0OgZbbi>SWC>NF8x5D`$&+SdsH1 z_;W0*DIdji+hjV%Rkdw~I4^&xWT6Xko(9KT=VUXTRZO%%7fs)lh&rN0gGLudM%6UU z-KcdtwD6pZ_p;^)YylS@XLletah%1X9_Npl&saQyk)I)Lsho=-qVy0B8DZ^(6|XQRMaOe`qgX2QK7&mxlhvQG z?on=$%a<=JEA3{w55;XPqyp<$Uo1c=b*xK=vV(?cVB%GasB%M-h!Zu=N9$Ms!Qm79XgD`53AYS?&mP)!86viEl^R+M8 zIB5Nbu?wh_dEc`L zRx7uB&qn%YpGDa?DLp5D{+=xlIrxW5Ex2jtFCg9^S2VDWXr{xz<4~Z$`A!47g<-Wx z{DH0K>o&+&e_(rfexAJjG#egSya9dRSFdh9#T)U3O37(IvIS1Hk=|^b(cpjESbzKuuiU!P?PG3~z5ifg zf!j0!#s^H7*yfz^2c9~hh38*jJu%WYTwq}cHeX=Zhn|H0Bo1M7PHuB4^-ZA+xX4C@ ze+Em9d)lYSbA=yG?`z?iRP|s+Ri2I{Q5w|@_7Q{A0i4!@GQ6@lf zl(_ODi=6m32Gwm{c}hMWcUJL%bV;S6?NpIVxsjWPoofDLGParZAOCGGXkMBwDj8^c zO`!?6i-v}c5Q0|i^^9Bs^^}q}*br!TKHJQ^7?yU-^j&O7{#GQ=j0jbw*gyi7TI@Cu z%|CI_ji@!&ZFS~eW~!BaA$Rz3JAx1V_-q7Sth_UV=~kYE755%1e;sDWC!8-pkRHxE z*^XdT>SG9AEQ9Ge>d!x7eswfhQGL}UgTr~Gd?%2PLlXa>t0a*rL3~UI9aGR&*hHID ze|S+RWkC?1#Lmd6HXb1_1o3v5Tp>0-jQvQY!R%+}qc(n@`EL}GFNO0nzOEaYykF!C z5xj@7-RCX$G4k^WzJ?u_*SF(ku#T2U{)dsMNK4cu98Q7jn7|{Qb8HlUh4H#=GAV{X zDc42wM|gI%42a=T*n@SB;dzEZgWvi;4VpX=!>8yo{6*O#mJi42OL{EthFM$?%QG;i zy*u!9_O#6Gz}4uAJk3Q9R_GuZZ!mDKg=aoVJW{+QcXrTHeb#~B64oLYpkNH)*_d$1 zYvXuUR_^2Io&Zb|ctIErOw>LBf)5dFI-!~fHX>-x8*orUgkT~B>JlYH2qHp&PLOU1 z?ad1l>xtk`6587%CLSPyukEQU6TQTsa?g+=S}}NbL4*b(_)!`ko$#4kRqWSD;+R{) zODDWT1g#j0PI!X|R?34;6p&;W5wzN20}Dc;*h&;=qQA$2$VPV>+S!8eto%vkOW@DW zvh(Du^EI$Ak+w<`T7!wt2}K*|Z9?r0w2e@dfi@EIH_&=Qp$0ntfhYQbP@uu9YlV(x zwSrZx&<;ZGOdW*W%6xPbXoQjJ0YYI0dVx@)fu1DfF24CcK<+&2|05rW=cB#K>Ou9A z_5>atQGvMaRo338-lK27AcEG}uD-37H3|G~EG*X~@*X_r zJ9$qce*^Zde@D!`V!65_zYeSMp^iMBZIY)t@?>__8PSQa#3LGKPG>%r)}*6Jya#J= zUP|J(@sLBCP(nA144ht_rFgMi*^O_5Sb%_7ft-}glS1mLjk;l}g+HGA4dNxvhmv8) zAhy4|rikh&Mk_5~ z_3)03r2?;)w6+u*NWfPYD3n9{@Tnos?*IwoJ6QYi0nF@k&cZ&t$yNd{u z5#}8r$}H7P7Mb>mIS1scgLr>5)c1pUPRGJaMvDD7QJ@q}8pR_;!zDdMz4P#3zKAN? zdnnrDyqq_bm$aZk!|-OaOlA$&cwxhNnt`h2E5rF~hGezOAHkO=*6K$Tf{lmeBam`G zmRuX|cj>si4g^srJCEd@QyL$pMI{WX=`ovVII7WBf}#q*kT_vzPoQ^DG#fJ+;FEsqLm0!f>S^z0Pl^YP=7fqn(sH8HY} z%W>E8=a9SBPu0>kg|7vo!OnBOm3yb~nSfzbbcGx}6>E~Ah!cu@PL$H zjG3|$u*xirHzlHrJye=b+W5^_p&6eQXkr^)E43{1f1zH@8MG@s?fA>wAHMz{soM09 zGV6E4Kgukdt}*{cv-E$^0Yy%ACVVZu2N=5WuA9+?_ut4T8;$Sb1-0$HY@enx zjh~n~d`jZq51pbj@~hcAqD{d_+*dZw`G=!-$W44{P>XZS@baimCf&k&%5QGs)33(q z&~9tXNae;zb+!Bwqso8L==IV(m*0pZL^*dZue@3j*;gZWkRRQ`@5RzG{Z{@PntsAO z%-;fe=RCd~C@xJy5%c+CEQ$BcrzO$3X+95R$*zXfma{f@+lISs41;{Rash8IZ@rE8 zmt7aMG~r*QEt8iQ@Y(XfKa;K}=}e<<|03JGU!`2g`=KsJ7V=G~U`8q`SSw#h<+F_H z*2<2H_(RxjY+uAjf!MeRA|*0l&3DAxW z0%tu1Xxj&$M||m#!@8H{>x=p1S!J}r)!b_@D-PGlcz;bKPL7SsuRTEo55HD?Km^V6 zb=mvFM6gg2mxbT&oO?T;#*CK|+Ryj27Ze3@{}O(y(F7%ON*a&5`O1}+UUnI)EDnzF zTOeaerEQ37>9phd3l>pP-Aof4haLKgYR3yuB5RKl8svLv{7c^OknEYxyNA>~L@PD6 zxa4fm&Kt*>>Dc#OUW&Fal0DLSkI*Y*avqk;)A=>-y`z?x8njuypU#^)OasFDViRH2HhZogQvoEh!@DOmhtKEu=-|Tr{(fOD&(;Y?CZ*8_HvY8A$Kn4Hygea zcll0=cuvNy;FBSxE%^=d*%f@Wfoh%pE3p#}qM6LF5oR_#K`@V!HN$vVNEy68TGY8{ zr#)s>6`41j$65=3Sj~MHJ1NI!@?~&J_fSwvK|gup9mrXqo4nyW+4D{w zC)cjQvhJdtchSCWpUVld4Nc+`BRPf75UV92-M3*ALIiQ zN^q})@fqx+;I}UrnZ|h$et70SFS0)bn{??x-u<6TFJAY5kv{f+kY4TkH60TriQM(_ zg@^bBpPjgS5eeeBeDPs^21k`oJ;L{zXmqXTT}Rhq9^pwHYGyml1DNd@{BlE^T0<0^ zlh#ud?@8$F-{sQeTtriM14i|CQ@ld%UC+nxbq#X*dLCt6$XJ%BqjYecb9r31lOG~} z5Rx>3>pg)crTwNGzLIGa60FR{EI26l4@lMRMdzfcuYPE44{w;LyUc;N=@8j_D z{CW%$?R6`?1&Y^x7v*B*(2<(!;VY_UR&jDd4aG!(^O%F*#n~2l%`<$dRo^g>C2Eva z&+s`scdLw%yeFzOS@ML5HLxT4Z=TSiWmGPj2{hYrrda!;HFcL0eh(VGAJrL0l+eqa zrjpL_=oq;|@=n&1ICdpyQ=W(5m(B+fGHby&&sU~2y zjj_g}4>92}JkS*QVXVCTJdefjex{JeOgo7F(Q?$Dp;<%l-#y?yOvH$69HnW)p-u7{ zbdE=Y7%lTiv5pSM(bBkrT5L zFyN&8^F^L&E5TX^U%)7!Os+2C>jK_A%>2=-*;R^lZ#U_)n zZ&Umbj+3A6;0eLEAe!t!UMRy~;oWXb1F0iEQ*TRChXvRavxmq^#5>?KF=NgA^d$?` z73uRc)QtJdQq|?F)P;AfNMEvGer9S5d9}JQbr2`HH9o_4UARpNf{;UQc#TJ}L(Y=dcrQPe zEkCW|lR^~LMk|!k9U=9`U{${V1s{TvRvzFB=I4Pt2ju6V4vj+t?*|U`z(;|5dEkS< zRDDCf8n~Yajzjxt>1F@7ct2ak+Zg$bVO2Yb$hK+ntG9SB=hnCQLb$*QHYEc|>50(5ZyQ)HdWUEAp4HK&EC+kBMX!h_wu5fq)dpWi z9OC=g1n0+xxQRz?O0p?l5Zi*#2jNbHG+JMmXR3LEZyg}@-Vd_Fd%Uy7r;AOAmG(W@ zi7$SSufo;giTC(TUg42FZAxShe7fV4j88XwoY&Og&Lk$Rw@nE^7IuVG)zJviXbSFg zFUtcbc(UAjj3?qj%+X_faaIMmWCUn_wZq52UE5$hBxuE-(FXsk4Su=}-q{8p&~cW# zz*B7mz5tHG$56X9FSr)azrg`!U#FD zR!jR>ElY`_=?AsJWKKQ#*Jv0P$53FFAt3jC%Hw()a)%KMr`X2UdY;@)-OC;9$aX-)Hnh)<<8l1p zaNPi2ln;N-KftDN<`;ZH@VpVaA%7ep8S-c4;V<}5zI%k+xEWWbP4d1k`K|V{k-C-H zixA^dS)IA+js=me=55QD zr>DYmBA!jO<}J^FGqp%nl0hdWl2r@`#Hpc;^hP+3+^%^o^jVOj1xDk`r@rD#*SOg3Lh9vn2&reDkUf6jcgE!51(r3G#ii|E_~W3AALW)4Xa5*^$}}|+uOsAvA8>oq zEPwt1_a77FW2ey+6XYAGah*Oves`LWN6@2D3)VF9ky#Ta*%Vq7$y#D*R}8!tajJ!Z z&mm3*!@#7Er#zgKR+zWJ06?{qdbvDhJT8rdl@eN#pIF)JOt!?nOHh6m*T-pZjkUyQq5mmQe zd1RuI=PPYw{Gc|OB>Iy}e&sQCLoxsyYEc7+0Vffbn}5X$lr2vn5C#|9?^e2h)CNaj z(oi{ud=#*jyPR^C_nf})dYiVJ$%hEdZ39chsZ|a9EaH@nfnRLH-(>LRQDn;&%0JJ- z8CxhL&heogjYNl0wr8gGz{8QSM-N50ORhP`Cxx%T2&TUws-hV28u{@#-npYPQy<(6 zA=yJ5{kTQKT)Z$D{~I6b+Y1mGDAVMk-*Cvg$9d>C+$!6vZnSB8hsiLlR2c)$1g1Sl zl|1u1U(Ke=Md$fI-?g)JOY(r+e4cmn-3>?^kHhlBd7d!80gx8BT(oy5ga+P@yl5(V z;&>0dAN*b(cq0ZLjYUKLh=JuTfAB3{M|NWX_m#mH@Tf?=z`bOb3%p%Y?jBH&w9A~W ztCS5RNiMsA4VOJr-hP1(3_dVNH$z7dQVq_@vJ1RhR5Kv07k)SCYfT_RYW#EZ>;*p5 zZloFoGF5O9LT%YWNCx(toOTg*p%9QZAiucARpbqNFRfm-`mH^yGgce?W$3a5$a!Mw z0|P${exwI}33xQHF$f}D`GTZ%Erlpj1~&8Q!Rv0;`VsOsPu_86_DS zDisQKsZ6m*sZ7bNm$x)|lX|hNmkQI8^8Y>0a=Bc6-~9dSbDjB~b7nth&Y78qpPmXT zcq*uPoDZ{>jQ1Jg!@n+a%D^5h)A>>0B$n-rwS9npYi)Pp-=RTo zv8JGuWlg-Vu%rp2U6HG|f!Ev^7QKIR6am9-mJo6_Js#?w)u*K?t2rjaR6y0w7V~9N)54i#(kXZyAB16*^b8 z?3m!u7gbSx7RPfDG8Xj`U1;UAod;UpV54SLPW9zFe{DG=eZNtaHYcieY}5!8BBE-A zkWG|R`73c$pwOg>QX*=V77@*lxH+_DG&2P92xJ?8Qa7i7K(4{bJ#HmA=lWJJcc~&q zrNKBwfGAX1wI`@0Q0<%${&JVRDk_YBNQhFAWq<+#xdxzAWS2NvPh$}@aoWH{7W7JF z;2*8;&f=(eR^~j{rkgK`h&*R(L>u26%H}u+M0D>_M%j#v3uy3Y}?D-EB?7%rQpxSyZPKTEC85aRjJL*i%KZ z4*Q_bObzJ6{ja&KO^aUa92{ME4ST#8O#`?gru-WA*ebRw%W)2ieE>FaFg85=+Lm)J zmImt|*W7YMT)%Ky0bQMG;)T98C7a`-8OtasQfCIv%PA;V?0ZO4naV|h8*!jgH?ja# zxRDj;q#OAF)w+={P=g!!0cARucKUKaeqp&Hx{4|!_S4kdY}HSwsUl|w2(N;mK{Y@p z6cNE!v`tlmV6qQ)?!TbaEoTw_sgTnMx*R0^Q$>Yaf*=ZN1Wf|#BThE4A@7?iYMTgv zkgwfQ;^?xD@rE7FZC!_TEZ$iT4Y8~KqIGZH8Og?1h>)cEBcGJoo2y8n2N_OVx6>@U z7J0d*L=keLkEk^X=x&lY zUoyYfDJwf)BKpnu8CCimglW}uUWJJQNs^E@Y&X&*gPZX*Hp%x3g z8;sDF3i0>=HBjDvoT({(s`YO89F?W2zW2ljiHIes@%~BNU-cP@<}51mO1%HbU`Bb> z$Nm$CJFux%k)Enr?}@iMhfR#{X|eaiex<@wC_-_-)JFvSsYLX%2`)0WLaY7lg$+lX^I_C$(f&XThY&>8Qwl z3ig@AlhFkvogJ{qB%Wk*z!sBuD~tz;-QLfJiLj!tu)CyGflZt`7;Jx6E1V?Q$lypw zPz~`I3B(|noZ8W%^nr?V6}v=|MoUVyN0XRBGGtH4I@jOU2{ZocZH`bTXg^W;P^Og= zmCiG_CAXz5B#BRr*OJ+o6@qu5Z_L@@_81f$aeHz*G+3>q;$M5JeU+$Egw_6`g*p?3 z>U@lDIP-3Ao6dwaE!BP)wTVk8!GsTtPU~_%p>k+C25zdH}@aU?7 zsZ}{oS6euHOdgz`zg^!7xQOY^b5H~|V^qSrl46Z)osiAETYeJrX0)ZPUlubaDU*># z((unvWg zWT7w?*^)t(Ad1n)+FCSH%|GhpAa0YD;`a)z5ww| zvqJ}ifq`dH**Ka7*dudTU~J6km>Mx6gE_3=GK#AhwBM>5q!o(;LHi*K#iYSl98%s) zbd!2d-K8~lSir#AIv<+argxBvz9jM4y?F%GCa^beg`^SFNxQs4dP5S>8-LJ)dUH~) z`mN57r}k=RQOWa@tJk~_fWHpxsl>5sz!^QG`|XIqXsTd*Tb?gREB1dvuY?V|OxvI+ z>LptHpL2Vysg*Uqu~yEHrv?4@*^S}Qmn2NU|7mv9uWNQ&{LSoQg@mfxF|Eb_VVVQ~ zKj*oh`Y6q=-I(1`!EG_;(02QNn2U|JX=l4T2ecUx9HII_Um|R(egd(k!M?4|r(GR` zEo9zSm^XGft8@R1`&#eN_ey=iMg=1xawtKqon!7uW~I(`cMMp_us`(Xv&H#m(RL@j zMNzp0pbACpFOW}!mk>3C44=sCKUqMg>7fjEF)vDxjY1!5YP=sgDl0jR2kz_~l|^-s z;|%h*slmh#)*YF~k8+;AQ-oM-?){U_WzH@$v+VgSHBnKO5JT0HN)FF_kh5av@Hz4R zB_AA8L=-}aWpfs>yNyugBsq7_P^H#QFhZ3EH^B&1GPjyVnneJ@2wZYZwyFgbB}3*t z%R>r?sKt4~nD>H`vkT5KL^Gc(%(P4`C7wQC;8nPhpBYhTJc>7(VjDLiUJ%T@d9b4) z=dQ)=x;7PQ9^SYsZx*hUG%l{RC%wOo!Vin;L*WMjq#71SG>(tXIZ|?d-R}YIi$6A( z+YccKR*3=#e^Krx`vBEAZI4|JuX586oGhjVB~Db<;&9JOOisD;`K%b0?|dukOSZlw z=kfE*KjSF0Eg2C|){~|F6^8*5MRm#WjS-wxJMY}Imen}F*p$Y;DH*f*geARZCl)+X zR3OopI8=m+MnZ;mhKjsb3?vMFDA-{N8=-5dn_%ceg_~gL!$~*63|)0XKPdh`pFtO5 za0)bPg#mnuLm>%JA4Dc~v5P1*y9lca6&szOJI`V$Z{^&?FF8vr&pNHPv-x_M=p)WL zUwW=j(2v0Sn*5kwQu|y*aPO0cunt<_Yk@^IA>U>QTUC>VFmbZv>sJmiUi+f+#a%m* zl#JZ{v2(n(7qo3z1)R;E3d_*a=S|YOS!JjsL}`cciWt~rO}kUS-Rxf zbwoSIzcKt;tk?H;bAJ9t-L+W9-<*3b^6Pu4)gb4Cu1VD730M0TG)-`XM|hBr4O8S> zwh;5MtZW7Qy5vk*h&G$`Z#_awu=?%cl)UryC`zpFXvtVT+47FYJEfy``!(J&J#p>7 zi3+fHiCA*;yG*Ne?15W}`oe*El<-O*_5m;FGW()^$=&idDPp2 zlHTta8jF6b6^f1y3=67DBJPKKE`rN zPF23{oX%rYScUV4V|`dbNy70PeTO$GsCJ(AP+n^@<@H29y7Dq@dne`1 z`~2hJgxY$v5hikfhW>9MZ=(pmKVN z4u8gR6ujxr!7-Wpptzb(p#w(_AuWip2;5XTU;cBFXN7*$oX=k_PnwNrAOE!}se;NH zfedb=OoVfeFMd9jl%WiFBoJPIr5&|ic;%s(0(a|vXwO{+JqZvMZwzDUEU@~SLyE%> zHTZ9dWl_G5?S?&7%O4qQ(;^Fb+Ltt1mJH);P+}%%IK}zXR;yIhgCQoq|5w15)u~!o-PX<_+gH_8;7WN%`REAmEQkE$* ztn6i=L?0%i++Cn8)8T`{IJjx`R?7?@HafAIn$)5)V|S?7W%NOuL{7wshFz{7eOP_5v@V z2(}VOYV*xUrL(_Q1Kl!U^Pp0c!{(=#jmJ@W99l7+0O*v@c}l2Rb-YD%9F04tds47Q7-|i4(>0awHoNO|=NzlThcVa=mlZWsxl>wq^IX)L+I>r}@9glxNy9T*k|= zD7Md6d$}o>A4M^T=gqwQdIoDPgQA%~%aGyGtXm6u2*6;`Lky{0PK;&=tlYIGnq@E; z!o?VtXqu%XmbDq$+$^E%Y5>eH%I5HaIrx#z@&QbRS$P;JNyJ;-26}%i`w-?dJdVvl zZ+FJA4V|{3A__wF(x{1JPw*3(jrs&}sut#(gd|T+R#_~1wpwMw5;tCtv7J&`rvP87 zOBBiA8`wYmPQF3SCClzzSd{eb#K!w&zu81_t?k72FjgxQyRb3rDY>ExyC0_ZLl@SE z)w&Y8GGR$?3V(djshsy<3Hr{84M9WNuIq!Sy18U#Gf53;k~mO#Nj6YO<*rjhBw6Cm zL({oD+np^7ShUgGguIk?G9k;3Hxt{OKa<5tai2iJ|E%RZT_y|nY zVYz+)OOQ~X1Y6yDle$T#P6CzJt(R*DuyO3DtQ^3`vmzNe5J|2~9mocTRb4TTGqeNY z_7`s#WdoVo@+x{mhWue5i@Ul&jf@_|R8}RI4`T6h)*u#gwM?nZ&}DoEvv`LO?kPm) zR6(YX+*M8G%34TYUCTz{rWIx{3y~y%yhU+5oEM zyrHZMYm`q9Wxd%8^1)#&Le>mr@zKQIF!a^GKCeBw;m^Wq#r}lF5hRR4vBOvgy-*u@ z=P(whm+XJdLZN1%&pZl+4L1u#$eV}%m*&FFl3Bx>nmgiA@(N1AdgDj1#I`xwl2M37 zxBWDS3RGG39a=4Ck6<@KY|98XjOEBLN3gbjG>&y@sC;T9Ya_!(vbNxN8Oa8NzeGom zjf90(%Y#Vbo9agRW>${CO^q0;R}`sN)NK@12h7C;ZURJG?tt-j@_o6`bP%)V~02^4~%1xG0n9qi$Kb-&wQ2F!q7 zWXjev*t?!@`Q&i%zU}&R2CK39=bXn#!$g+r+u1DJy(tDXMLe#@=ECuYG`(tS?~<<8 z^H~e#@z!ZEZxgkUTzg@4i3RM85B3qqVuXe@a^zyxkJmph*Dr=c&yYJ7qh7>|OEf1o za|!FkCpWn!?RenfntVK*81X#amXD6K^(CICqw)cA)h%OZtTC0Zn@_Kns2q(#MhCP(NPm%%o}tY6PyH%4e50npbdO;H*G0)#=08En1&v5m&f zc4e(+=Q%5Mt`o-V=CNClq`aUdPrblKu#>LOUSNlIgnaqZpC4l}k@t}S3= z(@P%5Ny;MZ4r@@TO>EauD3Bdcx0XFfXj_x3)zfC;eB#I~IUmnvcZv&pMO?;=LARwIIPU|QD$cm

3mgw0asL@}8d)xbNpREy9bMe)(^phf+NWV#^0;Ge(@3n_p#u zHx{{0yvkl-i4A+vyk=(fCP$}xcZWd0>oJZOt`}Zs%Q*}?cpu9{vU?xvgyai7;UyrJ zy0(?Dh5jtd<+mSUe|mKeTI2Rx=ru>ZM{{5`M6&9naz&@r6U|SjWiXw#@mbJX7&NZa zDu@;Z8r|xd!_s=~M$P8HrVmMDx}JNNHMYjCx#c8VjU?!E7Q@Qr4WF~BmK%3r75ZR} zamOU8cLNl=g1=zjk%c!@vuQX5%Ui!<@ks9Z3dOXfrOHxq^y2hwU*2Kd3Bnr)Tbjzo zM8)ew`QBI90rTY_U$HKcZjmcjt|<37tn`q}ad^#>DW_OZxSX_8tYd6`g=zmx?DY}F zZfFs4qTKb)DOS%S>yA+PiI;l%yzVACl%W^!ZB?@3Yql2}xaJHSmrxHW42p}sP+YvG zh@21MY_+Giio<|-4sq3;VVPD|ESJ{e^ie6_s%0atjtKLl{o88=y@hh-x7hxRU5|Xr z&NFy}75`=vA_{&tVq>jO`UeF#v6st#{+kU6sH2m9qG)W8jykqHtO&wd9}$$*{DFLx z{Nf^OhuLVnh!cH=>tY?7$=E45`Fr*xKc6kne$U?Ejhp4xAK0L)a3QtOZB%PyWNqk2|G*JsaqoaUA>%d2>D6)VNh-~o-V!~QE@fWs^H|&vBzpy)vG)CU?E1Si#WYMqe>yRAWuIOAl_-d~9m^(HHh3jcJOMU4KN9oN16@}W8SMzWmuq1Pl8)}V?8 zs*S=voKPDdm*X1QjiWx<2%4|f7nOE!`hGzZa5s$}o`ev3g@Nd4Fu*E@Fpko9kR zAWw$#UjmHxluPyUcx&F(JlFH4*AyAjhOc4!<)dwQF=B~65&U<5qfnMS)|%fCPQkDK z2;))Ab#Ekpjq&o`a(Xo1EZ>ackMX)Aa!53f#6B}EnrEBa8)DY~y1mJu7=Ej6?VIK7 z7(NIWEHB3JPO#{YV)!!HcfVM^gl&*JW4RiYj~xVCc&I{G!T2-`S5$biN#YUW8TqeR ztyFLvpV_KOE?9xi;7c>{h)j>;>FEumGr=$lghg0>IDEtl_~;D;yG|%3f}IG)yVN!! zgc3pjbVOtmA%qC}mpbCgQ>H|aUdOLQ2qFm_>8O?Oi4b6aCf$ONNuzv86s?&6olr%D zKq`Z8B&f{$M9{j5^BNJ}a!dH?gjb26HA6QKkl0QH8`Xj9Vj^rMf;Kw(c1UH3;%TCw zCl~l-;3{|j8&`q7ex6rMbCq! zi5lx!A#Y9KZPTkwvazb$sD_qi4fHvhyRlMJ)L8G0rl`5z=cuD$X4z&PZ8SToYl1jV zqHXQZM7cHLFi|wsFf^f9@Pa~JMa4It>%L@eW7xzt zbmueBwSRTz9odi4)`R!z`WuDQP;K&VRmhuu#9T+Q9+9C4&;>Tir9Jq#uqR&y3C0kr zec+ER`3cvt9=zVCT|qguX-5Qc8EI#vmo&;$)k?cJ9VqL|xAf(7TNT-lXSK`x(=2ch z*AG;nTBCRrsQObYQ0Z#y$M2$H4j9P0`qk8GK3|si=W)_CfIng|F#o9oc@fawL6|h0 z><95w6BWyvLHtcqvRED-%$Fxt>enEGjlzCOVCZ@{W;>pA=|Sx%2;!)mHiUN=dh${7 zM6J+CJ!coy$Moj_F4Awo0|h}$6h+l^1ScqJ3=xYpU7V8d4dGpIh^-&OZ>6DV3tKLi z30{b0X){#o>Y1VFc)r{_6r#COL&dViF#ar%zQo_jlf$$TljdQJj}7Ou!K@n&RPJgs z0tj&JNMgEP8Ob}++3wSu_;BcB>(Q9ST>0Q=FtcUoc;3@>W;74B;A4j$Z{ckbLysNH zBRf}rW>}-K4_*M)_RgzqTrUykE@7BQ-Dh&`SiTi)(SijR>kFpXb~DCgMiOr?({ANA z>o&maYvq4#<&z;iavVCAFISI)Uo*SuLN`y-kp444W5!P8{ru@80SB&;<*bQ(af0E2 zElrNw{pMwO>q1;)@ixthjhA;!;!#8YzHFKKxkV9Umh=R;rp57=M69q!A7W(9?Yx(K zeIgH(t#0F?*Hi5;m}L5j^3nhG-|J7-FEVsGZ{5@;%8i$u zXIxjCg)(&pUmVgDK{I@QbW~2A$-Bvxckl_<;>5Pu)ugH1)Kp`}7nuY7ACp}vd)>*W z;LcG#btm6{ttK+AMU0g`vpD{ONv@y8f5U{YoehJ{kgv?<%YnwFYG~vf#QfRvwK?P& zU7yb3Em&t`4mG#t^_*>n=;re0$d~5vwsP}aexsZ|uW1VZN7-E2Z9bnSf4)BHN|H`9 zm-T;Cd+8T>WIpeOyO_rL{3Q(V#RV8(x%^}SpK1=bT;6^c-+;TxukPY0AVx2QNVXia zkPnzwyj|N=>7c1XX%WbXcZftsEx6-KFi>7PKWM8MR6k;wjxgH z4%NZ5oc1AwsFuH{@-w_@gPgU5cWGI+fgCl?!4!1R?LqMdxors#m)(|N^0VYjBv%X7 zYeF}>51d+Qn$h#}@)BO(zCP1^gjL~EgZfw^MD-(Z@tq)p%d1TAaX}Nhj8DL&;=E-z zpBYg|zQncTYe2=z(SE)>vz*^y22tDyq7?Cj9J_+w0x8YqSIG}o@L?t@cMZG;2j&ns z9aT|r|6s>A2-XzIM)OvXA-%I@m>yQOxR$Nr{tQZYZyH~U$l_Z{Dkdt1)Qd_qu7Y;F1Hid*@I&P8UC%zm*I9?w;qSt58RKaP^rvFN zA2SO*Z$RE{2tkIP)8CB=T3k&)PI`p56M48Rz@gByo?S#T?4=m_tLiED5WofEBfL*S zHXfenAnmWjYo}=Q5{XfCVO%0j*nmB#OD6Af{nGOPB+WKlf8DDBK6(PfOcD)G$WJ!# zKm51hO-3Y$3VHld{tGK}z4sV@*8)Yzc#_{RtP&Q4kLF-w_8)M`X5WIBNeWe2e+74F zRg}f|BTzJ49VOC}U_D)Ib^^xm^DZNwFMoWJ59jCqE!RKEBW?2;OBY9}+)+7YBaiEJ z@&xilkR*ex@&uZc79FEvO9~3Sv=K^QB!Ak-C-bt6@;@7Sq-)kw{8N16C%Zq*--~Sc z3oW)VPHi5?J=}ml!`nwzZbDnMx4Ab_T_>ttW58yf%cK2ak-3=KXpF_oaq{FrwFvKV z+gbA@l;kqUHVGZ@kGIfPWU%VpEG95CD-2PaC?+yoEQhb zKAqPW%3CDwh9Rw!JYjShwhjGnk1(UT)Gods1uPpbyW*#_W`Et}SI@F0ar-4=R!N9ACa9_XOs& zrzoH(pZ-J_4#Bdw29wHO3_TXahj>wwJ$gj5Y z=%(oL%2wW=HyZj;o5yo z83C((xGe@lgTZ5|Y1u`N?3Tx4NWGKuc=Y%pERa^E_FLHLx(;ZKI~iLG)FnQqkI_Tiun;5HuAOvlJ#oX_+)OHKcf(8DMKu|@>QWZE$s@ejUB%LO=!*=dKJ_ zQs$TB;1791Km{Nz?g^RtA@AT*4;UktzCq{h5BW+q#?}5KKEpR$>4pXEieDG}I^)*~ zKi8HjysCsYCfo5x;TUsw3OB)$2R`L9d@=!B%0q{Eikx|ZC#2^C&jg$7t_^-BzQGIk z@xqh5@Pl5MY~8cI*S+u|9jCh+Jm)3wHE<+;W{2!p_b3l+^TK2=o(+!k!VA6d(;7~1 zYG99-z`I_Ub_mY~E_&f$D5597trza#g~t#kO*Th3)l1-UFDy+gdz|F|z^9ObpYz99 zp?v0Zyx$edw?F4c5Ij8m1&Hls;6JzwZQt9j%t8x`@FQJlFZca}_XPL5fA9`&?iz5y zHEwJ*@98FIffS>W=T>8{XfL;ei{y)HsEt{383eSNjh2ph;VLiuPcQt97yiKuH+bPc zb)2r49q`2}cy=Jf3rBcihZiQb@hsoh3)431$-h~{*l^4aOf>~$;FmnEyGdRGGHur; zUT2CK6SdaFa{8BuAcEvyU-CV3D*Nl!*v6tL15w(OY<-3g;CX}P zv7LBLt(G61;j_|nhv?hO4y4daWmVeB)$`KSHFH)jnzJlTQOZE49V~72iX{u0$V!z_ zZrOr+)9zc*#HjnFbk(14(gONq&}hOMf0@ z+8WdaOBO6$uq zIDWKkfaWSbi?@Szw++)Ksf6woYzJ!m*Y%N(_>cROx_FeX)eC5lA--n#DjElfmoHFOm)nrqAl_CE8c^)F?o`+{o zmiM3MqufPTYXVX7i3@nUs6UUtnJ|mezK-ZaG4Z>|(`1&>Qm3l_?){Z z+O?=}9g34;nYa*nYSYBKyzp)>yvGX{nOKhhl@FO`R`Z%kHku7YPeXBcxf6Zb8ayX0 zZNbtNX=>VXb^f9?i{>v-=iaB@zhLEZlrn1wMhTi+6So3RA}s5FRJF(uR&pEVqbtvd**0CBN|j0V*IWP*P;^Z@8Y`;j&-E zySSrxid{P<-GZ%yMrY#5z=?$Az)O4;UXh9~@jd}drs`YaN?Cu2cM2!~q%+prGVynw zFsB-jeD+2Rxjj-7??GK;`kpx610MuG*#o}_4JD;D<&T2w;w5W`Lz7w58f&AJYWmJKaipq%3nxnwol8! zm-zsPSt@ykT^rG4q_oe@L`p8@4bAd5mSxq_RqwsAYS}82zZ7ef z069-glWyWi!KVub6K@9|25hdnuTd{Z+FDYICgs#dJ|Q&i4t;^i5z}cT&GmL8f50dH z@*KO?=orw*qD(vmd76pKbL13mxgmJ`T)XDF&SLeL6gzpi>t$}itq9#=+Jf#tfN_UR I^|fUFKj0rTwg3PC diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index da82f11..db28cb8 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -10,6 +10,8 @@ use serde::Deserialize; use std::collections::HashMap; use std::time::SystemTime; +// We need to make sure a HTTP root context is created and initialized when the filter is initialized. +// The _start() function initialises this root context #[no_mangle] pub fn _start() { proxy_wasm::set_log_level(LogLevel::Info); @@ -20,6 +22,7 @@ pub fn _start() { }); } +// Defining standard CORS headers static CORS_HEADERS: [(&str, &str); 5] = [ ("Powered-By", "proxy-wasm"), ("Access-Control-Allow-Origin", "*"), @@ -28,35 +31,44 @@ static CORS_HEADERS: [(&str, &str); 5] = [ ("Access-Control-Max-Age", "3600"), ]; +// This struct is what the JWT token sent by the user will deserialize to #[derive(Deserialize, Debug)] struct Data { username: String, plan: String, } +// This is the instance of a call made. It sorta derives from the root context #[derive(Debug)] struct UpstreamCall { config_json: HashMap, } impl UpstreamCall { + // Takes in the HashMap created in the root context mapping path name to rule type fn new(json_hm: &HashMap) -> Self { Self { + //TODO this clone is super heavy, find a way to get rid of it config_json: json_hm.clone(), } } + // Check if the path specified in the incoming request's path header has rule type None. + // Returns Option containing path name that was sent fn rule_is_none(&self, path: String) -> Option { - let rule_vec = self.config_json.get(&path).unwrap(); - if std::mem::discriminant(rule_vec) == std::mem::discriminant(&Rule::None) { + let rule = self.config_json.get(&path).unwrap(); + // checking based only on type + if std::mem::discriminant(rule) == std::mem::discriminant(&Rule::None) { return Some(path); } return None; } + // Check if the path specified in the incoming request's path header has rule type RateLimiter. + // Returns Option containing vector of RateLimiterJson objects (list of plan names with limits) fn rule_is_rate_limiter(&self, path: String) -> Option> { - // only meant to check if rule type is rate limiter let rule = self.config_json.get(&path).unwrap(); + // checking based only on type if std::mem::discriminant(rule) == std::mem::discriminant(&Rule::RateLimiter(Vec::new())) { if let Rule::RateLimiter(plans_vec) = rule { return Some(plans_vec.to_vec()); @@ -70,42 +82,64 @@ impl Context for UpstreamCall {} impl HttpContext for UpstreamCall { fn on_http_request_headers(&mut self, _num_headers: usize) -> Action { + // Options if let Some(method) = self.get_http_request_header(":method") { if method == "OPTIONS" { self.send_http_response(204, CORS_HEADERS.to_vec(), None); return Action::Pause; } } + + // Action for rule type: None if let Some(_) = self.rule_is_none(self.get_http_request_header(":path").unwrap()) { return Action::Continue; } + // Action for rule type: RateLimiter if let Some(plans_vec) = self.rule_is_rate_limiter(self.get_http_request_header(":path").unwrap()) { if let Some(header) = self.get_http_request_header("Authorization") { + // Decoding JWT token if let Ok(token) = base64::decode(header) { + //Deserializing token let obj: Data = serde_json::from_slice(&token).unwrap(); proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", obj).as_str()) .ok(); + // Since the rate limit works on a rate per minute based quota, we find current time let curr = self.get_current_time(); let tm = curr.duration_since(SystemTime::UNIX_EPOCH).unwrap(); let mn = (tm.as_secs() / 60) % 60; let _sc = tm.as_secs() % 60; + + // Initialise RateLimiter object let mut rl = RateLimiter::get(&obj.username, &obj.plan); + // Initialising headers to send back let mut headers = CORS_HEADERS.to_vec(); let count: String; + // Extracting limits based on plan stated in JWT token from the corresponding RateLimiterJson let limit = plans_vec .into_iter() .filter(|x| x.identifier == obj.plan) .map(|x| x.limit) - .collect::>()[0]; + .collect::>(); + + // Checking if the appropriate plan exists + if limit.len() != 1 { + self.send_http_response( + 429, + headers, + Some(b"Invalid plan name or duplicate plan names defined.\n"), + ); + return Action::Pause; + } - if rl.update(mn as i32) > limit { + //Update request count in RateLimiter object, and check if it exceeds limits + if rl.update(mn as i32) > limit[0] { count = rl.count.to_string(); headers .append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); @@ -115,6 +149,7 @@ impl HttpContext for UpstreamCall { } proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?}", &rl).as_str()) .ok(); + // set the new count in headers, and proxy_wasm storage count = rl.count.to_string(); rl.set(); headers.append(&mut vec![("x-rate-limit", &count), ("x-app-user", &rl.key)]); @@ -141,14 +176,18 @@ struct UpstreamCallRoot { impl Context for UpstreamCallRoot {} impl<'a> RootContext for UpstreamCallRoot { //TODO: Revisit this once the read only feature is released in Istio 1.10 + // Get Base64 encoded JSON from envoy config file when WASM VM starts fn on_vm_start(&mut self, _: usize) -> bool { if let Some(config_bytes) = self.get_configuration() { + // bytestring passed by VM -> String of base64 encoded JSON let config_str = String::from_utf8(config_bytes).unwrap(); + // String of base64 encoded JSON -> bytestring of decoded JSON let config_b64 = base64::decode(config_str).unwrap(); + // bytestring of decoded JSON -> String of decoded JSON let json_str = String::from_utf8(config_b64).unwrap(); - + // Deserializing JSON String into vector of JsonPath objects let json_vec: Vec = serde_json::from_str(&json_str).unwrap(); - + // Creating HashMap of pattern ("path name", "rule type") and saving into UpstreamCallRoot object for i in json_vec { self.config_json.insert(i.name, i.rule); } @@ -157,6 +196,7 @@ impl<'a> RootContext for UpstreamCallRoot { } fn create_http_context(&self, _: u32) -> Option> { + // creating UpstreamCall object for each new call Some(Box::new(UpstreamCall::new(&self.config_json))) } diff --git a/rate-limit-filter/src/rate_limiter/rate_limiter.rs b/rate-limit-filter/src/rate_limiter/rate_limiter.rs index 4dd6efc..60fb794 100644 --- a/rate-limit-filter/src/rate_limiter/rate_limiter.rs +++ b/rate-limit-filter/src/rate_limiter/rate_limiter.rs @@ -5,74 +5,48 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct RateLimiter { - //pub rpm: Option, + // Tracks time pub min: i32, + // Tracks number of calls made pub count: u32, + // stores a key(username according to example) pub key: String, } impl RateLimiter { fn new(key: &String, _plan: &String) -> Self { - // make these dynamic as well - /* - let limit = match plan.as_str() { - "Enterprise" => Some(100), - "Team" => Some(50), - "Personal" => Some(10), - _ => None, - }; - */ Self { - //rpm: limit, min: -1, count: 0, key: key.clone(), } } + // Get key and plan from proxy_wasm shared data store (username+plan name) pub fn get(key: &String, plan: &String) -> Self { if let Ok(data) = proxy_wasm::hostcalls::get_shared_data(&key.clone()) { if let Some(data) = data.0 { let data: Option = bincode::deserialize(&data).unwrap_or(None); if let Some(obj) = data { - /* - let limit = match plan.as_str() { - "Enterprise" => Some(100), - "Team" => Some(50), - "Personal" => Some(10), - _ => None, - }; - obj.rpm = limit; - */ return obj; } } } return Self::new(&key, &plan); } + // Set key and plan in proxy_wasm shared data store (username+plan name) pub fn set(&self) { let target: Option = Some(self.clone()); let encoded: Vec = bincode::serialize(&target).unwrap(); proxy_wasm::hostcalls::set_shared_data(&self.key.clone(), Some(&encoded), None).ok(); } + // Update time (minute by minute) and increment count pub fn update(&mut self, time: i32) -> u32 { if self.min != time { self.min = time; self.count = 0; } self.count += 1; - proxy_wasm::hostcalls::log( - LogLevel::Debug, - format!("Obj {:?} ", self.count).as_str(), //{:?}", self.rpm - ) - .ok(); + proxy_wasm::hostcalls::log(LogLevel::Debug, format!("Obj {:?} ", self.count).as_str()).ok(); self.count - /* - if let Some(sm) = self.rpm { - if self.count > sm { - return false; - } - } - return true; - */ } }

#M2DYH9kzLpo_ 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 z zun~VW-sR>gI0;AP&r>LyUXzWcQg1BZ15xwUw=Bkf$~~%smheEDXd0pP6z5H_Vfm>)07;uG;|V zO!?FdilXaFf13d>QbLug=SCceXuNODw?+0Ox`MqYoadR7MZriyK0q zx)Tg7Pf5qyW<8=6M*$O8I9HRL0}fvd&6G-54sy zA$&Ey8Zlhfl?0&fY6RmSr<-Vu-2XVe2uWo6e7X*)BlD>*M+4`%RY963D{5*Zkdi3pFtOz=KsGKVA-kn4-49M`*bjx2bFyj?eN zv^iTQK=0HQm`p$uz;FdeQoKZ&r+NiS}mEmjUdSk??EYO0l_H*<^{=c z{Iy_khOu}zI<9Ts#34_vrkPYJCzQ~wcpNGLx!fcBuA%z$k({uG8Vx$J3?z$*toc-n_Rh(9!V_bo2*tc`DQko0d*30f67+RQJ2sc2=B|}r01wn=*hrIOO|gu zN6ByOLl_!9YPJ*^j;ae34~yo?6!#piIeZi;!QLe;%ME?l+MWxo2d~$ z@3EhYHiP1=mNCy$y~v|%;^qZiE#F;4wdJ}usjZy z8r^k+Me2d^%;tEfAn+=>Z=DAIAdzFaQHVR>)D6ZyH-Bq{fLoUOQEX#ksCviUC0PIc za>foC9%~meBuZt~4%%+bpshSrhBI0rd+$7J1`*QSNlDHOcI?D#8kX+eN%_>YOjDm; zGp*zM20#woQTls)fY~+xGN|#W_#HB&9PJVHWzicDJGaY^-yomE7V9!w{Nth=alo6D zlE$OvA;Ttg9vhtYCcTQ`f%7vPbeMjM^$v!%g=&U?XIiX3F^ZSe!(Zk=79R2zeGfQb z0Oso)B{QY^}ywNh&T zf>x@bY_lIxG27+%{nX0;GqeCF&;^_U2bhoV&md9;lI&A~>%vK%Q(B$m3*Rwst5S9L zCEGCK@kyx6e3#-Qf8&kScw=SmyVUb8N4>x(SiLZKGi5j}84Htz7O*2v0tsas1%0C?h9vr}VW?(mI9Zht*!Yp_SSV2?o5 z%VQi%6OFg^@~#6^yB2N(Kz?V@2Dj8AbG;R6t&A+E^k{YA zt_rx+2g)nTsZFeP0?{?$1eM7L%c&pO*Y0v^*=`@`KJJ@T;6^@LHY(RK-vQw@j`JsZ z!ME~aHLOoMmF84>#X(3{p+(?gaJJrgh+6O+MS|tirE7&sGb z;QsaUf%oWPRvQ2M4}8cGhY>z=Va;(qM)~()sCHOuNQ?HT!%(kr4FSR&*Z_%F{Fwpp zEoGhr^Xdlifk_iKNREA<#$XWtexDk%Qmxs1*HQx+{ z;W-b_%B64|94A=2P zx0X4EyxR7$=I5sL1Wr$2-#YnPl;L02PHUIDp2 zM?yhKkWG((h~>zuj{t6leB=l+Gu<%XJWeTJ$!FHiwDNOV{*brbVc6{ zfPoATSpkm}i%27YSbbBl1fx>-n6`zm$R8AMuW-=nyf20MG@X(^e?-S&d#LyrF@3${ zbw_D@>`|poLcX=E0`DJ%$bVF}`~=~CM`hk8)FAx^?i%_NCXFHUR^j^%$d56kKP)$V z0yV z2#C|Y3WjbgZUV~(l8%+MuiR#CV^a<+tD+q1kI_|46cNiEskZqrx>MVnm1h*3!F$yo z_BJ!=#IDAF9taM^pg^&VQwR<$`4UizOK<%gYI*3<%{UnAjmRUqDma zBUgSwH$<(1s-Y$WJa!+a`k9J?JGOsgD{2_66o9dc-_LLp%VhuKv<-hgNk)80fxn+5 zul|zSg&l{bnq$jmd`a`d9@~h-%#AYjE9xrB*2`gEQ7e(ZQ7-<98j9l^lVvMKdt0$;oO2GzOr9xHR-d)~P z`PT`0D`6p`Yb{?2#}cd5T6yFfdL+gQkTF&r*RI zeZ<3jP6=qWWWpr4o3;b_?PH z8TWlq5T3&BAL)9!R;K?%K0G@8M3e1++AM_EC(1oPQRaYcDxekugTa500dYtfUd`AB z7YGPgd^qm2QUWZ-*vBg5PtFZk1aP^9O{AGZ^DSn!a@XN!N=-QpFP5>}g>GDS(N-_|Q*sLa z0HR-!F${s3xjJ{43>p8KhYF!Oj}qPRQR7S7Q9CdwbbSUu7;h@W1OO_zCj10Ewz-cx z0H~@zg;in3(E@Cc?+90ufp}BvKlFty^01w}>o0VU?O2XH3~$&ozkseEmu0`eK+;YA z_zTs8>YMm0HAc$#6-bvOZ~K*+`fXDIF;P-Ch?kiGy6XYuN^c`Fz;r^Hb6~AOL>%h^ z|3MgID;pR}o;;_Dh8st4*|^adYlC(%3`B#R3#8hWkyTVPIRNamxJLn(wyuJ9)p7b- ztcxY@U_BN(DZ_<-tDF>86{e^_it*+28q`}WANh?A-~bo@0b2Eq?E5D*m+$=!b>7NK zu_Qvi#f|ZwQ4?47u-8pLLtmU#kNw$q{z=nd4(ulc$GWuqo9eTu%9;d3)uDe=!;Bm& z2w7o>o}&Vi-FZH4TgRVfP|qCs8HxKY*$nhjyDC@AS+q$cqQ8HvcB$U^dtBAn|G#FI z|L-(Y6lkVO2*ef1LQN##@vJ7A;BiP3J@80#i%H_$jdH0Q+l%KbZZU|Ti6NpsKRbko z28k-@l=&)x3A8+;fkzvuUn3t15q;??`BsRyF=-$3W*j?Q1_kX1S{MEVBS3baT%kzB0_ZX@@g=v*VsObTkVX)@Y*OH z8Sl`N2g)ZRM60Mlh{A!^pJM!bn=FqI^^gH2l{1cRlYd2sE06)i=8R7iM4}uJDN>OO z{fl!y+a~Xi6y4dC9_@*OD}7g_XrnyqRuXry^rMKUlq&^zCl7>({{QDTqGzn=1b5D? zSb>jOWQp~7D^`q-vA-!TR^OD$4e=rqgbd`=_UsELP{FaJ)8oY0sN*wtI#TXpUGQf( zSL(P)5GEWY(kg$ToTH00v3;H_(Xq$p_T464+~f4UDbRP86B>G6wYiLYOma$BHr;Aftlmab}iE21_E!w-#(d-jBw7-t&9rJ&^d$c zt$=uoGvYY|Ut(~^HqMCS3|ubE8LI;je02vhmUBilLvUO#GM?a!2z`-XQ*pbbj`6&TEypCHxIY4aeb66{nPV*@8MoWd2H3Uoi0Q-MY+ zd8yI?8TFBn?+g>^X891eyenPQ@|S&%qEM_X)|ppK`RhDNYTkn)2;Hg9<`;eeP;o)f zg(y;>Hd>tgH$ZD%5H#NbRS1JseCsS&wqQb}w?=RjMXFgFm$o{f4lXU=j2aj0XO&ae z!ZPDmo@gpS9VGi+Whk_>v8;k~k^o|1*^=5~l&unhM?xivt0OW(mwb&eEtXf+!Jpke zwp;#KN3;)JxDgzGy=+xi^vx{9y8(PO(pm6_<`XYmO8;gu>qAD0v0$Towl1jY@!h3| z>WZ2~cge3j!Uu6X!Yi%{wcKK|hgWbo^+R5v;!!}+TOc$Ok1Q1r39)mVSL9l@Wwv`9 zk-{fh(W5fkCk6(_&E}6fJu&X8uhh7=`^2@BQ>xb!jo9hmE<-e<{W32DqSQlDW{51L z$}&XK;CzwFTtZpepu|CcOpLR{8fRpEQ7^d?xPk^0_bNJ$_ibFbOkQ1I zG1`af3l4GJQeR2fpVt@oJY9x05O)P;&#gYxpnBI@e$(jvCeZ+(1G!&jXRk(=-vEiPA zNs~H53ec-G{Z|M}on7ipPHZUdtY_I;90&DbOv!RkpHy!>fawb)T#_CiLVMU0iXRW7 z4*R`v4jO7HZCuf|HL^=1(I3`Dvym7bEO^M6#-epyYy$LMzR>~vT-~?IQUL6Xu>BYi zK87|13ZB|6XEzqDTK%#cXbL=M^|&1Gj=JfP0AtEqOq4Bvxp>zLWMyN~tL7ZWZ_s3* zHQORJWA;Ybw~6rj_Y>|*rOD_^DKy}9)YF|S?0>)l7e4v~JWT)^W2$W3R`-AN`mIKh zdo_&RxRV+{d`SoFkp`@+eAHPP@j|FkH{9~at+=~Xf$&F}3Y^%V`vV;xmsLr`RRXg#`#bEhTQ^@;6TL@k5XeR2O(@yvW#}ghj zo^UpYHW&Xor{d*JfshUXQQ0_%C~0-cnp$NB#LIC%g=ZjF2|<2glq->pVl3 zpIsrcGq%m-V}$QA`0p1q!DDU#XAHt&RDW03ZA>qawOflTL(iZ9uA=)}iDs8>d5YZG zO0>;5;53ZDLDh0``8h2wDYshA2k2$B{06t&CUgB?PSbDLP3Ql8PSaI?Sxr}>KrbpC z)LI}uu&2z;7PUdzZp(%?W_|RIeE?}I$_8mG_zJL#<@Z;LftLxoJ6qfa(9AaAIXM!4 zxi>S=Dzl3ysUq5ztKzcLIbI};c^yP9EVS!7fK}(nk2(mC4a$Ed z%;9g!P%E2v6xomf?(7H_l_TeM3<3=ZFa_3z{kx;MInX7y)1wo{V^3&YCvgLufqOe) z(e_I%S4=~zGjmm|8*@dSzyR1E{9!I*q17sGaOR*06-w})0W-~fdBPBU#|4685Wdq{ z#8X50KHN(*OU85&DNzLwx|Ao?s3BW)5#G#o2;^nH0_TLH%9>-H*cO1CMRMnTqGq@U zV6aoHlMA|t+`yO^`;K7nX0(l^(sU;V@l zhz+}AZ7Fhzg_1pb3NHF|Qohs^9wgg9D|r7_u{C$kGOUI2?OV2x z-+GE`0>kEma6>OX2p0b2_X?8UF0zriy~Ql=`E0makh8pi-}V*-uzHX0Bc=qp;}-w! zQ{7#|zM^#^Uw-AqJ(YOiQl!pwjXPIwCF}MBwy%@}28eX2_ZN|JM_&=&-!=s?+69|} zATJoU^{Cvrk!&52#xWMU`s71hv32QQZto}3E~A5EP6z8Rr-Oa{M1!DdTvi7^W5bq$ z^!<-Jc&-0s%^;tzclj?mXmc5>Q}|!Doi0-cinOeM-rr5C19|H}aTnq+-yA3w^=It| zr_6F(vq=qXj`bplgZ#?c5pzB~qt;aKnNXKx0rluy)LV0nLcQ{9#FhSw*dBuruF%=8 zVsZi9TBwK~1K(>GF|{xrdlHX${R6`1Ug|FisqZ~Oa$O!MWDA-2W_f`1eBkj>5}?^6 z%$5}Vr1Z|yXW%&T_`_i@#6#!5XO5@s(PQ0$6+eSjKTJ8u>x1gHqp0u+CIRxmwE-#} zB)?Qx1ncVSM90fGiXUBfc_`*A%4MCxAFr=I>oc#vtPVE)*B!LJ;j-|oTy-FgK_WrU zxj|f$QSDa1h8P$25J=uN$jJD=tp;DlNM;MtkSw zb&r9j$}b0rftLq9_$F~@!^=Kr@|&B2gqu(h{r-bN^h+!r^Uz?C7vKmi!02N|W{6dm zac)lA*7<1*`+r-m>#by~a_FnA732U`i3=!7` z3hkW;6gC(t@#S$Vry=>Xcdw6V|Gx}~k;lmj^U{B^h2almkqdh7Yh8eaqIC~9D4 ze0{R5l=0Tv%9j_O9jIYO#h=VZ@P{NUoeV6F-;{8PTJo*oqG33@t)Xl!msP`o!tt`% z2$4*QvfBsYLU;wK;=Wh?ro0#lamF76c9>bhr)jXRftL zX^)qxwZwvOYE8To>h-g7@twkRmE#jtJ@DqATxa=28H3m-sy>((FwueM@g2Qv?t&TS zS^2}AVmKAb>+XVH+D$ILOZXZu!RTyHFbs1d8j+1g{$p5(#%K)8aXr76Fwipj#a*I9 z>TgQ?4zZ%|aE+1r0xt#r>eDjkZdh!K5|Y(S zK-w-blTDD?K`{WCDeFBTYV|F8ri@uoFxRuLJ^|)}shvh~fa`IbC*!ttS&0QOeWe3{ zSTgzXIMF}Kj^tKRAWu(3h8>WpGCDkXA^fxP9s!j!`x%2}UL7B3^ zCTGfikBE4UE(*FSu+288xF~4Z*`PJ)V%-;7L{=fh)<;AVeJ$U4M5I;=3P1uyjSDTz zIr9ia)r&P&7KB}DE@2lPV0jSe*OOpUJASeC2^wJUM}~utv&HN%W>#P`A$VX1dtHPt;kXPKDmxzxl7x+b! z|6!#W|3xKP=od}@hyBcyBl5+d*q`QLp|Xskxmcr5gsd|K(psU+o&uNiYMDF*!Blgc zRNfSEL(B@qk{R`kU3?M1CvyK3(K7QxVjDzvHa#kbn-lrzvPFgY*wAIN-c(UPz?!Y= z5^k6(hDTY~5%9<8r{$YdakPsxX-pFt%`MYxkR-8i9vTX=o326{h~(H!bEb*L=T|DZ zbftyU#Fd#9m!7~e3(LQs244NX%$+X!%TCk90NMO8m=AkS7v1Os+2S$LHJtw}gNLc! zqmQB0FE8C{rA1p>&JZmda;<*=KV}gPfd6yL0nnCLFctoXmW$Q&puT!oM9YxHGe!MW z$WVNdHWPFHwgtq~vMg<1FOSU>iMOzSbuf{wG2&Y@k!$RMF3{A)qL+ROo_F2EciT!m z$Z^4rTF$TPb0F0X>`KOxGi59@vr)>}#qWEdUjS8B%oGhSI)a7Ys1Xe25e&x&jD6fN z|3H25L3sDL(yXznKPZWekvOPZ-viKL^noH{Q*c66=h?BTOUp$|vVVbSm3FZeI6QNw z{CuWJ5T|e-8|EU)p53nyo@Tx0#&?O#sAnrWe~JwT@0M;3k;{w!s6=T{C|yI33yah zmVR|YfKUm%ge4G`6oG^#kc6;>2!s-_W$Vx`2s#a^kTQf0RWVgTK(x{$L*p1F3e5$Z zhCrjzfGmF4!TzFzZl*zv8d)4SFm^|l79mPprU!KXb6?%c<2Ex)ec#Ew|2gOG_ny1F z`(AFHKuueaY%Do>NrX4~ZXIraTR5xax6WOqH4->?wxn(yE_|>lOEsYim3-^m)wCrg zWRP2@Qfb+hLsgW@UvmDm3KP#}5%Uyfgl>};Zur?0USW`j&7+;S^ST939WdCq*394F zUXbc5=)X5+JsCo^dZCq4KVZ<&O&PkEnqYBLZx9rLF z|91ojZit}pW);{Zho&tHcSa7$kOli2GxAcfS`A2pW?Kz#1P*tan6;J$hN|#I4R^YG z%~Pl#`Hf+D2G93iaM?kMHbz7aH|mtFue6&E_fAM$tdHhD;V_&zks66Yd-CF&%-5ie z=UqG#VNUI6{X>wBJT>!IA)`dgTFmJeMVD&AE5Fs$MU1S*iSb2*V*A;SqsKcC9Mf7+ zP>sExrHeNowp63W)`%n3l-(m@9o2WGU}tevE#?_o7J64+;&GUb(nZ4N@Axt&dw!5d zEAU)*IJ0F@jQ-63=OCwV7Gw;1hjlR7b_pBP04i5*za4yhgnx03&&lHnCD$C{hGln- z{oj)sVepjUFt@0j{kQV`!{JP~4LNR9Bvi|7Bu^rlfqfNHlVf8P(%`e>o+9)tP0z7z zIAFu)wtN_F=C6>~!CI3UrZ3!ZXVGGq{2c3Oc-($|l^W}(Ut&HyA#Pho11DBqWLCK0 zM@C{{Yk(2V%Oo7qt+Mv*vIExt3OU8IAn*{!Z`V;$(jKhx_?$w@8_<~`|DIQVC&YW} zsDJlU@?eTHZJn3NOp6ZdVE}gQ6+_ljKCRm;R;;IaKl^{SSo+Od_a+@e4E!~vh44Y1 zG@LWOjpt{$X9Xwx=r&}IjCOHLho_4icpV{{B)cmwRk#-9V>$VRj-Sc3DYR1xZIAF+ zAq_DgR0o_#xeVNCb2seCsmBYT?hjrwdgtr!a z7#MX2(4C^qsXTMJ4>4$GPIdN`V}jR&Xgpk3+#?PP>O)w>u^YvUsd_=ZdttF;AFzF_ zq2zAeEwVP^9g83FuM#%WXu9whv1%jD8#~6y4Q}-Y^9VV60LkSa{;-cP!d;1ScD2~h zL%&&U)`@PLD6{KSXM8v)E>_~J>t-d1Ih!c88$u-UzpTJhOmqi?G0b0zwVSBdyfIb~ zPD4h|cdpHFBOnJOI5QR*OG8-q7XmWqWAa~Zxn zmVp0P^DHVd-hB`b-nO0f9QETN;*{~i7QEzW3j$c|>NV#c{8^<%l&7_x#fTQn_xrZe(1exXW7HbI zhs)8t5+(NinR2NyN>qMCOUK2wGYud3gF!K%M373ZC;YuYNub^!#(hA2K?lXt+i3UH zs|fxJz$#>ygZBe*E}4=+E>M4vozEp?%s&TcfS9wLuJpI73L!J}FP zbsDbM@C6OG(-JtS$(uBMP2x~ni4SQC%^K!rw%5pD4S%5Nw`$m>>3_mzg39MkB*m zg&!5hEMwki5QkUhV+{ObK{=ptpjgv)kE;e#4(1nvR(Ik=pWK>5PV(vm`HAjZd8ai@bn2&6D)sHcTPGVuuj13|e< zyun5OqWszSOw0f2-MM9+;G#&NyCLTq33>y;5xFj7Ga~O0#@WDo!q{DbD9TG#c!DK< zHm)ks1@Lo?C|m&laN|BJ!jXvJQaFNpeV%X>-Xfj=Q~)phsi6GA#jZY`tY1ia-w&l0b_t8t#oN%Jo7^Z~-%E)xMuOEU?Znx=lsw^Ko8mI~?U;>@9dlY9 zSHSyFh1a*xYZ%K#?mj9GtwfA-A;J-WoKhA3K*OJD`0pCNs^M!Ijz%RWBOMigXA6fS zj3@-)5uy}$+8AQPLxFi1D*13=o>Eid<%i>>={ zgmF~7zMme5{=Tbe++(c+9z8&2{5{=FqXa?NM6r2XDYhJ-yfG@pbzr$b%R&4@0T(jp}0>qk4mq zK)pacL5U{52J=TO9bZkX9rP+~kLmuewx}M5e--H8xRQ!Q-W${<#vBx0;)%@9@pLuU zRSgD@&e!1baCl>owI*yH#B0KCqVWuk5+jdNQlV?GwW@p$rRQlu;lse(R0_WXoMppD zfw^la`Eg*LE)-5i-?GAseMj*=%<&T_ki&uf>B-tJkJ2Vbf|+h*It8J)WvkO=^U%BL zV#+aEkur0b)l8MJzdVU4{O1T3O~>f5Sr?$^hrBr2DuEsM2VdcUCTGm@e+Tgo1;9d8 zuB+>h)6?|9@Y>mL5K+>IEYo1~G!`!RsXVxBZ>MF6(zht3Qzg8n6j@g)4JBUFix-=h3DJL@Siwt>=bU_CAT4V2j5uCwY^O`St`0?&t-=iWq+ z!b3GYR>OB|_)!i2TEqJ^e8j?`NP-tNg|ooDKq^DLBJOR&P7SkVvKJs4Z#v(}jVb11(xf#Sil-T$!$d0#I zvn8`sCNj8xEr_2v#@ah^D{?Gb#o_np;R)}6y#VljP#nk}Sq(7LHqds^??5}k?(=Y; z7yc9UleD6WGVBgLL9c6}9}~&4;DVAO6>SOBINEo{h^7;iO>n!Nq_hMjUkX`wOFr`? zWk>jHz~eCs{pyo6k;64Y&ThL?loC?m4?)L@-zvs24L54|Lk<5`!(V8)Rm0aU974vd z1lyw(>>22yVcrMX<^46x1H~@S(J)WpcKLLPVMbI2cn-G|M9yjIm#z4v;3pxs3a^al zSs7mz!D7v6+D->^#jy7&H?9_8+N@N>G!>TJW|^i$^uqDbQMfnoBpdDn%mYu!lYz(C zunU;`ppp*&j+a>E{3rb*<&Wd7>EjA`+)ufM`G@QpuY&HGD5s^qPfoaT)lkPu__5vq zISNwktk=M{772a#$ah&0F zz`>HtZCd-g!sRdtp7L_fa;#$A)*OwMR*hPe!*0e)EUNaQM!0+(N=pzsCg@!~^barg{o?t(MagF4Fs7{R#-72bw?a35B9dl>%>JT5*b*$ny|WY5MqV9v6t zn)C2q(0CVtHIXi$|b1y%e>|CxWN^uShx`N@nA*i zm*A^lm*Hn4)&jEgzY_U>qZxf?-f0?lK(q+O;)OY@@DC97s}?G_ju_R(fco%fvd5RT*^OVR6Rp;rBh(ZM`^b)P-@$5wf z;$=ZJNMW|#+&2{d2L3o3=1kl59U3ML^Tyh)&l_vt0g(iF+D*14a6hn>VC}&R_+nm{ z_iIoy(UUg6^J6=Fp|++r?+bd3JS}&b)&?Cxc_=Hq6Mjxl;ooa`mxgz1c#p#3=a(rj zUPZGv!hY#8W%gI>IAoS<}&I@U$QQY_W5a3gims zEh{5qc)E;C_*y78RmtB(-t37s0Z)KlMh0wvc)NvW3~9!w;a{!`<|FK%G{-Xj*QCT6 zgV%-oE9#n71`!f99)ioWWG+YrTNReAnj=PPt*LVh-dY|a`HGS0GF5-U6eYKs4yGp%NvgTSNexaO1?0R_ZG5Y^B)3xxh(Kt3pa?a24K-XgU9O zoMOX=Ay>^(1dBhk(hF4gikSZmjT_7l&7BR2&Ef2*0|kZEfkLx5{0)sw z81aBLZH$M@X0K$r==d!SO)3TE^~egi$cXV6Ty9#(XMRh$DJtB4@VQj)!{s^QEL^S> z=b?sbO zQjEo%Jaso33q|#HD!id*MT;M= Date: Fri, 19 Mar 2021 19:46:57 +0530 Subject: [PATCH 54/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 197115 -> 200358 bytes rate-limit-filter/src/lib.rs | 23 ++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 615f172bd1bee44eab2ea0c10c07b4488477427c..454ea352e3cec933ebf7d75ca72b67adabd340a6 100644 GIT binary patch delta 50068 zcmd4433wF6);~N|JxL~+EFH*35};=Ykg#tC3|pFgUtADz0Te_7va6`b1c(q;qa7#& zlqm5Mb`UhEC_xcWQ39d{MU7WfR1{S7Mn(DmPW6&umG?gH`#s;~I^9)uYCm=MuKYPW z@?TFyZfWWEo>G2LLR?H?q0DISE;2rL59h8hqkTvRV_L}cq;Qwlb>9D&i@OxXWq3pT z2No)c6DLoY_Tcc5cic1l{?U`C+%sYP@D{^c4sYR_>$ZxJbLWKdQ%6smI{ePbqeo61 z?OLNmnYB7}t6w#z~JFJ#IAWY*1pIto!dBK4t32$x~hFCs_?A z7oFU7&zSork9PgQs@tD>&z)mkXN_~AiFN+Nsz)?_^aC`i@uTmYiXpqsuq0zpSX}6+ zkyA&yDvbeQ4O6OEg46VU6Q@kY(C-~C%fB!R!s=)K&XSz+$)hLTH+ss{;dhT7ISPy5 z`jN$7RCdRNQ4hNQZG0b=%1#*`Pio5PpbjRFo-%R5_$i}@OQC8Kq=ed7VzEplyzED0>DwSi(=gM13p8FZ(Z{P)ZTgsR4H|LPn2bRj{5+Ag}=-HQu36SS?WIi6))w# z@-zGo?ahOp@=}0(r@X3skBYmML(1#? z31u7qMtN5e{MKjK`u@@n{osD?OfwY2GOB{oSr~?&=?3hEE*$I(f^mb?K`R^N5HCl8p zq?#^0H+T9Zf0#}wOeM$fqPCVHC4Z3RXPQgHe|=M^q`-vpE8Q{SmG2w()=WVx%;PdM>WdS+<@}x+o^?f zb*aWmJ6A8EOxbJ^<%LmcemU~a8gmnUfo1f%5I?dXO5|CIB1#lm33@tUC6ricmC(}x z+d_$AtAw5o*bYi;uuAA@f(0;|GD>Z?is}tAw5o*q-2$a!ODR&EY_BqJk2X zLnTLo6P1)WQXVjij+rSlae@+*LzRvPCr(p>a;W5FaH5J5ltU$Ff)lxiP(nFWa+XT$ zL_SIaGK-1|2rdsll%S_mvWyZ7trB`VU`3QDv`XmdfR#{UrBy;t2W$%^imj630HtiW z9hBH$717gyE2G4AtAw5o*nUdvv`XmdfR$5Xk5xiX2dsh;2V_aWd~x6^spyC-GM^Tl zOFuy+$E*^1I$)yz;o>$9N7<@tfhbwYH8>D8Sy)$g7}mD0I~Rs?KDse1vR=uo#^ z0&S^Dt!WkI&f~|JUpJ%PNsW60d`3MGG6rIv2AZw!cjf3fJuAvwdYJkWGd>;EAOIdf zMdhxX48`S-?gFI9oj6-QPP+zU42r%U6?#N*>kU;;@$OOFt3|J&x{8|Rb=rQO+73b6 z8c*lFbk-v(jNbbBBcfPjh!@@HZgrnR+!X~~LfRU$2FJziF~JFPkRK3JbJRDCb%W~$ zqS`7g%)x1d4;t5y(@Q@9cylruS3hE?;_Vsb(V36QF@?~W(3>+YUlgsR3&pgcKJ=`k zxpo+U+w7o4juxiwmZNCrb8BIkc9@hfFAsUKk2dCwLx#uX^<|s6# z9#FIpAf?$MdZMw0XgovdMfet?M^a^`CqYQTD&C#rSE9feS&q+*L8kLIzDU`RKTLD0 zY3PlC^Wrg>jfD^r)kVu+<5P5(FC-GHZY4Fhk5QJA%>!B(9iRLC9y(9qG**8oMxjM$ ziiQ`D->Z2wrEiLQ%9wdwd_d8>Jt?Diiq{v4afWN5*r^m6qUIS3dcpc)c)+_z3@?m^ zj|Q3DAYMEWComCekawrI9+P~bwA{ylVDdb3y4FL{B%KxFIb7WI%JyF1jdXZ6cuo21z}e zv#HvSo)AXHu0VA{V71xumhJmR-SjyfrrV%IPp8C>hq#QKjRb!&Qv zaA)!xu!hiOXhp+~CO7#yVjt6a3F{se(xpRgmkzT)jge8r{0eP}9B46UI4uUpV$i`g zc?t+ylrjIN&Nmkn+w*Ib$+x41IYix!W0T3Zm>FA`MMH|1y><3Fpf9-)CH6uT<6zQC z82+JYL95r;7(BF1gMX}rP0nEbpzcDM{{Pl$n8 zyKVW4SS1o3DU3llql9WEl4K%@5?lj9U{9B!CbsIHVGWXgLpOSa#qxVZvE<13;LX@O ztmRd1M*RQBn*q)wPsJ5BBWMpI{>OXZY=QEByay@GH-eW+TKhF^hU&;)m?6;(!X`#s zNC7g3V&AsjTJs)@4I>Ar)xu=9*<*41&72O%!CQzd03jses-n3Ih^ulX;;QH%u8Pt0 zwv<3tr0T{0^_5F8z{Yw7ID&O{sQZ4IyoFvNi_k@j9KBEgtPqn?m&*fY0Zpq0!nE`} zf;w#kL4j1ZRY-mz*)kI+#;Oo77ee1oHMZF8LhyztPN}uji=s32qyiz3P9D8noD=Es zlE`e$V!tyBEUH)YV7-Xo(n4P#9JQ>LjxJ<7;oY@xo8u6TwWz!C%3g*BI~z*;i1uL_zfmJCd`dVPs=OW?}KY~T~1sd`(iB$e%_ z-CBqrxkJzRcwE3knoWzbeh(BIDUpVQdH6$(gLT{74E-Vo>>7(ijL3~g3<=~O68b$_ zxcV=}AF;7Z=nQ`XN!G+~64v;MBLD(Y;kS^2v7>&49v*)vbS4niK#sb~xK&H%J73;5 zN9z$DTDTVDS-Rg{MOTTDY+x9z#c$-K{YIZU$ z&Gdo|Xzo+$kdVH@$Zd8*v(xA^ldD+qgiPK9j|1x{BOQC?(bGZnH9VoUm!S!DiNTvM zXIaKm%{#`HQ-(Z2HLzjPpfBGyZ-=t97JJw#UFcD^XKP2CD#K3_y2o;#D4XG@$hzkTR^- zN-kfG@vRbuk4`3D9<2xZS@1xf=&`ywRafuxGj)Ph(|n_fcq88J*7Mytn9l^fYHmpb zGkFP^v7Cf^vKCMCSiJ4aR<+phAH{B$o~kcgw%a6Z`bxa%we_7&#sSJm)lWDXRg{sb zZ+X(LQieCZtzKnk02k8rvu~n!?Y3Lmyvy2Q9TU<0mJq0Pa>_KUe3*1ALXlko#KWj+ z$WbXi5)~+mtD}t(nW@pJTnkybKpsUMy={JG2@jQxuiMt{+QytM-ZrZJ9?nJ^8J)%l z_AjSiB}O`9pj3pNB3!IaNyw=4%AAxug8@3QDUhoakN_J_)^bv^#SpVh0kRvlI;XHg zZmYO>H1aH@pVtzzQ?hK~UMyy^xqMPevzj)K5!6(BX^qc1Kfo%CA=zzM2V+6@ z0CvCeadzX{h1?fLqgB9X% zPj|bSv2Ts4?$5HL#)=*T@%z2}ZQrviYi0y`)@yo{<`74d4G9{J%&mD*u5qwuJ+GW~ ztQTix(6+yN-oz3FaZV*f=iZrcBwA=4&2xtT_#GNNho&ZKB2}^pM-a^PowpqzA;!LGB9ZH`Cvbf8;b@t zHdYUR1jO4nVj5d)EFY1K_ZLPq1abIuL<2U#aF1+&{Kg{-_?{)kt0R3;Z_sH=u}<5z z??;Ye0gED@ptDN{(58r0PKHGh^H3ot#DFd4rwA9>$OvoJ~}C?N94&N$g&|Pwa#cTPHS!V?5$oY*^1M{#guZ} zgX4Z;Y^*VMd>(t#I6b~E-aAYf%0?PXCM;+FHd;)q#a0-7CVs&78QP>fB1e*FJ`Gkg znEH%W6XK24le&ZEd^>3{1Kzfu(lUHGv3)g1U2fbrr76UM)l=573bC~Yt7)M$r&FYX z1agQkAc6N!&5K(BkqV|NLTIwb>g{kojOhECu;oVk`>sJNlkQ7krAGdJ!_*b9t^o`O z%mVxQzQ$~zQRn_H?65KN{@NgYf&1gxTgH<6v)KSceXWjh=Ki)If=wRC!0!QV#^(<-X2%WhwDB1APfx>8_Sm$CFtvM&QjG==Y9Sqc?#OUs15#ri zY{4EdmOTj0VC;EtHDK<3XiPF%b(7A(^dqyt8;;>e1#fXjx~bB(kcXQ{77|Ll!A&gW zB!RiXLV8SZ&>Soz6ao?ujEY>osK{u5!L|_P)l{-k5&H;QyA{(jL(wBzGg=hK2WTQ% ztU8c3Nh8z0)c>34ZZdNqFCB(X;~8Qau$B|kpah;WtqWNaVwO-smPjLh_E@#KKQt;L zGMtuO4ITsaPPwp(8Dk%bW0gkkBYUwJJ!kk?TO(&iZ|vT{*$KwmGa~W!(TsZPUaF#a z_0#6e_Zks_-l%XxpoImxA`qD*$#W#uf#_yT_sNn(lM!N9VDpvnN#vGNJ2RW%cgDcLi2*s)um^38hO^SqF&5K40Xtm}VV%Hd$Hk*1JIJ;$>>=CMfWH&CfN>sM~+J?p}vs+=J6V}EXN?tZj zRJXk82;JG8*NdIn7V#)&am9;)E~Xv2)?`GJmmsIH_S@OtP+oKy@_$DJW? z3_+%3FCkh@@QV<2vC(tE^=N0sf;_aTEgZmB8WR@!V$L|Nz__TE7^@a)SdOxV32|9; zrelHQq-Ll&-8d{ znS+aEW0%Mo{#v%$SZj@6)dPJnTh+9mkxmj}s+kewTXJbGeQJ&`9*^g%7is&=-qlNjxsW0S@mFSF2H~Il?x~d0YcP)Dkpgpr| zxDfCUZW3~&giDNa^#V-^MN6`KPj9qBsp>&^FbFtUuud2O^-Dv<0}d@Xku>*Mc*o!; zleT*t4Y>eZi?^0S!QKQSAalc!23lu2(a3TT0lPR{$BGKpiR?&>6jTzj6y>5k)HEDGN@T(~&+!T#mmc?PjzVZTA?59^+(> z8i!_vGl?RzSL%(xWmf@bQ59z|HFr-rP~e=8lq3ySXP9=hSTgP?a_u2>z`ua?mAL4E zKPX&}zyK{5rcKRA#vvcBq-~O5RWB?~7*6_7Ny{wC78XR=BCt3nWs4xP#x!Jjd_Xch zA<@ItmV>hxPD29Lnpi_1bRZBdXM+csR=`N0I(+EFTSqR13V3!4rgokUZK%`B*Jhi#BmR33QKquu0WE z*k~=bCjpSVG#YJVEM&6j;g3%7$69Baf=s|SoI?O3oEDveQG()O;((Oy8X6y|S9$=L z2RR=T#L5Eiu*!54s+k@6La&b5DOet?B&`e&S{JNeAGt1G=`zAmcjsXENP$2on7_v1 zF{8DR8)Pm7CTE|0i;Bb2F4qGT+V)9f+;B;QSi&WZRdA>HL#!>zyEM}A}&kZsp#iR3}5ngFgS{$r? z5>w>ap+R#kvOms)1WE*fku(WSM(TknP?M&rD^ZA+K^Qrr3P7|a;xmMD;;ewIqO4jl zz;37|L;yS(8#U@SeU6IdbEIy_vaafppt71uFB8X-Q@aL4U=S?g@j*fa8M2wA!Pp7d zhcOD1p@79ps^~@tC1q+dngfc7MYD-~5|-0}Ar~lZq)ZS(!_kk22TSSD><|-=qi`ak zOqz|sfDR9gA~r~*0WuGw3NAylDaM2NqNLc&8XN7R**T;t)CR>SuI3NNqFMc^=ufSt z*u1JNWmYy`zg>2V|+8s9C=u6yPK)JoIyKcZT4F>E&w z!JIUDiww5bm?9dnl5J0m4UC^yVf1_Q0e*Ug@#d3L_|Gf0Wi3CX1WvDk0i>3G1P{~N z5v#}Q3ridgAE^y?O1DfS+y7+)TgKu&PKIR~IpSnkrjg@LhGh&nV`g-MboYaSA=K7O z3awVL#fK1DMgVIuF};w6*i_$R4-q&PtFNR%tuyvN{TV+~Xq2q#8M<%@a#k3>t|F`G zy+v89qft^c0GjQ8ib%7q_Y7&a`<{`SZHTGat|Y6ct=WcHn(e4(6QpLVNMcN)ZZUyH zK(l>pbqlH4YT?9FNM3~f6e^Q^1?i5K8kl7mMYIK31%6!J0sS^E_CdGrU);9Awr5Sl zXoya4X!aB*(br8uY-9-JI&{=ZV_k9THLn7|)M)7qv2YYDM+cQanj`Ql+%z&kjU_vz z)#0DTFQda3pYyX}#?j|)>i{iPy8k!PEJ8?Wl_v=jLU1(_hk$j6;37rUQBo)W%eEtO z+m2{bSZgal7%tFQNiCnSb^}{uq^|oa zbPe~pA|s7M>yu$)@vrZK-_h&4;&-ilKPi8kZ=n3i^7jS#TeYDj%P|^ltUxo$rT~6t zZ^{jmjd{Gr&P~Zi+UBOny>4?ez|Guz58l7u{GHjI$7s2A5Hgx!S?uerOXePODd?Q8IXav4zR%_+qR40sK+@)K`44WMQo6&0jEKQ z@#*#(?RMI|kOQOA>KE?Bf`+~Ln%8VzRyE3BoOfP&RB7khM>!dO!hDEUrLaC3>_IvW zL{l_eRvPCat1|U$94oDlBf@v&s8*vCU1GL8eMb^3U`uxVRX3Y7Dhtx z6xfCTy^-uSzI!!|eQLzK*5e-rAYQA*nj2eROS%GF@7MiC{4PIEd%InJcNQ>6XI4;HBK_4-j{RJCWm*Vy~I7GJ$cFyLCqve)?Yb@Fbv+f^qP z8ZYEfPf*#NZ*-Ea`C_3!p)AxXdy~w3ZrH(B8b7>2b5-{o7-XMNMRQ@<+!`1Qge}OW zK9_=JRADpj0JDU#5=8- zm;t*#g$r(e`})h2B)-$XPIa9SEO3Y!o#U*oG3y;V9nZaU6MNG5>z&&6u(ShTHn>O1 z@eulnxsd5RB3TQ8sIB8W5%2>23^9a4Bjeo}Y`9VKZpXSsh#rJ&iH!nja#?gi1~WrQ z$3Wfhjb?WnIqzNL$urO1o5q^=a^Xx#KRAKiV=Oy33k{`|*YYf;Vh9*Uhw}QZ?>>)u z5$%H20pvD9hCk~TEP0wKP8A9xdMYfR+3sOGo)(eP6p=X;%mRTZT(3az&dIqnb`n*n z^>jT!MpBc^u*~RxC>2YRb7)9t9?fv6vG-6`b8Ezqd8EmM1up>^?@93LjscKokw(z` zu=M*Vrr+nD!;NY~i$hl~J%PSj;BeYdohUMu)7oq~OrD)j5BnPd&a2m%q{sC@Qw(rK zLvk6IGd?d_n2(idq8HA?z&E%JkU3{!0JVJS}Gi4Rv*mpt~-cPwhdx9B8Q-|-zfIcv;0dL2J= z$oTkZX6O-;B-R=UACH3M@$kp9@q6xL5?=zJe4s*nVZ=z~HwP{?#~5|&Unuf^N&pK! z&BbrzXE)$?5%P@mH(4dRxcUIc2@`1zUYl2?A-c>!u| z%R7_8;(vzQH>Wv+WgZ_eWb63?<0onp?uQsfIEtQ#7@~dW+mx&(*1rKZ+e2?qKC_!37Iv^X)H8YZIfE{Mq{J?|S+G1uPDA5{ZiJ6f-)=C%2bcWK7pexM6 z(++ewGHBp2I=!Lm6LwKR-*1%xQOvSRyG$=LGeAwPUaHKD0%m8NHZ$^_j1y)Ch?!NT z(#$|8tCg|rpd0}L)+r-E3uWe%ICb)ofkL0E(;J3cu3+F$jm`_oi)yKGvkDlvER(7bTY~gZu|SJ7iVFK#_AKX{rkA{ z-u|5PzN80h90igO%pwvGlv*-_T@zDMS?08dVy|7$N zVbuViG1j{gH6W{^9YmK(eIM2~n9|0g&2aioN)LxJRZ=MibJodUNR3M+5#9^Em{QUe zq3GdeYMt21*?{1V!>Dq!!b*cPy_9)GVT;p`$l=m4^P-L8b_(7$^5?^U)CFM+1U=u) z>T^7|y4ei>c4r)6!L=|ZM0LtGN(YCqhZsL;h<8I-y(VHk4(&+;+a1xxbv@a_Bf50P zr)eJYr!PYx)OlS3En6>A!&ry++26_DdJ1oQI9u^@~Bl0`M}h6{kf`UxHokd$O|GzK{+GCt@9uw~-= z1<}jHYO_}2E)VXMSc>6?vvIs|y_g@)o~3lN2$oIhi4iP`7G!<|YkTc&sCn8W#RVA2 zb3OVA8a-{TZV|X6>#XVM$ML4u)$`>1O8pNb> z^98QX$0sw4j75t6!!Bes&|fOUV>5{MZah~j>U?oy6#IZ}ENvXkK4qaBUPNb|M6}8t zMv%gMm9=9X#TzQq*?l4;mZc{Z!XgDx%(T!TT!V}SY?3-zbdP0iL(Nh#E0(olrQ!u- zu}0#DSoX#hBOb)j8tm4j3b?osn&QQ_z@SXBAqN3gXN&$dS$lBBc{N!ZJYK8G2H_DC z#~L-KI0YG^$;on|L53xHgo1KpTbMVMOOZ^rbaxy}W5>m!ICeX6x>!wB7nJ@I$KGXZ zwb-4&>f-T50;|JTFHK|(5|^DUbLowN_J|_hL+>Zf5VsW_6Pf?w!u(%l;r)rM)5V2V zX3cjJ*}due@vf_S1!Yl8v(43IKS5kwj7VaM-u=hTFy|0GQOrtWX`$sOP;ZIYki^=@ zWdm{Hu))^@mCVn<_4WNfia%jAq3OkIahTrVTI_a4;w&hv)C}MwL1gABj3G`h$3tBv z4kWWe)>Mp4VgF&exH*;iSh09Gm9?x_`4iyk>3OyUVlFY<8dy}h+G@5qn96E(wIq`; zTC1Qr(DcelP)UNQi=uqFj8bT!q9SS@CU873jK;NDKfdsN(eiedfa^NMHEGof)A9t8Zu2kKm%E9%r?wF6dR&nU>HsG{MRk|Zv_@FqRS{)An& zrdjt~0BxWJ(YNDH<78lvEl?;1z8pYX^3AJnFh>H{l4~G(u?7Z5P!#9cHDvo3s9(`D z;Kaixaps^nr!o4l zUexiiW-;_(JB`^z7_=Ro`+!Z`-!BdLSb%8v(t78S?r=%EVKSDan~3K{qYpnwS(j4ciNXt%3e>A`B+I zmO+eGfUKf#STBax$811SXVhn{KvET30|Rk|%it<0Dlcu)i1lJ=p8*@lA_^ry(Y;wN zSWU=<3DTn4MNvX;!ji>=hOA|{ofk=Y31U}6mKkd1iB3(}1p9qrI_t82i#WDn?;=f$<)3gyD7_TRtyBAVc6DA4`68^(09oFAnljcd17P+lO|ADTQ4ZG z%$+cpR)cesDM&Y(-K^M}!Te+cmEGci%W30aU__0ZVOHjdO4AyF0{>sG(!i@(r2+rH zTcrWPt0cxWV7r34>k6M&9 z=Rrny9DFx)QSCd*>PUinT=sDi&!CT8+oKEHfAGd*=*4~ z+suh^a&nQwHi~uGP#Dh65{Jy>pGbO-%_7`}M@D~7OxKwPuzotg_RkVibe0i7%jEmV z7wVGf;w^V3)qs-)sycjG5OJ+0K$gi{g&Op=@|9{7UsQv_elJxcV0Th*Q58_$OIERK zoR#BDB5q*~3qGkU);NAqjnKe9R5@}{74oTGY9{uu_Fq&3!trHm1ZaVGUQ|UoD6X(2 zB^T9z&GfRJP#*;s)sVt^<12Jhm20Aoy};s)uIwhZNThVbf!`w0{`bYWo~%j2$rBZSA1ZofOT8`| z|Nh|kkw^b3sc@+a#HOAsHEe<6i|DdwmpIgu#f2h)iHV|KEGZ4|&{VomLyw+UPw_>f zWwZH)y;y^kOE<3|^u{e}_hyOIN3`7sTOd~SVzsGxd@_H@=3|}akD>X?jXtTjIrTnYqgwUw@mAjs3~$?n&Ul5Q!d$jEsacTaNa2pQweML z+I#ow%nDYeUafeOQ;;D8Q*Fs7mlh>lHREO+~}v?>-Qj@yzVYItGEljAVnt zx~0VtXhB~SbU&VCDHW_AlyDTJ^pgdp*Y{)P3ZK8dwEiH*+%j5&LNIuBw1y19fHVYu zm#I>|`mE@81FPk+gEYjwH?RR#O_CX%IFIg8pc=BK^+^fkPr$%$ zV2uL=%zVQ@onbtQ#+(V9Hw+x$3x*LhBzOWXhOp<^miYK``gnkoC!9lw1Cbl@5OjaN%6gUotiunB|u(d4FdMImDQ(i1#6?knT+aqzQ5!Z213kE~&=5y-&kVIUFvMDi`H0puS27C^ouhTQ@xvQIpZ%xfXy zAaYJa2sa)G13))gI3DUdvLFc&lPE~V_dYU80OuFMWPY#OL&V<7YC&FVd@D<5uZtUQ zWs3q8{{hRE_MGVu^{40PCn!V8LX^a$Wrii>MCescaRka_ipu0?2O2C;GJa6DgrEE> zr!4@>lx!#*+V(P8mWaACz(yuzA-?fcE5rl0v3iL+e=8%QQAUHDp!X80v|MbxWZ@38 z@cY|Xw_r8B_wB3+)b#srXB`6ntfoV`BIcMwcSMoKO-U$M<|!vV7{aBay;HWWz0>JG zUwcPbv{?^M2(zs=rlua$gro%3>N`2*(1$b&nCd-r?a{;8gV8~{wxwm$6>XyK2)6UQ z8|g@MjyK*-_IS>a5gGO`%J1ky2FcPZXQ8Dur4$xa8fmb&P-yM*J zZWI&8u~aeU4j8g3OwjMgvSDU%sz|>R7q>{5o7nWy#dm^BkuX;i!J`XG-x$SkJ=LBc zutzoY9Y121mWiK7v!$%1n0FUD)5el7!!NeKydT1&%v;=waEqIgM(Q4!;nh{8TgSjQ z6lZ?1O?cvbk-WCF-aRawHLEVd$Ewz+-2@nFrzAo}!Mlt07K>py*ogndMGzz3VyUIa zv1m*^196{h?66Sav)4#&#LkEp^~bZCwpP<=Ji8l8%9`$Om9-m5*ex?E$t9@3&85Re0R=Ap0Dot?fgskrjMKvB4B3 z0F@I96p4rWj(GSX)&Yxg`XNaV4?P4ksFMnRm}Mo>YEoP=xFXf1WdyAU>3mp%o_v^T z;>m|uZ3hr?kp)P8(RakV4&bN+@~;C|$xUvOHkgq?mF}9(Zi}&qh~|Os9miE1p3dfl z^&vA;{`=yNM_8L$`E-U!U9L9lk&zx}dGjMIH&q^SSuAaUL?no1<2y5$3H#1~M$|_< zF@xO}x>(T=lOcYc!5+8qc4YvzYl*{g;>!RI?{}hoF8iKWye!gZqNa7O`yYW6V4?a1 zyo;?ff&0hAFEd#tdrdT&#rk6T?w^IDzE7;5#p=i8BaQ%`NcdCamtNxYSvY+AM5o!T zQM|ddDgwP}g^A-JbYDC&o27x9JUg3p0^k?3S%*w%$E5%+90EqsI+2!_S2jwQzyz%( zd5o#Alj8b3R?eO%O?#BZ;4@dzW)9P8lkZxCIAG!&9{9wQqNiag#9SxMk#pSvNPEgZ z%wb-3W9jd6SOsgc=OvQN27x2N4ABpd?J}bmu)+=DPF}@_H+VVK!Q!uccJ1x^VW6OU z(Jlc%P80}uGG@YZAD`I)%$I&(xWV*1G;W@Q5Tpv76i2F+<5(^J3W7>o%v#o2jrbN_MiY3};DZd^Wq$1saxF(NWih*%O%(4g zW-mgt$a{?4fYi~)SbqpM4GZLCMi$7)JXS!H5nBt`GPsBOJkDly{3rL2OTV0Zh($pX ze1avE)_sCaV{DXIX0U(3)LNQdh+bkxNk;&EKmc6AAsDHi%xrBL~pW!ErW1NdrhBo zw~zzF4}3)x;*%Air&*%rO1ZTCSIVV*cqOY9i!(^#A$@>IVj$?pb1T_?414@jSn&$+ z@T;tzX!JCTz`K+I-YsPwG5Bf7pjO7br*V=ti6u|7Tabm1v~LbQj;k=#rDD)3HjZ`0 z$KZ9vu~n=QTQ0(iV1mmMnMJHCD-sVCL0-rb9~40v$P!gWtOb8NUo?6K-p?=R?{)!g zRD?vwdiBF*Di$f#tCyLn8c0C`+ENV}?bV;IE<-%w<7O%fkcg|CjTG!E`j7Ku+wsUn z>Ps`_MGEe^_srC7REW^Rm#RU-y!x|dDiLKMR!hxPBvSC^E;3W_YvVZSv&~clQXup{ z<~tpNu2<%Z>z;*LxO0KXf0p^WZ{!H%Cffq&m%PuD2x1%<2x4Ez?}2Rino0^FOuAf| zF7Q-H0eTVA87@~_nO;^Petec?@$v@sMC*%nd{hOjNr^VaL`9Z!}V-?M&34B2`O8mCyH@!77Ee?cmdZ< zmvgCm16#$|GEuw{Mw*`Dn~nHG1U}QWfct|fGUrmKrPzuUXO$hvWhmw#WqPDXGcn80#6}o38+UqEO-wx2gc}(ku7bMdv zdO`ZWKX`#Px|mIY7hz!~lgM~c5+aPDwWwdpMx%o(^dHU|mg26xxtylu7O< zY|-##C?4tR^Wu@$u$HsLTd%P(LrfYDj3@p@I|V^i5_I!4&`F?hXcXf6OL@Vo-%X$E zAZC^1a}-;cC~wlEi#)LY2gICRY*e&WNRTKMRlC?ua|Z3i4`n!`6{7F%^JWk(jNL53 zp24o&m`z6MTf12 zJQZ*<*vSh@tCMt1Jmzgys?NS*8+t50qZIYuW3dr*wFIyc8!NKkW4*`NYJsVE;Z7hl zT$io}dW(oBMhrPyHIWp?xwXh{g5 z(^o|}t274sPW4-bxdZiFaHo&;yI?uM-!yoX!cijewnvOP$ZFSu;Dr1xye%$y#Yc4z zd#PzS)x=W=p-{$)j}NkD{7kWkC}*|33(BYwge*cUXjRVIMwolaD59J){F2X?{B>LPFpO7c^RfucuHFxg47iHB$$}`q`2!aYeCog zaFRQhi&cjq31*31huIqSCK4mSzlmN0^=}mSzt0{bUGMK-;h+saf&i3DD}0Y(l;@5> zBg0Zd3bekqg;tC&_Yo*SmO{MZE_JXiX-5R_>H+D2C=>QaO!|OL#326t0c%XUuwt=Y zQ+p$j3Q_Mv){t+2OXEWXKj1mxLvSWM7vY(>VISgffoi&UDz2tT@pJn7GAJzj5SrYU zeWL0^)+E^hI(P1zYm#;IG^hpOI(@`i@sj;w@<%Ma-j+APr6nO|`qmJ=%txNW$1?2TC0mUOuG(8F$mL<9!WuxjX`-sq>9aaF-@5Qru zHl~d)&T`+w{>y8R28(x&+S?Cp7u)Z`_NyPWrjgPkF3B#CsQ1S#gCD6BQ$J>{`fo&g zkhsB?@JNzWn7+J`dSel~l(&7hgQQ1a*6yjWk>#RKX6cBW6u*4Tj>8a8@d;wx`iL8j zu_@8Vr1A%8)Kt+wI0gazm}vPa!r+dHoKIQ9)FIS0v>nU{GocN@weAoKqnP@T*!U@g z^poPJPoZNxDO!HU5_#op(dRRWVjIPz&saTPHCrtGjJ3K3?n=p9uHfi8Fq`z{Bsv&! z@zjmtug_THb{Bab2*N=pR?Y)@}M~UIUAIA+A29&y zG-FZZY2HxDu5BXeO7>W}NypHg+@$mzz2Gd~bMa%|nJW*li2cF|dBdQv|N0LIdE4?8 zpq7;0_61bn(36n5)%9ZMzuBD7m5&qRie6trE7~Vkf60b;H$cjllL3WsA7>5fOQLEU z&h?$Bp|_R*`UZN>djd@?7Xy#89r&9`BK#}n{Lv)Q?JL$kjLf_gF*WBawkT}LCM3ir zk^D95&dWE5kzcdcykL`9`Zdt>%to>MYj#`g7?Kf)6qi#>23N<3=HIYd+}I@ge8al% zGaJO>Z`i{;Z=>*@fCpu;Xm|p*09eV|Sn*`gB;108CFQgm)`3XHn|SsF>z1@^BcX=5 zYpS(tv{&Nq6Kr2xF=9bY2LnaE%G5e>^jr3Dlo=zUZzq7WV&r!SPZ%g({*DcT)b9Nr z($Oh#)Auq}@;$`DBY%jNCs{3T5H^S#PqNJa3Kw2G$*%d|!v!(+2X;?LM_}1;G58dy zw3G+0#dKadg~NJSO#cz$#J3{$Gz>3qiOoNqY9%%#TOspV}M9zm(e=ZX)d+2y> z#}5v~gkMHz|LB~vM(*Uf^5j$e`6QeRmIpN@C`lt8;n)QMcHpKLi7+n{l@A+ zy^Q}4YmAisA0S2FZ^LbC`f)fwq#lZQXrhC~6XCqIcPL^~ zpjjvBKkpFb;k+I)pa@dN$sOYFaNY_TKy1qRK|;ifK@mI|xlnQ__tXw?Uj*+-j^#+r z3&--F2;Nrunaw1w3>m<}pO$_I;GH-a!Uz7}ZA9;A-Wk4-dC?r-T!<3$u`ilWh_XI? zERi1`h>fwlJ_s4espaS9MEHW^DDz_YB=5<&yKS*`smkeVk!w`ka0fGqlu@OxOe|1& z3g5Fxl&IL_3;S*x%kQ!K-r@9}Zihu))a}VwPQkNvYVah88EtFu#?`6mHF!I6xI#Uo zTiQrj$k9n8!_YmjKfZ@bO<_{NzPS8Ejo_&!AkAgz@4?OH^-O{ybXd$w;6 zl(E@?psOX2v6?a>34+2~k+GaI!qvinBEwgaGoNx~Hx!+Uj9kiypgI(Lii}^Jp;Blm zGQOn@34!2$%J`HrWH%HSij2dQ;iWbp4pPS3lp$wFL7f_Fsqdy7jD+qCk{~ZSbx2c1 zovoA+0th74S>nZHerure7!W8)eObYpNY(&;3_J!Fn|UO2fi2%j#d<+y5U~F1=SZbk zRrOCOm29V8r&KLF^&+Jr?bK>Y)ihH9G#Zp-`YcLC+n{GY3r>A~UaI1})SHyD8fE%= zN;!l1;ZvkK*=-)BRGgJ+tG__WG`nyOrJU{yDdjX;MN5?mNbkp7yfc!g8s)>?VoWNp z71;j;ibAonSZ7)>GO&?G4sp30MUb|W?ag2IB|!NlL06(kf?8;C=HCFVc}dWG8&o0; zR`K9@uw))|MsOTOvRMn4cG{peEPQfNVK!CtdepP z0AgaTc7y0SE;-@;iLum0Pu=)+6bzR=Sei7bv z;G>>Os0fuOmb;`{P4v}|j3oV;P2#z_AfspYmL9IlYce)Qe64Xm7Wmq8O%^g0TZ5nRLf>9y3pSNa@h)h2p?2MZX8FhMN+_~ns zcl!DDEUQ$l#~YEWynPyP#tw*_G{{g73X#Uskt$2$3Bz)EGO-6~@q+e7{un&S=0YY% z>9N3DB-!n$0B4N!4tW--8Z1Ei%GFrU#wdZQX+OPJ;RjN0i~4*RCcB_M?_-UVSW}{? ztdDVS`C6`TL<3$gu?o0?1|-`mK92V?DqJqQHIN+k!3LZnJ-0QGqV*RII6j{iVGa2h zXZF9ZFNKZmGNBy*90dfNLL0~o57=@Hk+2`lVU?UuM20ufpp$Fu1bL(&2V3` z#=F3dc`jzQS|w^`@CK|(WMy!zP8DtnL5Q@LKYe-^uz$5mQU3!esf$a#iD?=9u4L1M z(nV>@>FT9pn38#8)0r^3mb^^WWd{^!T z*5)&*UfL&Lf1Cj5>PY~s#Jid=PB-R#YOWx(1}O$MlR~TL%QuPsO}H=cF2lW@YzF$0 z3Jh2r>+R0w)<0~%3*RCF9)Bqk)rp$-O_BFd)3U8Wk$Vj+$hgcGKy-HmOo%#+oOHrT z`S3xAkvFZ zudc_}Tl|+ju4u`-)scV3$d1JVB6rBqqiK8GdYc?QMtt6iXQnNiL#GE{CFuB@SWWOa zDKm!R49dUJ>ei3X5w+X!YeJ9B1*KRa?rY7PUAg61Vs~raw*HZWcFVJ*^%@r*lv7Sn z(?#WG)A<0knx;R>gi%zQjsU#TphanGuGioGx82|#tHJzp7c`iA&TOy>1?q~@p=~%q z;c% zomPoCti7A3MVYPQOnl846Ys)iBX+mtJuU(at^7uI-=Q7f>J&O-vkLv!@|^lR%y4S+ z>Lp5avHn06kq><*GVmj|UdtPF%|pPA`F9%4H&s7z5aBc6mbe!de_=o-aX`(hsLiB) z+5%DB0sZ7bk(|Yw@Dm3`uPlBunC7!t;0*i3u`HexkCTf}`avq($2JlTPFcABE^FDK<-8_UgYjOxhKFD|S!3v)X1Y?x%%cLa;h5+8TungvRK zuFB?X<`?Vu=JH0w%Jl51EcjiOjVtcDI zmhXU2viWSZIyYOkx+$C2aRxw6){n9YAI(7RdJhh63|aYE;G_W~kL5EIjd z$FdCZK^H#ATL39bIwtiv(V{E&rL1QrM}d<;(qqN8LzI0X#&zXsY`u8AE6;ZNCVV@F z{LnIUKT`X`i1LwW)Qx{*_7^Yy>Vf_iiEF#tL$IVb-1Woz#XivV_*{SM7W=?u#FP_=& zday7scZg&3P}MMLY@l~Cv`ev!OWj*HqhKJ1$ra|b!sMDW$qR)TSW;q_vY6*!zP3u(uWY<#FN}U zLDJb}HZr>}pXa-n-&PB1roZmHzC0i1>?!^DOs6|)@m#;^?lSuGHt}@%k`Hc3Ja8#b z7j~UHTWu}s4gglK7J~-yRG|*!5n@+=9y`#o@sQms*v13FK)1|77504;>lsrhKtYvX zHpnZUuH4HV19-|+ba2A%V8hjPa9{v$7&MKm>fje_7~SdhKkneQfmbzye7aubzv!Ut zRjkgk|FZ2=kvy2Er2q5&?vNdb+XnM72x5G5Fkdo|v>Ti<)5T1-GVmtSdm#5oa|6nW zT|o=-uC3lPE-z^U>ahz^Z|!vw^~$f~*90zOR18A6W%hOzF&EGce>D{0Fgk3?PZ71y z7tteD{gC0SCi$mpTOcjo$-9 zARa3HwQW2tR~;!4q}b`C+F{B;?i^INJV3cm5D5?muXm_)ki=4H60B}F@J?586hFS< z>QKyHl&d<0Kiyb;*5}@MRUPd3uRCZn}Gyf z##Ns)@$Jn)LQE)#{=i`%`ddsM^WZR^<8TBLRMbh;g-N&YJ9yD1G5r?q<1oamx`kh7 zMuM@XE__h}WmOd1%v(^Xy?N;E!!5FJ<*h(!i*Dm}#N)T}lt$LsmF9^chd|KTEwQlZ zyt)lOp;%mgzNgXDg z+y3GQ@Odrl`hnAU*)gH++?=7OpJg?bl-{FyR>jN1A) zlp)RDmQDNLltCtJTiW}`hA^eQF?T?Oe^ESr2T!Q>Zc`9|bcGv|!0x`2*B7Vn;Hzyw z>zXj~CY#rUZTZ0l9Cq=#TkAMz6i>eGV*QNnp|o`~a5K8U*V4mi>n(lDhwBHSdFhpZ z5g);QdZro%9!GCdx#1c!mJbH zNAtGc+_|I+LYzhZmeD+|?uj{+f!GJ)U=+tuDKoGSq{nR(zfi3m|5&TYgs^K(y9+Az zb7JXTT)WnGf65*R8_upb-JgU~B6)<>JdRydOWZLA1OZX4@5F^xgbg zXU}ZSJha^8p6}ny*E;6|2Z_!HR!QVe!uhaZw%)^Uvh8%-veUW9PM4Cy`#LQ`P3NnF97p<@U~A;X`7K=@{3gV7r*ghcO36TNR43sN^;RCWRDh#SY%Ae@)H1IG*Xuz@b1}%!O-rFRUMfg}9ezk~3CbGbaC9iTLt^T0#AY( zO^C?J{92^~7gzL}%$p;cblPOztj*J~#k#YVZ0svG1&fE}19{zp5J(dXUm8Mnc-p<&!VgdbJfq{-QjwX7E?1Xnkapcx6U{#Pd){}CCJEPyrg56n#4L{;uNrp zfU0%k`3HHs9%YibTm?ArNm4iO=wMPsQm{)scp2o`;%s+)G2meytFX(07C9Skf%40O zZaE*cCc9ksxhAQUsImQFp1{5l?>x+tt3?JJLP=9|O&mJ=Fof32HMS)P&*WUfE<3=o zAkc57!@73-a_bW`z`l=gm3@90qJP>1oc9QC-*3k%AhY{C{H8zPj*u0Ts^I-1{HDL) zPQD&Vb{qf*ZR!l3(r*hWH*9IaC+1bkvc$kWMA&WLmwjT61OXg#0MOzCGhoWyC!U$X zle{vfn=DWjif9(#_0!LbgN3AIhqcN8$>6Y7+zl6xj}spc@FxGmN^|~;N}?dZoBj{` znJY%;@}bdxEWkpg>%|MPMxSy~XC_aCn3FjZV#*qkI1>R=3+zI^7tZF_)UUYmNXktt{Bbt;?FS+| zj}H``^Y|dq{85+$d*|^U>_gGwQQqA{SN&^5$R2qVt$uaoRx3>+(Q*!NnL)Mw0leHi z{Q&>xmL1TRt%$JxL(2tndeBHUlGV~g(Oljj8FCO^&P?=~K5PXQB#|4=;tis5E|0&J zoTI}Svy?zsn|QWf0r9@6i^M1OB%GeAfj^HSCH^ej%%oS+D;lF#NcKatT+!Jwl6uL| zq#vO7a;Oa0^Hp_X!An z5Tca@CuDV+9ht9`Y_uc>=JVDmms^2jb9aj`=JGgx5?6^~sV)n6Vvz|5uYCACUd$GX zP4jr7O@$FMWKrP)lWZQF$Lpo9f&(t-Ohi_n2^+e|6ig=0hfvgMK99JHD&GU1aiPM+_AF(lwmb64oW0XuVVe*>! zuYK;m98a9d@O_(oetWI`IQy~oKKnc_p5;+}1^xFHjnjPd$kyyR{t=6vXPNk~>o6|D zt!8rxu0kO&ZfxOI3e2GLa_!sk2X`VqZ+!5I&SZAC^CDl~7n9M&_8pY`?XKT%*!b=p zG)cWPFf=aeWJmPdCC#4aFFmS2Z~M-k-1dJb(0)?_CAX@;9yv5kMYzYm?}Z|mUvH65 z@TzHD8Z^_i&I#C@DPr+XO7b@1RaiEwQ-!uXMi5j@9Y^9G+k?B9vW`9m?X zfkug6HPA>gy#c$xA0igp&p=KdFD!6Mc-^@H+b)JKUQ^iDfEvRG&l@N+#%~?f2a;fC z@pxJA6SUd;rhEbiYhLLiWBnjMfXN5n$juQPd~LI5%2UyB324*59p&t;qRd3^F!maU zo|xth2w6|KpTHYH_?=|U*@qPb*BsJ@Ww+1z-?N&g@swfH_og48=n~NNPOC{tc$Holg!P~*H!ut!#&oZ7<;I*f5gyE(?hO(wwnoQF@zJ|Mq7Q;q@ zZ5K@qYiq@9s5u)S#e8^L+_{UAa<=miDRC;?@YDUNur2$HtUH!vkr~v#nWOc>U7Z zi~IfZw-3n3Gpm@R}j{N{$OmztwI|hp-^MH*vhLUqztH{`m7b14Hip9I>4jTM-v28c4 zm^IVR4Q})X{W#fUKyvwqe|*GGv0V$WM;XD;L%&(Cza*mfPav*(;pQ(_t2OXGmR*mhfJQIlh%ES`?8ZNN&zWw{>Vq3i2OG~ zKV#!aNY@r>0 zg5TMOq5w|LR_x0H9!AA8x7od)wC3(ctvgSL>$B^v^|7o3I3}75C<8Jl&kJyK?m7TknO2ax| z$40obuC7b7pULiM-%Hym_P)vuZo7u>NBUeS{C}wQxP@y!B?UK=j!PR&3llr`)56I2 zfEagLaDc9{;-~;|^i|5Hi~v#hE^V4xfp8DPQ&|U2hf@hhSU6Jrv6+58J1bDvRzkEF zdZXZvf#ak(S{&S1xOlkRd^`?*0^CWl;{Y9AU=Px@e+1T#FmiO@Smih#$6WXca1J;X zp5$YAnhh>l6dt66;4UOJ68M&QzUsp-#XiQ+VM_YSK^hx81;}UgrTFVXYyvLv zp$mR2f{Uj(+?zML*VMSzI+Uy)vQSa*8m$(+Pt$O3Mfn3^&$WL12Jrm;@UH`P|R(i__(4_T?<0^1Mr8#UkjfTtq2v>E%Y;QBRB-S&*!(mXWRBFd^Dui z4WI3t;$91X1&)C{GEA2Rt*%;=UQu2m4M-WnIPEEL6X6u2u+l()#n#{A5^!3!L(@8- z%_US?58{~3q+(bkS!Ffu>Y7YMxZ=}y*4C6&R+VpY)s$CymU&!0bgxC$D(;UEHyN&= zWW6IP+$gD%J)=Y^R=|~s?8B50#PyIXRvo6?G4owDuG(sMmB+QgZSF@K#fyjODVnc~<*l?S__S_J za2Lh7R$3l1J;EsB+z2u2ca$B$LyL!->P58z9dk7v@O|Y7riu}f#)*fDi$^eNva-uj z?S8PzE}dfZ$U2w@HmZtW^|R=G zjUJiS54}prOJVT%49q;<#MMeJcAlWIHhc}fAA3JtCuj%tPVHFoA4C*4J44roAxc&K9kU#(b4rf#n~cTr|EJv^8$Q6p+8R(S5MMi z_@T-4H)wRwj7(jN5(TGdnP`54!o5qttDwd7jMDG;ZG2v~;Fu zI|cE%nIh{nHASAAscWl|T{&DB9Kw4~Qzpx!&rphAz6mm3;vjs{8OrpBZ$}ufjS${& z1||Z259I6zo~1;uO8O$X_v zY%%2=?q+5Vjn|URcN*h$G%i}^AT7mX!FeW*2Xk*!@&qt1)D%0wJiHW707pm`S%0E0 z68|vAuw~Z~#y0T)MY-~-n6~GN!FOp@$US+6#afmpivLV8ab;jOZ8fzUE8LDvuBvjErv_Y? zCmJC4?uL9MxYko%qr`0p14`$shoZFD=T zYpQD3An~gR=R6BG@+uCgR@Ax!okp6zd=P?Vqf_@vJ6!Tmjoaa>s&YMq^(7S9HY2fe zPpL!817m8?)|9!bT)5V)augRYK^X5R+z+4Ya9u?u7L3r|Sc&=CQCxv=o`jX0C-G8_ ziLiRexD5NaGUA=J6?D zeF>jU$TWw$!o9(b^DFl_&>Ri(MDs<82~m12^E$dN(igUr!1+c*M`~rYv21bNuEM$( z7&Z6S0@2%xiR_A)@IKw2Sa!EAJNSC!!0BVyS&F>>^T6&Mz`#0G|JN`!e z&ANa-eB?0tUNNVS^5Zt$tII{yBKW-cDuK`Kv*upW+z0C!k}py}fL>O<(V5-wxuZP@ zpY z<%FjAWgK&LD87MXwnd7$&}Mxsgl=N8FfUro`n+fbPw*$m)-b`8!Ah`^VaKs6_^wm* z#b(q@P~P4*|2q)R9y8n+)-nGhdY)W^KhTX8FyeE6QQU%K&Q$SlEqutrhb`QySUhlz za#K_?M^vyc+Yl5r0uM(&gEBoCCc3Us{CK4s1{v3*;%IOxv-tWNo~aoW)2`EWr;?t9 z)Lh`VEgXZ<$JSNpj{(cn#c!@t`pUkgy1cY&gbEu8#RA7%mx}k`n3GYw-y%O?ktf(h z|0Uc2yStyl<5VPvuWT7R9=zD|CFleRFQb)Q<@p_74+F~(F*a+r!*;S#tI{TKKw9o ze1M|FJp&Y4QU>N3xE^(o0$=fAq|2k)%!wxMggnE<`_S0jVU_+#KZ}1Ipr`5N@5QPc zG&_~=_SjF39`F@MT|g*S7Z3xY^9Id|blz`Rx<&BW7Co3RMtnw-;svcRe$;-@0!Sl=%k1bZFpoIz5P=S}Q$R;^Qoxh79l;K_!~cKe z5DrZHfyG{_Jb3~O?qtjxUs|U9yfO4s7Vut-#uZ}ofAhnR%&6stdZl! zj&iKlLVXGMj~ne+qlNq6k)!S(g)(ck2w&184-9{3;++#FI=-ixzC^Tf&wZmGo-oSs z1EKmbyXlGd-95(fr%8deJDjF!ipGw5l&Km!>h6j6jT`Iug<^aajU4yr*oP*9(g%i* zymR86jxWpsfsImrqi7$-!w>rBSBfOR9CLVJOzQ7`)lC>R{^3y%O&osjs5?iFn(&b0 z1V#DKy?J+y8~K>yOY_ITc>2){35t(9>DStXQ4c*hZtO#&hAXVEOe3f+{bUXgs+YA~ z3!dvFhe7VA#5CtA?Q88t^G>xif=`UI3s=&o5U|-mpCT2h(E<2VygCumsQfqGeQiv=}`=-AAzD#_tYM^WvOB$uI0H0<_`C00YAQ&BQ6LQ%3V zqIoFic(hdEFwnqjr@J)Uo~5GE98<6BRhNY_@qFC zA#^1($-#9M0a8CmN+OTLgMWSEIH$nEOVYZb!^Qi|2WzDy`%wqffH6tJ2=9l6INeb7 zfwrx+8iz6=9>LWt*=PP-tFtKGXSR;4l~u~=PNchyGA?s2fpLnxsm2ygR28k~v_Q_y z=Sk%8VW5D4JR9JrFQBGy0 zj51EyIsEjY<#5hfJBOdfDRW9>VjW(kYC##Z8Dj>1cn+}g*Tp4@t&kM8TO>1*Z#_GV z@JwUU_#`qWWm>4n1b$jftJ+%`F*`e(kP%95gO@9Q%vnsbMo?zBn}yPZxK^R64wfl?z1|nsL`jv#!jTy4Aw$nJHlY@P?FGxY z;PxWulES816m8mPc8p(jscqwQyy{m<-EEiLHfq*uE-;=(y~i(>_0E5h^~dU|VR0o~ zAnUs%bcoIe@s`BpsZn!@A9GGZV>7wc0NQCj+$te$g_acZa)xV4QgntVXH_@sFVU-# z2#+8Geb$eWCy1rI#*d&RS0<+#S(*A$b5E-jad^wd-&=JL4qm^i)S<72gf^GGRcqs| z*EXiCsuf6D#X_4r!pL6fg#@5nAEW^)@Ig*M>wQoFpi&>?0#xpU0s&QeAy7ovr9%VV z9+$^ufXLESQ8qye_Jkq@2}K*DJI0FMOe$o$_KX)G7 zVs=p}*jLBE*GU!4@Hnm#QanL;PrEZ(+|@3m5>SM!UEXc}q$mQgQ#tc^fAzi~d^AQ}MVI5R=v zSiE|iDMC*QNEJoFNN2K~6FgB&*_@4oudhSHXD!4sjyDSN(EsAG+r$ZVjs3oaqZUTC z^kU@V%}6zN`4SFuLVF`O-^Rd%rx>%#0Ik}%yXzk6fRU+<=GO;g8l-y0WaU6G9Cji3 zFjxsx)l^hzi7|GP&_|m4y2sZ*;W|jl2E%Cj$c=w>FA^?QdC|tzy_yP|v++QmGJ!!^ ze8bqRN~S^0QZ)@cXCYpSm|?0Rg&B5Uo)1#1DvMWQT%s1Lxxp9SUU3~hNYxl%NPd@z_;cyj~5hGW!pBln$Ej4roi) znP&&wKo6UJ1~#qxoJb60YBi%(W@F8f7>&1-O#H-T>JOXdz^3%v#%%*fP}D(@C_;nW zom>~Tfv+a$I=^gWq8>8dXJOQXF1pFQb?bZlN6)7H4mFWk~+#6e=?d>-v zQfKq)8#7W)y->;!Y7Y~B1bkuk8yp`#dugeodl>U3kY_J7Ck5v(EbASBau6~PezMh(!RX5jfeuznq9^E( zt4>C^u{8Q`9DB>n6unRbk81&jaQoG8(ERMyw&;(3+n~VaNg^y#q?=O*H#ZmFHlntw zA)0GTZ3ZIcjJ}T|psk@35Ac8-_MV{a*}?qA$$TLvN%q zv)Anj843+6Rx@Bd`1-@CZjT$vz1tJf4TJC2(;(jyU6?A5-faSJAAv~nV5ZGCHpH5X z?}#uD+@96=pa?}l&8T@^Wh@djqn3Y~`Q)&Yo~R&#tKwPa_H=8)6?O`*NPVi{Oh}P# zo}g|M)I^p!GLg*q(W{uW0La0~cdSF-nhqa<-`T_Cz*v`Ra_jJyuS1iy)$VuYHeFVm z%z3I!vv5S8aEuIb+b};cqhFimpYS8W4 zzh#5~)b0@}qNhRK!?0VXh`veAFbWNDqZz}g@6^~3MMg$Idvj)^$jG-XbjBQz1dNH9 z`gU`rCm}1Oz1GSi&co`JM|hCZ)7Z`1y6TQc=m!Wz+&#jAzzk57KvRGRG@&(-1*0@y zmO|n5?;&&zD3d|hxr2Jep)W}qmU@=KtJu*qj@8I4&gXzs!;*XU_A}vD;kTo?X^kBPe~P7_j^PJwHJK>oymXB@m%(xge*3PW) ziRX$uS?r~t#2~j-gPvrs!x*ktDZzwwkVqN^$8d5Y4-+0dQmhRng7u6CGm|LH0Sg0F zMq<2?F!qVc{MJ#KwefVKqX-nL|>zw%QgojF+4g1fUtG>JOPy8uoHm z`o^k>`BB3LDKkMTV@^s^6=xG>jp50lNfBiA?1-7rD78TqP#bGKGiV@BQ)3N7!3=}n zR+;*PwgfOAZT0 zLIDH-XvY!&P)Ha_43NMuupGC@6Iq^Mvr|f!_`*Uj7c@;3n^3|c4st!oVdkgACwjYz zN)>|^dHY((h6(u8Jdl#?H$cryXXCaFuUHD>?s1rRG_H+3`;o@Yv+~U9)wG`MCA5_? zjhvaK7-O}N287kNm;-%MeJesoyMqc!WMdb3#r#F;Ic z2WKwj>Co-z=n;m_v2b91A~#mBl5*B&FoSHVr&vp+L0*I10k^VH(#K%kTPYopg0~ zm=!J2`ETRsw+}%V5A<$9Sb^s$e8S9bROiw{AG%&j@I|^FQhFNm*-gV#Zv}bKX%3h# zv`oIseiAk6K8qmOYws#H5=WT1sBGuJ14;( z;khdo@7LYc2nO}tcQvH3<}>)6V{W)BS5%nh^>-(ReO$KPVZ_-M>c;VRkE91|FGBVr z+XLYBBINoKY%fBAFTwUAtoJ3HXA~Q@PodPC?eW>$tIYEIBF!PAeq+x-Esx7MER+T7m7I4Ib)^mq? zpcfksw)+Fv+6ecA8Rblea#e*vj3}sRYRP^&_N&1K_a%wrF>p%G@>_{DLRYI{O1@4~=KR(fYHW$KH} z^6>{~hq-dXUBC@~XcSEMaSsh77=PO*whqRA#5$XvZ~is0IoxBgPv!4<6k!g2*lVB) zHc&ktv;b8RrZVr&f(_K_H1q7kGa?tU+8FF%TM^p7Fgn2WH1i&5M)~IUN7}`tx!EX& z3)w@>9Wn4tUh9Z~?!DQp@#t;(B2wj4&8pm_N1M_OlGaj!`Oc&DsoXsFXx-ZIyP|I+ zV0hqh3mj-{<>>F4ag)-ipBer^yg6x78vGFdnba7+73$aZSnHawLjx_Uq3eQ5-9jGq zSX27iod4KZI{4h<^DrPA*2c@ym&j?Ze>|Q#ntL7}K#!R9o`4I+?ES<`Ksfot=vY+d zWP_26{nM~0EAXSkiQ^1)n)@D)-}vn0X3AIN3T5{?Yc(er%?V%4?k5|zd`Be0?n(rY za+V`8EVPEQltQuL=*r%OLmVSYFz8Z~`8C4oLSU0FNvz9%b*Qq8KYUYK|H)OrE1-k_Qc%dW4N zfl6?-QDu={X69!1LV-`STPf5e{I-}H?PM+9d~HL0vvXFInLTx)?a{azhN(NP1eF|^ z)&jrI>8(@Pnc?)#k)OK)s z2ik0g&v?2993Nn)TC1=mSUp}jgBv?AqjjWeOj#hvcPJ+M+KiofD=MBi^Cp}Dygzd? zoiuyQ>PaUz=FSonS-u>ztmKIc45XkUbLCUl1MB;z-p23CIfeKg^z^1Cm5i#EcaXK^6afB8!-Qu^=Msr28?2j||8T93?Kj^FHg!(F9nD9mr>^)-K5ltOJb z#w@s-*|Sd!KK7_r(~Z_szf zbCx%zBC}+96I!+LtL4QcvKO1Vg^!Ay#b)q|hr~0BH%?ixPs_?)i5<9(abkscyNxg+ zj3r34w;e!Ry^vw=&ASV|$hL>S!k1w0%_n>b_TGHfmtgP4v#ka@V{@7L97w2Zl;UCa zgp7SSu;miWZ$>dtjpjy$mqajJgi*{y6`7%HJ{Pl1^Te7Su0j(ji_NsP?8@G-_S%4s zSc5?<_{`Aa7Lb5zD>>hNoi;unRN;H0Mo_r;~-Dx0Lf|TFjDP&h7Hg-#TCTU^8)~=>oj#<0GF6&=M zgMY41qFc?n8-_K6;MCaCUB|r$U^%K;Ld|v<+r_-Yjgx&Vt8I@ORF!kwiocv}Wae&4Lbo?=Dy9|Yh*!UHtq?HqL(Rl3 zu{aU9XLAOAS8u)^zdx$?RwbPBkow)Me*aLv9k;Zm`^>Rh4x^eLuVvx)-Pf`MRb@f$ z=U$IB?|r>F5*NPS0%$v4zYp&%-}oNCv0HD#?}O@h=hm;YEX9C5l9Ymg91mnVTjCCV z7gz(32Fu%_ybwI2Sj9^|#EMqpQ-fJh4Z&yc2RWhez(MU`=M-eF5A9rp2+AV%VOKfE zBx%WJ%3ERd%Er{U@+tlV4omb3f^7o3t6I^4$^upA`)zUY@X{ks|5}7bu{?=l*94P< z^PYodV(CpTs|Is&X(qIjW2JXvr2A}ttA<^%RW!mZ*dA>*fBQkVU$R;Bc9*n6f;Ec3 zM4XQ&y1?q}?85+{2`6^URM8dhIE_h1i|J#$8!cCAdfsV(Wz+qgOx@Q99K@)s(syE@ zV14q=-{&>=Wm&CGXb#I#9q{7KUSmoi<=ktCT**EZ_NXt&>oHnCS%{gC*nf?ThBr zUC}hm9QSUIW-XG~W9DFIi_>yE!ZFkgSeGwW^+9cSs2kN_S@W@5+^z)r)Vyw2o69w& z4Z|tMlnK!G20%R70c#@h09@9WRy*Lz>D-FLlr@$iIdfs)jBf`D*y_qpn`e_8&+Z_=<9|!KY~`7qz-T(XS#=l#Cig- z1sd>|@oFf>kN%wbz~L!$hk4>~CwkFr@=0CP*7K85G}>JENxPt})~b2O{Na;qT4dh; z={UOAtoU>q3Jm|OPS8%yhI(LTf7SpcR(@75(oTYXh~u|zuy=T@4u3Y49yf2Rh>tt_ z6t@X=Lhb7*MznQc2CYY$^DE-f__~TAuC2WJEHFckT-(y702&DI^srX_NN4Mg)gZXU z)R7D~_0SRJ4A3mTdih9`x-b&3fjNw5K4BFw(YZ_*TT^_BeCh}r_KBY-H36R6s5jn- z><(>%fXA{1Cwa-(H;pAZ=xH;f@M#eCnfbuy1zN>FrKbMHzYR_i`kundj-iowqx?7; z`OAF&=pZq>+^qKvn3uQtRpxEqjD)(d?VIWNz5ZL)Gv4|3fDS!_Lg9-HU~|l&-)9yb zTZydx#~I_!Gxj zjQYvbNMVLzLOITY&l=!nj4;7OK|*5f+Djx|eD#WT&kiVPTa$Xb$?B z!z-Tpc@P@-^yl12RfruG98}>&n(|8`kP3cj#K9B<`G;VN@?X-hl>=h-QpnhuS@SUK z{W_Fq4UP}Y=hRvMs&a`u? z0B{Ua4TIlsz7B*UU~^iCdP6-bOo?*}?3`frhMW{{3;9-y9>7_u$y_TT#*47ag00XF zuB+5afH&PHWs8-NKE{UEE4Z=Nfw7NUnN>dQN+d9m;Re5fl;hs4EaR}9hv*(FuhN@m zlv@dheF-^xRB8B4?PjyBgdAVO8LJ4yn~hOrCE!HGPAIa9;OvwWvUs4Zlp8!L8 zj{6c0TM3oEgz`Nl8A0U6ijX%1Qv*CE2Gh}MC@aJtdd5vn!>|{?C}P?1JFoJQ&A(iKXhT>CdL$IJ1d)czub5{auxN~ATZDL6I%`_v}f{NtnFuK9N;Xp1ts0NkzCn9S5 za~Ts(b5o8ga(ThIQO7ASWFXE0{{po14EV1Zdv7>35O|&rrzuHgJ~{&ZOM#|f!>X}l zfliN;nDLy9s7dvkty+!cI|D8nPe_L2#yI%!Lo&MLtV#@GUu+RFc_&v$MXTkAn$)pD zArezXUJz@h=a)_jiu0jvuStD-zs;35FplG4d4OOc;ygMCBfHJ61+U^d$_;{NECBrq zQnbKz4yB_SdFyI3&hTTJDXcd!wj*+U-cI3R3C<9H!Yp#u+A&=g+X^+0i1KX5$pzj07W3b)uwmG%Y83 zQhr&Rrd+#!3$hv;D__H7IS%ID!1Gn1KaHRaV%Lpk{QV}98XE7tg~uyooY{uwOPc<) zTogkGsJLWY9Xdj;t((wTCpjpNo}hzrZya@ilS>N?;S(2GKOXB~qU;q7J@Gw<(f1{F>jhf91_rPEDeui!%$X%<%eDTkcDuMi*n``Y;~oUHJ>@(~T-TR7ALU zr&o>n?ex4P1B_%lNGyOu!XlAS`IQyn5n#m1o%Jc%b^KdYlqaj|({+(uz|RP~LGLOl zN$@dDWEH6K#*aGUH@0w#@NVM)%EqNo-&p?g1EkyMfmpud4Xp{;1R@kE1e$NLRI? zQ%Rc9xK|hqv3*i+Ld`B5WKUm$NKz*2LQx87HNIO zh+4h>;af!6Y78}~;lMa~Y)3BAhBu`Rf$AH(vVF34Gx9W@y|?-kM>S?32qlb!@e`B8 zc=o#Bvk;cmGxo~6no)~z{$hsdR#8r<<;7;;ys~{I?=+(X1SWN%g zl4kU=M1Qhf9jX>AXDq?5PSfpJXU*8EHVH2#_YTM?hmlRe1JeBMR&))dx#l(gAlGq* zaFxPblswpudQx%)xQ(5our@TqeXWB7vmkgdyzr`8Sz)qOdy1B?Ttn?#R+?I#A+~A8fZGlP z=!fL|wxs->Uf*VQR<&=_KMgMU3#<4NRnQ^XA&rvQ-pa0xet8X=Y6|n! z{;&hyD5t(y?(0OO;9-y*I%BSiKP+WUc4B85Ln~xuXDsLyazqzuoxq0@;GCpDC9&A2 z#Of=et6i+c?vm@fP$TLl4|ky_QDjIuwE#3ToyOw?gtvUBoN7>%tZ7hkEb7AfG3(G) zHP8gOnm|-Dz@WO+NRBlqBdglG0KX$XlLTp&=8L7Mpdz(lg0Ay1cb|u;AcYB!+y$6h z&%;y@V{Qx*5m`cx><)$SB{?F4I;Pm$l?yxDh1=EEli03m8~gFVcJ)VhsvnlaN%f6l zE9q1Qb*Lh>dO1EH3?%R#d)V4QL)x6(EDu;H5 zOngZ$=zdis7X4IB;wdIE(a5)w8uy@XJ`yEJtX(pv2W3>#`JkfnK`)(0t)79-1t4)+ zFZ%nkBrfbtqvK*#eUW}D+uO=sZ+b4$MP;@u=}V2X&?rZHA{5(D8^18}&)Fv|ta2f6 z+$guJV5Y}W7D{l;?!T4TdQk}u47^l{EN>%47Zt(b(Ay6RdqEKy*q?5u*>ZS)h=QFmw?A#7rn1`r+D327fPuIiqp3VHkh)+StUCznB~6Zi zml2P-gD5WWFzaoH_sR8xs9D_E?+^d8ui%aK^)p`n=fKhZGyg6+?9iXl5JM*9or9@% zJl;bxUU>7Df8IOs``hn0&O?(;Zlt=&z<|A!!PU+@FI!6tMLSkwV{W8|mu)P}E3r}AW#EhR=!}{%1d1h|j}M_veyDJVc~Rk|^F%W0ej7FPW=i!# zg?r443dfiyhEazD1+|vQo2gtAi~mz{-%ui_iWA}B4^bT_qJlr5lkq3iY7v|+kh#OD zPLMY|L~a;PH}v4RlI}2)HUE+jN~)yt4QPf6Epfss;M$ZVwcb$3S6TNFG~jB<*gC?W zj3X#%lYx)C{KD7>0V9Ty_`Dt-)?N2(ch^6z55@)7{u-)8wOfQ++bF7!$COd8@ltQI4e>Ba>sydDFVXeoQ3_D_Srjh*{5|pCFAh<{+*cw!bk?YG2 zL7sv*PX*XP!NRBR922gJx{LxJGCO({q$&!A;lEzx)n*-z!+8{_GGPo_a(Gw*fjl~wm+F&hDO}LK&A0&MJR`CNyzot=s0^=`b>Udg6 zt>m8Zbjqvv1z+Igk%uQxJS{CbJptaQ$k}D^Lt2MIhBpwsWb{N3)S@~I--_E`?lV)k zypUpwFa)I+;Nk$e^kFRA|3f_uokSgoji2t1RU1Fk9;1610_M{Nrzx&izt7`8JUbRQ}ypF+_h>G(SDY~c9NICBZ8 zBxouvA^J%knMSd4+ceOx-plY0;1=Mnbd^)j!p;JQ3fznv7kfofP~sM zlR82)ot;TBp7($T;+>gEaMt5%NQ8Iuw>bz8=2YFnf&l9`i>|ffgQta*xth1)W~6NJzJ ztWp`BLr(|xVrNwTKDjc7+SXyepLLs#TJXI1IW7{;w_kH8J6`$Z*fzJ^hAJBy0V1aL zS#sXf)SY_CgHO{i*Bs4*@D7>w49&M#I97i13>F*M`2nohM$cl!9+z3q(hs6)i@bj} zN~*;i6&h%S@gzd-gK8j0$?s-UKl)U*pF^qirW`wm`e0CApF?diCqK=h2H~?1=YVrj z9O~$5kE%Zx3vs8MHkX=2S@VUjx74)36OO>1Idc14N`}?`?Of^%#0K-IW2*8RbEFsi zV}zhLBNTP1FQd3pe(@VlKEzhZQqH4tnqP8nE`{UU3^{2&dGIJWKv97~eANwl_v(Dr zyAR){3wj6P6(zTk2%*6xot~q^RBM09c5ul6>@IL6^u?pBL{84bRyRNzd6Xs&uTfyv z0erFp^-INSWUquiT*sJ!vet1k&e)7RhLjiz095FM1fWd}70JVSIK(y=U+*QTkE zb{*w}1(>7T_`IVLcnnb?o8_Jb81JdF&O)UZ+-N=KEL6Jx8w)A1Ng4+Y2o8wUvGmyd zLWq-fhJg$f%?Q68>iSx`B)0m4@(s8)WB70edIz7JTP{5g)pY3nO%J}qSmNq@ghj*uVu+1 zcqGQjh{d!SO2MwhG#F6b=fPfSa?JCpgDaj_J^T21a6y_p{XFI4pla?Cns&v5Du;2o zgQ}9=FJKwa-LhgSt;7Lb$&43Kd&J$`0r;1liG+c3>UWoHE}#hJqJ8~DlsvMGW_jNq zTTXG__chBwp^fw7a%}L=$k>lY8^3j)QuB*aQ1>J=-#d=>R=M~Z|-uE91sfYLd z+7;FBPpzPIZ~C4Ukc5lm4=X5v-jME<(A;j3eOA(&wbg{Ht1en$@({19@xj(XnXn3n zWoh!}RcavTuTlfKZ57ptz}jN9j`dDF;~^NnTSdD-G1f_f)$MT4m3syr{RPRx8FQ>mOKUob80H6Lu$=++It80nX*Q(c1%i1*r6NSG&>P7jo z&szBA(&Xc7>3VumzO|Na15~FNn|zw=SWK)=s(nPQq*H)g<<&ALqKTpV*a9H|aA1rd_71#n}BqrHOH&z0A#qiei1dJw{ljT~g?MJ3zUQ@9vWtuQ&gDw6u@A;lkpg6*$NAza>1 zwGzgZO#cL9Gt@JDP@!u6OSalbPti%aWg`v4BYG1A;!Zh#6E&p6a?2)a(qz{n$R2Lf z{;Y;Ie!_mBRDa>SM*&|6%g|RTHq!o#)McDmfZlE4()se*SE-{|QY<+ zKx-W~y=GmIb} zL2EuJv2n7%gE(jzWS#s#*eK0lz&4zIs~xN!b(Eb-fj8y6%`3lDZC*!9p)6qOZ^w*Y zX}iLngz;C~)dSnTLaL3t?`_zySD+=F`JW|R#K_MN?XEdfmT{JS!r81t%jXuol_cBoEC>P>jDmopA`dL$p7|g zu(+!_Q$F-Ay^0Pg3EX=ZO~gBdZxcK)&`m3nBPe2RbnB?E&u~QkJ!JWZRtTQt$Zo z6a)W(eE)qKS;Nj`OytUrAJA4Wz1T6B-g&#d^wyP!b`!pnRBRCf{`c?)C3;Fp*dEHJ zrf+E+fD69|mJ*bAeDvaU>-%^uvjq-Ws4-Fe{(~HFm{MfrUMPld$b=6m$-DX0%EY<$`-Yu#xb%vPO5_xT?wajq5!a z%aX&?rt8m8+PtwX(08%!`Kb11CHt&X6L|2w;03u}P`3DlqSL)deA05MGDZX}Fe9rs z=0Q{U|+hZ+kUzBQ>t4hny1x~ zAvpX6A!M^T8(K6@MZf$M#$=4F_ZhVi6;I0>KBKyBltvz6B=rIEkg>~p^Q>WyS3g}I)=fO<+ z^K#7*YSlQO#{g=*dU_!2JqWhoYl3ipm-K%qF^R3tW*Z>tCjR1u|d%x`PHC#(?%MZV%u7DzsLWfV2!;V6xrOBM5G*YZTAWt5pXm|c@OuYIqe}D}C z#yjt@WHIl!X-5wJhMI?}!*eBN!98=np~m9G=W@$8bWOjt=r*)&ECD=XEJ2G9US&IO zIiT2tD>t@$g7=DpUM{)lBU*?y$jA2IB6_r!j6a4ryIwN?7(G(`( ze<~k74wuuXa@}!i6n_&p4Lb*ehMw?@;N~#sgJGmUCVxH-{rm^n?mOz@%!g2x1Nu^= zI5Snw{SJ!QTKVdCRA1yylb?P^*R;a{rE=^4%hA?R>$H>?1xAg}0;TaiHSKWG*=Ln~ ztm;KmADM!U)c01rDEVv+bQFHC==k7!>Lsf7$mkzvK=O$*yjD}d1KdQa=zu5U*>aAl zslxXi1Hwoy`JLK?tw($uR$Cbyyoe*Oz#k9ru3L<6FA_}69}K%^)-s+l`J~}v)6T&HS5(2 zPtq*crg_Yya`s7BL_6iNlQhI#2Av-TF66HoGQ95aK>I>!C(7+70n4;Q4C;JvApAF>Lx1J$Q3_R8&Oa! zKm8eeI-^(y{6fQ;-NQNo+aHx2zaeyn@zEn_;$1s5!r@>9zIN`VVmbF0$`CWw%8!1b zCq&*_+5cBq$OGhZ!`Fx(*jISqgFN!kB5=tC#v^S>$R z#BcOe!;82@q+=;u$T4!!@05BK{36a!yZ?*)B40T}_sQHp$qAQ9-9He9rgXwc`N^Mz zPfg{yKe4dOW$7P2%OS|uvAx4<8 zkiX$F7$ishO-Xo6|C^?`z3V6#ToU>ZHE449TV6+45C$U0Iie>yQ8NzzPzu&^LG|3S+X9>V55>mh{SE?mA{vm7S1WjZ@5T>S(8ho0y1LIk4UTu} zCU*s+DA+2`MVh{r^la%qM{!vNj3V?UjDpaR+YV>j0V`km0^X)?Nz|pUq*I7i zu&Ub$Q6Gu73emJ)H`cIm{S9BJi>b;?VuwB^m{|a7&vGG}XW7O-uKKjE#5y{kr`R&< zA?V_H49Vl-jRivlP1k#q6hX)thuLLt9M_qhS44wV%^6KGYN$77A>Pkih@|S3H)x_( zZ6C6?#+)TwW62~<1XJh2A`Gdeo?xIhc_9Oy7^BP!sZDLa4`PnXW2i`ObBYh4Ezb)O zx8N~9NU+jOF7cI}7z5oI9zLuHH89M{p={F4k%I%p*XNg9=z>{U8YCWor*4E>a4bn_ zm}tmX8}W7ZSQKQMiYaO8;78H;gq<59y)ez07tBej8J@FVGE+&hU#qvlvWG0^H z!o@B8yj2$s`8ib=jiOW>CvVij@DpVkjXc^IeV}|(7yal3>5dRL*Evy)1&X#jP8?-( zFbDoPj6M)zKrV|B@lr;JmK`sR!wLsVC@V_f&8R?C)&}ecN>NiRq37j`HAP2EdPPmF z(zJ!O;E$S(uU7TvWW!ow0El_CmKYlCYY4Pf6C;n;5`(IVI4_UwimM>vkx0=ckq3hf zR*h9KzJv0V3Q2{Hig%c_1LVO-(Z+qVWuV6x(@JDk6ny)QqeKm)DmO)padxxJh!WQz z0j$qb=I_mn))EOYqB!B)X8Br_=)p(TxQqx#)j`psy*jzJz#g^54TLT)jQM{t{&VVx zF8JnTPaRPYj}z9z9V^C#*)l;cm zUE>6M>K=;|y~5y^A^yxm9mL5G<3yaOcvhZ>!{lDr_!IHsK5ygYzQ$9$C-xV$+p4Z; zZ3mk;{El+@&uU;BepfzGS2X>%{L;FjLoctavrl7j0kkR~#C`$|W-;$-?8*g);1YI7 zFm`ERIvq)PAUBB(A&&!x!A3n11wndqJ$xGwBX=f%RxbC{7hW%RPwN;xopsRwY(4KTOcozxZH1zMyBE%%{*cV)WNE zj0y3E!pe`jC)-NneHmkX7iSwqpZg&ja~O)ViyFTk0Tk~m6GueLq1|=GSt~y=g*%3inO8j#vTTfy_wq> z@-<(~kgw8QhT?(g{#3}%9}w}T{!)P4+na*qrba>!s{8`^F5Q&NZWOg*jst>nAM2g; z^F8e0S~2U@lgG0kBGlCnkA;$b8>mW=f;VZ>OOhX<>I-)9$M zbn@lIR^m4F^ut!7w@oDPC$TcQHHh4GRE^*btwsIXx%fyD6{x*tE59G+%zT;CT5X+g zwiX<~`Fm@nQ8&0o@CV?1t`VbsUFTZgyrz0yj$I=@Yk?yY77UhsXx)U*r^%K#AC5*o zC4q5mdAEO%Rc-L$>Kv)J6>TDa(_n2=h9}1(GTFp* z2(b3#OrD$pM~wcPrk}=WW;oQF+}c*$6Ki>9GBnGRbqXwQT?94zE7`G~XiPKZJ?${` z2rq3X`omjzsGS&hp5`zxRkTgOki+ojI}+5+i=!&GMz9UD2?6Dy5S5BKJLKL}(WcEp zc!v%2nU&$HGO(jcX`(~$?tDyUxdRNGohI`Ct9tre zD^^}mFzAv51o;sV1Oia-HaX=w(f5MVS4aNe*NGJu6ui1-4|KeU-m7bIT_@4C9{%1F zmO-WE%ElWUq7jzL)i%?pDfP}GHMwY(b*ADpYO-6`X`EFFw}2m^vU7;lsadjBx@hM* z@f4QPVwuxLwBWxaby3aoSZ850II+iD-!$bX#`OhzImNHSE%+XlD=Yx&zgGBu7gV_W zthd54yTXFMFQ_p8Z>z%Gf4IVuG3f%aW~75*l@y~az+*o_4I$g*yt;q^;kC-7ea zz_)GcO*hW$QH7I)k<}O96*Gv{N-7w^0*!3Ap;_hDoLR=%J+gUs(M+7#gU`vttq>-! zc89P;6k&G}6NOcZ&-AfTI{B~|I|(G!92wt3#KrJYv2|#O+O60R_Kg1^`}YvH`ugXS z);ZSLAL$_;!a?l7o}zYa_8e=Lh4uH)aQ>7kI)c_E1#((Xh_}_UxTok+(>sm$E|M?6 z3-CDPgF{4J*Kw;xPcM;jS)4N#&Xc`FIvkmA^}-I8CV%WDJT`&+2fw_6|64Fpp3LYi zQn4>S)*GTaO&0X_L-p<5Mb<=~?k$F%*U_PUz+`quXZ8_8aFA8e2ZQ;6jP5I@qt?ZJ zRju3mih4c*_+azY_WX1jcKm@tDkrWkUE^+e*<)Y6nXpxF~D5} zJ%bO5HKVp1FiF&}V+me3^08=eOyIS@4}T%E`io>*BMbYBbYH{FdOsoEb@*%5^OiTm zXK+Av8X%6LH3T>`#HUYv2dcIil6?jWw=@O`L>a4WnRugU6EwRR5*j9f(&4Tt0L04G z#cJ1jJIAYQ@8NRL&sDh&S5eN^u1dKan*x?fe&R+k*Eb2(tI6upD}ynagXFh^u`#Df z*G+zt>C<(#SS&L1CXq!!n-c~!_D%wWzg-D4)U4Vp(ax!R;GhM$%t{H)uT`nVr!SA%|RuR|Vc0{mq z#@`Xa{j+@+Rmyz;)?7=Z@$tRRSB3JuI9F=m;oGjNf$X2bHWCfs&a5jp@WpMSk+%o+ zhhAL+eEY_K)xf^1YoOr2ZXoOStLnk}|FVJhDOaA~a#go{aF`g4Aiu-I#De~;s3Uv@ z*AZgfv1bMw2FL3_H?zFXZrhjYcCW6UGyDxSiz(M18;OFe;JF9!NIJ@q_c*nOHzf zZ%~qY==`UZ0NSTf=!&vQ431Pm7yS+)xU}`BJT~QmgZSJ6p@xFj0Ei--sgUewh)_u* zM50dyTquWb9w9pa`)b@bLbSh%g;?Mnm#bQcH{V&k(ih)(Ra{p7UpLU>E)jPXtX8EO zkk8yD?n$opWMg`a%XpEU5 z^(rX#irQKBQn$A|cDl2T>T|$j!-BpV!8g0$;80d%ie6;ci^V<7Gw#)i9OqSj+uJdj0sD-z8cn0LWG1%S@TXWp%0g;-usSr}oZJ!rg*7-J0 z;qIXa3?n34b)w zGS3o8y(vvym68=G$87nt)Q}S1h%~!tj=Qb^#d6X_k>;C8uR-oQ zZYlrYP86$snY`c@Kg?RWm09+%xY_Ho61LCEVZdkA;t|ouxB4zLIrEQ#i}K{UM?~k# z;WW%qE0p;tz)~vQ?uo3!cx-h6?5!a{9IPB!C%!t20k(x==Dg<=qaJ!xw396!6%Eo~ zz?bmwpu%fr{h>-IE`HAJf|)?yuVH}k$0}JntNvq^`tvLZbQv^BwDe;oK9MbZmRZSX zIVOUYCQL%mL4~ZGBvO5Y<`ZF7%$)4=7`!0^ z6wJ3+f~V!~$1(C-kO0@uoX15A3srHpIv`$aa}QAWKaMT=l31J8S7WVz;&NEWFUC6b z1pGY%WaG)O$Op*m$v8yz`V@R}INuV|{hkzY^4w$``(1=lxW}Lid`lX7W zu`m**h%~M0pHew=ifD;A&S$5H7HzF5))4%5-rQE;IL?||+_eCE9)E@gLHX(rks=29 z$0=f9C}tl+%_|P~h}6r*3jIjpk0kpENiScO%~gCAF-pK}IX9(2QBieaAJ)h#4ZWWwyG)L(}8jeDq*jESi2Jge=Hs zMFIce7Fpf?+W5{HqGxy+I0?j_PtTThzC>ALrsx~)mjGmse19gKs7IBk;6SuGGH4bU zY_;4mQ*>|_sokhL-L)E<3#gtyOGM#M(eJqoyBzi7g1=^o2#qd_y5Da~fm(|$Tj%+R z5t??{IyYIWg5s)opMom;jr{y65nHWOV8WFc-efUIc#gQ{^6mPVsDV^{3A}8(r~FX= z%n=cYr@QnrwW8xJw!hKHl4?cOdt_!t&nE3pX<0h@Y%qdgniiW<8 z-1>C?zPVx~e^LM8TsYtt%RlCddYy9Nrw4O!AntklQy$XQLAtH87kcp^iu7#TV32># z6?IcDS4GjkRw4V%6YZKEB>tnqm+i|8wX~QEpaaQ&=846weGvVSU+d*H;%*JXzpNDP5%KKhCW}YB=bm!NApCSO-rLq$1Y3DNYG-O z;3iJ&k#CuzUbFrC0GvXtYzme80}7300dHv<{?gd-lY-hRlyN%W6SQAkJgHOJMJ}^rgxL zBJnD)XIT3muxrcog(4(n=@lEuyRgW9x)M#Bd_@wkqJc6Wc5V5xyegXZ`-&u{T$!9g zYbmKts|K!I#PYUERisP)Rnb)D*NQ4~?_`^jur56dDvf7dfta~Zuuo~#NNYrh#6(`jQl)6Za?&cG0b!4Wq z(3Hj^5z{Ca8k=&fTp)7`*e38tUMwP0im%8+g%*=OxmeUmdHIUio2s$p$BRUSS3Rm; zB1io&A{So@V}{96L%xL;Tl#IoDtOhql`9!@!B$R2Bk6ixB;Q#)3nS3fD0&thR(IB7 z@!~olcCFZ1TYOp2gL&OU@num)#xCUWVu$*pmy^TY!6y`PYNd2!p>LJXK95*w1ez{U zfu^57FBB~53kYCO!w+LSTBKI|lSVtnKUtHwlOBG4QTv*=7>TqB- z9Mni4t%Ll4bCR*tyJZC{MmJC%_IUlh6FZ z?X>f?Bjt-CGU}A_UU9E1$Cm1qEPWBHv8-5r^`hwS+NfORk_vDRKCD2r9C*QaV&*P6 zPfag9rhuVFY2@k$| zb2mhv(C@&^Bn)^jERrf7>^8>PwHWNrSUn;`d&Hd#v`ZY@s_HGRT<;*CTrL^}9zKME zog50tI%5Iu`o7}l9q_5*&;lL$3c51RDsm@Xsh*bZrm92Osgn@z@XT@%<65!_^Vdlh zEf<~+7^iqYY0RvFDR>rrx4hJin1704*;`D&e>e~cU%j~SC6P1)!&T2mz@>)SorL0+ z)`VfJcm?bepm*gR!8pu-Q}61oiV$(78)S$4)$6gX~bG$M!L8es zDTzsXJF6C7iyXh}hr+>V3dM`SVQpvtO{>1CpCEl7aUrw>!UGlM__pSC5Yvd2P9*kI zJ>_nZ{;1(_*K`=~-~(FRv%en?d_n43De7fmqTQ-u$cSR9E&}i#cMarVffyJCNHTYb zLR4ySC|<3qKi1sUz#8EPtXEZABmI=%%J8?S*(i2%kAocgcS65?hGu0fftLqCy~t2_ zAHN7N+y|~_9})+4Te)XAx26xA&1H2Tc(xE=2taA95;0l1I_%JU2LAb{hXa<8YejPKdZA+}I1tKVtQCDCP5{I*b=1*x z2N!N2Us#LJMbhObYsI6@CnI$%Qd96R82@VFpSP*V3*adEWU+WQt*29W+=i?rz>C5& z9{;#vE>;)+>fv7k{(10^;Y9pndMc#xvRGR;EeLN*OeY&VX*jMuE~Pw2TD>3(f`;(8_oD2tpOG|MTA7^>KIR&bhyP&i#1z z-Fxo2z%F?eTVcY_6NltyZ1hJW{@@~`-fsr#jOyycN&QJkuI3Le@df;KM!*a%iZ&Qp zm#i;d*hT{~vodt;PMDn(ZQH11#;7D#K=wm%b)jJ{Z8B@4W}P8*QRw)YW`!C}9-y3( zA;|wY6uhl0Uz~rR#*6tU@%^mFkCQvripuj~I1*#yIhA}4c_$Yt`U8sopu(dS`<@Ex zHpfyO?o}H2i^97UKBaKF(!mZz-=Xjgi(}tEajRnRg~I&yoHH_1;iHOum%@f(pI|-u zPtCw}rNUsPLO+Fb6^<(Pn-uP^Ft7KR^N9v32E1XM`Vk5bQ+STTGZp5I=xnb>)4E#) z>oP_8C-gdfk|}<@ol1Lg!~DSmVw-iGprRNT$%S2ne6fQO`)WKk_5o~Dg2eVZ5;m^( zK$2zskx6D9mpzEY^`&EY2>DS+qmfFH#%NlG_AqC}(>rKt+BC6$2j%6g#(CHcrE4L( zLvDcNCSUF$=pFi9Y#-PS{x~TUkORQiAoxA6m9z zBF}C(YDS_ZXrQo{U4M4amu$hT9Uz{rMtOr&iEkbHQnk)9lDX$xMIz~LZgT~!G4cUpl zsINI_e6z)d1x8K|5+Ej-wR2b|S0K4z|99#hA#V-f=LoiQ)CO#Xn%2y*2I^b!5(uK1h} zX>P_nRRb_VIY|AH`XTj2%I0ePi68tM;b-HD^TmyS(G<_y`F6O{4#{isbiUZsLZ#i( z@71*j?34E22Pv;+Ja{hjFJh4Fq$Ga`<{(D$N8n-y?*;RuNc}!AJ2T07m{q&Js5(R? z`l*8m$I{a9b*qn&d2WIjzKe>*@jc{@A321{@Dvx=5tJ8=@HD(#U_0Lb7Krno&~k6! zemmY-0dK)xR`Op{ELI(+Up;pH;X^;hQ$cFfhBr47?@h0QxA*v8Gc$P+?wHPW>o_**!b;Q!Iw7kOQbn z8HmnKx@Uwe51^d=yyPcScJ{!RrdSL=L9f!`(c;Jnnw(aWy4Vb=SyO6n-o7{{Ic$?W z06gBoxnN$JQlAIrm`}0+=Dj9)5SZ^~Yf44uN&1F98zb7k!1qd`V=XUwcgw@K-xk|o z%O4Cm8ODk$U(z$QdaPLXAFA=_W%ltg7Lt#TiZbi?pt>^gSqm+pm&?Q}U(o_@^*Gz7 zH9}&sYmsQUxi)Gn@rC`qU{upqj1vP-QFd%Y(k^KJBD$=}Oc}h5@;<279Q3DZ?L!&& zX$G4c6UcKs)97o`P9cxS)MVJu1!e~<+qC;e{4?Hmz|)#ImPA*9=9rm_LT)tKQJ~qx zd4@9f+%?Ohrr`^ReajGzCCktlUzN2gFise)w!s(n;cgqoy}1Epe4ma$@&wigLI_)7 z-4yZ%qek^JDCc8Y>ixl3)Lg_>QMegOKHsFWCKL*ozM!SsrRZ=&HbV7=mOwcVqR`N^ zbI4mW4auF$cB+k#)q&(Y%I#yyVzJ{ie$ruRxfpncws;ayJ;BW(@gho;i(_YK7}ZV? znP=%9_lgO2P_Y81^jXUGZUu9RVFt`bGZ>8+{-A+3BJFlfi2KjdH);8~kJuHBp`nOj zhQk=qeX=Yu(Vn!gCW=+(X+oMN4xFcX-W8K{YoT*&%F`nG6+9a+j1`mO6&KL<-GLwJ z+GG?oK*52<1tk9P91IrK7jgONF5b9^UkxmLRD5}nrsO>LsBXnwb&wpdEr(?5Up^`- zF2S>UE5xBou$x|Cul1)Od5NroWIO0bUdCGAyiUA%nflYdbziY#+L(x~MEBb?l`PaA=ZwKl0;C zzKT3MDakw_r+u2jq%g;@PJ51F!Glr_vKQniTXrxPYqek*p-=xwZ zvfe+?y|dj8@L1FxHVi?oSbCGDW~XE2@`o?hGG9Gg9J@*R`D@Uy11WQeTVYj@boy)H~k5FO!8VGSzasB z#bR~HsaGq{?wM)r0w)H1T@7@^M^G+lfk@`lwxid?xbkB5Qs;lI~jG&AZX3TfI(2A@3*2mB{mKZ1jmf hZdU Date: Fri, 19 Mar 2021 19:50:57 +0530 Subject: [PATCH 55/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200358 -> 200531 bytes rate-limit-filter/src/lib.rs | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 454ea352e3cec933ebf7d75ca72b67adabd340a6..4790e3e2ee54f216c963732a900f0cb8dffb7dca 100644 GIT binary patch delta 22437 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index 407ed44..a5ef9c2 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -93,13 +93,13 @@ impl HttpContext for UpstreamCall { ) .ok(); } - + /* if let Some(path) = self.get_http_request_header(":path") { if ALLOWED_PATHS.binary_search(&path.as_str()).is_ok() { return Action::Continue; } } - /* + */ if let Some(path) = self.get_http_request_header(":path") { if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) @@ -107,7 +107,7 @@ impl HttpContext for UpstreamCall { { return Action::Continue; } - }*/ + } if let Some(plans_vec) = self.is_rate_limiter(self.get_http_request_header(":path").unwrap()) From 71ff98e2858c08b62237445d1d95c02aaefa439a Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 19:55:17 +0530 Subject: [PATCH 56/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200531 -> 200664 bytes rate-limit-filter/src/lib.rs | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 4790e3e2ee54f216c963732a900f0cb8dffb7dca..413b02736d502ce9dd61dc3ffef834a3538aa69c 100644 GIT binary patch delta 22852 zcmb_@30##$_y05VTsAMu1w{~0E{h5x?)yG2X=-V2xwnXl3o0&PSz2IGS&?BE8!A&= zqeLUIF6D-0MrB1wy<}QgW@MVE)JsMA|DI>LT(0&0dOx4Pex5t?J#*&FcIM2P^E{l` zQNL1a)Klu$>icSr zWh>}8mS^||Ud;2Er#)7`hQTv14+cVz$4bO zkajkgSi9GamSLjW@momuk!PuvBC@krFN^gNgwWx%ScT-&0%<=q24+|6c*aFiNsZ1I ztB%4bFF2O8OpJ5u7C5~Y#&QvK6Ph8q(8N_a_P6Y0rC!)M2|4AcYdMr>pKx?<)p9`g z36L!yTSX4C;#xGZTp(tmiUyaMI->ayt(q3?xMOdtZOM6+$mZaO=#+{^6cQ*PkZY7s zDsmhThHgtfO4$Pjy^;V?sK#-3P)*=?>AzY}W8*8J8R7tbh>KFO&j6JKjv9bc7aPr# zK7!-!Jk^ffk+H1NaW1TD9I?1&R1raGV&$?}CRV0VGu2dB?dTWYJ*<(k+1c3)bbn?Q zG-dd4WQRwv3y$Z*XZjnCl&JR z%YFZHIhz){-Z3z$=r1;6eH3-RW83n-+=yLRwPRSjRo8DH%inLGbM0v0UeV3B&yeW; zp)`D5k!ilQ^$|6W+~`jH{WwQi^k~MOw%cQvxb$4Pazg;eKq)7DY?t_`0B*Ghyf`WV z!*vLIcb^KCOn{GLVM2Gu%l2`8s#fY{XQhAIds(u)Mq#59KePMV24HFJT%1zU1T}2u z!&zTG9+aHt%drGwkW1*pS0l;S2rKOz`342rG8LI_Y51v7(rk|~q1t%@?-mOg3A~?e z2lx_rFS04N0al^J=)GWeZ@p2+p7s%rJKMi)J?d&G(b2iXM0ULN{tmsFwb4cH^8GoNsi@-%iY*IJ1!+IW66$`PIn||T`6L*>;|;2#xM+$BV%V12xH(Z zMn#vH<6Nicehl*=Sd15Slx72FO@PC8SdH}>70?3HW5?8NXGp#J@Is^sya)mugOkDr z>2vLeN}$qS3AZbvMIYV@Ny$d)tBnNq;r>Wa-4}HKKHP$2yCW~DUwc?;s4nTMDtyxj z`0Bu>0hmNB{RhTK{&CC`iDVW4wf2SZo!J@yU_) z|F7ffowysTMLHzj#C!>x?cXd`5!TTGq?b@MTN%TV5A|V=;a%=x%u(63qvO3U?OCzo zQkQsE>uA+=^4J_ywLM4XT*3c*LN5Vfn=so26=do?Wv-|A`&#|ItYYIcXgo=5bnNRo z4ZA+D+w$lypn@X6)gNd@j7ps<=~vzJ)7l~p6Nc?kJXkY4jjp57rkgS z4>jVV%!O#@RJah0y4r;-K(#L91=Qd|-au=MOqo7F1&+!=5g`pk+eO3l7T#%gf6-9d zI4GKrTKiHH9V+E7s)_MsjS;NAX*xlxsVSYGs4zLiN=*+1#x-<6uQHQt_Yw9qyPqgB z31X&3(g`FLSiMJ{meJ@hG}Ls_!dW_u-w96uwM^1iLTt2{0aZq%hU_j%mYA zv+bpQMT}+oAqi_AB~Br+HIm2+L})8=3rxaBf;b6jGvz`WXF#(u7osweC17|XV^n`A2L`9h z&}zAmCeceTb1a{@aB9)@eIOoixYuVU(#lSuZz4h$Pt#*J1R5RIP-*X5zElJAHkT_n zmF<>9MG<+9c9Z&q7lCv`fW>Y}0EqxnV5?)|Eo~f&XS6DPc9J8I4h5^W;9CUNpdKtaRwy2e@tR z^JraD*Z}C~+UH9@oL|d)&DCjcCbcq}XS1%=?m|>X zi`abWHRO0Yy?vLaDy|M|3+oczY?(^GOW$Zq_`ZmyD)9;~`E}D zx-?~5IA>*!`*y5k<&LX6GTB?D^LKu#W|hAPMQJ0pBhghOSOkkxg!Cl6scqwOw&p-1~%1VeL<>V*E-Fb5szLR-;*MC$_V`zMO1-(mDYoCT{$7Wrlu zVLXFzg}Czad+b-ofn9B^NAt38U7T<6e{`$9g}lV0TOEf>`dHV4 zpe>|WzxUO50{T={nl@F1C2T_8&5#9V6K91Iq#dxLs`U3mhZtX5=-6Mr6G`dpBkMKz z%Ue$qeEjWTf~7AUjn~q*-zn6JQ{Vld<>Om)3(AFWA0Cf!Jh;V?@==&$&->nvnHAIj zraal(-`@(>r{A0QHyk7(-0}Q-J^rTLl;CLj{<6PeArWK$rmVkXKm1LZKCZ0eUXGZLlK+M$m!s)R zA9V<7>K|MIOlRa22~d%0G>9lz-Bi z*0lPQ(Uin|swHW9Qu^sgBL1qQ;U~1RC-kK1#26}TS4G6qc~wknCGE4DiTdVevnh%G zTtiDfpHAq5&*xIo^WQTm+3@duNJ__5bLL%+eu;|GTfbPvSas>gC-WKm#xdvAIQC6x z$*G~B$;;bWn8W9*gs^I2rNxNxqKh39M%^2}+RJbR{QC8+us}D}%<%GStOaM3SbN^_ z>UWcIbMZab7l-w*bG^NjnlzqVmnNjzEpEu0kfZQIIIAjsVu&cXf>|se z$E@Hy2sSt=a7!wFL_W{);%^(#jgh}kL^n449_-eQ*Ir@KtkqjE>uFt?664FW_%J>U z3RNb*VeDR3?!29|dzhbLm~vino>JKz{FeNeTs8^E!gdpxHmRh@v`OX2!Q`Da37+O8 zm&#*Ay?or8Ey}9+@Cf!c{Fp>l>8mQDT*HZ~FM%=xXeA{8V2TM8l*1hh47CQWg_eVy zZl;_Xqr^{84kZa@Nwtpc8qR`{N}UjHGOYbbt5B(!glwGv|JvwegI;6ULIc-nI8p6K zeJawq>s;K0AW+AH1m)0`T31m)mQjX9)XQpIWqCTG+C`|)33<%yM!8N{>mrotglrd~ zL?_@1VDz+BCzO~RS)xX#6qyuJ4FYx7rsdGxLRV3xQRFWuhoS;k(OLv=s8)cW9EvJk zMcF!`!bND%E0=>XKwtGbol@pvDb(xKx(Ee2p~gkXb9VM)St=`&#r~{MV8hqtN?Nj_ z#M0(zkahlSF3Xow0@xtWqAdYhk#8Wo*_Uc*{C5U2J8O_xfoy2ovwNY+npa|hrq>fP z{Cq!X?U#Y|RM7TPbJJLbpV%i0Z7dAUl-XDZBwyQDR@)q6 zF?=AfxGJcqu-&;Tm}N0`K>i-W;*-9A89V0yj%j;~;mWO%F+NC#u6;4a7bk+KMIo6Y zjj2|SZOI15p9QTC&-bOvS@X)VzL6&9u9obk8z0;S(d|VM65R(t1f~x!@Wtd@GlU?^ z2eLe0K{r_#4y`9KK6Dy2F*i!lip8MAvsF66F{3HU zYt3$qE29=Qr_Znp+tHlv3GG8pM2jkCd>HG%d*r_fm?+LsvK6a9ef^Op|nJLX$L#yw6{$!`-_uOWsgAL^qn3Z2$3 z>4nt&aCk~6s-}FItEjFH5Pqnfl*n#jr{rB}(7GylIFT)C7I2go(^$Bi(1}HMG-AP{ z18@#$VKfA?f~;B$jUqQ@R8y|+#M(?WnC;|(XzT)7hUhRVYB{TDM3zF(+^$T3NF&Ng zAvHucwFoJdsv_~m0ECR?Z=G1Om4e6!kY9_&ChL*J21bz(k)?NpWa}N#@+t&n{h?ZBIXKdwSXZwCzb-#B+Pz z-<3s$H*HC(5NmO5$yd9w_pn`7bz>>mE~mS(hm-VO7!NJSCbVM@a_m7LeGhv1BYLUQ zhD|`yD4*<(o*$6K-Pwr53$&g7`~K25oO4DWc9c6$^)PbmUa zB{vRd?Y(fLL-yEk7B5?kU>R}7=JCeW!gKS~(|!ySx$^7LEWxjwP@Fh>N!rG+aOc$# zY>R8lmN++#Vh$E!Y*I~_vERjLw(1`=QlmBETTJ^kMpQb3#<2a&&#(v^>*Ncgm~gfl z%O?M2Bdf=;r+Cgo@|E$dv+O^f#aU|~Bzqr@aXaL$n^>HD98}o7YvWn6{F3s=<;0ti z?~FoLEVoepe&nqMu9}rpvq#IyY!a1V=M>D2g2c5C%DS6abjWoD^)lvWW*>PSy=INx z84BQqr`dLMLT?0{PsnEE!wv{@YlXgwG$% zPRnbzvH?+4{P6JIe|~nh>ft|%sukN4YK*@yDowhLb<`{M(fPyW@!MD|4v0&)u~1WV zi%BL|n7nb4DLP!PnZ#oMQhul@|FB!lKiz8fnXEN3Z8ElIzI1W@NG*lh)J&J;EzDqqtC!`su>4mS*hM_LUpkcV`}Unt3!U8ZWaZ=6cCoolAD zPgHi&dF$(KzZ{BuMDWXepmy<8&5mx&BthLxQF=P2K@yX{Wg+OFzxsWjSt%Y%O0~$fgFk9qjs%j#r8D zrbX;vcm2h>_97J50^OCMMUGyU8OxVJ0aya}C1?03-5NOFGt@-1cg|eQ_F4S$FJg{D z#M+;nZI`pBT!z)J$;EOW%3#?nNDEaOK{&)Zoj0vufvjy4RW&1^8jltScdopfIaQoi z-R{#)tNHh_Uc6n?#h&gH?x&R(kleJI4R!vyntiLX-{k3RHWf*qHSGDeMI|`8HQ_2k zk!8)1^QSfJ9t%`)?jtOh2O1uh-4`!5#i?f=!^o;--eatHxb{|5dm&Fenhync0jJ^V z$JiSE69lca%DLcic7d}Z=j12ZLr`*gavkf5B=9MACz8cav8`y%mdDl+)8?m{%3J-W zt-VDIGCczePM+8E+1Q@>Z;pKDD-@+;m>C{kAfl75`1@g0sO**=r3Vp5Ou_jg@tGKdO6CQ>#Z>u<` zBYz;=6Hn{N56FV1bkqU}PV6BakxZyiiOk-^Is{ik2mEzEp)>Yi?i13vhYd*5-|FH5 zKpU&!DQr_k>7&pwf+$rTFkY74Zn8$#i? zEhVg%tr{Bv#)e|cSxBqpcO|SSf~cSgD!T9*)MNB^3%yNh3)9egA4{bjv-&k$;Z8Ycz0QhQeAQm`LbKgu znkdZR>K6#u2V68dyOgnLmDS6e_p?VKfb>UR+|O!YLq0mdHX>PgkR>6Jdh+%`5cfG} z9%6HS*#+mj$Cxk6I;RIVPqFSTE4O3a`l8c_i;0|_0QJuPr`b6&Gxi!5K-IgP!DWCo%KN@y_y|Y7 z@C|E=WIvMDjmHqmq-&iu)6T|4#&Y^xt5N>+4IJ0(cV)+KS?4w`o@>{xDa&Fk^eF>A zMF88PZ(-ybWZ}0gv0XO3xzvWn#H(H+&jnS4Aqt(}f6LxtY^{9xJC@w0_H%lb&<|2z z-^OqXp^}>`DrMbwY^&`tDDxm}3QJ#nr@+N_x%C{I5Lbsv7%3P1um$kCN#s|gmP<*;8_dzkjA7g-mc{hf2|Mc7ifz~_Eq zPp}Je`6YH2wBgfBxal;?#5y)4BzHZOu&36TXv{;tO5R(?4zeoQ_cAj-l9S6Xvq9c; z$cv+L-(|MW`@7x9e=o;eVK*Sq^3)a9i`B@ZS6C-(p-WdVs6sjADzme1<;tsYc#p~h zSJ^l@x1M!}~;onQY!d!|5M{F8NUomUGD+dyv#lo)TjUjmQE zX_O~>Tw}MjI^F@&Mb;X@JcU2po`i5hm)b{nBc?n@gZF~-;l?x z0re!Ad|+JP8#fg3KJ3E{U-R%Tt`^a;swcJ1L|}(v2ibJy3J?Xw1;B9D*`9H4#)>42 zOt^C-=Wj9@XW_vz$iiFUHWP2*{n>WsofaO*`k#HtWgAev-b4Z?j>vi0EThj;@?D6g zsLHv+i^o{m9{H|~#~}H^#-||}5zIRxSs2U{un+Qs`5U;8-yFhcBN-gQJJ>evfl%%8 zz(qC_8=bWw{4<8qL#_BcBppKkf=S*U%14G!^oERvIvgg@AE)3xxi^%LV{genLpfbn zJGbV8u(5$!%dFNsjvaPxYt4JB|3?>OMg+ftfK+8$-aX9D;IkN^54=w`y^C3G$rD5WvbwW%JN_(ZkIND}?~EOH+Rh_z@o%v6 zJkxsOi;lmwo^n?Vzgaf|m*lk=J{SR{!LghU&;_wP9oxP-mM>!8$x(5+? zhR5?wEUTV$BmlY(hYiXDPXk&ge2HMw2_;0Z5y5yTy_pEXLokZ@4(T zb;52UXwBeT5UR432v(ATkU0^aBZ4+MT!TSqFV+(UJy9vFNGy-I>d=RdAgoy@zv#f{ z<2WDQk$29j!CMp&ZhKS3bTIJ_p-2<$A{1ewrwO$&(IbTXO?34upq3`8X@))}6lj(m zZH8XYY6gp%p$&vwLVrIEaY`;q;3Hsf zOA>fQaN!x)+hP`BE>W%g66DqwzA?zgLLCJbEoDst4-Kw1%ZxSKEW0Q2h}eB5*;u(; zt%}>q{U8^EuV|1%I7)Ld+@F#Zc|U{j`PEw zoRJ6gaW6ieg%*QHzXu%Ea`ZW^Lw4)K1xwu-41PMp1sTzgPYC&uoCoN4u=ce!?B;p7svqBhc4GST z_DDwe=OsuQbkuGD|E?KoC&vur`5>(utg)+u_+Af&-v)6<6T`m2o(#@iLwGmF9+HQL z@xJZ1e@tVy!OeIGZeM4l4H{*t-9o0FuGMuP%SeGmsg~)(_(b-ORxv*3PqX4XM#XB4 z;#RRzM!U%JZLg_sg^$H}AkSoUWhmhA*PbQ4hkhU*s{6Gq@B)FQ+aC|>D6f( zW9)R^-?!{TgbXTt3LnvI&=X~K3Xl8;>x7S@JeRkvyfzEk^zbYmX?FO( z=*QZtP!H>cKfjw`OnWwUv>yfu~o>#xLimEWfFTmGt~olKd_&tTq1%%d~$dzmp0 zZfSwMyhw*3^I?qZwRU29d<0-@u?G3!0-o^?7z^ZYX?&VIkk+)c z|3z#CacBMmu?=$lLLLc2vwI;ti2}I*qk-`)Sj49qV*|1;<`3gqy>l@i2IBXN$qLHW z>3m>T{Wdal+Lh7{Ye}c`H6qdd3CDLX;zQRR-w#sIh;DLV*yzsSYn<xNU4nDDWi50_^Nw)y)V?;!z9{!E<#(F%lP7On#-ne){s5)#+|0uhM{5Ai zQRASbZxM_GF$S?u9F3yn4?1q}k&u2)#xO0X{aF$|Z#lY*e~rsjVg~OLQuYWPzql5Y zBSArg5_xtx$9I;G%1#+P`TFuYxgdj&bKNbqdbCo<<*^K2*Rk$l*LBs-6S;q1HC$BZ zpi4>ML0l{c7;SPNmJmYh2H~5Q9IA!jmrFcICwdNXu$&ld<<=hIIW!m`e7zk3S2oK7Jp+2j}m|Rp>>X%vc4d zWS@L(6<-XGIBqqPBIo+m+>ee-+Q+iT13X5azn`};2=J;lKEUnr)(2c9o?RnCt6Y z-bTjf^5p-4eck`Ue#8GDc-E7An(zB~;elv-y?pyg{=4rrCr}&$$H&(3H5l2Lr}$E9 zfwoa>@Fst8zWo&cSw+DE8+aI&>=Os?G@=OGK3SoUlx!CeA+$N5I%F2u00jZS63Wt_ z8{6rfOgz2Rt)u8{5-?_FVN4osyeruxOQD4$0s<)5HD zYLKpK$=B9K>u9kYx&eDmm(R?Bl522czm0Rr_eT8Y7d5L=f>xF2j)KS+Mn#1>#vQ{T>o>=^R7eA z;tqnSZA~upOZ#&m=#6izN=joC)wzn8z*sGI{7nqaAQRb7I&a;`N8+L?3tr$qA$fEY zzmGq)R;rtMnpMBlkeXM?m7Do=o>MHVHuJ8&)duFcS`+xP%{T(E8%9~)8uyQFs;@0KlgMf@qxZ{tZ#eQLX%M|a%#D#qhw z8>NMf3J6$iqpWQ)yV$;11oRT$*c8h(+j$h;5@c`ZZCSD0ge1BQQ=v)LUT9mRv^wFU zio)<1n+)E;L)q7|ZaZCZWyc--2RU;mkCKr)`6#(;CyZT*{9q?<x;7U) zK#oZZg8tZv7^$7vUS&FvbuVJCRLk~7Jkh!j`whjhiuh7aE8?lPJe=8ZKg?zd?XHnJ_EO-hisquqomZMfXTZ+fup_rM2$?RX~Q(Z^yd<5Pm?0#3m*56^r&)8)!C9__Uh*@1Fn86TQ8 z0ojo$nJFtWQkSQvEKYTw>}4ohx+o<*BXjwR*_n1?Q(>k2|Juxnpk+oZ*4F zq6BIcXtk(vrkwKzPx1@5*^~~%D+}J>OZ;{M(wO#2+nWf(uaN!TzFRIk$GZmHVu~Te4l=0$rL;nno&udD)yP5ndGwHbktIkE zt+_kC+XGYMDfW!iWh+wCXQwL44I%PKDStWm(GZ)m5M{YgJwK$Yr0o?RCKn#yt%6&% zv?)QL#UZt7WqAkqysU|UQvpB4WJe=4akU3N8E$>Ufr`K@}C^ z-8x_aPISYafLpuaWZ(!lEPw;u@JQeg!m|1xA_N7p)gicV$K}#PJR>+E)TS&zAt?n- z)I?c-hz}L!;2j{@@vOo_{~$_R7utK~uD&1n2k^MlvYt7N=)?NMd^wvTE#*9}Z8kW} zRb7L;JATkPvYbbHhuWfSiY*dP1fDi{!tppWkMUi8p*e2#A4Zt3+IEMBJdbe+sUS+ zqkb$Nn)dlgn%=S(<+D|MRZM(mU465C6orhiiQhJ{?EM+OH!lYpS;~1ZlQbH49OH&F zJjw}Ed9M8VGyV!Iaqjq>t2o!X*%Y!OK}czF!;q5Ujgd#Hd7R%!K+>y!$&1yzW80;G zZ2?ED$jDr>SW%ut-dx~yvilc&LV!EzDf#3VJZY3WDGxPnOusv2(SkXXGUxUil|FmP zoCWFgnn_wuJQ$;Uy{F|LU+|v6tGnBj02Dull;&}l6eoG#4*AH^WKdsv;#rZNx^iji z?99|T_KeJw%oQ0pDl9$ZrjvYbmc55fxf485c*5|QxRVFQH%HCNZ}q^m1>Eaz@W8Kl z;3GQDay9sa2g6suZSa^KvO(V>-LTaIlTC2%zyuFG&jYX5a8^?TyF3^UdSJ4G?hX9M z0|#IOxR*zG;Eo=69AUKY8sStAhQ~ax^uXHIZGEl9L=cgpW-_)t`8e@3f2 z?F^60G9{ORL6dCs_gxQM>4CrSz~6Y_A3bor2mV9HS&G>KZ_K%S2ZB6sxCf5$z_cga z>-Y1(bWXaLkJT`&xY>cJCWCzP8y?-=BrgJ)&RY|&Hrb4cT4`c=`WwED<;peR@__+w zpoYsVk(SI(88c9~K4H+cK`1tHB=9gd90g2!%Pfxu?(c@}z@%hmc^q&sVfo}){(J1x zgY;A45=f+nZ{neU=%%tCPv;@J&op~*bD!yub|Gkgh? zMf;IMbhRgQMa{YMzYR>!QOQ2XMfT3`d8d#H@F#=zGg3OS*--7o=21vL;jLu5Z~3gO zsYCViG64)EG$Bz@jv=Lg)G<=d3Ow)OxivL&{E~U|QkRcfzI+KhWa2aT=ljUxbG~aU z(iddf?@n31ASFH1K45?nK1@GL+9T!QF`RIN1EhZP!&)A;c%s3Vo_bH_y-QO~5z2hf zgHX?1ZZ>E%pw#pgi}R7EJ}gdIsuUuR6;e#EwHTNzl_^tiTfu$imLGV_tSUo{A$rk@ zR7I%;jZWrS_hzQrQ8PD6{9MEKkAlx7~g2tp^4Nw2b!?I=q62YFjD0Oja zdS-@wLAo6aW3sI@%B#R*Huf3vpW|_-{Tuic9#gkYBmWhiuMIj9ZIWw{&Q4jh2oA{1 z2}?8OBm21B>9~NP=_smB>p;&LJQFhD0%3jK#gZLexFCJb;?#_clzFMjx4@)U)a+S2 zRWkS|-ZHq#7-aq^eTg^A-aqjXI4UYiQyvXqoiZ#9Iyg9cVO1 z)W|tJ-{Wy_xE7c?Y0l3N$e;J1k-<-;EjVIDtmY!RkLrTKY);-qx#AN4{zi9}pTM$Y zY3g!l=#q4M#){dqF#~f~EFwE*R;xq)GM+1V-04^4jygUrIDU*xxdBDG)&Cll8w2{Xv}& zj)2TFa>Z3Gl)CjQ-n8b+!Szt%e7U$DpPc2(XY1hr2c}D@J3n1Yfn!|)=`@XYYhXIC)}Yhx7k)nv+*62A zdkx$8(KQQRH97Me_#wWa;$JrHTD2M#$xktH5%ScUiC^--FMHr!9=O;8@0MHYd9*zF zJ3eqUW$y9dX@L$0k;Os)V>X&z173OKuPhw2G*`s`m zSuXGY1KPAt?*0SO|9$eEKls34v(o!$TN5gS|Ku$(lJC*)nKn$%`I zAYJaKBSoi_JCV}b3%N~I2gaDS@<65mzK)b^{~@F_Eka&X)uCAz0Lji?HZ*zuBwYtG z7H7QmT1I+?S-uzw5eGhZOiN(mM^GN_hPMKb05!bYjhlFw1rJP1$ml@8FGIMH3>2P?^~#|n<<))oMKhGHY52u Y9agowYNgj$R{v9QPfy8@1J#`W2hJOz`Tzg` delta 23203 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 diff --git a/rate-limit-filter/src/lib.rs b/rate-limit-filter/src/lib.rs index a5ef9c2..6269fea 100644 --- a/rate-limit-filter/src/lib.rs +++ b/rate-limit-filter/src/lib.rs @@ -104,7 +104,16 @@ impl HttpContext for UpstreamCall { if UpstreamCall::get_paths(&self.config_json) .binary_search(&path) .is_ok() - { + { + proxy_wasm::hostcalls::log( + LogLevel::Warn, + format!( + "test1: {:?}", + "hello" + ) + .as_str(), + ) + .ok(); return Action::Continue; } } From 8ee5c2fade5efec83c78a0d7960c9b71ed7c03de Mon Sep 17 00:00:00 2001 From: "adpranavb2000@gmail.com" Date: Fri, 19 Mar 2021 19:58:55 +0530 Subject: [PATCH 57/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200664 -> 200922 bytes rate-limit-filter/src/lib.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 413b02736d502ce9dd61dc3ffef834a3538aa69c..e799d92ec030a225c8d15fdd84a475c37b6d2d19 100644 GIT binary patch delta 24505 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 Date: Fri, 19 Mar 2021 20:03:46 +0530 Subject: [PATCH 58/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200922 -> 200938 bytes rate-limit-filter/src/lib.rs | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index e799d92ec030a225c8d15fdd84a475c37b6d2d19..664a694df03eeaa8d8c4146a78fb519d4c7b969d 100644 GIT binary patch delta 19348 zcmb7r30zgx_WxP?GF-fX7eqlpxeO|bC=NMfDaW)lHMPMZD@7#(5ofcf1r`>stf-4_ zQYt7?R5TRp(vuX6%F2qAo;-h=Sd>&&R8&?D|L;1(<$^Z+>%-mWyVlxkPiwEe_BzMo zMgCtG`Io)jPUO@$54F3Q@|@wexA1$~b|-#E`u_*NPX&iLg9Ezy=F}WiRLBhu_&7N4 z$U!A7ibRtBKa)EL_Gc{<0;~MjLozK&5t(XsjWeu$SAk+k`#ZSU(7s=fxfFA^RwYxPtyvKPZ zsrk;|gZqyz=4y(Xm9=I`w6Dqt!$^x(SWyX(_5)HhITQ!}#)mVfP?w9gjKN?_or^m3 zit*?fB)u0z3$^`3G{baNQ1eAFJ`hbS~9O1Jp4%Yyd9RYUhI;UrfmU7?0-- zdM*Q|aP{?`AfLhd@|!!&pb0rJ5cRwv#iiP8fL!Ke
{W=@#RO(#EB(_ms(Z?hKEn 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 Date: Fri, 19 Mar 2021 20:16:53 +0530 Subject: [PATCH 59/65] test#5 Signed-off-by: adpranavb2000@gmail.com --- .../pkg/rate_limit_filter_bg.wasm | Bin 200938 -> 202008 bytes rate-limit-filter/src/lib.rs | 11 +++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rate-limit-filter/pkg/rate_limit_filter_bg.wasm b/rate-limit-filter/pkg/rate_limit_filter_bg.wasm index 664a694df03eeaa8d8c4146a78fb519d4c7b969d..19329eb439c4af7c229db06e5e6d3b987b1bf356 100644 GIT binary patch delta 34727 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 delta 54267 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