{
"cells": [
{
"cell_type": "markdown",
"id": "93767ee8",
"metadata": {},
"source": [
"# Tutorial 2: Ranking LOMs and Predicting Loaded Shifts\n",
"\n",
"Tutorial 1 fit each lumped oscillator model (LOM) to a single, strongly and\n",
"asymmetrically coupled device. Here, we'll see how to construct LOMs for a variety of parameters and test their accuracy under loading.\n",
"\n",
"\n",
"In this tutorial we will see how to:\n",
"\n",
"1. **Rank the accuracy of LOMs.** We rank all three LOMs (**Foster**,\n",
" **Analytical**, and **Optimized**) against the CPW circuit model over a grid of coupling capacitances. \n",
"2. **Predict a frequency shift from capacitive loads.** We attach capacitive loads to a\n",
" fitted device and check that its `(L, C)` reproduce the shifted CPW\n",
" frequency — not just the bare resonance.\n",
"\n",
"\n",
"This helps you see whether the LOM that you have chosen is capable of standing in for a resonator inside a larger network with arbitrary loads.\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "ba808a3b",
"metadata": {},
"source": [
"## Setup\n",
"\n",
"For the setup we will first construct the same $7000$ um CPW as in Tutorial 1:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a8abd7fd",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:23:10.404862Z",
"iopub.status.busy": "2026-07-20T14:23:10.404761Z",
"iopub.status.idle": "2026-07-20T14:23:11.190018Z",
"shell.execute_reply": "2026-07-20T14:23:11.189628Z"
}
},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import skrf as rf\n",
"from scipy.signal import find_peaks\n",
"\n",
"import simpleLOMs as sl\n",
"\n",
"sl.apply_style() # one shared simpleLOMs figure style\n",
"\n",
"\n",
"cpw = sl.CPWParams(ep_r=11.45) # substrate\n",
"coarse = rf.Frequency(4e9, 12e9, 8_001, unit=\"Hz\") # fit grid\n",
"Ctog = 1e-14\n",
"Z0 = 50.0\n",
"d = 7.0e-3 # 7 mm lambda/2, f0 ~ 7.5-8 GHz\n",
"MODELS = (\"optimized\", \"foster\", \"analytical\") # best first\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "ab54e0e2",
"metadata": {},
"source": [
"We will test the performance of all three available lumped element models in this tutorial."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "12fb430b",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:23:11.191316Z",
"iopub.status.busy": "2026-07-20T14:23:11.191223Z",
"iopub.status.idle": "2026-07-20T14:23:11.192777Z",
"shell.execute_reply": "2026-07-20T14:23:11.192549Z"
}
},
"outputs": [],
"source": [
"MODELS = (\"optimized\", \"foster\", \"analytical\") # best first"
]
},
{
"cell_type": "markdown",
"id": "7ef5bd6d",
"metadata": {},
"source": [
"In order to use the Analytical expression, we need $f_{bare}$ and the line impedance, which we'll compute as part of the setup.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "75ed49ce",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:23:11.193862Z",
"iopub.status.busy": "2026-07-20T14:23:11.193791Z",
"iopub.status.idle": "2026-07-20T14:23:11.246315Z",
"shell.execute_reply": "2026-07-20T14:23:11.246048Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPWParams(w=1.17e-05, s=5.1e-06, t=0.0, h=0.0005, rho=1e-19, ep_r=11.45, has_metal_backside=False, tand=0.0)\n",
"bare-line f_r = 8.5830 GHz, line impedance = 46.43 ohm\n"
]
}
],
"source": [
"f_bare = sl.bare_cpw_resonance_hz(d, cpw_params=cpw) # unloaded lambda/2 resonance\n",
"z_line = sl.cpw_line_impedance(cpw, f_hz=f_bare) # line impedance \n",
"print(cpw)\n",
"print(f\"bare-line f_r = {f_bare/1e9:.4f} GHz, line impedance = {z_line:.2f} ohm\")"
]
},
{
"cell_type": "markdown",
"id": "3455fd9e",
"metadata": {},
"source": [
"## 1. Ranking the LOMs across the coupling plane\n",
"\n",
"Tutorial 1 ranked the models at a *single* strongly-coupled device\n",
"($C_{c1}=30$, $C_{c2}=70$ fF). Here we rank them across the whole plane: a grid\n",
"of coupling capacitances $(C_{c1}, C_{c2})$ from 15 fF (weak) to 150 fF (very\n",
"strong), allowing them to differ — real devices couple asymmetrically to input\n",
"and output.\n",
"\n",
"At each grid point, we measure the CPW ground-truth $(f_0, \\kappa)$ with\n",
"`extract_f0_kappa`, fit each LOM with `fit_lom` — handing the Optimized fit a\n",
"window sized to the *measured* linewidth, since at 150 fF the resonance is the\n",
"better part of a GHz wide and `fit_lom`'s default internal window cannot\n",
"bracket it — then rebuild each model through **its own `get_network()`**,\n",
"circle-fit $f_0$, and record the signed percent error $\\delta f_0 / f_0$. The Analytical\n",
"model is anchored to the *bare-line* frequency and *line* impedance printed\n",
"above — the same anchoring Tutorial 1 used — so its errors here are genuinely\n",
"the closed form's, not an artifact of feeding it an already-loaded frequency.\n",
"\n",
"> Note: this is a deliberately small grid (9 Optimized fits) so the notebook\n",
"> executes in about three minutes. Feel free to increase `N` to map the plane in\n",
"> more detail.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "efcbf42c",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:23:11.247411Z",
"iopub.status.busy": "2026-07-20T14:23:11.247326Z",
"iopub.status.idle": "2026-07-20T14:25:35.549104Z",
"shell.execute_reply": "2026-07-20T14:25:35.548784Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 15.0 Cc2= 15.0 fF | Optimized: -0.000% Foster: +0.037% Analytical: +0.069%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 47.4 Cc2= 15.0 fF | Optimized: -0.001% Foster: +0.110% Analytical: +0.161%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1=150.0 Cc2= 15.0 fF | Optimized: +0.060% Foster: +0.335% Analytical: +0.432%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 15.0 Cc2= 47.4 fF | Optimized: -0.001% Foster: +0.110% Analytical: +0.161%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 47.4 Cc2= 47.4 fF | Optimized: -0.004% Foster: +0.232% Analytical: +0.299%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1=150.0 Cc2= 47.4 fF | Optimized: +0.045% Foster: +0.579% Analytical: +0.690%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 15.0 Cc2=150.0 fF | Optimized: +0.060% Foster: +0.335% Analytical: +0.432%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1= 47.4 Cc2=150.0 fF | Optimized: +0.045% Foster: +0.579% Analytical: +0.690%\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cc1=150.0 Cc2=150.0 fF | Optimized: -0.002% Foster: +1.462% Analytical: +1.614%\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Optimized
\n",
"
Foster
\n",
"
Analytical
\n",
"
\n",
" \n",
" \n",
"
\n",
"
min |df0| (%)
\n",
"
0.000042
\n",
"
0.036749
\n",
"
0.068749
\n",
"
\n",
"
\n",
"
median |df0| (%)
\n",
"
0.003654
\n",
"
0.335301
\n",
"
0.431841
\n",
"
\n",
"
\n",
"
max |df0| (%)
\n",
"
0.060479
\n",
"
1.461949
\n",
"
1.613534
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Optimized Foster Analytical\n",
"min |df0| (%) 0.000042 0.036749 0.068749\n",
"median |df0| (%) 0.003654 0.335301 0.431841\n",
"max |df0| (%) 0.060479 1.461949 1.613534"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"N = 3 # grid points per axis (N x N Optimized fits)\n",
"cc = np.geomspace(15e-15, 150e-15, N)\n",
"f0_err = {m: np.full((N, N), np.nan) for m in MODELS} # [row=Cc2, col=Cc1]\n",
"\n",
"for i, Cc2 in enumerate(cc):\n",
" for j, Cc1 in enumerate(cc):\n",
" f0c, kc = sl.extract_f0_kappa(cpw, d, Cc1=Cc1, Cc2=Cc2, Ctog=Ctog, Z0=Z0, n_fine=8001)\n",
" # evaluation window sized to the (broad, at strong coupling) linewidth\n",
" half = max(0.8e9, 5 * kc)\n",
" fr = rf.Frequency(max(1e9, f0c - half), f0c + half, 8_001, unit=\"Hz\")\n",
" for m in MODELS:\n",
" fit_freq = fr if m == \"optimized\" else coarse\n",
" mod = sl.fit_lom(d, model=m, Cc1=Cc1, Cc2=Cc2, Ctog=Ctog, Z0=Z0,\n",
" cpw_params=cpw, freq=fit_freq, return_model=True)\n",
" net = mod.get_network(fr, Cc1=Cc1, Cc2=Cc2, Ctog1=Ctog, Ctog2=Ctog, Z0=Z0)\n",
" # Probe the stronger port — same convention as extract_f0_kappa\n",
" # under asymmetric coupling.\n",
" port = 0 if Cc1 >= Cc2 else 1\n",
" f0m, km = sl.circle_fit_f0_kappa(net, port, port)\n",
" f0_err[m][i, j] = 100.0 * (f0m - f0c) / f0c\n",
" print(f\"Cc1={Cc1*1e15:5.1f} Cc2={Cc2*1e15:5.1f} fF | \"\n",
" + \" \".join(f\"{sl.MODEL_LABELS[m]}: {f0_err[m][i, j]:+.3f}%\" for m in MODELS),\n",
" flush=True)\n",
"\n",
"# summary: |delta f0| statistics per model\n",
"summary = pd.DataFrame(\n",
" {sl.MODEL_LABELS[m]: [np.abs(f0_err[m]).min(), np.median(np.abs(f0_err[m])), np.abs(f0_err[m]).max()]\n",
" for m in MODELS},\n",
" index=[\"min |df0| (%)\", \"median |df0| (%)\", \"max |df0| (%)\"],\n",
")\n",
"summary\n"
]
},