From 2fcf30173ae453eed5145428aa1dd8cab0e04523 Mon Sep 17 00:00:00 2001 From: Jacek Czaja Date: Mon, 25 Nov 2024 09:10:39 +0100 Subject: [PATCH] Added storing/caching some of exchange rates from NBP (#135) * - Initil commit with program generating exchange_rates * - integrated exchange rates (draft) * - added nbp source * - Implemented draft * - Fist UT enabled * - unit test implemented * - Added EUR to PLN * - Extended UT to cover getting EUR from cached exchange rates --- Cargo.lock | 49 +- Cargo.toml | 14 + src/bin/README.md | 11 + src/bin/gen_exchange_rates.rs | 114 ++ src/main.rs | 1 + src/nbp.rs | 3513 +++++++++++++++++++++++++++++++++ src/pl.rs | 205 +- 7 files changed, 3888 insertions(+), 19 deletions(-) create mode 100644 src/bin/README.md create mode 100644 src/bin/gen_exchange_rates.rs create mode 100644 src/nbp.rs diff --git a/Cargo.lock b/Cargo.lock index 87461e1..b98515a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,7 +247,7 @@ checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -554,7 +554,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -588,6 +588,7 @@ dependencies = [ "clap", "csv", "fltk", + "holidays", "log", "nom", "pdf", @@ -595,6 +596,7 @@ dependencies = [ "regex", "reqwest", "serde", + "serde_json", "simple_logger", "wild", ] @@ -839,6 +841,17 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "holidays" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dec0b9400fd67fab42168c54b7e662fcee1a15c689f8a9bac6e1d10be822c25" +dependencies = [ + "chrono", + "once_cell", + "thiserror", +] + [[package]] name = "home" version = "0.5.9" @@ -1266,7 +1279,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1949,29 +1962,29 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.207" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.207" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -2139,7 +2152,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2152,7 +2165,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2168,9 +2181,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.74" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -2263,7 +2276,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2494,7 +2507,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -2528,7 +2541,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2777,7 +2790,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 764df46..cc3bb55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,19 @@ repository = "https://github.com/jczaja/e-trade-tax-return-pl-helper" homepage = "https://github.com/jczaja/e-trade-tax-return-pl-helper" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "etradeTaxReturnHelper" +path = "src/main.rs" + +[[bin]] +name = "gen_exchange_rates" +path = "src/bin/gen_exchange_rates.rs" +required-features = ["gen_exchange_rates"] + [features] default = ["gui"] gui = ["fltk"] +gen_exchange_rates = ["serde_json"] [dependencies] pdf = "0.7.2" @@ -29,3 +39,7 @@ fltk = {version = "=1.3.24", features = ["fltk-bundled"], optional = true} nom = "7.1.3" polars = "0.35.4" csv = "1.3.0" +serde_json = {version = "=1.0.133", optional = true} +holidays = { version = "0.1.0", default-features = false, features = ["PL"] } + + diff --git a/src/bin/README.md b/src/bin/README.md new file mode 100644 index 0000000..cc116d2 --- /dev/null +++ b/src/bin/README.md @@ -0,0 +1,11 @@ +### Usage +1. Get JSON data with exchange rates. For example USD to PLN throughput year 2024: +```bash +curl https://api.nbp.pl/api/exchangerates/rates/a/usd/2024-01-01/2024-10-31/ > myexchangerates.json +``` +2. Run program to get rust source code with embedded exchange rates: +```bash +cargo run --features gen_exchange_rates --bin gen_exchange_rates -- --input myexchangerates.json > myexchange_rates.rs +``` +3. Copy generated file to etradeTaxReturnHelper source dir and rebuild project + diff --git a/src/bin/gen_exchange_rates.rs b/src/bin/gen_exchange_rates.rs new file mode 100644 index 0000000..ed39c35 --- /dev/null +++ b/src/bin/gen_exchange_rates.rs @@ -0,0 +1,114 @@ +use clap::{App, Arg}; +use serde::Deserialize; +use std::collections::HashMap; +use std::fs; + +#[derive(Deserialize)] +struct Kurs { + no: String, + effectiveDate: String, + mid: f64, +} + +#[derive(Deserialize)] +struct Tabela { + table: String, + currency: String, + code: String, + rates: Vec, +} + +#[derive(Debug, PartialEq, Eq, Hash)] +pub enum Exchange { + EUR(String), + PLN(String), + USD(String), +} + +fn main() { + let matches = App::new("gen_exchange_rates") + .version("1.0") + .author("Your Name ") + .about("Consumes NBP exchange rates and produces rust source code with it") + .arg( + Arg::with_name("input") + .short("i") + .long("input") + .value_name("FILE") + .help("Sets the input files") + .takes_value(true) + .multiple(true) + .required(true), + ) + .get_matches(); + + let file_paths = matches.values_of("input").unwrap().collect::>(); + let mut kursy_map: HashMap = HashMap::new(); + + for file in file_paths { + let file_content = + fs::read_to_string(&file).expect(&format!("Unable to read a file: {file}")); + + // Deserializacja JSON do wektora struktur Kurs + let table: Tabela = + serde_json::from_str(&file_content).expect("Unable to parse {file} to JSON format"); + + // Tworzenie HashMapy + let kursy = table.rates; + match table.code.as_str() { + "USD" => { + for kurs in kursy { + kursy_map.insert(Exchange::USD(kurs.effectiveDate), kurs.mid); + } + } + "EUR" => { + for kurs in kursy { + kursy_map.insert(Exchange::EUR(kurs.effectiveDate), kurs.mid); + } + } + "PLN" => { + for kurs in kursy { + kursy_map.insert(Exchange::PLN(kurs.effectiveDate), kurs.mid); + } + } + _ => { + panic!("Unsupported currency: {}", table.code); + } + } + } + + // Generowanie pliku .rs z hashmapÄ… + let mut output_content = String::new(); + output_content.push_str("use std::collections::HashMap;\n\n"); + output_content.push_str("use etradeTaxReturnHelper::Exchange;\n\n"); + + output_content.push_str("pub fn get_exchange_rates() -> HashMap {\n"); + output_content.push_str(" let mut exchange_rates = HashMap::new();\n"); + + for (exchange, kurs) in &kursy_map { + match exchange { + Exchange::USD(data) => { + output_content.push_str(&format!( + " exchange_rates.insert(Exchange::USD(\"{}\".to_string()), {});\n", + data, kurs + )); + } + Exchange::EUR(data) => { + output_content.push_str(&format!( + " exchange_rates.insert(Exchange::EUR(\"{}\".to_string()), {});\n", + data, kurs + )); + } + Exchange::PLN(data) => { + output_content.push_str(&format!( + " exchange_rates.insert(Exchange::PLN(\"{}\".to_string()), {});\n", + data, kurs + )); + } + } + } + + output_content.push_str(" exchange_rates\n"); + output_content.push_str("}\n"); + println!("{output_content}"); +} diff --git a/src/main.rs b/src/main.rs index 6842941..55ab1d8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,7 @@ use std::env; mod de; mod logging; +mod nbp; mod pl; mod us; diff --git a/src/nbp.rs b/src/nbp.rs new file mode 100644 index 0000000..f873315 --- /dev/null +++ b/src/nbp.rs @@ -0,0 +1,3513 @@ +use std::collections::HashMap; + +use etradeTaxReturnHelper::Exchange; + +pub fn get_exchange_rates() -> HashMap { + let mut exchange_rates = HashMap::new(); + exchange_rates.insert(Exchange::USD("2016-06-16".to_string()), 3.9469); + exchange_rates.insert(Exchange::USD("2021-04-07".to_string()), 3.8611); + exchange_rates.insert(Exchange::USD("2019-05-29".to_string()), 3.8554); + exchange_rates.insert(Exchange::USD("2014-04-17".to_string()), 3.0317); + exchange_rates.insert(Exchange::USD("2012-03-14".to_string()), 3.1699); + exchange_rates.insert(Exchange::USD("2019-07-22".to_string()), 3.7869); + exchange_rates.insert(Exchange::USD("2012-03-30".to_string()), 3.1191); + exchange_rates.insert(Exchange::USD("2015-03-11".to_string()), 3.9091); + exchange_rates.insert(Exchange::USD("2012-05-21".to_string()), 3.3928); + exchange_rates.insert(Exchange::USD("2012-12-14".to_string()), 3.1271); + exchange_rates.insert(Exchange::EUR("2023-09-25".to_string()), 4.5892); + exchange_rates.insert(Exchange::USD("2014-05-28".to_string()), 3.0598); + exchange_rates.insert(Exchange::USD("2016-08-30".to_string()), 3.8858); + exchange_rates.insert(Exchange::EUR("2023-02-10".to_string()), 4.7716); + exchange_rates.insert(Exchange::USD("2017-03-28".to_string()), 3.9169); + exchange_rates.insert(Exchange::EUR("2023-10-18".to_string()), 4.4488); + exchange_rates.insert(Exchange::USD("2016-01-26".to_string()), 4.1475); + exchange_rates.insert(Exchange::USD("2022-08-17".to_string()), 4.6119); + exchange_rates.insert(Exchange::USD("2018-03-12".to_string()), 3.4066); + exchange_rates.insert(Exchange::USD("2020-04-14".to_string()), 4.1666); + exchange_rates.insert(Exchange::USD("2012-07-27".to_string()), 3.3843); + exchange_rates.insert(Exchange::USD("2023-06-22".to_string()), 4.033); + exchange_rates.insert(Exchange::USD("2014-06-10".to_string()), 3.0303); + exchange_rates.insert(Exchange::USD("2018-04-20".to_string()), 3.3881); + exchange_rates.insert(Exchange::USD("2020-02-21".to_string()), 3.9623); + exchange_rates.insert(Exchange::USD("2023-02-28".to_string()), 4.4475); + exchange_rates.insert(Exchange::USD("2018-11-28".to_string()), 3.8114); + exchange_rates.insert(Exchange::USD("2012-01-31".to_string()), 3.2032); + exchange_rates.insert(Exchange::USD("2022-04-25".to_string()), 4.3188); + exchange_rates.insert(Exchange::USD("2021-06-14".to_string()), 3.7185); + exchange_rates.insert(Exchange::USD("2017-04-14".to_string()), 3.9911); + exchange_rates.insert(Exchange::USD("2012-04-12".to_string()), 3.1818); + exchange_rates.insert(Exchange::USD("2017-08-29".to_string()), 3.5372); + exchange_rates.insert(Exchange::EUR("2023-05-12".to_string()), 4.5444); + exchange_rates.insert(Exchange::USD("2023-05-11".to_string()), 4.1414); + exchange_rates.insert(Exchange::USD("2022-09-05".to_string()), 4.769); + exchange_rates.insert(Exchange::USD("2020-05-21".to_string()), 4.1346); + exchange_rates.insert(Exchange::USD("2016-07-19".to_string()), 3.9582); + exchange_rates.insert(Exchange::USD("2014-08-04".to_string()), 3.1114); + exchange_rates.insert(Exchange::USD("2021-09-17".to_string()), 3.8882); + exchange_rates.insert(Exchange::USD("2018-07-11".to_string()), 3.7); + exchange_rates.insert(Exchange::USD("2022-09-19".to_string()), 4.7255); + exchange_rates.insert(Exchange::USD("2017-07-04".to_string()), 3.7372); + exchange_rates.insert(Exchange::USD("2019-07-01".to_string()), 3.743); + exchange_rates.insert(Exchange::USD("2022-07-08".to_string()), 4.7417); + exchange_rates.insert(Exchange::USD("2022-11-07".to_string()), 4.6926); + exchange_rates.insert(Exchange::USD("2021-04-02".to_string()), 3.8986); + exchange_rates.insert(Exchange::USD("2019-09-30".to_string()), 4.0); + exchange_rates.insert(Exchange::USD("2023-10-18".to_string()), 4.2035); + exchange_rates.insert(Exchange::USD("2024-10-24".to_string()), 4.0168); + exchange_rates.insert(Exchange::USD("2017-07-28".to_string()), 3.6406); + exchange_rates.insert(Exchange::USD("2020-10-09".to_string()), 3.7913); + exchange_rates.insert(Exchange::USD("2014-07-22".to_string()), 3.0748); + exchange_rates.insert(Exchange::USD("2014-09-11".to_string()), 3.2435); + exchange_rates.insert(Exchange::USD("2023-05-24".to_string()), 4.1573); + exchange_rates.insert(Exchange::USD("2022-02-25".to_string()), 4.1683); + exchange_rates.insert(Exchange::USD("2017-01-16".to_string()), 4.1354); + exchange_rates.insert(Exchange::USD("2017-04-26".to_string()), 3.8757); + exchange_rates.insert(Exchange::USD("2024-02-02".to_string()), 3.9641); + exchange_rates.insert(Exchange::USD("2016-04-14".to_string()), 3.8174); + exchange_rates.insert(Exchange::USD("2015-02-25".to_string()), 3.6649); + exchange_rates.insert(Exchange::USD("2013-04-05".to_string()), 3.2358); + exchange_rates.insert(Exchange::USD("2012-05-18".to_string()), 3.4431); + exchange_rates.insert(Exchange::USD("2012-11-29".to_string()), 3.1556); + exchange_rates.insert(Exchange::USD("2021-04-16".to_string()), 3.7978); + exchange_rates.insert(Exchange::EUR("2023-05-26".to_string()), 4.5242); + exchange_rates.insert(Exchange::USD("2017-06-05".to_string()), 3.7066); + exchange_rates.insert(Exchange::USD("2015-10-15".to_string()), 3.6948); + exchange_rates.insert(Exchange::USD("2023-06-30".to_string()), 4.1066); + exchange_rates.insert(Exchange::USD("2020-05-08".to_string()), 4.2065); + exchange_rates.insert(Exchange::USD("2015-07-15".to_string()), 3.747); + exchange_rates.insert(Exchange::USD("2014-05-26".to_string()), 3.0466); + exchange_rates.insert(Exchange::USD("2014-01-16".to_string()), 3.0566); + exchange_rates.insert(Exchange::USD("2024-11-04".to_string()), 3.9869); + exchange_rates.insert(Exchange::USD("2021-10-21".to_string()), 3.9449); + exchange_rates.insert(Exchange::USD("2014-11-12".to_string()), 3.3966); + exchange_rates.insert(Exchange::USD("2024-03-26".to_string()), 3.9704); + exchange_rates.insert(Exchange::USD("2020-04-06".to_string()), 4.2257); + exchange_rates.insert(Exchange::USD("2023-05-12".to_string()), 4.1638); + exchange_rates.insert(Exchange::USD("2019-08-07".to_string()), 3.8597); + exchange_rates.insert(Exchange::USD("2015-03-23".to_string()), 3.818); + exchange_rates.insert(Exchange::USD("2020-07-02".to_string()), 3.9528); + exchange_rates.insert(Exchange::USD("2023-09-21".to_string()), 4.3365); + exchange_rates.insert(Exchange::EUR("2023-01-13".to_string()), 4.6915); + exchange_rates.insert(Exchange::USD("2017-06-06".to_string()), 3.725); + exchange_rates.insert(Exchange::USD("2024-07-19".to_string()), 3.9461); + exchange_rates.insert(Exchange::USD("2013-07-16".to_string()), 3.2735); + exchange_rates.insert(Exchange::USD("2015-09-02".to_string()), 3.7626); + exchange_rates.insert(Exchange::USD("2013-12-23".to_string()), 3.0443); + exchange_rates.insert(Exchange::EUR("2023-06-27".to_string()), 4.4286); + exchange_rates.insert(Exchange::USD("2023-08-14".to_string()), 4.0525); + exchange_rates.insert(Exchange::USD("2021-03-18".to_string()), 3.8705); + exchange_rates.insert(Exchange::USD("2020-05-04".to_string()), 4.1646); + exchange_rates.insert(Exchange::USD("2013-07-03".to_string()), 3.3516); + exchange_rates.insert(Exchange::USD("2022-05-13".to_string()), 4.4849); + exchange_rates.insert(Exchange::USD("2018-12-10".to_string()), 3.76); + exchange_rates.insert(Exchange::USD("2015-10-28".to_string()), 3.8826); + exchange_rates.insert(Exchange::USD("2012-07-20".to_string()), 3.3961); + exchange_rates.insert(Exchange::USD("2022-11-04".to_string()), 4.7975); + exchange_rates.insert(Exchange::USD("2021-11-24".to_string()), 4.1764); + exchange_rates.insert(Exchange::EUR("2023-07-21".to_string()), 4.4501); + exchange_rates.insert(Exchange::USD("2022-05-12".to_string()), 4.4863); + exchange_rates.insert(Exchange::USD("2018-09-24".to_string()), 3.662); + exchange_rates.insert(Exchange::USD("2018-02-15".to_string()), 3.3259); + exchange_rates.insert(Exchange::USD("2015-01-28".to_string()), 3.7276); + exchange_rates.insert(Exchange::USD("2016-08-09".to_string()), 3.8482); + exchange_rates.insert(Exchange::USD("2012-10-31".to_string()), 3.1806); + exchange_rates.insert(Exchange::USD("2016-05-31".to_string()), 3.9369); + exchange_rates.insert(Exchange::EUR("2023-06-07".to_string()), 4.479); + exchange_rates.insert(Exchange::USD("2023-04-12".to_string()), 4.2713); + exchange_rates.insert(Exchange::USD("2015-02-06".to_string()), 3.6395); + exchange_rates.insert(Exchange::USD("2014-01-15".to_string()), 3.0495); + exchange_rates.insert(Exchange::USD("2017-01-24".to_string()), 4.0708); + exchange_rates.insert(Exchange::EUR("2023-01-23".to_string()), 4.7186); + exchange_rates.insert(Exchange::EUR("2023-09-05".to_string()), 4.4764); + exchange_rates.insert(Exchange::USD("2018-01-22".to_string()), 3.4036); + exchange_rates.insert(Exchange::USD("2019-08-21".to_string()), 3.921); + exchange_rates.insert(Exchange::EUR("2023-09-22".to_string()), 4.6069); + exchange_rates.insert(Exchange::USD("2021-11-09".to_string()), 3.9622); + exchange_rates.insert(Exchange::USD("2020-02-25".to_string()), 3.9624); + exchange_rates.insert(Exchange::USD("2021-01-13".to_string()), 3.7142); + exchange_rates.insert(Exchange::USD("2020-10-16".to_string()), 3.8976); + exchange_rates.insert(Exchange::USD("2020-10-02".to_string()), 3.8366); + exchange_rates.insert(Exchange::USD("2017-09-29".to_string()), 3.6519); + exchange_rates.insert(Exchange::USD("2015-08-13".to_string()), 3.7625); + exchange_rates.insert(Exchange::USD("2013-09-04".to_string()), 3.2387); + exchange_rates.insert(Exchange::USD("2022-01-18".to_string()), 3.9734); + exchange_rates.insert(Exchange::USD("2014-06-13".to_string()), 3.0382); + exchange_rates.insert(Exchange::USD("2018-05-30".to_string()), 3.72); + exchange_rates.insert(Exchange::USD("2012-06-04".to_string()), 3.5431); + exchange_rates.insert(Exchange::USD("2021-07-15".to_string()), 3.8629); + exchange_rates.insert(Exchange::USD("2019-07-02".to_string()), 3.7593); + exchange_rates.insert(Exchange::USD("2024-03-05".to_string()), 3.9838); + exchange_rates.insert(Exchange::USD("2019-09-24".to_string()), 3.9838); + exchange_rates.insert(Exchange::USD("2018-01-17".to_string()), 3.4109); + exchange_rates.insert(Exchange::USD("2022-03-16".to_string()), 4.2828); + exchange_rates.insert(Exchange::USD("2017-05-02".to_string()), 3.8675); + exchange_rates.insert(Exchange::USD("2016-07-13".to_string()), 3.9809); + exchange_rates.insert(Exchange::USD("2021-12-15".to_string()), 4.0999); + exchange_rates.insert(Exchange::USD("2019-12-24".to_string()), 3.8487); + exchange_rates.insert(Exchange::USD("2012-07-19".to_string()), 3.39); + exchange_rates.insert(Exchange::EUR("2023-07-14".to_string()), 4.4486); + exchange_rates.insert(Exchange::EUR("2023-06-16".to_string()), 4.4583); + exchange_rates.insert(Exchange::USD("2015-06-08".to_string()), 3.7381); + exchange_rates.insert(Exchange::USD("2024-01-22".to_string()), 3.9972); + exchange_rates.insert(Exchange::USD("2015-02-09".to_string()), 3.6811); + exchange_rates.insert(Exchange::USD("2014-10-09".to_string()), 3.2776); + exchange_rates.insert(Exchange::USD("2019-01-09".to_string()), 3.7509); + exchange_rates.insert(Exchange::EUR("2023-12-05".to_string()), 4.3233); + exchange_rates.insert(Exchange::USD("2023-11-16".to_string()), 4.0415); + exchange_rates.insert(Exchange::USD("2015-05-04".to_string()), 3.632); + exchange_rates.insert(Exchange::USD("2013-11-19".to_string()), 3.0925); + exchange_rates.insert(Exchange::USD("2012-02-01".to_string()), 3.1913); + exchange_rates.insert(Exchange::USD("2020-04-08".to_string()), 4.1801); + exchange_rates.insert(Exchange::USD("2020-11-30".to_string()), 3.7364); + exchange_rates.insert(Exchange::USD("2018-04-12".to_string()), 3.3924); + exchange_rates.insert(Exchange::USD("2023-02-17".to_string()), 4.4888); + exchange_rates.insert(Exchange::USD("2014-03-31".to_string()), 3.0344); + exchange_rates.insert(Exchange::USD("2015-10-27".to_string()), 3.8669); + exchange_rates.insert(Exchange::USD("2022-12-20".to_string()), 4.4001); + exchange_rates.insert(Exchange::USD("2020-09-04".to_string()), 3.7533); + exchange_rates.insert(Exchange::USD("2014-04-16".to_string()), 3.0272); + exchange_rates.insert(Exchange::USD("2014-03-05".to_string()), 3.0477); + exchange_rates.insert(Exchange::USD("2012-12-20".to_string()), 3.0769); + exchange_rates.insert(Exchange::USD("2021-11-19".to_string()), 4.1457); + exchange_rates.insert(Exchange::USD("2018-09-14".to_string()), 3.6817); + exchange_rates.insert(Exchange::USD("2022-02-11".to_string()), 3.9665); + exchange_rates.insert(Exchange::USD("2014-05-06".to_string()), 3.0196); + exchange_rates.insert(Exchange::USD("2021-08-04".to_string()), 3.8366); + exchange_rates.insert(Exchange::EUR("2023-12-08".to_string()), 4.3303); + exchange_rates.insert(Exchange::USD("2020-08-12".to_string()), 3.7558); + exchange_rates.insert(Exchange::USD("2024-06-04".to_string()), 3.9448); + exchange_rates.insert(Exchange::USD("2020-06-08".to_string()), 3.9197); + exchange_rates.insert(Exchange::USD("2015-04-07".to_string()), 3.7435); + exchange_rates.insert(Exchange::EUR("2023-08-04".to_string()), 4.4438); + exchange_rates.insert(Exchange::USD("2020-07-10".to_string()), 3.9646); + exchange_rates.insert(Exchange::USD("2024-11-22".to_string()), 4.1752); + exchange_rates.insert(Exchange::USD("2019-06-11".to_string()), 3.7722); + exchange_rates.insert(Exchange::USD("2017-04-13".to_string()), 3.9886); + exchange_rates.insert(Exchange::USD("2014-04-30".to_string()), 3.044); + exchange_rates.insert(Exchange::USD("2024-01-17".to_string()), 4.0434); + exchange_rates.insert(Exchange::USD("2021-04-30".to_string()), 3.7746); + exchange_rates.insert(Exchange::USD("2020-07-16".to_string()), 3.9422); + exchange_rates.insert(Exchange::USD("2015-01-05".to_string()), 3.5975); + exchange_rates.insert(Exchange::USD("2020-03-26".to_string()), 4.1988); + exchange_rates.insert(Exchange::USD("2014-12-12".to_string()), 3.3639); + exchange_rates.insert(Exchange::USD("2012-06-22".to_string()), 3.4025); + exchange_rates.insert(Exchange::USD("2012-09-24".to_string()), 3.218); + exchange_rates.insert(Exchange::USD("2017-08-07".to_string()), 3.5995); + exchange_rates.insert(Exchange::USD("2016-05-19".to_string()), 3.9161); + exchange_rates.insert(Exchange::USD("2023-05-05".to_string()), 4.1612); + exchange_rates.insert(Exchange::USD("2024-01-19".to_string()), 4.0289); + exchange_rates.insert(Exchange::USD("2021-03-31".to_string()), 3.9676); + exchange_rates.insert(Exchange::USD("2021-01-25".to_string()), 3.7402); + exchange_rates.insert(Exchange::USD("2020-03-20".to_string()), 4.24); + exchange_rates.insert(Exchange::USD("2019-01-23".to_string()), 3.7747); + exchange_rates.insert(Exchange::USD("2022-10-20".to_string()), 4.9024); + exchange_rates.insert(Exchange::USD("2018-06-26".to_string()), 3.7151); + exchange_rates.insert(Exchange::USD("2019-04-08".to_string()), 3.8188); + exchange_rates.insert(Exchange::USD("2019-05-21".to_string()), 3.8625); + exchange_rates.insert(Exchange::USD("2018-06-12".to_string()), 3.6271); + exchange_rates.insert(Exchange::USD("2017-08-11".to_string()), 3.6449); + exchange_rates.insert(Exchange::USD("2017-10-04".to_string()), 3.6597); + exchange_rates.insert(Exchange::USD("2017-10-27".to_string()), 3.6568); + exchange_rates.insert(Exchange::USD("2015-05-28".to_string()), 3.7858); + exchange_rates.insert(Exchange::USD("2015-09-22".to_string()), 3.7438); + exchange_rates.insert(Exchange::USD("2018-03-20".to_string()), 3.4296); + exchange_rates.insert(Exchange::USD("2016-01-21".to_string()), 4.1303); + exchange_rates.insert(Exchange::USD("2022-01-25".to_string()), 4.0593); + exchange_rates.insert(Exchange::USD("2017-05-25".to_string()), 3.7177); + exchange_rates.insert(Exchange::USD("2019-06-03".to_string()), 3.8292); + exchange_rates.insert(Exchange::USD("2014-01-13".to_string()), 3.045); + exchange_rates.insert(Exchange::USD("2016-06-29".to_string()), 3.9905); + exchange_rates.insert(Exchange::USD("2023-07-05".to_string()), 4.0869); + exchange_rates.insert(Exchange::USD("2018-04-03".to_string()), 3.4177); + exchange_rates.insert(Exchange::USD("2014-07-15".to_string()), 3.0454); + exchange_rates.insert(Exchange::USD("2013-03-01".to_string()), 3.1769); + exchange_rates.insert(Exchange::USD("2013-05-08".to_string()), 3.1609); + exchange_rates.insert(Exchange::USD("2024-09-03".to_string()), 3.8701); + exchange_rates.insert(Exchange::USD("2023-01-30".to_string()), 4.3258); + exchange_rates.insert(Exchange::USD("2020-04-16".to_string()), 4.1631); + exchange_rates.insert(Exchange::USD("2019-01-04".to_string()), 3.772); + exchange_rates.insert(Exchange::USD("2018-10-17".to_string()), 3.7123); + exchange_rates.insert(Exchange::USD("2015-04-22".to_string()), 3.7125); + exchange_rates.insert(Exchange::USD("2014-08-06".to_string()), 3.1377); + exchange_rates.insert(Exchange::USD("2019-01-15".to_string()), 3.7542); + exchange_rates.insert(Exchange::USD("2017-01-12".to_string()), 4.1103); + exchange_rates.insert(Exchange::USD("2017-07-25".to_string()), 3.6519); + exchange_rates.insert(Exchange::USD("2024-04-03".to_string()), 3.9843); + exchange_rates.insert(Exchange::USD("2024-08-28".to_string()), 3.8539); + exchange_rates.insert(Exchange::USD("2020-02-13".to_string()), 3.9104); + exchange_rates.insert(Exchange::USD("2019-09-26".to_string()), 4.0092); + exchange_rates.insert(Exchange::USD("2021-12-08".to_string()), 4.071); + exchange_rates.insert(Exchange::USD("2018-04-19".to_string()), 3.3693); + exchange_rates.insert(Exchange::USD("2013-06-28".to_string()), 3.3175); + exchange_rates.insert(Exchange::USD("2013-07-17".to_string()), 3.241); + exchange_rates.insert(Exchange::USD("2023-04-28".to_string()), 4.1753); + exchange_rates.insert(Exchange::USD("2012-03-29".to_string()), 3.1234); + exchange_rates.insert(Exchange::USD("2012-05-30".to_string()), 3.5139); + exchange_rates.insert(Exchange::EUR("2023-01-11".to_string()), 4.6871); + exchange_rates.insert(Exchange::USD("2020-03-06".to_string()), 3.8231); + exchange_rates.insert(Exchange::USD("2015-12-29".to_string()), 3.8659); + exchange_rates.insert(Exchange::USD("2020-10-19".to_string()), 3.8761); + exchange_rates.insert(Exchange::USD("2020-07-15".to_string()), 3.9117); + exchange_rates.insert(Exchange::USD("2018-01-15".to_string()), 3.401); + exchange_rates.insert(Exchange::USD("2022-04-22".to_string()), 4.2935); + exchange_rates.insert(Exchange::USD("2022-08-16".to_string()), 4.6282); + exchange_rates.insert(Exchange::USD("2018-06-29".to_string()), 3.744); + exchange_rates.insert(Exchange::USD("2024-06-05".to_string()), 3.9607); + exchange_rates.insert(Exchange::USD("2019-01-21".to_string()), 3.7751); + exchange_rates.insert(Exchange::USD("2024-08-19".to_string()), 3.8682); + exchange_rates.insert(Exchange::USD("2024-03-04".to_string()), 3.982); + exchange_rates.insert(Exchange::USD("2020-11-04".to_string()), 3.8996); + exchange_rates.insert(Exchange::USD("2022-11-28".to_string()), 4.4827); + exchange_rates.insert(Exchange::USD("2015-06-05".to_string()), 3.6949); + exchange_rates.insert(Exchange::USD("2021-09-16".to_string()), 3.8847); + exchange_rates.insert(Exchange::USD("2023-01-19".to_string()), 4.3469); + exchange_rates.insert(Exchange::USD("2022-07-15".to_string()), 4.7966); + exchange_rates.insert(Exchange::USD("2015-10-09".to_string()), 3.7242); + exchange_rates.insert(Exchange::USD("2014-12-31".to_string()), 3.5072); + exchange_rates.insert(Exchange::USD("2013-05-28".to_string()), 3.2465); + exchange_rates.insert(Exchange::USD("2014-02-27".to_string()), 3.0655); + exchange_rates.insert(Exchange::USD("2013-11-20".to_string()), 3.0947); + exchange_rates.insert(Exchange::USD("2024-02-13".to_string()), 4.0136); + exchange_rates.insert(Exchange::USD("2014-09-25".to_string()), 3.2823); + exchange_rates.insert(Exchange::USD("2013-05-17".to_string()), 3.252); + exchange_rates.insert(Exchange::USD("2014-02-19".to_string()), 3.0286); + exchange_rates.insert(Exchange::USD("2013-09-27".to_string()), 3.1328); + exchange_rates.insert(Exchange::USD("2021-07-07".to_string()), 3.8225); + exchange_rates.insert(Exchange::USD("2021-01-27".to_string()), 3.7507); + exchange_rates.insert(Exchange::USD("2017-03-23".to_string()), 3.9687); + exchange_rates.insert(Exchange::USD("2014-11-25".to_string()), 3.3706); + exchange_rates.insert(Exchange::USD("2013-01-29".to_string()), 3.1229); + exchange_rates.insert(Exchange::USD("2012-03-22".to_string()), 3.168); + exchange_rates.insert(Exchange::USD("2018-03-02".to_string()), 3.42); + exchange_rates.insert(Exchange::USD("2019-06-05".to_string()), 3.7929); + exchange_rates.insert(Exchange::USD("2012-08-01".to_string()), 3.342); + exchange_rates.insert(Exchange::USD("2020-09-08".to_string()), 3.7652); + exchange_rates.insert(Exchange::USD("2015-01-30".to_string()), 3.7204); + exchange_rates.insert(Exchange::USD("2019-07-29".to_string()), 3.8453); + exchange_rates.insert(Exchange::USD("2014-03-24".to_string()), 3.0483); + exchange_rates.insert(Exchange::USD("2015-11-03".to_string()), 3.8678); + exchange_rates.insert(Exchange::USD("2015-01-15".to_string()), 3.6588); + exchange_rates.insert(Exchange::USD("2013-10-31".to_string()), 3.0507); + exchange_rates.insert(Exchange::USD("2012-01-23".to_string()), 3.3353); + exchange_rates.insert(Exchange::USD("2012-02-29".to_string()), 3.073); + exchange_rates.insert(Exchange::USD("2017-07-24".to_string()), 3.6395); + exchange_rates.insert(Exchange::USD("2020-12-17".to_string()), 3.6254); + exchange_rates.insert(Exchange::USD("2013-02-25".to_string()), 3.1412); + exchange_rates.insert(Exchange::USD("2014-07-28".to_string()), 3.086); + exchange_rates.insert(Exchange::USD("2013-10-01".to_string()), 3.117); + exchange_rates.insert(Exchange::USD("2024-06-18".to_string()), 4.0549); + exchange_rates.insert(Exchange::USD("2016-07-22".to_string()), 3.9504); + exchange_rates.insert(Exchange::USD("2016-03-24".to_string()), 3.824); + exchange_rates.insert(Exchange::USD("2023-08-10".to_string()), 4.0521); + exchange_rates.insert(Exchange::USD("2017-10-10".to_string()), 3.6468); + exchange_rates.insert(Exchange::USD("2015-12-15".to_string()), 3.9523); + exchange_rates.insert(Exchange::USD("2016-10-11".to_string()), 3.8487); + exchange_rates.insert(Exchange::USD("2013-07-30".to_string()), 3.1798); + exchange_rates.insert(Exchange::USD("2024-11-06".to_string()), 4.0595); + exchange_rates.insert(Exchange::USD("2021-10-28".to_string()), 3.9938); + exchange_rates.insert(Exchange::USD("2020-09-23".to_string()), 3.8399); + exchange_rates.insert(Exchange::USD("2017-11-08".to_string()), 3.6595); + exchange_rates.insert(Exchange::USD("2024-01-12".to_string()), 3.9746); + exchange_rates.insert(Exchange::USD("2012-10-15".to_string()), 3.1565); + exchange_rates.insert(Exchange::USD("2020-03-19".to_string()), 4.2421); + exchange_rates.insert(Exchange::USD("2015-08-31".to_string()), 3.778); + exchange_rates.insert(Exchange::USD("2014-10-24".to_string()), 3.3387); + exchange_rates.insert(Exchange::USD("2013-11-26".to_string()), 3.0945); + exchange_rates.insert(Exchange::USD("2022-09-02".to_string()), 4.7276); + exchange_rates.insert(Exchange::USD("2021-09-02".to_string()), 3.8044); + exchange_rates.insert(Exchange::USD("2019-10-03".to_string()), 3.9652); + exchange_rates.insert(Exchange::USD("2012-10-03".to_string()), 3.1896); + exchange_rates.insert(Exchange::USD("2019-07-03".to_string()), 3.7596); + exchange_rates.insert(Exchange::USD("2014-02-18".to_string()), 3.03); + exchange_rates.insert(Exchange::USD("2013-03-27".to_string()), 3.2635); + exchange_rates.insert(Exchange::USD("2017-06-28".to_string()), 3.7249); + exchange_rates.insert(Exchange::USD("2016-12-14".to_string()), 4.1768); + exchange_rates.insert(Exchange::USD("2015-05-05".to_string()), 3.6205); + exchange_rates.insert(Exchange::USD("2017-08-16".to_string()), 3.6435); + exchange_rates.insert(Exchange::USD("2018-05-23".to_string()), 3.6693); + exchange_rates.insert(Exchange::USD("2021-02-09".to_string()), 3.6972); + exchange_rates.insert(Exchange::USD("2018-01-26".to_string()), 3.3299); + exchange_rates.insert(Exchange::USD("2018-08-22".to_string()), 3.7104); + exchange_rates.insert(Exchange::USD("2018-10-01".to_string()), 3.6867); + exchange_rates.insert(Exchange::USD("2017-08-09".to_string()), 3.6342); + exchange_rates.insert(Exchange::USD("2014-10-22".to_string()), 3.3275); + exchange_rates.insert(Exchange::USD("2013-05-22".to_string()), 3.2322); + exchange_rates.insert(Exchange::USD("2012-06-25".to_string()), 3.4105); + exchange_rates.insert(Exchange::USD("2012-12-07".to_string()), 3.193); + exchange_rates.insert(Exchange::USD("2021-02-10".to_string()), 3.6973); + exchange_rates.insert(Exchange::USD("2019-09-09".to_string()), 3.931); + exchange_rates.insert(Exchange::USD("2022-10-06".to_string()), 4.8989); + exchange_rates.insert(Exchange::USD("2020-06-15".to_string()), 3.9413); + exchange_rates.insert(Exchange::USD("2018-05-28".to_string()), 3.6849); + exchange_rates.insert(Exchange::USD("2017-07-07".to_string()), 3.7068); + exchange_rates.insert(Exchange::USD("2017-07-27".to_string()), 3.6366); + exchange_rates.insert(Exchange::USD("2020-03-12".to_string()), 3.8642); + exchange_rates.insert(Exchange::USD("2019-04-09".to_string()), 3.8003); + exchange_rates.insert(Exchange::USD("2024-09-25".to_string()), 3.8117); + exchange_rates.insert(Exchange::USD("2020-01-07".to_string()), 3.7861); + exchange_rates.insert(Exchange::USD("2018-10-30".to_string()), 3.8062); + exchange_rates.insert(Exchange::USD("2015-12-24".to_string()), 3.8695); + exchange_rates.insert(Exchange::USD("2021-03-17".to_string()), 3.8676); + exchange_rates.insert(Exchange::USD("2023-03-14".to_string()), 4.3793); + exchange_rates.insert(Exchange::USD("2018-03-28".to_string()), 3.3956); + exchange_rates.insert(Exchange::USD("2014-10-14".to_string()), 3.3095); + exchange_rates.insert(Exchange::USD("2013-10-11".to_string()), 3.085); + exchange_rates.insert(Exchange::USD("2023-06-16".to_string()), 4.0715); + exchange_rates.insert(Exchange::USD("2015-07-06".to_string()), 3.796); + exchange_rates.insert(Exchange::EUR("2023-08-11".to_string()), 4.4547); + exchange_rates.insert(Exchange::USD("2022-10-18".to_string()), 4.8929); + exchange_rates.insert(Exchange::USD("2023-03-30".to_string()), 4.3043); + exchange_rates.insert(Exchange::USD("2024-08-30".to_string()), 3.8644); + exchange_rates.insert(Exchange::USD("2021-10-01".to_string()), 3.9678); + exchange_rates.insert(Exchange::USD("2020-10-26".to_string()), 3.8759); + exchange_rates.insert(Exchange::EUR("2023-08-29".to_string()), 4.469); + exchange_rates.insert(Exchange::USD("2021-11-02".to_string()), 3.9772); + exchange_rates.insert(Exchange::USD("2021-06-17".to_string()), 3.7931); + exchange_rates.insert(Exchange::USD("2020-03-05".to_string()), 3.8479); + exchange_rates.insert(Exchange::USD("2019-02-21".to_string()), 3.8247); + exchange_rates.insert(Exchange::USD("2019-03-29".to_string()), 3.8365); + exchange_rates.insert(Exchange::USD("2018-05-29".to_string()), 3.7299); + exchange_rates.insert(Exchange::USD("2021-02-19".to_string()), 3.6997); + exchange_rates.insert(Exchange::USD("2021-09-01".to_string()), 3.8238); + exchange_rates.insert(Exchange::USD("2020-08-17".to_string()), 3.7076); + exchange_rates.insert(Exchange::USD("2017-12-05".to_string()), 3.5454); + exchange_rates.insert(Exchange::USD("2023-06-09".to_string()), 4.1545); + exchange_rates.insert(Exchange::USD("2018-08-03".to_string()), 3.6926); + exchange_rates.insert(Exchange::USD("2015-05-26".to_string()), 3.7898); + exchange_rates.insert(Exchange::USD("2016-07-15".to_string()), 3.9598); + exchange_rates.insert(Exchange::USD("2013-08-06".to_string()), 3.1744); + exchange_rates.insert(Exchange::USD("2012-08-31".to_string()), 3.3353); + exchange_rates.insert(Exchange::USD("2018-10-16".to_string()), 3.7036); + exchange_rates.insert(Exchange::USD("2017-03-31".to_string()), 3.9455); + exchange_rates.insert(Exchange::USD("2023-10-27".to_string()), 4.2267); + exchange_rates.insert(Exchange::USD("2022-08-01".to_string()), 4.629); + exchange_rates.insert(Exchange::USD("2019-07-19".to_string()), 3.7855); + exchange_rates.insert(Exchange::USD("2021-05-05".to_string()), 3.8136); + exchange_rates.insert(Exchange::USD("2020-09-02".to_string()), 3.7191); + exchange_rates.insert(Exchange::USD("2020-11-24".to_string()), 3.7625); + exchange_rates.insert(Exchange::USD("2017-03-20".to_string()), 3.9821); + exchange_rates.insert(Exchange::USD("2020-03-17".to_string()), 4.046); + exchange_rates.insert(Exchange::USD("2018-01-09".to_string()), 3.4992); + exchange_rates.insert(Exchange::USD("2022-12-07".to_string()), 4.4834); + exchange_rates.insert(Exchange::USD("2018-07-04".to_string()), 3.7759); + exchange_rates.insert(Exchange::USD("2017-08-30".to_string()), 3.5678); + exchange_rates.insert(Exchange::USD("2015-03-02".to_string()), 3.7053); + exchange_rates.insert(Exchange::USD("2014-10-10".to_string()), 3.2985); + exchange_rates.insert(Exchange::USD("2021-01-07".to_string()), 3.6656); + exchange_rates.insert(Exchange::USD("2021-05-04".to_string()), 3.794); + exchange_rates.insert(Exchange::USD("2018-05-15".to_string()), 3.5931); + exchange_rates.insert(Exchange::USD("2017-02-15".to_string()), 4.0752); + exchange_rates.insert(Exchange::USD("2014-04-03".to_string()), 3.033); + exchange_rates.insert(Exchange::USD("2015-01-02".to_string()), 3.5725); + exchange_rates.insert(Exchange::USD("2018-02-08".to_string()), 3.4119); + exchange_rates.insert(Exchange::USD("2018-11-15".to_string()), 3.8074); + exchange_rates.insert(Exchange::USD("2014-06-02".to_string()), 3.0413); + exchange_rates.insert(Exchange::USD("2016-06-24".to_string()), 3.9994); + exchange_rates.insert(Exchange::USD("2013-07-22".to_string()), 3.2142); + exchange_rates.insert(Exchange::USD("2021-05-25".to_string()), 3.6549); + exchange_rates.insert(Exchange::USD("2020-01-28".to_string()), 3.8844); + exchange_rates.insert(Exchange::USD("2017-10-26".to_string()), 3.5939); + exchange_rates.insert(Exchange::USD("2023-05-09".to_string()), 4.1609); + exchange_rates.insert(Exchange::USD("2016-02-02".to_string()), 4.0333); + exchange_rates.insert(Exchange::USD("2013-09-26".to_string()), 3.1277); + exchange_rates.insert(Exchange::USD("2013-11-28".to_string()), 3.0872); + exchange_rates.insert(Exchange::USD("2013-12-30".to_string()), 3.018); + exchange_rates.insert(Exchange::USD("2020-10-30".to_string()), 3.9563); + exchange_rates.insert(Exchange::USD("2012-02-08".to_string()), 3.1461); + exchange_rates.insert(Exchange::USD("2024-08-05".to_string()), 3.9331); + exchange_rates.insert(Exchange::USD("2023-06-01".to_string()), 4.2399); + exchange_rates.insert(Exchange::USD("2016-09-30".to_string()), 3.8558); + exchange_rates.insert(Exchange::USD("2024-07-16".to_string()), 3.9083); + exchange_rates.insert(Exchange::USD("2017-10-16".to_string()), 3.6004); + exchange_rates.insert(Exchange::USD("2012-06-14".to_string()), 3.442); + exchange_rates.insert(Exchange::USD("2015-11-24".to_string()), 4.0021); + exchange_rates.insert(Exchange::EUR("2023-02-08".to_string()), 4.7402); + exchange_rates.insert(Exchange::USD("2022-08-04".to_string()), 4.634); + exchange_rates.insert(Exchange::USD("2020-02-05".to_string()), 3.8654); + exchange_rates.insert(Exchange::USD("2023-05-04".to_string()), 4.1547); + exchange_rates.insert(Exchange::USD("2020-06-01".to_string()), 3.968); + exchange_rates.insert(Exchange::USD("2022-07-26".to_string()), 4.6222); + exchange_rates.insert(Exchange::USD("2022-04-29".to_string()), 4.4072); + exchange_rates.insert(Exchange::USD("2019-03-11".to_string()), 3.8199); + exchange_rates.insert(Exchange::USD("2023-05-26".to_string()), 4.2156); + exchange_rates.insert(Exchange::USD("2023-11-07".to_string()), 4.1667); + exchange_rates.insert(Exchange::USD("2024-05-14".to_string()), 3.9701); + exchange_rates.insert(Exchange::USD("2018-10-26".to_string()), 3.7899); + exchange_rates.insert(Exchange::USD("2021-08-02".to_string()), 3.8377); + exchange_rates.insert(Exchange::USD("2018-03-26".to_string()), 3.4145); + exchange_rates.insert(Exchange::USD("2023-03-08".to_string()), 4.4626); + exchange_rates.insert(Exchange::USD("2022-02-07".to_string()), 3.9872); + exchange_rates.insert(Exchange::USD("2017-06-07".to_string()), 3.7241); + exchange_rates.insert(Exchange::USD("2019-07-11".to_string()), 3.7859); + exchange_rates.insert(Exchange::USD("2016-01-15".to_string()), 4.0411); + exchange_rates.insert(Exchange::USD("2024-01-10".to_string()), 3.9656); + exchange_rates.insert(Exchange::USD("2020-02-26".to_string()), 3.9573); + exchange_rates.insert(Exchange::USD("2024-01-18".to_string()), 4.0437); + exchange_rates.insert(Exchange::USD("2016-03-08".to_string()), 3.9333); + exchange_rates.insert(Exchange::USD("2015-09-21".to_string()), 3.708); + exchange_rates.insert(Exchange::USD("2013-09-17".to_string()), 3.1552); + exchange_rates.insert(Exchange::USD("2022-12-27".to_string()), 4.3671); + exchange_rates.insert(Exchange::USD("2012-10-04".to_string()), 3.1646); + exchange_rates.insert(Exchange::USD("2020-09-11".to_string()), 3.7534); + exchange_rates.insert(Exchange::USD("2021-10-25".to_string()), 3.9502); + exchange_rates.insert(Exchange::USD("2014-03-10".to_string()), 3.0266); + exchange_rates.insert(Exchange::USD("2014-07-03".to_string()), 3.0418); + exchange_rates.insert(Exchange::USD("2012-03-26".to_string()), 3.1348); + exchange_rates.insert(Exchange::USD("2023-03-31".to_string()), 4.2934); + exchange_rates.insert(Exchange::USD("2024-10-17".to_string()), 3.9786); + exchange_rates.insert(Exchange::USD("2018-10-22".to_string()), 3.7273); + exchange_rates.insert(Exchange::USD("2017-05-11".to_string()), 3.8744); + exchange_rates.insert(Exchange::USD("2015-07-21".to_string()), 3.7875); + exchange_rates.insert(Exchange::USD("2013-04-03".to_string()), 3.2693); + exchange_rates.insert(Exchange::USD("2023-12-05".to_string()), 3.991); + exchange_rates.insert(Exchange::USD("2018-03-01".to_string()), 3.4356); + exchange_rates.insert(Exchange::USD("2016-02-23".to_string()), 3.9671); + exchange_rates.insert(Exchange::USD("2014-05-19".to_string()), 3.0558); + exchange_rates.insert(Exchange::USD("2015-04-15".to_string()), 3.7875); + exchange_rates.insert(Exchange::USD("2014-03-07".to_string()), 3.0185); + exchange_rates.insert(Exchange::USD("2012-12-31".to_string()), 3.0996); + exchange_rates.insert(Exchange::USD("2024-01-03".to_string()), 3.9909); + exchange_rates.insert(Exchange::USD("2018-08-08".to_string()), 3.6782); + exchange_rates.insert(Exchange::USD("2024-04-05".to_string()), 3.9571); + exchange_rates.insert(Exchange::USD("2019-09-20".to_string()), 3.9319); + exchange_rates.insert(Exchange::USD("2018-01-05".to_string()), 3.4488); + exchange_rates.insert(Exchange::USD("2016-01-12".to_string()), 4.017); + exchange_rates.insert(Exchange::USD("2015-03-10".to_string()), 3.8345); + exchange_rates.insert(Exchange::USD("2021-05-21".to_string()), 3.6778); + exchange_rates.insert(Exchange::USD("2020-03-13".to_string()), 3.9067); + exchange_rates.insert(Exchange::USD("2019-12-13".to_string()), 3.8234); + exchange_rates.insert(Exchange::USD("2017-03-27".to_string()), 3.9259); + exchange_rates.insert(Exchange::USD("2018-06-14".to_string()), 3.6155); + exchange_rates.insert(Exchange::USD("2017-05-17".to_string()), 3.7808); + exchange_rates.insert(Exchange::USD("2020-12-21".to_string()), 3.7082); + exchange_rates.insert(Exchange::USD("2017-08-10".to_string()), 3.6432); + exchange_rates.insert(Exchange::USD("2012-11-23".to_string()), 3.1945); + exchange_rates.insert(Exchange::USD("2012-12-17".to_string()), 3.1035); + exchange_rates.insert(Exchange::USD("2018-04-25".to_string()), 3.4548); + exchange_rates.insert(Exchange::USD("2015-12-09".to_string()), 3.9705); + exchange_rates.insert(Exchange::USD("2013-03-21".to_string()), 3.2387); + exchange_rates.insert(Exchange::USD("2021-10-14".to_string()), 3.9403); + exchange_rates.insert(Exchange::EUR("2023-03-20".to_string()), 4.7109); + exchange_rates.insert(Exchange::USD("2018-05-10".to_string()), 3.5773); + exchange_rates.insert(Exchange::USD("2020-01-16".to_string()), 3.7968); + exchange_rates.insert(Exchange::USD("2017-03-16".to_string()), 4.03); + exchange_rates.insert(Exchange::USD("2022-12-21".to_string()), 4.3947); + exchange_rates.insert(Exchange::USD("2021-05-26".to_string()), 3.6691); + exchange_rates.insert(Exchange::USD("2012-04-06".to_string()), 3.1814); + exchange_rates.insert(Exchange::USD("2012-12-12".to_string()), 3.1459); + exchange_rates.insert(Exchange::USD("2019-03-20".to_string()), 3.7767); + exchange_rates.insert(Exchange::USD("2021-09-30".to_string()), 3.9925); + exchange_rates.insert(Exchange::EUR("2023-11-22".to_string()), 4.3804); + exchange_rates.insert(Exchange::USD("2020-04-03".to_string()), 4.2396); + exchange_rates.insert(Exchange::USD("2024-03-25".to_string()), 3.9833); + exchange_rates.insert(Exchange::USD("2019-03-19".to_string()), 3.7823); + exchange_rates.insert(Exchange::USD("2017-08-23".to_string()), 3.6274); + exchange_rates.insert(Exchange::USD("2016-03-15".to_string()), 3.8649); + exchange_rates.insert(Exchange::USD("2019-04-01".to_string()), 3.8267); + exchange_rates.insert(Exchange::USD("2024-04-26".to_string()), 4.0245); + exchange_rates.insert(Exchange::USD("2021-09-22".to_string()), 3.946); + exchange_rates.insert(Exchange::USD("2018-04-26".to_string()), 3.4827); + exchange_rates.insert(Exchange::USD("2021-10-11".to_string()), 3.9862); + exchange_rates.insert(Exchange::USD("2017-08-21".to_string()), 3.6408); + exchange_rates.insert(Exchange::USD("2016-06-21".to_string()), 3.8741); + exchange_rates.insert(Exchange::USD("2021-12-10".to_string()), 4.0887); + exchange_rates.insert(Exchange::USD("2016-10-10".to_string()), 3.8307); + exchange_rates.insert(Exchange::USD("2017-03-06".to_string()), 4.0663); + exchange_rates.insert(Exchange::USD("2015-05-15".to_string()), 3.5719); + exchange_rates.insert(Exchange::USD("2013-06-17".to_string()), 3.1719); + exchange_rates.insert(Exchange::USD("2024-06-12".to_string()), 4.0342); + exchange_rates.insert(Exchange::USD("2021-08-11".to_string()), 3.9148); + exchange_rates.insert(Exchange::USD("2021-11-03".to_string()), 3.9681); + exchange_rates.insert(Exchange::USD("2020-01-15".to_string()), 3.7992); + exchange_rates.insert(Exchange::USD("2022-07-05".to_string()), 4.5947); + exchange_rates.insert(Exchange::USD("2012-01-13".to_string()), 3.4323); + exchange_rates.insert(Exchange::USD("2021-03-29".to_string()), 3.957); + exchange_rates.insert(Exchange::USD("2012-11-27".to_string()), 3.1634); + exchange_rates.insert(Exchange::EUR("2023-03-03".to_string()), 4.7046); + exchange_rates.insert(Exchange::USD("2013-12-13".to_string()), 3.0432); + exchange_rates.insert(Exchange::USD("2022-01-11".to_string()), 4.0106); + exchange_rates.insert(Exchange::USD("2012-06-11".to_string()), 3.4072); + exchange_rates.insert(Exchange::EUR("2023-05-30".to_string()), 4.522); + exchange_rates.insert(Exchange::USD("2019-10-09".to_string()), 3.9382); + exchange_rates.insert(Exchange::USD("2018-03-09".to_string()), 3.4132); + exchange_rates.insert(Exchange::EUR("2023-04-05".to_string()), 4.6803); + exchange_rates.insert(Exchange::USD("2021-11-17".to_string()), 4.1204); + exchange_rates.insert(Exchange::EUR("2023-09-21".to_string()), 4.621); + exchange_rates.insert(Exchange::USD("2017-12-11".to_string()), 3.5633); + exchange_rates.insert(Exchange::USD("2020-12-10".to_string()), 3.6574); + exchange_rates.insert(Exchange::USD("2015-09-29".to_string()), 3.7799); + exchange_rates.insert(Exchange::USD("2013-06-24".to_string()), 3.3137); + exchange_rates.insert(Exchange::USD("2016-03-10".to_string()), 3.932); + exchange_rates.insert(Exchange::USD("2015-06-12".to_string()), 3.7094); + exchange_rates.insert(Exchange::USD("2020-08-25".to_string()), 3.7144); + exchange_rates.insert(Exchange::USD("2016-02-01".to_string()), 4.0638); + exchange_rates.insert(Exchange::USD("2022-04-06".to_string()), 4.2606); + exchange_rates.insert(Exchange::USD("2015-04-09".to_string()), 3.7414); + exchange_rates.insert(Exchange::USD("2020-07-07".to_string()), 3.9689); + exchange_rates.insert(Exchange::USD("2019-01-25".to_string()), 3.7893); + exchange_rates.insert(Exchange::USD("2015-09-01".to_string()), 3.7503); + exchange_rates.insert(Exchange::USD("2016-10-05".to_string()), 3.8307); + exchange_rates.insert(Exchange::USD("2021-07-13".to_string()), 3.8533); + exchange_rates.insert(Exchange::USD("2019-04-19".to_string()), 3.8051); + exchange_rates.insert(Exchange::USD("2023-07-19".to_string()), 3.9612); + exchange_rates.insert(Exchange::USD("2014-01-20".to_string()), 3.068); + exchange_rates.insert(Exchange::USD("2021-04-23".to_string()), 3.7855); + exchange_rates.insert(Exchange::USD("2019-04-25".to_string()), 3.8537); + exchange_rates.insert(Exchange::USD("2016-02-22".to_string()), 3.9391); + exchange_rates.insert(Exchange::USD("2012-07-11".to_string()), 3.4007); + exchange_rates.insert(Exchange::USD("2024-10-30".to_string()), 3.9989); + exchange_rates.insert(Exchange::USD("2014-05-15".to_string()), 3.0589); + exchange_rates.insert(Exchange::USD("2012-09-13".to_string()), 3.1852); + exchange_rates.insert(Exchange::EUR("2023-01-10".to_string()), 4.6981); + exchange_rates.insert(Exchange::EUR("2023-01-16".to_string()), 4.7004); + exchange_rates.insert(Exchange::USD("2020-04-28".to_string()), 4.184); + exchange_rates.insert(Exchange::USD("2013-02-19".to_string()), 3.136); + exchange_rates.insert(Exchange::USD("2016-09-09".to_string()), 3.8385); + exchange_rates.insert(Exchange::EUR("2023-04-19".to_string()), 4.6278); + exchange_rates.insert(Exchange::USD("2018-12-21".to_string()), 3.7528); + exchange_rates.insert(Exchange::USD("2020-12-22".to_string()), 3.6921); + exchange_rates.insert(Exchange::USD("2020-06-19".to_string()), 3.9741); + exchange_rates.insert(Exchange::USD("2019-03-22".to_string()), 3.7948); + exchange_rates.insert(Exchange::USD("2012-04-16".to_string()), 3.2289); + exchange_rates.insert(Exchange::USD("2023-10-05".to_string()), 4.3768); + exchange_rates.insert(Exchange::USD("2012-12-04".to_string()), 3.1575); + exchange_rates.insert(Exchange::USD("2014-07-08".to_string()), 3.0441); + exchange_rates.insert(Exchange::USD("2022-09-13".to_string()), 4.6363); + exchange_rates.insert(Exchange::USD("2020-05-07".to_string()), 4.2162); + exchange_rates.insert(Exchange::USD("2016-02-04".to_string()), 3.9492); + exchange_rates.insert(Exchange::USD("2013-04-23".to_string()), 3.1811); + exchange_rates.insert(Exchange::USD("2018-12-31".to_string()), 3.7597); + exchange_rates.insert(Exchange::USD("2020-11-19".to_string()), 3.7872); + exchange_rates.insert(Exchange::USD("2020-02-14".to_string()), 3.9098); + exchange_rates.insert(Exchange::USD("2018-04-04".to_string()), 3.4224); + exchange_rates.insert(Exchange::USD("2014-07-07".to_string()), 3.0497); + exchange_rates.insert(Exchange::USD("2020-03-25".to_string()), 4.222); + exchange_rates.insert(Exchange::USD("2016-04-15".to_string()), 3.8176); + exchange_rates.insert(Exchange::USD("2015-10-14".to_string()), 3.7129); + exchange_rates.insert(Exchange::USD("2012-10-19".to_string()), 3.1499); + exchange_rates.insert(Exchange::USD("2014-07-11".to_string()), 3.0426); + exchange_rates.insert(Exchange::USD("2019-12-03".to_string()), 3.8706); + exchange_rates.insert(Exchange::USD("2024-04-17".to_string()), 4.0741); + exchange_rates.insert(Exchange::USD("2023-01-20".to_string()), 4.352); + exchange_rates.insert(Exchange::USD("2018-03-27".to_string()), 3.3921); + exchange_rates.insert(Exchange::USD("2017-07-06".to_string()), 3.7351); + exchange_rates.insert(Exchange::USD("2024-09-09".to_string()), 3.8758); + exchange_rates.insert(Exchange::USD("2016-03-07".to_string()), 3.9515); + exchange_rates.insert(Exchange::USD("2014-11-26".to_string()), 3.3546); + exchange_rates.insert(Exchange::USD("2020-09-09".to_string()), 3.7871); + exchange_rates.insert(Exchange::USD("2024-10-02".to_string()), 3.8792); + exchange_rates.insert(Exchange::USD("2017-05-05".to_string()), 3.849); + exchange_rates.insert(Exchange::USD("2013-12-31".to_string()), 3.012); + exchange_rates.insert(Exchange::USD("2024-09-16".to_string()), 3.8438); + exchange_rates.insert(Exchange::USD("2016-01-19".to_string()), 4.0917); + exchange_rates.insert(Exchange::USD("2012-01-17".to_string()), 3.4215); + exchange_rates.insert(Exchange::USD("2013-07-24".to_string()), 3.18); + exchange_rates.insert(Exchange::USD("2012-07-16".to_string()), 3.4353); + exchange_rates.insert(Exchange::EUR("2023-03-14".to_string()), 4.6909); + exchange_rates.insert(Exchange::USD("2021-11-22".to_string()), 4.1855); + exchange_rates.insert(Exchange::USD("2016-03-18".to_string()), 3.7882); + exchange_rates.insert(Exchange::USD("2018-09-10".to_string()), 3.7283); + exchange_rates.insert(Exchange::USD("2014-10-02".to_string()), 3.3039); + exchange_rates.insert(Exchange::USD("2020-03-24".to_string()), 4.2421); + exchange_rates.insert(Exchange::USD("2014-05-22".to_string()), 3.0525); + exchange_rates.insert(Exchange::USD("2016-01-13".to_string()), 4.0068); + exchange_rates.insert(Exchange::USD("2018-12-19".to_string()), 3.7619); + exchange_rates.insert(Exchange::EUR("2023-05-11".to_string()), 4.5259); + exchange_rates.insert(Exchange::USD("2015-03-03".to_string()), 3.719); + exchange_rates.insert(Exchange::USD("2013-02-06".to_string()), 3.0868); + exchange_rates.insert(Exchange::USD("2012-05-08".to_string()), 3.2238); + exchange_rates.insert(Exchange::USD("2015-12-17".to_string()), 3.9646); + exchange_rates.insert(Exchange::USD("2019-03-27".to_string()), 3.8113); + exchange_rates.insert(Exchange::USD("2012-12-06".to_string()), 3.1538); + exchange_rates.insert(Exchange::USD("2017-05-23".to_string()), 3.7354); + exchange_rates.insert(Exchange::USD("2021-05-18".to_string()), 3.705); + exchange_rates.insert(Exchange::EUR("2023-02-09".to_string()), 4.7363); + exchange_rates.insert(Exchange::USD("2023-02-01".to_string()), 4.3254); + exchange_rates.insert(Exchange::USD("2024-04-12".to_string()), 3.9983); + exchange_rates.insert(Exchange::USD("2017-11-28".to_string()), 3.5382); + exchange_rates.insert(Exchange::USD("2020-03-11".to_string()), 3.8186); + exchange_rates.insert(Exchange::USD("2021-08-17".to_string()), 3.8797); + exchange_rates.insert(Exchange::USD("2014-01-08".to_string()), 3.0717); + exchange_rates.insert(Exchange::USD("2022-06-15".to_string()), 4.4455); + exchange_rates.insert(Exchange::USD("2014-06-12".to_string()), 3.0374); + exchange_rates.insert(Exchange::USD("2022-06-08".to_string()), 4.2904); + exchange_rates.insert(Exchange::USD("2020-08-11".to_string()), 3.739); + exchange_rates.insert(Exchange::USD("2023-09-20".to_string()), 4.3501); + exchange_rates.insert(Exchange::USD("2023-06-07".to_string()), 4.1887); + exchange_rates.insert(Exchange::USD("2021-06-25".to_string()), 3.7749); + exchange_rates.insert(Exchange::USD("2019-08-05".to_string()), 3.8739); + exchange_rates.insert(Exchange::USD("2019-09-12".to_string()), 3.9362); + exchange_rates.insert(Exchange::USD("2019-12-12".to_string()), 3.8505); + exchange_rates.insert(Exchange::USD("2020-12-18".to_string()), 3.6322); + exchange_rates.insert(Exchange::USD("2023-12-21".to_string()), 3.9645); + exchange_rates.insert(Exchange::USD("2016-03-31".to_string()), 3.759); + exchange_rates.insert(Exchange::USD("2024-06-25".to_string()), 3.9975); + exchange_rates.insert(Exchange::USD("2021-06-11".to_string()), 3.6759); + exchange_rates.insert(Exchange::USD("2023-09-13".to_string()), 4.3225); + exchange_rates.insert(Exchange::USD("2022-01-26".to_string()), 4.0684); + exchange_rates.insert(Exchange::USD("2021-05-07".to_string()), 3.7861); + exchange_rates.insert(Exchange::USD("2016-11-02".to_string()), 3.8954); + exchange_rates.insert(Exchange::USD("2020-01-27".to_string()), 3.8725); + exchange_rates.insert(Exchange::USD("2019-09-18".to_string()), 3.9322); + exchange_rates.insert(Exchange::USD("2023-12-08".to_string()), 4.0181); + exchange_rates.insert(Exchange::USD("2018-08-27".to_string()), 3.682); + exchange_rates.insert(Exchange::USD("2014-01-30".to_string()), 3.1166); + exchange_rates.insert(Exchange::USD("2023-07-25".to_string()), 4.008); + exchange_rates.insert(Exchange::USD("2024-09-18".to_string()), 3.8358); + exchange_rates.insert(Exchange::USD("2021-05-13".to_string()), 3.7675); + exchange_rates.insert(Exchange::USD("2024-03-14".to_string()), 3.9183); + exchange_rates.insert(Exchange::USD("2022-09-20".to_string()), 4.7118); + exchange_rates.insert(Exchange::USD("2019-11-26".to_string()), 3.9039); + exchange_rates.insert(Exchange::USD("2018-11-27".to_string()), 3.7948); + exchange_rates.insert(Exchange::USD("2024-03-13".to_string()), 3.9269); + exchange_rates.insert(Exchange::USD("2023-11-02".to_string()), 4.1963); + exchange_rates.insert(Exchange::USD("2018-02-19".to_string()), 3.3411); + exchange_rates.insert(Exchange::USD("2015-01-21".to_string()), 3.7358); + exchange_rates.insert(Exchange::USD("2014-09-19".to_string()), 3.2507); + exchange_rates.insert(Exchange::USD("2022-12-12".to_string()), 4.4424); + exchange_rates.insert(Exchange::USD("2019-04-24".to_string()), 3.8229); + exchange_rates.insert(Exchange::USD("2016-05-23".to_string()), 3.9513); + exchange_rates.insert(Exchange::USD("2017-09-04".to_string()), 3.5718); + exchange_rates.insert(Exchange::USD("2015-02-03".to_string()), 3.6886); + exchange_rates.insert(Exchange::USD("2018-05-22".to_string()), 3.6252); + exchange_rates.insert(Exchange::USD("2015-08-18".to_string()), 3.7578); + exchange_rates.insert(Exchange::USD("2021-11-26".to_string()), 4.1754); + exchange_rates.insert(Exchange::USD("2020-07-06".to_string()), 3.9588); + exchange_rates.insert(Exchange::USD("2016-10-17".to_string()), 3.9265); + exchange_rates.insert(Exchange::USD("2017-05-15".to_string()), 3.8463); + exchange_rates.insert(Exchange::USD("2020-11-02".to_string()), 3.9557); + exchange_rates.insert(Exchange::USD("2019-09-03".to_string()), 3.9882); + exchange_rates.insert(Exchange::USD("2016-06-22".to_string()), 3.8945); + exchange_rates.insert(Exchange::USD("2014-05-30".to_string()), 3.0435); + exchange_rates.insert(Exchange::USD("2013-01-18".to_string()), 3.0925); + exchange_rates.insert(Exchange::USD("2024-10-03".to_string()), 3.8951); + exchange_rates.insert(Exchange::USD("2022-05-09".to_string()), 4.4784); + exchange_rates.insert(Exchange::USD("2019-02-13".to_string()), 3.8261); + exchange_rates.insert(Exchange::USD("2019-08-14".to_string()), 3.889); + exchange_rates.insert(Exchange::USD("2013-05-15".to_string()), 3.234); + exchange_rates.insert(Exchange::USD("2019-10-29".to_string()), 3.8598); + exchange_rates.insert(Exchange::USD("2012-02-02".to_string()), 3.1955); + exchange_rates.insert(Exchange::USD("2018-12-28".to_string()), 3.755); + exchange_rates.insert(Exchange::USD("2012-02-20".to_string()), 3.1598); + exchange_rates.insert(Exchange::USD("2012-04-03".to_string()), 3.099); + exchange_rates.insert(Exchange::USD("2012-10-29".to_string()), 3.2145); + exchange_rates.insert(Exchange::USD("2020-01-29".to_string()), 3.8871); + exchange_rates.insert(Exchange::USD("2018-09-25".to_string()), 3.6511); + exchange_rates.insert(Exchange::USD("2019-05-22".to_string()), 3.862); + exchange_rates.insert(Exchange::USD("2014-02-07".to_string()), 3.0857); + exchange_rates.insert(Exchange::USD("2022-12-30".to_string()), 4.4018); + exchange_rates.insert(Exchange::USD("2022-12-01".to_string()), 4.4911); + exchange_rates.insert(Exchange::USD("2015-05-27".to_string()), 3.7906); + exchange_rates.insert(Exchange::USD("2014-06-25".to_string()), 3.0451); + exchange_rates.insert(Exchange::USD("2024-06-21".to_string()), 4.0527); + exchange_rates.insert(Exchange::USD("2020-11-16".to_string()), 3.7782); + exchange_rates.insert(Exchange::USD("2019-05-15".to_string()), 3.8457); + exchange_rates.insert(Exchange::USD("2019-11-19".to_string()), 3.8786); + exchange_rates.insert(Exchange::USD("2023-07-31".to_string()), 3.9995); + exchange_rates.insert(Exchange::USD("2021-08-23".to_string()), 3.9107); + exchange_rates.insert(Exchange::USD("2023-01-13".to_string()), 4.3272); + exchange_rates.insert(Exchange::USD("2021-02-25".to_string()), 3.6943); + exchange_rates.insert(Exchange::USD("2021-08-20".to_string()), 3.9301); + exchange_rates.insert(Exchange::USD("2017-12-08".to_string()), 3.5808); + exchange_rates.insert(Exchange::USD("2015-06-25".to_string()), 3.7305); + exchange_rates.insert(Exchange::USD("2024-02-01".to_string()), 4.0047); + exchange_rates.insert(Exchange::USD("2013-04-16".to_string()), 3.1559); + exchange_rates.insert(Exchange::USD("2013-06-06".to_string()), 3.2564); + exchange_rates.insert(Exchange::USD("2024-10-08".to_string()), 3.9299); + exchange_rates.insert(Exchange::USD("2014-12-03".to_string()), 3.373); + exchange_rates.insert(Exchange::USD("2023-11-20".to_string()), 3.9938); + exchange_rates.insert(Exchange::USD("2013-03-06".to_string()), 3.166); + exchange_rates.insert(Exchange::USD("2013-12-05".to_string()), 3.087); + exchange_rates.insert(Exchange::USD("2013-12-18".to_string()), 3.0393); + exchange_rates.insert(Exchange::USD("2014-03-11".to_string()), 3.0449); + exchange_rates.insert(Exchange::USD("2012-11-21".to_string()), 3.2287); + exchange_rates.insert(Exchange::USD("2022-01-10".to_string()), 4.0064); + exchange_rates.insert(Exchange::USD("2012-08-22".to_string()), 3.2639); + exchange_rates.insert(Exchange::EUR("2023-04-06".to_string()), 4.6902); + exchange_rates.insert(Exchange::EUR("2023-01-12".to_string()), 4.6888); + exchange_rates.insert(Exchange::EUR("2023-05-17".to_string()), 4.4945); + exchange_rates.insert(Exchange::EUR("2023-05-29".to_string()), 4.5294); + exchange_rates.insert(Exchange::USD("2016-09-15".to_string()), 3.8587); + exchange_rates.insert(Exchange::USD("2019-09-23".to_string()), 3.9983); + exchange_rates.insert(Exchange::USD("2024-07-22".to_string()), 3.9307); + exchange_rates.insert(Exchange::USD("2019-05-06".to_string()), 3.8313); + exchange_rates.insert(Exchange::USD("2013-12-09".to_string()), 3.0534); + exchange_rates.insert(Exchange::USD("2020-10-12".to_string()), 3.7927); + exchange_rates.insert(Exchange::EUR("2023-10-09".to_string()), 4.5793); + exchange_rates.insert(Exchange::EUR("2023-10-26".to_string()), 4.4708); + exchange_rates.insert(Exchange::USD("2020-07-22".to_string()), 3.8534); + exchange_rates.insert(Exchange::USD("2016-03-03".to_string()), 3.9805); + exchange_rates.insert(Exchange::EUR("2023-05-05".to_string()), 4.5885); + exchange_rates.insert(Exchange::USD("2015-08-27".to_string()), 3.745); + exchange_rates.insert(Exchange::USD("2013-01-10".to_string()), 3.1121); + exchange_rates.insert(Exchange::EUR("2023-06-20".to_string()), 4.4386); + exchange_rates.insert(Exchange::USD("2022-02-09".to_string()), 3.953); + exchange_rates.insert(Exchange::USD("2013-02-27".to_string()), 3.1841); + exchange_rates.insert(Exchange::EUR("2023-11-07".to_string()), 4.4513); + exchange_rates.insert(Exchange::EUR("2023-11-16".to_string()), 4.3854); + exchange_rates.insert(Exchange::USD("2012-05-02".to_string()), 3.1593); + exchange_rates.insert(Exchange::USD("2016-03-14".to_string()), 3.847); + exchange_rates.insert(Exchange::USD("2024-10-23".to_string()), 4.0176); + exchange_rates.insert(Exchange::USD("2017-06-12".to_string()), 3.735); + exchange_rates.insert(Exchange::USD("2015-10-23".to_string()), 3.82); + exchange_rates.insert(Exchange::USD("2020-04-30".to_string()), 4.1729); + exchange_rates.insert(Exchange::USD("2015-10-26".to_string()), 3.8645); + exchange_rates.insert(Exchange::USD("2016-07-01".to_string()), 3.9548); + exchange_rates.insert(Exchange::USD("2012-07-13".to_string()), 3.4463); + exchange_rates.insert(Exchange::USD("2019-10-04".to_string()), 3.9469); + exchange_rates.insert(Exchange::USD("2014-09-22".to_string()), 3.257); + exchange_rates.insert(Exchange::USD("2017-04-06".to_string()), 3.9792); + exchange_rates.insert(Exchange::USD("2019-06-12".to_string()), 3.763); + exchange_rates.insert(Exchange::USD("2022-04-13".to_string()), 4.2872); + exchange_rates.insert(Exchange::USD("2019-09-05".to_string()), 3.933); + exchange_rates.insert(Exchange::EUR("2023-07-19".to_string()), 4.4492); + exchange_rates.insert(Exchange::USD("2023-10-30".to_string()), 4.204); + exchange_rates.insert(Exchange::USD("2017-05-31".to_string()), 3.7354); + exchange_rates.insert(Exchange::USD("2015-08-04".to_string()), 3.7792); + exchange_rates.insert(Exchange::USD("2012-01-04".to_string()), 3.432); + exchange_rates.insert(Exchange::EUR("2023-08-22".to_string()), 4.4648); + exchange_rates.insert(Exchange::USD("2017-11-24".to_string()), 3.5486); + exchange_rates.insert(Exchange::USD("2012-05-10".to_string()), 3.2735); + exchange_rates.insert(Exchange::USD("2017-08-01".to_string()), 3.5991); + exchange_rates.insert(Exchange::USD("2014-10-15".to_string()), 3.3262); + exchange_rates.insert(Exchange::USD("2019-02-22".to_string()), 3.8242); + exchange_rates.insert(Exchange::USD("2016-09-07".to_string()), 3.8515); + exchange_rates.insert(Exchange::USD("2023-10-12".to_string()), 4.2659); + exchange_rates.insert(Exchange::USD("2021-06-23".to_string()), 3.7878); + exchange_rates.insert(Exchange::USD("2020-07-29".to_string()), 3.761); + exchange_rates.insert(Exchange::USD("2021-08-09".to_string()), 3.8885); + exchange_rates.insert(Exchange::USD("2018-06-04".to_string()), 3.6665); + exchange_rates.insert(Exchange::USD("2017-01-26".to_string()), 4.059); + exchange_rates.insert(Exchange::USD("2018-11-30".to_string()), 3.7731); + exchange_rates.insert(Exchange::USD("2014-04-07".to_string()), 3.0446); + exchange_rates.insert(Exchange::USD("2024-03-20".to_string()), 3.9895); + exchange_rates.insert(Exchange::USD("2019-01-16".to_string()), 3.7619); + exchange_rates.insert(Exchange::USD("2019-07-10".to_string()), 3.8066); + exchange_rates.insert(Exchange::USD("2021-06-21".to_string()), 3.8214); + exchange_rates.insert(Exchange::USD("2015-05-12".to_string()), 3.6447); + exchange_rates.insert(Exchange::USD("2019-11-15".to_string()), 3.8848); + exchange_rates.insert(Exchange::USD("2013-11-06".to_string()), 3.0896); + exchange_rates.insert(Exchange::USD("2013-12-03".to_string()), 3.0973); + exchange_rates.insert(Exchange::USD("2013-07-23".to_string()), 3.2001); + exchange_rates.insert(Exchange::EUR("2023-08-31".to_string()), 4.4684); + exchange_rates.insert(Exchange::USD("2021-06-09".to_string()), 3.6545); + exchange_rates.insert(Exchange::USD("2017-10-18".to_string()), 3.6006); + exchange_rates.insert(Exchange::USD("2016-10-06".to_string()), 3.8405); + exchange_rates.insert(Exchange::USD("2023-03-22".to_string()), 4.3467); + exchange_rates.insert(Exchange::USD("2023-09-15".to_string()), 4.3418); + exchange_rates.insert(Exchange::USD("2023-12-27".to_string()), 3.9178); + exchange_rates.insert(Exchange::USD("2015-05-06".to_string()), 3.6116); + exchange_rates.insert(Exchange::USD("2015-05-20".to_string()), 3.6538); + exchange_rates.insert(Exchange::USD("2014-10-31".to_string()), 3.3459); + exchange_rates.insert(Exchange::USD("2018-05-04".to_string()), 3.5754); + exchange_rates.insert(Exchange::USD("2024-03-11".to_string()), 3.9262); + exchange_rates.insert(Exchange::USD("2013-05-10".to_string()), 3.1861); + exchange_rates.insert(Exchange::USD("2023-10-10".to_string()), 4.2985); + exchange_rates.insert(Exchange::USD("2023-08-17".to_string()), 4.1094); + exchange_rates.insert(Exchange::USD("2021-11-23".to_string()), 4.1893); + exchange_rates.insert(Exchange::USD("2020-04-10".to_string()), 4.1566); + exchange_rates.insert(Exchange::USD("2019-12-17".to_string()), 3.8211); + exchange_rates.insert(Exchange::USD("2022-07-28".to_string()), 4.6952); + exchange_rates.insert(Exchange::USD("2017-03-29".to_string()), 3.9265); + exchange_rates.insert(Exchange::USD("2014-09-24".to_string()), 3.2525); + exchange_rates.insert(Exchange::USD("2024-07-01".to_string()), 3.9915); + exchange_rates.insert(Exchange::USD("2014-04-10".to_string()), 3.0092); + exchange_rates.insert(Exchange::USD("2014-12-08".to_string()), 3.3978); + exchange_rates.insert(Exchange::USD("2012-01-16".to_string()), 3.4798); + exchange_rates.insert(Exchange::USD("2012-11-06".to_string()), 3.2223); + exchange_rates.insert(Exchange::EUR("2023-03-07".to_string()), 4.6871); + exchange_rates.insert(Exchange::USD("2019-03-26".to_string()), 3.7969); + exchange_rates.insert(Exchange::USD("2014-02-06".to_string()), 3.095); + exchange_rates.insert(Exchange::USD("2023-01-26".to_string()), 4.3354); + exchange_rates.insert(Exchange::USD("2013-05-02".to_string()), 3.1492); + exchange_rates.insert(Exchange::EUR("2023-10-06".to_string()), 4.5998); + exchange_rates.insert(Exchange::USD("2017-09-26".to_string()), 3.6234); + exchange_rates.insert(Exchange::USD("2014-04-29".to_string()), 3.0318); + exchange_rates.insert(Exchange::USD("2024-09-06".to_string()), 3.8489); + exchange_rates.insert(Exchange::USD("2023-11-09".to_string()), 4.1513); + exchange_rates.insert(Exchange::USD("2024-11-13".to_string()), 4.0853); + exchange_rates.insert(Exchange::USD("2021-09-08".to_string()), 3.8213); + exchange_rates.insert(Exchange::USD("2022-07-27".to_string()), 4.7142); + exchange_rates.insert(Exchange::USD("2021-12-31".to_string()), 4.06); + exchange_rates.insert(Exchange::USD("2020-04-07".to_string()), 4.1717); + exchange_rates.insert(Exchange::USD("2020-04-21".to_string()), 4.1779); + exchange_rates.insert(Exchange::USD("2022-09-15".to_string()), 4.7202); + exchange_rates.insert(Exchange::USD("2021-02-02".to_string()), 3.7311); + exchange_rates.insert(Exchange::USD("2020-02-06".to_string()), 3.8672); + exchange_rates.insert(Exchange::USD("2019-10-18".to_string()), 3.8503); + exchange_rates.insert(Exchange::USD("2019-11-28".to_string()), 3.9252); + exchange_rates.insert(Exchange::USD("2020-01-17".to_string()), 3.8053); + exchange_rates.insert(Exchange::USD("2020-07-21".to_string()), 3.8812); + exchange_rates.insert(Exchange::USD("2018-09-19".to_string()), 3.6685); + exchange_rates.insert(Exchange::USD("2023-07-28".to_string()), 4.0377); + exchange_rates.insert(Exchange::USD("2020-08-20".to_string()), 3.7164); + exchange_rates.insert(Exchange::USD("2020-07-13".to_string()), 3.9564); + exchange_rates.insert(Exchange::USD("2018-05-09".to_string()), 3.609); + exchange_rates.insert(Exchange::USD("2017-05-30".to_string()), 3.7471); + exchange_rates.insert(Exchange::USD("2017-06-08".to_string()), 3.74); + exchange_rates.insert(Exchange::USD("2022-01-17".to_string()), 3.9567); + exchange_rates.insert(Exchange::USD("2023-08-29".to_string()), 4.1341); + exchange_rates.insert(Exchange::USD("2021-08-27".to_string()), 3.8978); + exchange_rates.insert(Exchange::USD("2017-12-13".to_string()), 3.588); + exchange_rates.insert(Exchange::USD("2016-01-04".to_string()), 3.9281); + exchange_rates.insert(Exchange::USD("2016-09-08".to_string()), 3.8255); + exchange_rates.insert(Exchange::USD("2016-11-25".to_string()), 4.1628); + exchange_rates.insert(Exchange::USD("2017-06-26".to_string()), 3.7653); + exchange_rates.insert(Exchange::USD("2014-04-25".to_string()), 3.0378); + exchange_rates.insert(Exchange::USD("2014-08-29".to_string()), 3.1965); + exchange_rates.insert(Exchange::USD("2020-06-17".to_string()), 3.9532); + exchange_rates.insert(Exchange::USD("2014-11-28".to_string()), 3.3605); + exchange_rates.insert(Exchange::USD("2013-06-26".to_string()), 3.3239); + exchange_rates.insert(Exchange::USD("2015-03-16".to_string()), 3.926); + exchange_rates.insert(Exchange::USD("2013-07-26".to_string()), 3.1831); + exchange_rates.insert(Exchange::USD("2012-02-10".to_string()), 3.1703); + exchange_rates.insert(Exchange::USD("2012-09-19".to_string()), 3.1631); + exchange_rates.insert(Exchange::EUR("2023-07-18".to_string()), 4.4331); + exchange_rates.insert(Exchange::USD("2024-01-11".to_string()), 3.968); + exchange_rates.insert(Exchange::USD("2023-12-28".to_string()), 3.899); + exchange_rates.insert(Exchange::USD("2021-08-25".to_string()), 3.8869); + exchange_rates.insert(Exchange::USD("2015-02-16".to_string()), 3.6665); + exchange_rates.insert(Exchange::EUR("2023-10-31".to_string()), 4.4475); + exchange_rates.insert(Exchange::USD("2015-11-16".to_string()), 3.9581); + exchange_rates.insert(Exchange::USD("2024-05-27".to_string()), 3.9196); + exchange_rates.insert(Exchange::USD("2023-07-06".to_string()), 4.1191); + exchange_rates.insert(Exchange::USD("2017-04-11".to_string()), 4.0009); + exchange_rates.insert(Exchange::USD("2014-01-03".to_string()), 3.0517); + exchange_rates.insert(Exchange::USD("2022-10-14".to_string()), 4.9569); + exchange_rates.insert(Exchange::USD("2022-06-14".to_string()), 4.4478); + exchange_rates.insert(Exchange::USD("2020-07-17".to_string()), 3.9263); + exchange_rates.insert(Exchange::USD("2017-04-03".to_string()), 3.9664); + exchange_rates.insert(Exchange::USD("2021-10-29".to_string()), 3.9664); + exchange_rates.insert(Exchange::USD("2015-01-27".to_string()), 3.7348); + exchange_rates.insert(Exchange::USD("2013-01-22".to_string()), 3.1341); + exchange_rates.insert(Exchange::EUR("2023-03-09".to_string()), 4.6836); + exchange_rates.insert(Exchange::USD("2017-01-17".to_string()), 4.0989); + exchange_rates.insert(Exchange::USD("2012-02-23".to_string()), 3.138); + exchange_rates.insert(Exchange::USD("2016-07-28".to_string()), 3.9389); + exchange_rates.insert(Exchange::USD("2019-07-16".to_string()), 3.7867); + exchange_rates.insert(Exchange::USD("2023-02-21".to_string()), 4.4524); + exchange_rates.insert(Exchange::USD("2019-07-04".to_string()), 3.7618); + exchange_rates.insert(Exchange::USD("2017-05-19".to_string()), 3.7735); + exchange_rates.insert(Exchange::USD("2012-05-22".to_string()), 3.3811); + exchange_rates.insert(Exchange::EUR("2023-12-11".to_string()), 4.3366); + exchange_rates.insert(Exchange::USD("2012-03-08".to_string()), 3.122); + exchange_rates.insert(Exchange::USD("2023-03-24".to_string()), 4.3742); + exchange_rates.insert(Exchange::USD("2022-01-19".to_string()), 3.993); + exchange_rates.insert(Exchange::USD("2022-05-27".to_string()), 4.2966); + exchange_rates.insert(Exchange::USD("2018-04-18".to_string()), 3.3721); + exchange_rates.insert(Exchange::USD("2014-05-21".to_string()), 3.054); + exchange_rates.insert(Exchange::USD("2014-07-10".to_string()), 3.0323); + exchange_rates.insert(Exchange::EUR("2023-02-27".to_string()), 4.7162); + exchange_rates.insert(Exchange::USD("2014-05-16".to_string()), 3.0567); + exchange_rates.insert(Exchange::USD("2017-03-22".to_string()), 3.9731); + exchange_rates.insert(Exchange::USD("2023-09-07".to_string()), 4.289); + exchange_rates.insert(Exchange::USD("2021-02-11".to_string()), 3.7117); + exchange_rates.insert(Exchange::USD("2020-07-09".to_string()), 3.9486); + exchange_rates.insert(Exchange::USD("2018-06-15".to_string()), 3.6922); + exchange_rates.insert(Exchange::USD("2024-08-23".to_string()), 3.8453); + exchange_rates.insert(Exchange::USD("2018-09-27".to_string()), 3.6557); + exchange_rates.insert(Exchange::USD("2020-12-29".to_string()), 3.6778); + exchange_rates.insert(Exchange::USD("2016-01-05".to_string()), 4.0073); + exchange_rates.insert(Exchange::USD("2023-12-22".to_string()), 3.9338); + exchange_rates.insert(Exchange::USD("2016-06-02".to_string()), 3.9204); + exchange_rates.insert(Exchange::USD("2014-03-12".to_string()), 3.0508); + exchange_rates.insert(Exchange::USD("2020-07-31".to_string()), 3.7166); + exchange_rates.insert(Exchange::USD("2018-12-14".to_string()), 3.8095); + exchange_rates.insert(Exchange::USD("2017-01-19".to_string()), 4.1014); + exchange_rates.insert(Exchange::USD("2021-04-13".to_string()), 3.8342); + exchange_rates.insert(Exchange::USD("2021-07-29".to_string()), 3.8617); + exchange_rates.insert(Exchange::USD("2018-02-26".to_string()), 3.3799); + exchange_rates.insert(Exchange::USD("2017-06-23".to_string()), 3.7824); + exchange_rates.insert(Exchange::USD("2016-10-31".to_string()), 3.9488); + exchange_rates.insert(Exchange::USD("2015-06-02".to_string()), 3.7676); + exchange_rates.insert(Exchange::USD("2014-09-09".to_string()), 3.2605); + exchange_rates.insert(Exchange::USD("2013-02-28".to_string()), 3.1679); + exchange_rates.insert(Exchange::USD("2013-08-05".to_string()), 3.1771); + exchange_rates.insert(Exchange::USD("2023-08-08".to_string()), 4.0396); + exchange_rates.insert(Exchange::USD("2020-02-17".to_string()), 3.9189); + exchange_rates.insert(Exchange::USD("2013-08-01".to_string()), 3.1961); + exchange_rates.insert(Exchange::USD("2023-02-06".to_string()), 4.3833); + exchange_rates.insert(Exchange::USD("2013-12-04".to_string()), 3.0916); + exchange_rates.insert(Exchange::USD("2022-03-11".to_string()), 4.3694); + exchange_rates.insert(Exchange::USD("2015-11-05".to_string()), 3.8925); + exchange_rates.insert(Exchange::USD("2016-11-16".to_string()), 4.138); + exchange_rates.insert(Exchange::USD("2020-07-03".to_string()), 3.9764); + exchange_rates.insert(Exchange::USD("2018-06-22".to_string()), 3.6977); + exchange_rates.insert(Exchange::USD("2013-07-08".to_string()), 3.3576); + exchange_rates.insert(Exchange::USD("2012-05-07".to_string()), 3.2279); + exchange_rates.insert(Exchange::USD("2012-12-19".to_string()), 3.069); + exchange_rates.insert(Exchange::USD("2023-12-13".to_string()), 4.0149); + exchange_rates.insert(Exchange::EUR("2023-01-05".to_string()), 4.6709); + exchange_rates.insert(Exchange::EUR("2023-05-15".to_string()), 4.5096); + exchange_rates.insert(Exchange::EUR("2023-08-02".to_string()), 4.4484); + exchange_rates.insert(Exchange::USD("2023-03-09".to_string()), 4.4356); + exchange_rates.insert(Exchange::USD("2024-05-08".to_string()), 4.0202); + exchange_rates.insert(Exchange::USD("2022-03-24".to_string()), 4.331); + exchange_rates.insert(Exchange::USD("2022-05-04".to_string()), 4.4456); + exchange_rates.insert(Exchange::USD("2024-03-27".to_string()), 3.9857); + exchange_rates.insert(Exchange::USD("2022-05-10".to_string()), 4.4223); + exchange_rates.insert(Exchange::USD("2021-07-09".to_string()), 3.8427); + exchange_rates.insert(Exchange::USD("2015-04-13".to_string()), 3.8088); + exchange_rates.insert(Exchange::USD("2023-02-09".to_string()), 4.4003); + exchange_rates.insert(Exchange::USD("2020-09-22".to_string()), 3.8359); + exchange_rates.insert(Exchange::USD("2017-11-09".to_string()), 3.6466); + exchange_rates.insert(Exchange::USD("2023-11-14".to_string()), 4.121); + exchange_rates.insert(Exchange::USD("2014-11-06".to_string()), 3.3769); + exchange_rates.insert(Exchange::USD("2013-06-12".to_string()), 3.2002); + exchange_rates.insert(Exchange::USD("2013-11-21".to_string()), 3.1227); + exchange_rates.insert(Exchange::USD("2023-03-07".to_string()), 4.3981); + exchange_rates.insert(Exchange::EUR("2023-02-02".to_string()), 4.7079); + exchange_rates.insert(Exchange::USD("2020-08-03".to_string()), 3.7499); + exchange_rates.insert(Exchange::USD("2019-02-07".to_string()), 3.7919); + exchange_rates.insert(Exchange::EUR("2023-02-03".to_string()), 4.692); + exchange_rates.insert(Exchange::USD("2019-11-08".to_string()), 3.8625); + exchange_rates.insert(Exchange::EUR("2023-09-26".to_string()), 4.6077); + exchange_rates.insert(Exchange::USD("2019-06-28".to_string()), 3.7336); + exchange_rates.insert(Exchange::USD("2012-11-12".to_string()), 3.2803); + exchange_rates.insert(Exchange::USD("2024-02-23".to_string()), 4.005); + exchange_rates.insert(Exchange::USD("2020-12-23".to_string()), 3.6919); + exchange_rates.insert(Exchange::USD("2015-02-05".to_string()), 3.6656); + exchange_rates.insert(Exchange::EUR("2023-10-17".to_string()), 4.4389); + exchange_rates.insert(Exchange::USD("2013-02-04".to_string()), 3.0563); + exchange_rates.insert(Exchange::USD("2016-04-08".to_string()), 3.7701); + exchange_rates.insert(Exchange::EUR("2023-11-09".to_string()), 4.4413); + exchange_rates.insert(Exchange::USD("2021-12-13".to_string()), 4.1003); + exchange_rates.insert(Exchange::USD("2019-07-05".to_string()), 3.7689); + exchange_rates.insert(Exchange::USD("2016-01-20".to_string()), 4.0877); + exchange_rates.insert(Exchange::USD("2022-10-21".to_string()), 4.9); + exchange_rates.insert(Exchange::USD("2021-09-14".to_string()), 3.8542); + exchange_rates.insert(Exchange::USD("2014-06-06".to_string()), 3.0222); + exchange_rates.insert(Exchange::USD("2016-02-10".to_string()), 3.9383); + exchange_rates.insert(Exchange::USD("2013-01-28".to_string()), 3.1074); + exchange_rates.insert(Exchange::EUR("2023-07-20".to_string()), 4.4511); + exchange_rates.insert(Exchange::USD("2020-09-10".to_string()), 3.761); + exchange_rates.insert(Exchange::USD("2018-02-23".to_string()), 3.3911); + exchange_rates.insert(Exchange::USD("2016-12-29".to_string()), 4.2161); + exchange_rates.insert(Exchange::USD("2014-10-13".to_string()), 3.3062); + exchange_rates.insert(Exchange::USD("2019-03-01".to_string()), 3.792); + exchange_rates.insert(Exchange::USD("2013-12-27".to_string()), 3.0105); + exchange_rates.insert(Exchange::USD("2012-01-03".to_string()), 3.4277); + exchange_rates.insert(Exchange::USD("2015-11-23".to_string()), 3.988); + exchange_rates.insert(Exchange::USD("2017-05-10".to_string()), 3.8777); + exchange_rates.insert(Exchange::USD("2018-03-19".to_string()), 3.4341); + exchange_rates.insert(Exchange::USD("2018-08-29".to_string()), 3.6747); + exchange_rates.insert(Exchange::USD("2024-04-24".to_string()), 4.0417); + exchange_rates.insert(Exchange::USD("2017-10-23".to_string()), 3.6061); + exchange_rates.insert(Exchange::USD("2014-09-02".to_string()), 3.2112); + exchange_rates.insert(Exchange::USD("2024-07-29".to_string()), 3.9556); + exchange_rates.insert(Exchange::USD("2019-12-30".to_string()), 3.8027); + exchange_rates.insert(Exchange::USD("2019-08-01".to_string()), 3.886); + exchange_rates.insert(Exchange::EUR("2023-07-28".to_string()), 4.4257); + exchange_rates.insert(Exchange::USD("2021-08-18".to_string()), 3.8861); + exchange_rates.insert(Exchange::USD("2015-09-14".to_string()), 3.7124); + exchange_rates.insert(Exchange::USD("2020-06-26".to_string()), 3.9697); + exchange_rates.insert(Exchange::USD("2024-04-11".to_string()), 3.9707); + exchange_rates.insert(Exchange::USD("2018-06-05".to_string()), 3.6569); + exchange_rates.insert(Exchange::USD("2024-05-31".to_string()), 3.9389); + exchange_rates.insert(Exchange::USD("2023-07-07".to_string()), 4.1189); + exchange_rates.insert(Exchange::USD("2021-05-12".to_string()), 3.7456); + exchange_rates.insert(Exchange::USD("2021-11-25".to_string()), 4.16); + exchange_rates.insert(Exchange::USD("2019-12-05".to_string()), 3.8566); + exchange_rates.insert(Exchange::USD("2022-03-31".to_string()), 4.1801); + exchange_rates.insert(Exchange::USD("2018-06-27".to_string()), 3.7351); + exchange_rates.insert(Exchange::USD("2019-10-16".to_string()), 3.8934); + exchange_rates.insert(Exchange::USD("2022-12-16".to_string()), 4.4227); + exchange_rates.insert(Exchange::USD("2020-11-13".to_string()), 3.8015); + exchange_rates.insert(Exchange::USD("2017-11-06".to_string()), 3.6585); + exchange_rates.insert(Exchange::USD("2024-07-12".to_string()), 3.9099); + exchange_rates.insert(Exchange::USD("2015-10-08".to_string()), 3.7543); + exchange_rates.insert(Exchange::USD("2013-08-27".to_string()), 3.1849); + exchange_rates.insert(Exchange::USD("2013-10-21".to_string()), 3.062); + exchange_rates.insert(Exchange::USD("2017-06-14".to_string()), 3.7497); + exchange_rates.insert(Exchange::USD("2015-09-18".to_string()), 3.6738); + exchange_rates.insert(Exchange::USD("2012-06-01".to_string()), 3.5777); + exchange_rates.insert(Exchange::USD("2016-09-14".to_string()), 3.8716); + exchange_rates.insert(Exchange::USD("2012-09-21".to_string()), 3.1712); + exchange_rates.insert(Exchange::USD("2015-07-29".to_string()), 3.7471); + exchange_rates.insert(Exchange::EUR("2023-07-27".to_string()), 4.4224); + exchange_rates.insert(Exchange::EUR("2023-12-22".to_string()), 4.3288); + exchange_rates.insert(Exchange::USD("2016-05-02".to_string()), 3.8195); + exchange_rates.insert(Exchange::USD("2015-02-18".to_string()), 3.6784); + exchange_rates.insert(Exchange::USD("2024-02-07".to_string()), 4.0362); + exchange_rates.insert(Exchange::USD("2015-09-10".to_string()), 3.7648); + exchange_rates.insert(Exchange::USD("2013-12-20".to_string()), 3.0525); + exchange_rates.insert(Exchange::USD("2021-12-06".to_string()), 4.0619); + exchange_rates.insert(Exchange::USD("2023-01-24".to_string()), 4.3341); + exchange_rates.insert(Exchange::USD("2018-11-29".to_string()), 3.7728); + exchange_rates.insert(Exchange::USD("2024-02-27".to_string()), 3.9682); + exchange_rates.insert(Exchange::USD("2024-07-03".to_string()), 3.999); + exchange_rates.insert(Exchange::USD("2024-06-26".to_string()), 4.0291); + exchange_rates.insert(Exchange::USD("2020-08-06".to_string()), 3.724); + exchange_rates.insert(Exchange::USD("2020-01-21".to_string()), 3.8284); + exchange_rates.insert(Exchange::USD("2019-01-29".to_string()), 3.7563); + exchange_rates.insert(Exchange::USD("2018-08-10".to_string()), 3.7481); + exchange_rates.insert(Exchange::USD("2013-05-23".to_string()), 3.2587); + exchange_rates.insert(Exchange::USD("2023-08-31".to_string()), 4.1074); + exchange_rates.insert(Exchange::USD("2021-12-23".to_string()), 4.095); + exchange_rates.insert(Exchange::USD("2022-05-30".to_string()), 4.2617); + exchange_rates.insert(Exchange::USD("2017-03-10".to_string()), 4.0761); + exchange_rates.insert(Exchange::USD("2014-11-18".to_string()), 3.3706); + exchange_rates.insert(Exchange::USD("2012-06-13".to_string()), 3.4591); + exchange_rates.insert(Exchange::USD("2020-10-05".to_string()), 3.8252); + exchange_rates.insert(Exchange::USD("2016-03-11".to_string()), 3.8903); + exchange_rates.insert(Exchange::USD("2016-08-24".to_string()), 3.8174); + exchange_rates.insert(Exchange::USD("2023-06-29".to_string()), 4.0832); + exchange_rates.insert(Exchange::USD("2016-08-25".to_string()), 3.819); + exchange_rates.insert(Exchange::USD("2021-03-24".to_string()), 3.9098); + exchange_rates.insert(Exchange::USD("2018-07-09".to_string()), 3.685); + exchange_rates.insert(Exchange::USD("2020-01-10".to_string()), 3.8272); + exchange_rates.insert(Exchange::USD("2016-11-22".to_string()), 4.1507); + exchange_rates.insert(Exchange::USD("2024-02-14".to_string()), 4.0593); + exchange_rates.insert(Exchange::USD("2019-02-27".to_string()), 3.7886); + exchange_rates.insert(Exchange::USD("2020-04-09".to_string()), 4.1744); + exchange_rates.insert(Exchange::USD("2019-09-16".to_string()), 3.9116); + exchange_rates.insert(Exchange::USD("2022-05-23".to_string()), 4.3369); + exchange_rates.insert(Exchange::USD("2017-04-27".to_string()), 3.8776); + exchange_rates.insert(Exchange::USD("2017-10-24".to_string()), 3.6031); + exchange_rates.insert(Exchange::USD("2016-02-08".to_string()), 3.9525); + exchange_rates.insert(Exchange::USD("2024-08-27".to_string()), 3.8331); + exchange_rates.insert(Exchange::USD("2016-07-29".to_string()), 3.9364); + exchange_rates.insert(Exchange::USD("2015-11-17".to_string()), 3.9775); + exchange_rates.insert(Exchange::USD("2013-09-09".to_string()), 3.2357); + exchange_rates.insert(Exchange::USD("2012-01-25".to_string()), 3.299); + exchange_rates.insert(Exchange::EUR("2023-05-18".to_string()), 4.5355); + exchange_rates.insert(Exchange::EUR("2023-08-16".to_string()), 4.4621); + exchange_rates.insert(Exchange::USD("2019-05-23".to_string()), 3.8696); + exchange_rates.insert(Exchange::USD("2015-02-13".to_string()), 3.6552); + exchange_rates.insert(Exchange::USD("2013-02-20".to_string()), 3.1002); + exchange_rates.insert(Exchange::USD("2023-07-17".to_string()), 3.9616); + exchange_rates.insert(Exchange::USD("2024-02-26".to_string()), 3.9776); + exchange_rates.insert(Exchange::USD("2022-05-06".to_string()), 4.4502); + exchange_rates.insert(Exchange::USD("2019-11-22".to_string()), 3.8853); + exchange_rates.insert(Exchange::USD("2020-09-30".to_string()), 3.8658); + exchange_rates.insert(Exchange::USD("2018-11-09".to_string()), 3.7838); + exchange_rates.insert(Exchange::USD("2015-08-26".to_string()), 3.6937); + exchange_rates.insert(Exchange::USD("2021-05-28".to_string()), 3.6766); + exchange_rates.insert(Exchange::USD("2017-06-02".to_string()), 3.7323); + exchange_rates.insert(Exchange::USD("2017-10-25".to_string()), 3.6006); + exchange_rates.insert(Exchange::USD("2012-01-27".to_string()), 3.2163); + exchange_rates.insert(Exchange::USD("2021-08-30".to_string()), 3.8724); + exchange_rates.insert(Exchange::USD("2015-08-14".to_string()), 3.7557); + exchange_rates.insert(Exchange::USD("2020-07-27".to_string()), 3.7643); + exchange_rates.insert(Exchange::USD("2014-02-04".to_string()), 3.1189); + exchange_rates.insert(Exchange::USD("2023-07-27".to_string()), 3.9702); + exchange_rates.insert(Exchange::USD("2023-04-24".to_string()), 4.1905); + exchange_rates.insert(Exchange::USD("2024-10-07".to_string()), 3.9368); + exchange_rates.insert(Exchange::USD("2018-08-14".to_string()), 3.7768); + exchange_rates.insert(Exchange::USD("2019-08-02".to_string()), 3.8829); + exchange_rates.insert(Exchange::USD("2021-12-29".to_string()), 4.0779); + exchange_rates.insert(Exchange::USD("2019-10-25".to_string()), 3.8452); + exchange_rates.insert(Exchange::USD("2018-07-31".to_string()), 3.6481); + exchange_rates.insert(Exchange::USD("2019-02-15".to_string()), 3.8326); + exchange_rates.insert(Exchange::USD("2015-11-18".to_string()), 3.9802); + exchange_rates.insert(Exchange::USD("2016-07-14".to_string()), 3.9681); + exchange_rates.insert(Exchange::USD("2024-10-11".to_string()), 3.9204); + exchange_rates.insert(Exchange::USD("2016-11-17".to_string()), 4.1375); + exchange_rates.insert(Exchange::USD("2013-11-04".to_string()), 3.0975); + exchange_rates.insert(Exchange::USD("2017-05-09".to_string()), 3.8741); + exchange_rates.insert(Exchange::USD("2012-04-25".to_string()), 3.1675); + exchange_rates.insert(Exchange::USD("2020-08-05".to_string()), 3.7143); + exchange_rates.insert(Exchange::USD("2022-01-27".to_string()), 4.083); + exchange_rates.insert(Exchange::USD("2024-09-23".to_string()), 3.8571); + exchange_rates.insert(Exchange::USD("2022-11-14".to_string()), 4.5383); + exchange_rates.insert(Exchange::USD("2023-12-19".to_string()), 3.9591); + exchange_rates.insert(Exchange::USD("2018-06-25".to_string()), 3.7087); + exchange_rates.insert(Exchange::USD("2019-03-12".to_string()), 3.8116); + exchange_rates.insert(Exchange::USD("2019-05-28".to_string()), 3.8386); + exchange_rates.insert(Exchange::USD("2018-07-20".to_string()), 3.717); + exchange_rates.insert(Exchange::USD("2015-01-16".to_string()), 3.7174); + exchange_rates.insert(Exchange::USD("2022-08-10".to_string()), 4.6112); + exchange_rates.insert(Exchange::USD("2016-09-28".to_string()), 3.8264); + exchange_rates.insert(Exchange::USD("2019-10-24".to_string()), 3.8448); + exchange_rates.insert(Exchange::USD("2018-11-06".to_string()), 3.7802); + exchange_rates.insert(Exchange::USD("2023-01-16".to_string()), 4.3436); + exchange_rates.insert(Exchange::USD("2015-06-17".to_string()), 3.6873); + exchange_rates.insert(Exchange::USD("2014-06-16".to_string()), 3.0654); + exchange_rates.insert(Exchange::USD("2020-07-14".to_string()), 3.957); + exchange_rates.insert(Exchange::USD("2013-06-27".to_string()), 3.3241); + exchange_rates.insert(Exchange::USD("2022-12-19".to_string()), 4.4153); + exchange_rates.insert(Exchange::USD("2013-09-02".to_string()), 3.2164); + exchange_rates.insert(Exchange::USD("2016-08-16".to_string()), 3.7929); + exchange_rates.insert(Exchange::USD("2012-03-19".to_string()), 3.1361); + exchange_rates.insert(Exchange::USD("2018-12-04".to_string()), 3.7516); + exchange_rates.insert(Exchange::USD("2012-03-09".to_string()), 3.1126); + exchange_rates.insert(Exchange::USD("2016-08-26".to_string()), 3.8328); + exchange_rates.insert(Exchange::USD("2012-04-26".to_string()), 3.1599); + exchange_rates.insert(Exchange::USD("2012-05-11".to_string()), 3.2765); + exchange_rates.insert(Exchange::USD("2012-09-27".to_string()), 3.2236); + exchange_rates.insert(Exchange::USD("2012-10-24".to_string()), 3.1996); + exchange_rates.insert(Exchange::EUR("2023-05-08".to_string()), 4.5671); + exchange_rates.insert(Exchange::USD("2023-09-22".to_string()), 4.3269); + exchange_rates.insert(Exchange::USD("2020-07-23".to_string()), 3.806); + exchange_rates.insert(Exchange::USD("2022-11-15".to_string()), 4.5143); + exchange_rates.insert(Exchange::USD("2021-05-20".to_string()), 3.7077); + exchange_rates.insert(Exchange::USD("2016-09-22".to_string()), 3.8128); + exchange_rates.insert(Exchange::USD("2012-06-06".to_string()), 3.4703); + exchange_rates.insert(Exchange::EUR("2023-05-10".to_string()), 4.5488); + exchange_rates.insert(Exchange::USD("2023-09-05".to_string()), 4.1643); + exchange_rates.insert(Exchange::USD("2023-09-08".to_string()), 4.2958); + exchange_rates.insert(Exchange::USD("2023-01-04".to_string()), 4.3998); + exchange_rates.insert(Exchange::USD("2021-06-08".to_string()), 3.669); + exchange_rates.insert(Exchange::USD("2017-01-05".to_string()), 4.1667); + exchange_rates.insert(Exchange::USD("2023-12-06".to_string()), 4.0202); + exchange_rates.insert(Exchange::USD("2019-07-18".to_string()), 3.7933); + exchange_rates.insert(Exchange::USD("2013-09-24".to_string()), 3.1338); + exchange_rates.insert(Exchange::USD("2013-12-19".to_string()), 3.049); + exchange_rates.insert(Exchange::USD("2016-03-09".to_string()), 3.9395); + exchange_rates.insert(Exchange::USD("2021-03-26".to_string()), 3.9307); + exchange_rates.insert(Exchange::USD("2019-11-27".to_string()), 3.9154); + exchange_rates.insert(Exchange::USD("2018-09-26".to_string()), 3.643); + exchange_rates.insert(Exchange::USD("2020-10-28".to_string()), 3.9313); + exchange_rates.insert(Exchange::USD("2024-07-11".to_string()), 3.9257); + exchange_rates.insert(Exchange::USD("2013-04-24".to_string()), 3.1823); + exchange_rates.insert(Exchange::USD("2024-05-15".to_string()), 3.9368); + exchange_rates.insert(Exchange::USD("2024-07-04".to_string()), 3.9784); + exchange_rates.insert(Exchange::USD("2013-07-05".to_string()), 3.3245); + exchange_rates.insert(Exchange::USD("2013-03-19".to_string()), 3.2055); + exchange_rates.insert(Exchange::USD("2013-07-18".to_string()), 3.2362); + exchange_rates.insert(Exchange::USD("2012-07-03".to_string()), 3.3427); + exchange_rates.insert(Exchange::USD("2020-03-04".to_string()), 3.8536); + exchange_rates.insert(Exchange::USD("2012-11-13".to_string()), 3.2945); + exchange_rates.insert(Exchange::EUR("2023-10-30".to_string()), 4.4491); + exchange_rates.insert(Exchange::USD("2024-10-16".to_string()), 3.9468); + exchange_rates.insert(Exchange::USD("2020-09-07".to_string()), 3.7666); + exchange_rates.insert(Exchange::USD("2012-09-28".to_string()), 3.178); + exchange_rates.insert(Exchange::USD("2022-04-28".to_string()), 4.4613); + exchange_rates.insert(Exchange::USD("2023-10-16".to_string()), 4.2505); + exchange_rates.insert(Exchange::USD("2014-07-29".to_string()), 3.09); + exchange_rates.insert(Exchange::USD("2018-04-13".to_string()), 3.3862); + exchange_rates.insert(Exchange::USD("2014-03-14".to_string()), 3.0481); + exchange_rates.insert(Exchange::EUR("2023-12-01".to_string()), 4.3494); + exchange_rates.insert(Exchange::EUR("2023-12-07".to_string()), 4.3334); + exchange_rates.insert(Exchange::USD("2012-02-27".to_string()), 3.1176); + exchange_rates.insert(Exchange::USD("2021-11-10".to_string()), 3.9737); + exchange_rates.insert(Exchange::EUR("2023-12-19".to_string()), 4.3321); + exchange_rates.insert(Exchange::USD("2014-07-09".to_string()), 3.0322); + exchange_rates.insert(Exchange::USD("2021-12-01".to_string()), 4.1051); + exchange_rates.insert(Exchange::USD("2023-09-14".to_string()), 4.312); + exchange_rates.insert(Exchange::USD("2019-06-10".to_string()), 3.7745); + exchange_rates.insert(Exchange::USD("2019-10-22".to_string()), 3.8408); + exchange_rates.insert(Exchange::USD("2022-12-13".to_string()), 4.4527); + exchange_rates.insert(Exchange::USD("2018-05-02".to_string()), 3.5563); + exchange_rates.insert(Exchange::USD("2015-02-26".to_string()), 3.6519); + exchange_rates.insert(Exchange::USD("2015-05-25".to_string()), 3.75); + exchange_rates.insert(Exchange::USD("2022-04-20".to_string()), 4.2708); + exchange_rates.insert(Exchange::USD("2020-11-09".to_string()), 3.7787); + exchange_rates.insert(Exchange::USD("2016-10-28".to_string()), 3.9696); + exchange_rates.insert(Exchange::USD("2015-06-26".to_string()), 3.7275); + exchange_rates.insert(Exchange::USD("2013-04-17".to_string()), 3.1159); + exchange_rates.insert(Exchange::USD("2013-12-06".to_string()), 3.0673); + exchange_rates.insert(Exchange::USD("2012-11-05".to_string()), 3.2211); + exchange_rates.insert(Exchange::USD("2014-01-07".to_string()), 3.0688); + exchange_rates.insert(Exchange::EUR("2023-06-29".to_string()), 4.4568); + exchange_rates.insert(Exchange::EUR("2023-12-14".to_string()), 4.3053); + exchange_rates.insert(Exchange::USD("2017-06-16".to_string()), 3.7749); + exchange_rates.insert(Exchange::USD("2022-03-02".to_string()), 4.3302); + exchange_rates.insert(Exchange::USD("2024-09-04".to_string()), 3.8738); + exchange_rates.insert(Exchange::USD("2021-12-03".to_string()), 4.0653); + exchange_rates.insert(Exchange::USD("2012-07-17".to_string()), 3.3973); + exchange_rates.insert(Exchange::USD("2023-12-12".to_string()), 4.0204); + exchange_rates.insert(Exchange::USD("2023-11-13".to_string()), 4.1474); + exchange_rates.insert(Exchange::USD("2023-12-11".to_string()), 4.0277); + exchange_rates.insert(Exchange::USD("2019-03-15".to_string()), 3.8014); + exchange_rates.insert(Exchange::USD("2024-03-06".to_string()), 3.963); + exchange_rates.insert(Exchange::USD("2021-05-31".to_string()), 3.6724); + exchange_rates.insert(Exchange::USD("2020-12-28".to_string()), 3.6639); + exchange_rates.insert(Exchange::USD("2019-04-23".to_string()), 3.8118); + exchange_rates.insert(Exchange::USD("2017-07-14".to_string()), 3.6986); + exchange_rates.insert(Exchange::USD("2014-07-21".to_string()), 3.07); + exchange_rates.insert(Exchange::EUR("2023-10-16".to_string()), 4.4804); + exchange_rates.insert(Exchange::EUR("2023-12-27".to_string()), 4.3311); + exchange_rates.insert(Exchange::USD("2022-10-13".to_string()), 4.9905); + exchange_rates.insert(Exchange::USD("2016-04-19".to_string()), 3.7925); + exchange_rates.insert(Exchange::USD("2024-02-05".to_string()), 4.0244); + exchange_rates.insert(Exchange::USD("2019-07-24".to_string()), 3.8229); + exchange_rates.insert(Exchange::USD("2014-05-07".to_string()), 3.0187); + exchange_rates.insert(Exchange::USD("2016-03-02".to_string()), 3.9861); + exchange_rates.insert(Exchange::USD("2017-08-08".to_string()), 3.6027); + exchange_rates.insert(Exchange::USD("2018-10-23".to_string()), 3.7485); + exchange_rates.insert(Exchange::USD("2021-06-01".to_string()), 3.659); + exchange_rates.insert(Exchange::USD("2015-07-03".to_string()), 3.7726); + exchange_rates.insert(Exchange::USD("2014-02-12".to_string()), 3.0552); + exchange_rates.insert(Exchange::USD("2020-03-02".to_string()), 3.9023); + exchange_rates.insert(Exchange::USD("2013-01-24".to_string()), 3.1503); + exchange_rates.insert(Exchange::USD("2021-08-26".to_string()), 3.8912); + exchange_rates.insert(Exchange::USD("2013-02-05".to_string()), 3.0831); + exchange_rates.insert(Exchange::USD("2021-10-12".to_string()), 3.9664); + exchange_rates.insert(Exchange::USD("2019-04-05".to_string()), 3.8215); + exchange_rates.insert(Exchange::USD("2023-04-13".to_string()), 4.2225); + exchange_rates.insert(Exchange::USD("2016-12-02".to_string()), 4.215); + exchange_rates.insert(Exchange::USD("2020-03-30".to_string()), 4.0933); + exchange_rates.insert(Exchange::USD("2020-06-16".to_string()), 3.9058); + exchange_rates.insert(Exchange::USD("2013-04-02".to_string()), 3.2552); + exchange_rates.insert(Exchange::USD("2015-06-01".to_string()), 3.785); + exchange_rates.insert(Exchange::USD("2018-04-06".to_string()), 3.4315); + exchange_rates.insert(Exchange::USD("2017-10-30".to_string()), 3.643); + exchange_rates.insert(Exchange::USD("2024-05-10".to_string()), 3.9866); + exchange_rates.insert(Exchange::USD("2023-03-28".to_string()), 4.33); + exchange_rates.insert(Exchange::USD("2022-11-03".to_string()), 4.8291); + exchange_rates.insert(Exchange::USD("2022-12-14".to_string()), 4.3973); + exchange_rates.insert(Exchange::USD("2022-05-16".to_string()), 4.4785); + exchange_rates.insert(Exchange::USD("2022-07-29".to_string()), 4.6365); + exchange_rates.insert(Exchange::USD("2022-11-18".to_string()), 4.5337); + exchange_rates.insert(Exchange::USD("2017-09-22".to_string()), 3.5651); + exchange_rates.insert(Exchange::USD("2015-08-19".to_string()), 3.7718); + exchange_rates.insert(Exchange::USD("2013-05-06".to_string()), 3.1646); + exchange_rates.insert(Exchange::EUR("2023-05-31".to_string()), 4.5376); + exchange_rates.insert(Exchange::USD("2024-06-17".to_string()), 4.0728); + exchange_rates.insert(Exchange::USD("2020-01-20".to_string()), 3.8277); + exchange_rates.insert(Exchange::USD("2017-10-19".to_string()), 3.5896); + exchange_rates.insert(Exchange::USD("2014-02-25".to_string()), 3.0264); + exchange_rates.insert(Exchange::USD("2012-12-11".to_string()), 3.1645); + exchange_rates.insert(Exchange::USD("2024-05-23".to_string()), 3.9394); + exchange_rates.insert(Exchange::USD("2021-03-30".to_string()), 3.9604); + exchange_rates.insert(Exchange::USD("2020-12-30".to_string()), 3.6901); + exchange_rates.insert(Exchange::USD("2023-05-22".to_string()), 4.1881); + exchange_rates.insert(Exchange::USD("2020-09-03".to_string()), 3.7337); + exchange_rates.insert(Exchange::USD("2017-05-26".to_string()), 3.7248); + exchange_rates.insert(Exchange::USD("2015-04-02".to_string()), 3.7524); + exchange_rates.insert(Exchange::USD("2022-03-29".to_string()), 4.2917); + exchange_rates.insert(Exchange::USD("2018-03-30".to_string()), 3.4139); + exchange_rates.insert(Exchange::USD("2015-08-06".to_string()), 3.8385); + exchange_rates.insert(Exchange::USD("2014-11-14".to_string()), 3.3933); + exchange_rates.insert(Exchange::USD("2023-08-22".to_string()), 4.0924); + exchange_rates.insert(Exchange::USD("2017-01-02".to_string()), 4.2106); + exchange_rates.insert(Exchange::USD("2024-07-02".to_string()), 4.0375); + exchange_rates.insert(Exchange::USD("2024-07-24".to_string()), 3.9498); + exchange_rates.insert(Exchange::USD("2016-02-17".to_string()), 3.9431); + exchange_rates.insert(Exchange::USD("2015-09-23".to_string()), 3.7801); + exchange_rates.insert(Exchange::USD("2020-11-03".to_string()), 3.9069); + exchange_rates.insert(Exchange::USD("2014-05-29".to_string()), 3.0395); + exchange_rates.insert(Exchange::USD("2013-01-07".to_string()), 3.1618); + exchange_rates.insert(Exchange::USD("2020-08-19".to_string()), 3.6732); + exchange_rates.insert(Exchange::EUR("2023-06-13".to_string()), 4.4783); + exchange_rates.insert(Exchange::USD("2012-08-09".to_string()), 3.2915); + exchange_rates.insert(Exchange::USD("2012-03-16".to_string()), 3.1688); + exchange_rates.insert(Exchange::USD("2014-01-29".to_string()), 3.0829); + exchange_rates.insert(Exchange::USD("2020-10-01".to_string()), 3.8513); + exchange_rates.insert(Exchange::USD("2018-06-19".to_string()), 3.7316); + exchange_rates.insert(Exchange::USD("2018-04-11".to_string()), 3.3859); + exchange_rates.insert(Exchange::USD("2017-10-05".to_string()), 3.6502); + exchange_rates.insert(Exchange::USD("2023-04-11".to_string()), 4.2917); + exchange_rates.insert(Exchange::USD("2014-07-16".to_string()), 3.0503); + exchange_rates.insert(Exchange::USD("2013-01-15".to_string()), 3.075); + exchange_rates.insert(Exchange::USD("2024-04-29".to_string()), 4.0346); + exchange_rates.insert(Exchange::USD("2019-06-06".to_string()), 3.8065); + exchange_rates.insert(Exchange::USD("2023-08-28".to_string()), 4.14); + exchange_rates.insert(Exchange::USD("2022-02-18".to_string()), 3.9798); + exchange_rates.insert(Exchange::USD("2022-08-25".to_string()), 4.7546); + exchange_rates.insert(Exchange::USD("2016-02-11".to_string()), 3.9219); + exchange_rates.insert(Exchange::USD("2016-02-19".to_string()), 3.9531); + exchange_rates.insert(Exchange::USD("2016-09-05".to_string()), 3.8937); + exchange_rates.insert(Exchange::USD("2013-11-14".to_string()), 3.115); + exchange_rates.insert(Exchange::USD("2023-08-25".to_string()), 4.1419); + exchange_rates.insert(Exchange::USD("2016-10-14".to_string()), 3.8965); + exchange_rates.insert(Exchange::USD("2016-08-22".to_string()), 3.809); + exchange_rates.insert(Exchange::USD("2016-09-27".to_string()), 3.8227); + exchange_rates.insert(Exchange::USD("2022-04-27".to_string()), 4.4453); + exchange_rates.insert(Exchange::USD("2016-07-21".to_string()), 3.9685); + exchange_rates.insert(Exchange::USD("2014-02-05".to_string()), 3.0987); + exchange_rates.insert(Exchange::USD("2024-01-09".to_string()), 3.9612); + exchange_rates.insert(Exchange::USD("2013-07-02".to_string()), 3.3222); + exchange_rates.insert(Exchange::USD("2022-02-15".to_string()), 3.974); + exchange_rates.insert(Exchange::USD("2012-01-10".to_string()), 3.5083); + exchange_rates.insert(Exchange::EUR("2023-06-28".to_string()), 4.46); + exchange_rates.insert(Exchange::USD("2024-09-26".to_string()), 3.8294); + exchange_rates.insert(Exchange::USD("2024-01-30".to_string()), 4.0301); + exchange_rates.insert(Exchange::USD("2022-06-17".to_string()), 4.463); + exchange_rates.insert(Exchange::USD("2023-05-08".to_string()), 4.1384); + exchange_rates.insert(Exchange::USD("2016-06-17".to_string()), 3.9412); + exchange_rates.insert(Exchange::USD("2016-10-25".to_string()), 3.9543); + exchange_rates.insert(Exchange::USD("2021-10-05".to_string()), 3.9688); + exchange_rates.insert(Exchange::USD("2016-11-21".to_string()), 4.1748); + exchange_rates.insert(Exchange::USD("2014-03-21".to_string()), 3.0425); + exchange_rates.insert(Exchange::USD("2018-05-17".to_string()), 3.6283); + exchange_rates.insert(Exchange::USD("2024-09-30".to_string()), 3.8193); + exchange_rates.insert(Exchange::USD("2014-08-25".to_string()), 3.168); + exchange_rates.insert(Exchange::USD("2024-04-25".to_string()), 4.0276); + exchange_rates.insert(Exchange::USD("2012-02-03".to_string()), 3.1848); + exchange_rates.insert(Exchange::USD("2012-11-14".to_string()), 3.275); + exchange_rates.insert(Exchange::USD("2020-10-22".to_string()), 3.8734); + exchange_rates.insert(Exchange::USD("2019-06-07".to_string()), 3.7958); + exchange_rates.insert(Exchange::USD("2020-10-21".to_string()), 3.8706); + exchange_rates.insert(Exchange::USD("2020-06-23".to_string()), 3.9311); + exchange_rates.insert(Exchange::USD("2021-04-01".to_string()), 3.9428); + exchange_rates.insert(Exchange::USD("2019-10-10".to_string()), 3.9226); + exchange_rates.insert(Exchange::USD("2013-10-03".to_string()), 3.0951); + exchange_rates.insert(Exchange::USD("2017-10-09".to_string()), 3.6743); + exchange_rates.insert(Exchange::USD("2024-05-16".to_string()), 3.9195); + exchange_rates.insert(Exchange::USD("2015-12-03".to_string()), 4.04); + exchange_rates.insert(Exchange::USD("2021-06-16".to_string()), 3.7336); + exchange_rates.insert(Exchange::USD("2015-09-25".to_string()), 3.7818); + exchange_rates.insert(Exchange::USD("2021-05-19".to_string()), 3.7087); + exchange_rates.insert(Exchange::USD("2019-03-06".to_string()), 3.8038); + exchange_rates.insert(Exchange::USD("2023-02-03".to_string()), 4.2928); + exchange_rates.insert(Exchange::USD("2015-12-08".to_string()), 3.9877); + exchange_rates.insert(Exchange::USD("2024-06-28".to_string()), 4.032); + exchange_rates.insert(Exchange::USD("2012-01-12".to_string()), 3.4945); + exchange_rates.insert(Exchange::USD("2012-07-23".to_string()), 3.4529); + exchange_rates.insert(Exchange::EUR("2023-08-14".to_string()), 4.4361); + exchange_rates.insert(Exchange::USD("2018-10-05".to_string()), 3.7518); + exchange_rates.insert(Exchange::USD("2017-10-11".to_string()), 3.6219); + exchange_rates.insert(Exchange::USD("2015-03-31".to_string()), 3.8125); + exchange_rates.insert(Exchange::USD("2022-11-25".to_string()), 4.5111); + exchange_rates.insert(Exchange::USD("2022-02-24".to_string()), 4.1281); + exchange_rates.insert(Exchange::USD("2013-10-18".to_string()), 3.0506); + exchange_rates.insert(Exchange::USD("2024-09-05".to_string()), 3.8487); + exchange_rates.insert(Exchange::USD("2016-12-28".to_string()), 4.226); + exchange_rates.insert(Exchange::USD("2012-04-17".to_string()), 3.1872); + exchange_rates.insert(Exchange::USD("2021-09-21".to_string()), 3.9337); + exchange_rates.insert(Exchange::USD("2012-05-25".to_string()), 3.4589); + exchange_rates.insert(Exchange::USD("2012-06-05".to_string()), 3.5359); + exchange_rates.insert(Exchange::EUR("2023-03-15".to_string()), 4.7015); + exchange_rates.insert(Exchange::USD("2024-04-30".to_string()), 4.0341); + exchange_rates.insert(Exchange::USD("2019-07-09".to_string()), 3.8074); + exchange_rates.insert(Exchange::USD("2022-05-20".to_string()), 4.3832); + exchange_rates.insert(Exchange::USD("2024-04-08".to_string()), 3.9546); + exchange_rates.insert(Exchange::USD("2020-03-10".to_string()), 3.8058); + exchange_rates.insert(Exchange::USD("2018-08-06".to_string()), 3.692); + exchange_rates.insert(Exchange::USD("2016-07-08".to_string()), 4.0001); + exchange_rates.insert(Exchange::USD("2020-06-04".to_string()), 3.9573); + exchange_rates.insert(Exchange::USD("2024-05-17".to_string()), 3.9363); + exchange_rates.insert(Exchange::USD("2023-10-31".to_string()), 4.1684); + exchange_rates.insert(Exchange::USD("2016-01-14".to_string()), 3.999); + exchange_rates.insert(Exchange::USD("2016-02-26".to_string()), 3.9545); + exchange_rates.insert(Exchange::USD("2021-05-27".to_string()), 3.6929); + exchange_rates.insert(Exchange::USD("2016-08-08".to_string()), 3.8706); + exchange_rates.insert(Exchange::USD("2020-11-17".to_string()), 3.7877); + exchange_rates.insert(Exchange::USD("2023-04-27".to_string()), 4.1541); + exchange_rates.insert(Exchange::USD("2018-02-06".to_string()), 3.3498); + exchange_rates.insert(Exchange::USD("2020-09-17".to_string()), 3.7713); + exchange_rates.insert(Exchange::USD("2018-11-02".to_string()), 3.7804); + exchange_rates.insert(Exchange::USD("2019-01-10".to_string()), 3.736); + exchange_rates.insert(Exchange::USD("2015-04-28".to_string()), 3.6751); + exchange_rates.insert(Exchange::USD("2022-11-02".to_string()), 4.7485); + exchange_rates.insert(Exchange::USD("2015-11-13".to_string()), 3.9388); + exchange_rates.insert(Exchange::USD("2024-05-22".to_string()), 3.9243); + exchange_rates.insert(Exchange::USD("2022-02-08".to_string()), 3.9693); + exchange_rates.insert(Exchange::USD("2021-09-24".to_string()), 3.9268); + exchange_rates.insert(Exchange::USD("2014-06-23".to_string()), 3.0627); + exchange_rates.insert(Exchange::USD("2024-10-21".to_string()), 3.9775); + exchange_rates.insert(Exchange::USD("2014-11-24".to_string()), 3.3842); + exchange_rates.insert(Exchange::USD("2019-08-22".to_string()), 3.9337); + exchange_rates.insert(Exchange::USD("2018-02-28".to_string()), 3.4188); + exchange_rates.insert(Exchange::USD("2024-07-08".to_string()), 3.947); + exchange_rates.insert(Exchange::USD("2024-10-22".to_string()), 3.9862); + exchange_rates.insert(Exchange::USD("2017-01-03".to_string()), 4.2271); + exchange_rates.insert(Exchange::USD("2015-05-21".to_string()), 3.6605); + exchange_rates.insert(Exchange::USD("2014-10-20".to_string()), 3.3109); + exchange_rates.insert(Exchange::USD("2013-04-26".to_string()), 3.1943); + exchange_rates.insert(Exchange::USD("2013-04-29".to_string()), 3.1712); + exchange_rates.insert(Exchange::USD("2013-11-27".to_string()), 3.0899); + exchange_rates.insert(Exchange::USD("2012-03-27".to_string()), 3.0939); + exchange_rates.insert(Exchange::USD("2012-08-27".to_string()), 3.257); + exchange_rates.insert(Exchange::USD("2015-08-28".to_string()), 3.7493); + exchange_rates.insert(Exchange::USD("2019-04-29".to_string()), 3.8468); + exchange_rates.insert(Exchange::USD("2017-04-04".to_string()), 3.989); + exchange_rates.insert(Exchange::USD("2021-04-26".to_string()), 3.7657); + exchange_rates.insert(Exchange::USD("2021-06-28".to_string()), 3.7762); + exchange_rates.insert(Exchange::USD("2014-07-14".to_string()), 3.0368); + exchange_rates.insert(Exchange::USD("2012-08-29".to_string()), 3.3081); + exchange_rates.insert(Exchange::USD("2015-12-02".to_string()), 4.0305); + exchange_rates.insert(Exchange::USD("2015-12-23".to_string()), 3.8872); + exchange_rates.insert(Exchange::USD("2014-12-17".to_string()), 3.3928); + exchange_rates.insert(Exchange::USD("2020-06-05".to_string()), 3.9217); + exchange_rates.insert(Exchange::EUR("2023-01-03".to_string()), 4.68); + exchange_rates.insert(Exchange::USD("2021-12-14".to_string()), 4.1088); + exchange_rates.insert(Exchange::USD("2024-01-05".to_string()), 3.985); + exchange_rates.insert(Exchange::USD("2021-10-27".to_string()), 3.9815); + exchange_rates.insert(Exchange::USD("2022-05-24".to_string()), 4.3071); + exchange_rates.insert(Exchange::USD("2019-12-18".to_string()), 3.8302); + exchange_rates.insert(Exchange::USD("2012-07-09".to_string()), 3.4538); + exchange_rates.insert(Exchange::USD("2017-08-31".to_string()), 3.5822); + exchange_rates.insert(Exchange::USD("2012-12-13".to_string()), 3.1333); + exchange_rates.insert(Exchange::USD("2022-06-28".to_string()), 4.4377); + exchange_rates.insert(Exchange::USD("2016-08-19".to_string()), 3.7905); + exchange_rates.insert(Exchange::USD("2013-12-10".to_string()), 3.0425); + exchange_rates.insert(Exchange::USD("2014-06-03".to_string()), 3.0449); + exchange_rates.insert(Exchange::USD("2012-12-21".to_string()), 3.0791); + exchange_rates.insert(Exchange::EUR("2023-02-24".to_string()), 4.7245); + exchange_rates.insert(Exchange::EUR("2023-05-04".to_string()), 4.5868); + exchange_rates.insert(Exchange::USD("2014-12-18".to_string()), 3.4428); + exchange_rates.insert(Exchange::USD("2024-09-12".to_string()), 3.9025); + exchange_rates.insert(Exchange::USD("2013-01-25".to_string()), 3.1186); + exchange_rates.insert(Exchange::USD("2022-09-28".to_string()), 5.0381); + exchange_rates.insert(Exchange::USD("2023-06-21".to_string()), 4.0648); + exchange_rates.insert(Exchange::USD("2021-06-29".to_string()), 3.7914); + exchange_rates.insert(Exchange::USD("2021-07-30".to_string()), 3.841); + exchange_rates.insert(Exchange::USD("2023-08-11".to_string()), 4.0501); + exchange_rates.insert(Exchange::USD("2018-11-08".to_string()), 3.7599); + exchange_rates.insert(Exchange::USD("2017-02-16".to_string()), 4.0567); + exchange_rates.insert(Exchange::USD("2023-08-02".to_string()), 4.0497); + exchange_rates.insert(Exchange::USD("2022-10-26".to_string()), 4.7538); + exchange_rates.insert(Exchange::USD("2022-04-11".to_string()), 4.2586); + exchange_rates.insert(Exchange::USD("2020-07-30".to_string()), 3.7549); + exchange_rates.insert(Exchange::USD("2016-04-22".to_string()), 3.8399); + exchange_rates.insert(Exchange::USD("2016-05-04".to_string()), 3.83); + exchange_rates.insert(Exchange::USD("2019-01-11".to_string()), 3.7289); + exchange_rates.insert(Exchange::USD("2016-12-05".to_string()), 4.2213); + exchange_rates.insert(Exchange::USD("2015-05-22".to_string()), 3.669); + exchange_rates.insert(Exchange::USD("2016-06-14".to_string()), 3.9483); + exchange_rates.insert(Exchange::USD("2021-02-24".to_string()), 3.7145); + exchange_rates.insert(Exchange::USD("2014-02-10".to_string()), 3.0683); + exchange_rates.insert(Exchange::USD("2019-08-26".to_string()), 3.9335); + exchange_rates.insert(Exchange::USD("2017-06-13".to_string()), 3.7379); + exchange_rates.insert(Exchange::USD("2020-12-03".to_string()), 3.6981); + exchange_rates.insert(Exchange::USD("2014-11-13".to_string()), 3.386); + exchange_rates.insert(Exchange::USD("2024-09-02".to_string()), 3.8684); + exchange_rates.insert(Exchange::USD("2022-04-01".to_string()), 4.1978); + exchange_rates.insert(Exchange::USD("2013-06-04".to_string()), 3.2524); + exchange_rates.insert(Exchange::USD("2020-05-27".to_string()), 4.0504); + exchange_rates.insert(Exchange::USD("2014-03-13".to_string()), 3.0284); + exchange_rates.insert(Exchange::USD("2023-03-20".to_string()), 4.413); + exchange_rates.insert(Exchange::USD("2022-08-22".to_string()), 4.7427); + exchange_rates.insert(Exchange::USD("2020-05-13".to_string()), 4.2111); + exchange_rates.insert(Exchange::USD("2013-08-12".to_string()), 3.151); + exchange_rates.insert(Exchange::USD("2023-07-24".to_string()), 4.021); + exchange_rates.insert(Exchange::USD("2020-10-14".to_string()), 3.8301); + exchange_rates.insert(Exchange::USD("2017-07-03".to_string()), 3.7196); + exchange_rates.insert(Exchange::USD("2020-10-29".to_string()), 3.9505); + exchange_rates.insert(Exchange::USD("2016-07-18".to_string()), 3.9853); + exchange_rates.insert(Exchange::USD("2019-05-14".to_string()), 3.8323); + exchange_rates.insert(Exchange::USD("2016-11-23".to_string()), 4.1588); + exchange_rates.insert(Exchange::USD("2016-11-29".to_string()), 4.1827); + exchange_rates.insert(Exchange::USD("2015-08-24".to_string()), 3.6971); + exchange_rates.insert(Exchange::USD("2012-07-02".to_string()), 3.3456); + exchange_rates.insert(Exchange::EUR("2023-05-16".to_string()), 4.4904); + exchange_rates.insert(Exchange::EUR("2023-06-19".to_string()), 4.4457); + exchange_rates.insert(Exchange::USD("2014-02-26".to_string()), 3.026); + exchange_rates.insert(Exchange::USD("2023-05-15".to_string()), 4.149); + exchange_rates.insert(Exchange::USD("2020-01-03".to_string()), 3.8213); + exchange_rates.insert(Exchange::USD("2019-11-18".to_string()), 3.8767); + exchange_rates.insert(Exchange::USD("2016-12-08".to_string()), 4.1107); + exchange_rates.insert(Exchange::USD("2019-03-08".to_string()), 3.8409); + exchange_rates.insert(Exchange::USD("2013-08-20".to_string()), 3.1761); + exchange_rates.insert(Exchange::USD("2016-01-27".to_string()), 4.1144); + exchange_rates.insert(Exchange::USD("2023-09-25".to_string()), 4.3188); + exchange_rates.insert(Exchange::USD("2018-05-25".to_string()), 3.6686); + exchange_rates.insert(Exchange::USD("2018-09-12".to_string()), 3.7198); + exchange_rates.insert(Exchange::USD("2022-07-07".to_string()), 4.7029); + exchange_rates.insert(Exchange::USD("2017-02-07".to_string()), 4.028); + exchange_rates.insert(Exchange::USD("2013-11-05".to_string()), 3.0981); + exchange_rates.insert(Exchange::EUR("2023-06-23".to_string()), 4.4367); + exchange_rates.insert(Exchange::USD("2013-05-09".to_string()), 3.1392); + exchange_rates.insert(Exchange::USD("2022-08-26".to_string()), 4.7465); + exchange_rates.insert(Exchange::USD("2016-07-26".to_string()), 3.9682); + exchange_rates.insert(Exchange::EUR("2023-12-20".to_string()), 4.3341); + exchange_rates.insert(Exchange::USD("2012-06-12".to_string()), 3.4552); + exchange_rates.insert(Exchange::USD("2019-06-18".to_string()), 3.8097); + exchange_rates.insert(Exchange::USD("2015-06-22".to_string()), 3.6799); + exchange_rates.insert(Exchange::EUR("2023-01-09".to_string()), 4.697); + exchange_rates.insert(Exchange::EUR("2023-10-23".to_string()), 4.4552); + exchange_rates.insert(Exchange::USD("2014-01-14".to_string()), 3.04); + exchange_rates.insert(Exchange::EUR("2023-01-20".to_string()), 4.7137); + exchange_rates.insert(Exchange::USD("2021-06-02".to_string()), 3.6659); + exchange_rates.insert(Exchange::USD("2017-04-19".to_string()), 3.9571); + exchange_rates.insert(Exchange::USD("2015-06-03".to_string()), 3.7108); + exchange_rates.insert(Exchange::USD("2019-11-06".to_string()), 3.8497); + exchange_rates.insert(Exchange::USD("2013-03-20".to_string()), 3.2169); + exchange_rates.insert(Exchange::USD("2013-10-15".to_string()), 3.0893); + exchange_rates.insert(Exchange::USD("2022-08-29".to_string()), 4.7821); + exchange_rates.insert(Exchange::USD("2024-08-22".to_string()), 3.8456); + exchange_rates.insert(Exchange::USD("2017-09-06".to_string()), 3.5538); + exchange_rates.insert(Exchange::USD("2015-07-14".to_string()), 3.7645); + exchange_rates.insert(Exchange::USD("2015-10-20".to_string()), 3.7385); + exchange_rates.insert(Exchange::USD("2014-03-20".to_string()), 3.05); + exchange_rates.insert(Exchange::USD("2021-10-04".to_string()), 3.9368); + exchange_rates.insert(Exchange::USD("2022-11-16".to_string()), 4.505); + exchange_rates.insert(Exchange::USD("2023-11-22".to_string()), 4.018); + exchange_rates.insert(Exchange::USD("2015-05-11".to_string()), 3.6489); + exchange_rates.insert(Exchange::USD("2012-02-21".to_string()), 3.1488); + exchange_rates.insert(Exchange::USD("2018-01-16".to_string()), 3.419); + exchange_rates.insert(Exchange::USD("2015-09-09".to_string()), 3.7634); + exchange_rates.insert(Exchange::USD("2012-07-25".to_string()), 3.4719); + exchange_rates.insert(Exchange::USD("2023-10-19".to_string()), 4.2264); + exchange_rates.insert(Exchange::USD("2020-11-26".to_string()), 3.7586); + exchange_rates.insert(Exchange::USD("2017-09-25".to_string()), 3.5866); + exchange_rates.insert(Exchange::USD("2014-04-23".to_string()), 3.0273); + exchange_rates.insert(Exchange::EUR("2023-08-24".to_string()), 4.473); + exchange_rates.insert(Exchange::USD("2017-12-19".to_string()), 3.5583); + exchange_rates.insert(Exchange::EUR("2023-09-06".to_string()), 4.4974); + exchange_rates.insert(Exchange::EUR("2023-10-13".to_string()), 4.5417); + exchange_rates.insert(Exchange::EUR("2023-12-15".to_string()), 4.3103); + exchange_rates.insert(Exchange::USD("2017-02-27".to_string()), 4.0745); + exchange_rates.insert(Exchange::USD("2024-08-13".to_string()), 3.9314); + exchange_rates.insert(Exchange::USD("2020-06-30".to_string()), 3.9806); + exchange_rates.insert(Exchange::USD("2021-04-14".to_string()), 3.8065); + exchange_rates.insert(Exchange::USD("2019-12-27".to_string()), 3.8266); + exchange_rates.insert(Exchange::USD("2013-02-07".to_string()), 3.0886); + exchange_rates.insert(Exchange::USD("2012-04-02".to_string()), 3.1017); + exchange_rates.insert(Exchange::USD("2015-04-10".to_string()), 3.7894); + exchange_rates.insert(Exchange::USD("2016-12-15".to_string()), 4.2329); + exchange_rates.insert(Exchange::USD("2012-01-24".to_string()), 3.297); + exchange_rates.insert(Exchange::USD("2024-03-12".to_string()), 3.9162); + exchange_rates.insert(Exchange::USD("2016-04-05".to_string()), 3.7337); + exchange_rates.insert(Exchange::USD("2021-04-15".to_string()), 3.8014); + exchange_rates.insert(Exchange::USD("2017-05-29".to_string()), 3.7371); + exchange_rates.insert(Exchange::USD("2019-04-15".to_string()), 3.7789); + exchange_rates.insert(Exchange::USD("2012-01-05".to_string()), 3.5081); + exchange_rates.insert(Exchange::USD("2024-11-18".to_string()), 4.0997); + exchange_rates.insert(Exchange::USD("2024-08-12".to_string()), 3.9488); + exchange_rates.insert(Exchange::USD("2020-04-24".to_string()), 4.2142); + exchange_rates.insert(Exchange::USD("2019-07-25".to_string()), 3.8199); + exchange_rates.insert(Exchange::USD("2015-01-09".to_string()), 3.6252); + exchange_rates.insert(Exchange::USD("2012-05-04".to_string()), 3.1891); + exchange_rates.insert(Exchange::EUR("2023-04-14".to_string()), 4.6494); + exchange_rates.insert(Exchange::USD("2018-09-20".to_string()), 3.6702); + exchange_rates.insert(Exchange::USD("2016-07-25".to_string()), 3.9697); + exchange_rates.insert(Exchange::EUR("2023-06-21".to_string()), 4.4408); + exchange_rates.insert(Exchange::USD("2022-06-29".to_string()), 4.4533); + exchange_rates.insert(Exchange::USD("2017-11-03".to_string()), 3.6408); + exchange_rates.insert(Exchange::USD("2012-11-20".to_string()), 3.2333); + exchange_rates.insert(Exchange::USD("2021-08-12".to_string()), 3.9074); + exchange_rates.insert(Exchange::USD("2024-04-23".to_string()), 4.061); + exchange_rates.insert(Exchange::USD("2019-01-18".to_string()), 3.7694); + exchange_rates.insert(Exchange::USD("2023-11-15".to_string()), 4.0453); + exchange_rates.insert(Exchange::USD("2012-08-10".to_string()), 3.3195); + exchange_rates.insert(Exchange::USD("2021-08-13".to_string()), 3.8934); + exchange_rates.insert(Exchange::USD("2021-08-24".to_string()), 3.9086); + exchange_rates.insert(Exchange::USD("2021-04-21".to_string()), 3.795); + exchange_rates.insert(Exchange::USD("2019-07-08".to_string()), 3.7857); + exchange_rates.insert(Exchange::USD("2024-08-20".to_string()), 3.8506); + exchange_rates.insert(Exchange::USD("2019-12-31".to_string()), 3.7977); + exchange_rates.insert(Exchange::USD("2013-02-13".to_string()), 3.1012); + exchange_rates.insert(Exchange::USD("2016-08-23".to_string()), 3.8061); + exchange_rates.insert(Exchange::USD("2016-06-10".to_string()), 3.8545); + exchange_rates.insert(Exchange::USD("2023-03-21".to_string()), 4.3715); + exchange_rates.insert(Exchange::USD("2021-08-16".to_string()), 3.873); + exchange_rates.insert(Exchange::USD("2013-04-10".to_string()), 3.1405); + exchange_rates.insert(Exchange::USD("2013-04-15".to_string()), 3.1502); + exchange_rates.insert(Exchange::EUR("2023-02-17".to_string()), 4.7747); + exchange_rates.insert(Exchange::USD("2013-04-22".to_string()), 3.1448); + exchange_rates.insert(Exchange::USD("2022-01-28".to_string()), 4.1048); + exchange_rates.insert(Exchange::USD("2013-02-15".to_string()), 3.1398); + exchange_rates.insert(Exchange::USD("2020-09-21".to_string()), 3.7963); + exchange_rates.insert(Exchange::USD("2023-06-13".to_string()), 4.1439); + exchange_rates.insert(Exchange::USD("2022-06-22".to_string()), 4.4338); + exchange_rates.insert(Exchange::USD("2022-05-05".to_string()), 4.4017); + exchange_rates.insert(Exchange::USD("2020-12-15".to_string()), 3.6554); + exchange_rates.insert(Exchange::USD("2019-02-25".to_string()), 3.8241); + exchange_rates.insert(Exchange::USD("2017-09-15".to_string()), 3.5863); + exchange_rates.insert(Exchange::USD("2015-07-16".to_string()), 3.7694); + exchange_rates.insert(Exchange::USD("2012-05-24".to_string()), 3.4779); + exchange_rates.insert(Exchange::USD("2016-07-07".to_string()), 4.0036); + exchange_rates.insert(Exchange::USD("2014-11-03".to_string()), 3.3772); + exchange_rates.insert(Exchange::EUR("2023-11-29".to_string()), 4.3327); + exchange_rates.insert(Exchange::USD("2020-12-31".to_string()), 3.7584); + exchange_rates.insert(Exchange::USD("2024-06-27".to_string()), 4.0312); + exchange_rates.insert(Exchange::USD("2021-01-22".to_string()), 3.7255); + exchange_rates.insert(Exchange::USD("2021-07-22".to_string()), 3.8801); + exchange_rates.insert(Exchange::USD("2020-09-16".to_string()), 3.7526); + exchange_rates.insert(Exchange::USD("2021-12-21".to_string()), 4.0937); + exchange_rates.insert(Exchange::USD("2020-02-28".to_string()), 3.9255); + exchange_rates.insert(Exchange::USD("2018-10-18".to_string()), 3.7302); + exchange_rates.insert(Exchange::USD("2014-10-28".to_string()), 3.3295); + exchange_rates.insert(Exchange::USD("2018-09-13".to_string()), 3.713); + exchange_rates.insert(Exchange::USD("2012-09-03".to_string()), 3.3398); + exchange_rates.insert(Exchange::EUR("2023-07-24".to_string()), 4.4517); + exchange_rates.insert(Exchange::USD("2020-03-18".to_string()), 4.0749); + exchange_rates.insert(Exchange::USD("2020-08-26".to_string()), 3.7269); + exchange_rates.insert(Exchange::USD("2014-01-31".to_string()), 3.1288); + exchange_rates.insert(Exchange::USD("2014-10-29".to_string()), 3.3192); + exchange_rates.insert(Exchange::USD("2012-03-06".to_string()), 3.1557); + exchange_rates.insert(Exchange::USD("2014-02-11".to_string()), 3.0581); + exchange_rates.insert(Exchange::USD("2016-08-17".to_string()), 3.8075); + exchange_rates.insert(Exchange::USD("2024-08-06".to_string()), 3.9467); + exchange_rates.insert(Exchange::USD("2019-01-03".to_string()), 3.7827); + exchange_rates.insert(Exchange::USD("2022-08-19".to_string()), 4.7061); + exchange_rates.insert(Exchange::USD("2019-03-14".to_string()), 3.8018); + exchange_rates.insert(Exchange::USD("2016-02-29".to_string()), 3.9935); + exchange_rates.insert(Exchange::USD("2016-06-03".to_string()), 3.9384); + exchange_rates.insert(Exchange::USD("2024-07-26".to_string()), 3.9415); + exchange_rates.insert(Exchange::USD("2018-02-13".to_string()), 3.3916); + exchange_rates.insert(Exchange::USD("2016-05-13".to_string()), 3.8775); + exchange_rates.insert(Exchange::USD("2015-08-21".to_string()), 3.7308); + exchange_rates.insert(Exchange::USD("2013-06-20".to_string()), 3.2693); + exchange_rates.insert(Exchange::USD("2024-11-21".to_string()), 4.1332); + exchange_rates.insert(Exchange::USD("2019-12-16".to_string()), 3.8311); + exchange_rates.insert(Exchange::USD("2015-12-01".to_string()), 4.0248); + exchange_rates.insert(Exchange::USD("2014-04-11".to_string()), 3.0086); + exchange_rates.insert(Exchange::USD("2016-12-20".to_string()), 4.2493); + exchange_rates.insert(Exchange::USD("2024-03-08".to_string()), 3.9392); + exchange_rates.insert(Exchange::USD("2013-11-13".to_string()), 3.1358); + exchange_rates.insert(Exchange::USD("2014-04-22".to_string()), 3.034); + exchange_rates.insert(Exchange::USD("2012-03-12".to_string()), 3.1285); + exchange_rates.insert(Exchange::USD("2015-03-12".to_string()), 3.8928); + exchange_rates.insert(Exchange::USD("2017-01-25".to_string()), 4.0585); + exchange_rates.insert(Exchange::USD("2018-12-12".to_string()), 3.7934); + exchange_rates.insert(Exchange::USD("2022-09-14".to_string()), 4.7233); + exchange_rates.insert(Exchange::USD("2020-12-01".to_string()), 3.7367); + exchange_rates.insert(Exchange::USD("2023-12-20".to_string()), 3.9527); + exchange_rates.insert(Exchange::USD("2017-05-04".to_string()), 3.863); + exchange_rates.insert(Exchange::USD("2015-03-25".to_string()), 3.7355); + exchange_rates.insert(Exchange::USD("2022-04-15".to_string()), 4.2865); + exchange_rates.insert(Exchange::USD("2014-12-23".to_string()), 3.4937); + exchange_rates.insert(Exchange::USD("2018-01-18".to_string()), 3.4108); + exchange_rates.insert(Exchange::USD("2013-01-08".to_string()), 3.1457); + exchange_rates.insert(Exchange::USD("2020-11-25".to_string()), 3.7556); + exchange_rates.insert(Exchange::USD("2016-06-30".to_string()), 3.9803); + exchange_rates.insert(Exchange::USD("2016-04-06".to_string()), 3.751); + exchange_rates.insert(Exchange::USD("2013-08-23".to_string()), 3.1673); + exchange_rates.insert(Exchange::USD("2012-01-20".to_string()), 3.3537); + exchange_rates.insert(Exchange::USD("2016-07-06".to_string()), 4.0225); + exchange_rates.insert(Exchange::USD("2017-11-14".to_string()), 3.6126); + exchange_rates.insert(Exchange::USD("2018-09-05".to_string()), 3.733); + exchange_rates.insert(Exchange::USD("2016-11-28".to_string()), 4.1521); + exchange_rates.insert(Exchange::USD("2023-04-25".to_string()), 4.1649); + exchange_rates.insert(Exchange::USD("2022-09-27".to_string()), 4.9476); + exchange_rates.insert(Exchange::USD("2016-12-19".to_string()), 4.2255); + exchange_rates.insert(Exchange::USD("2015-02-27".to_string()), 3.698); + exchange_rates.insert(Exchange::USD("2014-10-08".to_string()), 3.305); + exchange_rates.insert(Exchange::USD("2012-07-26".to_string()), 3.4523); + exchange_rates.insert(Exchange::EUR("2023-01-04".to_string()), 4.6688); + exchange_rates.insert(Exchange::EUR("2023-08-25".to_string()), 4.4674); + exchange_rates.insert(Exchange::USD("2021-10-19".to_string()), 3.9212); + exchange_rates.insert(Exchange::USD("2017-09-08".to_string()), 3.5239); + exchange_rates.insert(Exchange::USD("2016-08-29".to_string()), 3.8789); + exchange_rates.insert(Exchange::USD("2022-09-23".to_string()), 4.8796); + exchange_rates.insert(Exchange::USD("2021-12-30".to_string()), 4.0631); + exchange_rates.insert(Exchange::USD("2016-10-24".to_string()), 3.969); + exchange_rates.insert(Exchange::USD("2021-06-24".to_string()), 3.7986); + exchange_rates.insert(Exchange::USD("2013-01-02".to_string()), 3.066); + exchange_rates.insert(Exchange::USD("2023-02-15".to_string()), 4.4372); + exchange_rates.insert(Exchange::USD("2021-01-11".to_string()), 3.7271); + exchange_rates.insert(Exchange::USD("2018-09-06".to_string()), 3.7143); + exchange_rates.insert(Exchange::USD("2015-06-19".to_string()), 3.6879); + exchange_rates.insert(Exchange::USD("2020-08-14".to_string()), 3.7227); + exchange_rates.insert(Exchange::USD("2013-03-26".to_string()), 3.2427); + exchange_rates.insert(Exchange::USD("2013-03-28".to_string()), 3.2773); + exchange_rates.insert(Exchange::EUR("2023-01-18".to_string()), 4.7091); + exchange_rates.insert(Exchange::EUR("2023-03-06".to_string()), 4.7073); + exchange_rates.insert(Exchange::USD("2012-03-15".to_string()), 3.1723); + exchange_rates.insert(Exchange::USD("2018-05-08".to_string()), 3.5884); + exchange_rates.insert(Exchange::USD("2013-06-11".to_string()), 3.2201); + exchange_rates.insert(Exchange::USD("2021-02-23".to_string()), 3.7117); + exchange_rates.insert(Exchange::EUR("2023-08-21".to_string()), 4.4768); + exchange_rates.insert(Exchange::USD("2018-10-04".to_string()), 3.7512); + exchange_rates.insert(Exchange::USD("2019-01-17".to_string()), 3.7615); + exchange_rates.insert(Exchange::USD("2019-04-26".to_string()), 3.8508); + exchange_rates.insert(Exchange::USD("2018-11-21".to_string()), 3.7829); + exchange_rates.insert(Exchange::USD("2015-02-19".to_string()), 3.6631); + exchange_rates.insert(Exchange::USD("2015-04-01".to_string()), 3.789); + exchange_rates.insert(Exchange::USD("2018-02-16".to_string()), 3.3173); + exchange_rates.insert(Exchange::USD("2015-11-06".to_string()), 3.9075); + exchange_rates.insert(Exchange::USD("2013-04-04".to_string()), 3.275); + exchange_rates.insert(Exchange::USD("2012-05-28".to_string()), 3.4535); + exchange_rates.insert(Exchange::USD("2017-01-30".to_string()), 4.0472); + exchange_rates.insert(Exchange::USD("2023-01-05".to_string()), 4.397); + exchange_rates.insert(Exchange::USD("2022-01-04".to_string()), 4.0468); + exchange_rates.insert(Exchange::USD("2014-07-30".to_string()), 3.0978); + exchange_rates.insert(Exchange::USD("2018-10-15".to_string()), 3.7091); + exchange_rates.insert(Exchange::USD("2016-10-13".to_string()), 3.9164); + exchange_rates.insert(Exchange::USD("2013-06-05".to_string()), 3.2421); + exchange_rates.insert(Exchange::USD("2020-05-06".to_string()), 4.2022); + exchange_rates.insert(Exchange::USD("2016-09-20".to_string()), 3.8438); + exchange_rates.insert(Exchange::USD("2014-02-13".to_string()), 3.0532); + exchange_rates.insert(Exchange::USD("2014-03-26".to_string()), 3.0318); + exchange_rates.insert(Exchange::USD("2022-12-02".to_string()), 4.4492); + exchange_rates.insert(Exchange::USD("2021-11-04".to_string()), 3.9807); + exchange_rates.insert(Exchange::USD("2013-05-13".to_string()), 3.2051); + exchange_rates.insert(Exchange::USD("2021-07-02".to_string()), 3.8263); + exchange_rates.insert(Exchange::USD("2021-02-17".to_string()), 3.7287); + exchange_rates.insert(Exchange::USD("2021-05-10".to_string()), 3.7493); + exchange_rates.insert(Exchange::USD("2022-01-07".to_string()), 4.0279); + exchange_rates.insert(Exchange::USD("2014-09-12".to_string()), 3.2468); + exchange_rates.insert(Exchange::USD("2019-09-25".to_string()), 3.9856); + exchange_rates.insert(Exchange::USD("2014-12-05".to_string()), 3.3619); + exchange_rates.insert(Exchange::USD("2014-12-11".to_string()), 3.3611); + exchange_rates.insert(Exchange::USD("2016-10-12".to_string()), 3.8851); + exchange_rates.insert(Exchange::USD("2013-06-19".to_string()), 3.1777); + exchange_rates.insert(Exchange::USD("2013-10-04".to_string()), 3.0902); + exchange_rates.insert(Exchange::EUR("2023-04-11".to_string()), 4.681); + exchange_rates.insert(Exchange::USD("2012-09-05".to_string()), 3.3693); + exchange_rates.insert(Exchange::EUR("2023-07-03".to_string()), 4.4321); + exchange_rates.insert(Exchange::EUR("2023-08-10".to_string()), 4.465); + exchange_rates.insert(Exchange::USD("2022-06-13".to_string()), 4.4209); + exchange_rates.insert(Exchange::USD("2013-08-29".to_string()), 3.2269); + exchange_rates.insert(Exchange::USD("2012-03-01".to_string()), 3.0887); + exchange_rates.insert(Exchange::USD("2024-01-02".to_string()), 3.9432); + exchange_rates.insert(Exchange::EUR("2023-08-28".to_string()), 4.4716); + exchange_rates.insert(Exchange::USD("2018-08-07".to_string()), 3.6722); + exchange_rates.insert(Exchange::EUR("2023-11-10".to_string()), 4.4227); + exchange_rates.insert(Exchange::USD("2016-06-07".to_string()), 3.8298); + exchange_rates.insert(Exchange::USD("2015-07-20".to_string()), 3.7868); + exchange_rates.insert(Exchange::USD("2014-08-12".to_string()), 3.1465); + exchange_rates.insert(Exchange::USD("2024-04-22".to_string()), 4.054); + exchange_rates.insert(Exchange::USD("2023-05-18".to_string()), 4.1929); + exchange_rates.insert(Exchange::USD("2023-06-14".to_string()), 4.1393); + exchange_rates.insert(Exchange::USD("2024-11-05".to_string()), 4.0038); + exchange_rates.insert(Exchange::USD("2015-11-30".to_string()), 4.0304); + exchange_rates.insert(Exchange::USD("2014-08-21".to_string()), 3.1569); + exchange_rates.insert(Exchange::USD("2012-01-18".to_string()), 3.4); + exchange_rates.insert(Exchange::USD("2015-11-09".to_string()), 3.9605); + exchange_rates.insert(Exchange::EUR("2023-10-25".to_string()), 4.4758); + exchange_rates.insert(Exchange::USD("2023-05-16".to_string()), 4.1228); + exchange_rates.insert(Exchange::USD("2024-04-02".to_string()), 4.0009); + exchange_rates.insert(Exchange::USD("2021-02-08".to_string()), 3.7301); + exchange_rates.insert(Exchange::USD("2024-08-26".to_string()), 3.8284); + exchange_rates.insert(Exchange::USD("2022-01-14".to_string()), 3.9597); + exchange_rates.insert(Exchange::USD("2021-03-22".to_string()), 3.8768); + exchange_rates.insert(Exchange::USD("2020-11-05".to_string()), 3.8353); + exchange_rates.insert(Exchange::USD("2015-02-10".to_string()), 3.722); + exchange_rates.insert(Exchange::USD("2018-01-31".to_string()), 3.3318); + exchange_rates.insert(Exchange::USD("2015-06-15".to_string()), 3.6905); + exchange_rates.insert(Exchange::USD("2015-11-10".to_string()), 3.957); + exchange_rates.insert(Exchange::USD("2018-01-11".to_string()), 3.495); + exchange_rates.insert(Exchange::USD("2020-01-13".to_string()), 3.8101); + exchange_rates.insert(Exchange::USD("2018-07-17".to_string()), 3.6619); + exchange_rates.insert(Exchange::USD("2013-05-21".to_string()), 3.249); + exchange_rates.insert(Exchange::USD("2018-01-23".to_string()), 3.4084); + exchange_rates.insert(Exchange::USD("2013-05-27".to_string()), 3.2416); + exchange_rates.insert(Exchange::USD("2019-03-04".to_string()), 3.7893); + exchange_rates.insert(Exchange::USD("2020-12-14".to_string()), 3.6548); + exchange_rates.insert(Exchange::USD("2014-01-27".to_string()), 3.0884); + exchange_rates.insert(Exchange::USD("2018-10-19".to_string()), 3.7601); + exchange_rates.insert(Exchange::USD("2018-03-23".to_string()), 3.4319); + exchange_rates.insert(Exchange::USD("2018-07-23".to_string()), 3.6957); + exchange_rates.insert(Exchange::USD("2017-04-05".to_string()), 3.9783); + exchange_rates.insert(Exchange::USD("2022-10-10".to_string()), 5.0239); + exchange_rates.insert(Exchange::USD("2016-11-24".to_string()), 4.188); + exchange_rates.insert(Exchange::USD("2015-07-23".to_string()), 3.7559); + exchange_rates.insert(Exchange::USD("2014-08-26".to_string()), 3.1686); + exchange_rates.insert(Exchange::USD("2013-08-02".to_string()), 3.2201); + exchange_rates.insert(Exchange::USD("2022-06-20".to_string()), 4.44); + exchange_rates.insert(Exchange::USD("2013-08-21".to_string()), 3.1698); + exchange_rates.insert(Exchange::USD("2013-10-28".to_string()), 3.0271); + exchange_rates.insert(Exchange::USD("2016-05-30".to_string()), 3.947); + exchange_rates.insert(Exchange::USD("2012-10-09".to_string()), 3.1501); + exchange_rates.insert(Exchange::USD("2024-04-18".to_string()), 4.0559); + exchange_rates.insert(Exchange::USD("2021-03-12".to_string()), 3.8521); + exchange_rates.insert(Exchange::USD("2021-07-21".to_string()), 3.9035); + exchange_rates.insert(Exchange::USD("2021-08-31".to_string()), 3.8386); + exchange_rates.insert(Exchange::USD("2022-12-08".to_string()), 4.476); + exchange_rates.insert(Exchange::USD("2019-02-20".to_string()), 3.8221); + exchange_rates.insert(Exchange::USD("2017-07-20".to_string()), 3.6604); + exchange_rates.insert(Exchange::USD("2024-07-31".to_string()), 3.9689); + exchange_rates.insert(Exchange::USD("2020-09-29".to_string()), 3.9228); + exchange_rates.insert(Exchange::USD("2018-01-10".to_string()), 3.4999); + exchange_rates.insert(Exchange::USD("2021-06-15".to_string()), 3.7349); + exchange_rates.insert(Exchange::USD("2018-02-02".to_string()), 3.3329); + exchange_rates.insert(Exchange::USD("2021-05-24".to_string()), 3.6795); + exchange_rates.insert(Exchange::USD("2017-09-28".to_string()), 3.6682); + exchange_rates.insert(Exchange::USD("2016-04-01".to_string()), 3.7193); + exchange_rates.insert(Exchange::USD("2015-07-27".to_string()), 3.7455); + exchange_rates.insert(Exchange::USD("2013-06-25".to_string()), 3.284); + exchange_rates.insert(Exchange::USD("2016-06-13".to_string()), 3.8943); + exchange_rates.insert(Exchange::USD("2023-02-02".to_string()), 4.2803); + exchange_rates.insert(Exchange::USD("2018-06-18".to_string()), 3.7003); + exchange_rates.insert(Exchange::EUR("2023-06-22".to_string()), 4.4335); + exchange_rates.insert(Exchange::USD("2018-11-05".to_string()), 3.7907); + exchange_rates.insert(Exchange::USD("2013-12-16".to_string()), 3.035); + exchange_rates.insert(Exchange::EUR("2023-11-30".to_string()), 4.3492); + exchange_rates.insert(Exchange::EUR("2023-12-18".to_string()), 4.3269); + exchange_rates.insert(Exchange::USD("2022-04-08".to_string()), 4.2703); + exchange_rates.insert(Exchange::USD("2023-01-02".to_string()), 4.3811); + exchange_rates.insert(Exchange::USD("2018-01-04".to_string()), 3.4472); + exchange_rates.insert(Exchange::USD("2016-10-21".to_string()), 3.98); + exchange_rates.insert(Exchange::USD("2014-11-10".to_string()), 3.3765); + exchange_rates.insert(Exchange::USD("2021-11-16".to_string()), 4.1061); + exchange_rates.insert(Exchange::USD("2017-09-14".to_string()), 3.5984); + exchange_rates.insert(Exchange::USD("2017-12-04".to_string()), 3.5499); + exchange_rates.insert(Exchange::USD("2023-01-11".to_string()), 4.3639); + exchange_rates.insert(Exchange::USD("2016-06-09".to_string()), 3.8126); + exchange_rates.insert(Exchange::USD("2012-01-30".to_string()), 3.2433); + exchange_rates.insert(Exchange::EUR("2023-02-06".to_string()), 4.7195); + exchange_rates.insert(Exchange::USD("2022-02-23".to_string()), 3.9937); + exchange_rates.insert(Exchange::USD("2018-10-02".to_string()), 3.7326); + exchange_rates.insert(Exchange::EUR("2023-02-16".to_string()), 4.7728); + exchange_rates.insert(Exchange::USD("2012-03-21".to_string()), 3.1173); + exchange_rates.insert(Exchange::USD("2022-03-09".to_string()), 4.4147); + exchange_rates.insert(Exchange::EUR("2023-01-27".to_string()), 4.7076); + exchange_rates.insert(Exchange::USD("2013-03-12".to_string()), 3.1887); + exchange_rates.insert(Exchange::EUR("2023-05-25".to_string()), 4.503); + exchange_rates.insert(Exchange::EUR("2023-06-01".to_string()), 4.5312); + exchange_rates.insert(Exchange::EUR("2023-06-30".to_string()), 4.4503); + exchange_rates.insert(Exchange::EUR("2023-07-07".to_string()), 4.4803); + exchange_rates.insert(Exchange::USD("2024-10-09".to_string()), 3.9266); + exchange_rates.insert(Exchange::USD("2021-02-18".to_string()), 3.7152); + exchange_rates.insert(Exchange::USD("2018-04-24".to_string()), 3.4401); + exchange_rates.insert(Exchange::USD("2012-05-31".to_string()), 3.5372); + exchange_rates.insert(Exchange::EUR("2023-04-17".to_string()), 4.6341); + exchange_rates.insert(Exchange::USD("2022-11-17".to_string()), 4.5387); + exchange_rates.insert(Exchange::USD("2020-06-22".to_string()), 3.9667); + exchange_rates.insert(Exchange::USD("2023-09-06".to_string()), 4.1895); + exchange_rates.insert(Exchange::USD("2016-12-13".to_string()), 4.1905); + exchange_rates.insert(Exchange::USD("2015-01-08".to_string()), 3.6482); + exchange_rates.insert(Exchange::USD("2019-06-27".to_string()), 3.7426); + exchange_rates.insert(Exchange::USD("2022-10-24".to_string()), 4.8669); + exchange_rates.insert(Exchange::USD("2018-12-05".to_string()), 3.7832); + exchange_rates.insert(Exchange::USD("2015-09-16".to_string()), 3.7315); + exchange_rates.insert(Exchange::USD("2015-11-27".to_string()), 4.0333); + exchange_rates.insert(Exchange::USD("2018-09-07".to_string()), 3.6995); + exchange_rates.insert(Exchange::USD("2014-05-20".to_string()), 3.062); + exchange_rates.insert(Exchange::USD("2022-08-02".to_string()), 4.5984); + exchange_rates.insert(Exchange::USD("2021-08-05".to_string()), 3.8485); + exchange_rates.insert(Exchange::USD("2017-09-07".to_string()), 3.5511); + exchange_rates.insert(Exchange::USD("2012-11-26".to_string()), 3.1744); + exchange_rates.insert(Exchange::EUR("2023-05-09".to_string()), 4.5683); + exchange_rates.insert(Exchange::USD("2020-06-02".to_string()), 3.9303); + exchange_rates.insert(Exchange::USD("2024-01-04".to_string()), 3.9684); + exchange_rates.insert(Exchange::USD("2015-08-20".to_string()), 3.7659); + exchange_rates.insert(Exchange::USD("2012-07-06".to_string()), 3.4057); + exchange_rates.insert(Exchange::USD("2018-04-16".to_string()), 3.3666); + exchange_rates.insert(Exchange::USD("2012-10-11".to_string()), 3.1819); + exchange_rates.insert(Exchange::EUR("2023-07-26".to_string()), 4.4248); + exchange_rates.insert(Exchange::USD("2013-09-20".to_string()), 3.1152); + exchange_rates.insert(Exchange::USD("2021-03-01".to_string()), 3.7572); + exchange_rates.insert(Exchange::USD("2013-02-21".to_string()), 3.1633); + exchange_rates.insert(Exchange::USD("2013-09-18".to_string()), 3.1689); + exchange_rates.insert(Exchange::USD("2018-01-24".to_string()), 3.375); + exchange_rates.insert(Exchange::USD("2018-02-27".to_string()), 3.3816); + exchange_rates.insert(Exchange::USD("2021-07-26".to_string()), 3.8915); + exchange_rates.insert(Exchange::USD("2013-10-24".to_string()), 3.0323); + exchange_rates.insert(Exchange::EUR("2023-07-04".to_string()), 4.4273); + exchange_rates.insert(Exchange::USD("2022-02-22".to_string()), 4.012); + exchange_rates.insert(Exchange::USD("2018-03-21".to_string()), 3.4544); + exchange_rates.insert(Exchange::USD("2020-06-18".to_string()), 3.9589); + exchange_rates.insert(Exchange::USD("2019-12-20".to_string()), 3.8311); + exchange_rates.insert(Exchange::USD("2015-03-24".to_string()), 3.7453); + exchange_rates.insert(Exchange::USD("2022-04-19".to_string()), 4.2887); + exchange_rates.insert(Exchange::USD("2019-05-24".to_string()), 3.8436); + exchange_rates.insert(Exchange::USD("2018-03-22".to_string()), 3.4264); + exchange_rates.insert(Exchange::USD("2014-01-21".to_string()), 3.0763); + exchange_rates.insert(Exchange::USD("2024-11-14".to_string()), 4.122); + exchange_rates.insert(Exchange::USD("2024-08-16".to_string()), 3.8914); + exchange_rates.insert(Exchange::USD("2014-02-20".to_string()), 3.049); + exchange_rates.insert(Exchange::USD("2014-10-30".to_string()), 3.3592); + exchange_rates.insert(Exchange::USD("2022-01-13".to_string()), 3.9463); + exchange_rates.insert(Exchange::USD("2022-06-24".to_string()), 4.4656); + exchange_rates.insert(Exchange::USD("2017-08-17".to_string()), 3.6258); + exchange_rates.insert(Exchange::USD("2015-12-21".to_string()), 3.92); + exchange_rates.insert(Exchange::USD("2014-01-17".to_string()), 3.0596); + exchange_rates.insert(Exchange::USD("2023-04-06".to_string()), 4.3033); + exchange_rates.insert(Exchange::USD("2019-01-02".to_string()), 3.7619); + exchange_rates.insert(Exchange::USD("2013-08-26".to_string()), 3.1658); + exchange_rates.insert(Exchange::EUR("2023-05-22".to_string()), 4.5269); + exchange_rates.insert(Exchange::USD("2019-05-31".to_string()), 3.8498); + exchange_rates.insert(Exchange::USD("2017-06-21".to_string()), 3.809); + exchange_rates.insert(Exchange::USD("2015-10-22".to_string()), 3.7806); + exchange_rates.insert(Exchange::USD("2018-05-18".to_string()), 3.6385); + exchange_rates.insert(Exchange::USD("2013-08-30".to_string()), 3.2209); + exchange_rates.insert(Exchange::USD("2024-02-29".to_string()), 3.9803); + exchange_rates.insert(Exchange::USD("2023-03-06".to_string()), 4.4289); + exchange_rates.insert(Exchange::USD("2020-06-12".to_string()), 3.9299); + exchange_rates.insert(Exchange::USD("2020-08-31".to_string()), 3.6924); + exchange_rates.insert(Exchange::USD("2021-01-28".to_string()), 3.7566); + exchange_rates.insert(Exchange::USD("2019-05-16".to_string()), 3.8259); + exchange_rates.insert(Exchange::USD("2024-03-29".to_string()), 3.9886); + exchange_rates.insert(Exchange::USD("2019-09-10".to_string()), 3.9273); + exchange_rates.insert(Exchange::USD("2023-03-01".to_string()), 4.4094); + exchange_rates.insert(Exchange::USD("2018-11-19".to_string()), 3.784); + exchange_rates.insert(Exchange::USD("2017-10-06".to_string()), 3.6799); + exchange_rates.insert(Exchange::USD("2012-07-24".to_string()), 3.4678); + exchange_rates.insert(Exchange::USD("2015-11-04".to_string()), 3.8876); + exchange_rates.insert(Exchange::EUR("2023-04-07".to_string()), 4.6862); + exchange_rates.insert(Exchange::USD("2019-07-26".to_string()), 3.8296); + exchange_rates.insert(Exchange::USD("2015-03-26".to_string()), 3.705); + exchange_rates.insert(Exchange::USD("2014-09-26".to_string()), 3.2776); + exchange_rates.insert(Exchange::EUR("2023-04-24".to_string()), 4.6129); + exchange_rates.insert(Exchange::USD("2013-09-13".to_string()), 3.1696); + exchange_rates.insert(Exchange::USD("2024-01-29".to_string()), 4.0326); + exchange_rates.insert(Exchange::USD("2019-05-13".to_string()), 3.8321); + exchange_rates.insert(Exchange::USD("2024-05-07".to_string()), 4.0056); + exchange_rates.insert(Exchange::USD("2019-01-07".to_string()), 3.7575); + exchange_rates.insert(Exchange::EUR("2023-06-15".to_string()), 4.4633); + exchange_rates.insert(Exchange::USD("2019-08-29".to_string()), 3.9586); + exchange_rates.insert(Exchange::USD("2017-02-01".to_string()), 4.0071); + exchange_rates.insert(Exchange::USD("2022-04-05".to_string()), 4.2233); + exchange_rates.insert(Exchange::USD("2019-04-04".to_string()), 3.8215); + exchange_rates.insert(Exchange::USD("2018-04-05".to_string()), 3.4301); + exchange_rates.insert(Exchange::USD("2017-09-13".to_string()), 3.5627); + exchange_rates.insert(Exchange::USD("2023-04-18".to_string()), 4.2151); + exchange_rates.insert(Exchange::USD("2024-03-15".to_string()), 3.9392); + exchange_rates.insert(Exchange::USD("2017-11-10".to_string()), 3.6274); + exchange_rates.insert(Exchange::USD("2015-03-04".to_string()), 3.7485); + exchange_rates.insert(Exchange::USD("2024-02-12".to_string()), 4.0189); + exchange_rates.insert(Exchange::USD("2024-09-13".to_string()), 3.8659); + exchange_rates.insert(Exchange::USD("2020-09-24".to_string()), 3.8833); + exchange_rates.insert(Exchange::USD("2019-09-13".to_string()), 3.912); + exchange_rates.insert(Exchange::USD("2023-05-30".to_string()), 4.2242); + exchange_rates.insert(Exchange::USD("2015-04-16".to_string()), 3.7746); + exchange_rates.insert(Exchange::EUR("2023-07-31".to_string()), 4.4135); + exchange_rates.insert(Exchange::USD("2019-01-14".to_string()), 3.7458); + exchange_rates.insert(Exchange::USD("2022-09-22".to_string()), 4.8343); + exchange_rates.insert(Exchange::USD("2018-12-11".to_string()), 3.7763); + exchange_rates.insert(Exchange::USD("2016-03-22".to_string()), 3.8005); + exchange_rates.insert(Exchange::USD("2017-12-20".to_string()), 3.5459); + exchange_rates.insert(Exchange::EUR("2023-11-27".to_string()), 4.3543); + exchange_rates.insert(Exchange::EUR("2023-11-13".to_string()), 4.4336); + exchange_rates.insert(Exchange::USD("2023-07-18".to_string()), 3.9451); + exchange_rates.insert(Exchange::USD("2023-11-06".to_string()), 4.1512); + exchange_rates.insert(Exchange::USD("2020-02-20".to_string()), 3.9621); + exchange_rates.insert(Exchange::USD("2017-01-23".to_string()), 4.076); + exchange_rates.insert(Exchange::EUR("2023-02-07".to_string()), 4.7476); + exchange_rates.insert(Exchange::USD("2024-05-24".to_string()), 3.9376); + exchange_rates.insert(Exchange::USD("2013-04-18".to_string()), 3.1529); + exchange_rates.insert(Exchange::USD("2020-03-09".to_string()), 3.7899); + exchange_rates.insert(Exchange::USD("2023-09-26".to_string()), 4.3485); + exchange_rates.insert(Exchange::USD("2023-10-17".to_string()), 4.2131); + exchange_rates.insert(Exchange::USD("2020-02-24".to_string()), 3.9772); + exchange_rates.insert(Exchange::USD("2020-12-16".to_string()), 3.6334); + exchange_rates.insert(Exchange::EUR("2023-04-21".to_string()), 4.6039); + exchange_rates.insert(Exchange::USD("2023-01-31".to_string()), 4.348); + exchange_rates.insert(Exchange::USD("2019-03-18".to_string()), 3.7876); + exchange_rates.insert(Exchange::USD("2021-03-05".to_string()), 3.8393); + exchange_rates.insert(Exchange::USD("2014-06-24".to_string()), 3.0526); + exchange_rates.insert(Exchange::USD("2013-03-11".to_string()), 3.1828); + exchange_rates.insert(Exchange::EUR("2023-11-24".to_string()), 4.3722); + exchange_rates.insert(Exchange::USD("2017-08-28".to_string()), 3.5736); + exchange_rates.insert(Exchange::USD("2012-05-15".to_string()), 3.3579); + exchange_rates.insert(Exchange::EUR("2023-06-02".to_string()), 4.5148); + exchange_rates.insert(Exchange::USD("2022-08-09".to_string()), 4.5919); + exchange_rates.insert(Exchange::EUR("2023-10-19".to_string()), 4.4529); + exchange_rates.insert(Exchange::USD("2013-03-14".to_string()), 3.2); + exchange_rates.insert(Exchange::USD("2017-07-19".to_string()), 3.6486); + exchange_rates.insert(Exchange::USD("2012-08-28".to_string()), 3.2685); + exchange_rates.insert(Exchange::USD("2022-12-05".to_string()), 4.4415); + exchange_rates.insert(Exchange::USD("2024-01-16".to_string()), 4.0358); + exchange_rates.insert(Exchange::USD("2022-02-17".to_string()), 3.9687); + exchange_rates.insert(Exchange::USD("2018-10-12".to_string()), 3.713); + exchange_rates.insert(Exchange::USD("2021-09-09".to_string()), 3.8292); + exchange_rates.insert(Exchange::USD("2024-09-19".to_string()), 3.8249); + exchange_rates.insert(Exchange::USD("2016-02-15".to_string()), 3.922); + exchange_rates.insert(Exchange::USD("2021-12-17".to_string()), 4.0882); + exchange_rates.insert(Exchange::USD("2016-08-03".to_string()), 3.8516); + exchange_rates.insert(Exchange::USD("2018-12-03".to_string()), 3.7672); + exchange_rates.insert(Exchange::USD("2014-07-31".to_string()), 3.1094); + exchange_rates.insert(Exchange::USD("2013-06-14".to_string()), 3.1654); + exchange_rates.insert(Exchange::USD("2012-06-28".to_string()), 3.4408); + exchange_rates.insert(Exchange::USD("2016-05-11".to_string()), 3.8855); + exchange_rates.insert(Exchange::EUR("2023-11-14".to_string()), 4.4163); + exchange_rates.insert(Exchange::USD("2023-03-16".to_string()), 4.4248); + exchange_rates.insert(Exchange::USD("2020-12-09".to_string()), 3.6657); + exchange_rates.insert(Exchange::USD("2014-01-22".to_string()), 3.0761); + exchange_rates.insert(Exchange::USD("2018-08-02".to_string()), 3.6783); + exchange_rates.insert(Exchange::EUR("2023-02-01".to_string()), 4.708); + exchange_rates.insert(Exchange::EUR("2023-03-29".to_string()), 4.685); + exchange_rates.insert(Exchange::USD("2018-08-31".to_string()), 3.6808); + exchange_rates.insert(Exchange::USD("2022-10-07".to_string()), 4.9588); + exchange_rates.insert(Exchange::USD("2021-04-28".to_string()), 3.7939); + exchange_rates.insert(Exchange::USD("2023-01-18".to_string()), 4.3322); + exchange_rates.insert(Exchange::USD("2023-03-17".to_string()), 4.4202); + exchange_rates.insert(Exchange::USD("2024-01-26".to_string()), 4.0393); + exchange_rates.insert(Exchange::USD("2021-01-14".to_string()), 3.7323); + exchange_rates.insert(Exchange::USD("2020-09-28".to_string()), 3.9083); + exchange_rates.insert(Exchange::USD("2020-11-10".to_string()), 3.8168); + exchange_rates.insert(Exchange::USD("2017-02-24".to_string()), 4.0681); + exchange_rates.insert(Exchange::USD("2016-08-10".to_string()), 3.825); + exchange_rates.insert(Exchange::USD("2013-01-14".to_string()), 3.0828); + exchange_rates.insert(Exchange::USD("2021-02-15".to_string()), 3.6949); + exchange_rates.insert(Exchange::USD("2021-03-09".to_string()), 3.8507); + exchange_rates.insert(Exchange::USD("2017-10-17".to_string()), 3.5964); + exchange_rates.insert(Exchange::USD("2015-01-13".to_string()), 3.6252); + exchange_rates.insert(Exchange::USD("2012-08-03".to_string()), 3.3548); + exchange_rates.insert(Exchange::USD("2020-02-04".to_string()), 3.8773); + exchange_rates.insert(Exchange::USD("2017-03-13".to_string()), 4.0747); + exchange_rates.insert(Exchange::USD("2015-10-02".to_string()), 3.8028); + exchange_rates.insert(Exchange::USD("2023-08-23".to_string()), 4.1438); + exchange_rates.insert(Exchange::USD("2021-11-30".to_string()), 4.1214); + exchange_rates.insert(Exchange::USD("2018-06-28".to_string()), 3.7705); + exchange_rates.insert(Exchange::USD("2019-02-08".to_string()), 3.804); + exchange_rates.insert(Exchange::USD("2023-05-10".to_string()), 4.1532); + exchange_rates.insert(Exchange::USD("2012-04-19".to_string()), 3.1879); + exchange_rates.insert(Exchange::EUR("2023-10-24".to_string()), 4.4604); + exchange_rates.insert(Exchange::USD("2017-11-27".to_string()), 3.5276); + exchange_rates.insert(Exchange::USD("2023-01-10".to_string()), 4.372); + exchange_rates.insert(Exchange::USD("2022-02-01".to_string()), 4.0689); + exchange_rates.insert(Exchange::USD("2021-07-05".to_string()), 3.7979); + exchange_rates.insert(Exchange::USD("2021-09-13".to_string()), 3.8495); + exchange_rates.insert(Exchange::USD("2021-12-20".to_string()), 4.1182); + exchange_rates.insert(Exchange::USD("2020-04-01".to_string()), 4.1701); + exchange_rates.insert(Exchange::USD("2019-11-25".to_string()), 3.9036); + exchange_rates.insert(Exchange::USD("2022-03-23".to_string()), 4.2772); + exchange_rates.insert(Exchange::USD("2017-08-24".to_string()), 3.6329); + exchange_rates.insert(Exchange::USD("2015-11-25".to_string()), 4.0215); + exchange_rates.insert(Exchange::USD("2018-02-01".to_string()), 3.3346); + exchange_rates.insert(Exchange::USD("2014-06-20".to_string()), 3.0495); + exchange_rates.insert(Exchange::USD("2014-10-03".to_string()), 3.3079); + exchange_rates.insert(Exchange::USD("2015-03-13".to_string()), 3.9141); + exchange_rates.insert(Exchange::USD("2020-08-28".to_string()), 3.6983); + exchange_rates.insert(Exchange::USD("2014-12-04".to_string()), 3.3728); + exchange_rates.insert(Exchange::USD("2014-12-09".to_string()), 3.3688); + exchange_rates.insert(Exchange::USD("2013-01-16".to_string()), 3.1097); + exchange_rates.insert(Exchange::USD("2021-07-23".to_string()), 3.8851); + exchange_rates.insert(Exchange::USD("2022-10-27".to_string()), 4.7216); + exchange_rates.insert(Exchange::USD("2023-02-23".to_string()), 4.4873); + exchange_rates.insert(Exchange::USD("2020-03-31".to_string()), 4.1466); + exchange_rates.insert(Exchange::USD("2013-01-03".to_string()), 3.1005); + exchange_rates.insert(Exchange::USD("2012-06-21".to_string()), 3.3617); + exchange_rates.insert(Exchange::USD("2016-08-05".to_string()), 3.8542); + exchange_rates.insert(Exchange::USD("2021-06-04".to_string()), 3.6931); + exchange_rates.insert(Exchange::USD("2018-04-23".to_string()), 3.4156); + exchange_rates.insert(Exchange::USD("2023-06-06".to_string()), 4.1964); + exchange_rates.insert(Exchange::USD("2019-07-23".to_string()), 3.7997); + exchange_rates.insert(Exchange::USD("2018-06-07".to_string()), 3.6062); + exchange_rates.insert(Exchange::USD("2018-06-21".to_string()), 3.7607); + exchange_rates.insert(Exchange::USD("2022-01-24".to_string()), 4.0049); + exchange_rates.insert(Exchange::USD("2021-04-22".to_string()), 3.7885); + exchange_rates.insert(Exchange::USD("2018-08-28".to_string()), 3.6548); + exchange_rates.insert(Exchange::USD("2021-10-20".to_string()), 3.9428); + exchange_rates.insert(Exchange::USD("2013-03-07".to_string()), 3.1808); + exchange_rates.insert(Exchange::EUR("2023-02-14".to_string()), 4.7847); + exchange_rates.insert(Exchange::USD("2024-06-24".to_string()), 4.0319); + exchange_rates.insert(Exchange::USD("2013-04-08".to_string()), 3.1893); + exchange_rates.insert(Exchange::USD("2022-03-15".to_string()), 4.2992); + exchange_rates.insert(Exchange::USD("2013-01-04".to_string()), 3.17); + exchange_rates.insert(Exchange::USD("2022-04-04".to_string()), 4.2073); + exchange_rates.insert(Exchange::USD("2024-10-04".to_string()), 3.9118); + exchange_rates.insert(Exchange::USD("2012-03-20".to_string()), 3.1288); + exchange_rates.insert(Exchange::USD("2012-11-07".to_string()), 3.2031); + exchange_rates.insert(Exchange::EUR("2023-03-13".to_string()), 4.6848); + exchange_rates.insert(Exchange::USD("2020-10-08".to_string()), 3.8175); + exchange_rates.insert(Exchange::USD("2014-09-16".to_string()), 3.2419); + exchange_rates.insert(Exchange::USD("2022-01-31".to_string()), 4.1147); + exchange_rates.insert(Exchange::USD("2017-04-18".to_string()), 3.98); + exchange_rates.insert(Exchange::EUR("2023-07-10".to_string()), 4.4553); + exchange_rates.insert(Exchange::EUR("2023-08-18".to_string()), 4.4869); + exchange_rates.insert(Exchange::USD("2015-03-19".to_string()), 3.8596); + exchange_rates.insert(Exchange::USD("2015-06-18".to_string()), 3.6556); + exchange_rates.insert(Exchange::USD("2024-06-03".to_string()), 3.9501); + exchange_rates.insert(Exchange::USD("2015-07-08".to_string()), 3.8225); + exchange_rates.insert(Exchange::USD("2022-10-28".to_string()), 4.7477); + exchange_rates.insert(Exchange::USD("2015-01-23".to_string()), 3.7687); + exchange_rates.insert(Exchange::USD("2023-08-24".to_string()), 4.118); + exchange_rates.insert(Exchange::USD("2020-07-08".to_string()), 3.9666); + exchange_rates.insert(Exchange::USD("2013-12-24".to_string()), 3.0346); + exchange_rates.insert(Exchange::USD("2015-01-14".to_string()), 3.6525); + exchange_rates.insert(Exchange::USD("2016-12-07".to_string()), 4.1268); + exchange_rates.insert(Exchange::USD("2021-03-02".to_string()), 3.7765); + exchange_rates.insert(Exchange::USD("2012-09-18".to_string()), 3.1509); + exchange_rates.insert(Exchange::USD("2017-01-31".to_string()), 4.0446); + exchange_rates.insert(Exchange::USD("2012-10-01".to_string()), 3.1809); + exchange_rates.insert(Exchange::USD("2023-06-12".to_string()), 4.1169); + exchange_rates.insert(Exchange::USD("2013-10-07".to_string()), 3.0976); + exchange_rates.insert(Exchange::EUR("2023-04-18".to_string()), 4.6286); + exchange_rates.insert(Exchange::EUR("2023-12-06".to_string()), 4.3382); + exchange_rates.insert(Exchange::USD("2019-02-05".to_string()), 3.7542); + exchange_rates.insert(Exchange::USD("2024-05-21".to_string()), 3.9175); + exchange_rates.insert(Exchange::USD("2020-08-27".to_string()), 3.7286); + exchange_rates.insert(Exchange::USD("2018-03-06".to_string()), 3.3936); + exchange_rates.insert(Exchange::USD("2016-04-26".to_string()), 3.8935); + exchange_rates.insert(Exchange::USD("2013-01-30".to_string()), 3.0938); + exchange_rates.insert(Exchange::USD("2022-11-22".to_string()), 4.5844); + exchange_rates.insert(Exchange::USD("2022-03-30".to_string()), 4.1688); + exchange_rates.insert(Exchange::USD("2016-01-22".to_string()), 4.1031); + exchange_rates.insert(Exchange::USD("2016-03-16".to_string()), 3.8749); + exchange_rates.insert(Exchange::EUR("2023-06-12".to_string()), 4.4366); + exchange_rates.insert(Exchange::USD("2015-12-22".to_string()), 3.8787); + exchange_rates.insert(Exchange::USD("2024-11-20".to_string()), 4.112); + exchange_rates.insert(Exchange::USD("2012-11-02".to_string()), 3.1965); + exchange_rates.insert(Exchange::USD("2021-04-08".to_string()), 3.8365); + exchange_rates.insert(Exchange::USD("2023-09-27".to_string()), 4.3622); + exchange_rates.insert(Exchange::USD("2012-08-17".to_string()), 3.2886); + exchange_rates.insert(Exchange::USD("2018-01-19".to_string()), 3.3994); + exchange_rates.insert(Exchange::USD("2023-09-04".to_string()), 4.1353); + exchange_rates.insert(Exchange::USD("2023-10-04".to_string()), 4.4155); + exchange_rates.insert(Exchange::USD("2017-10-12".to_string()), 3.6); + exchange_rates.insert(Exchange::USD("2019-06-25".to_string()), 3.7376); + exchange_rates.insert(Exchange::USD("2023-02-24".to_string()), 4.463); + exchange_rates.insert(Exchange::USD("2023-12-18".to_string()), 3.9625); + exchange_rates.insert(Exchange::USD("2022-07-25".to_string()), 4.6171); + exchange_rates.insert(Exchange::USD("2014-05-02".to_string()), 3.0289); + exchange_rates.insert(Exchange::USD("2019-10-15".to_string()), 3.8952); + exchange_rates.insert(Exchange::USD("2012-10-17".to_string()), 3.1261); + exchange_rates.insert(Exchange::USD("2015-04-20".to_string()), 3.7302); + exchange_rates.insert(Exchange::USD("2014-10-07".to_string()), 3.3106); + exchange_rates.insert(Exchange::USD("2023-02-07".to_string()), 4.4325); + exchange_rates.insert(Exchange::USD("2024-07-25".to_string()), 3.9619); + exchange_rates.insert(Exchange::USD("2014-06-30".to_string()), 3.0473); + exchange_rates.insert(Exchange::USD("2023-09-11".to_string()), 4.3077); + exchange_rates.insert(Exchange::USD("2021-05-11".to_string()), 3.7514); + exchange_rates.insert(Exchange::EUR("2023-01-26".to_string()), 4.7239); + exchange_rates.insert(Exchange::USD("2022-09-06".to_string()), 4.7367); + exchange_rates.insert(Exchange::USD("2015-12-18".to_string()), 3.9558); + exchange_rates.insert(Exchange::USD("2016-04-25".to_string()), 3.8962); + exchange_rates.insert(Exchange::USD("2013-01-17".to_string()), 3.0853); + exchange_rates.insert(Exchange::USD("2014-05-08".to_string()), 3.0042); + exchange_rates.insert(Exchange::USD("2022-10-17".to_string()), 4.9522); + exchange_rates.insert(Exchange::USD("2021-11-08".to_string()), 3.9747); + exchange_rates.insert(Exchange::USD("2012-09-06".to_string()), 3.2955); + exchange_rates.insert(Exchange::USD("2012-11-08".to_string()), 3.2655); + exchange_rates.insert(Exchange::USD("2015-04-03".to_string()), 3.7449); + exchange_rates.insert(Exchange::USD("2024-10-18".to_string()), 3.9718); + exchange_rates.insert(Exchange::USD("2020-10-06".to_string()), 3.818); + exchange_rates.insert(Exchange::USD("2018-10-10".to_string()), 3.7507); + exchange_rates.insert(Exchange::USD("2017-10-20".to_string()), 3.5966); + exchange_rates.insert(Exchange::USD("2015-12-10".to_string()), 3.9601); + exchange_rates.insert(Exchange::USD("2023-10-09".to_string()), 4.3439); + exchange_rates.insert(Exchange::USD("2021-04-20".to_string()), 3.7737); + exchange_rates.insert(Exchange::USD("2013-11-18".to_string()), 3.0953); + exchange_rates.insert(Exchange::USD("2021-09-27".to_string()), 3.9276); + exchange_rates.insert(Exchange::USD("2022-10-11".to_string()), 5.0171); + exchange_rates.insert(Exchange::USD("2012-09-26".to_string()), 3.2187); + exchange_rates.insert(Exchange::USD("2013-02-08".to_string()), 3.1056); + exchange_rates.insert(Exchange::USD("2020-01-24".to_string()), 3.8475); + exchange_rates.insert(Exchange::USD("2022-09-16".to_string()), 4.7384); + exchange_rates.insert(Exchange::USD("2018-12-27".to_string()), 3.7616); + exchange_rates.insert(Exchange::USD("2019-11-12".to_string()), 3.878); + exchange_rates.insert(Exchange::USD("2022-02-10".to_string()), 3.9218); + exchange_rates.insert(Exchange::USD("2022-05-17".to_string()), 4.4379); + exchange_rates.insert(Exchange::USD("2015-03-09".to_string()), 3.789); + exchange_rates.insert(Exchange::USD("2017-11-30".to_string()), 3.5543); + exchange_rates.insert(Exchange::USD("2015-10-12".to_string()), 3.7148); + exchange_rates.insert(Exchange::EUR("2023-09-11".to_string()), 4.6209); + exchange_rates.insert(Exchange::EUR("2023-10-12".to_string()), 4.5329); + exchange_rates.insert(Exchange::USD("2018-10-24".to_string()), 3.7698); + exchange_rates.insert(Exchange::USD("2012-01-02".to_string()), 3.4454); + exchange_rates.insert(Exchange::USD("2012-04-20".to_string()), 3.1828); + exchange_rates.insert(Exchange::EUR("2023-05-02".to_string()), 4.5892); + exchange_rates.insert(Exchange::USD("2021-10-15".to_string()), 3.9413); + exchange_rates.insert(Exchange::USD("2023-10-02".to_string()), 4.3634); + exchange_rates.insert(Exchange::USD("2021-03-16".to_string()), 3.8519); + exchange_rates.insert(Exchange::USD("2019-05-27".to_string()), 3.8374); + exchange_rates.insert(Exchange::USD("2019-03-25".to_string()), 3.7966); + exchange_rates.insert(Exchange::USD("2017-03-03".to_string()), 4.0955); + exchange_rates.insert(Exchange::USD("2020-10-07".to_string()), 3.8126); + exchange_rates.insert(Exchange::USD("2023-05-23".to_string()), 4.1634); + exchange_rates.insert(Exchange::USD("2014-06-09".to_string()), 3.0067); + exchange_rates.insert(Exchange::USD("2014-11-27".to_string()), 3.3528); + exchange_rates.insert(Exchange::USD("2014-05-14".to_string()), 3.048); + exchange_rates.insert(Exchange::USD("2022-06-07".to_string()), 4.2935); + exchange_rates.insert(Exchange::USD("2015-10-29".to_string()), 3.8974); + exchange_rates.insert(Exchange::USD("2014-09-03".to_string()), 3.1912); + exchange_rates.insert(Exchange::USD("2024-02-22".to_string()), 3.9804); + exchange_rates.insert(Exchange::USD("2017-10-31".to_string()), 3.6529); + exchange_rates.insert(Exchange::USD("2016-08-12".to_string()), 3.8219); + exchange_rates.insert(Exchange::USD("2019-11-29".to_string()), 3.9288); + exchange_rates.insert(Exchange::USD("2018-09-03".to_string()), 3.6991); + exchange_rates.insert(Exchange::USD("2024-01-08".to_string()), 3.9812); + exchange_rates.insert(Exchange::USD("2016-08-01".to_string()), 3.904); + exchange_rates.insert(Exchange::USD("2023-06-05".to_string()), 4.1933); + exchange_rates.insert(Exchange::USD("2015-08-03".to_string()), 3.7705); + exchange_rates.insert(Exchange::EUR("2023-05-23".to_string()), 4.4981); + exchange_rates.insert(Exchange::USD("2019-10-30".to_string()), 3.8388); + exchange_rates.insert(Exchange::USD("2013-03-15".to_string()), 3.1868); + exchange_rates.insert(Exchange::USD("2023-02-08".to_string()), 4.4074); + exchange_rates.insert(Exchange::USD("2017-06-22".to_string()), 3.8002); + exchange_rates.insert(Exchange::USD("2017-05-24".to_string()), 3.7535); + exchange_rates.insert(Exchange::USD("2012-09-25".to_string()), 3.2136); + exchange_rates.insert(Exchange::USD("2022-02-04".to_string()), 3.9657); + exchange_rates.insert(Exchange::USD("2022-01-21".to_string()), 3.9953); + exchange_rates.insert(Exchange::USD("2019-05-08".to_string()), 3.8325); + exchange_rates.insert(Exchange::USD("2017-03-21".to_string()), 3.9502); + exchange_rates.insert(Exchange::USD("2015-12-07".to_string()), 3.9853); + exchange_rates.insert(Exchange::USD("2024-09-10".to_string()), 3.8798); + exchange_rates.insert(Exchange::USD("2013-02-18".to_string()), 3.141); + exchange_rates.insert(Exchange::USD("2013-01-11".to_string()), 3.089); + exchange_rates.insert(Exchange::USD("2019-04-17".to_string()), 3.7778); + exchange_rates.insert(Exchange::USD("2024-06-13".to_string()), 4.0119); + exchange_rates.insert(Exchange::USD("2021-04-27".to_string()), 3.7826); + exchange_rates.insert(Exchange::USD("2020-12-04".to_string()), 3.6765); + exchange_rates.insert(Exchange::USD("2013-06-13".to_string()), 3.2); + exchange_rates.insert(Exchange::USD("2012-04-27".to_string()), 3.1666); + exchange_rates.insert(Exchange::USD("2013-06-10".to_string()), 3.221); + exchange_rates.insert(Exchange::USD("2017-08-22".to_string()), 3.6334); + exchange_rates.insert(Exchange::USD("2020-01-31".to_string()), 3.8999); + exchange_rates.insert(Exchange::USD("2017-02-17".to_string()), 4.0693); + exchange_rates.insert(Exchange::USD("2017-03-30".to_string()), 3.9402); + exchange_rates.insert(Exchange::USD("2012-07-05".to_string()), 3.3743); + exchange_rates.insert(Exchange::USD("2023-12-01".to_string()), 3.991); + exchange_rates.insert(Exchange::USD("2012-04-13".to_string()), 3.1765); + exchange_rates.insert(Exchange::USD("2012-10-02".to_string()), 3.1833); + exchange_rates.insert(Exchange::USD("2015-09-28".to_string()), 3.7861); + exchange_rates.insert(Exchange::USD("2021-06-18".to_string()), 3.8198); + exchange_rates.insert(Exchange::USD("2014-01-23".to_string()), 3.0559); + exchange_rates.insert(Exchange::USD("2014-08-20".to_string()), 3.147); + exchange_rates.insert(Exchange::USD("2017-11-15".to_string()), 3.5886); + exchange_rates.insert(Exchange::EUR("2023-11-20".to_string()), 4.368); + exchange_rates.insert(Exchange::USD("2020-06-24".to_string()), 3.9395); + exchange_rates.insert(Exchange::USD("2018-10-09".to_string()), 3.7629); + exchange_rates.insert(Exchange::USD("2016-10-20".to_string()), 3.9359); + exchange_rates.insert(Exchange::USD("2023-12-15".to_string()), 3.9326); + exchange_rates.insert(Exchange::USD("2021-01-04".to_string()), 3.6998); + exchange_rates.insert(Exchange::USD("2013-09-25".to_string()), 3.1234); + exchange_rates.insert(Exchange::USD("2022-06-01".to_string()), 4.2817); + exchange_rates.insert(Exchange::USD("2016-02-16".to_string()), 3.9404); + exchange_rates.insert(Exchange::USD("2021-03-19".to_string()), 3.8865); + exchange_rates.insert(Exchange::USD("2014-07-23".to_string()), 3.0707); + exchange_rates.insert(Exchange::USD("2014-10-06".to_string()), 3.3343); + exchange_rates.insert(Exchange::USD("2013-05-31".to_string()), 3.2953); + exchange_rates.insert(Exchange::USD("2013-10-23".to_string()), 3.0385); + exchange_rates.insert(Exchange::USD("2014-08-01".to_string()), 3.128); + exchange_rates.insert(Exchange::USD("2012-03-07".to_string()), 3.1631); + exchange_rates.insert(Exchange::USD("2023-04-21".to_string()), 4.2006); + exchange_rates.insert(Exchange::USD("2022-03-22".to_string()), 4.272); + exchange_rates.insert(Exchange::USD("2020-02-18".to_string()), 3.9448); + exchange_rates.insert(Exchange::USD("2018-09-17".to_string()), 3.6876); + exchange_rates.insert(Exchange::USD("2013-10-08".to_string()), 3.0873); + exchange_rates.insert(Exchange::USD("2016-04-12".to_string()), 3.749); + exchange_rates.insert(Exchange::USD("2018-12-17".to_string()), 3.7871); + exchange_rates.insert(Exchange::USD("2022-06-06".to_string()), 4.2675); + exchange_rates.insert(Exchange::USD("2023-08-07".to_string()), 4.0347); + exchange_rates.insert(Exchange::USD("2023-10-25".to_string()), 4.2284); + exchange_rates.insert(Exchange::USD("2023-11-23".to_string()), 3.9969); + exchange_rates.insert(Exchange::USD("2022-09-01".to_string()), 4.6959); + exchange_rates.insert(Exchange::USD("2023-02-13".to_string()), 4.4856); + exchange_rates.insert(Exchange::USD("2021-03-15".to_string()), 3.8429); + exchange_rates.insert(Exchange::USD("2021-07-16".to_string()), 3.8808); + exchange_rates.insert(Exchange::USD("2019-06-17".to_string()), 3.7989); + exchange_rates.insert(Exchange::USD("2015-07-31".to_string()), 3.7929); + exchange_rates.insert(Exchange::USD("2014-10-01".to_string()), 3.3172); + exchange_rates.insert(Exchange::USD("2022-03-10".to_string()), 4.3482); + exchange_rates.insert(Exchange::EUR("2023-08-30".to_string()), 4.474); + exchange_rates.insert(Exchange::USD("2022-07-01".to_string()), 4.5106); + exchange_rates.insert(Exchange::USD("2017-04-24".to_string()), 3.906); + exchange_rates.insert(Exchange::USD("2022-03-17".to_string()), 4.2403); + exchange_rates.insert(Exchange::USD("2022-12-09".to_string()), 4.4351); + exchange_rates.insert(Exchange::USD("2017-05-22".to_string()), 3.7526); + exchange_rates.insert(Exchange::USD("2013-04-12".to_string()), 3.1537); + exchange_rates.insert(Exchange::USD("2016-01-07".to_string()), 4.0085); + exchange_rates.insert(Exchange::USD("2012-06-15".to_string()), 3.3971); + exchange_rates.insert(Exchange::USD("2014-09-23".to_string()), 3.243); + exchange_rates.insert(Exchange::USD("2013-05-20".to_string()), 3.238); + exchange_rates.insert(Exchange::USD("2021-07-08".to_string()), 3.8408); + exchange_rates.insert(Exchange::USD("2021-11-12".to_string()), 4.0559); + exchange_rates.insert(Exchange::USD("2017-02-22".to_string()), 4.0899); + exchange_rates.insert(Exchange::USD("2016-01-18".to_string()), 4.1133); + exchange_rates.insert(Exchange::USD("2024-03-22".to_string()), 3.9928); + exchange_rates.insert(Exchange::USD("2021-07-27".to_string()), 3.9017); + exchange_rates.insert(Exchange::USD("2015-10-13".to_string()), 3.7199); + exchange_rates.insert(Exchange::USD("2014-02-21".to_string()), 3.0389); + exchange_rates.insert(Exchange::USD("2019-06-21".to_string()), 3.7705); + exchange_rates.insert(Exchange::USD("2018-05-24".to_string()), 3.659); + exchange_rates.insert(Exchange::USD("2014-10-16".to_string()), 3.2985); + exchange_rates.insert(Exchange::USD("2014-10-23".to_string()), 3.339); + exchange_rates.insert(Exchange::USD("2016-03-21".to_string()), 3.7838); + exchange_rates.insert(Exchange::USD("2016-11-15".to_string()), 4.0837); + exchange_rates.insert(Exchange::USD("2024-11-12".to_string()), 4.1011); + exchange_rates.insert(Exchange::USD("2017-11-17".to_string()), 3.5965); + exchange_rates.insert(Exchange::USD("2015-12-31".to_string()), 3.9011); + exchange_rates.insert(Exchange::USD("2014-11-04".to_string()), 3.3776); + exchange_rates.insert(Exchange::USD("2020-08-18".to_string()), 3.6895); + exchange_rates.insert(Exchange::USD("2012-04-30".to_string()), 3.1509); + exchange_rates.insert(Exchange::USD("2012-05-29".to_string()), 3.4675); + exchange_rates.insert(Exchange::USD("2018-08-21".to_string()), 3.7375); + exchange_rates.insert(Exchange::USD("2022-06-30".to_string()), 4.4825); + exchange_rates.insert(Exchange::USD("2012-09-04".to_string()), 3.3281); + exchange_rates.insert(Exchange::EUR("2023-02-22".to_string()), 4.7538); + exchange_rates.insert(Exchange::USD("2017-07-21".to_string()), 3.632); + exchange_rates.insert(Exchange::USD("2016-01-11".to_string()), 4.0085); + exchange_rates.insert(Exchange::EUR("2023-09-01".to_string()), 4.4762); + exchange_rates.insert(Exchange::USD("2017-01-20".to_string()), 4.1005); + exchange_rates.insert(Exchange::USD("2014-12-29".to_string()), 3.527); + exchange_rates.insert(Exchange::EUR("2023-01-02".to_string()), 4.6784); + exchange_rates.insert(Exchange::USD("2016-07-11".to_string()), 4.006); + exchange_rates.insert(Exchange::USD("2018-01-12".to_string()), 3.4366); + exchange_rates.insert(Exchange::USD("2012-10-12".to_string()), 3.1577); + exchange_rates.insert(Exchange::USD("2018-11-22".to_string()), 3.7764); + exchange_rates.insert(Exchange::USD("2015-11-12".to_string()), 3.9434); + exchange_rates.insert(Exchange::USD("2016-11-18".to_string()), 4.1968); + exchange_rates.insert(Exchange::USD("2023-08-18".to_string()), 4.1285); + exchange_rates.insert(Exchange::USD("2021-08-03".to_string()), 3.8315); + exchange_rates.insert(Exchange::USD("2022-07-11".to_string()), 4.7416); + exchange_rates.insert(Exchange::USD("2023-10-03".to_string()), 4.4012); + exchange_rates.insert(Exchange::USD("2020-04-20".to_string()), 4.1525); + exchange_rates.insert(Exchange::USD("2024-10-25".to_string()), 4.0219); + exchange_rates.insert(Exchange::EUR("2023-03-31".to_string()), 4.6755); + exchange_rates.insert(Exchange::USD("2019-02-26".to_string()), 3.8124); + exchange_rates.insert(Exchange::USD("2017-01-13".to_string()), 4.1084); + exchange_rates.insert(Exchange::USD("2016-04-21".to_string()), 3.7981); + exchange_rates.insert(Exchange::USD("2021-03-11".to_string()), 3.8287); + exchange_rates.insert(Exchange::USD("2017-10-02".to_string()), 3.6726); + exchange_rates.insert(Exchange::USD("2015-10-06".to_string()), 3.789); + exchange_rates.insert(Exchange::USD("2024-01-23".to_string()), 4.0133); + exchange_rates.insert(Exchange::USD("2022-12-15".to_string()), 4.41); + exchange_rates.insert(Exchange::USD("2012-10-16".to_string()), 3.1438); + exchange_rates.insert(Exchange::USD("2024-03-28".to_string()), 4.0081); + exchange_rates.insert(Exchange::USD("2016-03-30".to_string()), 3.7495); + exchange_rates.insert(Exchange::USD("2016-09-16".to_string()), 3.8497); + exchange_rates.insert(Exchange::EUR("2023-03-27".to_string()), 4.6856); + exchange_rates.insert(Exchange::USD("2017-12-06".to_string()), 3.5653); + exchange_rates.insert(Exchange::USD("2017-04-20".to_string()), 3.9588); + exchange_rates.insert(Exchange::USD("2014-07-25".to_string()), 3.0831); + exchange_rates.insert(Exchange::USD("2020-04-23".to_string()), 4.2093); + exchange_rates.insert(Exchange::USD("2013-10-02".to_string()), 3.1212); + exchange_rates.insert(Exchange::EUR("2023-03-21".to_string()), 4.6981); + exchange_rates.insert(Exchange::USD("2020-07-01".to_string()), 3.9591); + exchange_rates.insert(Exchange::USD("2023-06-15".to_string()), 4.1203); + exchange_rates.insert(Exchange::USD("2023-10-06".to_string()), 4.3608); + exchange_rates.insert(Exchange::USD("2024-11-08".to_string()), 4.0117); + exchange_rates.insert(Exchange::USD("2021-05-17".to_string()), 3.7288); + exchange_rates.insert(Exchange::USD("2021-07-28".to_string()), 3.8849); + exchange_rates.insert(Exchange::USD("2021-03-25".to_string()), 3.9253); + exchange_rates.insert(Exchange::USD("2020-01-14".to_string()), 3.8019); + exchange_rates.insert(Exchange::USD("2020-03-16".to_string()), 3.9231); + exchange_rates.insert(Exchange::USD("2019-01-31".to_string()), 3.7271); + exchange_rates.insert(Exchange::USD("2022-07-20".to_string()), 4.6524); + exchange_rates.insert(Exchange::USD("2023-05-19".to_string()), 4.2053); + exchange_rates.insert(Exchange::USD("2019-11-21".to_string()), 3.8737); + exchange_rates.insert(Exchange::USD("2023-01-27".to_string()), 4.3252); + exchange_rates.insert(Exchange::USD("2017-11-02".to_string()), 3.6366); + exchange_rates.insert(Exchange::USD("2016-02-24".to_string()), 3.9803); + exchange_rates.insert(Exchange::USD("2015-03-05".to_string()), 3.7525); + exchange_rates.insert(Exchange::USD("2015-10-05".to_string()), 3.773); + exchange_rates.insert(Exchange::USD("2014-03-28".to_string()), 3.0374); + exchange_rates.insert(Exchange::USD("2022-04-07".to_string()), 4.2727); + exchange_rates.insert(Exchange::USD("2024-07-30".to_string()), 3.9567); + exchange_rates.insert(Exchange::USD("2022-07-13".to_string()), 4.8221); + exchange_rates.insert(Exchange::USD("2015-07-24".to_string()), 3.7654); + exchange_rates.insert(Exchange::USD("2022-02-02".to_string()), 4.0283); + exchange_rates.insert(Exchange::USD("2014-06-17".to_string()), 3.0495); + exchange_rates.insert(Exchange::USD("2013-03-05".to_string()), 3.1665); + exchange_rates.insert(Exchange::USD("2023-04-20".to_string()), 4.2024); + exchange_rates.insert(Exchange::USD("2016-02-03".to_string()), 4.0325); + exchange_rates.insert(Exchange::USD("2023-07-12".to_string()), 4.0347); + exchange_rates.insert(Exchange::USD("2022-01-05".to_string()), 4.0396); + exchange_rates.insert(Exchange::USD("2020-05-19".to_string()), 4.1645); + exchange_rates.insert(Exchange::USD("2015-10-16".to_string()), 3.7243); + exchange_rates.insert(Exchange::USD("2023-03-29".to_string()), 4.3247); + exchange_rates.insert(Exchange::USD("2023-10-24".to_string()), 4.1884); + exchange_rates.insert(Exchange::USD("2022-08-23".to_string()), 4.803); + exchange_rates.insert(Exchange::USD("2018-07-30".to_string()), 3.6684); + exchange_rates.insert(Exchange::USD("2022-01-03".to_string()), 4.0424); + exchange_rates.insert(Exchange::USD("2020-05-12".to_string()), 4.2095); + exchange_rates.insert(Exchange::USD("2019-01-28".to_string()), 3.7592); + exchange_rates.insert(Exchange::USD("2019-07-30".to_string()), 3.8493); + exchange_rates.insert(Exchange::USD("2024-08-02".to_string()), 3.9672); + exchange_rates.insert(Exchange::USD("2021-09-06".to_string()), 3.8041); + exchange_rates.insert(Exchange::USD("2024-06-20".to_string()), 4.0345); + exchange_rates.insert(Exchange::USD("2020-04-27".to_string()), 4.1696); + exchange_rates.insert(Exchange::USD("2023-10-26".to_string()), 4.2395); + exchange_rates.insert(Exchange::USD("2020-05-14".to_string()), 4.2269); + exchange_rates.insert(Exchange::USD("2020-08-04".to_string()), 3.7364); + exchange_rates.insert(Exchange::USD("2017-11-22".to_string()), 3.5881); + exchange_rates.insert(Exchange::USD("2015-02-20".to_string()), 3.6895); + exchange_rates.insert(Exchange::USD("2015-07-22".to_string()), 3.7629); + exchange_rates.insert(Exchange::USD("2014-06-11".to_string()), 3.0431); + exchange_rates.insert(Exchange::USD("2022-09-09".to_string()), 4.6599); + exchange_rates.insert(Exchange::USD("2013-03-22".to_string()), 3.2361); + exchange_rates.insert(Exchange::USD("2018-01-03".to_string()), 3.4616); + exchange_rates.insert(Exchange::USD("2016-11-04".to_string()), 3.8862); + exchange_rates.insert(Exchange::USD("2022-10-03".to_string()), 4.9207); + exchange_rates.insert(Exchange::USD("2013-04-19".to_string()), 3.1409); + exchange_rates.insert(Exchange::USD("2023-11-30".to_string()), 3.981); + exchange_rates.insert(Exchange::USD("2020-03-27".to_string()), 4.1127); + exchange_rates.insert(Exchange::USD("2016-09-21".to_string()), 3.8601); + exchange_rates.insert(Exchange::USD("2022-03-21".to_string()), 4.2444); + exchange_rates.insert(Exchange::USD("2019-12-02".to_string()), 3.9047); + exchange_rates.insert(Exchange::USD("2021-03-03".to_string()), 3.7509); + exchange_rates.insert(Exchange::USD("2022-02-03".to_string()), 4.0267); + exchange_rates.insert(Exchange::USD("2015-01-12".to_string()), 3.6218); + exchange_rates.insert(Exchange::USD("2014-10-21".to_string()), 3.2987); + exchange_rates.insert(Exchange::USD("2013-09-12".to_string()), 3.1782); + exchange_rates.insert(Exchange::USD("2013-10-30".to_string()), 3.0433); + exchange_rates.insert(Exchange::USD("2021-09-28".to_string()), 3.9546); + exchange_rates.insert(Exchange::USD("2021-09-15".to_string()), 3.8475); + exchange_rates.insert(Exchange::USD("2024-09-11".to_string()), 3.8816); + exchange_rates.insert(Exchange::USD("2015-04-17".to_string()), 3.7277); + exchange_rates.insert(Exchange::USD("2022-02-28".to_string()), 4.1965); + exchange_rates.insert(Exchange::USD("2013-06-07".to_string()), 3.2545); + exchange_rates.insert(Exchange::USD("2012-04-24".to_string()), 3.1946); + exchange_rates.insert(Exchange::USD("2024-10-15".to_string()), 3.9332); + exchange_rates.insert(Exchange::USD("2012-10-18".to_string()), 3.1314); + exchange_rates.insert(Exchange::USD("2016-10-07".to_string()), 3.8505); + exchange_rates.insert(Exchange::USD("2015-08-07".to_string()), 3.8326); + exchange_rates.insert(Exchange::USD("2013-01-09".to_string()), 3.1516); + exchange_rates.insert(Exchange::USD("2013-07-25".to_string()), 3.2143); + exchange_rates.insert(Exchange::USD("2012-12-27".to_string()), 3.0816); + exchange_rates.insert(Exchange::EUR("2023-06-05".to_string()), 4.4851); + exchange_rates.insert(Exchange::EUR("2023-10-27".to_string()), 4.4642); + exchange_rates.insert(Exchange::USD("2014-11-07".to_string()), 3.4084); + exchange_rates.insert(Exchange::USD("2023-01-12".to_string()), 4.3556); + exchange_rates.insert(Exchange::USD("2012-12-24".to_string()), 3.08); + exchange_rates.insert(Exchange::EUR("2023-03-28".to_string()), 4.6816); + exchange_rates.insert(Exchange::USD("2013-10-17".to_string()), 3.0625); + exchange_rates.insert(Exchange::USD("2014-03-25".to_string()), 3.0342); + exchange_rates.insert(Exchange::USD("2024-06-10".to_string()), 4.0159); + exchange_rates.insert(Exchange::USD("2019-11-05".to_string()), 3.8308); + exchange_rates.insert(Exchange::USD("2022-11-10".to_string()), 4.7328); + exchange_rates.insert(Exchange::USD("2016-08-11".to_string()), 3.8297); + exchange_rates.insert(Exchange::USD("2017-08-03".to_string()), 3.5918); + exchange_rates.insert(Exchange::USD("2015-10-07".to_string()), 3.7604); + exchange_rates.insert(Exchange::USD("2016-12-23".to_string()), 4.2199); + exchange_rates.insert(Exchange::USD("2021-01-29".to_string()), 3.746); + exchange_rates.insert(Exchange::USD("2016-09-29".to_string()), 3.8354); + exchange_rates.insert(Exchange::USD("2024-05-20".to_string()), 3.9149); + exchange_rates.insert(Exchange::USD("2015-10-19".to_string()), 3.7265); + exchange_rates.insert(Exchange::USD("2012-11-09".to_string()), 3.2588); + exchange_rates.insert(Exchange::USD("2013-11-07".to_string()), 3.0844); + exchange_rates.insert(Exchange::USD("2021-08-19".to_string()), 3.9226); + exchange_rates.insert(Exchange::USD("2012-09-20".to_string()), 3.2092); + exchange_rates.insert(Exchange::EUR("2023-09-13".to_string()), 4.6402); + exchange_rates.insert(Exchange::USD("2020-08-10".to_string()), 3.7393); + exchange_rates.insert(Exchange::USD("2019-08-23".to_string()), 3.9371); + exchange_rates.insert(Exchange::USD("2017-12-07".to_string()), 3.5722); + exchange_rates.insert(Exchange::USD("2017-08-14".to_string()), 3.6278); + exchange_rates.insert(Exchange::USD("2014-02-28".to_string()), 3.0254); + exchange_rates.insert(Exchange::USD("2012-10-23".to_string()), 3.1662); + exchange_rates.insert(Exchange::EUR("2023-09-28".to_string()), 4.634); + exchange_rates.insert(Exchange::USD("2013-10-25".to_string()), 3.0326); + exchange_rates.insert(Exchange::USD("2018-10-08".to_string()), 3.7574); + exchange_rates.insert(Exchange::USD("2019-05-17".to_string()), 3.8545); + exchange_rates.insert(Exchange::USD("2016-05-06".to_string()), 3.8732); + exchange_rates.insert(Exchange::USD("2024-11-15".to_string()), 4.0898); + exchange_rates.insert(Exchange::USD("2021-10-22".to_string()), 3.9576); + exchange_rates.insert(Exchange::USD("2022-11-08".to_string()), 4.6893); + exchange_rates.insert(Exchange::USD("2024-04-19".to_string()), 4.0688); + exchange_rates.insert(Exchange::USD("2017-03-17".to_string()), 3.9917); + exchange_rates.insert(Exchange::USD("2012-08-14".to_string()), 3.3059); + exchange_rates.insert(Exchange::USD("2020-09-14".to_string()), 3.7522); + exchange_rates.insert(Exchange::USD("2018-03-08".to_string()), 3.3935); + exchange_rates.insert(Exchange::USD("2017-03-02".to_string()), 4.0765); + exchange_rates.insert(Exchange::USD("2014-01-10".to_string()), 3.07); + exchange_rates.insert(Exchange::EUR("2023-09-12".to_string()), 4.6836); + exchange_rates.insert(Exchange::USD("2021-02-26".to_string()), 3.7247); + exchange_rates.insert(Exchange::USD("2018-03-16".to_string()), 3.4214); + exchange_rates.insert(Exchange::USD("2018-07-03".to_string()), 3.7723); + exchange_rates.insert(Exchange::USD("2017-06-01".to_string()), 3.7262); + exchange_rates.insert(Exchange::USD("2017-03-14".to_string()), 4.0697); + exchange_rates.insert(Exchange::USD("2012-07-04".to_string()), 3.3415); + exchange_rates.insert(Exchange::USD("2021-10-06".to_string()), 3.9992); + exchange_rates.insert(Exchange::USD("2020-12-08".to_string()), 3.6914); + exchange_rates.insert(Exchange::USD("2017-07-11".to_string()), 3.7235); + exchange_rates.insert(Exchange::USD("2015-01-07".to_string()), 3.6375); + exchange_rates.insert(Exchange::USD("2019-02-18".to_string()), 3.8286); + exchange_rates.insert(Exchange::USD("2022-09-08".to_string()), 4.7268); + exchange_rates.insert(Exchange::USD("2019-07-15".to_string()), 3.7856); + exchange_rates.insert(Exchange::USD("2018-03-13".to_string()), 3.4143); + exchange_rates.insert(Exchange::USD("2015-02-04".to_string()), 3.644); + exchange_rates.insert(Exchange::USD("2014-04-09".to_string()), 3.0221); + exchange_rates.insert(Exchange::USD("2018-02-05".to_string()), 3.3375); + exchange_rates.insert(Exchange::EUR("2023-01-19".to_string()), 4.7053); + exchange_rates.insert(Exchange::USD("2022-07-19".to_string()), 4.6594); + exchange_rates.insert(Exchange::USD("2018-09-04".to_string()), 3.7241); + exchange_rates.insert(Exchange::USD("2016-05-09".to_string()), 3.873); + exchange_rates.insert(Exchange::USD("2016-06-08".to_string()), 3.815); + exchange_rates.insert(Exchange::USD("2012-10-08".to_string()), 3.143); + exchange_rates.insert(Exchange::USD("2012-10-30".to_string()), 3.2036); + exchange_rates.insert(Exchange::USD("2019-12-06".to_string()), 3.85); + exchange_rates.insert(Exchange::USD("2014-12-02".to_string()), 3.3466); + exchange_rates.insert(Exchange::USD("2015-04-23".to_string()), 3.7371); + exchange_rates.insert(Exchange::USD("2024-06-06".to_string()), 3.953); + exchange_rates.insert(Exchange::USD("2022-03-04".to_string()), 4.391); + exchange_rates.insert(Exchange::USD("2018-06-11".to_string()), 3.6247); + exchange_rates.insert(Exchange::USD("2017-03-09".to_string()), 4.0864); + exchange_rates.insert(Exchange::USD("2017-07-31".to_string()), 3.6264); + exchange_rates.insert(Exchange::USD("2016-03-29".to_string()), 3.8037); + exchange_rates.insert(Exchange::USD("2015-08-05".to_string()), 3.8359); + exchange_rates.insert(Exchange::USD("2013-11-12".to_string()), 3.1448); + exchange_rates.insert(Exchange::USD("2012-06-18".to_string()), 3.3741); + exchange_rates.insert(Exchange::USD("2012-10-10".to_string()), 3.1695); + exchange_rates.insert(Exchange::USD("2024-08-09".to_string()), 3.9604); + exchange_rates.insert(Exchange::USD("2024-10-10".to_string()), 3.9355); + exchange_rates.insert(Exchange::USD("2017-06-19".to_string()), 3.7615); + exchange_rates.insert(Exchange::USD("2023-01-25".to_string()), 4.3265); + exchange_rates.insert(Exchange::USD("2022-11-30".to_string()), 4.5066); + exchange_rates.insert(Exchange::USD("2023-09-28".to_string()), 4.4062); + exchange_rates.insert(Exchange::USD("2021-06-30".to_string()), 3.8035); + exchange_rates.insert(Exchange::USD("2019-10-08".to_string()), 3.9405); + exchange_rates.insert(Exchange::USD("2021-09-23".to_string()), 3.9256); + exchange_rates.insert(Exchange::USD("2023-11-29".to_string()), 3.9478); + exchange_rates.insert(Exchange::USD("2023-06-19".to_string()), 4.068); + exchange_rates.insert(Exchange::USD("2022-09-29".to_string()), 5.0328); + exchange_rates.insert(Exchange::USD("2018-11-13".to_string()), 3.8268); + exchange_rates.insert(Exchange::USD("2023-11-08".to_string()), 4.1804); + exchange_rates.insert(Exchange::USD("2018-05-07".to_string()), 3.5634); + exchange_rates.insert(Exchange::USD("2017-09-12".to_string()), 3.5552); + exchange_rates.insert(Exchange::USD("2024-10-28".to_string()), 4.0207); + exchange_rates.insert(Exchange::USD("2015-10-01".to_string()), 3.8005); + exchange_rates.insert(Exchange::USD("2020-01-09".to_string()), 3.8251); + exchange_rates.insert(Exchange::USD("2017-12-27".to_string()), 3.5253); + exchange_rates.insert(Exchange::USD("2014-01-28".to_string()), 3.0635); + exchange_rates.insert(Exchange::USD("2014-07-04".to_string()), 3.0495); + exchange_rates.insert(Exchange::USD("2014-07-18".to_string()), 3.0652); + exchange_rates.insert(Exchange::USD("2022-08-18".to_string()), 4.6468); + exchange_rates.insert(Exchange::USD("2012-01-26".to_string()), 3.2233); + exchange_rates.insert(Exchange::USD("2022-02-21".to_string()), 3.9769); + exchange_rates.insert(Exchange::USD("2013-12-12".to_string()), 3.0415); + exchange_rates.insert(Exchange::USD("2018-05-14".to_string()), 3.5558); + exchange_rates.insert(Exchange::USD("2012-02-14".to_string()), 3.1801); + exchange_rates.insert(Exchange::USD("2018-09-28".to_string()), 3.6754); + exchange_rates.insert(Exchange::USD("2021-08-06".to_string()), 3.8519); + exchange_rates.insert(Exchange::USD("2022-10-12".to_string()), 5.0014); + exchange_rates.insert(Exchange::USD("2017-06-29".to_string()), 3.7122); + exchange_rates.insert(Exchange::USD("2015-04-14".to_string()), 3.8001); + exchange_rates.insert(Exchange::USD("2023-06-02".to_string()), 4.1903); + exchange_rates.insert(Exchange::USD("2018-08-17".to_string()), 3.7784); + exchange_rates.insert(Exchange::USD("2013-05-29".to_string()), 3.2831); + exchange_rates.insert(Exchange::USD("2018-12-24".to_string()), 3.7588); + exchange_rates.insert(Exchange::USD("2015-03-06".to_string()), 3.7649); + exchange_rates.insert(Exchange::USD("2020-04-22".to_string()), 4.1736); + exchange_rates.insert(Exchange::USD("2017-12-15".to_string()), 3.5786); + exchange_rates.insert(Exchange::USD("2015-07-09".to_string()), 3.829); + exchange_rates.insert(Exchange::USD("2014-09-30".to_string()), 3.2973); + exchange_rates.insert(Exchange::USD("2012-02-15".to_string()), 3.166); + exchange_rates.insert(Exchange::USD("2020-12-02".to_string()), 3.7038); + exchange_rates.insert(Exchange::USD("2023-03-27".to_string()), 4.3518); + exchange_rates.insert(Exchange::USD("2023-08-04".to_string()), 4.062); + exchange_rates.insert(Exchange::USD("2022-11-21".to_string()), 4.5991); + exchange_rates.insert(Exchange::USD("2017-02-10".to_string()), 4.0435); + exchange_rates.insert(Exchange::USD("2014-03-06".to_string()), 3.0427); + exchange_rates.insert(Exchange::USD("2012-08-13".to_string()), 3.3202); + exchange_rates.insert(Exchange::USD("2019-08-27".to_string()), 3.9309); + exchange_rates.insert(Exchange::USD("2024-06-07".to_string()), 3.9389); + exchange_rates.insert(Exchange::USD("2018-05-21".to_string()), 3.6615); + exchange_rates.insert(Exchange::USD("2022-11-29".to_string()), 4.5164); + exchange_rates.insert(Exchange::USD("2019-04-11".to_string()), 3.7964); + exchange_rates.insert(Exchange::USD("2016-10-19".to_string()), 3.9285); + exchange_rates.insert(Exchange::USD("2023-04-04".to_string()), 4.2855); + exchange_rates.insert(Exchange::USD("2019-08-30".to_string()), 3.9717); + exchange_rates.insert(Exchange::USD("2022-06-03".to_string()), 4.2689); + exchange_rates.insert(Exchange::USD("2019-05-30".to_string()), 3.8548); + exchange_rates.insert(Exchange::USD("2014-05-27".to_string()), 3.0532); + exchange_rates.insert(Exchange::USD("2012-09-10".to_string()), 3.2189); + exchange_rates.insert(Exchange::USD("2013-04-25".to_string()), 3.1792); + exchange_rates.insert(Exchange::USD("2017-12-18".to_string()), 3.574); + exchange_rates.insert(Exchange::USD("2020-02-07".to_string()), 3.8947); + exchange_rates.insert(Exchange::USD("2017-01-04".to_string()), 4.2037); + exchange_rates.insert(Exchange::USD("2022-07-04".to_string()), 4.5032); + exchange_rates.insert(Exchange::USD("2023-12-14".to_string()), 3.9484); + exchange_rates.insert(Exchange::USD("2021-01-20".to_string()), 3.7303); + exchange_rates.insert(Exchange::USD("2021-10-18".to_string()), 3.9471); + exchange_rates.insert(Exchange::USD("2020-02-27".to_string()), 3.9413); + exchange_rates.insert(Exchange::USD("2016-12-01".to_string()), 4.1987); + exchange_rates.insert(Exchange::USD("2018-03-14".to_string()), 3.4055); + exchange_rates.insert(Exchange::USD("2019-02-12".to_string()), 3.838); + exchange_rates.insert(Exchange::USD("2016-11-08".to_string()), 3.9169); + exchange_rates.insert(Exchange::USD("2017-09-19".to_string()), 3.5821); + exchange_rates.insert(Exchange::USD("2023-11-24".to_string()), 4.0103); + exchange_rates.insert(Exchange::USD("2024-06-14".to_string()), 4.076); + exchange_rates.insert(Exchange::USD("2018-04-30".to_string()), 3.4868); + exchange_rates.insert(Exchange::USD("2018-11-07".to_string()), 3.7398); + exchange_rates.insert(Exchange::USD("2018-11-12".to_string()), 3.8163); + exchange_rates.insert(Exchange::USD("2015-07-01".to_string()), 3.7625); + exchange_rates.insert(Exchange::USD("2020-05-18".to_string()), 4.2224); + exchange_rates.insert(Exchange::USD("2018-02-07".to_string()), 3.3677); + exchange_rates.insert(Exchange::USD("2023-07-14".to_string()), 3.9617); + exchange_rates.insert(Exchange::USD("2018-08-20".to_string()), 3.7695); + exchange_rates.insert(Exchange::USD("2015-09-15".to_string()), 3.7238); + exchange_rates.insert(Exchange::USD("2022-09-30".to_string()), 4.9533); + exchange_rates.insert(Exchange::USD("2015-11-26".to_string()), 4.0298); + exchange_rates.insert(Exchange::USD("2012-05-16".to_string()), 3.4353); + exchange_rates.insert(Exchange::USD("2023-06-27".to_string()), 4.0481); + exchange_rates.insert(Exchange::USD("2013-02-22".to_string()), 3.1443); + exchange_rates.insert(Exchange::USD("2012-02-16".to_string()), 3.2502); + exchange_rates.insert(Exchange::USD("2012-07-31".to_string()), 3.3508); + exchange_rates.insert(Exchange::EUR("2023-03-01".to_string()), 4.6925); + exchange_rates.insert(Exchange::USD("2023-09-19".to_string()), 4.3472); + exchange_rates.insert(Exchange::USD("2022-09-21".to_string()), 4.7919); + exchange_rates.insert(Exchange::USD("2020-06-29".to_string()), 3.9656); + exchange_rates.insert(Exchange::USD("2019-02-11".to_string()), 3.819); + exchange_rates.insert(Exchange::USD("2019-03-13".to_string()), 3.8077); + exchange_rates.insert(Exchange::USD("2016-05-20".to_string()), 3.9358); + exchange_rates.insert(Exchange::USD("2015-09-08".to_string()), 3.7878); + exchange_rates.insert(Exchange::USD("2016-09-19".to_string()), 3.8586); + exchange_rates.insert(Exchange::USD("2014-07-24".to_string()), 3.0702); + exchange_rates.insert(Exchange::USD("2016-10-03".to_string()), 3.8252); + exchange_rates.insert(Exchange::USD("2021-08-10".to_string()), 3.8937); + exchange_rates.insert(Exchange::USD("2015-10-30".to_string()), 3.8748); + exchange_rates.insert(Exchange::USD("2017-09-05".to_string()), 3.5642); + exchange_rates.insert(Exchange::USD("2013-07-09".to_string()), 3.3588); + exchange_rates.insert(Exchange::USD("2012-09-11".to_string()), 3.2098); + exchange_rates.insert(Exchange::USD("2012-11-16".to_string()), 3.2682); + exchange_rates.insert(Exchange::USD("2022-02-14".to_string()), 4.0439); + exchange_rates.insert(Exchange::USD("2019-08-28".to_string()), 3.9548); + exchange_rates.insert(Exchange::USD("2019-04-16".to_string()), 3.7802); + exchange_rates.insert(Exchange::USD("2015-12-14".to_string()), 3.9695); + exchange_rates.insert(Exchange::USD("2013-07-15".to_string()), 3.2955); + exchange_rates.insert(Exchange::USD("2021-11-29".to_string()), 4.1627); + exchange_rates.insert(Exchange::USD("2024-03-21".to_string()), 3.9431); + exchange_rates.insert(Exchange::USD("2016-12-21".to_string()), 4.2484); + exchange_rates.insert(Exchange::USD("2021-10-26".to_string()), 3.974); + exchange_rates.insert(Exchange::USD("2017-08-18".to_string()), 3.6459); + exchange_rates.insert(Exchange::USD("2022-03-01".to_string()), 4.2193); + exchange_rates.insert(Exchange::USD("2014-03-27".to_string()), 3.0401); + exchange_rates.insert(Exchange::USD("2012-06-29".to_string()), 3.3885); + exchange_rates.insert(Exchange::USD("2015-02-23".to_string()), 3.6933); + exchange_rates.insert(Exchange::EUR("2023-02-15".to_string()), 4.7593); + exchange_rates.insert(Exchange::EUR("2023-03-17".to_string()), 4.7062); + exchange_rates.insert(Exchange::USD("2012-03-28".to_string()), 3.11); + exchange_rates.insert(Exchange::USD("2024-01-31".to_string()), 4.0135); + exchange_rates.insert(Exchange::EUR("2023-09-27".to_string()), 4.6065); + exchange_rates.insert(Exchange::USD("2013-06-18".to_string()), 3.1682); + exchange_rates.insert(Exchange::USD("2022-05-26".to_string()), 4.3189); + exchange_rates.insert(Exchange::USD("2014-11-17".to_string()), 3.3819); + exchange_rates.insert(Exchange::USD("2021-02-22".to_string()), 3.7135); + exchange_rates.insert(Exchange::USD("2015-05-29".to_string()), 3.7671); + exchange_rates.insert(Exchange::EUR("2023-04-28".to_string()), 4.5889); + exchange_rates.insert(Exchange::EUR("2023-06-26".to_string()), 4.4297); + exchange_rates.insert(Exchange::USD("2015-02-12".to_string()), 3.6926); + exchange_rates.insert(Exchange::USD("2024-04-04".to_string()), 3.9515); + exchange_rates.insert(Exchange::USD("2019-07-31".to_string()), 3.8504); + exchange_rates.insert(Exchange::USD("2018-04-17".to_string()), 3.3572); + exchange_rates.insert(Exchange::USD("2022-04-14".to_string()), 4.2581); + exchange_rates.insert(Exchange::USD("2018-09-18".to_string()), 3.6817); + exchange_rates.insert(Exchange::USD("2013-02-01".to_string()), 3.0744); + exchange_rates.insert(Exchange::USD("2013-08-09".to_string()), 3.1336); + exchange_rates.insert(Exchange::USD("2013-08-22".to_string()), 3.1811); + exchange_rates.insert(Exchange::USD("2012-02-22".to_string()), 3.1635); + exchange_rates.insert(Exchange::USD("2016-05-25".to_string()), 3.9684); + exchange_rates.insert(Exchange::USD("2012-10-05".to_string()), 3.1353); + exchange_rates.insert(Exchange::EUR("2023-09-29".to_string()), 4.6356); + exchange_rates.insert(Exchange::USD("2023-04-17".to_string()), 4.2261); + exchange_rates.insert(Exchange::USD("2019-05-10".to_string()), 3.8242); + exchange_rates.insert(Exchange::USD("2016-01-29".to_string()), 4.0723); + exchange_rates.insert(Exchange::USD("2013-09-03".to_string()), 3.2433); + exchange_rates.insert(Exchange::EUR("2023-03-23".to_string()), 4.6817); + exchange_rates.insert(Exchange::EUR("2023-05-19".to_string()), 4.5367); + exchange_rates.insert(Exchange::EUR("2023-09-04".to_string()), 4.4653); + exchange_rates.insert(Exchange::USD("2016-07-12".to_string()), 3.9807); + exchange_rates.insert(Exchange::USD("2014-04-04".to_string()), 3.0397); + exchange_rates.insert(Exchange::USD("2013-08-13".to_string()), 3.1489); + exchange_rates.insert(Exchange::USD("2021-06-07".to_string()), 3.6656); + exchange_rates.insert(Exchange::USD("2016-01-28".to_string()), 4.0872); + exchange_rates.insert(Exchange::USD("2012-01-19".to_string()), 3.3678); + exchange_rates.insert(Exchange::EUR("2023-01-25".to_string()), 4.7079); + exchange_rates.insert(Exchange::USD("2013-03-29".to_string()), 3.259); + exchange_rates.insert(Exchange::USD("2020-05-15".to_string()), 4.2135); + exchange_rates.insert(Exchange::USD("2019-09-02".to_string()), 3.9819); + exchange_rates.insert(Exchange::USD("2024-03-19".to_string()), 3.9866); + exchange_rates.insert(Exchange::USD("2022-04-21".to_string()), 4.2596); + exchange_rates.insert(Exchange::USD("2022-01-20".to_string()), 3.9833); + exchange_rates.insert(Exchange::USD("2020-11-20".to_string()), 3.7677); + exchange_rates.insert(Exchange::USD("2017-09-21".to_string()), 3.5975); + exchange_rates.insert(Exchange::USD("2014-08-27".to_string()), 3.1764); + exchange_rates.insert(Exchange::USD("2020-04-02".to_string()), 4.1917); + exchange_rates.insert(Exchange::USD("2020-07-28".to_string()), 3.7532); + exchange_rates.insert(Exchange::USD("2018-07-26".to_string()), 3.6649); + exchange_rates.insert(Exchange::USD("2022-12-06".to_string()), 4.4787); + exchange_rates.insert(Exchange::USD("2016-05-12".to_string()), 3.8811); + exchange_rates.insert(Exchange::USD("2018-08-16".to_string()), 3.7871); + exchange_rates.insert(Exchange::USD("2013-01-23".to_string()), 3.1195); + exchange_rates.insert(Exchange::USD("2023-11-10".to_string()), 4.1423); + exchange_rates.insert(Exchange::USD("2021-02-01".to_string()), 3.7323); + exchange_rates.insert(Exchange::USD("2016-12-09".to_string()), 4.1772); + exchange_rates.insert(Exchange::USD("2015-04-27".to_string()), 3.7115); + exchange_rates.insert(Exchange::EUR("2023-01-17".to_string()), 4.6946); + exchange_rates.insert(Exchange::USD("2024-09-17".to_string()), 3.8354); + exchange_rates.insert(Exchange::USD("2024-07-05".to_string()), 3.9581); + exchange_rates.insert(Exchange::USD("2017-02-23".to_string()), 4.084); + exchange_rates.insert(Exchange::USD("2016-09-26".to_string()), 3.8324); + exchange_rates.insert(Exchange::USD("2023-04-05".to_string()), 4.2739); + exchange_rates.insert(Exchange::USD("2016-12-30".to_string()), 4.1793); + exchange_rates.insert(Exchange::USD("2014-09-10".to_string()), 3.2508); + exchange_rates.insert(Exchange::USD("2014-11-05".to_string()), 3.3887); + exchange_rates.insert(Exchange::USD("2013-02-12".to_string()), 3.1159); + exchange_rates.insert(Exchange::EUR("2023-07-05".to_string()), 4.4498); + exchange_rates.insert(Exchange::USD("2020-05-22".to_string()), 4.1503); + exchange_rates.insert(Exchange::USD("2022-03-18".to_string()), 4.2707); + exchange_rates.insert(Exchange::USD("2019-10-28".to_string()), 3.8529); + exchange_rates.insert(Exchange::USD("2016-02-09".to_string()), 3.9771); + exchange_rates.insert(Exchange::USD("2023-05-29".to_string()), 4.2234); + exchange_rates.insert(Exchange::USD("2015-04-29".to_string()), 3.6396); + exchange_rates.insert(Exchange::EUR("2023-11-17".to_string()), 4.3767); + exchange_rates.insert(Exchange::USD("2014-04-14".to_string()), 3.0288); + exchange_rates.insert(Exchange::USD("2020-05-29".to_string()), 4.0031); + exchange_rates.insert(Exchange::USD("2023-11-21".to_string()), 3.9882); + exchange_rates.insert(Exchange::USD("2023-03-10".to_string()), 4.4266); + exchange_rates.insert(Exchange::USD("2016-02-05".to_string()), 3.942); + exchange_rates.insert(Exchange::USD("2024-07-09".to_string()), 3.9391); + exchange_rates.insert(Exchange::USD("2021-05-06".to_string()), 3.8066); + exchange_rates.insert(Exchange::USD("2015-05-13".to_string()), 3.63); + exchange_rates.insert(Exchange::USD("2018-01-30".to_string()), 3.3442); + exchange_rates.insert(Exchange::USD("2018-01-25".to_string()), 3.3376); + exchange_rates.insert(Exchange::USD("2015-09-07".to_string()), 3.7928); + exchange_rates.insert(Exchange::USD("2014-04-28".to_string()), 3.0368); + exchange_rates.insert(Exchange::USD("2013-09-05".to_string()), 3.2463); + exchange_rates.insert(Exchange::USD("2017-11-13".to_string()), 3.6382); + exchange_rates.insert(Exchange::USD("2013-10-14".to_string()), 3.0936); + exchange_rates.insert(Exchange::USD("2019-12-04".to_string()), 3.8647); + exchange_rates.insert(Exchange::USD("2022-08-24".to_string()), 4.8029); + exchange_rates.insert(Exchange::USD("2012-03-02".to_string()), 3.1023); + exchange_rates.insert(Exchange::USD("2013-07-04".to_string()), 3.3246); + exchange_rates.insert(Exchange::EUR("2023-06-09".to_string()), 4.4717); + exchange_rates.insert(Exchange::EUR("2023-08-17".to_string()), 4.4681); + exchange_rates.insert(Exchange::USD("2019-12-11".to_string()), 3.866); + exchange_rates.insert(Exchange::USD("2013-12-11".to_string()), 3.0386); + exchange_rates.insert(Exchange::USD("2016-06-23".to_string()), 3.8593); + exchange_rates.insert(Exchange::USD("2012-12-03".to_string()), 3.1498); + exchange_rates.insert(Exchange::USD("2022-10-05".to_string()), 4.838); + exchange_rates.insert(Exchange::USD("2017-02-03".to_string()), 4.0014); + exchange_rates.insert(Exchange::USD("2014-12-01".to_string()), 3.3519); + exchange_rates.insert(Exchange::USD("2020-11-06".to_string()), 3.8194); + exchange_rates.insert(Exchange::USD("2018-02-21".to_string()), 3.3697); + exchange_rates.insert(Exchange::USD("2023-07-10".to_string()), 4.0632); + exchange_rates.insert(Exchange::USD("2017-06-20".to_string()), 3.7862); + exchange_rates.insert(Exchange::USD("2017-04-12".to_string()), 4.0026); + exchange_rates.insert(Exchange::USD("2015-07-07".to_string()), 3.8313); + exchange_rates.insert(Exchange::USD("2017-03-07".to_string()), 4.0803); + exchange_rates.insert(Exchange::USD("2014-05-12".to_string()), 3.0362); + exchange_rates.insert(Exchange::USD("2012-09-12".to_string()), 3.168); + exchange_rates.insert(Exchange::USD("2018-03-15".to_string()), 3.4117); + exchange_rates.insert(Exchange::USD("2014-08-19".to_string()), 3.1356); + exchange_rates.insert(Exchange::USD("2012-02-06".to_string()), 3.2084); + exchange_rates.insert(Exchange::EUR("2023-03-10".to_string()), 4.6838); + exchange_rates.insert(Exchange::USD("2013-09-06".to_string()), 3.2732); + exchange_rates.insert(Exchange::USD("2014-06-18".to_string()), 3.0589); + exchange_rates.insert(Exchange::USD("2013-02-14".to_string()), 3.1209); + exchange_rates.insert(Exchange::USD("2012-05-09".to_string()), 3.2412); + exchange_rates.insert(Exchange::USD("2021-03-08".to_string()), 3.8665); + exchange_rates.insert(Exchange::USD("2024-10-29".to_string()), 4.0251); + exchange_rates.insert(Exchange::EUR("2023-07-06".to_string()), 4.4754); + exchange_rates.insert(Exchange::USD("2016-08-02".to_string()), 3.882); + exchange_rates.insert(Exchange::USD("2019-12-09".to_string()), 3.8704); + exchange_rates.insert(Exchange::USD("2024-02-15".to_string()), 4.0495); + exchange_rates.insert(Exchange::USD("2017-12-21".to_string()), 3.5369); + exchange_rates.insert(Exchange::USD("2018-03-29".to_string()), 3.4201); + exchange_rates.insert(Exchange::USD("2016-01-25".to_string()), 4.1346); + exchange_rates.insert(Exchange::USD("2014-11-20".to_string()), 3.368); + exchange_rates.insert(Exchange::USD("2013-11-22".to_string()), 3.1077); + exchange_rates.insert(Exchange::USD("2020-08-21".to_string()), 3.7164); + exchange_rates.insert(Exchange::USD("2017-01-11".to_string()), 4.1465); + exchange_rates.insert(Exchange::USD("2024-02-06".to_string()), 4.0484); + exchange_rates.insert(Exchange::USD("2017-01-18".to_string()), 4.087); + exchange_rates.insert(Exchange::USD("2015-09-30".to_string()), 3.7754); + exchange_rates.insert(Exchange::USD("2019-08-09".to_string()), 3.8613); + exchange_rates.insert(Exchange::USD("2015-01-26".to_string()), 3.7601); + exchange_rates.insert(Exchange::USD("2020-10-15".to_string()), 3.8904); + exchange_rates.insert(Exchange::USD("2015-12-04".to_string()), 3.9607); + exchange_rates.insert(Exchange::USD("2019-03-05".to_string()), 3.7977); + exchange_rates.insert(Exchange::USD("2022-05-25".to_string()), 4.3069); + exchange_rates.insert(Exchange::USD("2012-06-08".to_string()), 3.4566); + exchange_rates.insert(Exchange::USD("2012-07-30".to_string()), 3.378); + exchange_rates.insert(Exchange::USD("2024-08-07".to_string()), 3.9526); + exchange_rates.insert(Exchange::USD("2019-04-12".to_string()), 3.7899); + exchange_rates.insert(Exchange::EUR("2023-09-15".to_string()), 4.6307); + exchange_rates.insert(Exchange::EUR("2023-11-06".to_string()), 4.4615); + exchange_rates.insert(Exchange::EUR("2023-11-08".to_string()), 4.4584); + exchange_rates.insert(Exchange::EUR("2023-12-28".to_string()), 4.3392); + exchange_rates.insert(Exchange::USD("2020-04-29".to_string()), 4.1807); + exchange_rates.insert(Exchange::USD("2013-01-21".to_string()), 3.1351); + exchange_rates.insert(Exchange::USD("2013-04-11".to_string()), 3.1382); + exchange_rates.insert(Exchange::USD("2023-06-28".to_string()), 4.0719); + exchange_rates.insert(Exchange::USD("2013-08-19".to_string()), 3.1873); + exchange_rates.insert(Exchange::USD("2019-04-10".to_string()), 3.8023); + exchange_rates.insert(Exchange::USD("2012-08-02".to_string()), 3.3462); + exchange_rates.insert(Exchange::USD("2019-10-14".to_string()), 3.8958); + exchange_rates.insert(Exchange::USD("2012-08-21".to_string()), 3.279); + exchange_rates.insert(Exchange::USD("2023-12-07".to_string()), 4.0199); + exchange_rates.insert(Exchange::USD("2022-09-26".to_string()), 4.9113); + exchange_rates.insert(Exchange::USD("2019-08-16".to_string()), 3.9281); + exchange_rates.insert(Exchange::USD("2015-07-17".to_string()), 3.7676); + exchange_rates.insert(Exchange::USD("2017-12-22".to_string()), 3.5393); + exchange_rates.insert(Exchange::USD("2012-02-13".to_string()), 3.1643); + exchange_rates.insert(Exchange::EUR("2023-11-15".to_string()), 4.39); + exchange_rates.insert(Exchange::USD("2023-10-23".to_string()), 4.2022); + exchange_rates.insert(Exchange::USD("2023-01-17".to_string()), 4.3398); + exchange_rates.insert(Exchange::USD("2019-04-03".to_string()), 3.8192); + exchange_rates.insert(Exchange::USD("2017-02-21".to_string()), 4.0942); + exchange_rates.insert(Exchange::USD("2017-05-08".to_string()), 3.8391); + exchange_rates.insert(Exchange::USD("2024-07-17".to_string()), 3.921); + exchange_rates.insert(Exchange::USD("2017-11-20".to_string()), 3.5909); + exchange_rates.insert(Exchange::USD("2015-08-25".to_string()), 3.6613); + exchange_rates.insert(Exchange::USD("2018-11-16".to_string()), 3.7876); + exchange_rates.insert(Exchange::USD("2017-11-21".to_string()), 3.606); + exchange_rates.insert(Exchange::USD("2013-04-09".to_string()), 3.1696); + exchange_rates.insert(Exchange::USD("2022-08-05".to_string()), 4.6024); + exchange_rates.insert(Exchange::USD("2018-07-06".to_string()), 3.7222); + exchange_rates.insert(Exchange::USD("2019-05-02".to_string()), 3.8177); + exchange_rates.insert(Exchange::USD("2013-10-29".to_string()), 3.0436); + exchange_rates.insert(Exchange::EUR("2023-04-13".to_string()), 4.6511); + exchange_rates.insert(Exchange::USD("2012-06-19".to_string()), 3.3916); + exchange_rates.insert(Exchange::EUR("2023-07-25".to_string()), 4.4348); + exchange_rates.insert(Exchange::USD("2021-03-23".to_string()), 3.8746); + exchange_rates.insert(Exchange::USD("2019-10-17".to_string()), 3.8638); + exchange_rates.insert(Exchange::USD("2015-09-11".to_string()), 3.7264); + exchange_rates.insert(Exchange::USD("2018-02-22".to_string()), 3.4009); + exchange_rates.insert(Exchange::EUR("2023-04-25".to_string()), 4.598); + exchange_rates.insert(Exchange::USD("2016-07-04".to_string()), 3.9886); + exchange_rates.insert(Exchange::USD("2020-02-12".to_string()), 3.901); + exchange_rates.insert(Exchange::USD("2024-05-29".to_string()), 3.9244); + exchange_rates.insert(Exchange::USD("2012-06-27".to_string()), 3.4015); + exchange_rates.insert(Exchange::USD("2019-09-17".to_string()), 3.9412); + exchange_rates.insert(Exchange::USD("2015-05-14".to_string()), 3.5921); + exchange_rates.insert(Exchange::USD("2019-10-07".to_string()), 3.9498); + exchange_rates.insert(Exchange::EUR("2023-09-07".to_string()), 4.594); + exchange_rates.insert(Exchange::USD("2021-02-04".to_string()), 3.7509); + exchange_rates.insert(Exchange::USD("2020-02-03".to_string()), 3.8864); + exchange_rates.insert(Exchange::USD("2016-03-04".to_string()), 3.9545); + exchange_rates.insert(Exchange::USD("2019-02-28".to_string()), 3.7853); + exchange_rates.insert(Exchange::USD("2015-12-11".to_string()), 3.9718); + exchange_rates.insert(Exchange::USD("2015-07-28".to_string()), 3.7303); + exchange_rates.insert(Exchange::USD("2021-07-06".to_string()), 3.8021); + exchange_rates.insert(Exchange::USD("2021-12-24".to_string()), 4.0785); + exchange_rates.insert(Exchange::USD("2017-10-13".to_string()), 3.601); + exchange_rates.insert(Exchange::USD("2013-07-01".to_string()), 3.321); + exchange_rates.insert(Exchange::USD("2016-11-14".to_string()), 4.0805); + exchange_rates.insert(Exchange::USD("2012-02-24".to_string()), 3.1103); + exchange_rates.insert(Exchange::EUR("2023-03-08".to_string()), 4.7018); + exchange_rates.insert(Exchange::USD("2016-11-09".to_string()), 3.9305); + exchange_rates.insert(Exchange::USD("2019-04-30".to_string()), 3.8291); + exchange_rates.insert(Exchange::USD("2015-01-22".to_string()), 3.6994); + exchange_rates.insert(Exchange::USD("2014-08-28".to_string()), 3.1834); + exchange_rates.insert(Exchange::EUR("2023-02-23".to_string()), 4.7525); + exchange_rates.insert(Exchange::EUR("2023-07-11".to_string()), 4.4426); + exchange_rates.insert(Exchange::EUR("2023-10-20".to_string()), 4.4675); + exchange_rates.insert(Exchange::USD("2014-05-23".to_string()), 3.049); + exchange_rates.insert(Exchange::USD("2019-08-19".to_string()), 3.9199); + exchange_rates.insert(Exchange::EUR("2023-08-09".to_string()), 4.4586); + exchange_rates.insert(Exchange::USD("2015-12-28".to_string()), 3.8663); + exchange_rates.insert(Exchange::USD("2017-05-18".to_string()), 3.7926); + exchange_rates.insert(Exchange::USD("2018-03-07".to_string()), 3.3744); + exchange_rates.insert(Exchange::USD("2024-08-14".to_string()), 3.8963); + exchange_rates.insert(Exchange::EUR("2023-06-14".to_string()), 4.4715); + exchange_rates.insert(Exchange::USD("2022-03-14".to_string()), 4.3221); + exchange_rates.insert(Exchange::USD("2019-12-23".to_string()), 3.8394); + exchange_rates.insert(Exchange::USD("2021-01-12".to_string()), 3.7188); + exchange_rates.insert(Exchange::USD("2021-09-07".to_string()), 3.8041); + exchange_rates.insert(Exchange::USD("2023-07-26".to_string()), 3.9949); + exchange_rates.insert(Exchange::USD("2018-10-31".to_string()), 3.8203); + exchange_rates.insert(Exchange::USD("2021-07-19".to_string()), 3.8968); + exchange_rates.insert(Exchange::USD("2016-06-01".to_string()), 3.935); + exchange_rates.insert(Exchange::USD("2014-12-19".to_string()), 3.4791); + exchange_rates.insert(Exchange::USD("2012-02-07".to_string()), 3.1806); + exchange_rates.insert(Exchange::USD("2023-02-20".to_string()), 4.4515); + exchange_rates.insert(Exchange::USD("2013-07-12".to_string()), 3.3201); + exchange_rates.insert(Exchange::EUR("2023-03-24".to_string()), 4.6911); + exchange_rates.insert(Exchange::USD("2020-05-26".to_string()), 4.0885); + exchange_rates.insert(Exchange::USD("2017-02-06".to_string()), 3.9892); + exchange_rates.insert(Exchange::USD("2015-05-19".to_string()), 3.6152); + exchange_rates.insert(Exchange::USD("2020-01-23".to_string()), 3.8308); + exchange_rates.insert(Exchange::USD("2016-03-25".to_string()), 3.8174); + exchange_rates.insert(Exchange::USD("2018-02-12".to_string()), 3.4122); + exchange_rates.insert(Exchange::USD("2022-12-28".to_string()), 4.4127); + exchange_rates.insert(Exchange::USD("2021-02-05".to_string()), 3.7554); + exchange_rates.insert(Exchange::USD("2024-09-27".to_string()), 3.8368); + exchange_rates.insert(Exchange::USD("2014-09-18".to_string()), 3.249); + exchange_rates.insert(Exchange::USD("2013-10-22".to_string()), 3.0564); + exchange_rates.insert(Exchange::USD("2019-09-11".to_string()), 3.9324); + exchange_rates.insert(Exchange::USD("2023-07-21".to_string()), 3.999); + exchange_rates.insert(Exchange::EUR("2023-12-21".to_string()), 4.3387); + exchange_rates.insert(Exchange::USD("2024-02-08".to_string()), 4.0292); + exchange_rates.insert(Exchange::USD("2023-04-03".to_string()), 4.3168); + exchange_rates.insert(Exchange::USD("2018-02-14".to_string()), 3.3769); + exchange_rates.insert(Exchange::USD("2018-07-10".to_string()), 3.6973); + exchange_rates.insert(Exchange::USD("2024-05-09".to_string()), 4.0076); + exchange_rates.insert(Exchange::USD("2018-10-29".to_string()), 3.793); + exchange_rates.insert(Exchange::USD("2017-11-29".to_string()), 3.5385); + exchange_rates.insert(Exchange::USD("2022-07-21".to_string()), 4.6682); + exchange_rates.insert(Exchange::USD("2021-10-08".to_string()), 3.9775); + exchange_rates.insert(Exchange::USD("2016-10-18".to_string()), 3.9148); + exchange_rates.insert(Exchange::USD("2015-04-30".to_string()), 3.5987); + exchange_rates.insert(Exchange::USD("2014-01-24".to_string()), 3.0727); + exchange_rates.insert(Exchange::USD("2024-02-20".to_string()), 3.9994); + exchange_rates.insert(Exchange::USD("2015-12-30".to_string()), 3.8801); + exchange_rates.insert(Exchange::USD("2014-09-17".to_string()), 3.2331); + exchange_rates.insert(Exchange::USD("2015-07-13".to_string()), 3.7543); + exchange_rates.insert(Exchange::USD("2014-12-24".to_string()), 3.529); + exchange_rates.insert(Exchange::USD("2016-06-15".to_string()), 3.9351); + exchange_rates.insert(Exchange::EUR("2023-08-08".to_string()), 4.4375); + exchange_rates.insert(Exchange::USD("2015-02-02".to_string()), 3.6801); + exchange_rates.insert(Exchange::USD("2019-11-20".to_string()), 3.8792); + exchange_rates.insert(Exchange::USD("2021-01-08".to_string()), 3.6919); + exchange_rates.insert(Exchange::USD("2018-04-10".to_string()), 3.4068); + exchange_rates.insert(Exchange::USD("2017-03-08".to_string()), 4.0818); + exchange_rates.insert(Exchange::USD("2018-07-05".to_string()), 3.7485); + exchange_rates.insert(Exchange::USD("2017-07-12".to_string()), 3.7034); + exchange_rates.insert(Exchange::USD("2022-04-12".to_string()), 4.2926); + exchange_rates.insert(Exchange::USD("2024-02-19".to_string()), 4.0269); + exchange_rates.insert(Exchange::USD("2017-07-13".to_string()), 3.7133); + exchange_rates.insert(Exchange::USD("2016-10-04".to_string()), 3.8472); + exchange_rates.insert(Exchange::USD("2014-02-03".to_string()), 3.137); + exchange_rates.insert(Exchange::USD("2016-09-01".to_string()), 3.9116); + exchange_rates.insert(Exchange::USD("2014-04-15".to_string()), 3.0325); + exchange_rates.insert(Exchange::USD("2019-05-07".to_string()), 3.8278); + exchange_rates.insert(Exchange::USD("2014-08-14".to_string()), 3.1285); + exchange_rates.insert(Exchange::USD("2013-07-11".to_string()), 3.3225); + exchange_rates.insert(Exchange::USD("2013-09-16".to_string()), 3.1435); + exchange_rates.insert(Exchange::USD("2012-11-15".to_string()), 3.2678); + exchange_rates.insert(Exchange::USD("2012-11-30".to_string()), 3.1585); + exchange_rates.insert(Exchange::USD("2018-07-24".to_string()), 3.702); + exchange_rates.insert(Exchange::EUR("2023-09-18".to_string()), 4.6377); + exchange_rates.insert(Exchange::USD("2021-12-09".to_string()), 4.0837); + exchange_rates.insert(Exchange::USD("2020-05-20".to_string()), 4.1619); + exchange_rates.insert(Exchange::USD("2021-04-19".to_string()), 3.7816); + exchange_rates.insert(Exchange::USD("2020-07-20".to_string()), 3.8997); + exchange_rates.insert(Exchange::USD("2012-08-08".to_string()), 3.304); + exchange_rates.insert(Exchange::USD("2014-06-04".to_string()), 3.0491); + exchange_rates.insert(Exchange::USD("2024-01-15".to_string()), 3.9963); + exchange_rates.insert(Exchange::USD("2013-02-26".to_string()), 3.1733); + exchange_rates.insert(Exchange::USD("2018-08-23".to_string()), 3.7069); + exchange_rates.insert(Exchange::USD("2018-08-01".to_string()), 3.6603); + exchange_rates.insert(Exchange::USD("2013-10-09".to_string()), 3.1057); + exchange_rates.insert(Exchange::USD("2016-01-08".to_string()), 3.9963); + exchange_rates.insert(Exchange::USD("2019-02-04".to_string()), 3.7408); + exchange_rates.insert(Exchange::USD("2015-09-04".to_string()), 3.7952); + exchange_rates.insert(Exchange::USD("2021-02-16".to_string()), 3.694); + exchange_rates.insert(Exchange::USD("2020-03-03".to_string()), 3.8804); + exchange_rates.insert(Exchange::USD("2023-09-12".to_string()), 4.3711); + exchange_rates.insert(Exchange::USD("2020-05-11".to_string()), 4.2126); + exchange_rates.insert(Exchange::USD("2015-02-24".to_string()), 3.6948); + exchange_rates.insert(Exchange::USD("2015-03-18".to_string()), 3.9073); + exchange_rates.insert(Exchange::USD("2014-12-30".to_string()), 3.5458); + exchange_rates.insert(Exchange::USD("2017-07-17".to_string()), 3.6767); + exchange_rates.insert(Exchange::USD("2020-10-13".to_string()), 3.7932); + exchange_rates.insert(Exchange::USD("2013-07-19".to_string()), 3.2348); + exchange_rates.insert(Exchange::USD("2023-08-01".to_string()), 4.0262); + exchange_rates.insert(Exchange::USD("2021-12-22".to_string()), 4.0984); + exchange_rates.insert(Exchange::USD("2015-07-30".to_string()), 3.7754); + exchange_rates.insert(Exchange::USD("2018-07-02".to_string()), 3.7703); + exchange_rates.insert(Exchange::USD("2023-10-11".to_string()), 4.2589); + exchange_rates.insert(Exchange::USD("2015-06-30".to_string()), 3.7645); + exchange_rates.insert(Exchange::USD("2012-11-22".to_string()), 3.2021); + exchange_rates.insert(Exchange::USD("2019-09-27".to_string()), 4.0154); + exchange_rates.insert(Exchange::USD("2023-09-29".to_string()), 4.3697); + exchange_rates.insert(Exchange::USD("2014-01-02".to_string()), 3.0315); + exchange_rates.insert(Exchange::USD("2014-04-18".to_string()), 3.0265); + exchange_rates.insert(Exchange::USD("2019-03-07".to_string()), 3.8038); + exchange_rates.insert(Exchange::USD("2019-01-08".to_string()), 3.7559); + exchange_rates.insert(Exchange::USD("2021-01-15".to_string()), 3.7466); + exchange_rates.insert(Exchange::USD("2016-04-13".to_string()), 3.7771); + exchange_rates.insert(Exchange::USD("2022-03-28".to_string()), 4.2784); + exchange_rates.insert(Exchange::USD("2018-10-11".to_string()), 3.7399); + exchange_rates.insert(Exchange::USD("2014-07-01".to_string()), 3.0355); + exchange_rates.insert(Exchange::USD("2014-03-19".to_string()), 3.0245); + exchange_rates.insert(Exchange::USD("2021-02-12".to_string()), 3.7186); + exchange_rates.insert(Exchange::USD("2020-12-11".to_string()), 3.663); + exchange_rates.insert(Exchange::USD("2013-12-02".to_string()), 3.0965); + exchange_rates.insert(Exchange::USD("2023-12-29".to_string()), 3.935); + exchange_rates.insert(Exchange::USD("2021-03-10".to_string()), 3.842); + exchange_rates.insert(Exchange::USD("2019-07-12".to_string()), 3.7889); + exchange_rates.insert(Exchange::USD("2016-10-27".to_string()), 3.976); + exchange_rates.insert(Exchange::USD("2023-02-16".to_string()), 4.4601); + exchange_rates.insert(Exchange::USD("2017-11-07".to_string()), 3.6652); + exchange_rates.insert(Exchange::USD("2017-11-16".to_string()), 3.5958); + exchange_rates.insert(Exchange::USD("2015-05-07".to_string()), 3.583); + exchange_rates.insert(Exchange::USD("2013-03-25".to_string()), 3.195); + exchange_rates.insert(Exchange::USD("2019-08-12".to_string()), 3.8711); + exchange_rates.insert(Exchange::USD("2013-10-10".to_string()), 3.0994); + exchange_rates.insert(Exchange::USD("2013-12-17".to_string()), 3.036); + exchange_rates.insert(Exchange::EUR("2023-08-03".to_string()), 4.4585); + exchange_rates.insert(Exchange::USD("2023-04-07".to_string()), 4.2932); + exchange_rates.insert(Exchange::USD("2022-09-12".to_string()), 4.6225); + exchange_rates.insert(Exchange::USD("2013-11-08".to_string()), 3.1133); + exchange_rates.insert(Exchange::USD("2016-04-04".to_string()), 3.7254); + exchange_rates.insert(Exchange::USD("2021-03-04".to_string()), 3.7851); + exchange_rates.insert(Exchange::USD("2012-02-28".to_string()), 3.0977); + exchange_rates.insert(Exchange::USD("2016-06-27".to_string()), 4.0263); + exchange_rates.insert(Exchange::USD("2012-08-20".to_string()), 3.2944); + exchange_rates.insert(Exchange::USD("2024-08-01".to_string()), 3.9802); + exchange_rates.insert(Exchange::USD("2016-02-25".to_string()), 3.9705); + exchange_rates.insert(Exchange::USD("2019-03-28".to_string()), 3.8202); + exchange_rates.insert(Exchange::EUR("2023-04-20".to_string()), 4.6109); + exchange_rates.insert(Exchange::USD("2019-08-20".to_string()), 3.9408); + exchange_rates.insert(Exchange::USD("2014-09-15".to_string()), 3.2522); + exchange_rates.insert(Exchange::USD("2019-04-02".to_string()), 3.8403); + exchange_rates.insert(Exchange::USD("2013-09-11".to_string()), 3.1955); + exchange_rates.insert(Exchange::USD("2013-11-25".to_string()), 3.1019); + exchange_rates.insert(Exchange::USD("2012-01-09".to_string()), 3.515); + exchange_rates.insert(Exchange::USD("2017-02-28".to_string()), 4.077); + exchange_rates.insert(Exchange::USD("2023-05-02".to_string()), 4.1823); + exchange_rates.insert(Exchange::USD("2021-01-05".to_string()), 3.7031); + exchange_rates.insert(Exchange::USD("2016-04-18".to_string()), 3.801); + exchange_rates.insert(Exchange::USD("2019-09-19".to_string()), 3.9267); + exchange_rates.insert(Exchange::USD("2017-06-27".to_string()), 3.7442); + exchange_rates.insert(Exchange::USD("2015-06-10".to_string()), 3.676); + exchange_rates.insert(Exchange::USD("2014-03-03".to_string()), 3.0462); + exchange_rates.insert(Exchange::EUR("2023-04-04".to_string()), 4.6785); + exchange_rates.insert(Exchange::USD("2017-07-05".to_string()), 3.7471); + exchange_rates.insert(Exchange::EUR("2023-06-06".to_string()), 4.4902); + exchange_rates.insert(Exchange::EUR("2023-07-13".to_string()), 4.4336); + exchange_rates.insert(Exchange::EUR("2023-08-01".to_string()), 4.419); + exchange_rates.insert(Exchange::EUR("2023-12-29".to_string()), 4.348); + exchange_rates.insert(Exchange::USD("2017-09-18".to_string()), 3.5881); + exchange_rates.insert(Exchange::USD("2019-07-17".to_string()), 3.8038); + exchange_rates.insert(Exchange::USD("2021-10-13".to_string()), 3.9638); + exchange_rates.insert(Exchange::USD("2023-03-13".to_string()), 4.3906); + exchange_rates.insert(Exchange::USD("2018-01-02".to_string()), 3.4546); + exchange_rates.insert(Exchange::USD("2024-08-08".to_string()), 3.952); + exchange_rates.insert(Exchange::USD("2018-04-27".to_string()), 3.5003); + exchange_rates.insert(Exchange::USD("2016-09-23".to_string()), 3.8328); + exchange_rates.insert(Exchange::USD("2014-08-22".to_string()), 3.152); + exchange_rates.insert(Exchange::USD("2014-12-15".to_string()), 3.3621); + exchange_rates.insert(Exchange::USD("2012-02-17".to_string()), 3.179); + exchange_rates.insert(Exchange::EUR("2023-12-12".to_string()), 4.3396); + exchange_rates.insert(Exchange::USD("2022-06-23".to_string()), 4.4881); + exchange_rates.insert(Exchange::USD("2018-11-23".to_string()), 3.7779); + exchange_rates.insert(Exchange::USD("2012-03-23".to_string()), 3.1417); + exchange_rates.insert(Exchange::USD("2021-02-03".to_string()), 3.7352); + exchange_rates.insert(Exchange::USD("2012-01-11".to_string()), 3.4919); + exchange_rates.insert(Exchange::USD("2022-05-02".to_string()), 4.4454); + exchange_rates.insert(Exchange::USD("2017-02-09".to_string()), 4.0332); + exchange_rates.insert(Exchange::USD("2024-09-20".to_string()), 3.8317); + exchange_rates.insert(Exchange::USD("2020-06-10".to_string()), 3.918); + exchange_rates.insert(Exchange::USD("2016-05-10".to_string()), 3.8853); + exchange_rates.insert(Exchange::USD("2018-12-06".to_string()), 3.7844); + exchange_rates.insert(Exchange::USD("2016-11-30".to_string()), 4.1721); + exchange_rates.insert(Exchange::USD("2014-05-13".to_string()), 3.0381); + exchange_rates.insert(Exchange::EUR("2023-09-14".to_string()), 4.6285); + exchange_rates.insert(Exchange::USD("2022-11-09".to_string()), 4.6817); + exchange_rates.insert(Exchange::USD("2015-01-29".to_string()), 3.7418); + exchange_rates.insert(Exchange::USD("2012-09-14".to_string()), 3.1131); + exchange_rates.insert(Exchange::USD("2020-02-11".to_string()), 3.9041); + exchange_rates.insert(Exchange::EUR("2023-08-07".to_string()), 4.4279); + exchange_rates.insert(Exchange::USD("2019-08-08".to_string()), 3.8538); + exchange_rates.insert(Exchange::USD("2023-02-14".to_string()), 4.4463); + exchange_rates.insert(Exchange::USD("2017-08-02".to_string()), 3.5863); + exchange_rates.insert(Exchange::USD("2019-10-11".to_string()), 3.9145); + exchange_rates.insert(Exchange::USD("2024-07-23".to_string()), 3.9355); + exchange_rates.insert(Exchange::USD("2022-12-29".to_string()), 4.4078); + exchange_rates.insert(Exchange::USD("2019-10-23".to_string()), 3.8473); + exchange_rates.insert(Exchange::USD("2015-03-17".to_string()), 3.9034); + exchange_rates.insert(Exchange::USD("2014-09-05".to_string()), 3.2354); + exchange_rates.insert(Exchange::USD("2020-10-27".to_string()), 3.886); + exchange_rates.insert(Exchange::USD("2020-04-17".to_string()), 4.1886); + exchange_rates.insert(Exchange::USD("2016-05-24".to_string()), 3.9789); + exchange_rates.insert(Exchange::USD("2021-04-29".to_string()), 3.7786); + exchange_rates.insert(Exchange::USD("2015-12-16".to_string()), 3.9644); + exchange_rates.insert(Exchange::USD("2012-04-05".to_string()), 3.1678); + exchange_rates.insert(Exchange::USD("2016-02-12".to_string()), 3.9074); + exchange_rates.insert(Exchange::USD("2016-04-28".to_string()), 3.8695); + exchange_rates.insert(Exchange::USD("2024-08-29".to_string()), 3.867); + exchange_rates.insert(Exchange::EUR("2023-11-28".to_string()), 4.3542); + exchange_rates.insert(Exchange::USD("2023-06-23".to_string()), 4.0893); + exchange_rates.insert(Exchange::USD("2013-05-14".to_string()), 3.1998); + exchange_rates.insert(Exchange::USD("2015-08-17".to_string()), 3.7613); + exchange_rates.insert(Exchange::USD("2014-04-01".to_string()), 3.0278); + exchange_rates.insert(Exchange::USD("2023-08-09".to_string()), 4.0592); + exchange_rates.insert(Exchange::USD("2013-06-03".to_string()), 3.2865); + exchange_rates.insert(Exchange::USD("2018-09-11".to_string()), 3.7087); + exchange_rates.insert(Exchange::USD("2014-12-16".to_string()), 3.3522); + exchange_rates.insert(Exchange::USD("2016-06-06".to_string()), 3.8602); + exchange_rates.insert(Exchange::USD("2016-04-07".to_string()), 3.7414); + exchange_rates.insert(Exchange::USD("2023-04-19".to_string()), 4.2244); + exchange_rates.insert(Exchange::USD("2024-03-07".to_string()), 3.9485); + exchange_rates.insert(Exchange::USD("2023-03-23".to_string()), 4.3011); + exchange_rates.insert(Exchange::USD("2020-10-20".to_string()), 3.8926); + exchange_rates.insert(Exchange::USD("2022-03-25".to_string()), 4.3125); + exchange_rates.insert(Exchange::USD("2018-06-20".to_string()), 3.7352); + exchange_rates.insert(Exchange::USD("2018-07-25".to_string()), 3.6793); + exchange_rates.insert(Exchange::USD("2020-10-23".to_string()), 3.8665); + exchange_rates.insert(Exchange::USD("2015-08-12".to_string()), 3.7805); + exchange_rates.insert(Exchange::USD("2016-09-12".to_string()), 3.8668); + exchange_rates.insert(Exchange::USD("2014-12-10".to_string()), 3.3572); + exchange_rates.insert(Exchange::USD("2013-09-30".to_string()), 3.1227); + exchange_rates.insert(Exchange::USD("2014-07-02".to_string()), 3.0387); + exchange_rates.insert(Exchange::EUR("2023-02-13".to_string()), 4.7895); + exchange_rates.insert(Exchange::USD("2016-05-16".to_string()), 3.8625); + exchange_rates.insert(Exchange::USD("2014-09-04".to_string()), 3.1947); + exchange_rates.insert(Exchange::USD("2020-01-02".to_string()), 3.8); + exchange_rates.insert(Exchange::USD("2017-09-20".to_string()), 3.5619); + exchange_rates.insert(Exchange::USD("2012-07-12".to_string()), 3.4383); + exchange_rates.insert(Exchange::USD("2019-04-18".to_string()), 3.8002); + exchange_rates.insert(Exchange::EUR("2023-03-30".to_string()), 4.6801); + exchange_rates.insert(Exchange::EUR("2023-12-04".to_string()), 4.3337); + exchange_rates.insert(Exchange::USD("2013-03-04".to_string()), 3.1837); + exchange_rates.insert(Exchange::USD("2016-05-27".to_string()), 3.9393); + exchange_rates.insert(Exchange::USD("2023-02-27".to_string()), 4.4697); + exchange_rates.insert(Exchange::USD("2018-05-16".to_string()), 3.6241); + exchange_rates.insert(Exchange::USD("2024-05-28".to_string()), 3.9183); + exchange_rates.insert(Exchange::USD("2014-07-17".to_string()), 3.0579); + exchange_rates.insert(Exchange::USD("2023-06-26".to_string()), 4.0669); + exchange_rates.insert(Exchange::USD("2020-08-07".to_string()), 3.7302); + exchange_rates.insert(Exchange::USD("2015-05-18".to_string()), 3.555); + exchange_rates.insert(Exchange::USD("2013-02-11".to_string()), 3.0991); + exchange_rates.insert(Exchange::USD("2014-11-19".to_string()), 3.3655); + exchange_rates.insert(Exchange::USD("2018-12-20".to_string()), 3.7331); + exchange_rates.insert(Exchange::USD("2019-06-04".to_string()), 3.8041); + exchange_rates.insert(Exchange::USD("2013-07-29".to_string()), 3.1859); + exchange_rates.insert(Exchange::USD("2020-06-03".to_string()), 3.9121); + exchange_rates.insert(Exchange::USD("2019-01-30".to_string()), 3.7577); + exchange_rates.insert(Exchange::USD("2018-06-13".to_string()), 3.6461); + exchange_rates.insert(Exchange::USD("2015-11-02".to_string()), 3.859); + exchange_rates.insert(Exchange::EUR("2023-12-13".to_string()), 4.3309); + exchange_rates.insert(Exchange::USD("2016-11-10".to_string()), 3.9856); + exchange_rates.insert(Exchange::USD("2014-10-17".to_string()), 3.2964); + exchange_rates.insert(Exchange::USD("2022-08-12".to_string()), 4.5459); + exchange_rates.insert(Exchange::USD("2015-06-16".to_string()), 3.6933); + exchange_rates.insert(Exchange::USD("2016-03-01".to_string()), 3.9924); + exchange_rates.insert(Exchange::USD("2016-05-17".to_string()), 3.8508); + exchange_rates.insert(Exchange::EUR("2023-03-02".to_string()), 4.675); + exchange_rates.insert(Exchange::EUR("2023-04-03".to_string()), 4.6805); + exchange_rates.insert(Exchange::USD("2023-04-26".to_string()), 4.1557); + exchange_rates.insert(Exchange::USD("2022-03-08".to_string()), 4.5115); + exchange_rates.insert(Exchange::USD("2019-02-01".to_string()), 3.7243); + exchange_rates.insert(Exchange::USD("2015-03-27".to_string()), 3.789); + exchange_rates.insert(Exchange::USD("2021-09-03".to_string()), 3.7998); + exchange_rates.insert(Exchange::USD("2018-12-13".to_string()), 3.7739); + exchange_rates.insert(Exchange::USD("2016-09-13".to_string()), 3.8734); + exchange_rates.insert(Exchange::USD("2013-08-07".to_string()), 3.1725); + exchange_rates.insert(Exchange::USD("2013-11-15".to_string()), 3.1172); + exchange_rates.insert(Exchange::USD("2019-01-24".to_string()), 3.7844); + exchange_rates.insert(Exchange::USD("2017-12-28".to_string()), 3.5046); + exchange_rates.insert(Exchange::USD("2015-09-03".to_string()), 3.7645); + exchange_rates.insert(Exchange::USD("2012-04-18".to_string()), 3.1902); + exchange_rates.insert(Exchange::USD("2019-02-19".to_string()), 3.8311); + exchange_rates.insert(Exchange::EUR("2023-10-03".to_string()), 4.6147); + exchange_rates.insert(Exchange::EUR("2023-05-24".to_string()), 4.4803); + exchange_rates.insert(Exchange::USD("2015-06-23".to_string()), 3.704); + exchange_rates.insert(Exchange::USD("2018-07-27".to_string()), 3.6937); + exchange_rates.insert(Exchange::USD("2014-06-26".to_string()), 3.0361); + exchange_rates.insert(Exchange::USD("2016-07-05".to_string()), 3.9963); + exchange_rates.insert(Exchange::USD("2022-06-21".to_string()), 4.3917); + exchange_rates.insert(Exchange::USD("2022-05-18".to_string()), 4.4279); + exchange_rates.insert(Exchange::USD("2013-09-10".to_string()), 3.2181); + exchange_rates.insert(Exchange::USD("2015-08-11".to_string()), 3.8087); + exchange_rates.insert(Exchange::USD("2012-12-18".to_string()), 3.1044); + exchange_rates.insert(Exchange::EUR("2023-10-05".to_string()), 4.5974); + exchange_rates.insert(Exchange::USD("2024-10-31".to_string()), 4.0059); + exchange_rates.insert(Exchange::USD("2020-01-08".to_string()), 3.8123); + exchange_rates.insert(Exchange::USD("2020-07-24".to_string()), 3.8029); + exchange_rates.insert(Exchange::USD("2022-01-12".to_string()), 3.9879); + exchange_rates.insert(Exchange::USD("2018-01-29".to_string()), 3.3375); + exchange_rates.insert(Exchange::USD("2015-06-29".to_string()), 3.7671); + exchange_rates.insert(Exchange::EUR("2023-11-03".to_string()), 4.4569); + exchange_rates.insert(Exchange::USD("2022-06-09".to_string()), 4.2764); + exchange_rates.insert(Exchange::USD("2022-11-24".to_string()), 4.5101); + exchange_rates.insert(Exchange::USD("2021-07-01".to_string()), 3.8149); + exchange_rates.insert(Exchange::USD("2022-07-18".to_string()), 4.7152); + exchange_rates.insert(Exchange::USD("2024-07-10".to_string()), 3.9324); + exchange_rates.insert(Exchange::USD("2021-12-02".to_string()), 4.0625); + exchange_rates.insert(Exchange::USD("2021-12-27".to_string()), 4.0889); + exchange_rates.insert(Exchange::USD("2023-03-15".to_string()), 4.403); + exchange_rates.insert(Exchange::USD("2022-06-02".to_string()), 4.2931); + exchange_rates.insert(Exchange::USD("2017-04-28".to_string()), 3.8696); + exchange_rates.insert(Exchange::USD("2017-05-12".to_string()), 3.8837); + exchange_rates.insert(Exchange::USD("2023-05-17".to_string()), 4.1504); + exchange_rates.insert(Exchange::USD("2017-06-09".to_string()), 3.7465); + exchange_rates.insert(Exchange::USD("2023-01-09".to_string()), 4.401); + exchange_rates.insert(Exchange::USD("2015-09-24".to_string()), 3.7687); + exchange_rates.insert(Exchange::USD("2017-04-07".to_string()), 3.9755); + exchange_rates.insert(Exchange::USD("2019-06-24".to_string()), 3.736); + exchange_rates.insert(Exchange::USD("2019-12-19".to_string()), 3.8281); + exchange_rates.insert(Exchange::USD("2018-08-30".to_string()), 3.6724); + exchange_rates.insert(Exchange::USD("2019-09-06".to_string()), 3.9315); + exchange_rates.insert(Exchange::USD("2014-02-24".to_string()), 3.0255); + exchange_rates.insert(Exchange::USD("2017-09-01".to_string()), 3.5693); + exchange_rates.insert(Exchange::USD("2023-01-23".to_string()), 4.3242); + exchange_rates.insert(Exchange::USD("2012-02-09".to_string()), 3.1487); + exchange_rates.insert(Exchange::USD("2012-04-11".to_string()), 3.2034); + exchange_rates.insert(Exchange::EUR("2023-04-26".to_string()), 4.5887); + exchange_rates.insert(Exchange::USD("2019-10-02".to_string()), 4.0152); + exchange_rates.insert(Exchange::USD("2021-07-20".to_string()), 3.9012); + exchange_rates.insert(Exchange::USD("2012-12-10".to_string()), 3.1978); + exchange_rates.insert(Exchange::USD("2016-08-04".to_string()), 3.8588); + exchange_rates.insert(Exchange::USD("2023-05-31".to_string()), 4.2559); + exchange_rates.insert(Exchange::USD("2024-02-09".to_string()), 4.0096); + exchange_rates.insert(Exchange::USD("2016-08-18".to_string()), 3.7826); + exchange_rates.insert(Exchange::USD("2024-04-10".to_string()), 3.9264); + exchange_rates.insert(Exchange::USD("2021-01-18".to_string()), 3.7699); + exchange_rates.insert(Exchange::USD("2023-11-17".to_string()), 4.0327); + exchange_rates.insert(Exchange::USD("2018-07-19".to_string()), 3.7163); + exchange_rates.insert(Exchange::USD("2021-10-07".to_string()), 3.9334); + exchange_rates.insert(Exchange::USD("2023-03-02".to_string()), 4.4002); + exchange_rates.insert(Exchange::USD("2018-08-09".to_string()), 3.6846); + exchange_rates.insert(Exchange::USD("2014-04-08".to_string()), 3.0276); + exchange_rates.insert(Exchange::USD("2014-08-13".to_string()), 3.1442); + exchange_rates.insert(Exchange::USD("2013-03-18".to_string()), 3.2015); + exchange_rates.insert(Exchange::USD("2022-12-22".to_string()), 4.3726); + exchange_rates.insert(Exchange::USD("2012-07-18".to_string()), 3.395); + exchange_rates.insert(Exchange::USD("2024-03-01".to_string()), 3.9922); + exchange_rates.insert(Exchange::USD("2022-08-30".to_string()), 4.721); + exchange_rates.insert(Exchange::USD("2021-09-20".to_string()), 3.9282); + exchange_rates.insert(Exchange::USD("2018-06-08".to_string()), 3.6479); + exchange_rates.insert(Exchange::USD("2016-12-16".to_string()), 4.2296); + exchange_rates.insert(Exchange::USD("2020-11-27".to_string()), 3.7614); + exchange_rates.insert(Exchange::USD("2019-06-26".to_string()), 3.754); + exchange_rates.insert(Exchange::USD("2021-11-15".to_string()), 4.0497); + exchange_rates.insert(Exchange::EUR("2023-07-17".to_string()), 4.452); + exchange_rates.insert(Exchange::USD("2022-05-19".to_string()), 4.4231); + exchange_rates.insert(Exchange::USD("2016-10-26".to_string()), 3.9517); + exchange_rates.insert(Exchange::USD("2022-05-31".to_string()), 4.2651); + exchange_rates.insert(Exchange::USD("2023-08-30".to_string()), 4.1167); + exchange_rates.insert(Exchange::USD("2016-03-17".to_string()), 3.8037); + exchange_rates.insert(Exchange::USD("2024-09-24".to_string()), 3.83); + exchange_rates.insert(Exchange::USD("2014-09-01".to_string()), 3.2035); + exchange_rates.insert(Exchange::USD("2021-07-14".to_string()), 3.8955); + exchange_rates.insert(Exchange::USD("2024-11-07".to_string()), 4.0414); + exchange_rates.insert(Exchange::USD("2024-10-01".to_string()), 3.859); + exchange_rates.insert(Exchange::USD("2024-03-18".to_string()), 3.9528); + exchange_rates.insert(Exchange::USD("2021-09-10".to_string()), 3.8402); + exchange_rates.insert(Exchange::USD("2020-01-22".to_string()), 3.8202); + exchange_rates.insert(Exchange::USD("2019-12-10".to_string()), 3.8711); + exchange_rates.insert(Exchange::USD("2014-12-22".to_string()), 3.4767); + exchange_rates.insert(Exchange::USD("2021-09-29".to_string()), 3.9684); + exchange_rates.insert(Exchange::USD("2014-06-27".to_string()), 3.0485); + exchange_rates.insert(Exchange::USD("2017-11-23".to_string()), 3.5557); + exchange_rates.insert(Exchange::USD("2015-04-24".to_string()), 3.6895); + exchange_rates.insert(Exchange::USD("2019-02-14".to_string()), 3.8516); + exchange_rates.insert(Exchange::USD("2021-06-22".to_string()), 3.8132); + exchange_rates.insert(Exchange::USD("2023-04-14".to_string()), 4.2042); + exchange_rates.insert(Exchange::USD("2012-04-04".to_string()), 3.1503); + exchange_rates.insert(Exchange::USD("2018-11-20".to_string()), 3.79); + exchange_rates.insert(Exchange::USD("2024-04-15".to_string()), 4.0209); + exchange_rates.insert(Exchange::USD("2022-06-27".to_string()), 4.4369); + exchange_rates.insert(Exchange::USD("2021-04-09".to_string()), 3.8208); + exchange_rates.insert(Exchange::USD("2021-12-28".to_string()), 4.062); + exchange_rates.insert(Exchange::USD("2021-12-07".to_string()), 4.0788); + exchange_rates.insert(Exchange::USD("2024-06-11".to_string()), 4.0443); + exchange_rates.insert(Exchange::USD("2024-06-19".to_string()), 4.0387); + exchange_rates.insert(Exchange::USD("2020-03-23".to_string()), 4.2654); + exchange_rates.insert(Exchange::USD("2016-04-20".to_string()), 3.7842); + exchange_rates.insert(Exchange::USD("2022-07-06".to_string()), 4.6796); + exchange_rates.insert(Exchange::USD("2016-09-06".to_string()), 3.8869); + exchange_rates.insert(Exchange::USD("2015-02-11".to_string()), 3.7094); + exchange_rates.insert(Exchange::USD("2023-07-13".to_string()), 3.9724); + exchange_rates.insert(Exchange::USD("2015-06-24".to_string()), 3.7103); + exchange_rates.insert(Exchange::USD("2016-05-18".to_string()), 3.9005); + exchange_rates.insert(Exchange::USD("2014-02-17".to_string()), 3.025); + exchange_rates.insert(Exchange::USD("2017-02-20".to_string()), 4.0692); + exchange_rates.insert(Exchange::USD("2019-11-04".to_string()), 3.8099); + exchange_rates.insert(Exchange::USD("2013-05-07".to_string()), 3.1767); + exchange_rates.insert(Exchange::USD("2012-05-14".to_string()), 3.3422); + exchange_rates.insert(Exchange::USD("2019-06-19".to_string()), 3.8104); + exchange_rates.insert(Exchange::USD("2016-12-27".to_string()), 4.212); + exchange_rates.insert(Exchange::USD("2017-12-01".to_string()), 3.5352); + exchange_rates.insert(Exchange::USD("2016-12-22".to_string()), 4.2222); + exchange_rates.insert(Exchange::USD("2012-08-16".to_string()), 3.3253); + exchange_rates.insert(Exchange::USD("2012-08-23".to_string()), 3.2488); + exchange_rates.insert(Exchange::USD("2023-03-03".to_string()), 4.4341); + exchange_rates.insert(Exchange::USD("2013-11-29".to_string()), 3.0846); + exchange_rates.insert(Exchange::EUR("2023-04-12".to_string()), 4.666); + exchange_rates.insert(Exchange::USD("2020-12-07".to_string()), 3.7001); + exchange_rates.insert(Exchange::EUR("2023-02-20".to_string()), 4.7542); + exchange_rates.insert(Exchange::USD("2018-11-14".to_string()), 3.8114); + exchange_rates.insert(Exchange::USD("2022-03-07".to_string()), 4.5722); + exchange_rates.insert(Exchange::USD("2022-10-25".to_string()), 4.8499); + exchange_rates.insert(Exchange::USD("2014-03-17".to_string()), 3.043); + exchange_rates.insert(Exchange::USD("2019-10-01".to_string()), 4.0147); + exchange_rates.insert(Exchange::USD("2020-09-01".to_string()), 3.6707); + exchange_rates.insert(Exchange::USD("2017-01-09".to_string()), 4.1592); + exchange_rates.insert(Exchange::USD("2019-02-06".to_string()), 3.7706); + exchange_rates.insert(Exchange::USD("2018-10-25".to_string()), 3.7796); + exchange_rates.insert(Exchange::USD("2021-04-12".to_string()), 3.8144); + exchange_rates.insert(Exchange::USD("2014-01-09".to_string()), 3.0695); + exchange_rates.insert(Exchange::USD("2022-07-22".to_string()), 4.692); + exchange_rates.insert(Exchange::USD("2024-07-18".to_string()), 3.9296); + exchange_rates.insert(Exchange::USD("2013-05-24".to_string()), 3.24); + exchange_rates.insert(Exchange::USD("2013-10-16".to_string()), 3.0854); + exchange_rates.insert(Exchange::USD("2012-05-17".to_string()), 3.4194); + exchange_rates.insert(Exchange::USD("2014-08-18".to_string()), 3.1342); + exchange_rates.insert(Exchange::USD("2012-06-20".to_string()), 3.3471); + exchange_rates.insert(Exchange::USD("2015-06-11".to_string()), 3.6817); + exchange_rates.insert(Exchange::EUR("2023-03-16".to_string()), 4.6978); + exchange_rates.insert(Exchange::USD("2019-01-22".to_string()), 3.7727); + exchange_rates.insert(Exchange::EUR("2023-08-23".to_string()), 4.4834); + exchange_rates.insert(Exchange::USD("2014-08-05".to_string()), 3.1121); + exchange_rates.insert(Exchange::USD("2016-04-11".to_string()), 3.7587); + exchange_rates.insert(Exchange::USD("2021-07-12".to_string()), 3.8378); + exchange_rates.insert(Exchange::USD("2022-06-10".to_string()), 4.3363); + exchange_rates.insert(Exchange::USD("2020-06-09".to_string()), 3.9453); + exchange_rates.insert(Exchange::USD("2017-12-14".to_string()), 3.5716); + exchange_rates.insert(Exchange::USD("2019-10-21".to_string()), 3.8307); + exchange_rates.insert(Exchange::USD("2024-01-24".to_string()), 4.0131); + exchange_rates.insert(Exchange::USD("2015-03-20".to_string()), 3.8645); + exchange_rates.insert(Exchange::USD("2013-08-28".to_string()), 3.184); + exchange_rates.insert(Exchange::USD("2022-07-14".to_string()), 4.8274); + exchange_rates.insert(Exchange::USD("2012-10-26".to_string()), 3.2119); + exchange_rates.insert(Exchange::USD("2016-09-02".to_string()), 3.9164); + exchange_rates.insert(Exchange::USD("2012-12-05".to_string()), 3.1516); + exchange_rates.insert(Exchange::USD("2023-02-10".to_string()), 4.4565); + exchange_rates.insert(Exchange::USD("2012-10-25".to_string()), 3.1851); + exchange_rates.insert(Exchange::USD("2014-09-29".to_string()), 3.3); + exchange_rates.insert(Exchange::USD("2019-10-31".to_string()), 3.8174); + exchange_rates.insert(Exchange::USD("2017-06-30".to_string()), 3.7062); + exchange_rates.insert(Exchange::USD("2022-10-04".to_string()), 4.8615); + exchange_rates.insert(Exchange::USD("2023-05-25".to_string()), 4.1994); + exchange_rates.insert(Exchange::USD("2016-11-03".to_string()), 3.8965); + exchange_rates.insert(Exchange::USD("2023-07-20".to_string()), 3.971); + exchange_rates.insert(Exchange::USD("2014-02-14".to_string()), 3.0334); + exchange_rates.insert(Exchange::USD("2020-09-18".to_string()), 3.7585); + exchange_rates.insert(Exchange::USD("2018-11-26".to_string()), 3.7701); + exchange_rates.insert(Exchange::USD("2017-01-27".to_string()), 4.0595); + exchange_rates.insert(Exchange::USD("2018-07-16".to_string()), 3.6828); + exchange_rates.insert(Exchange::USD("2024-02-28".to_string()), 3.9922); + exchange_rates.insert(Exchange::USD("2020-08-24".to_string()), 3.7273); + exchange_rates.insert(Exchange::USD("2016-12-12".to_string()), 4.209); + exchange_rates.insert(Exchange::USD("2015-07-02".to_string()), 3.7859); + exchange_rates.insert(Exchange::USD("2012-03-05".to_string()), 3.1355); + exchange_rates.insert(Exchange::USD("2018-09-21".to_string()), 3.6402); + exchange_rates.insert(Exchange::EUR("2023-07-12".to_string()), 4.4471); + exchange_rates.insert(Exchange::USD("2022-08-11".to_string()), 4.5206); + exchange_rates.insert(Exchange::USD("2020-06-25".to_string()), 3.9623); + exchange_rates.insert(Exchange::USD("2017-10-03".to_string()), 3.6737); + exchange_rates.insert(Exchange::USD("2022-07-12".to_string()), 4.8284); + exchange_rates.insert(Exchange::USD("2020-11-23".to_string()), 3.7616); + exchange_rates.insert(Exchange::USD("2018-03-05".to_string()), 3.3995); + exchange_rates.insert(Exchange::USD("2016-05-05".to_string()), 3.8475); + exchange_rates.insert(Exchange::USD("2016-12-06".to_string()), 4.1825); + exchange_rates.insert(Exchange::USD("2015-11-19".to_string()), 3.9754); + exchange_rates.insert(Exchange::EUR("2023-09-20".to_string()), 4.6529); + exchange_rates.insert(Exchange::USD("2021-01-19".to_string()), 3.7416); + exchange_rates.insert(Exchange::USD("2013-01-31".to_string()), 3.0874); + exchange_rates.insert(Exchange::USD("2024-07-15".to_string()), 3.896); + exchange_rates.insert(Exchange::USD("2012-06-26".to_string()), 3.4088); + exchange_rates.insert(Exchange::USD("2022-08-31".to_string()), 4.736); + exchange_rates.insert(Exchange::USD("2015-04-21".to_string()), 3.7275); + exchange_rates.insert(Exchange::USD("2017-02-13".to_string()), 4.0496); + exchange_rates.insert(Exchange::USD("2012-12-28".to_string()), 3.0893); + exchange_rates.insert(Exchange::USD("2017-07-10".to_string()), 3.716); + exchange_rates.insert(Exchange::USD("2013-03-08".to_string()), 3.169); + exchange_rates.insert(Exchange::USD("2019-08-06".to_string()), 3.8482); + exchange_rates.insert(Exchange::USD("2017-08-04".to_string()), 3.5702); + exchange_rates.insert(Exchange::USD("2017-09-11".to_string()), 3.5293); + exchange_rates.insert(Exchange::USD("2012-04-10".to_string()), 3.1904); + exchange_rates.insert(Exchange::EUR("2023-09-08".to_string()), 4.6019); + exchange_rates.insert(Exchange::USD("2022-10-19".to_string()), 4.8892); + exchange_rates.insert(Exchange::USD("2020-05-05".to_string()), 4.1927); + exchange_rates.insert(Exchange::USD("2017-04-10".to_string()), 3.9956); + exchange_rates.insert(Exchange::USD("2013-05-16".to_string()), 3.2521); + exchange_rates.insert(Exchange::USD("2017-12-29".to_string()), 3.4813); + exchange_rates.insert(Exchange::USD("2014-05-05".to_string()), 3.031); + exchange_rates.insert(Exchange::EUR("2023-10-02".to_string()), 4.6091); + exchange_rates.insert(Exchange::USD("2017-02-02".to_string()), 3.9835); + exchange_rates.insert(Exchange::USD("2013-07-10".to_string()), 3.3724); + exchange_rates.insert(Exchange::USD("2017-01-10".to_string()), 4.127); + exchange_rates.insert(Exchange::EUR("2023-10-04".to_string()), 4.6303); + exchange_rates.insert(Exchange::USD("2023-07-04".to_string()), 4.0636); + exchange_rates.insert(Exchange::USD("2023-10-20".to_string()), 4.2194); + exchange_rates.insert(Exchange::USD("2024-01-25".to_string()), 4.0189); + exchange_rates.insert(Exchange::USD("2021-11-05".to_string()), 3.9911); + exchange_rates.insert(Exchange::USD("2021-12-16".to_string()), 4.0938); + exchange_rates.insert(Exchange::USD("2021-06-10".to_string()), 3.6821); + exchange_rates.insert(Exchange::USD("2020-09-15".to_string()), 3.7445); + exchange_rates.insert(Exchange::USD("2019-08-13".to_string()), 3.8714); + exchange_rates.insert(Exchange::USD("2019-09-04".to_string()), 3.9414); + exchange_rates.insert(Exchange::USD("2018-05-11".to_string()), 3.5708); + exchange_rates.insert(Exchange::USD("2018-06-01".to_string()), 3.6934); + exchange_rates.insert(Exchange::USD("2016-06-20".to_string()), 3.8724); + exchange_rates.insert(Exchange::USD("2015-10-21".to_string()), 3.7627); + exchange_rates.insert(Exchange::USD("2012-09-07".to_string()), 3.2578); + exchange_rates.insert(Exchange::EUR("2023-03-22".to_string()), 4.6888); + exchange_rates.insert(Exchange::USD("2019-03-21".to_string()), 3.7581); + exchange_rates.insert(Exchange::USD("2024-05-02".to_string()), 4.0474); + exchange_rates.insert(Exchange::USD("2023-07-11".to_string()), 4.0374); + exchange_rates.insert(Exchange::USD("2017-02-14".to_string()), 4.0525); + exchange_rates.insert(Exchange::USD("2017-12-12".to_string()), 3.5708); + exchange_rates.insert(Exchange::USD("2015-04-08".to_string()), 3.7135); + exchange_rates.insert(Exchange::USD("2012-04-23".to_string()), 3.1972); + exchange_rates.insert(Exchange::USD("2017-03-24".to_string()), 3.9481); + exchange_rates.insert(Exchange::USD("2016-07-27".to_string()), 3.9739); + exchange_rates.insert(Exchange::USD("2018-08-24".to_string()), 3.7014); + exchange_rates.insert(Exchange::USD("2015-06-09".to_string()), 3.6975); + exchange_rates.insert(Exchange::USD("2019-05-09".to_string()), 3.841); + exchange_rates.insert(Exchange::USD("2015-09-17".to_string()), 3.7129); + exchange_rates.insert(Exchange::USD("2013-03-13".to_string()), 3.1863); + exchange_rates.insert(Exchange::USD("2023-02-22".to_string()), 4.4687); + exchange_rates.insert(Exchange::USD("2017-03-15".to_string()), 4.0646); + exchange_rates.insert(Exchange::USD("2014-08-11".to_string()), 3.1378); + exchange_rates.insert(Exchange::USD("2013-08-16".to_string()), 3.1665); + exchange_rates.insert(Exchange::USD("2019-11-07".to_string()), 3.8502); + exchange_rates.insert(Exchange::USD("2018-12-18".to_string()), 3.7668); + exchange_rates.insert(Exchange::USD("2022-09-07".to_string()), 4.7584); + exchange_rates.insert(Exchange::USD("2015-01-19".to_string()), 3.7176); + exchange_rates.insert(Exchange::USD("2016-07-20".to_string()), 3.979); + exchange_rates.insert(Exchange::USD("2012-08-30".to_string()), 3.3397); + exchange_rates.insert(Exchange::EUR("2023-11-02".to_string()), 4.4582); + exchange_rates.insert(Exchange::USD("2024-11-19".to_string()), 4.1052); + exchange_rates.insert(Exchange::USD("2015-03-30".to_string()), 3.7685); + exchange_rates.insert(Exchange::USD("2020-05-28".to_string()), 4.0244); + exchange_rates.insert(Exchange::USD("2015-08-10".to_string()), 3.8246); + exchange_rates.insert(Exchange::USD("2013-09-23".to_string()), 3.126); + exchange_rates.insert(Exchange::USD("2012-09-17".to_string()), 3.1207); + exchange_rates.insert(Exchange::USD("2020-01-30".to_string()), 3.8856); + exchange_rates.insert(Exchange::USD("2020-04-15".to_string()), 4.1519); + exchange_rates.insert(Exchange::USD("2018-07-12".to_string()), 3.7055); + exchange_rates.insert(Exchange::USD("2016-04-29".to_string()), 3.8738); + exchange_rates.insert(Exchange::USD("2020-05-25".to_string()), 4.1428); + exchange_rates.insert(Exchange::USD("2018-02-09".to_string()), 3.4263); + exchange_rates.insert(Exchange::USD("2014-06-05".to_string()), 3.0275); + exchange_rates.insert(Exchange::USD("2024-02-21".to_string()), 3.9966); + exchange_rates.insert(Exchange::USD("2022-12-23".to_string()), 4.37); + exchange_rates.insert(Exchange::USD("2017-04-25".to_string()), 3.8873); + exchange_rates.insert(Exchange::USD("2017-09-27".to_string()), 3.665); + exchange_rates.insert(Exchange::USD("2012-10-22".to_string()), 3.147); + exchange_rates.insert(Exchange::USD("2022-10-31".to_string()), 4.734); + exchange_rates.insert(Exchange::EUR("2023-11-21".to_string()), 4.3647); + exchange_rates.insert(Exchange::USD("2023-11-03".to_string()), 4.1857); + exchange_rates.insert(Exchange::USD("2016-04-27".to_string()), 3.8793); + exchange_rates.insert(Exchange::USD("2023-07-03".to_string()), 4.0714); + exchange_rates.insert(Exchange::USD("2015-11-20".to_string()), 3.9706); + exchange_rates.insert(Exchange::EUR("2023-01-31".to_string()), 4.7089); + exchange_rates.insert(Exchange::EUR("2023-02-21".to_string()), 4.7469); + exchange_rates.insert(Exchange::USD("2017-07-18".to_string()), 3.6469); + exchange_rates.insert(Exchange::USD("2013-06-21".to_string()), 3.2743); + exchange_rates.insert(Exchange::USD("2013-08-08".to_string()), 3.1503); + exchange_rates.insert(Exchange::USD("2022-02-16".to_string()), 3.9478); + exchange_rates.insert(Exchange::USD("2012-11-28".to_string()), 3.1799); + exchange_rates.insert(Exchange::USD("2018-02-20".to_string()), 3.3597); + exchange_rates.insert(Exchange::EUR("2023-11-23".to_string()), 4.3658); + exchange_rates.insert(Exchange::USD("2014-08-08".to_string()), 3.1509); + exchange_rates.insert(Exchange::EUR("2023-01-30".to_string()), 4.716); + exchange_rates.insert(Exchange::USD("2023-10-13".to_string()), 4.3033); + exchange_rates.insert(Exchange::USD("2019-06-14".to_string()), 3.7727); + exchange_rates.insert(Exchange::USD("2014-03-18".to_string()), 3.0396); + exchange_rates.insert(Exchange::USD("2014-11-21".to_string()), 3.3827); + exchange_rates.insert(Exchange::USD("2023-09-01".to_string()), 4.1263); + exchange_rates.insert(Exchange::USD("2018-06-06".to_string()), 3.647); + exchange_rates.insert(Exchange::USD("2020-12-24".to_string()), 3.6981); + exchange_rates.insert(Exchange::USD("2013-07-31".to_string()), 3.1929); + exchange_rates.insert(Exchange::USD("2014-03-04".to_string()), 3.0489); + exchange_rates.insert(Exchange::USD("2023-06-20".to_string()), 4.058); + exchange_rates.insert(Exchange::USD("2013-08-14".to_string()), 3.1643); + exchange_rates.insert(Exchange::USD("2021-04-06".to_string()), 3.8973); + exchange_rates.insert(Exchange::USD("2016-06-28".to_string()), 4.003); + exchange_rates.insert(Exchange::USD("2022-08-03".to_string()), 4.6164); + exchange_rates.insert(Exchange::USD("2012-03-13".to_string()), 3.1288); + exchange_rates.insert(Exchange::USD("2023-01-03".to_string()), 4.4373); + exchange_rates.insert(Exchange::USD("2023-09-18".to_string()), 4.3489); + exchange_rates.insert(Exchange::USD("2022-04-26".to_string()), 4.3469); + exchange_rates.insert(Exchange::USD("2013-04-30".to_string()), 3.1721); + exchange_rates.insert(Exchange::USD("2024-08-21".to_string()), 3.8565); + exchange_rates.insert(Exchange::USD("2024-10-14".to_string()), 3.9288); + exchange_rates.insert(Exchange::USD("2022-08-08".to_string()), 4.6127); + exchange_rates.insert(Exchange::USD("2018-10-03".to_string()), 3.7103); + exchange_rates.insert(Exchange::USD("2012-08-07".to_string()), 3.2606); + exchange_rates.insert(Exchange::USD("2017-07-26".to_string()), 3.6661); + exchange_rates.insert(Exchange::USD("2019-11-14".to_string()), 3.9011); + exchange_rates.insert(Exchange::USD("2018-08-13".to_string()), 3.7862); + exchange_rates.insert(Exchange::USD("2022-05-11".to_string()), 4.419); + exchange_rates.insert(Exchange::USD("2015-05-08".to_string()), 3.6095); + exchange_rates.insert(Exchange::USD("2018-12-07".to_string()), 3.7694); + exchange_rates.insert(Exchange::USD("2018-04-09".to_string()), 3.4174); + exchange_rates.insert(Exchange::USD("2014-09-08".to_string()), 3.2303); + exchange_rates.insert(Exchange::EUR("2023-09-19".to_string()), 4.6458); + exchange_rates.insert(Exchange::USD("2023-08-03".to_string()), 4.081); + exchange_rates.insert(Exchange::USD("2022-11-23".to_string()), 4.548); + exchange_rates.insert(Exchange::USD("2016-08-31".to_string()), 3.9082); + exchange_rates.insert(Exchange::USD("2016-11-07".to_string()), 3.9132); + exchange_rates.insert(Exchange::USD("2024-02-16".to_string()), 4.0325); + exchange_rates.insert(Exchange::USD("2017-03-01".to_string()), 4.0756); + exchange_rates.insert(Exchange::USD("2024-05-06".to_string()), 4.0202); + exchange_rates.insert(Exchange::USD("2022-03-03".to_string()), 4.3257); + exchange_rates.insert(Exchange::USD("2020-11-12".to_string()), 3.7995); + exchange_rates.insert(Exchange::USD("2024-05-13".to_string()), 3.9853); + exchange_rates.insert(Exchange::USD("2021-11-18".to_string()), 4.1114); + exchange_rates.insert(Exchange::USD("2024-04-09".to_string()), 3.9223); + exchange_rates.insert(Exchange::USD("2017-08-25".to_string()), 3.6112); + exchange_rates.insert(Exchange::USD("2023-11-27".to_string()), 3.9769); + exchange_rates.insert(Exchange::USD("2019-11-13".to_string()), 3.8902); + exchange_rates.insert(Exchange::USD("2018-01-08".to_string()), 3.4735); + exchange_rates.insert(Exchange::USD("2017-04-21".to_string()), 3.9841); + exchange_rates.insert(Exchange::USD("2014-05-09".to_string()), 3.0247); + exchange_rates.insert(Exchange::USD("2013-09-19".to_string()), 3.0833); + exchange_rates.insert(Exchange::USD("2012-05-23".to_string()), 3.446); + exchange_rates.insert(Exchange::USD("2012-07-10".to_string()), 3.4145); + exchange_rates.insert(Exchange::USD("2012-11-19".to_string()), 3.2503); + exchange_rates.insert(Exchange::USD("2012-08-06".to_string()), 3.2752); + exchange_rates.insert(Exchange::USD("2012-08-24".to_string()), 3.268); + exchange_rates.insert(Exchange::EUR("2023-02-28".to_string()), 4.717); + exchange_rates.insert(Exchange::USD("2023-08-16".to_string()), 4.0832); + exchange_rates.insert(Exchange::USD("2020-02-10".to_string()), 3.8996); + exchange_rates.insert(Exchange::EUR("2023-04-27".to_string()), 4.5915); + exchange_rates.insert(Exchange::USD("2023-08-21".to_string()), 4.1124); + exchange_rates.insert(Exchange::USD("2014-08-07".to_string()), 3.1397); + exchange_rates.insert(Exchange::USD("2017-05-16".to_string()), 3.7932); + exchange_rates.insert(Exchange::USD("2020-02-19".to_string()), 3.9556); + exchange_rates.insert(Exchange::USD("2021-01-26".to_string()), 3.7512); + exchange_rates.insert(Exchange::USD("2020-11-18".to_string()), 3.7621); + exchange_rates.insert(Exchange::USD("2019-05-20".to_string()), 3.8543); + exchange_rates.insert(Exchange::USD("2015-07-10".to_string()), 3.7709); + exchange_rates.insert(Exchange::USD("2014-10-27".to_string()), 3.3288); + exchange_rates.insert(Exchange::USD("2015-02-17".to_string()), 3.6788); + exchange_rates.insert(Exchange::USD("2017-02-08".to_string()), 4.0521); + exchange_rates.insert(Exchange::EUR("2023-10-10".to_string()), 4.5581); + exchange_rates.insert(Exchange::USD("2019-06-13".to_string()), 3.7736); + exchange_rates.insert(Exchange::USD("2023-11-28".to_string()), 3.975); + exchange_rates.insert(Exchange::EUR("2023-01-24".to_string()), 4.7073); + exchange_rates.insert(Exchange::EUR("2023-10-11".to_string()), 4.5183); + exchange_rates.insert(Exchange::USD("2024-04-16".to_string()), 4.0687); + exchange_rates.insert(Exchange::USD("2020-09-25".to_string()), 3.9016); + exchange_rates.insert(Exchange::USD("2018-07-18".to_string()), 3.7031); + exchange_rates.insert(Exchange::USD("2016-02-18".to_string()), 3.9416); + exchange_rates.insert(Exchange::USD("2014-04-02".to_string()), 3.0288); + exchange_rates.insert(Exchange::USD("2020-08-13".to_string()), 3.7176); + exchange_rates.insert(Exchange::USD("2014-04-24".to_string()), 3.0285); + exchange_rates.insert(Exchange::USD("2021-05-14".to_string()), 3.7374); + exchange_rates.insert(Exchange::USD("2023-12-04".to_string()), 3.985); + exchange_rates.insert(Exchange::USD("2015-01-20".to_string()), 3.7346); + exchange_rates.insert(Exchange::USD("2021-01-21".to_string()), 3.7312); + exchange_rates.insert(Exchange::USD("2018-07-13".to_string()), 3.7244); + exchange_rates.insert(Exchange::USD("2016-03-23".to_string()), 3.801); + exchange_rates +} diff --git a/src/pl.rs b/src/pl.rs index a0ec5ea..c38bc8d 100644 --- a/src/pl.rs +++ b/src/pl.rs @@ -1,3 +1,4 @@ +use chrono::Datelike; use serde::{Deserialize, Serialize}; pub struct PL {} @@ -21,12 +22,115 @@ struct NBPResponse { #[derive(Debug, Deserialize, Serialize)] #[allow(non_snake_case)] -struct ExchangeRate { +pub struct ExchangeRate { no: String, effectiveDate: String, mid: f32, } +// Function checking if given date is a day when market(NBP) was not working +fn is_non_working_day(date: &chrono::NaiveDate) -> Result { + let weekend = match date.weekday() { + chrono::Weekday::Sat | chrono::Weekday::Sun => true, + _ => false, + }; + + if weekend == true { + return Ok(true); + } + + let year = date.year(); + + // Check if a date is a holiday + + holidays::Builder::new() + .countries(&[holidays::Country::PL]) + .years(year - 20..year + 1) + .init() + .map_err(|_| "Holiday module initialization failed")?; + + holidays::contains(holidays::Country::PL, *date) + .map_err(|_| format!("Error checking if given date: {date} is holiday")) +} + +// Iterate through dates and find where value is None +// and then try to get for that specific date from cache +fn get_exchange_rates_from_cache( + dates: &mut std::collections::HashMap>, +) -> Result { + let mut all_filled = true; + dates.iter_mut().try_for_each(|(exchange, val)| { + // If there is a exchange value filled (from cached) + // then skip this entry (Make UT) + if val.is_some() { + return Ok::<(), String>(()); + } + + let (from, date) = match exchange { + etradeTaxReturnHelper::Exchange::USD(date) => ("usd", date), + etradeTaxReturnHelper::Exchange::EUR(date) => ("eur", date), + etradeTaxReturnHelper::Exchange::PLN(_) => { + *val = Some(("N/A".to_owned(), 1.0)); + return Ok::<(), String>(()); + } // For PLN to PLN follow fast path + }; + + let mut converted_date = chrono::NaiveDate::parse_from_str(&date, "%m/%d/%y") + .map_err(|_| format!("Error parsing date: {date}"))?; + let mut is_working_day = false; + while is_working_day == false { + converted_date = converted_date + .checked_sub_signed(chrono::Duration::days(1)) + .ok_or("Error traversing date")?; + + // if given day is not working day then skip it + is_working_day = is_non_working_day(&converted_date)? == false; + } + + let exchange_rates = crate::nbp::get_exchange_rates(); + let exchange_rate_date = converted_date.clone().format("%Y-%m-%d").to_string(); + let curr_exchange = match exchange { + etradeTaxReturnHelper::Exchange::USD(_) => { + etradeTaxReturnHelper::Exchange::USD(exchange_rate_date.clone()) + } + etradeTaxReturnHelper::Exchange::EUR(_) => { + etradeTaxReturnHelper::Exchange::EUR(exchange_rate_date.clone()) + } + etradeTaxReturnHelper::Exchange::PLN(_) => { + log::error!( + "Error: PLN exchange rate should be served already! Bug in code probably!" + ); + return Err::<(), String>( + "Error: PLN exchange rate should be served already! Bug in code probably!" + .to_string(), + ); + } + }; + // If there is no proper date in a cache then skip it + if exchange_rates.contains_key(&curr_exchange) { + let exchange_rate = exchange_rates + .get(&curr_exchange) + .ok_or("Error: exchange rate not found in cache")?; + + log::info!( + "Found cached exchange rate. Date:{} Rate: {}", + exchange_rate_date, + exchange_rate + ); + *val = Some((exchange_rate_date, *exchange_rate as f32)); + } else { + log::info!( + "Not Found cached exchange rate. Date:{} ", + exchange_rate_date + ); + all_filled = false; + } + + Ok::<(), String>(()) + })?; + Ok(all_filled) +} + impl etradeTaxReturnHelper::Residency for PL { fn get_exchange_rates( &self, @@ -35,6 +139,14 @@ impl etradeTaxReturnHelper::Residency for PL { Option<(String, f32)>, >, ) -> Result<(), String> { + // Try to get exchange rates from cached data (output from program gen_exchange_rates) + if get_exchange_rates_from_cache(dates)? == true { + log::info!("All needed Exchange rates were taken from cache."); + return Ok(()); + } else { + log::info!("Some of the Exchange rates were not found in cache. Trying to get them using NBP API."); + } + // proxies are taken from env vars: http_proxy and https_proxy let http_proxy = std::env::var("http_proxy"); let https_proxy = std::env::var("https_proxy"); @@ -62,6 +174,12 @@ impl etradeTaxReturnHelper::Residency for PL { let base_exchange_rate_url = "https://api.nbp.pl/api/exchangerates/rates/a/"; dates.iter_mut().try_for_each(|(exchange, val)| { + // If there is a exchange value filled (from cached) + // then skip this entry (Make UT) + if val.is_some() { + return Ok::<(), String>(()); + } + let (from, date) = match exchange { etradeTaxReturnHelper::Exchange::USD(date) => ("usd", date), etradeTaxReturnHelper::Exchange::EUR(date) => ("eur", date), @@ -253,4 +371,89 @@ mod tests { Ok(()) } + + #[test] + fn test_is_non_working_day() -> Result<(), String> { + let date = chrono::NaiveDate::parse_from_str(&"11/01/24", "%m/%d/%y") + .map_err(|_| format!("Error parsing date"))?; + assert_eq!(is_non_working_day(&date), Ok(true)); + let date = chrono::NaiveDate::parse_from_str(&"03/31/24", "%m/%d/%y") + .map_err(|_| format!("Error parsing date"))?; + assert_eq!(is_non_working_day(&date), Ok(true)); + let date = chrono::NaiveDate::parse_from_str(&"01/08/24", "%m/%d/%y") + .map_err(|_| format!("Error parsing date"))?; + assert_eq!(is_non_working_day(&date), Ok(false)); + Ok(()) + } + #[test] + fn test_get_exchange_rates_from_cache() -> Result<(), String> { + let mut rates = std::collections::HashMap::from([ + ( + etradeTaxReturnHelper::Exchange::USD("02/26/24".to_owned()), + None, + ), + ( + etradeTaxReturnHelper::Exchange::EUR("02/23/24".to_owned()), + Some(("2024-02-21".to_string(), 3.994)), + ), + ]); + + let expected_rates = std::collections::HashMap::from([ + ( + etradeTaxReturnHelper::Exchange::USD("02/26/24".to_owned()), + Some(("2024-02-23".to_string(), 4.005)), + ), + ( + etradeTaxReturnHelper::Exchange::EUR("02/23/24".to_owned()), + Some(("2024-02-21".to_string(), 3.994)), + ), + ]); + + assert_eq!(get_exchange_rates_from_cache(&mut rates)?, true); + + assert_eq!(rates, expected_rates); + + // This works assuming there is no data from 2000 in cache + let mut rates = std::collections::HashMap::from([ + ( + etradeTaxReturnHelper::Exchange::USD("02/26/00".to_owned()), + None, + ), + ( + etradeTaxReturnHelper::Exchange::EUR("02/23/00".to_owned()), + Some(("2020-02-21".to_string(), 3.994)), + ), + ]); + + assert_eq!(get_exchange_rates_from_cache(&mut rates)?, false); + + assert_eq!(rates, rates); + + let mut rates = std::collections::HashMap::from([ + ( + etradeTaxReturnHelper::Exchange::EUR("02/10/23".to_owned()), + None, + ), + ( + etradeTaxReturnHelper::Exchange::EUR("09/25/23".to_owned()), + None, + ), + ]); + + let expected_rates = std::collections::HashMap::from([ + ( + etradeTaxReturnHelper::Exchange::EUR("02/10/23".to_owned()), + Some(("2023-02-09".to_string(), 4.7363)), + ), + ( + etradeTaxReturnHelper::Exchange::EUR("09/25/23".to_owned()), + Some(("2023-09-22".to_string(), 4.6069)), + ), + ]); + + assert_eq!(get_exchange_rates_from_cache(&mut rates)?, true); + + assert_eq!(rates, expected_rates); + Ok(()) + } }