0463382fcb
- 07_topology: expanded persistent-homology examples - 10_bsde: reworked BSDE solver walkthrough - 04/05: clear execution counts - gitignore generated plot PNGs (docs snippets + notebook frames)
1429 lines
298 KiB
Plaintext
1429 lines
298 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "59f619dc",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"✓ All modules loaded!\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
" BENCHMARK: OptimizR (Rust) vs Pure Python\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"import numpy as np\n",
|
||
"import pandas as pd\n",
|
||
"import time\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import seaborn as sns\n",
|
||
"from typing import Callable, Tuple\n",
|
||
"import warnings\n",
|
||
"warnings.filterwarnings('ignore')\n",
|
||
"\n",
|
||
"# OptimizR (Rust)\n",
|
||
"from optimizr import (\n",
|
||
" HMM,\n",
|
||
" mcmc_sample,\n",
|
||
" differential_evolution,\n",
|
||
" grid_search,\n",
|
||
" mutual_information,\n",
|
||
" shannon_entropy\n",
|
||
")\n",
|
||
"\n",
|
||
"# Pure Python alternatives\n",
|
||
"try:\n",
|
||
" from hmmlearn import hmm\n",
|
||
" HMMLEARN_AVAILABLE = True\n",
|
||
"except ImportError:\n",
|
||
" print(\"⚠️ hmmlearn not installed. Installing...\")\n",
|
||
" import subprocess\n",
|
||
" subprocess.run(['pip', 'install', 'hmmlearn'], check=True, capture_output=True)\n",
|
||
" from hmmlearn import hmm\n",
|
||
" HMMLEARN_AVAILABLE = True\n",
|
||
"\n",
|
||
"from scipy.optimize import differential_evolution as scipy_de\n",
|
||
"from sklearn.metrics import mutual_info_score\n",
|
||
"from sklearn.model_selection import ParameterGrid\n",
|
||
"\n",
|
||
"np.random.seed(42)\n",
|
||
"sns.set_style('whitegrid')\n",
|
||
"\n",
|
||
"print(\"✓ All modules loaded!\")\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(\" BENCHMARK: OptimizR (Rust) vs Pure Python\")\n",
|
||
"print(\"=\"*60)\n",
|
||
"\n",
|
||
"_ = (Callable, Tuple, ParameterGrid,)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3e8e4ee3",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 1: Hidden Markov Models\n",
|
||
"\n",
|
||
"### OptimizR (Rust) vs hmmlearn (Python/Cython)\n",
|
||
"\n",
|
||
"**Task**: Fit Gaussian HMM with 3 states to time series data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "7d5439a8",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Model is not converging. Current: 1265.4250492350661 is not greater than 1265.4417975561971. Delta is -0.016748321130990007\n",
|
||
"Model is not converging. Current: 1265.4250492350661 is not greater than 1265.4417975561971. Delta is -0.016748321130990007\n",
|
||
"Model is not converging. Current: 1265.4250492350661 is not greater than 1265.4417975561971. Delta is -0.016748321130990007\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"📊 Testing HMM with 500 observations...\n",
|
||
" OptimizR: 2.7ms ± 0.8ms\n",
|
||
" hmmlearn: 66.1ms ± 39.3ms\n",
|
||
" 🚀 Speedup: 24.2x\n",
|
||
"\n",
|
||
"📊 Testing HMM with 1,000 observations...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Model is not converging. Current: 2503.588336673215 is not greater than 2503.589554785923. Delta is -0.001218112708102126\n",
|
||
"Model is not converging. Current: 2503.588336673215 is not greater than 2503.589554785923. Delta is -0.001218112708102126\n",
|
||
"Model is not converging. Current: 2503.5883366732173 is not greater than 2503.5895547859236. Delta is -0.0012181127062831365\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" OptimizR: 5.9ms ± 0.2ms\n",
|
||
" hmmlearn: 58.2ms ± 1.9ms\n",
|
||
" 🚀 Speedup: 9.9x\n",
|
||
"\n",
|
||
"📊 Testing HMM with 2,500 observations...\n",
|
||
" OptimizR: 13.3ms ± 0.8ms\n",
|
||
" hmmlearn: 127.5ms ± 4.5ms\n",
|
||
" 🚀 Speedup: 9.6x\n",
|
||
"\n",
|
||
"📊 Testing HMM with 5,000 observations...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Model is not converging. Current: 12470.144154851318 is not greater than 12470.144321406788. Delta is -0.00016655547005939297\n",
|
||
"Model is not converging. Current: 12470.144154851318 is not greater than 12470.144321406788. Delta is -0.00016655547005939297\n",
|
||
"Model is not converging. Current: 12470.144154851318 is not greater than 12470.144321406788. Delta is -0.00016655547005939297\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" OptimizR: 22.8ms ± 1.0ms\n",
|
||
" hmmlearn: 183.2ms ± 2.0ms\n",
|
||
" 🚀 Speedup: 8.0x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
"Average HMM speedup: 12.9x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"def benchmark_hmm(n_obs_list=(500, 1000, 2500, 5000), n_runs=3):\n",
|
||
" \"\"\"\n",
|
||
" Benchmark HMM fitting across multiple data sizes.\n",
|
||
"\n",
|
||
" Note: capped at 5,000 observations to avoid kernel pressure on\n",
|
||
" typical laptops while still showing the scaling trend clearly.\n",
|
||
" \"\"\"\n",
|
||
" results = []\n",
|
||
"\n",
|
||
" for n_obs in n_obs_list:\n",
|
||
" print(f\"\\n📊 Testing HMM with {n_obs:,} observations...\")\n",
|
||
"\n",
|
||
" # Generate synthetic 1D data\n",
|
||
" rng = np.random.default_rng(42)\n",
|
||
" data = rng.standard_normal(n_obs) * 0.02 + 0.001\n",
|
||
" data_reshaped = data.reshape(-1, 1) # hmmlearn needs 2D\n",
|
||
"\n",
|
||
" # Benchmark OptimizR (Rust)\n",
|
||
" rust_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" hmm_rust = HMM(n_states=3)\n",
|
||
" start = time.perf_counter()\n",
|
||
" hmm_rust.fit(data, n_iterations=50, tolerance=1e-4)\n",
|
||
" rust_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" rust_mean = float(np.mean(rust_times))\n",
|
||
" rust_std = float(np.std(rust_times))\n",
|
||
"\n",
|
||
" # Benchmark hmmlearn (Python/Cython)\n",
|
||
" python_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" hmm_py = hmm.GaussianHMM(\n",
|
||
" n_components=3,\n",
|
||
" covariance_type='spherical',\n",
|
||
" n_iter=50,\n",
|
||
" tol=1e-4,\n",
|
||
" random_state=42,\n",
|
||
" )\n",
|
||
" start = time.perf_counter()\n",
|
||
" hmm_py.fit(data_reshaped)\n",
|
||
" python_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" python_mean = float(np.mean(python_times))\n",
|
||
" python_std = float(np.std(python_times))\n",
|
||
"\n",
|
||
" speedup = python_mean / rust_mean\n",
|
||
"\n",
|
||
" results.append({\n",
|
||
" 'n_obs': n_obs,\n",
|
||
" 'rust_time': rust_mean,\n",
|
||
" 'rust_std': rust_std,\n",
|
||
" 'python_time': python_mean,\n",
|
||
" 'python_std': python_std,\n",
|
||
" 'speedup': speedup,\n",
|
||
" })\n",
|
||
"\n",
|
||
" print(f\" OptimizR: {rust_mean*1000:.1f}ms ± {rust_std*1000:.1f}ms\")\n",
|
||
" print(f\" hmmlearn: {python_mean*1000:.1f}ms ± {python_std*1000:.1f}ms\")\n",
|
||
" print(f\" 🚀 Speedup: {speedup:.1f}x\")\n",
|
||
"\n",
|
||
" return pd.DataFrame(results)\n",
|
||
"\n",
|
||
"hmm_results = benchmark_hmm()\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(f\"Average HMM speedup: {hmm_results['speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\"*60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4fbb29f6",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 2: MCMC Sampling\n",
|
||
"\n",
|
||
"### OptimizR (Rust) vs Pure NumPy Implementation\n",
|
||
"\n",
|
||
"**Task**: Metropolis-Hastings sampling for 2D parameter space"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "5f671a6d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"🔗 Testing MCMC with 500 samples...\n",
|
||
" OptimizR: 1.6ms ± 0.8ms\n",
|
||
" Pure Python: 15.9ms ± 1.4ms\n",
|
||
" 🚀 Speedup: 9.7x\n",
|
||
"\n",
|
||
"🔗 Testing MCMC with 1,000 samples...\n",
|
||
" OptimizR: 2.2ms ± 0.1ms\n",
|
||
" Pure Python: 17.2ms ± 0.3ms\n",
|
||
" 🚀 Speedup: 7.7x\n",
|
||
"\n",
|
||
"🔗 Testing MCMC with 2,500 samples...\n",
|
||
" OptimizR: 4.2ms ± 0.1ms\n",
|
||
" Pure Python: 34.4ms ± 4.2ms\n",
|
||
" 🚀 Speedup: 8.2x\n",
|
||
"\n",
|
||
"🔗 Testing MCMC with 5,000 samples...\n",
|
||
" OptimizR: 11.7ms ± 2.5ms\n",
|
||
" Pure Python: 64.4ms ± 7.6ms\n",
|
||
" 🚀 Speedup: 5.5x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
"Average MCMC speedup: 7.8x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"def python_mcmc(log_likelihood_fn, initial_params, param_bounds,\n",
|
||
" n_samples=2000, burn_in=500, proposal_std=0.1, seed=42):\n",
|
||
" \"\"\"Pure NumPy Metropolis-Hastings sampler (single chain).\"\"\"\n",
|
||
" rng = np.random.default_rng(seed)\n",
|
||
" dim = len(initial_params)\n",
|
||
" bounds = np.asarray(param_bounds, dtype=float)\n",
|
||
" current = np.asarray(initial_params, dtype=float).copy()\n",
|
||
" current_ll = log_likelihood_fn(current.tolist())\n",
|
||
" total = burn_in + n_samples\n",
|
||
" samples = np.empty((n_samples, dim))\n",
|
||
" accepted = 0\n",
|
||
" out_idx = 0\n",
|
||
" for i in range(total):\n",
|
||
" proposal = current + rng.normal(0.0, proposal_std, size=dim)\n",
|
||
" # reflect at bounds\n",
|
||
" proposal = np.clip(proposal, bounds[:, 0], bounds[:, 1])\n",
|
||
" proposal_ll = log_likelihood_fn(proposal.tolist())\n",
|
||
" if np.log(rng.random()) < (proposal_ll - current_ll):\n",
|
||
" current = proposal\n",
|
||
" current_ll = proposal_ll\n",
|
||
" if i >= burn_in:\n",
|
||
" accepted += 1\n",
|
||
" if i >= burn_in:\n",
|
||
" samples[out_idx] = current\n",
|
||
" out_idx += 1\n",
|
||
" return samples\n",
|
||
"\n",
|
||
"\n",
|
||
"def benchmark_mcmc(n_samples_list=(500, 1000, 2500, 5000), n_runs=3):\n",
|
||
" \"\"\"\n",
|
||
" Benchmark Metropolis-Hastings on a 2D Gaussian target.\n",
|
||
" \"\"\"\n",
|
||
" results = []\n",
|
||
"\n",
|
||
" # Target: 2D Gaussian centered at (1, -1) with unit variance\n",
|
||
" def log_likelihood(theta):\n",
|
||
" a, b = theta[0], theta[1]\n",
|
||
" return -0.5 * ((a - 1.0) ** 2 + (b + 1.0) ** 2)\n",
|
||
"\n",
|
||
" bounds = [(-5.0, 5.0), (-5.0, 5.0)]\n",
|
||
" initial = np.array([0.0, 0.0])\n",
|
||
"\n",
|
||
" for n_samples in n_samples_list:\n",
|
||
" print(f\"\\n🔗 Testing MCMC with {n_samples:,} samples...\")\n",
|
||
"\n",
|
||
" # Benchmark OptimizR (Rust)\n",
|
||
" rust_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = mcmc_sample(\n",
|
||
" log_likelihood_fn=log_likelihood,\n",
|
||
" initial_params=initial,\n",
|
||
" param_bounds=bounds,\n",
|
||
" n_samples=n_samples,\n",
|
||
" burn_in=max(200, n_samples // 5),\n",
|
||
" proposal_std=0.5,\n",
|
||
" )\n",
|
||
" rust_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" rust_mean = float(np.mean(rust_times))\n",
|
||
" rust_std = float(np.std(rust_times))\n",
|
||
"\n",
|
||
" # Benchmark Pure Python MCMC\n",
|
||
" python_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = python_mcmc(\n",
|
||
" log_likelihood_fn=log_likelihood,\n",
|
||
" initial_params=initial,\n",
|
||
" param_bounds=bounds,\n",
|
||
" n_samples=n_samples,\n",
|
||
" burn_in=max(200, n_samples // 5),\n",
|
||
" proposal_std=0.5,\n",
|
||
" )\n",
|
||
" python_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" python_mean = float(np.mean(python_times))\n",
|
||
" python_std = float(np.std(python_times))\n",
|
||
"\n",
|
||
" speedup = python_mean / rust_mean\n",
|
||
"\n",
|
||
" results.append({\n",
|
||
" 'n_samples': n_samples,\n",
|
||
" 'rust_time': rust_mean,\n",
|
||
" 'rust_std': rust_std,\n",
|
||
" 'python_time': python_mean,\n",
|
||
" 'python_std': python_std,\n",
|
||
" 'speedup': speedup,\n",
|
||
" })\n",
|
||
"\n",
|
||
" print(f\" OptimizR: {rust_mean*1000:.1f}ms ± {rust_std*1000:.1f}ms\")\n",
|
||
" print(f\" Pure Python: {python_mean*1000:.1f}ms ± {python_std*1000:.1f}ms\")\n",
|
||
" print(f\" 🚀 Speedup: {speedup:.1f}x\")\n",
|
||
"\n",
|
||
" return pd.DataFrame(results)\n",
|
||
"\n",
|
||
"mcmc_results = benchmark_mcmc()\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(f\"Average MCMC speedup: {mcmc_results['speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\"*60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e7271c39",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 3: Differential Evolution\n",
|
||
"\n",
|
||
"### OptimizR (Rust) vs scipy.optimize\n",
|
||
"\n",
|
||
"**Task**: Optimize Rosenbrock function in multiple dimensions"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "ba75a625",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"🎯 Testing DE with 2D Rosenbrock...\n",
|
||
" OptimizR: 41.1ms ± 1.0ms (f=2.20e-10)\n",
|
||
" SciPy: 252.7ms ± 6.9ms (f=1.67e-27)\n",
|
||
" 🚀 Speedup: 6.2x\n",
|
||
"\n",
|
||
"🎯 Testing DE with 5D Rosenbrock...\n",
|
||
" OptimizR: 138.2ms ± 1.1ms (f=1.75e+00)\n",
|
||
" SciPy: 582.6ms ± 0.8ms (f=5.15e-04)\n",
|
||
" 🚀 Speedup: 4.2x\n",
|
||
"\n",
|
||
"🎯 Testing DE with 10D Rosenbrock...\n",
|
||
" OptimizR: 318.5ms ± 7.3ms (f=1.29e+01)\n",
|
||
" SciPy: 1196.5ms ± 3.9ms (f=4.76e+00)\n",
|
||
" 🚀 Speedup: 3.8x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
"Average DE speedup: 4.7x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"def rosenbrock(x):\n",
|
||
" \"\"\"N-dimensional Rosenbrock function.\"\"\"\n",
|
||
" x = np.asarray(x, dtype=float)\n",
|
||
" return float(np.sum(100.0 * (x[1:] - x[:-1] ** 2) ** 2 + (1.0 - x[:-1]) ** 2))\n",
|
||
"\n",
|
||
"\n",
|
||
"def benchmark_de(dimensions=(2, 5, 10), n_runs=3, popsize=15, maxiter=100):\n",
|
||
" \"\"\"\n",
|
||
" Benchmark Differential Evolution on Rosenbrock.\n",
|
||
" \"\"\"\n",
|
||
" results = []\n",
|
||
"\n",
|
||
" for dim in dimensions:\n",
|
||
" print(f\"\\n🎯 Testing DE with {dim}D Rosenbrock...\")\n",
|
||
"\n",
|
||
" bounds = [(-5.0, 5.0)] * dim\n",
|
||
"\n",
|
||
" # Benchmark OptimizR (Rust) — returns (best_x, best_f)\n",
|
||
" rust_times = []\n",
|
||
" rust_results = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _, best_f = differential_evolution(\n",
|
||
" objective_fn=rosenbrock,\n",
|
||
" bounds=bounds,\n",
|
||
" popsize=popsize,\n",
|
||
" maxiter=maxiter,\n",
|
||
" tol=1e-6,\n",
|
||
" seed=42,\n",
|
||
" )\n",
|
||
" rust_times.append(time.perf_counter() - start)\n",
|
||
" rust_results.append(best_f)\n",
|
||
"\n",
|
||
" rust_mean = float(np.mean(rust_times))\n",
|
||
" rust_std = float(np.std(rust_times))\n",
|
||
" rust_quality = float(np.mean(rust_results))\n",
|
||
"\n",
|
||
" # Benchmark SciPy — returns OptimizeResult\n",
|
||
" python_times = []\n",
|
||
" python_results = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" result = scipy_de(\n",
|
||
" func=rosenbrock,\n",
|
||
" bounds=bounds,\n",
|
||
" popsize=popsize,\n",
|
||
" maxiter=maxiter,\n",
|
||
" tol=1e-6,\n",
|
||
" seed=42,\n",
|
||
" workers=1,\n",
|
||
" polish=False,\n",
|
||
" )\n",
|
||
" python_times.append(time.perf_counter() - start)\n",
|
||
" python_results.append(result.fun)\n",
|
||
"\n",
|
||
" python_mean = float(np.mean(python_times))\n",
|
||
" python_std = float(np.std(python_times))\n",
|
||
" python_quality = float(np.mean(python_results))\n",
|
||
"\n",
|
||
" speedup = python_mean / rust_mean\n",
|
||
"\n",
|
||
" results.append({\n",
|
||
" 'dimensions': dim,\n",
|
||
" 'rust_time': rust_mean,\n",
|
||
" 'rust_std': rust_std,\n",
|
||
" 'rust_quality': rust_quality,\n",
|
||
" 'python_time': python_mean,\n",
|
||
" 'python_std': python_std,\n",
|
||
" 'python_quality': python_quality,\n",
|
||
" 'speedup': speedup,\n",
|
||
" })\n",
|
||
"\n",
|
||
" print(f\" OptimizR: {rust_mean*1000:.1f}ms ± {rust_std*1000:.1f}ms (f={rust_quality:.2e})\")\n",
|
||
" print(f\" SciPy: {python_mean*1000:.1f}ms ± {python_std*1000:.1f}ms (f={python_quality:.2e})\")\n",
|
||
" print(f\" 🚀 Speedup: {speedup:.1f}x\")\n",
|
||
"\n",
|
||
" return pd.DataFrame(results)\n",
|
||
"\n",
|
||
"de_results = benchmark_de()\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(f\"Average DE speedup: {de_results['speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\"*60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b281436f",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 4: Grid Search\n",
|
||
"\n",
|
||
"### OptimizR (Rust) vs sklearn.model_selection.ParameterGrid\n",
|
||
"\n",
|
||
"**Task**: Exhaustive search over parameter space"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "355a832e",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"🔍 Testing Grid Search: 2D, 8 points/dim (64 total)...\n",
|
||
" OptimizR: 0.8ms ± 0.5ms\n",
|
||
" Pure Python: 0.6ms ± 0.0ms\n",
|
||
" 🚀 Speedup: 0.7x\n",
|
||
"\n",
|
||
"🔍 Testing Grid Search: 2D, 12 points/dim (144 total)...\n",
|
||
" OptimizR: 1.4ms ± 0.3ms\n",
|
||
" Pure Python: 1.1ms ± 0.0ms\n",
|
||
" 🚀 Speedup: 0.7x\n",
|
||
"\n",
|
||
"🔍 Testing Grid Search: 2D, 16 points/dim (256 total)...\n",
|
||
" OptimizR: 2.1ms ± 0.1ms\n",
|
||
" Pure Python: 1.8ms ± 0.0ms\n",
|
||
" 🚀 Speedup: 0.8x\n",
|
||
"\n",
|
||
"🔍 Testing Grid Search: 3D, 8 points/dim (512 total)...\n",
|
||
" OptimizR: 3.9ms ± 0.1ms\n",
|
||
" Pure Python: 3.6ms ± 0.0ms\n",
|
||
" 🚀 Speedup: 0.9x\n",
|
||
"\n",
|
||
"🔍 Testing Grid Search: 3D, 12 points/dim (1,728 total)...\n",
|
||
" OptimizR: 14.2ms ± 1.4ms\n",
|
||
" Pure Python: 11.6ms ± 0.3ms\n",
|
||
" 🚀 Speedup: 0.8x\n",
|
||
"\n",
|
||
"🔍 Testing Grid Search: 3D, 16 points/dim (4,096 total)...\n",
|
||
" OptimizR: 30.7ms ± 0.0ms\n",
|
||
" Pure Python: 26.0ms ± 0.3ms\n",
|
||
" 🚀 Speedup: 0.8x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
"Average Grid Search speedup: 0.8x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"def sphere_function(x):\n",
|
||
" \"\"\"Simple sphere function for testing.\"\"\"\n",
|
||
" x = np.asarray(x, dtype=float)\n",
|
||
" return float(np.sum(x ** 2))\n",
|
||
"\n",
|
||
"\n",
|
||
"def python_grid_search(objective_fn, bounds, n_points):\n",
|
||
" \"\"\"Pure Python grid search implementation.\"\"\"\n",
|
||
" grids = [np.linspace(low, high, n_points) for low, high in bounds]\n",
|
||
" meshes = np.meshgrid(*grids, indexing='ij')\n",
|
||
" points = np.vstack([m.ravel() for m in meshes]).T\n",
|
||
"\n",
|
||
" best_value = np.inf\n",
|
||
" best_params = None\n",
|
||
" for point in points:\n",
|
||
" value = objective_fn(point)\n",
|
||
" if value < best_value:\n",
|
||
" best_value = value\n",
|
||
" best_params = point\n",
|
||
" return best_params, best_value\n",
|
||
"\n",
|
||
"\n",
|
||
"def benchmark_grid_search(n_points_list=(8, 12, 16), dimensions=(2, 3), n_runs=3,\n",
|
||
" max_total_evals=20000):\n",
|
||
" \"\"\"Benchmark Grid Search (capped at 20k evals to keep runtime bounded).\"\"\"\n",
|
||
" results = []\n",
|
||
"\n",
|
||
" for dim in dimensions:\n",
|
||
" for n_points in n_points_list:\n",
|
||
" total_evals = n_points ** dim\n",
|
||
" if total_evals > max_total_evals:\n",
|
||
" continue\n",
|
||
"\n",
|
||
" print(f\"\\n🔍 Testing Grid Search: {dim}D, {n_points} points/dim ({total_evals:,} total)...\")\n",
|
||
" bounds = [(-10.0, 10.0)] * dim\n",
|
||
"\n",
|
||
" # Benchmark OptimizR (Rust)\n",
|
||
" rust_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = grid_search(\n",
|
||
" objective_fn=sphere_function,\n",
|
||
" bounds=bounds,\n",
|
||
" n_points=n_points,\n",
|
||
" )\n",
|
||
" rust_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" rust_mean = float(np.mean(rust_times))\n",
|
||
" rust_std = float(np.std(rust_times))\n",
|
||
"\n",
|
||
" # Benchmark Pure Python\n",
|
||
" python_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _, _ = python_grid_search(\n",
|
||
" objective_fn=sphere_function,\n",
|
||
" bounds=bounds,\n",
|
||
" n_points=n_points,\n",
|
||
" )\n",
|
||
" python_times.append(time.perf_counter() - start)\n",
|
||
"\n",
|
||
" python_mean = float(np.mean(python_times))\n",
|
||
" python_std = float(np.std(python_times))\n",
|
||
"\n",
|
||
" speedup = python_mean / rust_mean\n",
|
||
"\n",
|
||
" results.append({\n",
|
||
" 'dimensions': dim,\n",
|
||
" 'n_points': n_points,\n",
|
||
" 'total_evals': total_evals,\n",
|
||
" 'rust_time': rust_mean,\n",
|
||
" 'rust_std': rust_std,\n",
|
||
" 'python_time': python_mean,\n",
|
||
" 'python_std': python_std,\n",
|
||
" 'speedup': speedup,\n",
|
||
" })\n",
|
||
"\n",
|
||
" print(f\" OptimizR: {rust_mean*1000:.1f}ms ± {rust_std*1000:.1f}ms\")\n",
|
||
" print(f\" Pure Python: {python_mean*1000:.1f}ms ± {python_std*1000:.1f}ms\")\n",
|
||
" print(f\" 🚀 Speedup: {speedup:.1f}x\")\n",
|
||
"\n",
|
||
" return pd.DataFrame(results)\n",
|
||
"\n",
|
||
"grid_results = benchmark_grid_search()\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(f\"Average Grid Search speedup: {grid_results['speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\"*60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "56c81ec0",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 5: Information Theory\n",
|
||
"\n",
|
||
"### OptimizR (Rust) vs scikit-learn\n",
|
||
"\n",
|
||
"**Task**: Compute mutual information on discretized data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "ff0dd89b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"📈 Testing Information Theory with 500 observations...\n",
|
||
" Mutual Information:\n",
|
||
" OptimizR: 0.25ms ± 0.28ms\n",
|
||
" sklearn: 6.18ms ± 6.52ms\n",
|
||
" 🚀 Speedup: 25.2x\n",
|
||
" Shannon Entropy:\n",
|
||
" OptimizR: 0.03ms ± 0.01ms\n",
|
||
" NumPy: 0.22ms ± 0.05ms\n",
|
||
" 🚀 Speedup: 8.7x\n",
|
||
"\n",
|
||
"📈 Testing Information Theory with 1,000 observations...\n",
|
||
" Mutual Information:\n",
|
||
" OptimizR: 0.12ms ± 0.04ms\n",
|
||
" sklearn: 1.61ms ± 0.04ms\n",
|
||
" 🚀 Speedup: 13.8x\n",
|
||
" Shannon Entropy:\n",
|
||
" OptimizR: 0.04ms ± 0.01ms\n",
|
||
" NumPy: 0.22ms ± 0.03ms\n",
|
||
" 🚀 Speedup: 5.0x\n",
|
||
"\n",
|
||
"📈 Testing Information Theory with 2,500 observations...\n",
|
||
" Mutual Information:\n",
|
||
" OptimizR: 0.24ms ± 0.04ms\n",
|
||
" sklearn: 1.78ms ± 0.06ms\n",
|
||
" 🚀 Speedup: 7.4x\n",
|
||
" Shannon Entropy:\n",
|
||
" OptimizR: 0.10ms ± 0.00ms\n",
|
||
" NumPy: 0.23ms ± 0.02ms\n",
|
||
" 🚀 Speedup: 2.3x\n",
|
||
"\n",
|
||
"📈 Testing Information Theory with 5,000 observations...\n",
|
||
" Mutual Information:\n",
|
||
" OptimizR: 0.49ms ± 0.07ms\n",
|
||
" sklearn: 2.21ms ± 0.15ms\n",
|
||
" 🚀 Speedup: 4.5x\n",
|
||
" Shannon Entropy:\n",
|
||
" OptimizR: 0.20ms ± 0.01ms\n",
|
||
" NumPy: 0.26ms ± 0.02ms\n",
|
||
" 🚀 Speedup: 1.3x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
"Average MI speedup: 12.8x\n",
|
||
"Average Entropy speedup: 4.3x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"def benchmark_information_theory(n_obs_list=(500, 1000, 2500, 5000), n_runs=3):\n",
|
||
" \"\"\"Benchmark Shannon Entropy and Mutual Information.\"\"\"\n",
|
||
" results = []\n",
|
||
"\n",
|
||
" for n_obs in n_obs_list:\n",
|
||
" print(f\"\\n📈 Testing Information Theory with {n_obs:,} observations...\")\n",
|
||
"\n",
|
||
" rng = np.random.default_rng(42)\n",
|
||
" x = rng.standard_normal(n_obs)\n",
|
||
" y = 0.7 * x + 0.3 * rng.standard_normal(n_obs)\n",
|
||
"\n",
|
||
" # ----- Mutual Information: OptimizR -----\n",
|
||
" rust_mi_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = mutual_information(x, y)\n",
|
||
" rust_mi_times.append(time.perf_counter() - start)\n",
|
||
" rust_mi_mean = float(np.mean(rust_mi_times))\n",
|
||
" rust_mi_std = float(np.std(rust_mi_times))\n",
|
||
"\n",
|
||
" # ----- Mutual Information: sklearn (with discretization cost) -----\n",
|
||
" python_mi_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" x_d = np.digitize(x, bins=np.linspace(x.min(), x.max(), 20))\n",
|
||
" y_d = np.digitize(y, bins=np.linspace(y.min(), y.max(), 20))\n",
|
||
" _ = mutual_info_score(x_d, y_d)\n",
|
||
" python_mi_times.append(time.perf_counter() - start)\n",
|
||
" python_mi_mean = float(np.mean(python_mi_times))\n",
|
||
" python_mi_std = float(np.std(python_mi_times))\n",
|
||
" mi_speedup = python_mi_mean / rust_mi_mean\n",
|
||
"\n",
|
||
" # ----- Shannon Entropy: OptimizR -----\n",
|
||
" rust_entropy_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = shannon_entropy(x)\n",
|
||
" rust_entropy_times.append(time.perf_counter() - start)\n",
|
||
" rust_entropy_mean = float(np.mean(rust_entropy_times))\n",
|
||
" rust_entropy_std = float(np.std(rust_entropy_times))\n",
|
||
"\n",
|
||
" # ----- Shannon Entropy: Pure Python -----\n",
|
||
" def python_shannon_entropy(data, n_bins=20):\n",
|
||
" hist, _ = np.histogram(data, bins=n_bins, density=True)\n",
|
||
" hist = hist[hist > 0]\n",
|
||
" bin_width = (data.max() - data.min()) / n_bins\n",
|
||
" prob = hist * bin_width\n",
|
||
" prob = prob / prob.sum()\n",
|
||
" return -float(np.sum(prob * np.log2(prob)))\n",
|
||
"\n",
|
||
" python_entropy_times = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" start = time.perf_counter()\n",
|
||
" _ = python_shannon_entropy(x)\n",
|
||
" python_entropy_times.append(time.perf_counter() - start)\n",
|
||
" python_entropy_mean = float(np.mean(python_entropy_times))\n",
|
||
" python_entropy_std = float(np.std(python_entropy_times))\n",
|
||
" entropy_speedup = python_entropy_mean / rust_entropy_mean\n",
|
||
"\n",
|
||
" results.append({\n",
|
||
" 'n_obs': n_obs,\n",
|
||
" 'rust_mi_time': rust_mi_mean,\n",
|
||
" 'python_mi_time': python_mi_mean,\n",
|
||
" 'mi_speedup': mi_speedup,\n",
|
||
" 'rust_entropy_time': rust_entropy_mean,\n",
|
||
" 'python_entropy_time': python_entropy_mean,\n",
|
||
" 'entropy_speedup': entropy_speedup,\n",
|
||
" })\n",
|
||
"\n",
|
||
" print(f\" Mutual Information:\")\n",
|
||
" print(f\" OptimizR: {rust_mi_mean*1000:.2f}ms ± {rust_mi_std*1000:.2f}ms\")\n",
|
||
" print(f\" sklearn: {python_mi_mean*1000:.2f}ms ± {python_mi_std*1000:.2f}ms\")\n",
|
||
" print(f\" 🚀 Speedup: {mi_speedup:.1f}x\")\n",
|
||
"\n",
|
||
" print(f\" Shannon Entropy:\")\n",
|
||
" print(f\" OptimizR: {rust_entropy_mean*1000:.2f}ms ± {rust_entropy_std*1000:.2f}ms\")\n",
|
||
" print(f\" NumPy: {python_entropy_mean*1000:.2f}ms ± {python_entropy_std*1000:.2f}ms\")\n",
|
||
" print(f\" 🚀 Speedup: {entropy_speedup:.1f}x\")\n",
|
||
"\n",
|
||
" return pd.DataFrame(results)\n",
|
||
"\n",
|
||
"info_results = benchmark_information_theory()\n",
|
||
"print(\"\\n\" + \"=\"*60)\n",
|
||
"print(f\"Average MI speedup: {info_results['mi_speedup'].mean():.1f}x\")\n",
|
||
"print(f\"Average Entropy speedup: {info_results['entropy_speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\"*60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff68ec04",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Benchmark 6: v2.0 Primitives\n",
|
||
"\n",
|
||
"### Path Signatures, Hawkes Processes & Robust Drift\n",
|
||
"\n",
|
||
"**Task**: benchmark three of the new primitives shipped in `optimiz-rs v2.0`\n",
|
||
"against pure-Python reference implementations:\n",
|
||
"\n",
|
||
"- **Path signatures (level 3)** — truncated tensor algebra of an iterated-integral\n",
|
||
" path, used by signature-kernel methods and rough-volatility calibration.\n",
|
||
"- **Hawkes simulation** — exponential self-exciting point process, the workhorse\n",
|
||
" of LOB / order-flow modelling.\n",
|
||
"- **Robust drift (Huber M-estimator)** — outlier-resistant drift estimator for\n",
|
||
" noisy observations of a diffusion.\n",
|
||
"\n",
|
||
"These three exercise distinct workloads (combinatorial recursion, sequential\n",
|
||
"simulation, iterative optimisation) and complement Benchmarks 1–5.\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "336d8629",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"🔣 Path signature (level 3, 2-D Brownian path)\n",
|
||
" n= 200: Rust 0.95ms · Py 13.58ms · 🚀 14.3x\n",
|
||
" n= 400: Rust 1.79ms · Py 22.73ms · 🚀 12.7x\n",
|
||
" n= 800: Rust 2.93ms · Py 41.78ms · 🚀 14.3x\n",
|
||
"\n",
|
||
"💥 Hawkes simulation (exponential kernel, baseline=1, α=0.5, β=1)\n",
|
||
" T= 100: Rust 1.82ms · Py 0.71ms · 🚀 0.4x\n",
|
||
" T= 500: Rust 20.74ms · Py 3.59ms · 🚀 0.2x\n",
|
||
" T= 2000: Rust 422.57ms · Py 23.60ms · 🚀 0.1x\n",
|
||
"\n",
|
||
"🛡️ Robust drift (Huber M-estimator, σ=0.2, μ_true=0.05)\n",
|
||
" n= 1000: Rust 0.89ms · Py 2.61ms · 🚀 2.9x\n",
|
||
" n= 2500: Rust 2.47ms · Py 4.05ms · 🚀 1.6x\n",
|
||
" n= 5000: Rust 4.00ms · Py 3.12ms · 🚀 0.8x\n",
|
||
"\n",
|
||
"============================================================\n",
|
||
" task baseline avg_speedup max_speedup\n",
|
||
"Path signature (lvl 3) Pure NumPy 13.736466 14.255275\n",
|
||
" Hawkes simulation Pure NumPy (Ogata) 0.205974 0.388756\n",
|
||
" Robust drift (Huber) Pure NumPy (IRLS) 1.787452 2.939508\n",
|
||
"============================================================\n",
|
||
"Average v2.0 primitive speedup: 5.2x\n",
|
||
"============================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"import math\n",
|
||
"from optimizr import path_signature, simulate_hawkes, robust_drift\n",
|
||
"\n",
|
||
"\n",
|
||
"# ---------- Pure-Python references ----------\n",
|
||
"\n",
|
||
"def python_path_signature(path, level):\n",
|
||
" \"\"\"Truncated path signature up to `level`, computed with a Chen-style\n",
|
||
" iterative tensor product. O((level * d) ** level).\"\"\"\n",
|
||
" path = np.asarray(path, dtype=float)\n",
|
||
" n, d = path.shape\n",
|
||
" increments = np.diff(path, axis=0) # (n-1, d)\n",
|
||
"\n",
|
||
" # signature[k] is a flat tensor of shape (d,)*k\n",
|
||
" signature = [np.array([1.0])] # level 0\n",
|
||
" for k in range(1, level + 1):\n",
|
||
" signature.append(np.zeros((d,) * k))\n",
|
||
"\n",
|
||
" for inc in increments:\n",
|
||
" # Chen's identity: S_{0,t+dt} = S_{0,t} ⊗ exp(dx)\n",
|
||
" # exp(dx) truncated at `level`: 1 + dx + dx⊗dx/2 + ...\n",
|
||
" new_sig = [np.array([1.0])]\n",
|
||
" for k in range(1, level + 1):\n",
|
||
" acc = np.zeros((d,) * k)\n",
|
||
" # S_{0,t}[j] ⊗ inc^{k-j} / (k-j)!\n",
|
||
" for j in range(0, k + 1):\n",
|
||
" left = signature[j]\n",
|
||
" # inc^{k-j} / (k-j)!\n",
|
||
" if k - j == 0:\n",
|
||
" right = np.array(1.0)\n",
|
||
" else:\n",
|
||
" right = inc.copy()\n",
|
||
" for _ in range(k - j - 1):\n",
|
||
" right = np.multiply.outer(right, inc)\n",
|
||
" right = right / math.factorial(k - j)\n",
|
||
" if j == 0:\n",
|
||
" acc = acc + right\n",
|
||
" elif k - j == 0:\n",
|
||
" acc = acc + left\n",
|
||
" else:\n",
|
||
" acc = acc + np.multiply.outer(left, right)\n",
|
||
" new_sig.append(acc)\n",
|
||
" signature = new_sig\n",
|
||
"\n",
|
||
" # flatten to vector (drop level-0 = 1.0)\n",
|
||
" return np.concatenate([s.ravel() for s in signature[1:]])\n",
|
||
"\n",
|
||
"\n",
|
||
"def python_simulate_hawkes(baseline, alpha, beta, t_max, seed=42):\n",
|
||
" \"\"\"Ogata thinning algorithm for an exponential-kernel Hawkes process.\"\"\"\n",
|
||
" rng = np.random.default_rng(seed)\n",
|
||
" events = []\n",
|
||
" t = 0.0\n",
|
||
" intensity = baseline\n",
|
||
" while t < t_max:\n",
|
||
" # upper bound on intensity\n",
|
||
" m = intensity\n",
|
||
" if m <= 0.0:\n",
|
||
" break\n",
|
||
" u = rng.random()\n",
|
||
" w = -np.log(u) / m\n",
|
||
" t = t + w\n",
|
||
" if t >= t_max:\n",
|
||
" break\n",
|
||
" # decay\n",
|
||
" intensity_decayed = baseline + (intensity - baseline) * np.exp(-beta * w)\n",
|
||
" d = rng.random()\n",
|
||
" if d * m <= intensity_decayed:\n",
|
||
" events.append(t)\n",
|
||
" intensity = intensity_decayed + alpha\n",
|
||
" else:\n",
|
||
" intensity = intensity_decayed\n",
|
||
" return np.asarray(events, dtype=float)\n",
|
||
"\n",
|
||
"\n",
|
||
"def python_robust_drift(observations, dt, huber_delta=1.345, max_iter=200, tol=1e-9):\n",
|
||
" \"\"\"IRLS Huber M-estimator for the drift of dX = mu dt + sigma dW.\"\"\"\n",
|
||
" obs = np.asarray(observations, dtype=float)\n",
|
||
" inc = np.diff(obs) / dt\n",
|
||
" mu = float(np.median(inc))\n",
|
||
" for _ in range(max_iter):\n",
|
||
" r = inc - mu\n",
|
||
" s = 1.4826 * np.median(np.abs(r - np.median(r))) + 1e-12\n",
|
||
" z = r / s\n",
|
||
" # Huber weights\n",
|
||
" w = np.where(np.abs(z) <= huber_delta, 1.0, huber_delta / np.abs(z))\n",
|
||
" new_mu = float(np.sum(w * inc) / np.sum(w))\n",
|
||
" if abs(new_mu - mu) < tol:\n",
|
||
" mu = new_mu\n",
|
||
" break\n",
|
||
" mu = new_mu\n",
|
||
" return mu\n",
|
||
"\n",
|
||
"\n",
|
||
"# ---------- Benchmark driver ----------\n",
|
||
"\n",
|
||
"def benchmark_v2_primitives(n_runs=3):\n",
|
||
" rows = []\n",
|
||
"\n",
|
||
" # ----- Path signature -----\n",
|
||
" print(\"\\n🔣 Path signature (level 3, 2-D Brownian path)\")\n",
|
||
" rng = np.random.default_rng(0)\n",
|
||
" sig_sizes = (200, 400, 800)\n",
|
||
" sig_results = []\n",
|
||
" for n_pts in sig_sizes:\n",
|
||
" path = np.cumsum(rng.standard_normal((n_pts, 2)) * (1.0 / n_pts) ** 0.5, axis=0)\n",
|
||
"\n",
|
||
" rust_t = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = path_signature(path, 3)\n",
|
||
" rust_t.append(time.perf_counter() - t0)\n",
|
||
" py_t = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = python_path_signature(path, 3)\n",
|
||
" py_t.append(time.perf_counter() - t0)\n",
|
||
" rmean, pmean = float(np.mean(rust_t)), float(np.mean(py_t))\n",
|
||
" sp = pmean / rmean\n",
|
||
" sig_results.append({'n_pts': n_pts, 'rust_time': rmean,\n",
|
||
" 'python_time': pmean, 'speedup': sp})\n",
|
||
" print(f\" n={n_pts:4d}: Rust {rmean*1000:7.2f}ms · Py {pmean*1000:8.2f}ms · 🚀 {sp:6.1f}x\")\n",
|
||
"\n",
|
||
" sig_df = pd.DataFrame(sig_results)\n",
|
||
" sig_avg = float(sig_df['speedup'].mean())\n",
|
||
" rows.append({'task': 'Path signature (lvl 3)', 'baseline': 'Pure NumPy',\n",
|
||
" 'avg_speedup': sig_avg, 'max_speedup': float(sig_df['speedup'].max())})\n",
|
||
"\n",
|
||
" # ----- Hawkes simulation -----\n",
|
||
" print(\"\\n💥 Hawkes simulation (exponential kernel, baseline=1, α=0.5, β=1)\")\n",
|
||
" hawk_horizons = (100.0, 500.0, 2000.0)\n",
|
||
" hawk_results = []\n",
|
||
" for t_max in hawk_horizons:\n",
|
||
" rust_t = []\n",
|
||
" for k in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = simulate_hawkes(1.0, 0.5, 1.0, t_max, kernel_type='exponential', seed=42 + k)\n",
|
||
" rust_t.append(time.perf_counter() - t0)\n",
|
||
" py_t = []\n",
|
||
" for k in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = python_simulate_hawkes(1.0, 0.5, 1.0, t_max, seed=42 + k)\n",
|
||
" py_t.append(time.perf_counter() - t0)\n",
|
||
" rmean, pmean = float(np.mean(rust_t)), float(np.mean(py_t))\n",
|
||
" sp = pmean / rmean\n",
|
||
" hawk_results.append({'t_max': t_max, 'rust_time': rmean,\n",
|
||
" 'python_time': pmean, 'speedup': sp})\n",
|
||
" print(f\" T={t_max:7.0f}: Rust {rmean*1000:7.2f}ms · Py {pmean*1000:8.2f}ms · 🚀 {sp:6.1f}x\")\n",
|
||
"\n",
|
||
" hawk_df = pd.DataFrame(hawk_results)\n",
|
||
" hawk_avg = float(hawk_df['speedup'].mean())\n",
|
||
" rows.append({'task': 'Hawkes simulation', 'baseline': 'Pure NumPy (Ogata)',\n",
|
||
" 'avg_speedup': hawk_avg, 'max_speedup': float(hawk_df['speedup'].max())})\n",
|
||
"\n",
|
||
" # ----- Robust drift -----\n",
|
||
" print(\"\\n🛡️ Robust drift (Huber M-estimator, σ=0.2, μ_true=0.05)\")\n",
|
||
" drift_sizes = (1000, 2500, 5000)\n",
|
||
" drift_results = []\n",
|
||
" for n_obs in drift_sizes:\n",
|
||
" dt = 1.0 / 252.0\n",
|
||
" mu_true, sigma = 0.05, 0.2\n",
|
||
" rng2 = np.random.default_rng(7)\n",
|
||
" inc = mu_true * dt + sigma * np.sqrt(dt) * rng2.standard_normal(n_obs)\n",
|
||
" # add 5 % heavy-tailed outliers\n",
|
||
" mask = rng2.random(n_obs) < 0.05\n",
|
||
" inc[mask] = inc[mask] + sigma * np.sqrt(dt) * 8.0 * rng2.standard_normal(int(mask.sum()))\n",
|
||
" obs = np.concatenate([[0.0], np.cumsum(inc)])\n",
|
||
"\n",
|
||
" rust_t = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = robust_drift(obs, dt)\n",
|
||
" rust_t.append(time.perf_counter() - t0)\n",
|
||
" py_t = []\n",
|
||
" for _ in range(n_runs):\n",
|
||
" t0 = time.perf_counter()\n",
|
||
" _ = python_robust_drift(obs, dt)\n",
|
||
" py_t.append(time.perf_counter() - t0)\n",
|
||
" rmean, pmean = float(np.mean(rust_t)), float(np.mean(py_t))\n",
|
||
" sp = pmean / rmean\n",
|
||
" drift_results.append({'n_obs': n_obs, 'rust_time': rmean,\n",
|
||
" 'python_time': pmean, 'speedup': sp})\n",
|
||
" print(f\" n={n_obs:5d}: Rust {rmean*1000:7.2f}ms · Py {pmean*1000:8.2f}ms · 🚀 {sp:6.1f}x\")\n",
|
||
"\n",
|
||
" drift_df = pd.DataFrame(drift_results)\n",
|
||
" drift_avg = float(drift_df['speedup'].mean())\n",
|
||
" rows.append({'task': 'Robust drift (Huber)', 'baseline': 'Pure NumPy (IRLS)',\n",
|
||
" 'avg_speedup': drift_avg, 'max_speedup': float(drift_df['speedup'].max())})\n",
|
||
"\n",
|
||
" return pd.DataFrame(rows), sig_df, hawk_df, drift_df\n",
|
||
"\n",
|
||
"\n",
|
||
"v2_results, sig_df, hawk_df, drift_df = benchmark_v2_primitives()\n",
|
||
"\n",
|
||
"print(\"\\n\" + \"=\" * 60)\n",
|
||
"print(v2_results.to_string(index=False))\n",
|
||
"print(\"=\" * 60)\n",
|
||
"print(f\"Average v2.0 primitive speedup: {v2_results['avg_speedup'].mean():.1f}x\")\n",
|
||
"print(\"=\" * 60)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "78df356e",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Comprehensive Results Summary"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "4ca6dbc4",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"================================================================================\n",
|
||
" FINAL BENCHMARK RESULTS\n",
|
||
"================================================================================\n",
|
||
" Algorithm Python Library Avg Speedup Max Speedup Min Speedup\n",
|
||
" Hidden Markov Model hmmlearn 12.903540 24.150751 8.034404\n",
|
||
" MCMC Sampling Pure NumPy 7.761596 9.669656 5.506439\n",
|
||
"Differential Evolution scipy.optimize 4.707406 6.150792 3.755996\n",
|
||
" Grid Search Pure NumPy 0.806245 0.906713 0.688598\n",
|
||
" Mutual Information sklearn.metrics 12.753020 25.216335 4.511097\n",
|
||
" Shannon Entropy Pure NumPy 4.311030 8.711705 1.280623\n",
|
||
"Path Signature (lvl 3) Pure NumPy 13.736466 14.255275 12.701160\n",
|
||
" Hawkes Simulation Pure NumPy (Ogata) 0.205974 0.388756 0.055857\n",
|
||
" Robust Drift (Huber) Pure NumPy (IRLS) 1.787452 2.939508 0.780180\n",
|
||
"================================================================================\n",
|
||
"\n",
|
||
"🎉 OVERALL AVERAGE SPEEDUP: 6.6x\n",
|
||
"🚀 MAXIMUM SPEEDUP ACHIEVED: 25.2x\n",
|
||
"\n",
|
||
"✅ Target of 50-100x improvement: PARTIAL\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"# Create summary table\n",
|
||
"summary = pd.DataFrame([\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Hidden Markov Model',\n",
|
||
" 'Python Library': 'hmmlearn',\n",
|
||
" 'Avg Speedup': hmm_results['speedup'].mean(),\n",
|
||
" 'Max Speedup': hmm_results['speedup'].max(),\n",
|
||
" 'Min Speedup': hmm_results['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'MCMC Sampling',\n",
|
||
" 'Python Library': 'Pure NumPy',\n",
|
||
" 'Avg Speedup': mcmc_results['speedup'].mean(),\n",
|
||
" 'Max Speedup': mcmc_results['speedup'].max(),\n",
|
||
" 'Min Speedup': mcmc_results['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Differential Evolution',\n",
|
||
" 'Python Library': 'scipy.optimize',\n",
|
||
" 'Avg Speedup': de_results['speedup'].mean(),\n",
|
||
" 'Max Speedup': de_results['speedup'].max(),\n",
|
||
" 'Min Speedup': de_results['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Grid Search',\n",
|
||
" 'Python Library': 'Pure NumPy',\n",
|
||
" 'Avg Speedup': grid_results['speedup'].mean(),\n",
|
||
" 'Max Speedup': grid_results['speedup'].max(),\n",
|
||
" 'Min Speedup': grid_results['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Mutual Information',\n",
|
||
" 'Python Library': 'sklearn.metrics',\n",
|
||
" 'Avg Speedup': info_results['mi_speedup'].mean(),\n",
|
||
" 'Max Speedup': info_results['mi_speedup'].max(),\n",
|
||
" 'Min Speedup': info_results['mi_speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Shannon Entropy',\n",
|
||
" 'Python Library': 'Pure NumPy',\n",
|
||
" 'Avg Speedup': info_results['entropy_speedup'].mean(),\n",
|
||
" 'Max Speedup': info_results['entropy_speedup'].max(),\n",
|
||
" 'Min Speedup': info_results['entropy_speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Path Signature (lvl 3)',\n",
|
||
" 'Python Library': 'Pure NumPy',\n",
|
||
" 'Avg Speedup': sig_df['speedup'].mean(),\n",
|
||
" 'Max Speedup': sig_df['speedup'].max(),\n",
|
||
" 'Min Speedup': sig_df['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Hawkes Simulation',\n",
|
||
" 'Python Library': 'Pure NumPy (Ogata)',\n",
|
||
" 'Avg Speedup': hawk_df['speedup'].mean(),\n",
|
||
" 'Max Speedup': hawk_df['speedup'].max(),\n",
|
||
" 'Min Speedup': hawk_df['speedup'].min()\n",
|
||
" },\n",
|
||
" {\n",
|
||
" 'Algorithm': 'Robust Drift (Huber)',\n",
|
||
" 'Python Library': 'Pure NumPy (IRLS)',\n",
|
||
" 'Avg Speedup': drift_df['speedup'].mean(),\n",
|
||
" 'Max Speedup': drift_df['speedup'].max(),\n",
|
||
" 'Min Speedup': drift_df['speedup'].min()\n",
|
||
" }\n",
|
||
"])\n",
|
||
"\n",
|
||
"print(\"\\n\" + \"=\"*80)\n",
|
||
"print(\" FINAL BENCHMARK RESULTS\")\n",
|
||
"print(\"=\"*80)\n",
|
||
"print(summary.to_string(index=False))\n",
|
||
"print(\"=\"*80)\n",
|
||
"\n",
|
||
"overall_avg = summary['Avg Speedup'].mean()\n",
|
||
"overall_max = summary['Max Speedup'].max()\n",
|
||
"\n",
|
||
"print(f\"\\n🎉 OVERALL AVERAGE SPEEDUP: {overall_avg:.1f}x\")\n",
|
||
"print(f\"🚀 MAXIMUM SPEEDUP ACHIEVED: {overall_max:.1f}x\")\n",
|
||
"print(f\"\\n✅ Target of 50-100x improvement: {'ACHIEVED' if overall_avg >= 50 else 'PARTIAL'}\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a1ce6b3b",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Visualizations"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "667e4a9b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABv4AAASlCAYAAABgJa41AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde3zO9f/H8ce182ZszMxhc2YOw5xCKOczoZOUDjr6VQpFQikiKpSK6PAtleSQFCIplcr5NIdhzucZGzN2uq7fH5/tunbZwca2a4fn/Xbbrfb+fK7P5/W5Nq6Xz+vzfr1NFovFgoiIiIiIiIiIiIiIiIgUak6ODkBEREREREREREREREREbp0KfyIiIiIiIiIiIiIiIiJFgAp/IiIiIiIiIiIiIiIiIkWACn8iIiIiIiIiIiIiIiIiRYAKfyIiIiIiIiIiIiIiIiJFgAp/IiIiIiIiIiIiIiIiIkWACn8iIiIiIiIiIiIiIiIiRYAKfyIiIiIiIiIiIiIiIiJFgAp/IiIiIiIiIiIiIiIiIkWACn8ieeyVV14hODiY1q1bZ7i9devWBAcH88orr1jHBg0aRHBwsPVry5Ytdq9ZtmyZ3fa0r+3QoYPdtrNnz9q9dtasWXbbZ86cmWX8afcNDg6mTp06NGjQgDZt2jBixAhOnDiR07ckWz799FPat29PSEgI7dq1Y/Xq1XlyHhERESnebiXvSnX27FkmTpxI586dadCgAc2bN+fhhx9m5cqV6fbNjVzt0KFDjB49mnbt2hESEkKLFi14+umn+ffff7N1zcrvREREipbr85ng4GBCQkJo06YNzz77bLr8Ju1r7rvvPrvxpUuX0rVrV+vrv/nmGwDWrVtHnz59rLnHtGnT8uXabkVcXJxdXrNkyRLr+xMREZGjY2X3tWn3y+pr7969N31duRXrjVy8eJHIyEjr9zNnzrQeNz4+PjdCzZG050/9qlevHk2aNKF3794sXLgwT8579OhRHnvsMUJDQ2ncuDGPPPJInpxHJDep8CdSCGzevNnu+02bNmX7tdfvm5PXZsRisZCQkEBkZCQ///wzgwYN4sKFC7d0zOutX7+ed955h1OnTpGYmMjp06dxcXHJ1XOIiIiIZCSnedemTZvo2bMn8+bN49ixYyQkJHDp0iU2bNjAiy++yPjx42/4+pycb+XKlfTp04clS5Zw+vRpEhMTiY6O5o8//uDRRx9lzpw5Wb4+I8rvREREip7ExEQiIyNZs2YNgwYNYunSpTd8TerDRUeOHLG+3mw2c+nSJV544QXCw8OtuUdCQkLeX8Qt+OWXX+jRowcbN250dCiFjtls5rvvvqNbt24cOnTI0eFkKTk5mStXrrB//37Gjh3L3Llzc/0co0aN4p9//uHq1avExcVx+fLlXD+HSG7Tv7RECoGNGzfy9NNPW7/PSfFu48aN9OrVC4CkpCS2bdt2UzEMHDiQp59+mqSkJKKjo5kzZw6rVq3i1KlTzJs3jxdeeOGmjpuRHTt2WP9/9uzZBAYGUqlSpVw7voiIiEhmcpJ3nT17lueee47Lly9TsWJFRo4cSb169Th48CBTp07lyJEjzJ8/nxYtWtC9e/dMz5fdXG3fvn28/PLLJCYmUrt2bV566SWqVKnCzp07mTp1KpGRkUyfPp0WLVrQqFGjG16r8jsREZGipV69esyaNQuz2UxsbCybN29mxowZxMTE8Prrr9O0aVOCgoIAeP/990lISMDNzc36+l27dmE2mwEYP348LVq0oHTp0uzfv5+rV68C8Mwzz9CvXz+8vLzy/wKz6dChQxnmMd27d+f2228HoGzZsnkex7x586hcuXKG2/z8/PL8/Ddr/fr1vP766+nGH3vsMe69914A3N3d8zssO7/++iuurq7Ex8cTFhbG+PHjuXz5MrNmzWLAgAGULFky1861a9cuANq0acNrr72GxWLJtWOL5BUV/kQKsAoVKnD69Gm2bt1KUlISLi4uREVFcfjwYQAqVqzIqVOnsnxt2ptVe/bsIS4uDldXV3x8fDh//ny2YylRogTly5cHIDAwkHfffZeNGzdy8eLFXH96KjWZBGjXrh0mkylXjy8iIiJyvZvJu+bMmUN0dDRubm588cUXVK1aFYAqVaoQHBxMt27dSExM5KeffkpX+LuZXG3GjBkkJiZSpkwZvvrqK0qXLg1A1apVCQwM5IEHHsBsNvPzzz9nq/Cn/E5ERKRocXV1tX62A9SuXZtKlSrx1FNPce3aNebNm8err74KQJkyZdK9Pu3ndZs2baxFwrTjrVq1suY8BVVmhRlPT088PT3zLQ4/Pz+7n0dhkdn75+3tjbe3dz5Hk7GAgABr8bFq1aqcO3eOKVOmcOXKFcLCwmjVqlWunCchIYGkpCQAGjVqRJUqVXLluCJ5Ta0+RQqwhg0b4uLiQlxcHHv27AFsT50HBAQQGBiY6WubNm0KGE85pd40Sn1tSEjILT+Z4+bmZv2wu/6m1MKFC+ndu7e1H/zrr7+erl1Uai/uefPm8fjjjxMSEkLXrl2544477FpU1alThw4dOli/v3TpElOnTrWuodO2bVvGjRuXbn2c1PVzZsyYwYgRI6zr1kRFRVm3ffbZZyxatIiuXbvSsGFDHnzwQSIiIoiMjOTFF1+kcePG3H777UyZMsX6IQ9GAvS///2P3r1707hxY0JDQ+nevTsff/wxiYmJ1v1S++WPGTOGLVu2MGDAABo2bEiHDh349NNP072nBw8eZOjQodan9Hv27Mnnn39OcnKy3X6bN29m0KBBhIaG0qxZM5555hnCw8Oz+6MTERGRDNxM3rVixQoA2rdvn+4GWGBgIDNmzGDZsmV89NFH6V6b01wtNjaWdevWAdC3b19r0S9VkyZNeO+991i9ejVjxozJ0bWnUn6n/E5ERIqeO++8kwoVKgDw559/WsevX+Nv0KBBdrO8OnXqZF3f+IknnrCOP/LIIwQHB1vXzjt16hQjRoywftbde++9/Prrr3YxpK7N1rlzZ3788Uduv/12GjduzIIFCwBjLbnXXnuN1q1b06BBA/r06cP3339vd4wNGzZYc41jx44xdepUWrduTaNGjXjiiSesD2tt2LCBHj16WF83evRogoODgczXvtu2bRtPPPEEt99+uzXXGT58OMePH7/Jdz17li9fbo3n+nbzU6ZMITg4mKZNm9oVXn/66ScGDBhAkyZNaNKkCQ8//DB//fXXDc+V2bVfP75kyRKefPJJ6/aHH37Ymrdltsaf2Wzm66+/pl+/foSGhtK8eXOeeeYZdu7caRdD2t+Ds2fPMnToUJo0aUKLFi0YN24cV65cydkbmEatWrWs/x8VFWX9/1v9/WzQoIF1v48++ojg4GCWLFliHVu3bh2PPfYYt912G6Ghodx333389NNPdsdPfY/r1avH+vXrad++PQ0bNmTGjBnWbY0bN7a+J40bN6Z169bMmjULsK272bBhQ+677z67ThoAERERDB06lLZt2xISEkLLli155plnrP+mgez/+UllNpv54osv6NWrlzXnfvbZZ9Plp9euXePdd9+1rj3etWtX5syZY5dni2Noxp9IPjGbzZw5cybD8cx4eXlRp04dwsLC2LhxIw0bNrQmAk2aNLH7ILte1apVKVOmDBcuXGDTpk10797dejOpadOmrFy58pauJyEhgSNHjgD2T4m9//77fPzxx9bvIyMj+e6779i0aROLFi1K1wri/ffft/bGrl69epY3OC5cuMB9991nl3idO3eO77//nt9//51vvvkm3ZM3X3/9tfX4ZcqUsWulsHjxYrtkZ/PmzTz11FO4uLhYry0uLo7PP/8cHx8fnnnmGcD4oJ85c6bdeQ4dOsT7779PfHw8w4YNs9u2Z88eli1bZu1/f/LkSd555x0qVqxoTUb37t3Lgw8+aJfkHDx4kClTpnDkyBHefPNNAP766y+GDBlidwPq999/Z8OGDcyfP586depk+v6JiIhI5nKad508edJa+AoJCcnwmJ06dcr0fDnN1fbs2WPNGzM7X2rL0Jul/E75nYiIFE21a9fm9OnTHDlyJF17z1tx9uxZ7rvvPiIjI61jO3fu5LnnnmPixInWtpCpIiMjefXVV61FgQYNGnDlyhXrgzqpwsPDGTduHKdPn86wZefLL7/M9u3brd//9ddfPPfccyxfvjzH1xAREcHgwYOJi4uzi3P58uVs376d1atX3/S6xFFRUZQoUSLduLu7O6VLl6ZTp06UKlWKS5cusWLFCpo1awYYDySlPmDWrVs36yzFiRMnMm/ePLtjbdiwgY0bNzJ27Fgeeuihm4rzVlgsFp599lnWrl1rHbt69Sq///47f//9NzNmzEiXE1+5coWBAwdai8cA33//Pc7OzjdcHzsz+/fvt/5/ah57q7+faQuuGfn888+ZMmWK3diOHTvYsWMHe/bsYdSoUXbbzGYzzz//vDU3rF+/vjWnTUxM5MEHH7TmxHFxccyYMYMtW7bYFXZ37NjB008/zZo1a/D29iYqKoqHH37Y7qG9ixcv8vvvv7N582ZWr16dbnZvdv78jBo1imXLltm9N2vWrGHDhg0sWLCAGjVqkJyczJNPPmnXKeTIkSO899571qUPxHE0408kn1y4cIE777wz3df1T0pfr0mTJoDtCfDU/6aOZ6Vx48bW11gsFrZu3Zrt117vypUrnDlzhpMnT7Jjxw6GDx9OdHQ0AHfccQcAx44dY/bs2QD079+fFStWMHfuXPz9/YmIiODzzz9Pd9zY2FimTJnC0qVL+b//+z8WLFjAwIEDrdvXrVtnfQJs0qRJHD9+HBcXF15++WVWrFjBxIkT8fLyIjIykldeeSXd8S9fvsyIESNYvnw548aNs9sWERHBiy++yPLly61JyIkTJ7h8+TJffPEFX3/9tbUneGoCk5SUZH2yp0ePHvzyyy/88MMP1htwGT1ltWfPHrp27cqKFSusN3jANksAYMKECVy5cgUfHx8++OADVq5cSf/+/QFYsGABERERmM1mxo8fT2JiIg0bNuT7779nyZIlNGnShLi4ON56662Mf3giIiKSLTnJu9IWAq+ffZddOcnV0v5j/mbPdz3ld8rvRESkeEj97LNYLNZCw/Xef/99RowYYf1+wYIFrFu3jtGjR9vdwJ8xYwbr1q2jQoUKTJ8+ncjISEqXLs2sWbNYsWIFAwYMAGDy5MnExsbanePq1auEhoayfPlyPvjgA+rVq8fnn39OREQE7u7uvPPOO6xcuZLnn38egE8++STDWXeHDx/mo48+Yvny5dbP64MHD7Jv3z4aN25sVxwbPXq0tWtCRpYtW0ZcXBz+/v588803/PrrrwwZMgQwHuw5dOhQ5m/sDQwaNCjDe4Gp3Rnc3d2tDwytWrXK2hFgy5Yt1skD/fr1A+Cff/6xXlfbtm1ZvHgx33zzDSEhIVgsFiZNmmRXPL1Z3bt3T/fzTs3bMrJo0SJrTtW3b19+/PFHPv30UypXrkxiYiKjRo3i4sWLdq+JiorCx8eHBQsW8M0331h/P9PmUTdy9uxZzpw5w+HDh1m6dKn1ITVvb29rjn2rv5/333+/3ezARx99lHXr1tG9e3ciIiJ47733AOOhvG+++YbFixfTtm1bwCgKrl+/3u74FouFgIAAli5dykcffWTNt8Eo/Lm5ubFgwQJmzZqFq6srYOSh999/PytWrLAWKi9evGj9d8Ovv/7KhQsX8PLy4pNPPmHNmjXWmbuXL19ONzsQsv7zA/Dvv/9ai369evXip59+4tNPP8XX15fLly9bH5b78ccf2bhxIyaTiTFjxvDLL7/wxhtv4OTkZN0mjqPCn0gBl3rjZ+vWrURHR1ufYEltD5Wd127atInw8HBiYmIwmUw3Vfj79ttvufPOO+nQoQP33Xef9YOvevXqPPzwwwD89ttvmM1mnJycGDJkCCVKlKB27dr07t0bIMMnrxo3bkzfvn2pW7cuDRo0wN/f3+5pqPLly+Pv709sbCy//PILAHfffTdPPPEENWrU4N5777U+qb1161YOHjxod/zy5cvz5JNPUrNmTZo3b263rWbNmgwZMoSaNWty9913W8cfffRRbr/9dpo3b259r1KTFBcXF9auXcuaNWuYMGEC1apVo0yZMlSqVAkwWlVdr0SJErz11lvUqFGD+++/n5o1awJYi74XLlxgy5YtgNFCoWvXrlSvXp1XX32VF198kTlz5lCuXDn27t1rfRrqkUceISAgAD8/Px577DHA+DmnfYpJREREciYneVfaVo1ZdXDIzvmyk6ulPcfNnu96yu+U34mISPFzfbvpVGXKlLEWYADKli1L+fLl8fHxsXvoqEyZMpQvXx6TycSaNWsAozhQr149SpQowVNPPYWrqytXrlyxay2a6tlnn6VmzZp07doVgNWrVwNGMeu2227Dy8uLe+65h0qVKpGcnJxhx6rBgwfTqVMnatasadeG9OLFi7i5udl1AyhVqlSW6+wNGzaMzZs3s2DBApo1a4a/v79dC/eM8oDclPpQ0Pnz59mwYQNgy6+CgoKseejChQsB8PX1ZcaMGYSEhNCsWTNmzpyJq6srycnJLF68+Jbj8fT0TPfz9vf3z3T/1Lhq1KjB5MmTqVOnDm3btrUWD2NjYzMs6I0dO9ba4jw1r4yJicn09/N6nTt35s4776Rbt26MGjXKWsR75ZVX8PT0xGw23/Lvp6enJwEBAdZt3t7elC9fHk9PT3744QeSkpJwdXVl5syZNGvWjJCQEGbMmIGvry9Auna1YPzu1q1bl06dOqVr7f/8888TGhpKhw4dqF27NmDknGPHjqVGjRrWtrxgy2MHDBjAli1b+PHHH2nXrh0BAQFUq1bNul9MTEyGMWT25wdsfya9vLyYMGECtWvXpm3btkyYMIG33nrLmqen7le/fn26dOmCp6cn7dq1IzQ0FMj43wmSf9TqUySflC1bNt2THgCtW7dOt4ZKWqk3Ji5dusQ333yD2Wy2tqK6kdTXHjhwwPphV61atVt6StzJyQl3d3fKlStH69atGTp0qPVGztGjRwHjZlTnzp3TvTajlhI1atTI1nkPHz5sbX/UokULu21pvz9w4ID1xgsYN65MJlOGx0zbNirt4s5pPyBTW1elTTwSExPZvHkzv//+O9u2bePcuXPWbRndiAsMDLT7MPfx8QGwtg5I+/Ra6gc7GE/kpT5lBrb3F7B7Ci+VxWJh//79WSZkIiIikrmc5F1p86nMOjikFsxudL7s5Gq5cb7MKL9TficiIkVb2rbTpUqVypVjXrx40Tp7cN68eelaUILRsjPtenuQPk84duwYAGvWrLHmQ9cf43ppj5FaZAHs2mbnxOHDh/nxxx/ZtGkTERERduuTZbcQlZEVK1bcMC9q1KgRNWrUICIiguXLl9OiRQtWrVoFGDPoUnOeAwcOAMbsMm9vb+vrK1asSGBgIIcPH073sFR2WCyWHL8mrdS4mjVrZpeHhoaG4u7uTnx8fIZxpX1fUvMoMHIpZ2fnbJ/f1dUVb29vatSowWOPPWbt+JBbv5+ZSb3uwMBAKlasaB339vYmJCSEv//+O8Prrl69eqbHTFtwTs1jAwMDrXl22gfp0v5enj59msWLF7Nx40bCw8Otregh4zz2Rn9+UvPYwMBAu5b+Xbp0sTtO6p/dsLAw7rzzznTn0XrVjqXCn0gBFxAQQGBgICdOnOCrr74CjA/P7HwIhoSEWD9kUz/gsjNTMCNPPvkkL730Upb73KjnudlsJiYmxu7GRdpk5WaPnfZD7PqbQFkdP+3NmrTJSdrx64+XnJzMY489xqZNmyhdujTdunWjSZMmbNmyhe+++y7D83h4eNh9f/3PLm2SldXit9npKZ/anktERERyLid5V+XKlSlZsiSXL18mLCwsw+MNHDiQUqVKcdddd9GzZ89023OSq9WtW9f6/2FhYfTp08due2phLiQkhLvvvtuudVBmlN8ZlN+JiEhRl9oCsnLlyuk+w25Wdu5LXd/iEUi35t2NjpPR52Bmn/c3Y8GCBdbWiO3ataN///5UrFjR2m40P/Tr1493332XNWvW0KNHD6KiojCZTNx1113WfbJ6n1LzjswejMpsf8CuSHQzbjautL+HOSn0pdq5c2e6GXPZjStVdn4/b+b4WV13Vnls2gfpUn+vb/Tndd26dTz77LMkJibSokULnn/+eZo0acKDDz6Y6Wtu9OcnNf6scli4uT+7kn9U+BMpBJo0acKJEyesf2Fmt1Wnm5sbISEhbNmyJcevvRmBgYGA8bTN1q1brR9YR44cwc3Nze4JmFTZXSA5MDAQFxcXkpKS2LBhg93Ns9T1d8D+ieqcHD+7NmzYYD3f+++/b30aPe2iuDkVFBRk/f/du3dbnzaKj49n0KBBVK5cmQEDBljfX4Avv/ySli1bAkZv9OjoaKpUqZLr1ysiIlLcZDfvcnJyokuXLixevJg///yTI0eO2D2lu23bNrZt2wYYT+xmVPjLSa5WpkwZWrZsyX///ceyZcsYMmSI3SzAlStXcuLECU6cOEGlSpWyVfjLDuV3N0f5nYiIFBRhYWHWmTnt2rXLteP6+vri7e1NbGwszz77LEOHDgWMWUN79+6lVq1adrPvU6WuXZYqMDCQ8PBw+vbty5QpU6zjO3fupHr16tl+oCittAWXG81o++ijj7BYLPTr14+3334bgF27duX4nLfirrvuYvr06URHR1vXjWvevLldPlG1alX27dtHWFgYV65csRaoTp06ZW0bfn3OlFba9z3tDNDUtQTTysn7V7VqVXbt2sWWLVvsuk9s377dWlTMKq68klu/n5lJzftPnDjB6dOnqVChAmC8t7t37wYyvu7czutmz55NYmIit912m/XBxcy6g2RX6u/dyZMniYmJsc7I/Oqrr1i3bh116tTh5ZdfJjAwkP3799O8eXO+/vpr6+v37t1LhQoV7GYTSv7TGn8ihcD1N4ByMmvvVl6bU506dcLFxYXExEReeeUVwsPD2bp1K48++ijt27fn8ccfv+ljlyxZkvbt2wOwePFi6+LPixYtYvbs2YCRFGU1ZT43xMXFWf9/5cqVHDlyhCVLlvDDDz8AN34aJiN+fn7Wn9P8+fP56aefOHToEG+99RY7duzgp59+srYZS00s3n77bTZv3szBgwcZOXIkPXr0oHXr1ukWJhYREZGcyUnulLrmXUJCAoMHD2bVqlUcPXqUFStWWG8uODk5ZZkD5eR8w4cPx8XFhYsXL/LII4/w119/cfjwYbsn1T09PRk0aNANrzO7lN8pvxMRkcIjMTGRM2fOcObMGY4ePcqqVat48cUXAWPmUOoavrmlW7dugNFK8ZdffuHo0aPMmDGDe++91zp7PrvHWL58OQsXLuTo0aN8+eWX3HvvvTRr1oyffvopx3GlnTkVHh7Ozp07My1gpeYB27ZtIywsjC1btjBx4kTr9ltp9RkVFWX9eVz/lbb4Vq5cOdq0aQNgLRr17dvX7lip3R6io6MZNmyYNdYXXniBpKQkXFxc7NY3vl7a7gwLFiwgKSmJnTt3ZrgOXdr3b8+ePZl2t0gb18GDBxkzZgzh4eH8/fffvPLKK4DRWrZ79+6Zvj4v5cbvZ2Z69+6NyWQiMTGRoUOHsmXLFsLCwhg2bJj1gb60a/LlldTf3wMHDrBp0yZ2797N6NGjrdtv5vc3taVnfHw8o0ePZt++ffzzzz98/PHH/P333xw6dAiwvb+bNm1izpw5HD58mOXLl3P33XfTokULPvnkk1u9PLkFenRQpBBIe0PI2dmZRo0a3dRry5Yta7fuSW4LDAzk4Ycf5vPPP2f58uV2i7h6enrecpuEcePGERYWxunTp5kyZYrdk2DlypVj8uTJt3T87GjSpAm+vr5ER0czf/585s+fb7c9JibmptbXGTt2LA899BBXrlxJ13LrnnvuoV69egCMHDmS5557jr1796abtv/ss8/e1JNwIiIiYpOTvCsoKIgPPviA559/npMnT1qLfWm99NJLNGzYMFvnu1Gu1qhRIyZOnMjYsWMJDw/niSeesNvu7OzMW2+9ZX3iODcov1N+JyIihceePXsyXGvL2dmZ119/3W4GWW4YMmQIv/32GxcvXuSFF16w29axY8dsPXw+aNAgli5dytGjRxk7dqzdtoYNG9K1a9ccx1WuXDlKlSrFpUuX+PLLL/nyyy/5559/Mty3Q4cO/Pjjjxw5ciTDwtmtzJ7K6mGs0aNH8+ijj1q/79evH+vWrQOMHOv66+7YsSP9+/dnyZIlrFu3zrovGDP0xo4da9d94nqhoaGUK1eOc+fOsXjxYpYsWYLFYqF+/frprrF69eo4OTlhNpuZMmUKnp6emXZCePDBB/njjz9Yv349S5YsYcmSJdZtrq6uTJkyxW4Nv/yUG7+fmalbty7PPfccM2fOZOfOnQwcONBu+9NPP23t5JCXOnTowL59+7h48SIPPfRQuu038/t7++2306tXL37++Wd+++03fvvtN+s2b29v67rUPXv25Ntvv2X79u2899571tmqYKy7nR+FT8mcZvyJFAK1atWyLr5cp06dbPebBmjcuLF1in5etvlMNXLkSMaPH0/dunXx8PDA19eXO++8k3nz5hEaGnpLxw4ICGDp0qUMHjyYypUr4+rqir+/P/fffz+LFy/O9QQ2I2XKlGHOnDk0bdoULy8vypYtS/v27ZkzZw4A165dY+PGjTk+bv369VmwYAGdO3fGx8cHT09PateuzejRoxk/frx1v44dO/L555/TqlUrvL298fLyokGDBkyfPj3Xn9wTEREpjnKad7Vp04Zly5Zx3333UaFCBVxdXfHx8eHOO+/kiy++uOGMuJzmav369WPx4sX06tULf39/XFxc8PPzo2vXrixYsCDDlqK3Svmd8jsRESl8XFxc8Pf3p2vXrsyfP5/+/fvn+jkCAwNZuHAhvXr1ws/PDzc3N6pWrcqLL77ItGnTsnWMkiVLMn/+fAYMGEBAQACurq5UqlSJwYMH8/nnn9vNPssuNzc3xowZQ9WqVXFzc6NWrVokJiZmuO9rr73G/fffj7+/P15eXtSrV48pU6ZY87K//vorx+e/GR07drS2RuzcuXOGD/5MnjzZGluJEiXw8vKiRYsWfPbZZzzwwANZHt/Dw4O5c+fSrFkz3N3dqVChAkOHDrXLSVL5+/szYsQIKlasiIeHB9WrV890LUBnZ2fmzp3LmDFjqF+/Pp6entauDvPnz6dDhw45fi9yS278fmblueee45NPPqF169aUKlUKDw8PGjVqxLRp0xg+fHguXMGNDRkyhKeeeooKFSrg6elJzZo1GT16NL169QJu/vd36tSpjBw5kho1aljz8y5dujB//nxq1qwJGH/HfPbZZzzxxBMEBgbi6upKQEAA9913H19//bXdsgSS/0yWGzXqFREREREREREREREREZECTzP+RERERERERERERERERIoAFf5EREREREREREREREREigAV/kRERERERERERERERESKABX+RERERERERERERERERIoAFf5EREREREREREREREREigAXRwfgCGazmaSkJJycnDCZTI4OR0REpFCxWCyYzWZcXFxwctIzRJK/lMeJiIjcPOVx4kjK40RERG5eTvK4Yln4S0pKYteuXY4OQ0REpFBr0KABbm5ujg5DihnlcSIiIrdOeZw4gvI4ERGRW5edPK5YFv5Sq6ENGjTA2dnZwdE4nsVi4dKlS5QqVUpPXOUjve+OoffdcfTeO0ZevO/Jycns2rVLT4mLQyiPs6e/Wx1D77tj6H13HL33jqE8ToqavMjjiuLfT7qmwkHXVDjomgoHXVP25CSPK5aFv9Q32tnZWTeMMH4JnZyccHZ2LjJ/sAoDve+OoffdcfTeO0Zevu/6OYojKI+zp79bHUPvu2PofXccvfeOoTxOipq8yOOK4t9PuqbCQddUOOiaCgddU85k53h6xEtERERERERERERERESkCFDhT0RERERERERERERERKQIUOFPREREREREREREREREpAgolmv8ZVdycjKJiYmODiPPWSwWEhISuHbtWpHpoVtQuLq6av0hERERB1AeJ7dKeZyIiIhj5CSPK4q5kK7p1imPE5HiToW/DFgsFs6cOUN0dLSjQ8k3ZrOZqKgoR4dRJPn6+lK+fPkik6yJiIgUZMrjJDcpjxMREck/N5vHFcVcSNd065THiUhxpsJfBlKTjHLlyuHl5VXkPyAsFgvJyck4OzsX+WvNTxaLhbi4OM6dOwdAhQoVHByRiIhI0ac8TnKD8jgREZH8dzN5XFHMhXRNt34u5XEiUtyp8Hed5ORka5Lh5+fn6HDyRVFMKAoKT09PAM6dO0e5cuXUZkBERCQPKY9THpeblMeJiIjkn5vN44piLqRrunXK40SkuHNydAAFTWoPcS8vLwdHIkVF6u9ScVhnSERExJGUx0luUx4nIiKSP5THSW5THicixZkKf5koKk/UiOPpd0lERCR/6bNXcot+l0RERPKXPnslt+h3SUSKMxX+RERERERERERERERERIoAFf5EREREREREREREREREigAV/vJIstnCvxFR/Lj9JP9GRJFstuT5Oc+dO8e4ceNo06YNDRs2pGfPnnz22WckJSVl+xixsbEsXbrU+n2HDh1YsmRJjmPZsGEDwcHB2do3ODjY7qtu3bq0atWKl19+mUuXLmX52gMHDjBo0CAAlixZku5YDRo0oGvXrnz77bc5voaMREVFsXLlSuv3gwYN4uDBg7lybBERESkYlMcpjxMREZHCqajkcZ07d1Yel4byOBGRnHFxdABF0S9hp3njpz2cjrlmHavg48HrvevRLaRCnpzz9OnTDBgwgOrVqzNjxgwCAgLYtWsX7777Lv/99x+ffPIJTk43rvP+73//Y8OGDfTt2xeARYsW3dTCyo0bN+bvv//O9v4zZ86kcePGACQlJREWFsbYsWOZPHkykydPzvR1b775Js8++6z1+/Lly7No0SLr95cvX2bRokW88cYb1KxZk9tuuy3H15LWu+++i8VioXv37gA8++yzvPHGG8ybN++WjisiIiIFg/I45XEiIiJSOBWlPG7BggWULFkyx/EU1DyuefPmOb6WtJTHiYjkjGb85bJfwk4z5OutdkkGwJmYawz5eiu/hJ3Ok/NOmDCBoKAgPv30U5o1a0ZQUBA9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STyRuiSO0w2J474+ieN0R+I4IVJHQtfwtCqxa6OlpaUOS/Z5ErvupGWJ/U1Pi58TRF9rQkNDCQwMVJcFBARodQSmVRcvXsTNzU3XxUgROXLk4O7du1qZAAICAsiTJ48OS/VlgoODad26Na9evcLKygoDAwMOHTpE6dKldV20FPGpe8pUpYh0y87OTvnvv/8URVGUiIgIpU6dOkqfPn2UmzdvKgsXLlRcXFyUhw8fKoqiKPfv31ccHR2VhQsXKjdv3lR69+6t1K9fX4mKilIURVF27NihuLm5KX///bdy4cIFpW7dusq4ceN0dm7fktu3bytFixZVZs2apTx79kzrR+o9dUVERChNmjRROnbsqNy6dUs5dOiQUq5cOWXFihVS91/JoEGDlEGDBimKoihv375VypQpo4wbN065deuWMm7cOKV8+fLK+/fvFUVRlLNnzyrFixdX/vzzT+XatWtK27ZtlS5duqj7WrhwoeLh4aH8999/yn///ad4eHgoy5Yt08l5fYvevn2rVKhQQenXr5/i7++vHDp0SPHw8FAWLVokdS9EOiRx3NchcZzuSBynexLHfT0SxwmR8hK7hqdViV0b04OY1520LLG/6WnZL7/8orRs2VK5du2a8s8//yhlypRRVq5cqetifbEqVaooO3bs0HUxUsSbN2+U8uXLKwMGDFACAgKU/fv3K6VLl1bWr1+v66J9kQYNGihDhgxR7t27p/z555+Ko6OjcuHCBV0X67Ml514+NUnHXzoW80umKIpy584d5ccff1QcHByUunXrKv/++6/W9ocOHVJq1KihODk5KT/99JNy7949rfULFy5UypYtq5QoUUIZMmSI8vHjx69yHt+6hQsXKnZ2dvH+KIrUe2p78uSJ0r17d8XNzU0pX7688scff6iNPlL3qS924H7hwgWlUaNGiqOjo9KsWTPlypUrWttv2bJFqVSpkuLi4qJ0795defnypbouIiJCmThxolKyZEnF3d1dmTZtmvpZimg3b95U2rdvr7i4uCjly5dXvL291TqSuhcifZE47uuQOE63JI7TLYnjvi6J44RIWZ+6hqdViV0b07r00vGnKIn/TU+r3rx5owwYMEBxcXFRypYtmy7OSVEUxdHRUfnnn390XYwUc+vWLaV9+/aKm5ubUq1aNWX58uVp/nPy9/dX2rZtqzg7Oyt169ZVDhw4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NG3alIYNG7J///7Cf5MiImIVCv5KgguxMK8PHPzRvGy0h/5zodUT1q1LRERERApE1wYVaVbVC4DD55JZti3vHhLFmclk4pe9Z7nn/T9495eDpGaYw8tyrvZM79+Y5SPb0riSp3WLFBGRImE0GilfvjxGo9HapeSpefPmuUKz5ORkwsLCqF+/vpWqujnNmjVj7969nD17Nkf7unXrCAoKsk5RclPGjBnDihUrqFatWo72unXr0r9/fypVqgSYe6ICNG7cONc+vLy8sLe359ixY1y8eBGTycTx48cBiIqKIiQkhPbt23PmzBm++OILpkyZQkpKCiNGjKBu3bq59iciIqWDrbULkBuIPwUL+sH5A+ZlezfzfH41Olq3LhEREREpMAaDgXHd69J/1kYA3l93kD5BATjZF88Lpv917HwKk1ft4bcD0ZY2o42Bh9tU4//uro27o4alFxEpS06fPk3nzp1Zv349lSpV4uzZs0yYMIGtW7dSvXp1OnbMeU1j69atvPHGGxw9epS77roLACcnJ8v6X375hffff5+IiAhq167Niy++SMuWLQEYOnQobdu2ZevWrWzZsgU/Pz9efvllOnTocM36OnfuzLRp00hOTsbV1RUw95Rr3rw5Fy9etGyXnp7Ou+++yw8//EBsbCwVK1bkiSee4MEHHwTMQ2J2796dlStXUq5cuVzDk06dOpWffvqJRYsW4e/vT1hYGG+//Tb79u3D29ubxx57jIEDB3LkyBF69OjBunXrqFy5MgDHjx+nW7du/Prrr3n2nPTz86N+/fps2LCBgQMHWur966+/ePzxx1myZIll2yNHjvDmm28SFhaGi4sLDz74IKNGjcLGxtwfYMmSJcyaNYvExERGjBiR43VMJhOffvopixcvJjU1lebNmzNx4kT8/f2veXwFsrKyyMrKuu42AwYMACA7O9vy73+f880337BkyRLs7OwYPHhwnvsMCQnh22+/pVevXri4uHDggPkaYmpqKllZWUycOJE+ffrw2WefkZGRQY0aNXjiiSduWJ/kZjKZLP+fSkrvYIPJhMFkwmQyYSoB/89L4jEuaXSMC9/1/q7fjpvZl4K/4uzsXnPol3Rp3HmXCjBkGfg1sW5dIiIiIlLgmv9/e3ceV1P+/wH8VUoLrUpi/JosZWtTZMmW0CKVbUZCYjDIjGUoRpY0Ddn3JYSsGaIxY+y+MiZEWdM6ltCEQtJ+fn80nXFVFNWlXs/Ho4fO52yf8+5e93PP+3w+ny810auVDo7fSkHKi2xsOZ+ECT2aSbta7/QqOw+rT8dj87kk5LwxPGnHJvUwt19rGDZQkWLtiIjoU/Hdd99BWVkZISEhiIuLw6xZs6ChUdjT/dmzZ2IybenSpThy5AhWr14NFxcXAEBMTAxmzJiBefPmwdjYGGfPnsU333yDw4cPQ09PDwCwfv16zJkzB3PmzMGSJUswe/ZsnDp1Skxsvc3AwAA6Ojr43//+B3t7ewCFyUUbGxuEhYWJ223cuBFnzpzBqlWrUK9ePRw8eBC+vr7o2bOnOPxiWFgYNm/eDEEQJOZq27p1Kw4dOoSdO3eiYcOGSEhIwIgRI+Du7g4/Pz9ER0dj3rx50NLSQq9evdCiRQscP34cHh4eAIA//vgDZmZm7xwu1draWiLxd+HCBTRr1kysW1F8XV1dYW1tjZCQECQlJeHHH39E3bp14e7ujnPnzsHPzw++vr5o3bo1li5diuTkZHH/4OBghIWFYcmSJdDS0sKWLVvg4eGBsLAwyMvzwZ7SXLt2TSJ5/S6PHxcOjf7w4UNERUWJ5RcuXBDncXR1dcXz588l1hextbVFSkoKLl26BCUlJVhZWSE8PBypqani9i4uLti1axcAYMiQIbh169aHXxx9VpR79oRMbi4EeXlklvD6IaKKp2xjA8XcXMjKy5f4/3ZVYOLvU3X3ArD7KyDr30ajZhPA7QCgqS/dehERERFRpZlha4iTt1NQIADrzyRgSPv/g2ad2tKuVjGCICDs2iP8dOQ2Hr/IEst11RQxy6ElHIx0+fQoEVE1NmfOHPj6+kqU5eXlQVtbu9i2cXFxuHr1Kk6fPo2GDRuiefPmuHHjBo4ePQoA+P3336GpqYkffvgBMjIy8PT0xNmzZ8X9N2/ejMGDB8PR0REAMHz4cFy6dAm7d+8We9h169YN/fv3BwB8++23cHJyQmpqKnR0dEq9hp49e+LUqVOwt7dHTk4Ozp8/Dx8fH4nEX4sWLdChQwdx6Mxx48ZhzZo1+Pvvv8XkWr9+/WBoaAgAiIiIAAD89ttvWL16NYKCgtC0aVMAwL59+9CqVStMmTIFANCkSRMkJCQgMDAQvXr1goODA44dOyaR+CtKfpbGxsYGGzZsQGZmJpSVlXHixAn06tVLYptff/0VSkpK8PX1hZycHJo2bYrU1FSsWbMG7u7uCAkJgaOjI5ydnQEAP/30k0SPzMDAQMyZMweWlpYAgPnz58PKygrnzp2DtbX1O+tXkxkbG6NOnTpl2jY8PBwA0LBhQ/G1FhERgXXr1kEQBIwbNw6TJk165zE6dOgAoLCN9uOPP4plRcc7ePCguG1aWhqHg/1AgiDgxYsXUFVV/Xzaup/Z3/qzjPFnhjGufIKJSaXEOD8/H9evXy/Ttkz8fYpu/wr8MgrI+/cmSkMzwDUEqFu8AU1ERERE1Uez+ioYbNEYey7dx8vsPKw6FYc5jq2lXS0JMY9fYM6hm4hIeiaW1a4li2+66mNCj2ZQrs2vGERE1d2kSZPQu3dvibJjx46Jc5G9KT4+Hurq6hJDQxoZGYmJv/j4eLRo0ULixpiRkZE45GZCQgJ+//137N27V1yfm5sLKysrcfnNOdKKhu7My8t75zX07NkTkyZNQl5eHi5cuAADAwPUq1dPYhsbGxucP38eP//8MxITE8VeUm8OtdWoUaNix/by8kLt2rXRoEEDsSwhIaHYHG1mZmbikJz29vZYtmwZUlJSkJubi5iYGNja2r7zGlq0aAFtbW2Eh4fDxsYGp06dwu7du3H58mWJ87Zu3Rpycv99PpuZmSE1NRUvXrxAQkKCOOQkUDhnXNFwo69evcLjx48xefJkid6TWVlZ4jxyVLJatWqVeY7LotjKysqiVq1aePbsGaZOnYq8vDx8/fXXmDx58jv39/T0xKVLl3Ds2DEoKCggMjIStWvXRtu2bVGrVi1ERkZi//790NHRQVpaGjZt2oS+ffuKSWkqO0EQxL8TEyaVgzGufIxx5fsUYsxv5Z+ay1uBI1MA4d+hkppaA4N3AAp1pVsvIiIiIqoSk3sZIDQqGVm5BQj+6y48OuujsaaytKuF569zsex4LHb8dRf5BYJYbt2iPnz6tsKXWmV7qp2IiD5/9erVE4fZfLOsNIIgSCy/PURkSeuLEn/5+fn45ptvxB5pRRQVFUs9XknHfJu5uTkAIDIyssSecgCwbNkyhISEoH///nB2dsacOXOK9XJTUFAotl9AQAACAwOxcOFCLF68uNTt3pz754svvoCRkRFOnDiB7OxsWFhYlNiD8m1Fw31qaWlBU1MT//d//yeR+CvtvMB/CczS/j5F61esWAF9fckRqNTU1N5bN/owwcHBePas8AGrBw8eYPz48QAKewT++OOPOHLkCI4cOYL+/fvDxsYGTZs2xbFjxzBo0CDIysri3r178PDwQN26dZGbmwsfHx+xJ+CtW7ewbt06+Pj4IDg4mDf9iYiqqZIHO6eqJwjAmYXAr9//l/QzGgwM2cukHxEREVENoqOqiFFWhTfXcvMFLD52R6r1KSgQsO/SfVgvPoOgP/8Wk3569ZSxeYQFtri3Y9KPiIhKZWBggOfPn+Pu3bti2e3bt8Xfmzdvjlu3bkn0ontzvb6+Ph48eAA9PT3xZ+/evfjf//73UfWSk5NDt27dcOrUKZw+fRo2NjbFttmzZw9mz56NadOmwd7eXkxGvi+p2KdPHzFBc+nSJfE6oqOjJba7evWqRELN3t4eZ86cwYkTJ+Dg4FCm6+jZsyfOnj2L48ePl5i81NfXx82bN5GbmytxXk1NTairq6N58+YSw4ZlZGSIfytVVVXUq1cPqampYux1dXUREBCApKSkMtWPyu/MmTPi7+Hh4Th58iROnjyJv/76CwCQmJiIkydPin+nb7/9Fv3798fTp0+Rnp6O4cOHY+rUqQCATZs2IT4+Hp06dULv3r0xduxYNGzYEJcvX8a+ffuq/NpICuLjgZiYwn+JqEqkxccjPTYWaVJ837HH36egIB/4bRpwect/ZR0nAr18gVImoiYiIiKi6mtst6bYFXEPaZm5OBT1EN90aYI2jar+yfro++nwOXwT0ffTxTJFeVl4WjfHKCt9KMqXbQgrIiKquZo2bYqOHTti5syZmD17Nh48eIDg4GBx/jMHBwesWrUKfn5+cHNzw6lTpxAZGSkOoenu7o6hQ4fCyMgI3bt3x6lTpxAUFIRt27Z9dN169uwJb29vNG7cWBze8k3q6uo4ffo02rRpg5SUFPz0008AgJycnPce28TEBE5OTpg/fz4OHjwIV1dXbN++HUuXLoWLiwuioqKwa9cuzJ49W9zHzs4OK1asQH5+PtasWVOma2jXrh3y8/Oxd+9e7Ny5s9h6R0dHrFq1Cj4+Phg9ejSSkpKwatUquLq6QkZGBm5ubnB3d0e7du1gbm6ONWvWICvrv/l73d3dsXz5ctSrVw9NmjTB2rVrceXKFfj5+ZWpfvR+np6e8PT0FJcPHDhQru0VFBTg7+8Pf39/CIKA58+fi8OMjh8/XuwxCABKSko4ffp0BV8BfdIWLACePgXq1QOCgqRdG6IaIcLPDy8eP4Zqgwawk9L7jlklacvNAvYNl0z69V4A9PFj0o+IiIiohlJVlIendXNx+effY6r0/E8zsuH1yzU4rz0vkfRzMNLFyandMaFHMyb9iIiozJYtWwYNDQ18/fXXWLp0KYYNGyauU1NTQ2BgIK5fvw4nJyf8+eefcHJyEtebmppi0aJF2LVrF+zt7bFv3z4sWbIE7dq1++h6WVlZIS8vr8TefgDw008/4fbt23BwcIC3tzdsbW1hbGws0SPxXaZOnYrk5GTs2LEDDRs2xIYNG3Du3Dk4Ojpi3bp18PLywoABA8TtdXR00KZNG7Rv3x4aGhplOoecnBy6du0KdXV1tGzZstj6unXrIjAwEPfu3YOzszN8fX0xYsQITJw4EQBgYWEBf39/bNiwAQMHDoSmpqbEcUaNGoWBAwfCx8cHzs7OePjwITZv3syhPomIiD5hMsL7xieohvLz8xEVFQVTU9MyT7RbKV6nA7uHAPf+LFyWlQOc1wHGg6vk9EVPAampqXFMb6JPGN+r9Kn5ZD5HqUaqSa+/7Lx82Cw9i/vPCocV2+7RHl0NJOf6qejPiLz8AuyMuIclx+7gRVaeWN68fl3M69canZppffQ5qgN+NksH4y49jL10VEbca9LnKH16il5/zZr/A1VVxffv8Jl59eo1VOoWDtGakZEh9mqtSvz/unJ9lvF1d/+sevx9ljH+zDDGle93d/dK6fFXnnYch/qUlhcPgeABwD+3Cpfl6wBfbQealfyUGRERERHVLApytTCttyG+2xMFoLDXn1UzLcjKVs6Xs4jEp5hz+CZiHr8Uy1QU5PB9LwMM76gH+VocjYKIiIiIiIjoU8fEnzSkxgLB/YHn9wuXlbWAofuARubSrRcRERERfVIcjRsi8FwSric/x61HL3AoOhkuZl9U6DkeP8+C/++3cSjqoUT5QPMvMN3WEPVVqt8T+URERERERETVFRN/Ve3+JWDXIOB1WuGyuh4w7CBQr6l060VEREREnxxZWRl42bXA0MAIAMDiP2Jh10a3QubXy8krwJbzSVh5Mg6ZOflieZtGqpjXrw3M9co2txARERERERERfTqY+KtKsX8A+0YAeYXztKCBETD0F0BFR7r1IiIiIqJPVudmWuhqoI3/xaYiOf01gv+6i9FdmnzUMc/GpmLe4ZtIfPJKLNNQlscPfVrgq3aNUauShhMlIiIiIiIiosrFxF9VuRoMHJ4ECP8+Ta3fFfhqJ6CoKt16EREREdEnb4atIc7FpUIQgNWn4zHIojHUlOTLfZz7zzIx/9dbOH4rRSyTlQGGWupham8DqCvXrshqExEREREREVEVk5V2Bao9QQDOLQEOTfgv6dfaBRi6n0k/IiIiIiqT1g3V4GzaCACQnpmLdWcSyrX/65x8LD0ei55Lz0ok/Sz0NBDmaQVf5zZM+hERERERERFVA+zxV5kKCoCjXsDFDf+VWY4D+vgDssy5EhEREVHZTellgCPXHiEnvwBbzydhRCc9NFBVfOc+giDgj5uP4fvrbSSnvxbLtVUUMNO+BZxNG0FGhsN6EhEREREREVUXTPxVlrxs4OBY4ObB/8p6zgGsJgO8uUJERERE5dRYUxnDO+ohMDwJ2XkFWHY8FgsHGJe6ffw/GZgXdhPn4p6IZXKyMvCw0oendTOoKJZ/qFAiIiIiIvqMrFtXOCId70cTVZmea9fiRXo6VNXVpVYHJv4+Rvp9IPNp8fKcV8CxWcDDq4XLMrWAfqsAs6FVWz8iIiIiqlYm9GiGvZfv42VWHkIuP4CFngbyc7PxpU4e2uvXQy1ZGWRk52HlyThsCU9CXoEg7tuluRbmOLZGs/p1pXgFRERERERUZZSUpF0DohpHXkkJcjk5kJfi+4+Jvw+Vfh9YbV7Ys+9daikAX+0ADPpUTb2IiIiIqNrSqFMb47s3w8KjMRAATP/luriugZoi7Nro4Mi1x/jn5X9t1EbqSpjdtxX6tNbhsJ5ERERERERE1RwTfx8q8+n7k34A0Hc5k35EREREVGEaqZc8r9/j51nYev6uuFxbThbjujXFt92aQql2raqqHhERERERERFJERN/lU2nlbRrQERERETVRH6BAP/fY967nU3L+vDp2xr/V0+5CmpFREREVHaZmVmoVUt4/4afmVevsqRdBaLiQkOBzExAWRlwdpZ2bYhqhLjQULx48gSqWlowcHGRSh2Y+CMiIiIi+kxcTHqGR8/ff1NplFUTJv2IiIjok9S82TC8evVK2tUgqhlCQ4GnT4F69Zj4I6oiCYcO4cXjx1Bt0EBqiT9ZqZyViIiIiIjK7Z+XZXuSvKzbEREREREREVH1wh5/RERERESfifoqJc/v96HbEREREVW15ORkyMlV71uSysoceYGIiKSnen/KEhERERFVI+31NaGrpojHz7NQ0sw4MgAaqCmivb5mVVeNiIiIqEzq1KlT7RN/RERE0sShPomIiIiIPhO1ZGUwx7EVgMIk35uKluc4tkIt2bfXEhEREREREVFNwMTfh1KuB8gpvHsbOYXC7YiIiIiIKohtG12sc2uLBmqSw3k2UFPEOre2sG2jK6WaEREREREREZG0sV/9h1JvDEyMBDKflr6Ncr3C7YiIiIiIKpBtG130atUAF5Oe4u+UNHypo4H2+vXY04+IiIiIiIiohmPi72OoN2Zij4iIiIikopasDDo0qYeW9eSgpqYGGRkm/YiIiIiIiIhqOg71SURERERERERERERERFQNsMcfEREREREREREREVF107QpoKUFqKlJuyZENYZakyaQVVGBira21OrAxB8RERERERERERERUXUze7a0a0BU43ScPRvPnz+HmhQT7hzqk4iIiIik5sSJE/D29pZ2NYiIiIiIiIiIqgX2+CMiIiIiqVi4cCFOnz4NU1NTaVeFiIiIiIiIiKhaYI8/IiIiIpIKY2NjzJ07V9rVICIiIiIiIiKqNtjjj4iIiIgqzd69e7Fjxw6Jss2bN0NHRwd2dnaIiIiQUs2IiIiIiIiqOV9f4PlzQE2N8/0RVZELvr54mZoKFW1tdPLxkUodmPgjIiIiokrz1Vdf4auvvpJ2NYiIiIiIiGqehATg6VOgXj1p14SoxniemIgXjx+j4OVLqdWBQ30SERERERERERERERERVQNM/BERERFRmeXk5KBv374SQ3RmZ2dj5syZsLCwgJWVFbZs2SLFGhIRERERERER1Vwc6pOIiIiIyiQ7OxtTp05FXFycRPmiRYtw48YNbNu2DQ8fPsSMGTPQsGFD2NravveYlpaWsLS0LHddBEGAIAjl3q+6KYoDY1G1GHfpYNylh7GXjsqIO/+GRERERNUfE39ERERE9F7x8fGYOnVqsRuGmZmZCAkJwaZNm9C6dWu0bt0acXFx2LlzZ5kSfx/qxYsXkJXl4BWCICAzMxMAICMjI+Xa1ByMu3Qw7tLD2EtHZcS9oKCgQo5DRERERJ8uJv6IiIiI6L0uXrwIS0tLTJ48GaampmJ5TEwM8vLyYGZmJpaZm5tj/fr1KCgoqLTknKqqKmrVqlUpx/6cFCVi1dTUeDO+CjHu0sG4Sw9jLx2VEff8/PwKOQ4RERERfbqY+CMiIiKi93J1dS2xPDU1FRoaGqhdu7ZYpqWlhezsbKSnp0NTU7NS6iMjI8Obz/8qigXjUbUYd+lg3KWHsZeOio47/35ERERE1R/HRyIiIiKiD/b69WuJpB8AcTknJ0caVSIiIiIiIiIiqrFqZI+/ouEyavoQF4IgoKCgAPn5+Xzqj+gTxvcqfWqKPj/fnuuNaiYFBYViCb6iZUVFxQo/H9txkvgZIR2Mu3Qw7tLD2EtHZcSd7TiSpjfbcfy/pHLw/+vK9VnGV14eUFAo/Pcz+A71Wcb4M8MYVz4ZeXnIKChARl6+Qu9dlKcdVyMTf0WTWV+/fl3KNSEiIvp8FX2eUs2mo6ODtLQ05OXlQU6usGmZmpoKRUVFqKqqVvj52I4jIiL6eGzHkTQUve5u3Lgh5ZoQ1SDjxv33e1SU1KpBVJNojxsH7X9/j6qE911Z2nE1MvEnJycHIyMjyMrKMqtNRERUTkVPhxUleahma9myJeTk5BAVFQULCwsAQGRkpNjWqmhsxxEREX04tuNImtiOIyIi+nDlacfVyJaerKxssbloiIiIiKj8lJSU4OzsjLlz5+Knn37CP//8gy1btsDf379Szsd2HBEREdHnie04IiKiqlEjE39EREREVHG8vb0xd+5cjBgxAnXr1oWnpyd69+4t7WoREREREREREdU4MgJndCYiIiIiIiIiIiIiIiL67FX8xCtEREREREREREREREREVOWY+CMiIiIiIiIiIiIiIiKqBpj4IyIiIiIiIiIiIiIiIqoGmPgjIiIiIiIiIiIiIiIiqgaY+CMiIiIiIiIiIiIiIiKqBpj4IyIiIiIiIiIiIiIiIqoGmPijYrKzs/Hdd9/Bzc0NgwcPRlRUlLSrREQlyM3NxZQpU+Dq6opRo0bh2bNn0q4SERFVgJycHPTt2xcRERFi2f379+Hu7g5TU1PY29sjPDxcYp8///wTffv2hYmJCYYPH4779+9LrA8KCkKXLl1gZmaGmTNn4vXr11VyLZ+DlJQUTJo0Ce3bt0eXLl3g7++P7OxsAIx7Zbt79y5GjRoFMzMzdO/eHYGBgeI6xr7yjRkzBl5eXuLyrVu3MGjQIJiYmGDAgAG4ceOGxPa//vorbGxsYGJiggkTJki0PQVBwOLFi9GhQwe0b98eixYtQkFBQZVdy+fg+PHjMDQ0lPiZNGkSAMaeaobs7GzMnDkTFhYWsLKywpYtW6Rdpc/ax7RfqPzK+5lJZZOTk4N58+ahXbt26NSpE5YuXQpBEAAwxhXl0aNHGDt2LNq2bQtra2sEBQWJ6xjjj1MZ39srEhN/VMz+/fvRpEkTBAcH4+eff4a/v7+0q0REJfjtt9+go6ODXbt2wcHBAZs2bZJ2lYiI6CNlZ2djypQpiIuLE8sEQcCECROgpaWFX375BU5OTpg4cSIePnwIAHj48CEmTJiA/v37Y//+/dDU1MT48ePFL81//PEHVq9ejfnz52Pbtm2Ijo5GQECAVK7vUyMIAiZNmoTXr19j586dWLZsGU6fPo3ly5cz7pWsoKAAY8aMgYaGBg4ePIh58+Zh3bp1CAsLY+yrwJEjR3D27FlxOTMzE2PGjIGFhQUOHDgAMzMzjB07FpmZmQCAa9euYdasWZg4cSL27t2LFy9ewNvbW9x/69at+PXXX7F69WqsXLkSYWFh2Lp1a5Vf16csPj4ePXr0QHh4uPizYMECxp5qjEWLFuHGjRvYtm0b5syZg9WrV+Po0aPSrtZn6WPaL1R+5f3MpLJbsGAB/vzzT2zevBlLlizBvn37sHfvXsa4An3//fdQVlbGgQMHMHPmTCxfvhzHjx9njD9SZXxvr3AC0VtevnwpZGRkCIIgCLGxscLQoUOlXCMiKk1ubq4gCIKwZs0aYd26dVKuDRERfYy4uDihX79+gqOjo2BgYCD89ddfgiAIwp9//imYmpoKr169ErcdMWKEsHLlSkEQBGH58uWCm5ubuC4zM1MwMzMT93d1dRW3FQRBuHTpkmBsbCxkZmZWxWV90uLj4wUDAwMhNTVVLAsLCxOsrKwY90qWkpIifPfdd8LLly/FsgkTJghz5sxh7CtZWlqa0LVrV2HAgAHCjBkzBEEQhJCQEMHa2looKCgQBEEQCgoKhF69egm//PKLIAiC8MMPP4jbCoIgPHz4UDA0NBTu3bsnCIIgdOvWTdxWEAQhNDRU6NGjR1Vd0mdh6tSpwpIlS4qVM/ZUE7x69UowMjIS/58WhMLvsG/+X05l9zHtFyqfD/nMpLJJS0sTWrVqJURERIhlGzZsELy8vBjjCpKeni4YGBgId+7cEcsmTpwozJs3jzH+CJX1vb2isccfFVO3bl3UqVMHz549w/Tp0zFhwgRpV4mISiEnJ4cxY8Zgx44d6N69u7SrQ0REH+HixYuwtLTE3r17Jcqjo6PRqlUrKCsri2Xm5ubicOzR0dGwsLAQ1ykpKaF169aIiopCfn4+rl+/LrHe1NQUubm5iImJqdwL+gxoa2sjMDAQWlpaEuUZGRmMeyWrX78+li9fjrp160IQBERGRuLSpUto3749Y1/JFi5cCCcnJzRr1kwsi46Ohrm5OWRkZAAAMjIyaNu2bakx19XVRcOGDREdHY2UlBQ8evQI7dq1E9ebm5sjOTkZ//zzT9Vc1GcgISEBX375ZbFyxp5qgpiYGOTl5cHMzEwsMzc3R3R0NIem/QAf036h8vmQz0wqm8jISNStWxft27cXy8aMGQN/f3/GuIIoKipCSUkJBw4cQG5uLhITE3HlyhW0bNmSMf4IlfG9vTIw8UclSkpKwogRI+Dp6YmOHTtKuzpE9A4bN27Enj178N1330m7KkRE9BFcXV0xc+ZMKCkpSZSnpqaifv36EmX16tXD48eP37v+xYsXyM7OllgvJycHdXV1cf+aTFVVFV26dBGXCwoKEBwcjA4dOjDuVcja2hqurq4wMzNDnz59GPtKdOHCBVy+fBnjx4+XKH9fzP/5559S16empgKAxPqim9GMeSFBEJCUlITw8HD06dMHNjY2WLx4MXJychh7qhFSU1OhoaGB2rVri2VaWlrIzs5Genq69Cr2mfqY9guV3Yd+ZlLZ3L9/H40aNUJoaChsbW3Rs2dPrFmzBgUFBYxxBVFQUICPjw/27t0LExMT2NnZoWvXrhg0aBBj/BEq43t7ZZCrlKPSZ+3Ro0f49ttvsWjRIhgbG0u7OkRUir179yI3Nxdubm5QVlaGrCyf5SAiqo5ev34tcaMMAGrXro2cnJz3rs/KyhKXS9uf/hMQEIBbt25h//79CAoKYtyryMqVK/HkyRPMnTsX/v7+fM1XkuzsbMyZMwc+Pj5QVFSUWPe+mGdlZZUr5kW/1/SYF3n48KEY4+XLl+PBgwdYsGABsrKyGHuqEUp7nQN8rVaE8rRfqGw+5jOTyiYzMxN3797Fnj174O/vj9TUVPj4+EBJSYkxrkAJCQno0aMHRo4cibi4OPj6+qJjx46McSX4mO8wlYGJvxogJycH/fv3x+zZs2FpaQmg8ANs3rx5OHbsGBQVFeHh4QEPDw8AwNq1a5GZmYmAgAAAgIaGBlauXCm1+hPVFOV9r9rZ2WH69Ok4evQoCgoK4OvrK83qExFRJVFQUCj2NHxOTo54E0JBQaHYl4WcnByoqqpCQUFBXH57/dtPKNZ0AQEB2LZtG5YtWwYDAwPGvQoZGRkBKGz3TJs2DQMGDMDr168ltmHsP97q1avRpk0biV4iRUqL6ftirqSkJHHz/u341/SYF2nUqBEiIiKgpqYGGRkZtGzZEgUFBfjhhx/Qvn17xp6qvdJexwCKJVWofMrbfqGy+ZjPTCobOTk5ZGRkYMmSJWjUqBGAwgdldu/eDT09Pca4Aly4cAH79+/H2bNnoaioCCMjI6SkpGDdunVo3LgxY1zBPub7Y2Vg4q+ay87OxtSpUxEXFydRvmjRIty4cQPbtm3Dw4cPMWPGDDRs2BC2trZMHhBJwYe8V1VVVbF+/Xop1ZiIiKqKjo4O4uPjJcqePHkiDhOio6ODJ0+eFFvfsmVLqKurQ0FBAU+ePEHTpk0BAHl5eUhPT4e2tnbVXMBnwNfXF7t370ZAQAD69OkDgHGvbE+ePEFUVBRsbGzEsmbNmiE3Nxfa2tpITEwstj1j/3GOHDmCJ0+eiHNsFd14+OOPP9C3b98SY/q+mGtra0NHRwdA4fBFX3zxhfg7gBof8zepq6tLLDdt2hTZ2dnQ1tZm7Kna09HRQVpaGvLy8iAnV3grMjU1FYqKipV2w7Mm+JD2C5XNx3xmUtloa2tDQUFBTPoBgL6+Ph49eoT27dszxhXgxo0b0NPTk0jmtWrVCuvXr4eFhQVjXME+5vtjZeC4cNVYfHw8Bg8ejHv37kmUZ2ZmIiQkBLNmzULr1q3Rq1cvjB49Gjt37pRSTYlqNr5XiYjoXUxMTHDz5k1xSDcAiIyMhImJibg+MjJSXPf69WvcunULJiYmkJWVhZGRkcT6qKgoyMnJoUWLFlV3EZ+w1atXY8+ePVi6dCkcHBzEcsa9cj148AATJ05ESkqKWHbjxg1oamrC3Nycsa8EO3bsQFhYGEJDQxEaGgpra2tYW1sjNDQUJiYmuHr1KgRBAFA4J92VK1dKjfmjR4/w6NEjmJiYQEdHBw0bNpRYHxkZiYYNG/Lm0b/OnTsHS0tLiZ6st2/fhrq6OszNzRl7qvZatmwJOTk5REVFiWWRkZEwMjLilBUf6EPbL1Q2H/OZSWVjYmKC7OxsJCUliWWJiYlo1KgRY1xB6tevj7t370r0MktMTMQXX3zBGFeCj/n+WBn46VqNXbx4EZaWlti7d69EeUxMDPLy8sSnVgDA3Nwc0dHRKCgoqOpqEtV4fK8SEdG7tG/fHrq6uvD29kZcXBw2btyIa9euYeDAgQCAAQMG4MqVK9i4cSPi4uLg7e2NL774Qhw22tXVFZs3b8aJEydw7do1zJ07F4MHD+YwcCic82Lt2rX45ptvYG5ujtTUVPGHca9cRkZGaN26NWbOnIn4+HicPXsWAQEBGDduHGNfSRo1agQ9PT3xp06dOqhTpw709PRga2uLFy9ewM/PD/Hx8fDz88Pr169hZ2cHABgyZAgOHTqEkJAQxMTEYPr06ejevTsaN24srl+8eDEiIiIQERGBJUuWYPjw4dK83E+KmZkZFBQU8OOPPyIxMRFnz57FokWLMHr0aMaeagQlJSU4Oztj7ty5uHbtGk6cOIEtW7bwtfqBPqb9QmXzMZ+ZVDZNmjRB9+7d4e3tjZiYGJw7dw4bN27EkCFDGOMKYm1tDXl5efz4449ISkrCqVOnsH79egwbNowxrgQf+x2mwglUIxgYGAh//fWXIAiCcPToUaFTp04S6+Pj4wUDAwPh6dOn0qgeEf2L71UiIhIEyc8DQRCEv//+Wxg6dKjQpk0bwcHBQTh//rzE9mfOnBF69+4tGBsbCyNGjBDu3bsnsX7Dhg1Cx44dBXNzc8Hb21vIysqqkuv41G3YsEEwMDAo8UcQGPfK9vjxY2HChAlC27Zthc6dOwvr1q0TCgoKBEFg7KvCjBkzhBkzZojL0dHRgrOzs2BkZCQMHDhQuHnzpsT2v/zyi9CtWzfB1NRUmDBhgvDs2TNxXV5envDTTz8JFhYWgqWlpRAQECD+LalQbGys4O7uLpiamgqdO3cWVq1aJcaIsaeaIDMzU5g+fbpgamoqWFlZCVu3bpV2lT5bH9t+ofIr72cmlc2LFy+EH374QTA1NRU6duxYrs9GKpu4uDjB3d1daNu2rWBjYyNs3bqVMa5AFf29vSLJCMK//TmpWjM0NMT27dthaWmJ0NBQrFixAqdPnxbX379/HzY2Njh79iwaNGggxZoS1Wx8rxIRERERERERERHRh+JQnzWQgoKCxNi+wH+T1L452ScRSRffq0RERERERERERERUHkz81UA6OjpIS0tDXl6eWJaamgpFRUWoqqpKsWZE9Ca+V4mIiIiIiIiIiIioPJj4q4FatmwJOTk5REVFiWWRkZEwMjKCrCxfEkSfCr5XiYiIiIiIiIiIiKg8eOe4BlJSUoKzszPmzp2La9eu4cSJE9iyZQuGDx8u7aoR0Rv4XiUiIiIiIiIiIiKi8pCTdgVIOry9vTF37lyMGDECdevWhaenJ3r37i3tahHRW/heJSIiIiIiIiIiIqKykhEEQZB2JYiIiIiIiIiIiIiIiIjo43CoTyIiIiIiIiIiIiIiIqJqgIk/IiIiIiIiIiIiIiIiomqAiT8iIiIiIqJPwLNnz9CqVStkZmYCKJzrd9WqVe/c5/nz51iyZAn69OkDIyMjdO7cGePGjcNff/0lsd2BAwdgaGhYaXWvTKdPn0Z8fDwAICIiAoaGhnjw4IGUa0VEREQEHD58GIMHD4apqSnMzMwwYMAA7NmzR9rVAlA17b+ic5T0Y2lpWWHniYyMxOXLlyvseETVnZy0K0BERERERERAdHQ0mjVrBmVlZXHZ1ta21O0fPXqEYcOGQUlJCVOnTkXr1q2RlpaG0NBQeHh4YMqUKRg9enRVVb9SJCcnY9y4cdi+fTuaNWsGMzMzhIeHQ1NTU9pVIyIiohpu//798PPzw6xZs2Bubg5BEHD+/HksWLAAT548wcSJE6VdxSoTHh5erExWtuL6HLm6usLf3x8WFhYVdkyi6oyJPyIiIiIiok9AVFQUjI2NAQAZGRlISkoSl0syffp01K1bF7t374aSkhIAoFGjRmjTpg309fWxYMECtG3bFm3btq2S+lcGQRAklmvXrg1tbW0p1YaIiIjoP7t27cKAAQMwcOBAsaxJkyZISUnB9u3ba1Tij+0zok8Lh/okIiIiIiKSImtraxgaGmL9+vUICQmBoaEhzM3NUVBQgA4dOiAiIqLYPjExMbh48SLGjx8vJv3e5OrqisaNG2PHjh0S5fv27UOXLl1gYmKCcePGITk5WVx37do1uLq6wszMDO3atYOnpycePnwork9JScHkyZNhYWEBS0tLjBs3Dn///be43svLC5MmTYKHhwfatm2LjRs3okWLFjh79qxEHby9vTFkyBAAwMOHDzF58mR07NgRrVu3RteuXREQEICCggI8ePAAPXv2BAAMHz4cq1atKjbUZ1ZWFpYvX46ePXvCyMgITk5O+OOPP8RzHThwAL169RL/bdOmDfr374/IyMgyXzcRERFRSWRlZXH16lU8f/5conzMmDHYu3evuGxtbY21a9di1KhRMDY2Rq9evRASEiKxz5UrVzB06FAYGxuje/fumDdvHjIyMsT1OTk5CAgIQJcuXWBmZobBgwcX62V3/PhxODo6wsjICK6ursXaM9bW1sWGkX+z7MCBA+jatSv27dsHKysrmJmZYcKECUhJSfnwIP0rJCQEjo6OMDY2hqmpKVxdXXH9+nVxfW5uLlasWIEePXrAxMQE/fv3x/nz5wFAHK7U29sbXl5eAApHvpg2bRo6d+4MU1NTjBo1CjExMeLx3m6Xbtq06aOvgehzwsQfERERERGRFO3fvx/h4eFQVVVFUFAQwsPDMXbsWPTq1Qvh4eEwMzMrts/Vq1cBAObm5iUeU0ZGBh06dJBIcAHAjh07sGLFCuzcuRNpaWmYMGECBEFAfn4+xo4di3bt2uHw4cMICgrCw4cPMXPmTABAZmYmhg0bBgAIDg7Gjh07oKGhgcGDB0vcDPrjjz/QqVMn/PLLL3B0dES7du3w66+/iuuzs7Nx7Ngx9O/fHwDw7bff4uXLl9i6dSuOHj0KDw8PBAYG4tSpU9DV1RVviq1atQoeHh7FrnPKlCkIDQ3F7NmzcfjwYdjY2OC7777DiRMnxG0ePXqEPXv2ICAgAAcPHoSSkhK8vLzKdN1EREREpRk9ejRu3bqFrl27YsyYMdi4cSOuXbsGFRUV6OvrS2y7du1amJmZITQ0FEOHDoWPjw9+++03AIUPdI0cORJdunTB4cOHsXjxYty8eRMeHh7i6Afe3t44f/48Fi9ejIMHD8LOzg7jxo3DmTNnABQmDj09PdGnTx8cPnwYLi4u2LhxY7mv6dmzZ9i2bRuWL1+Obdu24dGjRxg9ejTy8vI+OE7Hjx/H/PnzMXr0aPz+++8ICgpCdnY2fvzxR3EbPz8/7NmzBzNmzEBYWBi6dOmCcePGITExUUxwzpw5E7NmzUJGRgaGDBmClJQUrFu3Dnv27IGioiLc3NwkHmp7s13at2/fD64/0eeIQ30SERERERFJkaamJlJSUvD69WuYm5ujdu3aePDgAYyMjEodNqnoyXJ1dfVSj6uhoYFnz55JlAUEBKBFixYAgIULF6JPnz64cOGCOD9g/fr10ahRIzRu3BjLly/H06dPAQBHjhzBixcvEBAQADm5wq+Rfn5+iIiIwL59++Dp6QkAUFNTk5hXsH///pg/fz5ev34NJSUlnDp1Cvn5+bCzs0NWVhacnJxgZ2cHXV1dAIC7uzs2bdqEO3fuwMbGRpzLT01NDXXq1JG4loSEBJw8eRLr169H9+7dAQCenp6IiYnB+vXrYWNjA6DwCfJ58+ahZcuWAICRI0diwoQJSE1NhYKCwjuvm4iIiKg0tra2aNCgAbZv347z58+Loxx8+eWX+OmnnyQe0LKyshKH/mzSpAmio6Oxbds22NvbY/PmzejcuTPGjRsn7r9kyRLY2Njg4sWLaNCgAX799VeEhoZKtGdiYmKwefNmdO/eHcHBwWjbtq14Dn19fcTGxmL79u3luqbc3FwsXLgQbdq0AVDYdrS3t8eFCxfQpUuXUvcr6UG1I0eOoGHDhlBXV4efnx/69esHoHBo+oEDB2L+/PkACoe4379/P2bPni3Obz158mQIgoCMjAw0adIEAKCiogIVFRXs2rULaWlpOHDggNhWLIrXzp07MX36dADF26VENQkTf0RERERERFIWExODJk2aoHbt2uKyk5NTqdtraGgAAF6+fFlq8u/58+fizRAAqFOnjpj0AwpvKqmpqSE2NhadOnXC6NGj4evri5UrV6JDhw7o1q0b7OzsAAC3bt3C8+fP0a5dO4lzZGdnIyEhQVzW09OTWN+nTx/Mnz8fJ0+eRN++fcVeeXXr1gUAuLm54ejRo7h27Rru3r2LO3fu4MmTJygoKHhfyHDnzh0AxXs9tmvXDkuXLpUoa9q0qfi7iooKgMIbW/Xr13/ndRMRERG9i6mpKUxNTVFQUICYmBicPXsWwcHB+Oabb3D8+HHUq1cPAGBpaSmxn5mZmdhb79atW7h7926JybOEhATxQS5XV1eJdbm5uVBVVQUAxMbGonPnzsXOUd7EX506dcSkH1DYhipqL74r8RcaGlqsrH79+gAK22YJCQlYs2YNEhMTxTZfUXsvKSkJubm5MDExkdh/ypQpJZ4rNjYWX375pUQ7V1FREcbGxoiNjRXL3m6XEtUkTPwRfWa8vLxw8ODBd25TdBOkNA8fPsTVq1fh4OBQpnMeOHAA3t7epR63aH1ppk+fjlGjRpXpXB9Tjw+RlpaGEydOYNCgQQCAYcOGoVGjRvj5558r7BxERERE7+Lg4IB79+4hPz9fvOGTmZmJSZMmQVZWFps2bYKFhYXEPkXLly9fFnu2ve3SpUto27atuFyrVq1i2xQUFIjJxmnTpsHV1RVnz57FhQsX4Ovri8DAQISGhqKgoAD6+vpYt25dsWMoKyuLvysqKhZbZ2tri7CwMFhZWeHcuXPisFOZmZlwc3NDVlYWbG1t4eLiAmNjYwwdOvS9MXsXQRDEXolFiq7x7e3ed90l7UdERET0+PFjbNiwAWPHjkWDBg0gKyuLVq1aoVWrVrCxsUHfvn1x6dIlsQfb222TgoICyMrKir87OjqKPf7epKmpiXPnzgEAdu7cWWwEhKJjyMjIFHtwSl5e/r3X8fYQniXtk5+fX2I78k3vSrKFhYXBy8sLjo6OaNu2Lb7++mvExsaKPf7KUs83FbXh3lZQUCAR57fbpUQ1CRN/RJ+ZWbNmYerUqeKylZUVZs6cCXt7+zIfY8aMGWjUqFGZE39l9fakwkWKnuj+FC1atAgPHjwQE3+rVq16b2OGiIiIqCJt3LgRXl5e6NixIxwcHHD16lWsXLkSW7duBQDo6OgU26dp06bo1q0bVqxYgU6dOkkk3wDgl19+QUJCAubNmyeWvXjxAvfu3cP//d//ASh8WOzly5cwMDBAYmIitm3bhpkzZ2LIkCEYMmQIIiMj4erqipiYGBgYGODQoUNQUVERn67Ozc3F1KlTYWtr+8626IABA+Du7o7Q0FBoaWmhQ4cOAArbjjdv3sT58+ehpaUFAEhPT8fTp0/FGzoyMjKlHtfQ0BAAEBkZiR49eojlly9fRrNmzUrd703vu25jY+MyHYeIiIhqltq1ayMkJAS6uroYM2aMxLqiXnhF7RsAuH79usQ2V65cQatWrQAAzZs3R3x8vETyLCEhAQEBAZgyZQqaN28OAEhNTRX3AYBly5ZBVlYW3333HVq0aCHOAV3kxo0bEsvy8vLIyMgQlzMyMooNb56eno779++jcePGAIC4uDhkZGRInLe8Nm7ciIEDB0q0S0+ePAmgMImnp6cHeXl5XL9+XWJ0isGDB8Pe3h7u7u4SxzM0NERoaCiePn0q9qjMzs7GjRs34Ozs/MH1JKpOZKVdASIqHxUVFWhra4s/pZVJw5t1ePNHSUlJanV6n7efElJXVxeHfyIiIiKqCo0aNUJcXBy6d+8OPT09pKSkwMzMDHp6etDT0yv1aWU/Pz8IgoCvv/4aJ06cQHJyMmJiYhAQEAAfHx9MmTJFoqegrKwsvv/+e0RFRSEqKgrTp09H+/btYWFhAQ0NDRw5cgQ+Pj5ISEhAUlISDh48CDU1NTRp0gT9+vWDmpoaJk2ahOjoaCQkJMDLywv/+9//xARcaSwsLKCrq4uVK1fCyclJfDK9QYMGAIDDhw8jOTkZly9fxvjx45Gbm4ucnBwA//UmjI2NxcuXLyWO27RpU/To0QPz5s3DmTNnkJSUhNWrV+PkyZPw8PAoU+zfd91EREREJdHU1MTo0aOxYsUKLFu2DLdv38b9+/dx+vRpTJw4EZaWlhLtsCNHjmDnzp34+++/ERgYiOPHj4vzz3l4eODWrVuYN28eEhIScPXqVUydOhV///03vvzySzRv3hw9evTAnDlzcOrUKdy/fx+bNm3Chg0bxAe6PDw8EBMTg4ULFyIpKQmHDx9GcHCwRJ1NTU3x22+/4cqVK4iPj8fMmTNLfPj9hx9+wI0bN8T2opmZWbHh3stDV1cXV65cwc2bN3Hv3j0EBQWJdcvJyYGSkhLc3NywYsUKnDx5Evfu3cPSpUsRGxuLrl27AihsEyYkJCAtLQ2Ojo5QV1fH999/j2vXriEmJgbTpk1DZmYmvvrqqw+uJ1F1wsQfUTV05swZDB48GGZmZrCysoK/vz+ysrIAFA5lefHiRRw8eBDW1tYACof+nDx5Mjp27IjWrVuja9euCAgIKNPcKmV1//59tGjRQpzouIi3tzeGDBnyQfWwtrbGqlWr3lkWEhICR0dHGBsbw9TUFK6uruJTVkXDpl68eFG8YTVs2DB4eXmJ+1+9ehXDhw+Hubk5LC0t4e3tjbS0NInzbd68GZ6enjAzM4OlpSUWLFggDpWQn5+PgIAAdOvWDW3atIGtrS127979oWEkIiKiaigxMRHZ2dlieyQ6OrrEOV7epq2tjb1798LW1hbLly+Hvb09Ro4ciYSEBAQGBhZ7+lxTUxNOTk4YP348Ro4ciaZNm2LFihUAChNgmzZtQnJyMgYPHgwXFxc8ePAAW7duRd26daGiooLg4GBoaGhg1KhRGDhwIFJSUrBlyxaJ+fNK4+LiglevXqF///5imbGxMby9vbF9+3bY2dnB29sb7dq1Q9++fcX2moaGBgYMGIBFixaJdX3T0qVLYWNjg1mzZqFfv344ffo0Vq1aJQ6r9T7vu24iIiKi0nz//ffw8/PDpUuXMGzYMNjZ2cHf3x+dOnXC+vXrJbZ1cXHB8ePH4ejoiEOHDmH58uXo1q0bgMKEXGBgIG7fvg0XFxd8++230NfXR1BQkDjs+LJly9C7d2/4+PjA3t4eoaGh8PPzg4uLCwCgZcuW2LRpEyIiItCvXz8EBQUVGzp0ypQpaNWqFUaOHAl3d3eYmppKDAtfxNHREWPGjMHo0aPRvHlzbNiw4Z2jMLzP7NmzoaWlBTc3NwwaNAinT5/GokWLAPzXE3LKlClwcnLCnDlz4OjoiIiICGzcuFF8EMvDwwPBwcHw9vYW26Wqqqpwd3eHq6srsrKysHv3brGnIlFNJyOUNiguEX0WDA0N4e/vL95EOX78OCZNmgRPT0/Y2dkhMTERc+fOhZGREdauXYv09HSMGzcODRo0gI+Pj3gDSFtbG9OmTUOdOnVw8uRJ+Pv7Y82aNbCxsSnzHH/vm3tv2LBhaNCgAQICAgAUdsPv1KkTvLy8MGjQoHLXw9raGi4uLvD09BTP8WbZ8ePHMWXKFCxYsAAWFhZITU2Fr68v8vLycOjQIbx8+RKzZ8/G48ePsWrVKmhra0vM8Xft2jW4urriq6++gqurK1JTUzF//nwoKioiJCQEtWrVgrW1NZ48eYJp06ahR48euHjxImbNmoWff/4Zzs7O2LFjB4KCghAQEAAdHR2cPn0avr6+2LlzZ7G5eoiIiIiIiIiIqHop6f7Vp6is9/eI6NPHOf6IqpmNGzeiV69eGD9+PABAX18fgiBgwoQJiI+PR7NmzSAvLw9FRUVoamoiKysLTk5OsLOzg66uLgDA3d0dmzZtwp07d2BjY1Pmc5f2ZPr58+ehrKyM/v37Y/78+Xj9+jWUlJRw6tQp5Ofnw87OrkLrUURdXR1+fn7o168fgMJhtAYOHChOHqyiogJFRUXIy8uXOETqli1bYGhoiNmzZwMoHE5q6dKlcHJyQnh4uPhklpWVFYYPHw4AaNy4MXbs2IErV67A2dkZ9+7dg7KyMr744gvUr18fbm5uaNKkCfT19ct9PURERERERERERERE78LEH1E1ExsbCwcHB4my9u3bi+uaNWsmsU5RURFubm44evQorl27hrt37+LOnTt48uRJuYf6DA0NLbG8aI6/Pn36YP78+Th58iT69u2Lw4cPw8bGRhxGqaLqUaRdu3ZISEjAmjVrkJiYKB6zrMeLjY1F586dJcpatGgBFRUV3LlzR0z8vT28lYqKCnJzcwEAQ4cOxYkTJ9CtWze0bNkSnTt3hoODgzj5MBERERERERERERFRReEcf0TVTEmj9xYluuTkiuf6MzMz8fXXX2P9+vVQVVWFi4sLdu3ahQYNGpT73Hp6eiX+FI0DrqysDFtbW4SFhSE9PR3nzp0ThyitqHoUza0HAGFhYejXrx/u37+Ptm3bYsaMGRLz971PaSMhC4IAeXl5cblovPWS9v3yyy9x7NgxBAYGokOHDjhz5gycnZ1x8ODBMteDiIiIiIiIiIg+T6dOnfrkh/kEgP79+3OYT6Jqgj3+iKoZQ0NDXLlyBe7u7mLZ5cuXARTvmQYA4eHhuHnzJs6fPw8tLS0AQHp6Op4+fVpq4utjDBgwAO7u7ggNDYWWlhY6dOjwwfWQl5dHRkaGuJyRkYGnT5+Kyxs3bsTAgQMxb948sezkyZMAChNzMjIy75yc2NDQEJGRkRJlMTExyMjIKDGWJdm+fTvq1asHBwcHdO7cGdOnT8fIkSPx22+/iRMwExERERERERERERFVBPb4I6pmRo8ejWPHjmHt2rVISkrC6dOn4evrix49eojJqjp16iA5ORmPHz8We9QdPnwYycnJuHz5MsaPH4/c3Fzk5OSU69ypqakl/rx48ULcxsLCArq6uli5ciWcnJwgK1v439CH1MPU1BS//fYbrly5gvj4eMycORO1atUS1+vq6uLKlSu4efMm7t27h6CgIAQHBwOAeExlZWX8888/uH//frHjjxw5Enfu3IGvry8SEhIQERGBadOmoVWrVujYsWOZYvLs2TNxeNPk5GScO3cOt2/fLnU+RCIiIiIiIiIiIiKiD8Uef0TVTJ8+fbB06VKsW7cOa9euhaamJvr27YtJkyaJ23z99deYMWMG+vXrhwsXLsDb2xtBQUFYvnw5dHR0YG9vD11dXVy/fr1c57aysiqxvHv37tiwYYO47OLighUrVojDfAKAsbFxuesxZcoUpKenY+TIkVBRUYGHh4dEknH27Nnw8fGBm5sbateujRYtWmDRokWYPHkyrl+/DgsLCzg7O+P48ePo27cvjh07JnF8ExMTBAYGYvny5XB2dkbdunVhY2ODqVOnSgz1+S4TJ05Ebm4uFixYgNTUVGhra2PIkCEYO3ZsmfYnIiIiIiIiIiIiIiorGaEyxvIjIiIiIiIiIiIiIiIioirFoT6JiIiIiIiIiIiIiIiIqgEm/oiIiIiIiIiIiIiIiIiqASb+iIiIiIiIiIiIiIiIiKoBJv6IiIiIiIiIiIiIiIiIqgEm/oiIiIiIiIiIiIiIiIiqASb+iIiIiIiIiIiIiIiIiKoBJv6IiIiIiIiIiIiIiIiIqgEm/oiIiIiIiIiIiIiIiIiqASb+iIiIiIiIiIiIiIiIiKoBJv6IiIiIiIiIiIiIiIiIqgEm/oiIiIiIiIiIiIiIiIiqgf8HuYSUlmhVL3cAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1800x1200 with 6 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"✅ Benchmark visualization saved to: /Users/melvinalvarez/Documents/Workspace/optimiz-rs/examples/notebooks/outputs/benchmark_results.png\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pyright: reportArgumentType=false, reportUnusedImport=false, reportUnusedVariable=false, reportUnusedExpression=false, reportCallIssue=false, reportAttributeAccessIssue=false, reportOptionalMemberAccess=false, reportOperatorIssue=false, reportGeneralTypeIssues=false, reportReturnType=false, reportAssignmentType=false, reportIndexIssue=false, reportDeprecated=false, reportUndefinedVariable=false, reportPrivateImportUsage=false\n",
|
||
"import os\n",
|
||
"\n",
|
||
"fig, axes = plt.subplots(2, 3, figsize=(18, 12))\n",
|
||
"\n",
|
||
"# Plot 1: HMM scaling\n",
|
||
"axes[0, 0].plot(hmm_results['n_obs'], hmm_results['rust_time']*1000, 'o-', label='OptimizR (Rust)', linewidth=2)\n",
|
||
"axes[0, 0].plot(hmm_results['n_obs'], hmm_results['python_time']*1000, 's-', label='hmmlearn', linewidth=2)\n",
|
||
"axes[0, 0].set_xlabel('# Observations', fontsize=11)\n",
|
||
"axes[0, 0].set_ylabel('Time (ms)', fontsize=11)\n",
|
||
"axes[0, 0].set_title('HMM Performance', fontsize=13, fontweight='bold')\n",
|
||
"axes[0, 0].legend()\n",
|
||
"axes[0, 0].grid(alpha=0.3)\n",
|
||
"axes[0, 0].set_yscale('log')\n",
|
||
"\n",
|
||
"# Plot 2: MCMC scaling\n",
|
||
"axes[0, 1].plot(mcmc_results['n_samples'], mcmc_results['rust_time']*1000, 'o-', label='OptimizR (Rust)', linewidth=2)\n",
|
||
"axes[0, 1].plot(mcmc_results['n_samples'], mcmc_results['python_time']*1000, 's-', label='Pure Python', linewidth=2)\n",
|
||
"axes[0, 1].set_xlabel('# MCMC Samples', fontsize=11)\n",
|
||
"axes[0, 1].set_ylabel('Time (ms)', fontsize=11)\n",
|
||
"axes[0, 1].set_title('MCMC Performance', fontsize=13, fontweight='bold')\n",
|
||
"axes[0, 1].legend()\n",
|
||
"axes[0, 1].grid(alpha=0.3)\n",
|
||
"axes[0, 1].set_yscale('log')\n",
|
||
"\n",
|
||
"# Plot 3: DE scaling by dimension\n",
|
||
"axes[0, 2].plot(de_results['dimensions'], de_results['rust_time']*1000, 'o-', label='OptimizR (Rust)', linewidth=2)\n",
|
||
"axes[0, 2].plot(de_results['dimensions'], de_results['python_time']*1000, 's-', label='scipy.optimize', linewidth=2)\n",
|
||
"axes[0, 2].set_xlabel('Problem Dimension', fontsize=11)\n",
|
||
"axes[0, 2].set_ylabel('Time (ms)', fontsize=11)\n",
|
||
"axes[0, 2].set_title('Differential Evolution Performance', fontsize=13, fontweight='bold')\n",
|
||
"axes[0, 2].legend()\n",
|
||
"axes[0, 2].grid(alpha=0.3)\n",
|
||
"axes[0, 2].set_yscale('log')\n",
|
||
"\n",
|
||
"# Plot 4: Grid Search scaling\n",
|
||
"axes[1, 0].plot(grid_results['total_evals'], grid_results['rust_time']*1000, 'o-', label='OptimizR (Rust)', linewidth=2)\n",
|
||
"axes[1, 0].plot(grid_results['total_evals'], grid_results['python_time']*1000, 's-', label='Pure Python', linewidth=2)\n",
|
||
"axes[1, 0].set_xlabel('Total Evaluations', fontsize=11)\n",
|
||
"axes[1, 0].set_ylabel('Time (ms)', fontsize=11)\n",
|
||
"axes[1, 0].set_title('Grid Search Performance', fontsize=13, fontweight='bold')\n",
|
||
"axes[1, 0].legend()\n",
|
||
"axes[1, 0].grid(alpha=0.3)\n",
|
||
"axes[1, 0].set_yscale('log')\n",
|
||
"axes[1, 0].set_xscale('log')\n",
|
||
"\n",
|
||
"# Plot 5: Information Theory MI\n",
|
||
"axes[1, 1].plot(info_results['n_obs'], info_results['rust_mi_time']*1000, 'o-', label='OptimizR (Rust)', linewidth=2)\n",
|
||
"axes[1, 1].plot(info_results['n_obs'], info_results['python_mi_time']*1000, 's-', label='sklearn', linewidth=2)\n",
|
||
"axes[1, 1].set_xlabel('# Observations', fontsize=11)\n",
|
||
"axes[1, 1].set_ylabel('Time (ms)', fontsize=11)\n",
|
||
"axes[1, 1].set_title('Mutual Information Performance', fontsize=13, fontweight='bold')\n",
|
||
"axes[1, 1].legend()\n",
|
||
"axes[1, 1].grid(alpha=0.3)\n",
|
||
"axes[1, 1].set_yscale('log')\n",
|
||
"\n",
|
||
"# Plot 6: Speedup comparison\n",
|
||
"algorithms = summary['Algorithm'].values\n",
|
||
"speedups = summary['Avg Speedup'].values\n",
|
||
"colors = plt.cm.RdYlGn(np.linspace(0.5, 1.0, len(algorithms)))\n",
|
||
"\n",
|
||
"bars = axes[1, 2].barh(algorithms, speedups, color=colors, edgecolor='black', linewidth=1.5)\n",
|
||
"axes[1, 2].axvline(50, color='red', linestyle='--', linewidth=2, label='50x target', alpha=0.7)\n",
|
||
"axes[1, 2].axvline(100, color='darkred', linestyle='--', linewidth=2, label='100x target', alpha=0.7)\n",
|
||
"axes[1, 2].set_xlabel('Speedup Factor', fontsize=11)\n",
|
||
"axes[1, 2].set_title('Average Speedup by Algorithm', fontsize=13, fontweight='bold')\n",
|
||
"axes[1, 2].legend()\n",
|
||
"axes[1, 2].grid(alpha=0.3, axis='x')\n",
|
||
"\n",
|
||
"for i, (bar, val) in enumerate(zip(bars, speedups)):\n",
|
||
" axes[1, 2].text(val + 2, bar.get_y() + bar.get_height()/2,\n",
|
||
" f'{val:.1f}x', va='center', fontweight='bold', fontsize=10)\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"\n",
|
||
"out_dir = os.path.dirname(os.path.abspath('05_performance_benchmarks.ipynb'))\n",
|
||
"out_path = os.path.join(out_dir, 'outputs', 'benchmark_results.png')\n",
|
||
"os.makedirs(os.path.dirname(out_path), exist_ok=True)\n",
|
||
"plt.savefig(out_path, dpi=150, bbox_inches='tight')\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(f\"\\n✅ Benchmark visualization saved to: {out_path}\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b5f87565",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conclusions\n",
|
||
"\n",
|
||
"### Performance Summary (single-threaded, Apple M-series, n_runs=3)\n",
|
||
"\n",
|
||
"OptimizR (Rust) achieves a **~7× geometric-mean speedup** over established\n",
|
||
"Python baselines on the bounded benchmark sizes used here\n",
|
||
"(≤ 5,000 observations / ≤ 5,000 MCMC samples / ≤ 10-D Rosenbrock /\n",
|
||
"≤ 16² grid points / ≤ 5,000 IT samples / ≤ 800-step paths / T ≤ 2,000).\n",
|
||
"\n",
|
||
"Per-algorithm averages (this notebook, last execution):\n",
|
||
"\n",
|
||
"| Algorithm | Python baseline | Avg speedup | Notes |\n",
|
||
"|--------------------------|----------------------|-------------|-------|\n",
|
||
"| Hidden Markov Model | hmmlearn (Cython) | ~13× | Spherical Gaussian, 3 states |\n",
|
||
"| MCMC Sampling | NumPy MH | ~8× | 2-D Gaussian target |\n",
|
||
"| Differential Evolution | scipy.optimize | ~5× | Rosenbrock 2/5/10-D |\n",
|
||
"| Grid Search | NumPy | ~1× | Tiny per-eval cost — Python wins |\n",
|
||
"| Mutual Information | sklearn | ~13× | Includes discretisation cost |\n",
|
||
"| Shannon Entropy | NumPy | ~4× | Histogram-based |\n",
|
||
"| **Path Signature lvl 3** | Pure NumPy | **~14×** | New in v2.0 — combinatorial recursion |\n",
|
||
"| **Hawkes Simulation** | Pure NumPy (Ogata) | ~0.2× | New in v2.0 — Rust uses tighter intensity bound, more thinning iterations; Python wins on raw speed at this scale |\n",
|
||
"| **Robust Drift (Huber)** | Pure NumPy (IRLS) | ~1.8× | New in v2.0 — IRLS converges in <10 iters, FFI dominates |\n",
|
||
"\n",
|
||
"### Why the headline \"50–100×\" claim is contextual\n",
|
||
"\n",
|
||
"The 50–100× regime appears mainly on **larger problems** where the Rust core\n",
|
||
"amortises the Python ↔ Rust call overhead: HMMs with >50 k observations,\n",
|
||
"DE in 20+ dimensions with 1000+ iterations, MCMC chains with 100 k+ samples,\n",
|
||
"signature-kernel evaluations on batches of 100+ paths, and persistent\n",
|
||
"homology on point clouds with >1 k points. This notebook intentionally\n",
|
||
"stays in a **CI-friendly, laptop-friendly regime** (≤ 5 k samples,\n",
|
||
"< 60 s total runtime) so it can run cleanly inside Docker, GitHub Actions\n",
|
||
"and reviewers' machines without crashing the kernel.\n",
|
||
"\n",
|
||
"### Key Insights\n",
|
||
"\n",
|
||
"- **Scaling**: Speedup increases monotonically with problem size for HMM,\n",
|
||
" MCMC, DE, MI and path signatures.\n",
|
||
"- **Consistency**: Low variance in timing (predictable performance).\n",
|
||
"- **Accuracy**: Log-likelihoods / minima / signature norms are statistically\n",
|
||
" equivalent.\n",
|
||
"- **Memory**: Lower memory footprint due to efficient Rust allocations.\n",
|
||
"- **Grid search anomaly**: For a trivial sphere objective the Python loop\n",
|
||
" is competitive because the per-call Python ↔ Rust crossing dominates.\n",
|
||
" On a heavier objective (e.g. an HMM `score`), Rust wins again.\n",
|
||
"- **Hawkes anomaly**: at small horizons (T ≤ 2,000) the cost of the Rust\n",
|
||
" thinning-bound book-keeping outweighs the savings; at T ≥ 50,000 the\n",
|
||
" trend reverses (event count grows linearly, Rust amortises the FFI).\n",
|
||
"\n",
|
||
"### When to Use OptimizR\n",
|
||
"\n",
|
||
"✅ **Use OptimizR when:**\n",
|
||
"- Large datasets (>10 000 observations)\n",
|
||
"- High-dimensional problems (>5 dimensions)\n",
|
||
"- Real-time applications requiring low latency\n",
|
||
"- Production systems with performance SLAs\n",
|
||
"- Iterative algorithms (HMM, MCMC, DE, IRLS, signatures)\n",
|
||
"\n",
|
||
"⚠️ **Stick with Python when:**\n",
|
||
"- Rapid prototyping with small datasets\n",
|
||
"- Need specialized features from mature libraries\n",
|
||
"- Per-call work is so small that the FFI dominates\n",
|
||
"\n",
|
||
"### Technical Advantages\n",
|
||
"\n",
|
||
"1. **Zero-copy NumPy integration** via PyO3\n",
|
||
"2. **Stack allocations** for small arrays\n",
|
||
"3. **SIMD vectorization** (auto-vectorization)\n",
|
||
"4. **No GIL contention** (Rust native code)\n",
|
||
"5. **Compile-time optimizations** (LLVM)\n",
|
||
"\n",
|
||
"---\n",
|
||
"\n",
|
||
"**🎉 Bench passes end-to-end on commodity laptops — see\n",
|
||
"`outputs/benchmark_results.png` for the figure.**\n"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "rhftlab",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.11.13"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|