
{
"cell_type": "markdown",
"id": "45ea008e",
"metadata": {},
"source": [
"We can now plot the error maps (on a log color scale, since the models differ by\n",
"orders of magnitude). The star marks Tutorial 1's device.\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bd4ab61e",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:25:35.550513Z",
"iopub.status.busy": "2026-07-20T14:25:35.550435Z",
"iopub.status.idle": "2026-07-20T14:25:36.073955Z",
"shell.execute_reply": "2026-07-20T14:25:36.073677Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAACGcAAANxCAYAAABD5UanAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAC4jAAAuIwF4pT92AADs7klEQVR4nOzdB5hcZdU48LPJpvcCARIggSQk9N4h1CCCgCCgghAEFBFFDaKgHwr+pagg2AWUIvKBWEBApJcA0pEaSgJJSGgJJKRt2u78n/fm22V7djc7O7Ob34/nfebOnTv3np0NyXvvnHtOSS6XywUAAAAAAAAAAHnRKT+7BQAAAAAAAAAgkZwBAAAAAAAAAJBHkjMAAAAAAAAAAPJIcgYAAAAAAAAAQB5JzgAAAAAAAAAAyCPJGQAAAAAAAAAAeSQ5AwAAAAAAAAAgjyRnAAAAAAAAAADkkeQMAAAAAAAAAIA8kpwBAAAAAAAAAJBHkjMAAAAAAAAAAPJIcgYAAAAAAAAAQB5JzgAAAAAAAAAAyCPJGQAAAAAAAAAAeSQ5AwAAAAAAAAAgjyRnAAAAAAAAAADkkeQMAAAAAAAAAIA8kpwBAAAAAAAAAJBHkjMAAAAAAAAAAPJIcgYAAAAAAAAAQB5JzgAAAAAAAAAAyCPJGQAAAAAAAAAAeSQ5AwAAAAAAAAAgjyRnAAAAAAAAAADkkeQMAAAAAAAAAIA8kpwBAAAAAAAAAJBHpfncOQAAAAAAAAAdx5IlS2Lq1KnRnmy88cbRvXv3QofBGk5yBgAAAAAAAABNkhIzNt9882hPXnzxxdhss80KHQZrOG1NAAAAAAAAAADySHIGAAAAAAAAAEAeaWsCAAAAAAAAQIv8/ap1Y+SILlFMpry5PA4/4Z1ChwE1SM4AAAAAAAAAoEU2GlEaYzcpruSMisgVOgSoQ1sTAAAAAAAAAIA8kpwBAAAAAAAAAJBHkjMAAAAAAAAAAPKoNJ87BwAAAAAAAKDjqshVRHmuIootJig2KmcAAAAAAAAAAOSR5AwAAAAAAAAAgDzS1gQAAAAAAACAFqmIXDaKSbHFA4nKGQAAAAAAAAAAeSQ5AwAAAAAAAAAgj7Q1AQAAAAAAAKBFKv7vv2JSbPFAonIGAAAAAAAAAEAeSc4AAAAAAAAAAMgjbU0AAAAAAAAAaJGKXER5LhfFFhMUG5UzAAAAAAAAAADySHIGAAAAAAAAAEAeaWsCAAAAAAAAQItURC4bxaTY4oFE5QwAAAAAAAAAgDySnAEAAAAAAAAAkEeSMwAAAAAAAAAA8qg0nzsHAAAAAAAAoOOqiFyURy6KLSYoNipnAAAAAAAAAEA78OSTT8YnP/nJ6N+/f/Tq1St23nnnuOmmmwodFk0gOQMAAAAAAAAAitz9998fu+22Wzz88MNx1FFHxSmnnBLvvvtutnzJJZcUOjxWQVsTAAAAAAAAAFrcQqTY2ogUWzytYcWKFXHyySdHp06d4qGHHoqtt946W3/OOefEjjvuGGeddVYcccQRseGGGxY6VBqgcgYAAAAAAAAAFLH77rsvpk6dGp///OerEjOSfv36xdlnnx3Lli2La665pqAx0jjJGQAAAAAAAADQgPfffz9uu+22rErFgQceGIMHD46SkpJsTJgwoVn7mj59ekycODHGjBkTvXr1ioEDB8YOO+wQP/3pT2Px4sUNvu+BBx7IHsePH1/ntQMOOCB7fPDBB5v9s9F2tDUBAAAAAAAAoEUqcrkoz+WKLqbWNGTIkFbZz6233hrHHntszJ8/v2pdSsh46qmnsnHllVfG7bffHiNHjqzz3tdffz17HDVqVJ3X1llnnejdu3fVNhQnlTMAAAAAAAAAoAk22GCDeqtXrMqzzz4bRx99dJaYkRIpfvzjH8ejjz4a9957b5x88snZNq+99locdNBBsWDBgjrv/+ijj6ramNSnb9++VdtQnFTOAAAAAAAAAIAGpHYmqfVIGqmKxrRp02LEiBHN2sfpp58eZWVlUVpaGnfddVfssssuVa/ts88+WUWMM888M0vQuPjii+OHP/xhHn4SCknlDAAAAAAAAABapKJIR2s699xz4+CDD25xe5MnnngiJk2alC2feOKJNRIzKk2cODHGjh2bLV922WWxfPnyGq9XVsxoqDpGqsjRUFUNioPkDAAAAAAAAADIk5tvvrlq+YQTTqh3m06dOsVxxx2XLc+bNy/uv//+Gq+nyhrJ66+/Xue97777bixcuLBqG4qT5AwAAAAAAAAAyJOHH344e+zVq1dst912DW43bty4quVHHnmk3tdSS5Ta7rzzzjrvp/iUFjoAAAAAAAAAANqn8shlI1/mzCmPDz5oXqOSadNWRDGZPHly9jhy5MgoLW34K/oxY8bUeU+lfffdNzbaaKO4/vrr4+tf/3psvfXWVW1Ozj///OjatWtV5Q2Kk+QMAAAAAAAAAIrStdcsjkt/vijaqyVLlsScOXOy5WHDhjW67YABA7LqGosWLYq33nqrxmspqePKK6+MAw44IPbcc8/47Gc/G3369Im//e1vMX369PjZz34Ww4cPz+vPwurR1gQAAAAAAAAA8mDBggVVy717917l9ik5I1m4cGGd1/bee++sRcpuu+0WN954Y/z2t7+NIUOGZMsTJ05s5chpbSpnAAAAAAAAAECeKmdUSq1HVqVbt27ZY1lZWb2v77jjjnHHHXe0YoS0FckZAAAAAAAAALRIRS6iPJe//R9zXM848KDuzXrPtGkr4ssnfRTFoHv3j2NftmzZKrdfunRp9tijR4+8xkXbk5wBAAAAAAAAQFEaPLhzNtqrPn36VC3X16qktkWLFjW5BQrtS6dCBwAAAAAAAAAAHVGqnDFo0KBseebMmY1uO3fu3KrkjPXXX79N4qPtSM4AAAAAAAAAoEUqinQUk0033TR7nDJlSqxYsaLB7V555ZWq5bFjx7ZJbLQdyRkAAAAAAAAAkCe777579piqYjz99NMNbvfggw9WLe+2225tEhttR3IGAAAAAAAAAOTJYYcdVrV81VVX1btNRUVFXHvttdly//79Y++9926z+GgbpW10HAAAAAAAAAA6mIooifIoKcix//6XxfH3m8rqrC9bXFyNTXbcccfYY489YtKkSfGHP/whjj/++Nhll11qbHPxxRfH5MmTs+XTTz89unTpUqBoyRfJGQAAAAAAAAC0OzNnlscTjy3L+3EefvjhmDJlStXzOXPmVC2n9VdffXWN7SdMmFBnH5dddlnWqqSsrCzGjx8fZ599dlYdIz2/4YYb4vLLL8+2Gz16dEycODGvPw+FUZLL5XIFOjYAAAAAAAAA7chLL70Um2++edXz2+8ZHKM26VJ0lTNeeH5F1fMXX3wxNttssxYfJyVbXHPNNU3evqGv4G+99dY49thjY/78+fW+nhIzbr/99hg5cmSLY6V4qZwBAAAAAAAAQItU5FaOQjjsyJ7ZqO31V5fHp/b/uLpFsfjUpz4Vzz//fFZFIyVhzJw5M7p27ZolYxx55JFx2mmnRc+edX8eOgaVMwAAAAAAAABoUeWMW+8uXOWMhtROzljdyhnQGjq1yl4AAAAAAAAAAKiX5AwAAAAAAAAAgDwqzefOAQAAAAAAAOi4KqIkyqMkii0mKDYqZwAAAAAAAAAA5JHKGQAAAAAAAAC0O/+4aXHcctPiOuvLFucKEg80RnIGAAAAAAAAAC1SXsC2JjPfKo8nH1tWkGNDc0nOAAAAAAAAAKDdGbp+59h+5671Vs546fnlBYkJGiI5AwAAAAAAAIB259Aje2WjtimvLo/D93+/IDFBQyRnAAAAAAAAANAiFVESFbnCtDVpLCYoNp0KHQAAAAAAAAAAQEcmOQMAAAAAAAAAII+0NQEAAAAAAACgxS1EyousjYi2JhQjlTMAAAAAAAAAAPJIcgYAAAAAAAAAQB5pawIAAAAAAABAi6SWJuUFqglw200L47a/LqyzvmxxriDxQGMkZwAAAAAAAADQ7rw9c0U889jSQocBTSI5AwAAAAAAAIB2Z71hpbHtzt3qrZwx+fllBYkJGiI5AwAAAAAAAIB25+Aje2ejtqmvLYvP7f9OQWKChkjOAAAAAAAAAKBFcrmSqMiVRLHFBMWmU6EDAAAAAAAAAADoyCRnAAAAAAAAAADkkbYmAAAAAAAAALRIeZRko5gUWzyQqJwBAAAAAAAAAJBHkjMAAAAAAAAAAPJIWxMAAAAAAAAAWqQi1ynKc52KLiYoNv5UAgAAAAAAAADkkcoZAAAAAAAAALQ7d/x1ftzx1wV11i8pyxUkHmiM5AwAAAAAAAAAWqQiSqKiQA0b3p5ZHv99fElBjg3NJTkDAAAAAAAAgHZnnWFdYqudetRZv6SsIl59fmlBYoKGSM4AAAAAAAAAoN058DN9s1Hbm68tjRMOmFGQmKAhkjMAAAAAAAAAaHFbk/IoiWKLCYpNYZr/AAAAAAAAAACsISRnAAAAAAAAAADkkeQMAAAAAAAAAIA8Ks3nzgEAAAAAAADouMpznbJRTIotHkj8qQQAAAAAAAAAyCPJGQAAAAAAAAAAeaStCQAAAAAAAAAtUhEl2SgmxRYPJCpnAAAAAAAAAADkkeQMAAAAAAAAAIA80tYEAAAAAAAAgBa3ECkvUE2Au/86N+7927w665csrihIPNAYyRkAAAAAAAAAtDvvz1weLzy+uNBhQJNIzgAAAAAAAACg3Vl7WJfYYqee9VbOeP2FJQWJCRoiOQMAAAAAAACAFqnIdYryXGHamuxzxKBs1DbjtSVx2oGvFyQmaEhh/i8BAAAAAAAAAFhDSM4AAAAAAAAAAMgjyRkAVLn66qujpKQkGxMmTIhi9cMf/rAqzrTckT3wwANVP+tee+1V6HAAAAAA6CDXrtpLnB01fuhIKqJTUQ4oNv5UArTA9OnT4xe/+EUceOCBMXr06OjXr1/06NEjhg8fHrvttlucc8458eSTTxY6TAAA8iglTlZeDG7OSMmXAABrqmOPPbbG3Oiiiy4qdEgAAG1CcgZAM8yZMydOO+20GDlyZJx++unx73//O15//fWYP39+LFmyJEvaePTRR+NHP/pR7LjjjvGJT3wiXnzxxYLE2l6qYAAAUHyqf2ECANBaFixYEP/4xz9qrLvmmmsKFk9HoooEABS/0kIHANBevPzyy1myxVtvvVW1rrS0NHbeeefYcMMNo1u3bvH2229nyRkpWSO58847szsj//znP8cRRxxRwOgBAMinHXbYIUvObYqhQ4fmPR4AgGJ00003xeLFi2usmzx5claBNs2nAAA6MskZAE1MzNh9991j7ty52fMuXbrEGWecERMnToxBgwbV2Hbp0qVx4403Zq/Pnj07e37UUUfFtddeG8ccc0wUs1Rhoz1U2UjZ/+4AAACKySc/+UnzEwCAVaheJSO1CC4rK6taLzmj7bnGBrSW8lwaJUUXExQbbU0AViG1Kzn66KOrEjN69uwZd999d5x//vl1EjOSVEHjuOOOi+eeey5GjRqVrauoqIgvf/nL8dprr7V5/AAAAABQaG+++WZMmjQpW06tN372s59Vvfa///u/sWzZsgJGBwCQf5IzAFYhJWG8+OKLVc//9Kc/xbhx41b5vnXXXTdL4ujTp0/2fNGiRXHyySfnNVYAAAAAKEapqmwut/I25nRt7Utf+lKstdZa2fMPP/wwbrvttgJHCACQX5IzABqRemD++te/rnp+2GGHxeGHH97k92+44YZx7rnnVj1/6KGH4oknnqiz3V577ZXdMZDGAw88kK1766234vvf/35stdVWMXDgwOjVq1eMGTMmvvnNb8aUKVMaPGZqS5L2c8IJJ1StS6UhK/dffaTjVnf11VdXvdZQe5MUX33vTyfQ6bMZPnx4dO/ePasqcuCBB8a//vWvOvtIlURuueWWOPjgg2PEiBHZ9imZ5cgjj4zHHntslZ9rKrdYGUN9pRcrP4PmjlW1dPnggw/i4osvjv333z/WX3/9LO7+/fvHpptuGl/96lfjqaeeiuZ4/fXX4xvf+Eb2e02/3/R73nrrreOcc86JmTNnNmtfAED7l+ZBp512Wmy22WYxYMCAbK4xbNiw+MQnPhG/+tWvsmTfpkhfetx8883x+c9/PjbZZJPo27dvdO7cOZtvpLnaPvvsE9/5znfi/vvvz+Zl9c3zqmto7jRt2rQGY0hz2R/96Eexxx57xHrrrZdVl0tznW222SZr/9eUinLV53RpnprMmzcvLrvssthzzz1j6NChUVpamr2e1gMAxSvNT1JyRqUvfOEL2b/jn/3sZ+ttedKQNP+onB+keU2ldE3mpJNOitGjR2dVb9Ncascdd8xuumrqHGr69Onx29/+Nj73uc/F5ptvHv369ctaG6drXFtssUV85StfadJ1q1V59tlnq36GFGeq2tsUCxYsiN69e1e99/nnn69xXbH6Nci03JRrX6u6xlafdNzvfve7sdNOO8U666wTXbt2zeJK885UffgPf/hDfPTRRwX/nIG2VRGdorzIRooJik1poQMAKGY33XRTlrlf6Vvf+laz95GqZaQv2xcuXJg9Tycf6eSwMf/85z+z1ii1T2ReffXVbPz+97+PSy+9NLvDoBgSWE488cS44YYbaqxfunRp/Pvf/87GD37wg6oTvNmzZ2dJLo8++miN7d99993461//Gn/729/iF7/4RfbFRDFJSTrf+9736vxO0s+Z1k2ePDn73aakmPSYTkwb85vf/CYmTpxY4wQ8fZapfU5qifPLX/4yu2hRWXkFAOi40hcGaT5144031nlt1qxZ2bjzzjuzLxfSxe6UANuQ9957Lz796U/Hf/7znzqvpblGuhieRkrM+MlPfpJVettvv/1a7WdJyR5p3vfTn/60zhcNqVR5muv897//zRIszjzzzPh//+//1UkGacgjjzySXcRPiR8AQPvy8MMPxxtvvJEtpwTUz3zmM1VJGukaSHLHHXdk140qq2k0NekjzT3SnKJ60mlZWVk8+eST2bjyyivjnnvuiY022qjB/Xz729/ObsiprOxRXbo2mEaqrPu73/0uSyhJc7KUBNISKVl1u+22i6effjpLME3Xwo455phVvi/NFSsTTXbYYYfYcsstoy2lWE855ZT4y1/+UudzWr58eZZ8m0Z6PV1DS9f6Cvk5A0AxkpwB0Ih00bpSqpSQ7vxrrpQ5fuihh8af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ljRX23rrraueP/roo6t8T7rTcFVzwFUlip5++uk1Eodfeumlqov+LbXuuuvG+uuv36yfBQDo2G677basCmlSWlqaVexqythhhx1qXBN57bXX8h7r22+/XbW8xRZbNLptqhD2/PPPt3oMqXpGpVQ9o/pjcsIJJ2TVYBuTj2uBKXGkUvpdpJvX2vPnDACFJjkDYBUlmk899dSq5+lC9j/+8Y8mvz9leJ9zzjlVz/fcc88aX/jXJ5X0S3ccNubf//53vP/++9ly9+7dY5dddqmzTVpfKfWsXNOkhJhUISOV80722GOP+P3vf9+sfRx88MFVy7/97W+remK21K677lpVjSPFddddd63yRDT9eQAAOqZ99tmnxp2hq5pr3HzzzfHBBx80OgdsitTGZODAgVXPK+dLqzOXrD5v+s1vftOiuACAjqN61YsDDzwwuxmpKeOJJ56IzTffvOq91157bd5jrZ70sKoKYFdeeWVerrMde+yx0aNHj2w5tXNJSRB///vfq+L74he/uMp95ONaYKrYMXbs2Krnv/71r9v15wzkTy46RUWRjRQTFBt/KgFW4eyzz45NN920xslSU9qbpLLR48ePr6qakRI9UhWNVUmJGemYjfUZr1794TOf+UxWFru2ynLVyaxZs2JNkipSpN/Tc889lz0fMWJEdkK7qnKJtaUy36m9SfLMM8/Eueee2+T3zpkzJ6twUl3a1xFHHFH1PP0eUznxhnznO99Z7X6eAEDxSndIVl6kTnONyy+/vMFt582bV2MO+LnPfa7OHDDNP5oi7av6HGPttdde7blk6o3euXPnbDklM1999dXRVK3RPg4AKB6zZ8+OO+64o+p5ukbTHNW3/9Of/rTaN8usykYbbVS13NhNMq+//nqzrg01R7pmlNrRJWmelq73LVmyJHueri9Wr1LWkHxdC/zWt75VtXzxxRfHpEmT2u3nDACFJjkDYBV69uyZZaxXXvxOmd2px+P3vve9qjsXa/fUTFn9W221VVXpxXTRPVVtGD169CqPlxIIUhb6d7/73Wxf1aUTq4MOOihefvnl7HnKqP/BD35Q736q32Xw+OOPN7mPeUeQklsqy3X37ds3br311lX2ZK9P+p3//Oc/r3qeTgyPP/74Bj/LdLEgtT9J1VY22GCDehMvUiWVyuoZL7zwQvb7rH3CnNqwnHHGGdmfmeYmlAAA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mj326NEjr3HR9iRnAAAAAAAAAFCUug/okY32qk+fPlXLTWlVklqaNLUFCu1Lp0IHAAAAAAAAAAAdUaqcMWjQoGx55syZjW47d+7cquSM9ddfv03io+1IzgAAAAAAAACAPNl0002zxylTpsSKFSsa3O6VV16pWh47dmybxEbbkZwBAAAAAAAAQIvkoiQqimykmIrJ7rvvnj2mqhhPP/10g9s9+OCDVcu77bZbm8RG25GcAQAAAAAAAAB5cthhh1UtX3XVVfVuU1FREddee2223L9//9h7773bLD7aRmkbHQcAAAAAAAAAWs3021+J6Xe8Wmf9irLlUUx23HHH2GOPPWLSpEnxhz/8IY4//vjYZZddamxz8cUXx+TJk7Pl008/Pbp06VKgaMkXyRkAAAAAAAAAtEhFriQbhbDwnQUx59m3836chx9+OKZMmVL1fM6cOVXLaf3VV19dY/sJEybU2cdll12WtSopKyuL8ePHx9lnn51Vx0jPb7jhhrj88suz7UaPHh0TJ07M689DYUjOAAAAAAAAAKDd6blu3xi09Xp11pcvWR7zXpndase58sor45prrqn3tUceeSQbq0rO2GabbeLGG2+MY489NubPn58lZ9SWEjNuv/326NOnT6vFTvGQnAEAAAAAAABAu7PhJ8dko7b5b3wY9x13QxSbT33qU/H8889nVTRSEsbMmTOja9euMXLkyDjyyCPjtNNOi549exY6TPJEcgYAAAAAAAAALVLxf61Nii2m1pTaltRuXdJSG264YVxyySXZYM3SqdABAAAAAAAAAAB0ZJIzAAAAAAAAAADySFsTAAAAAAAAAFoklyspurYmKSYoNipnAAAAAAAAAADkkcoZAAAAAAAAALQ7b90xORu1lS9ZUZB4oDGSMwAAAAAAAABodxa/Mz8+/O/bhQ4DmkRyBgAAAAAAAAAtUpEryUYh9FinXwzcemid9eVly+OjV98vSEzQEMkZAAAAAAAAALQ7ww4cm43aFrz5QUyacH1BYoKGdGrwFQAAAAAAAAAAVpvKGQAAAAAAAAC0SEWUZKOYFFs8kKicAQAAAAAAAACQR5IzAAAAAAAAAADySFsTAAAAAAAAAFoklyuJilxJ0cUExUblDAAAAAAAAACAPFI5AwAAAAAAAIB2Z9YdL8fb/365zvryJcsLEg80RnIGAAAAAAAAAC1SUcC2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HXaIddZZJ1uXxvPPPx/77LNPfPDBB9EeSM4AaKZcRUXErGlVz1OW/5577ln1PC136dLl4zfMmrbyPQAA5E1FeS5mPLG4yXO0GU8syt4DAED+pPnW1MeXNHmO9sbjS8zRAID4/ve/Hx999FHWwuTyyy/Pki9efPHFePzxx2PWrFnx5JNPxl577ZVtm55fdNFF0R5IzgBorg/ei1j6cRnsXXfdNeuVWSktp3VVlpStfA8AAHkz+9UlseSj8ibP0ZbMK4/Zr7kzEwAgn955dVmUfVTR5Dna4nkV8e6ry9o8TgBao69JEQ7apVwuF7fddluUlJTEH//4xzjppJOyBM/qtttuu7jjjjtixIgR2fY333xztAftPjnjhRdeiJtuuiluv/32+PDDD1e5/dVXXx3nnXdem8QGrHktTRpubfJxpQ0AANq2pUklrU0AAIqnpUklrU0AoOP72c9+FuXlH99U05j0nf/ixSurox500EENbtetW7espUny1ltvRXvQbpMzZs6cGbvttltsvfXW8dnPfjYOOeSQWHfddeNrX/taLFy4sMH3/eEPf4hzzz23TWMFOo6UfVc9OaNTp05Vf/FXt/fee2cZfVVmvrnyvQAAtLo0z5peLdGiqXO0GY8tMkcDAMiTNM+qnmjR1Dlaeo85GgB0LGeeeWZsu+228fDDD69y2169elUtv/vuu41uW/l69fcUs3aZnFFWVpZl2D722GPZJC31munRo0csX748fvOb32S/2Ndff73QYQId0UcfRixaUPU0/X0zaNCgOpsNHjw4e63Kovkr3wsAQKubO31ZLHxvRbPnaAveWxHzZiibDQCQD3OmrYj575U3e4720bvl8cH0j+d2ABS/XK6kKAfFo0uXLllHjHHjxsWECRNi9uzZDW7bvXv32HTTTbPls846q8GkzXvuuSf+/e9/Z0meqc1Je1Aa7VBKwHjttddi+PDhcd1112U96VIZlH/84x9xxhlnxJQpU2LPPfeMu+++OzbffPNChwsUWPmyBTHvzdsa3Sb3RhN3tmJF4+1Lar329NNPf7zivlsjV9pKf+3ue2iU9OrTOvsCACiApXOWxOTzn290m5dKmlbucsWSj/uYN3eO9u//eTtKu7fOfQsH/r/1ovfaXVplXwAAhVA2e1k8dm7jNz5OauIcbXlZrsVztL9974Po0qN1vlT7zPmDou/a7fKrEACaYMFDT8fCh56psz631M0YxeS5556Lr371q3H//ffHn/70p/jnP/8ZP/7xj+MrX/lKvdufeuqpcdppp8UNN9wQTz75ZJx44okxevTo6NmzZ9Zh4/bbb49bb701yxFIyRlp3+1Bu5yR/O1vf8s+5D//+c+xyy67ZOs6d+4cn/nMZ7KKGkceeWTce++9WYm0O++8M7bZZptChwwU0NIF06NiecPtjjLLW7bv+vpkVn/twgsv/HjFsiURrTUXmDUtYvQWrbQzAIC2N/eZD2LZnKWNbtPSqVNz5mhLF1RkozW89eTiGHtQv1bZFwBAIbz31LwsQSMfmjNHW7KgIpZ8XLx2tbzxxJLY+uDerbMzAIrOitlzY+krH7ejpziNGTMm+/7+f//3f7NiC++8806WfHHVVVdlhRm23377GtunpI0HH3wwbrrpppg6dWqcffbZdfZZWVHj61//ehxyyCHRHrTLtiaTJ0+OoUOHViVmVNe/f/+444474uijj445c+bEvvvuG48//nhB4gSKw7L50/Ky31ShZ9iwYQ2+vv7668cee+yRl2PHzPz8TAAAbWXu0x90uDnajMcX5WW/AABt5b0nP+pwc7Spjy3Jy34BKA6law2IbmNG1BldRwwtdGjU43Of+1y88sorWUJFp06d4qmnnsq+80+VMubNm1e1XSrUcOONN8YvfvGLbA6REjFqj0022STrsvHzn/882ot2WTlj0aJFWdmShpSWlsb111+f9aO55pprYvz48Vlpk913371N4wQKL/3lXL6s4aoZQ4YMyf7OaK5DDz20SSWSfve738WvfvWrrDxTcy1fvjzef//9+l9cvCD72dI/TgAA7U2uIhfLPlja4eZoC2cvz362kk7maABA+5PmMWVzlnW4OdqC98vN0QDyLRUwqNnNqs302WO7bNS2bOZ78fZZlxUkJhrXp0+fuPTSS+OEE07IkjL+85//xO9///use8ZPfvKTOP7446u2TdU10kjFG1577bUsTyC9f+zYsTFy5Mhob9plcsagQYPi7bffbnSb9IVlKoOSJot/+MMf4pOf/GTccsstbRYjUBzS3wUDRh4eC9/5Tyyd91qd19daa63sL/qNN944L8dPfwd94xvfyEZzpBJNZ555Zv0nlSM2idhmV4kZAEC7lS6Mb3beNjHjz2/EnEnvdYg52sh9+sSOXxzk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e7X2DQCN2fV/9oz+G0kApP3pVFoSWx89MIZt1zMmXfp+fDRreZvM0foN6xJ7nL52DB7ZfbX2DQCNGX/eTjFo436FDgOarXNpSez8uT4xYvtucefP58XcmSvaZI42cP3SGP+N/jFklMRZgOKSbnottipGxRbPmu2CCy7IEihS1fjUCi0lZaTv7StVVFTEpZdeGmeccUa2XaqSkVqa1Jban/ztb3/L5hpf+9rXsjYpqfVZ2ja1PSl2HaJyxrRp02KTTTaJgQMHNrrd3Llzs/ImqdIGQEOyJInU5mSjsTXWP/TQQ6u970mTJtVckY4x/giJGQAAq5CSJFJrkdH798n7HC0dI7VUkZgBANC4lCSR2pxsPr5n3udo6Rifu2QtiRkA0A7df//9WWLGLrvsEmeffXaNxIwkFWL41re+FbvvvntWFSNt35hPfOIT8eKLL8YPfvCD6NatW7z22mvRHnSI5IyysrLo3XvV5ZiPPPLIrORJyrgFaExJaWlE3/411m255Zarvd86++jXf+WxAABYpdJunaLf0K55n6P1G9Y1OxYAAKtW2q0kBgwrzfscbcD6pdmxAID2p7Ll2eabb97odptuummN7RuTkjJScsYLL7yQJWu0Bx3iatO6666bVc9YldTKZNSoUe0mcwYosJlv1ni63377rfYu6+xj5qr/7gIA4GPTH1+U9znajFrHAACgcVMfW5L3OdrU/9Q8BgDQfgwePDh7fOmllxrdrrI1yaBBg5q874033jhuv/32aA86RHLGrrvuGrNnz44HH3xwldv26NEj3n///TaJC2i/cksWR8x5t+r5+uuvn7VPWl1pH8OGDft4xex3IrekbLX3CwCwJiibtyLef2VJ3udo701ekh0LAIBVWzS3PN6evCzvc7R0jMXzyld7vwDkSa7IBkVl3LhxWbuSRx99NC655JJsubZf/epXWVuz1P5kzz33jI6oQyRnnHjiidkv8Gtf+1p89NFHjW775ptvZiVOABo1a3qNp/vvv3/2j8HqSvtI+6p5LNUzAACa4q0nF9e4wJK3OVou4q2nFq/2fgEA1gRvPrmkzeZobzyhegYAtEdnnXVWdOnSJVv+9re/HaNHj46TTjopvve972WPY8aMidNPPz17vXPnzvGd73wnOqIOkZyx1157xRFHHBEvvvhiVkXjv//9b73b3XDDDfHhhx9W9aoBaK2WJk8//XT88pe/zEZabkydfc2qeSwAAOpXu91IPudoMx7T2gQAIB8tTVZnjlb7WABA+7DFFlvEddddF927d8+KLkydOjWuuuqquPDCC7PH119/PVufiiyk51tvvXV0RKXRQVx99dUxb968uPfee2P77bePAw88MA4++OCsx8zixYvj4YcfziZ7Kdv2s5/9bKHDBYpYbvmyiPdm1uiDtc0229S7bUVFRVxxxRVx2WWXRXn5yrKKv/3tb+Mb3/hGlunXqVPdHLi0r9Qr64MPPli54t2Z2TFLunTN148EANDuLVtcEW8/t7jN5mjpWMvLKqJLjw5xTwMAQF4sXVwRb/13aZvN0dKx0rywa09zNICiUoytRIotHuLII4/M/m2/6KKL4l//+le88847Va+tu+668clPfjLOOOOMVmmPVqw6zAymV69ecccdd2RlUEpLS+P222+PU089NQ444ID49Kc/HRdffHEsXbo0dt999/jqV79a6HCBYvbOjHS2WPV03333rffkMFXi+dKXvpT1xqo8oUzScvo7J72WtqktlWNK+6ySjpWOCQBAg2Y9szgqVkSbzdHSsWY+o7UJAEBjpj+9NMrbcI6WjjXtmY+TQQCA9mXkyJFZsuasWbOywgtvvfVW9piep/UdOTGjQyVnJCkpI2XavPLKK3HeeefFHnvsEcOHD8+ydbfddtu44IIL4q677somdACr09LkqaeeikMPPTQmTZrU4G7Sa4cddli2bW119jlz2upEDADQ4U1vQkuT1p6jaW0CANC4qY+Vtfkcbep/tDYBgI6gb9++MXTo0OxxTVE0yRnvv/9+q+0rJWR8//vfjwceeCDrV/Pee+/Fk08+Gd/5zneyPjUADcmlzP23Z9SoyrPzzjvXKL/4+9//Po477ri6f2+tu/7KUU36+ydte/nll2fvrbTLLrtk+67y9vSVxwYAoI7y5bmY9fSiFs3Rhm7TIxstmaPNfHpRdmwAAOpasTwX055a2qI52obbdstGS+Zo055akh0bgGJra1JSZKPQHwoUaXLGq6++GhtssEEMHDgwK1F25513FjokYE313sx0Zln1dK+99oquXbs2Wn4xSkoittopYs9Prhxb7rRyXSPlGdM+x40b9/E+0jHfm9UmPyIAQHvzzvOLY3lZrllztJJOEdt9YWDs9/11s7HtsQOzdc2Zo6VjpmMD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Nyoft95667jwwgsL9FMAAAAAAAAArAFyJStHMSm2eIrArFmz4qabbop//etf8corr8S7774bAwcOzIoknHnmmbHTTjsVOsQOr6gqZ1RKyRkvvPBCfPe7341+/fpl66onX6SRqmXMnDkzPvzwwyx5o7o99tgj7rzzzujatWtB4gcAAAAAAACAYvHLX/4yvvnNb8Ybb7wR48ePj4kTJ8buu+8et9xyS+y6665x4403FjrEDq8okzOSXr16xfnnnx9vvfVWXHLJJbHLLrtEp04Nh5sSNoYOHRq/+tWv4t57743Bgwe3abwAAAAAAAAAUIx23HHHeOCBB2LKlClx5ZVXxgUXXBB//etf4/7774/OnTvHV77ylVi6dGmhw+zQiq6tSX1JGt/4xjeysWDBgnjooYeydifvv/9+zJ07N6ussc4662TlVlIrEwAAAAAAAADaSGqAsLIJQvEotniKwOGHH17v+tSVYu+994677ror626x/fbbt3lsa4qiT86ork+fPnHQQQcVOgwAAAAAAAAA1hCpcMATTzyRjSeffDIbH3zwQfba8ccfH1dffXWT9zV9+vT4xS9+EbfffnvWRaJbt26x8cYbx1FHHRVf/epXo2fPntHWunTpkj2Wlrar9IF2x6cLAAAAAAAAAA0YMmRIq+zn1ltvjWOPPTbmz59ftW7x4sXx1FNPZSO1G0lJGyNHjoy2MmPGjLjnnnti3XXXjS222KLNjrsm6lToAAAAAAAAAACgPdhggw1i/PjxzX7fs88+G0cffXSWmNG7d+/48Y9/HI8++mjce++9cfLJJ2fbvPbaa1kniQULFkRbWL58eXzhC1+IpUuXxkUXXRSdO3duk+OuqVTOAAAAAAAAAKBlcv83ikkrx3POOefEDjvskI1URWPatGkxYsSIZu3j9NNPj7Kysqx1yF133RW77LJL1Wv77LNPjBo1Ks4888wsQePiiy+OH/7wh3X2cdpppzXrmOedd14MHDiw3tcqKipiwoQJ8dBDD8WXvvSlLEmD/JKcAQAAAAAAAAANOPfcc1fr/U888URMmjQpWz7xxBNrJGZUmjhxYlx11VUxefLkuOyyy+J73/tedOnSpcY2v/71r5t13DPOOKPe5IyUmPHFL34xrr/++jj++OPjt7/9bbN/JppPWxMAAAAAAAAAyJObb765avmEE06od5tOnTrFcccd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LskKM4477ris6CIVY6yrc+fOseWWW2YjFW6ce+65cfLJJ8dNN90UP/rRj+I3v/lN5ElJizMGDx4cZWVl2XK6XblyZY2PbYx1jwsAAAAAAAAA5Nff//736NGjR1x55ZU1FmbUJG131VVXxT333BN33XVX7ooz2kQOpPlhapsjpuKxjRkAAAAAAAAAQPPw1ltvxfDhw6NLly712q9r167Zfm+//XbkTUk7Z6TpRmrrjrG+xwAAAAAAAAAovfQX3bKcfV7eX5mbv549e8bMmTPrvV9q3pD2S/vnTUmLM6ZMmdKgxwAAAAAAAACAlmmfffaJ2267LcaMGRNnnXVWnff75S9/mXXNOProoyNvcjGtCQAAAAAAAABAcs4552QzbXzzm9+M448/PsaNGxcrV66MmqT16fHPfvaz2X5t27aNb33rW5E3Je2cAQAAAAAAAAC0TMOHD49dd901TjzxxDjiiCPqvN+oUaPi97//fXz5y1+OG2+8MRsdOnSIgQMHRt++fbPl5cuXx3vvvRfTpk3LltOUJqkw4/LLL4+999478kZxBgAAAAAAAADQ6CZNmhRvvPFGbL755vUqzkhOP/30rMjioosuirvvvjuWLl0ar7/+ejbW1alTpzj88MPjggsuiJ133jnySHEGAAAAAAAAANCkRo8eHTvuuGMcdthhsccee9S4TXr85ptvjiVLlsT48eNj4sSJMXfu3CgvL4/OnTtH796940Mf+lDstttu0aVLl8izkhZnpPYiTSG1NgEAAAAAAACgkRX+M/Ikb/G0YqmjxbJly2LFihXVHvvrX/8aN910U8yePbvW4owKqfBin332yUZzVdLijMGDB0dZWVlRnyMdf+XKlUV9DgAAAAAAAACgqr59+8asWbNixowZ0dq1iRwoFApFHQAAAAAAAABA09phhx2yv9nff//9MXPmzGjNSto5I003UuzOGQAAAAAAAABA0zvyyCPj3nvvzaY2GTVqVHznO9+Jww8/PJtlo7UpaXHGlClTSvn0AAAAAAAAAGyEssKaUQrvj38q3n/+6WrrV69YXpJ4qO60006LMWPGxOuvv551zjjzzDOzsckmm1RuM2nSpHj++eezLhvt27ePlqqkxRkAAAAAAAAA0BAr5s+N8qlvlDoM1qNjx47xr3/9K4477rh47LHHKte/++67lcv/+Mc/stGuXbvYbrvt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AAAAAAAAAFAPt912W+XyqaeeWuM2bdq0iZNOOqly6pEHHnig2jap40V9Riq+qItDDjkku33wwQcb+BVSF4ozAAAAAAAAAKBIxo0bl9127do19thjj1q3O+CAAyqXH3300Wgqs2bNym5NaVJcijMAAAAAAAAAaJhCTkeOpKlKkmHDhq23AGLbbbettk9jefnll2PZsmXV1s+dOze+973vZcuHHXZYoz4nVSl9AQAAAAAAACCXVpQvjJVLF9drn6UL5kReLF26NObMWRPPgAED1rtt7969s+4aixcvjunTpzdqHFdccUVcc801se+++8agQYOy55k6dWrcddddsWjRovj0pz8dxx9/fKM+J1UpzgAAAAAAAAAgl2a/9li89cK90VwtXLiwcrlbt24b3L6iOCMVTDSmY445Jt5///144okn4uGHH44lS5ZEnz59smKNk046KUaPHh1lZWWN+pxUpTgDAAAAAAAAgAYpK6wZRTt+NG+pc0aFDh06bHD7jh07Zrfl5eWNGkcqwkiD0mlTwucGAAAAAAAAgBarU6dOlcvLly/f4PbLli3Lbjt37lzUuGh6OmcAAAAAAAAAkEubfujD0WfQLvXaZ+mCOTHpwasjD7p37165XJepStKUJnWdAoXmRXEGAAAAAAAAAA1XxGlN2nfqno3m3Dmjb9++8d5778WMGTPWu+28efMqizO22mqrJoqQpmJaEwAAAAAAAAAoku233z67nTRpUqxcubLW7V577bXK5e22265JYqPpKM4AAAAAAAAAgCLZd999s9vUFePZZ5+tdbuHHnqocnmfffZpkthoOoozAAAAAAAAAGiYQkRZzkYxp1lpiKOOOqpy+eqrr65xm9WrV8e1116bLffq1SsOOuigJouPptGuiZ4HAAAAAAAAABrNu288FXPeeKba+lUrl0eejBw5Mvbbb7945JFH4sorr4yTTz45Ro0aVWWbyy67LF599dVs+ayzzor27duXKFqKRXEGAAAAAAAAAM3OskXzYuE7bxT9ecaNGxeTJk2qvD9nzpzK5bR+7NixVbY/5ZRTqh1jzJgx2VQl5eXlccghh8T3vve9rDtGun/DDTfEH/7wh2y74cOHx9lnn13Ur4fSUJwBAAAAAAAAQMOUcBqRjl17R/dNh9bYOWPJ3OmN9jxXXHFFXHPNNTU+9uijj2ZjQ8UZu+22W9x4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SK370jFefPHFGD9+fLZtaqWXqhZruwCpSZob8etf/3p20ZWqvdMnDNKbZvqerD2PZ4o9tZis70VrXowZMya7+H7zzTezXyKkrzddyKdPbqSvKV3EpIQiXaSl73GaK7OiBVfFpziaQvrep18cpF86pJ+5JF2spu99mtMyXSCnT4akOVHTxUzapqKlZ4WaLmrShWT6+TnssMNyfdHzuc99rvKTK6ld6Ze//OXIuxRnRevV9Mmdpvx5AWiJ5GhryNHkaHkiRwNAjraGHE2OlidyNGj+OrftEb07bFlt/arCikYt0EgddlKxY4U5c+ZULqf16xbMnXLKKTW+N6SpStL7Qjrvfu9738u6Y6T7N9xwQ2UHrOHDh8fZZ5/daLGTIwWARrBw4cLCxRdfXOjVq1fKCus0dtlll8Ktt9663mN+5jOf2eBxtthii8Ldd9+9wRjffPPNwtZbb13rccrKygrf//73C6tXry4MGjSocv3kyZNrPN7a+ybnn39+dozajt+/f//CuHHjNhhnXZ67IfFtyAEHHFC5/QMPPFDrdlOnTi3suuuu631NPvnJTxYWLFhQ+PCHP1y5bvz48bW+Lmvve+211xYaS3l5eeGss84qdOzYsc4/l926dSucdNJJhRkzZlQ73v77759t89vf/naj4rrpppuy46TXsRgmTpxY+bOYXtcNufrqqyu//pNPPrlePysXXnhho8T80Y9+tPKYL774YqMcEwA5WiJHk6PVlRytOjkaQHHI0eRocrS6k6NVJ0cjD15++eUq54N9Nvls4dD+X83VSDGtHWOKeWOk//N1PT+u7/3k9ttvL/To0aPW/YYPH154/fXXNypW8kvnDKBRpEr2888/P772ta/F3XffHf/85z/j2Wefzaqp586dm1WD9+nTJ7bddtusGj61bVx7ns3ajnnjjTdmlfTpEwRpPspZs2ZlFYTpUwQ77rhjfOITn8jmcOzatesGYxwyZEhW2f/rX/86/va3v8XEiRNj2bJl2ZyGqZVUqopee07N+rr44ovj8MMPzyob05x/KdZUeT5s2LD41Kc+FV/5yldqnMezuUmt/tKnGNKnIlI7xvSphtR6MbXQSy02UzXo0UcfnbUsTK99hTQ/Wk3Sa1IhfX/Sa9pYOnXqlLVPTO0YU7V++vTBSy+9lFX3pzkx089N3759syrU9OmUNO/l/vvvH126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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = sl.plot_heatmaps(\n",
" cc * 1e15, cc * 1e15,\n",
" {sl.MODEL_LABELS[m]: np.abs(f0_err[m]) for m in MODELS},\n",
" xlabel=sl.axis_label(\"Coupling\", r\"C_{c1}\", \"fF\"),\n",
" ylabel=sl.axis_label(\"Coupling\", r\"C_{c2}\", \"fF\"),\n",
" cbar_label=r\"$|\\delta f_0/f_0|$ (%)\",\n",
" norm=\"log\",\n",
" show=False,\n",
")\n",
"for k, ax in enumerate(np.atleast_1d(axes)):\n",
" ax.plot(30, 70, marker=\"*\", ms=13, mfc=\"w\", mec=\"0.15\", mew=0.9, ls=\"none\")\n",
" if k == 0:\n",
" ax.annotate(\"Tut. 1\", (30, 70), xytext=(4, 5), textcoords=\"offset points\",\n",
" color=\"w\", fontsize=9)\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "5d9cfd74",
"metadata": {},
"source": [
"The **Optimized** method tracks the CPW to a few *thousandths* of a percent\n",
"over most of the plane — never worse than $0.06\\%$, at the strongly asymmetric\n",
"corners (15 fF against 150 fF) — while the other two, which do not inherently\n",
"incorporate the loading, do not.\n",
"\n",
"The Foster and Analytical errors instead grow with the *total* coupling, reaching\n",
"$\\approx 1.5\\%$ at the strongest symmetric point (150 fF on both ports).\n"
]
},
{
"cell_type": "markdown",
"id": "60a77644",
"metadata": {},
"source": [
"## 2. Predicting the loaded frequency shift\n",
"\n",
"The point of a fitted `(L, C)` is to *stand in* for the resonator when\n",
"something else is attached to it. So to test this we attach a load and ask whether each model\n",
"reproduces how far the CPW resonance moves.\n",
"\n",
"For this part of the tutorial we'll choose just one device, strong, asymmetric regime ($C_{c1}=60$,\n",
"$C_{c2}=35$ fF) and add a **100 fF shunt capacitor** on each side — the kind\n",
"of capacitive loading a neighbouring element presents. The loaded topology (drawn\n",
"below) probes the circuit through weak `cc_port` capacitors (1 fF by default,\n",
"exposed as a parameter of the loaded builders), so the measured resonance\n",
"belongs to the resonator + coupling + load, not to the 50 $\\Omega$\n",
"terminations.\n",
"\n",
"**Measure bare and loaded the same way.** The bare reference is the *same*\n",
"weak-probe topology with a negligible load, so the shift\n",
"\n",
"$$\\Delta f = f_0^{\\text{loaded}} - f_0^{\\text{bare}}, \\qquad\n",
" \\epsilon = \\frac{\\Delta f_{\\text{LC}} - \\Delta f_{\\text{CPW}}}{\\Delta f_{\\text{CPW}}}$$\n",
"\n",
"isolates the *load's* effect. (If you instead compared against the 50 $\\Omega$-\n",
"terminated bare device of Part 1, the change of probe convention alone would\n",
"move $f_0$ by more than the load does — always difference two measurements of\n",
"the same circuit convention.) With a clean convention the physics reads off\n",
"directly: a shunt-capacitor load adds capacitance, so it *pulls the resonance\n",
"down*.\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3503735c",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:25:36.075057Z",
"iopub.status.busy": "2026-07-20T14:25:36.074972Z",
"iopub.status.idle": "2026-07-20T14:25:36.080124Z",
"shell.execute_reply": "2026-07-20T14:25:36.079894Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"saved figures/tut02_loaded_topology.svg|.html\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
"Schematic(meta={'title': 'Loaded CPW resonator, weak-probe convention', 'description': '', 'source': 'simpleLOMs.networks.cpw.cpw_resonator_loaded_network_2port', 'units': {'capacitance': 'F', 'inductance': 'H', 'length': 'm', 'impedance': 'ohm', 'frequency': 'Hz'}}, groups=[{'id': 'resonator', 'label': 'resonator'}], components=[Component(id='P1', type='port', label='Port 1', value='50.00 \\\\Omega', ports=['out'], group=None, orient='series', props={'Z0': 50.0}), Component(id='cc_port1', type='cap', label='C_{p1}', value='1.00 fF', ports=['a', 'b'], group=None, orient='series', props={'C': 1e-15}), Component(id='load1', type='lc', label='load 1', value='L = 1.00 kH\\nC = 100.00 fF', ports=['a', 'gnd'], group='load', orient='shunt', props={'L': 1000.0, 'C': 1e-13}), Component(id='Cc1', type='cap', label='C_{c1}', value='60.00 fF', ports=['a', 'b'], group=None, orient='series', props={'C': 6e-14}), Component(id='Ctog1', type='cap', label='C_{tog1}', value='10.00 fF', ports=['a', 'gnd'], group='resonator', orient='shunt', props={'C': 1e-14}), Component(id='TL', type='tline', label='CPW', value='\\\\ell = 7.00 mm', ports=['in', 'out'], group='resonator', orient='series', props={'length': 0.007, 'Z0': 46.426279489739365}), Component(id='Ctog2', type='cap', label='C_{tog2}', value='10.00 fF', ports=['a', 'gnd'], group='resonator', orient='shunt', props={'C': 1e-14}), Component(id='Cc2', type='cap', label='C_{c2}', value='35.00 fF', ports=['a', 'b'], group=None, orient='series', props={'C': 3.5e-14}), Component(id='load2', type='lc', label='load 2', value='L = 1.00 kH\\nC = 100.00 fF', ports=['a', 'gnd'], group='load', orient='shunt', props={'L': 1000.0, 'C': 1e-13}), Component(id='cc_port2', type='cap', label='C_{p2}', value='1.00 fF', ports=['a', 'b'], group=None, orient='series', props={'C': 1e-15}), Component(id='P2', type='port', label='Port 2', value='50.00 \\\\Omega', ports=['in'], group=None, orient='series', props={'Z0': 50.0})], nets=[Net(id='n1', ports=['P1.out', 'cc_port1.a']), Net(id='n2', ports=['cc_port1.b', 'load1.a']), Net(id='n3', ports=['load1.gnd', 'GND']), Net(id='n4', ports=['cc_port1.b', 'Cc1.a']), Net(id='n5', ports=['Cc1.b', 'Ctog1.a']), Net(id='n6', ports=['Ctog1.gnd', 'GND']), Net(id='n7', ports=['Cc1.b', 'TL.in']), Net(id='n8', ports=['TL.out', 'Ctog2.a']), Net(id='n9', ports=['Ctog2.gnd', 'GND']), Net(id='n10', ports=['TL.out', 'Cc2.a']), Net(id='n11', ports=['Cc2.b', 'load2.a']), Net(id='n12', ports=['load2.gnd', 'GND']), Net(id='n13', ports=['Cc2.b', 'cc_port2.a']), Net(id='n14', ports=['cc_port2.b', 'P2.in'])], annotations={'load': '100 fF shunt (inductor opened)', 'probe': 'cc_port = 1 fF'})"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Cc1, Cc2 = 60e-15, 35e-15 # strong, asymmetric design point\n",
"Cload = 100e-15 # shunt-capacitor load on each port side\n",
"L_OPEN = 1.0e3 # open the load inductor -> capacitor-only load\n",
"C_NEG = 1e-21 # negligible load capacitance -> \"bare\" reference\n",
"\n",
"from pathlib import Path\n",
"figdir = Path(\"figures\")\n",
"figdir.mkdir(exist_ok=True)\n",
"sch = sl.cpw_loaded_schematic_2port(\n",
" d, Cc1, Cc2, Ctog, Ctog, L_OPEN, Cload, L_OPEN, Cload,\n",
" cpw_params=cpw, freq=coarse, Z0=Z0,\n",
" annotations={\"load\": \"100 fF shunt (inductor opened)\", \"probe\": \"cc_port = 1 fF\"},\n",
" title=\"Loaded CPW resonator, weak-probe convention\",\n",
")\n",
"sch.save_svg(figdir / \"tut02_loaded_topology.svg\")\n",
"sch.save_html(figdir / \"tut02_loaded_topology.html\")\n",
"print(\"saved figures/tut02_loaded_topology.svg|.html\")\n",
"sch\n"
]
},
{
"cell_type": "markdown",
"id": "1d2e67cd",
"metadata": {},
"source": [
"We first fit all three models on the bare, 50-ohm terminated device.\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "9f24d43c",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:25:36.081161Z",
"iopub.status.busy": "2026-07-20T14:25:36.081093Z",
"iopub.status.idle": "2026-07-20T14:25:52.976165Z",
"shell.execute_reply": "2026-07-20T14:25:52.975812Z"
}
},
"outputs": [],
"source": [
"def measure_f0(build):\n",
" \"\"\"Locate a resonance by its |S21| peak (wide grid), then circle-fit f0 on a\n",
" fine local grid. Robust for the sharp, weakly-probed resonances here.\"\"\"\n",
" wide = rf.Frequency(5.0e9, 9.5e9, 9_001, unit=\"Hz\")\n",
" f_approx = wide.f[np.argmax(np.abs(build(wide).s[:, 1, 0]))]\n",
" fine = rf.Frequency(f_approx - 60e6, f_approx + 60e6, 20_001, unit=\"Hz\")\n",
" f0, _ = sl.circle_fit_f0_kappa(build(fine), 0, 0)\n",
" return f0\n",
"\n",
"models = {m: sl.fit_lom(d, model=m, Cc1=Cc1, Cc2=Cc2, Ctog=Ctog, Z0=Z0,\n",
" cpw_params=cpw, freq=coarse, return_model=True)\n",
" for m in MODELS}\n"
]
},
{
"cell_type": "markdown",
"id": "fb9fefd2",
"metadata": {},
"source": [
"Now we can determine the shift in frequency when comparing the bare and loaded CPWs. This acts as the ground truth for the comparsion."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e37fd706",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:25:52.977497Z",
"iopub.status.busy": "2026-07-20T14:25:52.977418Z",
"iopub.status.idle": "2026-07-20T14:25:53.714354Z",
"shell.execute_reply": "2026-07-20T14:25:53.713994Z"
}
},
"outputs": [],
"source": [
"b_cpw = lambda fr, C1, C2: sl.cpw_resonator_loaded_network_2port(\n",
" fr, d, Cc1, Cc2, Ctog, Ctog, L_OPEN, C1, L_OPEN, C2, cpw_params=cpw, Z0=Z0)\n",
"f0_cpw_bare = measure_f0(lambda fr: b_cpw(fr, C_NEG, C_NEG))\n",
"f0_cpw_load = measure_f0(lambda fr: b_cpw(fr, Cload, Cload))\n",
"df_cpw = f0_cpw_load - f0_cpw_bare"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "bed32b2c",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-20T14:25:53.715719Z",
"iopub.status.busy": "2026-07-20T14:25:53.715637Z",
"iopub.status.idle": "2026-07-20T14:25:55.478758Z",
"shell.execute_reply": "2026-07-20T14:25:55.478480Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"100 fF loads pull the CPW resonance -387.1 MHz (8.4354 -> 8.0484 GHz)\n"
]
},
{
"data": {
"text/html": [
"