{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9f267a74",
   "metadata": {
    "id": "9f267a74"
   },
   "source": "# VQC için Gürültüye Dayanıklılık Araçları\n## Quantum Error Mitigation · Optimizer Seçimi · Hardware-Efficient Ansatz\n\n**QML Study Companion**  \nSerdal Korkut AVCI · Product Design + QML  \nColab uyumlu örnek notebook\n\n---\n\n### Bu notebook ne işe yarar?\n\nÖnceki sunumlarda VQC’yi **“learn by tuning”** olarak tanımladık.  \nGerçek NISQ cihazlarında bu “tuning” süreci gürültüden (noise) çok etkilenir.  \nBu notebook üç pratik savunma katmanını gösterir:\n\n1. **Quantum Error Mitigation (QEM)** – ölçüm ve devre gürültüsünü azaltma  \n2. **Gürültüye dayanıklı optimizer** – SPSA ve gradient-free yöntemler  \n3. **Hardware-Efficient Ansatz** – cihaz topolojisine uygun devre tasarımı\n\n> Amaç: VQC’nin “öğrenme” sürecini gerçek donanımda daha stabil hale getirmek."
  },
  {
   "cell_type": "markdown",
   "id": "9d138717",
   "metadata": {
    "id": "9d138717"
   },
   "source": "## 0. Kurulum (Colab)\n\nAşağıdaki hücreyi bir kez çalıştırın.  \nRuntime → Restart runtime sonrası tekrar çalıştırmanız gerekebilir."
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "69280ffe",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "69280ffe",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787111797618,
     "user_tz": -180,
     "elapsed": 42272,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "dda53268-557b-47a7-8ee6-16c8747fca21"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/9.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━\u001b[0m \u001b[32m6.4/9.8 MB\u001b[0m \u001b[31m193.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m9.7/9.8 MB\u001b[0m \u001b[31m198.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.8/9.8 MB\u001b[0m \u001b[31m102.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/12.4 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/12.4 MB\u001b[0m \u001b[31m235.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m12.4/12.4 MB\u001b[0m \u001b[31m228.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m12.4/12.4 MB\u001b[0m \u001b[31m228.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.4/12.4 MB\u001b[0m \u001b[31m101.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/327.8 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m327.8/327.8 kB\u001b[0m \u001b[31m22.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.4/2.4 MB\u001b[0m \u001b[31m81.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 kB\u001b[0m \u001b[31m4.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.3/80.3 kB\u001b[0m \u001b[31m5.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.3/62.3 kB\u001b[0m \u001b[31m4.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.0/10.0 MB\u001b[0m \u001b[31m108.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16.7/16.7 MB\u001b[0m \u001b[31m82.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35.3/35.3 MB\u001b[0m \u001b[31m15.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
      "numba 0.60.0 requires numpy<2.1,>=1.22, but you have numpy 2.5.2 which is incompatible.\u001b[0m\u001b[31m\n",
      "\u001b[0mKurulum tamam. Runtime → Restart session önerilir.\n"
     ]
    }
   ],
   "source": "# En güncel Qiskit 2.x + Aer\n!pip install -q -U \"qiskit>=2.0\" \"qiskit-aer>=0.15\" \"qiskit-algorithms>=0.3\"\n!pip install -q -U matplotlib numpy scipy\n\nprint(\"Kurulum tamam. Runtime → Restart session önerilir.\")"
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "068ba280",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "068ba280",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787111981697,
     "user_tz": -180,
     "elapsed": 2930,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "7a9f6c65-6103-49c0-bb77-5f119e73c403"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Qiskit version: 2.5.2\n",
      "Kütüphaneler hazır.\n"
     ]
    }
   ],
   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom typing import List, Dict\n\nimport qiskit\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.circuit import ParameterVector\nfrom qiskit_aer import AerSimulator\nfrom qiskit_aer.noise import NoiseModel, depolarizing_error, ReadoutError\nfrom qiskit.transpiler import CouplingMap\n\n# Optimizers: qiskit-algorithms (callback constructor'da)\ntry:\n    from qiskit_algorithms.optimizers import SPSA, COBYLA\nexcept ImportError:\n    SPSA = COBYLA = None\n\n# scipy fallback her zaman hazır\nfrom scipy.optimize import minimize as scipy_minimize\n\nprint(f\"Qiskit version: {qiskit.__version__}\")\nprint(\"Kütüphaneler hazır.\")"
  },
  {
   "cell_type": "markdown",
   "id": "83f8ceb6",
   "metadata": {
    "id": "83f8ceb6"
   },
   "source": "---\n# 1. Quantum Error Mitigation (QEM) Stratejileri\n\nNISQ cihazlarında iki ana hata kaynağı vardır:\n\n| Hata Türü | Ne zaman oluşur? | Tipik etki |\n|-----------|------------------|------------|\n| **Readout (Ölçüm) hatası** | Kübit durumunu 0/1 olarak okurken | 0↔1 karışıklığı |\n| **Gate / Decoherence hatası** | Kapılar uygulanırken ve zamanla | Devre derinliği arttıkça birikir |\n\nVQC’de her iki hata da **loss fonksiyonunu bozar** → optimizer yanlış yöne gider."
  },
  {
   "cell_type": "markdown",
   "id": "0889d05e",
   "metadata": {
    "id": "0889d05e"
   },
   "source": "## 1.1 Readout Error Mitigation\n\n**Fikir:** Klasik ML’deki *confusion matrix* mantığı.  \nHer kübit için “gerçek durum → ölçülen durum” olasılık matrisi kalibre edilir ve ters çevrilerek düzeltilir.\n\n$$\\mathbf{p}_{\\text{true}} \\approx A^{-1} \\mathbf{p}_{\\text{measured}}$$\n\nBurada $A$ kalibrasyon (confusion) matrisidir."
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f361a164",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "f361a164",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787111987581,
     "user_tz": -180,
     "elapsed": 336,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "d1c01bd9-08e8-4b44-830a-de51263ebc02"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Kalibrasyon (Confusion) Matrisi A:\n",
      "[[0.941 0.103]\n",
      " [0.059 0.897]]\n",
      "\n",
      "Yorum: A[0,1] = P(0 ölç | gerçek 1) → readout hatası\n",
      "A[1,0] = P(1 ölç | gerçek 0) → readout hatası\n"
     ]
    }
   ],
   "source": "def create_readout_noise_model(n_qubits: int = 2, p0given1: float = 0.08, p1given0: float = 0.05):\n    \"\"\"Basit readout noise modeli oluşturur.\"\"\"\n    noise_model = NoiseModel()\n    # Her kübit için aynı readout hatası (gerçekte farklı olabilir)\n    readout_error = ReadoutError([\n        [1 - p1given0, p1given0],   # |0> ölçüldüğünde\n        [p0given1, 1 - p0given1]    # |1> ölçüldüğünde\n    ])\n    for q in range(n_qubits):\n        noise_model.add_readout_error(readout_error, [q])\n    return noise_model\n\n\ndef calibrate_readout_matrix(backend, n_qubits: int = 1, shots: int = 4096):\n    \"\"\"\n    Basit 1-kübit kalibrasyon matrisi.\n    Gerçek donanımda Qiskit Experiments veya Ignis kullanılır.\n    \"\"\"\n    # |0> hazırla ve ölç\n    qc0 = QuantumCircuit(1, 1)\n    qc0.measure(0, 0)\n\n    # |1> hazırla ve ölç\n    qc1 = QuantumCircuit(1, 1)\n    qc1.x(0)\n    qc1.measure(0, 0)\n\n    job0 = backend.run(qc0, shots=shots)\n    job1 = backend.run(qc1, shots=shots)\n\n    counts0 = job0.result().get_counts()\n    counts1 = job1.result().get_counts()\n\n    # Confusion matrix A: satırlar gerçek, sütunlar ölçülen\n    # A[i,j] = P(ölçülen=j | gerçek=i)\n    p00 = counts0.get('0', 0) / shots\n    p10 = counts0.get('1', 0) / shots   # |0> iken 1 okuma\n    p01 = counts1.get('0', 0) / shots   # |1> iken 0 okuma\n    p11 = counts1.get('1', 0) / shots\n\n    A = np.array([\n        [p00, p01],\n        [p10, p11]\n    ])\n    return A\n\n\n# Örnek: gürültülü backend + kalibrasyon\nnoise_model = create_readout_noise_model(n_qubits=1, p0given1=0.10, p1given0=0.06)\nnoisy_backend = AerSimulator(noise_model=noise_model)\n\nA = calibrate_readout_matrix(noisy_backend, shots=8192)\nprint(\"Kalibrasyon (Confusion) Matrisi A:\")\nprint(A.round(3))\nprint(\"\\nYorum: A[0,1] = P(0 ölç | gerçek 1) → readout hatası\")\nprint(\"A[1,0] = P(1 ölç | gerçek 0) → readout hatası\")"
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "2eca8226",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "2eca8226",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787111992545,
     "user_tz": -180,
     "elapsed": 72,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "a80ef617-7079-4fc5-ac7e-8f28d5e50439"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Ham ölçüm (gürültülü): {'1': 0.480224609375, '0': 0.519775390625}\n",
      "Mitigated olasılıklar: {'0': np.float64(0.4974), '1': np.float64(0.5026)}\n",
      "\n",
      "→ Readout mitigation, VQC’nin expectation value hesaplarını daha doğru hale getirir.\n"
     ]
    }
   ],
   "source": "def mitigate_readout(counts: Dict[str, int], A: np.ndarray, shots: int) -> Dict[str, float]:\n    \"\"\"\n    Basit least-squares readout mitigation.\n    p_true ≈ A^{-1} p_measured  (negatif olasılıklar clip edilir)\n    \"\"\"\n    # 1-kübit için\n    p_meas = np.array([\n        counts.get('0', 0) / shots,\n        counts.get('1', 0) / shots\n    ])\n\n    try:\n        A_inv = np.linalg.inv(A)\n        p_true = A_inv @ p_meas\n        p_true = np.clip(p_true, 0, 1)\n        p_true /= p_true.sum()  # normalize\n    except np.linalg.LinAlgError:\n        p_true = p_meas\n\n    return {'0': p_true[0], '1': p_true[1]}\n\n\n# Test: |+> durumunu ölç (idealde %50-%50)\nqc_plus = QuantumCircuit(1, 1)\nqc_plus.h(0)\nqc_plus.measure(0, 0)\n\nshots = 4096\nraw_counts = noisy_backend.run(qc_plus, shots=shots).result().get_counts()\nmitigated = mitigate_readout(raw_counts, A, shots)\n\nprint(\"Ham ölçüm (gürültülü):\", {k: v/shots for k, v in raw_counts.items()})\nprint(\"Mitigated olasılıklar:\", {k: round(v, 4) for k, v in mitigated.items()})\nprint(\"\\n→ Readout mitigation, VQC’nin expectation value hesaplarını daha doğru hale getirir.\")"
  },
  {
   "cell_type": "markdown",
   "id": "7f534a46",
   "metadata": {
    "id": "7f534a46"
   },
   "source": "### Sunum notu (Readout Mitigation)\n\n> “Klasik ML’de confusion matrix nasıl modelin sınıflandırma hatalarını gösteriyorsa,  \n> kuantumda da readout confusion matrix, ölçüm hatalarını düzeltmek için kullanılır.  \n> VQC’de her epoch’ta expectation value hesaplanırken bu düzeltme uygulanırsa  \n> optimizer daha temiz bir loss sinyali görür.”"
  },
  {
   "cell_type": "markdown",
   "id": "674912bf",
   "metadata": {
    "id": "674912bf"
   },
   "source": "## 1.2 Zero-Noise Extrapolation (ZNE)\n\n**Fikir:**  \nGürültüyü bilinçli olarak *artır* (noise scaling), sonuçları ölç, sonra “gürültü = 0” noktasına *extrapolate* et.\n\n$$E(\\lambda) \\xrightarrow{\\text{extrapolate}} E(\\lambda=0)$$\n\nBurada $\\lambda$ gürültü ölçekleme faktörüdür (1 = normal, 3 = 3 kat gürültü vb.).\n\n**En yaygın yöntem:** *Unitary folding* – kapıları $U \\to U U^\\dagger U$ şeklinde tekrarlayarak derinliği (dolayısıyla gürültüyü) artırma."
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "fabb6cc5",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "fabb6cc5",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787111999732,
     "user_tz": -180,
     "elapsed": 38,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "85240c76-3acd-4a51-d1e6-7a30c617dfc0"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Ideal <Z> (theta=π/3): 0.5000\n",
      "Gürültülü tek ölçüm:     0.4775\n"
     ]
    }
   ],
   "source": "def make_simple_expectation_circuit(theta: float) -> QuantumCircuit:\n    \"\"\"Basit 1-kübit variational circuit: RY(theta) → <Z>\"\"\"\n    qc = QuantumCircuit(1)\n    qc.ry(theta, 0)\n    return qc\n\n\ndef execute_with_noise(circuit: QuantumCircuit, shots: int = 2048,\n                       depolarizing_prob: float = 0.02) -> float:\n    \"\"\"\n    Basit depolarizing noise altında <Z> beklenti değeri hesapla.\n    \"\"\"\n    noise_model = NoiseModel()\n    error = depolarizing_error(depolarizing_prob, 1)\n    noise_model.add_all_qubit_quantum_error(error, ['ry', 'rz', 'sx', 'x'])\n\n    backend = AerSimulator(noise_model=noise_model)\n\n    # Ölçüm ekle\n    qc = circuit.copy()\n    qc.measure_all()\n\n    result = backend.run(qc, shots=shots).result()\n    counts = result.get_counts()\n\n    # <Z> = P(0) - P(1)\n    p0 = counts.get('0', 0) / shots\n    p1 = counts.get('1', 0) / shots\n    return p0 - p1\n\n\n# Ideal değer (theta = π/3 → <Z> = cos(π/3) = 0.5)\ntheta = np.pi / 3\nideal_value = np.cos(theta)\nprint(f\"Ideal <Z> (theta=π/3): {ideal_value:.4f}\")\n\n# Gürültülü tek ölçüm\nnoisy_value = execute_with_noise(make_simple_expectation_circuit(theta), depolarizing_prob=0.03)\nprint(f\"Gürültülü tek ölçüm:     {noisy_value:.4f}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "60f66ee3",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "60f66ee3",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112004703,
     "user_tz": -180,
     "elapsed": 59,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "e7aab117-03e6-4a97-8236-17194fec74c3"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "  scale=1: ⟨Z⟩ = 0.4814\n",
      "  scale=3: ⟨Z⟩ = 0.4521\n",
      "  scale=5: ⟨Z⟩ = 0.4609\n",
      "\n",
      "Ideal değer:          0.5000\n",
      "Gürültülü (λ=1):      0.4814\n",
      "ZNE sonrası (λ→0):    0.5104\n",
      "Hata: 0.0186 → 0.0104\n"
     ]
    }
   ],
   "source": "# --- Zero-Noise Extrapolation (pure Qiskit, mitiq/cirq gerektirmez) ---\n# Fikir: gürültüyü scale ederek ölç, sonra λ→0 noktasına extrapolate et.\n\ndef fold_ry_circuit(theta: float, scale: int) -> QuantumCircuit:\n    \"\"\"\n    Basit unitary folding: RY(θ) → [RY(θ) RY(-θ) RY(θ)] * ((scale-1)//2)  + RY(θ)\n    scale=1 → normal, scale=3 → 3x derinlik (daha fazla gürültü), vb.\n    scale tek sayı olmalı.\n    \"\"\"\n    scale = int(scale)\n    if scale % 2 == 0:\n        scale += 1  # tek yap\n    qc = QuantumCircuit(1)\n    # İlk RY\n    qc.ry(theta, 0)\n    # Folding çiftleri\n    for _ in range((scale - 1) // 2):\n        qc.ry(-theta, 0)\n        qc.ry(theta, 0)\n    return qc\n\n\ndef extrapolate_richardson(scales, values):\n    \"\"\"\n    Basit Richardson / polinom extrapolation → λ=0 tahmini.\n    2 nokta → linear; 3+ nokta → numpy polyfit derece 1 veya 2.\n    \"\"\"\n    scales = np.asarray(scales, dtype=float)\n    values = np.asarray(values, dtype=float)\n    deg = min(2, len(scales) - 1)\n    coeffs = np.polyfit(scales, values, deg)\n    # λ=0 → sabit terim (polyfit high-to-low power)\n    return float(np.polyval(coeffs, 0.0))\n\n\ntheta = np.pi / 3\nideal_value = np.cos(theta)\nscale_factors = [1, 3, 5]\nshots = 2048\nnoise_p = 0.025\n\nmeasured_at_scales = []\nfor s in scale_factors:\n    qc_s = fold_ry_circuit(theta, s)\n    val = execute_with_noise(qc_s, shots=shots, depolarizing_prob=noise_p)\n    measured_at_scales.append(val)\n    print(f\"  scale={s}: ⟨Z⟩ = {val:.4f}\")\n\nzne_value = extrapolate_richardson(scale_factors, measured_at_scales)\nnoisy_value = measured_at_scales[0]\n\nprint(f\"\\nIdeal değer:          {ideal_value:.4f}\")\nprint(f\"Gürültülü (λ=1):      {noisy_value:.4f}\")\nprint(f\"ZNE sonrası (λ→0):    {zne_value:.4f}\")\nprint(f\"Hata: {abs(noisy_value - ideal_value):.4f} → {abs(zne_value - ideal_value):.4f}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f1f7fff3",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 520
    },
    "id": "f1f7fff3",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112010100,
     "user_tz": -180,
     "elapsed": 645,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "8eeceec4-d166-4476-cda0-c8b035a380b7"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAHVCAYAAAATqShMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAuc9JREFUeJzs3WdYFFcbBuBnC72K9KKADRFFsGHvid3YsWvsaSaWWGP7Ykw3Mc2eGEsssST2rtEoNgQ79gJK773sfD82rKzswoLAUJ77uojhzJmZd87Ozr7MnjlHIgiCACIiIiKiSkoqdgBERERERKWJCS8RERERVWpMeImIiIioUmPCS0RERESVGhNeIiIiIqrUmPASERERUaXGhJeIiIiIKjUmvERERERUqTHhJari5syZgw4dOogdRpVUWm1fHl7Tr7/+Gv369RM1hsJMmzYN7777rthhVAleXl749ttvi7ROamoqPDw8sHLlylLZPlUtcrEDICpLgYGBGDZsWKH13nvvPbz33ntlEJFuli1bhg0bNsDOzg7Hjh2Dnp6e2vLcxGL37t1F3vaLFy9w//79EolTV7nHo82vv/6Kli1bFmmb06dPR1BQEI4fP/664ZWZ12n7go5XjNc0r+fPn2PRokVYv369quzs2bMYP358oevOmjULY8eOBVC8874o59bIkSPRtGlTjBw5En5+frofIAEA9u/fj23btuHOnTvIzs6Gq6sr+vTpgxEjRkAuV08v7ty5g8jIyCJtX6FQICQkBNHR0YXWfXX7OTk5aNCgAaZMmYKpU6cWab9UOTHhpSqlfv362LNnj8ZlKSkp6NOnD54/fw4zM7OyDawQERERCAkJQUhICFatWpUvGX/06FGxt71s2TJ88sknrxtikeQez6lTp2BnZ5dveY0aNYq8zbCwMDx48KAkwqsQCjpeMV7TvL766itYWVlh4MCBqjIfHx+t7734+Hj07t0b0dHRMDc3V5UX57wvyrnl4+OD9u3bY/HixTh48GBRD7PKSk9Px/Dhw3Hw4EFMmzYNU6ZMgYGBAf7991/Mnj0bP/zwA/bt2wcHBwfVOjdv3oSVlVWpxfTq9gVBQEhICKKiokptn1SxMOGlKsXIyAgeHh75ygVBwKBBg/D8+XMMHz4co0ePFiG6wjVr1gxLlizBqFGj1BKD15H3Q6ms1apVC87OzqLtv7IS8zVNS0vDb7/9hilTpkAqfdlrzsTERON7T6FQoFevXoiOjsakSZMwYMCAfHWKc97rem6NHDkS48aNw8OHD+Hu7q7Ttqu6999/H3v27MGxY8fQsWNHVbmvry969eqFpk2bon///vj3339V50C9evVKNabS3j5VfOzDSwRg6dKl2LlzJ3x9fbFmzZp8y8PDwzF79my0bt0a3t7eGDBgAE6dOqVW5+OPP0aHDh2QkZGBJUuWoGXLlmp3uLZu3YrevXujUaNGaN++PZYuXYrk5OQixfnFF18gOjoaX3zxhU71g4ODMXbsWPj6+qJp06aYNGkS7t69q1ZHU3/PiIgIzJ49Gx06dECTJk3g7++Pw4cP59t+aGgoZsyYgVatWqFx48YYPHgwzp07V6RjKsiTJ0/QuHFjvP/++2rl0dHRaNGiBUaMGAFBEODv748DBw4gLCwMHh4eqp/MzEwAyi4qPXr0QFpaGubPnw8/Pz+MGjUKAPDtt9+q6nt6eqJly5b44IMP8PjxY7V95m4jJSUFM2fORNOmTdGuXTv8+OOPUCgU+WLXpe010SWewo5XWx9eXWLKPc6MjAx88sknaNasGdq0aYMVK1YUGjsAnDhxAvHx8ejWrZtO9efOnYuDBw+idevW+OGHHzTWKep5XxRvvvkmBEEoVnegklKUc2vgwIF4++23820j97zRtF1N5z0AHDt2DP7+/vDx8UGLFi3w8ccfF9p94O7du1i3bh1GjBihluzmcnNzw7x58xAQEKB2R19TH9uzZ89i+PDhaN68Odq1a4cPP/wQz549K3D/gLJbSv369dXOl7zbf/r0Kby8vAAAK1euVL0/2LWhihOIqrh9+/YJUqlUsLGxEZ48eZJv+a1btwRbW1uhefPmwl9//SVcuHBBmD9/vqCnpyf8/vvvqnrDhw8XnJychBEjRgjff/+9cO7cOWHJkiWCIAjC1KlTBZlMJixYsEAICAgQNm7cKNjZ2Qne3t5CcnJyoTFOnTpVACDExcUJI0aMEIyMjITQ0FDVcm9vb8Hb21ttnUOHDgn6+vpC7969hePHjwuHDx8WOnToIJiamgrnz59X1Rs9erTg5OSk+j0zM1OoX7++0KJFC+HAgQPC1atXhR07dgjdu3cXDh8+rKp39epVwcrKSmjTpo2wb98+ISAgQJg5c6agp6cn7Ny5U6fjefbsWaHH/ssvvwgAhDVr1giCIAg5OTlC165dhWrVqgkPHz4UBEEQHj9+LPTo0UNwdHQUbt++rfpRKBSCIAhC3759hXr16gkDBw4Ufv75Z+Hff/8Vli5dKgiCIERGRqrq37hxQ9i7d6/Qtm1bwcHBQYiOjlbFkbuNAQMGCCtXrhQuXLggfPnll4Kenp4wceLEEml7XeMp7Hg1bVfXmHKPc9SoUcLKlSuFixcvCkuWLBEkEonw448/Fvp6ffzxx4JUKtXpvN62bZsAQHBychLCw8PzLS/OeV+UcyuXs7Oz0KtXL53rl7SinFtNmjQROnfunG8bs2bNEl79SC/ovF+6dKkgk8mEGTNmCGfPnhUOHz4stGrVSnBzcxOioqK0xvr1118LAIS//vpLa53Hjx8LAIRRo0apymQymTBr1izV72fOnBHkcrnw4YcfCufPnxfOnz8v/PDDD0LTpk1VdZKSkgQAwv/+9z9BEARBoVAIs2fPFmQymfDdd9+p7TPv9jMzM4UbN24IAITJkyer3h9hYWFaY6bKjwkvVWkhISGChYWFIJfLhVOnTmms06pVK6FmzZr5PsDff/99oVq1akJKSoogCMqEVyKRCKtXr1bVUSgUwpUrVwQAwpw5c9TWP3/+vABAWLhwYaFx5v3gf/LkiWBgYCC8/fbbquWvfvDn5OQIrq6ugpeXl5CTk6Mqz8jIEGrUqKFW99Xk6OrVqwIAYf/+/fniyMzMVNtnvXr1hPT0dLU6Y8eOFezt7dXqajueWrVqCfXq1cv3k52drVZ/xIgRgqGhoXDlyhVh/vz5gkQiEfbu3atWZ8iQIULNmjU17q9v376CRCIRtmzZoirLTQ41SU5OFgwMDISvv/463za2bt2qVvfzzz8XAAgXL14UBOH12r4o8RR0vK9utygx9e3bV5BKpcKuXbvUtvnmm28KtWrVKjTWAQMGCNWrVy+0XnBwsGBsbCwYGBgIFy5c0FinqOd93nV0PbcEQfke9/DwKDTm0qLruSUIRU94NZ33wcHBgkQiEebPn69WPyEhQbC2thamTp2qNdbJkycLAISbN28WeEx6enpCy5YtVb+/mvBOnz5dqFatWr718l438ia8qampwoABAwRTU1Nh3759+dZ7dftZWVkCAGHevHkFxklVB7s0UJWVmJiIvn37IiEhAcuXL0f79u3z1QkLC8O5c+fg7+8PExMTtWX9+vVDXFwcLly4oCoTBEFtFAiJRIL9+/cDAMaMGaO2vp+fHzw8PLBv3z4AwLZt29S+nvbw8EBSUlK+mGrUqIEPPvgAv/32G27cuKHx2G7evInHjx9j5MiRav0o9fX1MWzYMAQHByM0NFTjunZ2dpDL5VixYgWuX7+utiz3KfmQkBAEBwdjxIgRMDAwyNcu4eHhCAoK0rj9vNatW4c9e/bk+5HJZGr1Vq5ciVq1aqFHjx5YunQpZs+ejV69ehW6/bzkcjkGDRqk+l0ikQAAsrKysHLlSvTs2RPe3t7w8PBAkyZNkJOTgzt37qhtQ19fX62bCgDVV8S5r+PrtH1R49FVUWMyMDDAW2+9pbaN5s2b49GjR8jKyipwX7GxsbC0tCywTkxMDN566y2kpqZi5cqVaN68eaHHoMt5n5eu5xYAWFpaIiYmptBtliZdzq3i0HTe79ixA4IgYNy4cWp1zc3N0alTpwIf4MvtNvPqiBma9pudna11ubOzM+Li4vDFF1+otb2m7YaHh6Ndu3a4cOECzp49i549exa4byJN+NAaVUmCIGDEiBG4c+cO3n77ba1DkD158gQAsHHjRuzbtw+CIKjWT09PB6C8GOeqXr16vsT4+fPnADSPPFCzZk1cu3YNABAXF4eQkBC15Tk5ORrjmjt3LtatW4ePP/4YBw4cyLe8sH3m1tH0UI+DgwM2btyImTNnolGjRrC3t0fHjh0xcuRIdO/eHcDLdlm1ahW2bt2q1i6pqakA1NtFG10fLDIxMcHChQsxePBg2NnZYcmSJYWu8ypHR8d8QyUBwNChQ3HkyBF8+umnaN68OSwsLCCRSNC6dWukpaWp1XVwcMiXMNnb20Mul+PFixcAXq/tixqProoak5OTk+oPglxWVlZQKBSIjY3VOPpBLlNTU6SkpGhdnpOTgyFDhuDRo0f44IMP8v0hWJDCzvu8ivJAZEpKSqEjs2zbtg0LFy7UOda8zM3NcfHixQLr6HJuFYem8z73/Zv7R6Og/LYXgPJ9q+26k7s9QHm+1KlTR2Od+Ph4pKWlwcXFRet2pkyZgtu3b2PRokWYO3cuvLy80LVrV7z//vuqczLX2rVrkZGRgU2bNsHb27uQIybSjAkvVUkLFizA3r170aJFC/z8889a6+V+CI4ZMwYjR47UWCf3AwAADA0NtW4jLi4u39PzMTExquX+/v75HjTS9kS6paUl5s2bh+nTp+PEiRMF7vNVuXdTCvqA9/f3h7+/P65fv46zZ89i27Zt6NGjB77//nt88MEHqnUnT56s8al6ACU6+kJcXBw+/vhjODk5ISwsDF999RXmzJlTpG1oem2ePn2KnTt34osvvsAHH3ygKs/IyNDYdrGxsfnKkpKSkJ2drWqT12n7osajq6LGpOkuaK7cxEgbJycnHD58GDk5ORq3M2PGDBw/fhwdOnTAN998o1P8uQo774srMjISTk5OBdZ58803i51sFdSeuXQ5twDlH3+a/vDRNsattmuSVCrFpk2bNC7P+y3Aqzp06IBPP/0UJ06c0PitGADVa9O2bVut2zEwMMCqVauwfPlyBAQE4NSpU1i3bh3WrFmD4OBguLq6qurOmDED169fx7hx42BiYpLv2wciXbBLA1U5u3fvxtKlS+Hg4IBdu3bl+0o+L09PT9jZ2SEoKChfd4Pcn8KGSWrVqhUA5JsgICIiAjdu3EDr1q0BKD/MX912QR887733Htzc3DBz5sx8SYi3tzeMjY01Tkpw7NgxWFtbo27dugXGDQANGzbElClTcOLECbi7u6ueZPf19YWlpSWuXbumtV1MTU0L3b4uBEHAyJEjERsbi5MnT+KDDz7AJ598gtOnT6vVMzQ0LPArVE1yu4y8+ofIX3/9pTGxS0xMxNWrV9XKTp48CeDl6/w6bV+UeIpyvCV1PuiiZcuWyMzMxM2bN/Mt27RpE7777jvUrFkTO3bs0HjHvTAFnffFkZycjLt376reh9poen/q+qPtTmheupxbgPKO/MOHD9VGb8jJycHZs2d1PuZOnTpBoVDg2bNnGuMt6Fzo1KkTfHx88PPPP2tMsrOysrB06VJYWFjoNLyjsbExOnXqhCVLlmDbtm1ITEzMd54aGhpi586dGDRoEAYOHIjff/+90O3KZLJCu1VQ1cKEl6qU27dvY9SoUdDT08POnTvV7s5qIpPJsHz5chw4cADz5s1TfV0vCAJu3LiBCRMmFPj1H6D82tDHxwdz585VdV9ISEjA2LFjIZFIMHPmzGIdi76+PpYuXYrAwMB8fRpNTEwwffp07N69G+vXr4cgCFAoFPj2229x6tQpfPLJJ1rvOp05cwbLli1T+zC7efMmIiMj4enpCUB5d+bLL7/E9u3bsXTpUlX3DkEQEBQUhIkTJxbrmDT57LPPsH//fvz666+oU6cOvv76azRr1gz+/v5q3SZq1aqFyMjIIn39W7duXTg4OGDNmjVITEwEoJyNb+XKlbCxsclX39nZGZ9++qlqv/fv38eMGTPg5eWFPn36AHi9ti9KPEU53teJqai6dOkCmUyGM2fOqJVfvXoVEyZMgJGREXbv3g1ra+tibb+g8744zp49i5ycHFV3HbHocm4Byi4v4eHh+OWXXwAoE8yPP/4Ytra2Ou+rX79+6NixI6ZMmaKWXKanp2PHjh1ah4cDlH2A//jjD8jlcnTt2hVXrlxRLXv69Cn69euH4OBgbN26FdWqVdO6nS+//BJ79uxR9QlWKBT4559/ACgnCHqVXC7H77//jnfeeQdjxowpdJg8iUQCd3d3BAcHl8gfRlQJlOkjckQi++GHHwQAgrGxscYnuHN/3n33XbX19u7dK/j4+AhyuVxwcXERTE1NBW9vb2Ht2rWqOrnDkmkSGRkpDBo0SNDT0xMcHBwEuVwu+Pr6CufOndMp7rxPq+elUCiEpk2bCgDyPa2uUCiETz/9VLCyshIsLCwEMzMzwc7OTlixYoVavVef6I+JiRHmzZsn2NvbCzY2NoKzs7NgamoqvPPOO0JSUpLaun/++afQsGFDQS6XCzVq1BBMTEyEJk2aCBs3btTpeLQ9Sb9p0yZBEATh+PHjgkwmE6ZPn662/tOnTwVra2uhQ4cOqqfuo6KiBG9vb8HIyEioU6eOUK9ePSEjI0MQhJfDM2ly9uxZoVatWoKRkZFgb28vNG3aVAgJCRGcnJyE4cOHq+rlbuPy5ctC3bp1BUdHR0EikQgdO3bMNwRWcdu+KPEUdLyatqtrTNraavny5QIA4cWLFxrb8dVt5H1CXxAEYdmyZQIAwdTUtMD33syZM1XrFOe81/XcyjVy5EhRR2gQhKKdW4IgqIb/s7W1FRwcHIQNGzYUOCyZJqmpqcLMmTMFKysrwczMTPU+9/f3F65du1ZozKGhocLbb78tWFhYCHZ2dkKNGjUEiUQieHl5CYGBgfnqvzqKwqVLl4QBAwYIxsbGQo0aNQRLS0uhdu3awoYNG1R1Xh2WLNeCBQsEAMKiRYu0bl8QBGH37t2ChYWFYGNjI9SrV0/44IMPCj0uqrwkgsA/fajqiI+P1+lhKjMzM419+hISEhAbGwsHB4d8fd9evHiB1NRU1KpVS+t2U1NTER4eDgsLC1SvXl3nuCMjIxEbG4u6devm6+YQExODqKgoGBoaqvV7y6VQKBAaGgqJRAJnZ+d8DyMVFHdUVBSys7NhZ2dXYPeKuLg4xMfHw9HRscAuIq8ejzb29vawtLREWFgYkpKSULt27Xxff0dERCAuLg6urq5qr0VkZCTi4uIgCALq1asHiUSCsLAwZGZmws3NTes+w8PDIZVKVXfKHjx4AGNjY1X3grfeegt37tzBnTt3IAgCQkNDYWRkVOCdytdp+8LiKeh4C9puYTFpa6u4uDhERESgTp06hd4NPnfuHNq0aYOrV6+q+r3GxsZq7Weal4WFheoYi3Pe63puAcoJTFxdXfH999/nG7GgLBXn3EpJSVH1PdbX10dUVBRiYmLUJp/Q5bwXBEH1UKOjo2O+86EwOTk5ePHiBeLi4jB8+HCEhYXhn3/+QYMGDdTqhYSEwMrKKt83FTk5OQgLC4O5uXm+0T2E/6YHtrGxyXe9fPDgAbKyslTXhoK2/+zZM2RkZMDMzKzQb/Wo8mLCS0Skg7xJCRVu0KBByMzMxF9//SV2KFp9/PHHOHLkCAIDAwv8g660VZZz6/nz52jdujUyMjJw5syZAv/4JyprHKWBiIhK3Pr161V3DsurKVOmYNasWaImu5WJo6MjAgMDERERUWIPrRKVFCa8RERU4szMzFCvXj2xwyhQQV/1U/FUq1atwIfViMTCLg1ERDrQpT8kUXHw3CIqfUx4iYiIiKhSY8clIiIiIqrU2IdXC4VCgefPn8PMzKzIw7QQERERUekTBAFJSUlwdHQs8AFUJrxaPH/+HC4uLmKHQURERESFePbsGZydnbUuZ8KrhZmZGQBlA5qbm5f6/hQKBaKiomBjY8MhcvJgu2jHttGM7aId20Yztot2bBvN2C6aidEuiYmJcHFxUeVt2jDh1SK3G4O5uXmZJbzp6ekwNzfnmycPtot2bBvN2C7asW00Y7tox7bRjO2imZjtUlj3U75KRERERFSpMeElIiIiokqNCS8RERERVWpMeImIiIioUisXD60pFAqkpqbC1NS00LopKSlIS0tTK5PL5bC0tMxXNzs7G/Hx8bCwsICenl5JhUtEREREFYiod3gFQcC8efNgaWkJKysruLm5Yf/+/QWuM336dDg5OcHDw0P107t3b7U6oaGhmD9/PmrUqAEbGxv8+++/pXkYRERERFSOiXqH9/vvv8dPP/2EI0eOoGnTpvj222/Rv39/XL9+HXXr1tW6Xu/evfHnn39qXb5582YYGBjgr7/+QvPmzV8vyJQUwMwMyB3uIjMTyMoC5HLAwEC9HgAYGQG5Q3FkZSnry2SAoWGhdSWpqUB6OmBs/LJuaiogCMr1ZTJlWXY2kJGhXNfIqHh109IAhUJ5DPL/ToOcHOX+i1JXIlGPNz1duUxfH8i9q16UugqFcn8AYGLysm5GhnKZnp6yfmF1s7PV6wqCsn0AZQyvvp5FqavLa18S54mm1zNv3dx4tdUt7LV/3fPk1dfzdc8Tba9nUc+TzEzlT668r+frnifaXs/inidFvEbofJ4UcI2QpKYq2zN3u5XpGvHq61nUa0RKivLYKss1orjnSd5rRO6xZWcrt10ZrhEFve91ratQKP8/VyW6RrxuHiFJTVUuy9uWpXmNyG2Lwggicnd3F6ZPn65W5urqKkybNk3rOpMmTRIGDBggJCcnCzk5OQVu/9mzZwIA4eTJk0WOLSEhQQAgJACCEBn5csGnnwoCIAjjx6uvYGysLH/06GXZ8uXKsmHD1OtaWyvLb9xQFeWsXCkIgKDo00e9bs2ayroXL74s27RJWdali3pdT09led7j3b1bWdaqlXrdpk2V5fv2vSw7ckRZ5u2tXrd9e2X59u0vy86eVZbVrq1et0cPZfmvv74su3pVWeboqF534EBl+Y8/viy7e1dZZmEhCIIg5OTkCC9evBAUo0Ypy7/88mXd0FBlmVyuvt133lGWL1z4siwuTlkGCEJm5svyGTOUZTNmvCzLzHxZNy7uZfnChcqyd95R359criwPDX1Z9uWXyrLRo9XrWlgoy+/efVn244/KsoED1es6OirLr159Wfbrr8qyHj1UbZOTk6N8HQDl65Jr+3ZlWfv26tv19laWHznysmzfPmVZ06bqdVu1Upbv3v2y7ORJZZmnp3rdLl2U5Zs2vSy7eFFZVrOmet2+fZXlq1e/LLtxQ1lmba1ed9gwZfny5S/LHj1Slhkbq9cdP14QACFx1qyX14fIyJevZ15TpyrL5s59WZac/LJucvLL8rlzlWVTp6pvI7duGVwjhNWrlWV9+6rXLcI1QvHfNSLn+PGXhRX8GqEyenSxrxE5OTlC+J07le4aoaaY1wjVdebvvyvVNUL49NOXZcW8RoQ/ePDyOlNJrhGvm0fkHDqkzGXK8BqRACjztYQEoSCidWmIiorCw4cP0aZNG7Xydu3a4cKFCwWu+/fff8Pa2homJibo1KkTrl+/XpqhEhEREVEFJhGEvPfky86tW7fQoEEDnD17Fq1bt1aVz5gxA3v37kVISIjG9VauXAlvb2+0aNECMTExePfdd3Hq1CncvHkTNjY2anVDQ0Ph4uKCkydPokOHDgXGk5GRgYyMDNXvuVPVxYWGwtzevtS+isjIEXDgRjiOBYciLjYB1S1N0cmnJnp42cNAT1bluzSopik0N4eUXRrU6ir09V9O4ZieXvTXvpJ2aVBkZiIqPh42Tk7KmX7yvp5VvEuDIjkZ0VFRsHZ2hjS3LSv4NULlNbo0KBQKREVGwsbERHnOVJJrREl0aVBIJMrrTLVqkLJLg6quQqFAVEoKbGxtledMJblGvG4eocjKQnRoKKxtbSEtoy4NiXFxqObsjISEhAJnxhUt4b19+zY8PT1x+vRptGvXTlX+4Ycf4vDhw7h9+7ZO20lJSYGtrS2++uorvPPOO2rLipLwLlq0CIsXL85Xfvfu3ULnZy6ufx7E439HHiMpIwdSCaAQoPrXzECGBW+6oq27Zansu6JQKBRISEiAhYUFp298BdtGM7aLdmwbzdgu2rFtNGO7aCZGuyQlJaFu3bqFJryiPbTm6OgIAIiIiFArj4iIgIODg87bMTExgaOjIx4+fPha8cyZMwfTpk1T/Z57h9fGxqbABiyuY7cjMGvfA2XPEyiT3Lz/Jmfk4OO9D7BqhC+61Lcr8f1XFAqFAhKJRHkXkxcVNWwbzdgu2rFtNGO7aMe20YztopkY7WKY9252AURLeC0sLNCoUSMcO3YMgwYNAgDk5OTgxIkTmDx5sqpecnIysrOzNY6zCwCRkZF4+vQpXF1dXyseAwMDGOT9auE/Uqm0xF+09KwczPjzGiCo8t18BAASAZj55zVcmNsFhnqyEo2hIpFIJKXyOlQGbBvN2C7asW00Y7tox7bRjO2iWVm3i677EfVVmjdvHn799Vds2LABd+/exeTJk5GdnY0pU6ao6nz44YeqB9syMjLQvn17HDhwAE+ePMGZM2fw1ltvwc7ODiNGjFCtk5GRgejoaMTFxQEAEhISEB0djdTcPjoiO3D9BRLTsrUmu7kEAAlp2Th440VZhEVERERUKYma8A4ePBhr167F999/j44dO+LZs2c4ceIE7O3tVXXMzMxQrVo1AMq7sF9++SXWrl2LDh06YOrUqWjWrBmuXLmidgd49+7d8PDwQMeOHVG9enWMGzcOHh4e+PHHH8v6EDU6cjMCUoludaUS4PCNiMIrEhEREZFGok8tPGrUKIwaNUrr8uXLl6v93qJFC+zatavAbfr7+8Pf379E4isN8amZqr66hVEIQHxaZuEViYiIiEgjdjwRgaWxfpHu8Foa6RdekYiIiIg0YsIrgjca2BXpDu+bXlV3lAYiIiKi18WEVwQ9GjrA3EiOwm7ySgBYGMnR3Uv3YdqIiIiISB0TXhEY6snw7aDGgAQFJr0CgG8GNa7SQ5IRERERvS4mvCLp4mmH1SObwtxI+dxgbp/eV/v2xqRkgIiIiIiKT/RRGqqyrp52uDC3Cw7eeIFDN8IRlZACGwsTdPOyx9OYVCw/dg+f/HUTng4WaOhsIXa4RERERBUSE16RGerJ0M/HGX29HREZGQlbW1tIpVIoFAKuhyXg2O1ITNl8BfvebwNLY47WQERERFRU7NJQTkmlEnwzuDFqVjdGaFwaPtwWBIWuQzsQERERkQoT3nLMwkgPvwxvAgO5FKdCovDDiftih0RERERU4TDhLec8Hc2xtF9DAMB3x+/iVEikyBERERERVSxMeCuAgU2cMaxFDQgC8OG2IDyLTRU7JCIiIqIKgwlvBbGwtye8nS0Qn5qFdzYHIj0rR+yQiIiIiCoEJrwVhIFchp9HNEE1Yz1cD0vA4r23xA6JiIiIqEJgwluBOFka4Xt/H0gkwB8Xn2LH5Wdih0RERERU7jHhrWDa1bXBR13qAgDm77mBm88TRI6IiIiIqHxjwlsBvdexNjp52CIjW4HJm64gITVL7JCIiIiIyi0mvBWQVCrB8sGN4WJlhGexaZi2nZNSEBEREWnDhLeCsjBWTkqhL5fi+J1I/HyKk1IQERERacKEtwLzcrLAp329AADfHL2LM/eiRI6IiIiIqPxhwlvBDW7mAv9mLhAE4IM/riIsPk3skIiIiIjKFSa8lcCiPg3Q0MkCcf9NSpGRzUkpiIiIiHIx4a0EDPVk+Hm4LyyM9BD8LB7/28dJKYiIiIhyMeGtJFysjPGdf2NIJMCmgKfYFRgqdkhERERE5QIT3kqkYz1bfNCpDgBg7u7ruP0iUeSIiIiIiMTHhLeSmdq5DtrXtUF61n+TUqRxUgoiIiKq2pjwVjJSqQTfDWkMJ0sjPIlJxfTtwZyUgoiIiKo0JryVUDUTffwywhf6MimO3Y7Ayn8eiB0SERERkWiY8FZSjZwtsbhvAwDA14dD8O/9aJEjIiIiIhIHE95KzL+ZCwY1cYbiv0kpXiRwUgoiIiKqepjwVmISiQT/e8sLDRzNEZOSiXc2ByIzWyF2WERERERliglvJWeoJ8Mvw5vA3FCOq0/jsXQ/J6UgIiKiqoUJbxVQo7oxlg9pDADYcP4J9lwNEzcgIiIiojLEhLeK6FzfDu93qg0AmLPrOkLCk0SOiIiIiKhsiJ7w7t+/H2+++SYaN26MkSNH4uHDhwXWX7RoETw8PNR++vTp89rbrQo+7FIXbetYIy0rB5M3XUFSOielICIiospP1IT3wIEDeOutt9C1a1f89NNPSEtLQ9u2bREXF6d1nfDwcNSsWRN79uxR/Xz//fevvd2qQCaV4Ht/HzhaGOJRdApm7rgGQeCkFERERFS5iZrwLlq0CMOGDcOMGTPQunVrbNmyBWlpaVi5cmWB65mZmand4XVzcyuR7VYFVib6+HlEE+jLpDh0Mxyr/+GdbyIiIqrc5GLtODk5GZcvX8ZHH32kKtPX10eXLl1w8uRJzJkzR+u6//77L3x9fWFhYYG2bdvi448/hqmp6WtvV5OUzBTIMmX5ymVSGQzlhmr1tJFKpDDSMyqwrkKhQGpWKtKy0mBiYKIqT81K1XoXViKRwFjPuMh1G7tYYnYPdyzaewPLDgWhjr0eWrhVV6tvov8yhrSsNCgE7cOZ5a2bnp2OHEVOidTNe2wZ2RlQQHsMxnrGkEgkqrrZimytdY30jCCVKP/Wy8zJRFaO9q4dRalrKDeETCorct2snCxk5mRqrWsgN4BcKs9XN/ecSclMgVQqzVc3W5GNjOwMrdvVl+lDT6ZX5Lo5ihykZ6drrasn04O+TL/IdRWCAmlZ2seK1rWuQqFARs7LYxEEAalZqVq3K5fKYSA30KluUd73JX2N0Fa3qNeIV88ZbXWL8r4X8xqh6/u+oLqvvpcqyzWisLq6vO9lEpmqbla29ngr0jUCKNr7XlNdTddfoHJcI3Stq+l9n7ddzAzNCqyb1+tcIwpqi7xES3hDQ0MhCAIcHBzUyu3t7XHjxg2t61laWmLatGlo3749wsLCsGDBAuzduxcXLlyAvr5+sbebkZGBjIyXb/zExEQAgOM3joBh/vrda3fHvqH7VL/bfm2r9Q3TvmZ7nBh1QvW76/euiE7VPPNZE4cmuDj+oup3z5888SThica6ntaeuD7luur3Zqub4Va05mHHalrUxMMPXt7N/eXmCDwzugwA6LxVva61sTUipkeofu++uTtOPzmtcbvGesZImv3yAbj+2/rj4P2DGusCQM4nL0/iEbtGYOftnVrrJs5KhJHcCIIgYNL+Sdh4baPWuuHTwmFjYgMA+OjwR/jl8i9a6z54/wFcLV0BAHOPz8U357/RWvfapGtoYKucsW7pP0ux5J8lWusGjAtAM8dmAIDvzn+HWcdnaa17fORxdHDtAABYdXkV3j/0vta6f/v/jZ51egIANl7biHF/j9Nad+uArRjkOQgAsPPWTvjv9Ndad12fdRjjPQYAcPDeQfTZmr8vfK4fuv2Ad5q9AwA4/fg0Om/srLXuF52/wIxWMwAAl59fht86P611F7RbgIXtFwIAbkbeRKNVjbTWnd5yOr7s8iUA4HH8Y9T6oZbWuqM9R2Ntv7UAgKiUKNh/a6+17qhGo/Br318BKD9EzL8w11p3QP0B2D5wu+p302WmWuuW1jWiqUNTXBh/QfV7Ua4RLda20Pka0e7Xdrj84rLGuuXpGpH74Tdx70T8fu13rXV5jVAq6jViVMNREAQBh+4dQt/tfbXWrWjXiClNp+DH7j8C4DWiuHlEublGXNV+jchLtIQ3J0cZsL6+vlq5gYEBsrO1/5W+dOlSyGQv77g2bdoU7u7u2LZtG0aOHFns7S5btgyLFy/WOf7MzExERkaqfi+oL+yrdRUK7X/lZGdlq9XNPR6NdXPU62bnaD++nJwctboF/aWuUCjU6mZmar9bIAiCznUBqNXN+weGJlFRUTCUGSIhIQHpadrvAABAVHQUhBTla5CWWvCMcjExMTDOVP6Vmpqi/a96AIiNjUUklDGnpBT8V2RcbBwi5cq6ycnJBdaNj49XtUVSUsEjZiTEJ7ysm1hw3cSERFXdxITEAusmJSap6ibEJxRcN+ll3fj4+ALrJicnq+rGxRbcbz4lJUVVNzY2tsC6qSmpqroxSTEF1s3MUL7npFIpotMKnlY7PT1dtd2C7vIAynM27zlcYAyldI3Iys4q/jWigGtgRb1GpOgp35fp6bxGAKVzjUhISEB8QnzBdSvYNSItNU1Vl9eIyptH5CURRHpqKTw8HA4ODvjrr7/URlkYO3Ys7ty5g/Pnz+u8rTp16mDAgAH4/PPPi71dTXd4XVxcEBoRCnPz/H/NlUaXhujoaNja2JZ6lwbg5dcLT2JTMGT1BSSlZ2NECxfM6V4fQPn5ulIQBERFRcG8mjm7NCB/l4bo6GhYW1uzS0MeCoUCcbFxcLZ3hlQqZZeGPO/75IxkREVFqZ0z2upWtS4Ned9LleUaUVhdXbs0REVFoVr1ashSsEtD3i4Nr15/gYp/jSiJLg257VJWXRri4uPgbOeMhIQEjflaLtHu8Nrb28PZ2RkBAQFqien58+fRtWtXnbeTmZmJ8PBwWFhYvNZ2DQwMYGBgkK/czNBM7UXTRpc6BdVVKBRI01f238375jE10P51yKuKUjc3qfZyNMN3g/0w4ffL2HIhCn7uzujj7aixri6M9Y0Lr1SEugqFAhKJBEb6Rvk+oLUx0jcqvNJ/DKWGMNTT0GelDOsaSA1goJf/3Cusbu45Y2ZoprFt9KX60Jfr5yvXpCh1pVIp9OR6JV8XUpjJdHsfFVRXoVAgTZ4GqVSqahddt1vkuq/5vi+JukW9RqTqp2o9Z/IqyvtezGtErqK871+tW9B7qSJfIwqjy/s+9xqsL9eHoVS3eMv7NUKTotYt7PqrqlsBrxG60vS+19YupXmNyDbU/oduXqKO0jBp0iSsXbsW9+7dAwCsX78e9+/fx4QJE1R1PvnkE1XimpmZiTlz5iAhQfn1a3p6Ot577z1kZ2dj8ODBRdouvdTV0w7vdFD2dZq98xruRXBSCiIiIqo8RLvDCwCzZ8/G06dP4eXlBQsLC2RnZ+O3335Do0YvO6W/ePFCNWmEnp4erK2tUa9ePejp6SE6Ohqenp44evQoatWqVaTtkrrpb9RDcGg8/r0fg0mbruDv99rA1EDU04OIiIioRIjWhzevxMRExMTEwNnZGXp66l9thIeHIy0tLd9Yu2FhYahWrRqMjbXf+i5ou7rEZGFhUWifkJKS28Hb1tZW56/uS1p0cgZ6rTiL8MR09Ghoj5+G+ar6vImlPLRLecW20Yztoh3bRjO2i3ZsG83YLpqJ0S665mvl4lUyNzeHm5ubxqTU3t4+X7ILAE5OTgUmu4Vtl/KzNjXAzyN8oSeT4MD1cKw7+0jskIiIiIheW7lIeKn88K1RDZ/08gQALDt4BxceFjy0CxEREVF5x4SX8hnpVxNvNXZEjkLAe39cRWRiweNbEhEREZVnTHgpH4lEgs/6N0Q9OzNEJWXgvS1XkZWjffw8IiIiovKMCS9pZKwvxy8jfGFmIMfFx7H44uAdsUMiIiIiKhYmvKSVu40pvhrkDQBYe/YR9l97IXJEREREREXHhJcK1M3LHpPauwMAPv4zGPcjC57/nYiIiKi8YcJLhZr5Rj34uVshJTMHkzddQUqGbtP4EREREZUHTHipUHKZFD8M9YWduQHuRyZj1s5rKAfzlRARERHphAkv6cTGzAA/D/eFXCrBvmsv8Ou/j8UOiYiIiEgnTHhJZ01qWmFez/oAgM8O3Mblx7EiR0RERERUOCa8VCRjWrmit7cjshUC3tkciKikDLFDIiIiIioQE14qEolEgs/7N0QdW1NEJmXg/T8Ckc1JKYiIiKgcY8JLRWZiIMcvI5rARF+GgIex+OpwiNghEREREWnFhJeKpbbty0kpVv3zEIducFIKIiIiKp+Y8FKx9WjogAlt3QAAM3Zcw8MoTkpBRERE5Q8TXnots7p5oLmbFZIzsjFlUyBSMzkpBREREZUvTHjptchlUvw41Ac2ZgYIiUjCnF3XOSkFERERlStMeOm12Zob4qdhvpBJJfgr6Dl+P/9E7JCIiIiIVJjwUolo7maFOd09AACf7r+FK0/iRI6IiIiISIkJL5WYcW3c0LOhA7JyBLy7ORDRyZyUgoiIiMTHhJdKjEQiwRcDG6GWjQnCE9PxwR9XOSkFERERiY4JL5UoUwM5Vo1sAmN9Gc49iME3R++KHRIRERFVcUx4qcTVtjXDlwMbAQB+OfUAR26GixwRERERVWVMeKlU9GrkiLdbKyelmL49GI+jU0SOiIiIiKoqJrxUaub08EDTmtWQlJGNyZuuIC0zR+yQiIiIqApiwkulRk8mxU/DfWFtaoA74UmYt5uTUhAREVHZY8JLpcrO3BA/DvOBTCrBrqth2HThqdghERERURXDhJdKnZ97dczqVg8AsGTvTQQ9ixc3ICIiIqpSmPBSmZjQ1h3dGtgjK0fAO5uuIDYlU+yQiIiIqIpgwktlQiKR4KtBjeBubYLnCcpJKXIU7M9LREREpY8JL5UZM0M9rBzZBEZ6Mpy9H43lnJSCiIiIygATXipTde3M8PmAhgCAH0/ex/HbESJHRERERJWdXOwAwsLC8PvvvyMiIgINGzbEyJEjoa+vr9O6//77LzZu3IjOnTtj0KBBassCAgJw5MgRxMfHw8/PD4MGDYJEIimNQ6Ai6tvYCVefxuO3c4/x0bYg7Hu/LWpUNxY7LCIiIqqkRL3De+fOHTRs2BDnz5+HjY0NvvrqK3Tp0gXZ2dmFrhsdHY0RI0Zgx44d+Pfff9WWLV26FF26dEFSUhLs7OywaNGifAkxiWtuj/rwrWGJxHTlpBTpWZyUgoiIiEqHqAnvrFmz4O3tjb/++gvz5s3DiRMncOHCBWzatKnQdceMGYPJkyfDxcVFrTwuLg4LFizA999/j6+++gqzZs3C6dOnceDAAezbt6+0DoWKSF+unJSiuok+br1IxPw9NzgpBREREZUK0RLerKwsHDp0CEOHDlV1NXB0dETHjh3x999/F7ju8uXLkZycjJkzZ+Zb9uTJEygUCvj4+KjKbGxs4OTkhN27d5fsQdBrcbAwwg9DfSCVAH9eCcXWS8/EDomIiIgqIdH68D558gSZmZlwc3NTK3dzc8vXRSGvK1eu4PPPP8elS5cglebP1+vUqQMjIyMcPHgQvr6+AJRdJx4/fgwHBwet283IyEBGRobq98TERACAQqGAQqEo0rEVh0KhgCAIZbKv8sTP3Qoz3qiLLw/fxcK/bqC+vRkaOVuollfVdtEF20Yztot2bBvN2C7asW00Y7toJka76Lov0RLetLQ0AICZmZlaubm5OVJTUzWuk5ycDH9/f6xYsQI1atTQWMfExAS//PILpkyZgtOnT8Pa2hoBAQFo3Lixap+aLFu2DIsXL85XHhUVhfT0dF0Pq9gUCgUSEhIgCILGRL4y6+dhioB7FvjnYQImb7yMDcPqw8JIeWpW5XYpDNtGM7aLdmwbzdgu2rFtNGO7aCZGuyQlJelUT7SE19zcHAAQHx+vVh4XF6da9qpNmzYhOjoaJ0+exMmTJwEAoaGhOHHiBCZPnoyff/4ZUqkUo0ePRteuXXH+/HmkpaXh22+/xbhx4wr8K2DOnDmYNm2a6vfExES4uLjAxsZGazwlSaFQQCKRwMbGpkq+eVaMsELfn87hSUwqlp4Iw7rRTSGTSqp8uxSEbaMZ20U7to1mbBft2DaasV00E6NdDA0NdaonWsLr4uICMzMz3Lp1C926dVOV37p1Cw0aNNC4Ttu2bbFs2TK1sv3798PGxgaNGzdWG3bM0dERAwYMAKDsrnDu3DnMmDFDazwGBgYwMDDIVy6VSsvsRZNIJGW6v/LE0tgAK0c0Qb+f/8U/96Lx48kH+KhrXQBVu10Kw7bRjO2iHdtGM7aLdmwbzdgumpV1u+i6H9FeJalUisGDB+PXX39VdWG4cuUKzp07B39/f1W9TZs24X//+x8AoEGDBpg8ebLaT/Xq1dGwYUNMnjxZlfAGBAQgKytLtY3FixdDKpViwoQJZXiEVFT1HcyxrL9yUooVJ+7hZEikyBERERFRZSDqnyXLli2DIAjw8fHB4MGD0aVLF0yYMAE9e/ZU1Tl16hS2bdtWpO0+evQI3t7eGDVqFFq0aIFff/0Ve/bsga2tbUkfApWwfj7OGOFXA4IAfLg1CM9iNffnJiIiItKVqDOt2djYIDAwEMeOHUNERARmzZqFJk2aqNUZOXIk3njjDa3bmD9/PhwdHdXKhg4ditatW+PMmTMYMmQIOnbsCGNjzuRVUXzSyxPXwxIR/Cwe7265ip/61xI7JCIiIqrARJ9aWF9fHz169NC6vH379gWuP3DgQI3lNWrUwPDhw18rNhKHgVyGX4b7otcPZ3HjeSK+PvkU3w+3FzssIiIiqqDY05rKJUdLI6zw94FEAuy9GYNtlzkpBRERERUPE14qt9rUsca0LnUAAAv/voUbYQkiR0REREQVERNeKtemtK+FNu4WyMxWYPKmK4hPzRQ7JCIiIqpgmPBSuSaVSrDwDVfUsDJCaFwaPtoWBIVCEDssIiIiqkCY8FK5Z2Yox8/DfGEgl+JkSBR+PHlf7JCIiIioAmHCSxWCp6M5lvZTTkqx/NhdnL4bJXJEREREVFEw4aUKY2ATZwxtrpyUYurWqwiN46QUREREVDgmvFShLOztiUbOFohPzcI7mwORnpUjdkhERERUzjHhpQrFUE+Gn4f7wtJYD9dCE7Bk3y2xQyIiIqJyjgkvVTjO1Yzx/X+TUmy58BR/XgkVOyQiIiIqx5jwUoXUvq4NPuxcFwAwb/d13HzOSSmIiIhIMya8VGG936k2OtazQUa2AlM2BSIhNUvskIiIiKgcYsJLFZZUKsHyIY3hXM0IT2NTMX0HJ6UgIiKi/JjwUoVmaayPlSOaQF8uxbHbkfjl9AOxQyIiIqJyhgkvVXheThb4X98GAIBvjoTg7L1okSMiIiKi8oQJL1UKQ5rVwJCmLlAIwAdbr+J5fJrYIREREVE5wYSXKo3FfRvAy8kcsSmZmLI5EBnZnJSCiIiImPBSJWKoJ8Mvw5vAwkgPwc/i8em+22KHREREROUAE16qVFysjPGdf2NIJMDGgCfYfZWTUhAREVV1THip0ulYzxbvd6oDAJiz6zpuv0gUOSIiIiISExNeqpSmdq6DdnVtkJ6lwJRNV5CQxkkpiIiIqiomvFQpyaQSfD+kMZwsjfA4JhUzdgRDEDgpBRERUVXEhJcqrWom+vhlhC/0ZVIcvRWBlacfih0SERERiYAJL1VqjZwtsaiPclKKrw7fwbn7nJSCiIioqmHCS5Xe0OYuGNjEGQoBeP+Pq3iRwEkpiIiIqhImvFTpSSQSfPqWFzwdzBGTkol3NwciM1shdlhERERURpjwUpVgqCfDyhFNYG4oR+DTeHx2gJNSEBERVRVMeKnKqFHdGMuHNAYA/HbuMf4KChM3ICIiIioTTHipSulc3w7vdawNAJi98zpCwpNEjoiIiIhKGxNeqnI+6loXbetYIy0rB1M2XUFSOielICIiqsyY8FKVI5NK8L2/DxwtDPEwOgUzd1zjpBRERESVGBNeqpKsTPTx03Bf6MkkOHQzHGvOcFIKIiKiykr0hFehUOD8+fPYs2cP7t+/X6R1nz9/jq1bt+Lq1av5lqWlpeGff/7BX3/9pXE5kU+NaljQWzkpxReHQhDwMEbkiIiIiKg0iJrwJiQkoHXr1hg4cCB++ukneHt7Y/bs2Tqtm52djYEDB2L06NHYsGGD2rLTp0+jRo0aeP/997F+/Xp0794dLVq0QFxcXGkcBlVgI1rUQH8fJ+QoBLy35SoiEtPFDomIiIhKmKgJ77x58xAbG4tbt27h6NGjOHz4ML744gscP3680HUXLFgAd3d31K9fP9+yadOmoVOnTggODsZff/2FO3fu4OHDh/jxxx9L4zCoApNIJFjaryE87M0QnZyBdzcHIiuHk1IQERFVJqIlvIIgYPPmzRg3bhwsLCwAAG3atEHz5s2xadOmAtc9fvw4tm7dip9++knj8oyMDLi6uqp+t7S0hJWVFTIzM0ssfqo8jPSVk1KYGchx+Ukclh24I3ZIREREVILkYu04NDQU8fHx8PLyUitv2LAhgoKCtK4XGRmJ0aNH448//lAlyq9avnw5Jk6cCGNjY9SsWRNHjhyBlZUVPvjgA63bzcjIQEZGhur3xMREAMo+xgpF6d/xUygUEAShTPZVkZRVu9SwMsLXgxph0qZArP/3EXxcLNCzkUOp7vN18ZzRjO2iHdtGM7aLdmwbzdgumonRLrruS7SENyEhAQBgZWWlVl69enXEx8drXEcQBIwePRqjR49G27ZttW7b1dUVtWrVwo4dO+Du7o6goCAMGDAA5ubmWtdZtmwZFi9enK88KioK6eml369ToVAgISEBgiBAKhX9WcJyoyzbxdtaglFN7fH75XB8vPMarPUy4VbdqFT3+Tp4zmjGdtGObaMZ20U7to1mbBfNxGiXpCTdJpASLeE1MDAAACQnJ6uVJycnw9DQUOM627Ztw/nz5zFs2DBs3boVABAfH4+7d+9i69atGDJkCARBQI8ePdC+fXscO3YMgDK59vHxgVwux1dffaVx23PmzMG0adNUvycmJsLFxQU2NjYFJsolRaFQQCKRwMbGhm+ePMq6Xeb3tca92CycfxiD+YeeYPc7rWBqINrbpEA8ZzRju2jHttGM7aId20YztotmYrSLtpzxVaJ9kteoUQNyuRxPnz5VK3/y5Anc3d01rmNlZYVu3bph//79qrKEhAQ8ePAAe/bsweDBgxEWFob79++rPaBmYWGBN954AydPntQaj4GBgSoJz0sqlZbZiyaRSMp0fxVFWbaLvlSKH4b5oNeKs3gQlYI5u27gx2E+kEgkpb7v4uA5oxnbRTu2jWZsF+3YNpqxXTQr63bRdT+ivUoGBgbo3LkzduzYoSqLjo7GiRMn0LNnT1XZpUuXcOjQIQDAG2+8ga1bt6r91KxZE927d8fWrVshlUphZ2cHPT093L59W21/t2/fhrOzc9kcHFVo1qYGqkkp9l9/gXVnH4kdEhEREb0GUb+r/fzzz9GmTRuMHDkSLVu2xNq1a1G/fn2MGTNGVWfVqlUICAhAt27ddNqmvr4+Zs+ejfnz5yM6Ohru7u44cuQIAgICcPr06VI6EqpsmtSshvk9PbHw75tYdvAOGjlbormbVeErEhERUbkj6n34xo0bIzAwEA4ODrhw4QKGDRuGf/75R61rQfPmzdG9e3et2+jWrRt8fX3VypYsWYLdu3cjPT0dZ86cgYeHB+7cuQM/P79SOxaqfEa1rIm+jR2RoxDw7pZARCZxUgoiIqKKSCIIgiB2EOVRYmIiLCwskJCQUGYPrUVGRsLW1pb9gfIQu11SM7Px1k//4m5EMpq7WWHz+BbQk5WP10fstimv2C7asW00Y7tox7bRjO2imRjtomu+xleJqADG+nKsHNEEpgZyXHwUiy8PcVIKIiKiioYJL1Eh3G1M8fWgRgCANWce4cD1FyJHREREREXBhJdIB928HDCpnXK4vJk7gnE/MrmQNYiIiKi8YMJLpKOZb9ZDCzcrpGTmYMqmK0jJyBY7JCIiItIBE14iHcllykkpbM0McC8yGbN3XQef+SQiIir/mPASFYGtmSF+Hu4LuVSCvcHP8du5x2KHRERERIVgwktURE1drTC3R30AwNL9t3H5cazIEREREVFBmPASFcPY1q7o1cgB2f9NShGVlCF2SERERKQFE16iYpBIJPhiQCPUtjVFRGIG3v8jENk5CrHDIiIiIg2Y8BIVk4mBclIKE30ZAh7G4qsjIWKHRERERBow4SV6DbVtTfHVIG8AwKrTD3HoRrjIEREREdGrmPASvaYeDR0wvo0bAGDGjmA8jOKkFEREROUJE16iEjCruweau1ohOSMbUzYFIjWTk1IQERGVF0x4iUqAnkyKH4f5wMbMACERSZjLSSmIiIjKDSa8RCXE1twQPw3zhUwqwZ6g59gY8ETskIiIiAhMeIlKVHM3K8zp7gEA+N++Wwh8GidyRERERMSEl6iEjWvjhh4N7ZGVI+DdzYGISeakFERERGJiwktUwiQSCb4c6A13GxO8SEjHB1uvIkfB/rxERERiYcJLVApMDeRYNaIJjPVl+Pd+DL7hpBRERESiYcJLVErq2JnhiwGNAAA/n3qAIzc5KQUREZEYmPASlaLe3o4Y29oVADB9RzAeR6eIGxAREVEVxISXqJTN7VEfTWtWQ1J6NiZvuoK0zByxQyIiIqpSmPASlTLlpBS+sDbVx53wJMzbw0kpiIiIyhITXqIyYG9hiB+GKiel2BUYhs0XnoodEhERUZXBhJeojLSsVR0fv1kPALBk7y0EPYsXNyAiIqIqggkvURma2M4d3RrYIzNHgXc2XUFsSqbYIREREVV6THiJypBEIsGXgxrBzdoEzxPSMZWTUhAREZU6JrxEZczcUA8rRzSBkZ4MZ+5F47tjd8UOiYiIqFJjwkskgnr2Zvh8QEMAwA8n7uPEnQiRIyIiIqq8mPASiaRvYyeMblkTAPDh1iA8jUkVOSIiIqLKiQkvkYjm9fSETw1LJP43KUV6FielICIiKmlMeIlEpC+X4ufhvqhuoo9bLxLxyZ4bnJSCiIiohMmLu+L9+/fx119/ISIiAn369EGrVq0glRYvf87OzkZycjIsLS2LvF50dDRMTExgZmamKo+MjIRCochX39jYGObm5sWKkai0OFgY4YehPhix7gJ2XAlFk5rV4N+8hthhERERVRo6Z6iCIODSpUuYP38+vLy80KBBAxw9ehQRERHo168f7O3tMW7cOPz9999IS0vTeZuzZs2ChYUFHBwcUKNGDfz99986Bz958mQ4ODjgk08+UStv2bIlGjdurPrx9vaGg4MDFi1apPO2icpSq9rWmPHfpBQL/r6J66EJIkdERERUeeiU8CYmJsLFxQVvvPEGHj16hAULFiA6OhqHDh3Chg0bEB4ejp07d6JatWqYPn06rK2tsXfv3kK3u3z5cqxevRqnT59GcnIyPvzwQwwcOBAhISGFrrt9+3YEBQXB09Mz37IHDx4gPDxc9bN+/XoAwLBhw3Q5XCJRTG5XC13q2yEzW4HJm64gjpNSEBERlQidEl59fX38/vvviIqKwubNmzF48GC1LgQymQxt27bF119/jXv37uHSpUvw8PAodLs//PADxo8fj6ZNm0Imk2HatGlwdnbGqlWrClzv0aNH+PDDD7F582bo6ekVup9169bB29sbTZs2LfxgiUQilUrwzWBv1KxujLD4NHy4LYiTUhAREZUAnRJeQ0NDxMXFYfHixcjJKfwpck9PT9SpU6fAOlFRUXj8+DHatGmjVt62bVtcvHhR63pZWVnw9/fHwoULUa9evUJjiYyMxL59+zBx4sRC6xKJzcJIOSmFoZ4Up+9GYcXxe2KHREREVOHp/NDao0eP8Omnn+Lhw4f4/fffIZPJ8tVJTEyEqampTg+vRUVFAQCsra3Vym1sbHD+/Hmt682dOxd2dnaYNGmSTnH//vvvkMvlGD58eIH1MjIykJGRofo9MTERAKBQKDQ+AFfSFAoFBEEok31VJFWxXerZmWLpW16YvuMaVpy4B29nC3SoZ5OvXlVsG12wXbRj22jGdtGObaMZ20UzMdpF130VaZSGli1bYvfu3Rg5ciQ2btyYL+ldvXo1IiMj8eWXXxa6LYlEAkA50kJe2dnZGpNpADh9+jTWrVuH06dPIzw8XFU/NTUV4eHhsLe3z7fO+vXrMXjwYFhYWBQYz7Jly7B48eJ85VFRUUhPTy/0eF6XQqFAQkICBEEo9mgXlVFVbZfWTnro38gGu65F4cOtV/HbsPpwtDBQq1NV26YwbBft2DaasV20Y9toxnbRTIx2SUpK0qlekRLeVq1a4X//+x969+6N4cOHY/PmzfmSU10zbUdHRwBARIT6lKoRERGqZa96+PAh9PX10bVrV1VZTEwMHj16hL///hthYWFq8Zw7dw63b9/GmjVrCo1nzpw5mDZtmur33Af1bGxsymQoM4VCAYlEAhsbG7558qjK7bJ0YHU8iL2A4NAELDjyFDsm+sFA7+X5XZXbpiBsF+3YNpqxXbRj22jGdtFMjHYxNDTUqV6Rx+Ht3Lkz9u7di969e2PYsGHYvHkz5PKiD+drYWEBb29vHD16FIMHDwagvFt7/PhxvPvuu6p6iYmJyMrKQvXq1TF27FiMHTtWbTuNGzdGhw4d8N133+Xbx9q1a1G/fn20bt260HgMDAxgYGCQr1wqlZbZiyaRSMp0fxVFVW0XI30pfh7RBL1WnMGNsEQs3ncbnw9opFanqrZNYdgu2rFtNGO7aMe20YztollZt4uu+ylWNJ07d8b+/fuxb98+DBs2LF+3BF3Nnz8fGzZswLp163Dr1i1MnDgRCoUCU6ZMUdWZNm0a2rdvX+RtJycnY/v27ZgwYUKxYiMqD5wsjbBiqA8kEmDrpWfYfukZ0rNysCswFFM2B+KdHSGYsjkQuwJDOS0xERGRFsVOvzt27Ih9+/Zh//79GDp0aLGS3oEDB+LXX3/FqlWr0L17d0RGRuLUqVOwtbVV1bGwsMj3YFte1tbWGrscHDhwAJaWlhg1alSR4yIqT9rWscH0rnUBAHN3X0fTT49h2vZgHL0VgcCwZBy9FYFp24PR/LNjOHYropCtERERVT3FnloYUCa9Bw4cQM+ePTFkyJBijXM7fPjwAkdQ+Oabbwpc/9ixYxrLBw8erOoqQVTRvdOhNo7cjMC1sAQkZyj/uMwdojf336S0bEzYeBmrRzZFV087kSIlIiIqf3S+w9u/f38MGDAgX3n79u1x4MABHD58GF988UWJBkdESpk5CjyKSSmwjvDff2bsCGL3BiIiojx0Tnjd3d3RsmVLjcvatWuHgwcP6jQpBREV3YHrL5CUXni3IQFAQlo2Dt54UfpBERERVRCv1aUhr7Zt2yI4OFjn8dCISHdHbkZAKnnZfaEgUglw+EYE+vk4l35gREREFYBOd3jj4+MxZMgQbNmyBQkJCVrr1ahRA7Gxsfjwww/x999/l1iQRFVdfGqmTskuoEyK49MySzcgIiKiCkSnhNfY2Bj16tXDF198ARsbG3Tt2hU//fQTQkNDkZKSgl27dmHUqFGws7PDsGHDkJqaCg8Pj9KOnajKsDTWh1SiW12pBLA00i/dgIiIiCoQnRJefX19LFmyBMHBwbh79y569+6NXbt2wd3dHVZWVpg/fz6cnJywf/9+PH/+HKtXr0bdunVLO3aiKuONBnZFusP7phdHaSAiIspV5D68rq6u+OCDD/DBBx8gLi4OcXFxcHd3L43YiOg/PRo6YNHem0hKy0Zhea+FkRzdvRzKJC4iIqKK4LXmfatWrRqTXaIyYKgnw7eDGgMSoLCeDcNb1IShnqwswiIiIqoQOAE0UQXRxdMOq0c2hbmR8ouZ3D69uf/qyZT/s/qfhzhwncOSERER5SqxYcmIqPR19bTDhbldcPDGCxy6EY6ohBTYWJigm5c93qhvh/l/3cTuq2F4/4+ryFYI6OPtKHbIREREomPCS1TBGOrJ0M/HGX29HREZGQlbW1tIpcova74e5A2ZVII/r4Tiw61XkaNQcDxeIiKq8tilgagSkUkl+HJAIwxt7gKFAEzbHoztl5+JHRYREZGomPASVTJSqQRL32qIEX41IAjAx39ewx8Xn4odFhERkWiY8BJVQlKpBP/r64UxrVwBAHN2XcfGgCfiBkVERCQSJrxElZREIsHC3p4Y38YNAPDJnhv47d9HIkdFRERU9pjwElViEokE83rWx+T2tQAAi/bewtozD0WOioiIqGwx4SWq5CQSCWZ1q4f3O9UGAHy6/zZ+OfVA5KiIiIjKDhNeoipAIpFg+hv18FGXugCALw7dwQ/H74kcFRERUdlgwktUhUztUgcz36wHAPjm6F0sP3oXgiCIHBUREVHpYsJLVMW827E25nT3AAB8f/wevj4SwqSXiIgqNSa8RFXQpPa1ML9nfQDATycf4PODd5j0EhFRpcWEl6iKGt/WHYv7NAAArPrnIf637zaTXiIiqpSY8BJVYaNbueLTt7wAAOv/fYRFf99k0ktERJUOE16iKm6EX0183r8hJBJgw/knmL/nBhQKJr1ERFR5MOElIvg3r4GvBnpDIgE2X3iKubuvM+klIqJKgwkvEQEABjZxxvLBjSGVAFsvPcPMP68hh0kvERFVAkx4iUjlLR8nfO/vA5lUgp2BoZi+PQjZOQqxwyIiInotTHiJSE1vb0f8ONQHcqkEe4Ke48NtQchi0ktERBUYE14iyqd7Qwf8PNwXejIJ9l17gQ/+uIrMbCa9RERUMTHhJSKN3mhgj5UjmkBfJsXBG+F4d0sgMrJzxA6LiIioyJjwEpFWnevbYfWoJtCXS3H0VgSmbApEehaTXiIiqliY8BJRgTrUs8W60U1hIJfixJ1ITNp4hUkvERFVKEx4iahQbevY4NexzWCkJ8Ppu1EYv+Ey0jKZ9BIRUcUgesK7f/9+vPnmm2jcuDFGjhyJhw8f6rzuypUr4eHhgWXLluVbFhcXh7lz58LPzw+dOnXC1q1bSzJsoiqnVS1r/Da2GYz1ZTh7Pxpv/3YJqZnZYodFRERUKFET3gMHDuCtt95C165d8dNPPyEtLQ1t27ZFXFxcoesGBwdj2bJlSEtLQ0REhNqy2NhYtGjRAhcuXMCyZcuwbNky7N+/H//++29pHQpRldDCvTo2jmsOUwM5zj+MwZj1l5CcwaSXiIjKN1ET3kWLFmHYsGGYMWMGWrdujS1btiAtLQ0rV64scL2UlBT4+/vj559/RrVq1fItX7BgATIzM7Fv3z507NgRLVq0wMaNG9GiRYvSOhSiKqNJTStsHNccZoZyXHwci9HrLyIpPUvssIiIiLQSLeFNTk7G5cuX0a1bN1WZvr4+unTpgpMnTxa47rvvvotOnTqhZ8+eGpdv3boVI0aMgJGRkVq5XC5//cCJCD41qmHz+BawMNLDlSdxGLHuIhLSmPQSEVH5JFoGGBoaCkEQ4ODgoFZub2+PGzduaF1v8+bNuHjxIq5cuaJxeVRUFGJiYlCzZk2MHz8eV65cgaOjI0aPHo3Bgwdr3W5GRgYyMjJUvycmJgIAFAoFFIrSH3BfoVBAEIQy2VdFwnbRTuy28XI0x6ZxzTBq/SUEP4vH8LUB+H1sM1ga64sSTy6x26U8Y9toxnbRjm2jGdtFMzHaRdd9iZbw5uQon/DW11f/cDQwMEB2tuY+gffv38fUqVNx9OjRfHdvc2VmZgIAZs6ciSVLluCdd97BhQsXMHLkSMTFxWHSpEka11u2bBkWL16crzwqKgrp6ek6H1dxKRQKJCQkQBAESKWiP0tYbrBdtCsPbWMjB1b0q433d93DjbBE+K86hxX968LSSLxvU8pDu5RXbBvN2C7asW00Y7toJka7JCUl6VRPtE+l6tWrAwCio6PVyqOjo1XLXnXo0CGkpqZi6NChqrLHjx/j6dOnOHToEG7evAkrKytIpVL07dsXH3zwAQDA19cXV69exerVq7UmvHPmzMG0adNUvycmJsLFxQU2NjYwNzd/rWPVhUKhgEQigY2NDd88ebBdtCsvbWNrC2y1ro7hay/iblQapv71EBvfbgZrUwNR4ikv7VIesW00Y7tox7bRjO2imRjtYmhoqFM90RJee3t7ODs7IyAgAH369FGVnz9/Hl27dtW4zogRI9ClSxe1sn79+qF58+aYM2cOZDIZjIyM4OXlBSsrK7V61atXR3JystZ4DAwMYGCQ/wNaKpWW2YsmkUjKdH8VBdtFu/LSNh4OFtg2yQ9D11xASHgShq+9iC0T/GBjJk7SW17apTxi22jGdtGObaMZ20Wzsm4XXfcj6qs0adIkrF27Fvfu3QMArF+/Hvfv38eECRNUdT755BNVQmxpaQkPDw+1HwMDA1SrVg0eHh6qdd577z1s27YNjx49AgA8ffoUmzdvRo8ePcrw6Iiqltq2Ztg20Q/25oa4F5kM/9XnEZlY+t2BiIiICiPqsAWzZ8/G06dP4eXlBQsLC2RnZ+O3335Do0aNVHVevHhRpMkoAGDChAl4/PgxGjVqhGrVqiEqKgpDhw7FZ599VtKHQER5uNuYKu/0rg7Ag6gUDFkdgC0TWsDBQnOfeyIiorIgEQRBEDuIxMRExMTEwNnZGXp6emrLwsPDkZaWBjc3N43rPn78GMbGxrC1tc23LHdSCkdHx3wPx+kSk4WFBRISEsqsD29kZCRsbW359UgebBftynPbPItNxdA1AQiNS0MNK2P8MdEPTpZlk/SW53YRG9tGM7aLdmwbzdgumonRLrrma+XiVTI3N4ebm1u+ZBdQ9vXVluwCgKurq8ZkFwCMjIzg6upa5GSXiF6Pi5Uxtk1qiRpWxngam4ohq87jWWyq2GEREVEVVS4SXiKqfJwsjbBtkh/crE0QGpeGIavO40lMithhERFRFcSEl4hKjYOFEbZO9EMtGxM8T0jHkFUBeBilfbQUIiKi0sCEl4hKlZ25IbZObIk6tqYIT0yH/+oA3I9k0ktERGWHCS8RlTobMwP8MdEPHvZmiEzKgP/q87gbodvsOERERK+LCS8RlQlrUwNsmeAHTwdzRCdnwn91AG6/SBQ7LCIiqgKY8BJRmbEy0ceWCS3Q0MkCsSmZGLomADfCEsQOi4iIKjkmvERUpiyN9bFpfAt4u1giPjULw9dewPVQJr1ERFR6mPASUZmzMNLDxnHN4VvDEglpWRi2NgBXn8aJHRYREVVSTHiJSBTmhnr4fVwLNHe1QlJ6Nkauu4grT2LFDouIiCohJrxEJBpTAzl+e7sZ/NytkJyRjVHrLuLiIya9RERUspjwEpGojPXl+HVMc7SpbY2UzByMXn8R5x5Eix0WERFVIkx4iUh0RvoyrB3dFO3r2iAtKwdv/3YJZ+8x6SUiopLBhJeIygVDPRlWjWyCTh62SM9S4O0Nl3AqJFLssIiIqBJgwktE5Yahngy/jPBFV087ZGYrMPH3Kzh+O0LssIiIqIJjwktE5YqBXIafhvmiWwN7ZOYoMHnTFRy5GS52WEREVIEx4SWickdfLsUPw3zQs5EDsnIEvLM5EAevvxA7LCIiqqCY8BJRuaQnk+L7IY3Rt7EjshUC3vvjKvYGPxc7LCIiqoCY8BJRuSWXSfHt4MYY4OuMHIWAqVuvYs/VMLHDIiKiCoYJLxGVazKpBF8NbIQhTV2gEICPtgfhzyuhYodFREQVCBNeIir3pFIJlvVviOEtakAQgJl/BmPbpadih0VERBUEE14iqhCkUgk+fcsLo1vWhCAAs3Zex6aAJ2KHRUREFQATXiKqMCQSCRb1aYC3W7sBAObvuYEN5x6LGxQREZV7THiJqEKRSCT4pFd9TGrnDgBY+PdNrD3zUOSoiIioPGPCS0QVjkQiwezuHni3Yy0AwKf7b2PV6QciR0VEROUVE14iqpAkEglmvFEPUzvXAQAsO3gHP528L3JURERUHsnFDoCIqLgkEgk+6loXcqkE3xy9i68OhyArOwf+DS3EDo2IiMoR3uElogrv/c51MKubBwDgu+P3sepcGARBEDkqIiIqL5jwElGlMKVDLczvWR8A8OvFcHx5+C6TXiIiAsCEl4gqkfFt3bGglzLpXfXPQyzdf5tJLxERMeElosplTCtXzOxYAwCw9uwjLN57i0kvEVEVx4SXiCqdAd42+KyfFwDgt3OP8clfN6BQMOklIqqqmPASUaXk38wFXw5sBIkE2BTwFHN3X2fSS0RURYk+LNnTp0+xYcMGREREoGHDhhgzZgwMDAx0WvfMmTPYsGEDunbtiiFDhqjKN23ahFOnTqnVdXJywuLFi0sydCIq5wY3dYFcKsGMHcHYeukZshUCvhjQCDKpROzQiIioDIl6h/fWrVvw9vZGYGAgXFxcsGLFCnTq1AlZWVmFrhsVFYWRI0diz549OH/+vNqys2fPIigoCH5+fqofb2/v0joMIirH+vs6Y/mQxpBJJfjzSihm7ghGDu/0EhFVKaLe4Z01axZ8fX2xa9cuSCQSjBo1Cm5ubti4cSPefvttresJgoDRo0fjvffew6ZNmzTWcXV1xfjx40srdCKqQPo2doJcKsXUrVex62oYshQClg/2hlzGXl1ERFWBaFf7zMxMHD58GP7+/pBIlF8vOjg4oGPHjti7d2+B637zzTdIT0/H9OnTtdYJCQnBBx98gE8++QRHjhwp0diJqOLp2cgBPw7zhZ5Mgr3Bz/HB1qvIylGIHRYREZUB0e7wPn36FFlZWXB1dVUrd3Nzw5kzZ7Sud+nSJXz99de4fPmyKlF+lUQigbu7O1xdXREWFoYBAwZgwIAB+O2337RuNyMjAxkZGarfExMTAQAKhQIKRel/KCoUCgiCUCb7qkjYLtqxbTQrqF3e8LTFz8N88O6WqzhwPRzZOYFY4d8Y+vKqcaeX54xmbBft2DaasV00E6NddN2XaAlvWloaAMDMzEyt3MzMTLXsVYmJiRg6dCh++OEHODs7a932ggUL4ODgoPp9wIABaNOmDfz9/dGtWzeN6yxbtkzjQ21RUVFIT08v9Hhel0KhQEJCAgRBgFRaNT58dcF20Y5to1lh7dKwugSf96qF2fse4MitCIz/LQCf9XCvEkkvzxnN2C7asW00Y7toJka7JCUl6VRPtITX3NwcABAXF6dWHhsbq1r2qi1btiAmJgaHDx/G4cOHAQDPnj3DsWPHMH78eKxevRpSqVQt2QWAVq1awcXFBefOndOa8M6ZMwfTpk1T/Z6YmAgXFxfY2NhojackKRQKSCQS2NjY8M2TB9tFO7aNZrq0y1u2tqhuZYmJGwNx9mECPjkSipXDfWCgJyvjaMsWzxnN2C7asW00Y7toJka7GBoa6lRPtITXxcUF5ubmuHXrFrp3764qv3nzJry8vDSu065dO3z11VdqZUeOHIGDgwP8/Py0dnEAlHeUC5ptycDAQONwaFKptMxeNIlEUqb7qyjYLtqxbTTTpV3a17PDr2Oa4e0Nl3D6bhQmbgrE6pFNYaRfuZNenjOasV3UpWfl4MD1Fzh8MxxR8SmwsQzDmw3s0aOhAwwr+R+GuuI5o1lZt4uu+xHtVZJKpRgyZAjWr1+PlJQUAMr+uQEBARg6dKiq3oYNG7Bw4UIAgKenJ8aPH6/2Y2VlhQYNGmD8+PGQSCTIzs7G/v371fa1Zs0aREVFqSXWREStalvjt7HNYawvw5l70Xj7t0tIzcwWOywiUR29FYHmnx3DtO3BOHorAoFhyTh6KwLTtgej+WfHcOxWhNghEhWZqH+WfPbZZ5DL5fD29kb//v3RpUsXTJkyRS0xPXPmDHbu3KnzNiUSCdatWwdvb28MHToUrVu3xkcffYTly5ejVatWpXEYRFSB+blXx4a3m8NEX4bzD2Mw5tdLSM5g0ktV09FbEZi48TKS0pTvgdwhq3P/TUrLxoSNl3GUSS9VMKKOw2ttbY3Lly/j5MmTiIiIwIIFC9C4cWO1OmPGjEGPHj20bmPhwoVqfXZlMhl27dqFkJAQBAUFoVq1avD19YW1tXVpHQYRVXDNXK2wcXwLjF53ERcfxWLM+ov4dWwzmBnqiR0aUZlJz8rB9B1BgABo6wAoAJAIwIwdQbgwtwu7N1CFIfrUwnp6enjjjTe0Lm/Tpk2B6/fr109jeb169VCvXr3Xio2Iqg7fGtWwaXwLjFx3AZefxGHU+ovY8HZzmDPppSriwPUXSEwr/NsNAUBCWjYO3niBfj7aR0wiKk/Y05qI6D/eLpbYMsEPlsZ6uPo0HiPWXkBCauFTnRNVBkduRkCq/dlvNVIJcPgGuzVQxcGEl4goDy8nC2wZ7wcrE31cC03AsLUBiEvJFDssolKVkpGNe5FJqr66hVEIQHwa3xdUcTDhJSJ6haejOf6Y4AdrU33cfJ6IoWsCEJOcUfiKRBVIjkLAv/ejMW17EJotPYYHUSk6ryuVAJZG+qUYHVHJEr0PLxFReVTP3gxbJ/ph6JoLuBOehKFrArB5vB9szPKP101UkdyPTMKuwDDsvhqGFwkvZxK1NtVHdLJud20VAlDL1qS0QiQqcUx4iYi0qG2rTHqHrQnA3Yhk+K8+jz8m+MHWXLeZfYjKi9iUTOwNfo5dgaEIDk1QlZsbytHb2xH9fZ3RwMEMzZcdR1JattZRGvL66eQDPI5OxZweHnCuZlx6wROVACa8REQFqGVjim0TW2LomgA8iEqB/+oAbJngB3sLJr1UvmVk5+DknSjsCgzFyZBIZOUo01i5VIIO9WzQ39cZnTxs1YYW+3ZQY0zYeBkSLUOT5T7T1q6uNc7ci8b+6y9w7HYEpnSohUntalX6mQqp4mLCS0RUCFdrE1XS+zA6BUNWn8eWCX5wsjQSOzQiNYIgIOhZPHYFhmHvteeIzzPKSEMnC/T3dUJvb0dYm2rumtPF0w6rRzbFjB1BSEjLhlSi7L6Q+6+5kRzfDGqMLp52uPk8AYv33sLFR7H47tg97Lgcirk96qNHQ3tIJDoO90BURpjwEhHpoEZ1Y2yb5IehawLwJCYVQ1Ypuze4WPGrXBJfWHwa9lwNw87AUDzM8/CZnbkB3vJxQn8fZ9SzN9NpW1097XBhbhccvPECh26EIyohBTYWJujmZY/uXg6qO8INHC2wbaIf9l9/gc/230ZYfBre3RKIFm5WWNSnAeo7mJfKsRIVBxNeIiIdOVczxraJLTFsTQAex6TCf3UA/pjghxrVmfRS2UvOyMbB6y+wKzAM5x/GqMoN9aTo1sAeA5o4o1Uta8h0HVw3D0M9Gfr5OKOvtyMiIyNha2sLqTT/wE4SiQS9Gjmis4cdfjn9AKtOP8CFR7HoueIMhrWogeld66GaCUdzIPEx4SUiKgJHSyNs/S/pzdu9wc2aT6xT6ctRCDj3IBq7AsNw6EY40rJyVMtauldHf18ndG/oAFODsv14N9KXYVrXuhjc1BmfHbiNA9fDsSngKfYGv8C0rnUxvEUNyGUcCZXEw4SXiKiI7C0MsXWSH4atuYD7kcnK7g0T/VDLxlTs0KiSuhuRhJ2BodhzNQwRiS/HhHa3NkF/Xye85eNULkZKcK5mjJ+HN8G5B9FYsvcW7oQnYeHfN7HlwlMs7OOJVrWsxQ6RqigmvERExWBrZoitE/0wfM0FhEQkYciqAPwxoQXq2OnWT5KoMDHJGfg7+Dl2BYbhetjLocQsjPTQx9sR/X2d0NjFslw+INaqljX2vd8Gf1x8im+O3kVIRBKGrbmA7l72mNujPvu+U5ljwktEVEzWpgb4Y6Ifhq+9gNsvEuG/OgCbJ7SAhz0f1qHiycjOwfHbkdgVGIpTIVHIVrwcSqyjhy0G+Dqho4ctDOTlf/gvuUyKkS1d0auRI749ehebLzzBwRvhOHEnEpPauWNKh9ocxozKDBNeIqLXYGWijz8mtMCIdRdwIywRQ1cHYNP4FmjgaCF2aFRBCIKAwKfx2BUYin3XXiAh7eVQYt7OFujv64ze3o6wqqAPf1Uz0cf/3vLCsBY1sHjvTQQ8jMWKE/fx55VQzOlRH70aOZTLu9RUuTDhJSJ6TZbG+tg8zg+j1l9AcGgChq25gE3jWqChM5Ne0u5ZbCp2Xw3DrsBQPI5JVZXbmxuin68T+vs4VaouMvUdzPHHBD8cvBGOpf8NY/b+H1exMeAJFvb25B+JVKqY8BIRlQALYz1sHN8Co9dfxNWn8Ri2NgAbx7VAYxdLsUOjciQpPQsHr4djZ2AoLjyKVZUb68vQzcseA3yd4edevVhDiVUEEokEPRo6oJOHLVadfohfTt/HxUex6P3DWfg3r4EZb9SrsHeyqXxjwktEVELMDfXw+9vNMfbXS7j8JA4j117Ab283R5Oa1cQOjUSUoxBw9n40dgWG4vDNcKRnKQAAEgnQqlZ19PdxRjcve5iU8VBiYjLUk2FqlzoY+N8wZvuvvcCWC0+xL/g5PupaFyP8akKPw5hRCao67y4iojJgZqiHDW83x9u/XcKFR7EYtU6Z9DZztRI7NCpjd8ITsSswDHuuhiEy6eVQYrVsTDCgiTPeauwExyo+PbWTpRF+GuaLkX4xWLz3Fm6/SMTivbeUw5j1boA2dTiMGZUMJrxERCXMxECOX8c2w/gNl3HuQQxGr7+I9WOawc+9utihUSmLSlIOJbbzSihuvUhUlVczzh1KzBmNnC34kNYr/NyrvxzG7EgI7kUmY8S6C3izgR3m9/TkMGb02pjwEhGVAmN9OdaPaYYJv1/GmXvRGPPrRawb3Qyta/OOVWWTnpWDY7cjsCswDKfvRiHnv6HE9GQSdPKwxQBfZ3SoZwt9Ob+iL4hMKsEIv5ro1cgB3x27h40BT3D4ZgROhkRhYlt3vNOxFoz1mbZQ8fDMISIqJYZ6MqwZ1RRTNl3ByZAovP3bJawe1RTt69qIHRq9JkEQcOVJHHYGhmHftedISs9WLWvsYokBvk7o1cgR1fgAVpFZGutjUZ8GGNpcOYzZuQcx+PFk7jBmHujj7cg75FRkTHiJiEqRoZ4MK0c2wbubr+LY7QhM2HAZq0Y2QUcPW7FDo2J4GpOKXVdDsftqGJ7kGUrM0eK/ocR8nTnFdAmpZ2+GzeNb4PDNcHy6/zZC49IwdWsQNgU8wcLeDeDlxGHMSHdMeImISpmBXIafh/vi/T8CcfhmBCZuvIyfhzdBV087sUMjHSSmZ+HAtRfYFRiGi49fDiVmoi9D94YO6O/rBD+36pBW0qHExCSRSNDNywEd6tlizT8P8fOpB7j0OA69fzwL/2YumPFGPVQ3NRA7TKoAmPC+hpycHGRlZRVeUQcKhQJZWVlIT0+HVMp+XrnYLtqxbTRTKBRQKBRih5GPvlyKH4f54sOtQdh//QWmbLqCH4f5oJuXg9ihkQbZOQqcuR+NnVdCcfRWBDKyXw4l1qa2Nfr7OuHNBvbsU1pGDPVkeL9zHQxo4ozPD97B38HP8cfFZ9h37QU+7FIXo1pyGDMqGN+pxZScnIzQ0FAIglAi2xMEAQqFAklJSeyblAfbRTu2jWa57WJmZgYzs/I1S5WeTIrv/RtDJpXg7+DneHfLVXzvL6BXI0exQ6P/3HqeiF2BodgT9BzRyS+HEqtja6oaSszewlDECKs2R0sjrBjqgxF+NbHo75u49SIR/9t3C39cfIqFvT3Rtg77x5NmTHiLIScnB6GhoTA2NoaNjU2JJBuCICA7OxtyuZzJSx5sF+3YNpopFApERkYiLCwMderUgUwmEzskNXKZFMuHNIZcKsGuq2H44I+ryFEI6NvYSezQqqyopAxsvhKBo/fu4k54kqrcykQffbwdMbCJMxo4mvN9Vo40d7PC3vfbYNulZ/j6SAjuRyZj5LqL6Opph/k966NmdROxQ6RyhglvMWRlZUEQBNjY2MDIqGQGDWfyohnbRTu2jWaCIMDKygqhoaHIysoqdwkvoBx+6atB3pBJJdhxJRQfbQtCdo6AAU2cxQ6tykjPysGRWxHYFRiKf+5G4b+RxKAvk6KLpy36+zijfT0bfk1ejsmkEgxrUQM9Gzrgu+N38fv5Jzh6KwKnQ6Iwvq0b3u1Yu0rNXkcF45nwGphkEJVPFeG9KZNK8MWARpDLpPjj4lPM+DMYOQoBg5u5iB1apaVQCLj8JA67AkOx/9oLJGW8HEqsoYMJBjd3RW9vR1gacyixisTCWA8LezfAsOY1sHjvLZy9H42fTz3AzsBQzO7ugbcaO1WIawKVLia8REQikUolWPqWF+RSCTYGPMHHO68hWyFgWIsaYodWqTyOTsGuq2HYfTUUz2LTVOVOlkYY4OuEvo0dYaJIga2tLR8ArcDq2Jlh47jmOHIrAp/uv4VnsWn4aFswNp5/gkV9GqCRs6XYIZKImPBWQV988QX+/PNPXLp0CW3btkXXrl2xYMECscMiqpKkUgmW9G0AuUyCX/99jLm7ryNbocColq5ih1ahJaRmYf/1F9gZGIorT+JU5aYGcvRoaI/+vs5o7moFqVTyX7/vFBGjpZIikUjwZgN7tK9rg3VnH+HHE/cR+DQefX/6F4ObuGBmt3qw5jBmVRIT3iro3Xffxdtvvw0A2L17NwwM+OYnEpNEIsGCXp7Qk0mx+p+HWPDXTWTnCHi7jZvYoVUoWTkK/HM3CrsCw3D0dgQy/xtKTCoB2taxQX9fJ7zhaQ8j/fLXr5tKlqGeDO92rI0Bvs74/OBt7Al6jm2Xn+HA9ReY2qUORrV05VTPVQxfbZGkZ+VgV2AoJm+8Av9V5zFl0xXsCXqOjKycUt+3qakpbGyUQ7dYW1trHLpp7NixmDt3bpG2O3bsWIwcORI5OTmwt7fHtm3bXnubxRUXF4cGDRogNDS0SOsVdgyvs66ux1+c7RS2znvvvYfvv/9e52OhsieRSDCnuwemdKgFAFiy7xZW//NA5KjKP0EQcCMsAUv23kLLZccxbsNl7L/+ApnZCtSzM8PcHh44P6czNrzdHH0bOzHZrWLsLQzxnb8P/pzcEl5O5kjKyMan+2+j2/f/4FRIpNjhURkS/Q5vTk4Ozp07h4iICDRs2BD16tXTed3Q0FCcOnUK9evXR5MmTYpdp6wdvRWB6TuCkJiWDakEUAjKOxCHbkbgf/vv4NvBjdGllGZgSkhIwPLly7Fv3z5ERkbC1tYWPXr0wPTp02Fh8XKaxri4OJiYFG1Yl+XLlwMAZDIZgoKC1LZX3G0W16JFi9C6dWs4OxftqffCjuF11n31+EeOHAk3NzcsWbLktbajyzrvvfce/Pz8MGzYMNUfO1T+SCQSfPxmPehJJVhx4j4+O3AHWTkC3u1YW+zQyp2IxHTsuRqGXYFhCIl4OZSYtak++ng7YUATJ3g6cCgxUmrqaoW/3m2DHZef4avDIXgYlYIxv15Cl/q2mN/TE67WHMasshM14Y2Li8Obb76J8PBwNGjQAGfPnsWkSZPw9ddfF7pudnY2Bg4ciKCgIEyePFljMqtLnbJ29JZyWlH8NwSO4pV/k9KzMWHjZawe2bTEpx2Njo5G69atYWFhgc8//xx169bFgwcPMG/ePGzbtg1nz559rWTI0tJS9f/29vYlEHHxxMfHY+3atThz5kyR132dYyjqunFxcahevXqJxFDYOh4eHvD29saaNWvK7C47FY9EIsG0N+pBJpVi+bG7+OpwCLJzBEztUkfs0ESXlpmDI7fCsTMwDGfv5RlKTC5FV087DPB1Qts6HEqMNJNJJfBvXgPdGzpgxfF72HDuMY7djsQ/d6Pxdhs3vNepNkw5jFmlJepVYd68eUhMTMTNmzdx8OBBHD58GN9++y2OHj2q07p169aFh4fHa9UpS+lZOZi+IwgQVPluPsJ//5mxIwjpJdy94aOPPkJ8fDyOHz+OLl26oEaNGujYsSOOHTuGlJQUfPTRRwWu/8cff6Bdu3Zwc3NDnz59cOvWLdWyLl264JdfflGrP3nyZEyfPr3AbW7ZsgVt2rSBq6srOnXqhL1796otHzJkCD755BPMnDkTjRs3RsOGDfHZZ58VOMPdzp07YWNjA19fX1VZdnY25syZgzp16qBJkyZYsGABJk2apBafLscwePBgzJ07Fx9++CHq1q2LAQMGFOv4p06dimPHjmHNmjWwt7eHvb097t+/X6x27Nq1q07r9OvXDxs3btS6HSpfpnapg5lvKr/xWn7sLr49ElJiMztWJAqFgICHMZi5IxjNlh7D1K1BqnFzm9ashmX9G+LSvC74aZgvOnnYMdmlQlkY6eGTXp449GFbtKtrg8wcBVaefoBOX5/CziuhUCiq3vusKhDtyiAIAv744w+MGzdO1Ye0VatWaN68OTZv3lzgukeOHMGff/6JH3/88bXqlBRBEJCamV3oz56rYUhMy9aa7Kq2ByAhLRt7gsIK3aauH4BpaWnYvn073nnnnXx9do2NjfH+++9j+/btSEnR/KTy8uXLMXHiRAwfPhyHDx/GhAkT8L///U+1PDo6Ot+68fHxSEhI0BrTDz/8gDlz5uDjjz/GiRMnMGnSJIwYMQIHDx5U1YmNjcVXX32F6tWrY8eOHVi6dCk+/fRTbN++Xet2//nnHzRr1kytbMGCBdiwYQNWrFiB33//HY8fP8aaNWvU4tPlGGJjY/H555+jWrVqOHDgANasWVOs41+yZAnatm2L4cOHIygoCEFBQXBzcytWO+q6TosWLXDnzh1ERERo3RaVL+92rI25PZR/sK84cR9fHa46Se/DqGR8cyQEbb88Cf/VAdhxJRTJGdlwsTLC1M51cHpmB/w5pRWGNq8BCyM9scOlCqi2rRk2jG2GtaOaomZ1Y0QmZWD6jmAMWHkOwc/ixQ6PSpho9+6fPXuG+Ph4eHl5qZU3bNgQgYGBWteLiIjA2LFjsX37dpibmxe7zqsyMjKQkfFy3vTExEQAymlKFQqFWl2FQgFBEFQ/qZnZaLDwiE77KYrZO69j9s7rBda5ufgNGOsX/jLeu3cPmZmZ8PT01PiBWb9+fWRlZeHu3bto3LgxAKiOLyMjA4sWLcLixYsxceJEAECdOnXQs2dPtW3l1s/r1bLc37OyslRJaO/evQEAbm5uCA4OxooVK9CtWzfVOl27dsXs2bMBALVr10avXr1w9OhRDB48WOOxPn36FF5eXqr9ZmRkYMWKFfjxxx9V212zZg2OHDmiNb6CjqFt27Zqw7jlLivK8Zubm8PAwABGRkaws7MrcB1t2ynqvh0cHAAAjx8/hq2tLSqz3OPW9P6taMa3cYNUAny6/w5+PvUAWTkKzO5Wr1h9U3OvXeW1TeJTM7Hv2gvsvvocV/MkHKYGcvRsaI/+vk5oWrOa6thL6jjKe7uIqSq0TScPG7Su3Qbr/32Mn04+wNX/hjEb2MQJM9+oBxuz/CMZVYV2KQ4x2kXXfYmW8ObefapWrZpauZWVlda7WYIgYOTIkRg3bhxat25d7DqaLFu2DIsXL85XHhUVhfT0dLWyrKwsKBQKZGdnq37Ekp2djWwd7tPnJvNyuVxjvHK58lTIzMxEdna26qTNzs7G9evXkZiYiI4dO2o91twTPO/yvNt49ffr168jPj4ekyZNwjvvvKNKzlJSlIO/510nNxnP/ZCztrZGWFiY1liysrIglUpVy+/du4eUlBS0aNFCVSaVSuHr66sWny7HIAgCvL298+27qMefu07e34u6naysLOTk5Oi0Tu62AeW5IOY5W9py20OhUCAmJgZ6ehX/7l+vOiZI7+iCr08+w5ozj5CYlIIP2zsXOelVKBRISEiAIAjlZoKF7BwB5x4n4ODtGJx9lICsHOV5KpMALWqao3v96mhbyxKGcimAbERFRZV4DOWxXcqLqtQ2A+qboZ2LJ37+NwwHb8fizythOHD9Bca1cMDgxrZq3WWqUrsUhRjtkpSUVHgliJjwGhkZAQCSk5PVypOSklTLXvXHH3/g4sWLGDZsGDZt2gRA+eDPnTt3sGnTJgwfPlynOpo+JObMmYNp06apfk9MTISLiwtsbGzy3SVOT09HUlIS5HI55HI5zGQy3Fz8RqHHPHVrEE7ciYQu3YOkEqCThy2+929cYD0jPZlOH3q1a9eGVCrFw4cPVcltXo8ePYJEIkGtWrUgl8shlUohkUjU6pqYmGhcF1A+aCOVStWWv7qNvL/n5Cj7J2/btg116qg/jCOTydTWkcvlakmLRCLJF1teTk5OiI6OVi3P/evPyMhIbR0DAwO17ehyDBKJJN92inP82o6jKNvJbRNd1gGU3TEAwMXFRWvbVRZSqRRSqRTVq1eHoaGh2OGUiHe62qKahTnm7bmJbUGR0Dc0xMJenpBKdU96FQoFJBIJbGxsRP2QFgQBN54nYndgGP4Ofo7Y1CzVsvoOZujn44S+3o4a76yVhvLSLuVRVWsbW1vgJ3dnBD6Nw+K9t3E9LAE/nAnDvtvxmN/TAx3rKb8dq2rtoisx2kXXa7xon3ouLi7Q09PDkydP1MqfPHkCd3d3jevY2NigV69eOHbsmKosKSkJT548waFDh1RDLhVWR1OCaGBgoHEChtwPzlfLcpOV3B8Tg8Jf2B4NHXDstm7j/ikEoGcjB5gYlMzdqWrVqqFTp05Yu3YtPvzwQ8hkL8eiFAQBq1atQseOHWFtba0qzz22evXqQU9PDxcvXkTdunU1bt/c3BzJyclqbfv48WN4eXmpleVu08PDA3p6erh16xbatWun0zHkbufVf1/l5+eHVatWqZbXqlULMpkM169fh6urq+qYr1+/jg4dOqjqFfUYXuf4AeVddUEQ1JYXZTu5/+q6TmBgIBwdHeHmVrknM8jbpprevxXZcD9X6MlkmLXrGjYGPEW2Alj6lleRkt7cP5DEaJcXCWnYc/U5dgWG4l7ky5sdNmYGeKuxI/r5OMPTUbduaCVNzHYp76pi2zR1rY6/3m2NP6+E4svDd/AoOgXjNlxBJw9bfNLLEzWtjKpku+iirNtF1/2I9ioZGBigc+fOag8fRUVF4cSJE+jZs6eqLCAgAPv27QOg7Mu5adMmtZ8aNWrgzTffxKZNmyCVSnWqI5YeDR1gbiRHYR9NEgAWRnJ093Io0f1///33ePHiBcaMGaP6WjAmJgbjx4/H06dP8cMPP2hcz9zcHBMmTMC8efNw6dIlAMo+2Hn7sTZv3hw7duxATEwMBEHA+vXrceHCBa2xmJubY8qUKViwYAFOnjwJQRCQlpaG3bt3Y8WKFa91nP3798eDBw/w8OFDAMqJNoYPH44FCxbgxYsXyMnJwddff40HD9QH9S/qMbzuuk5OTggJUX8IqTjbadasmU7rHDp0CIMGDdLpeKj8GtzMBV8P9IZEAvxx8Slm77qGnHL8VHlqZjZ2BYZixNoLaPX5CXxx6A7uRSbDQC5Fb29H/Dq2Gc7P7oR5PT1FS3aJNJFKJRjczAUnZnTAhLZukEslOHEnEm8sP43PD95BSkbpTxRFJUfU7zW/+OILtG7dGkOHDkXLli2xfv16eHl5YcyYMao6a9euRUBAAHr16iVeoCXEUE+Gbwc1xoSNlyHRMjSZ5L//fDOoMQz1SnZGIE9PTwQEBGDWrFmoWbMmjIyMkJaWhs6dOyMgIKDA4duWL18OQ0NDdO7cGQqFAtbW1vjuu+9Uy+fMmYPg4GA4ODjA1NQUnTt3RpcuXQqM55tvvoGFhQUGDRqEtLQ0yGQyvPnmm/jss89e6zhr1qyJfv36Ye3ataptLV++HMOGDYOzszPMzMzQtm1bdOjQAfr6+q91DK+z7jvvvIO+ffvCwsICxsbGOHv2bLG2M2fOHFy7dq3AdSIjI3Ho0CEEBwfrdDxUvg1o4gy5TIKPtgVh++VQZOcI+GqQN2RFuNNbmnKHEtsZGIaDN14gNfNlYtDczQoDfJ3QvaEDzA0rfv9qqvzMDfUwr6cn/JvXwP/23cKpkCisPvMIO6/IMat7DgY2cSnStywkDokg8hg3Dx48wLp161QzrU2cOBHGxsaq5evWrcP9+/exbNkyjevPmzcP9evXx4gRI7TuQ5c6r0pMTISFhQUSEhI09uF99OgR3NzcitU/8OitCMzYEYSEV2ZaUwiAuZEc3w4qvZnWcmVnZyMhIQEWFhYa+3PGx8dDJpPlG8IsJycHixcvhq+vL956661866WlpUFfXx8ymQwJCQmqr9wL2qYgCIiPj4elpWW+rgKxsbGQSCRqy5KSkpCTk6M22cKrHj58CD8/P9y6dUutm0ZycjIMDQ0hl8vRqFEjDB06FHPmzNH5GOLi4qCnpwdTU1ON+y3O8SclJSElJQU2Njaqria6bMfU1BTZ2dmQy+WQSCQFrvPhhx9CEIQqMb2wIAhITk7Gs2fP4O7uXmn68Gqy79pzTN0ahByFgD7ejvh2sDfkBYxDq1AoVDMslsa3Xfcjk7H7aih2B4bhecLLh31rVjdGfx9n9PNxQo3qxgVsQRyl3S4VGdsmvxN3IrBk7y08jkkFAHi7WGJRb0/41KhWyJqVnxjnS0H5Wl6iJ7zlVWkmvIByEoqDN17g8I0IxKdlwtJID108bNDL2wmGOgwzJqYTJ07giy++wOHDh0t9X7kjDeQmdUURGxsLExMTGBgY4N9//0VERIRqCLTly5dj/vz5uHHjhtZ+yeVdUdomOjoaFhYWlWLEgsJUpYQXAA5ef4H3/7iKbIWAng0d8J1/Y62TL5TGh1FcSib2XnuOnYFhamOXmhnK0auRIwY2cYJvjWpFfv+WJSZ12rFtNEvLzMKPR27it4vhSPnvG4wBvs6Y1a0ebM0r9zWnIOU54S3fmVUlZqgnQz8fZ/TzcQaQN3kp2W4MJSkzMxPu7u6IjIzMd1e0PLKyslL9f4MGDbBixQq8/fbbSEtLg5ubG/76668Km+wWVd673FS5dG/ogJ+lEry7JRD7r79AtkKBH4b6Ql9eeh82mdkKnAyJxM4roTgZEvlyKDGpBB3q2qC/rzM617ct8W5ZROWFgVyGkU3tMbJNXXx15B52BoZiZ2AoDt14gfc718HY1q4wKMef51URE17Smb6+Pu7fv4+srKx8X8uXd5aWlti2bRuys7ORlZWldeg7oorojQb2WDWyCSZvDMThmxF4Z3MgfhruU6IfuIIgIDg0AbsCQ7E3+Dni8gwl1sDRHAN8ndGnsSOsTctmKDGi8sDW3BDfDPbGCL8aWLT3FoKfxePzg3ew9eJTLOjtiU4epds9kXTHhJeKxNDQsEJ/RZw7djJRZdPJww5rRjfFxN8v49jtCEzeeAW/jGjy2ndZn8enYffVMOwKDMWDqJdTWNuaGaCfjxP6+TrBw56jK1DV5lOjGnZPaYVdV8PwxaE7eByTird/u4wO9WzwSS9P1LLR/NwHlR1+8hMRVRLt69pg/ZhmGLfhEk6GRGHC75exZlRTAMCB6y9w+GY4ouJTYGMZijcb2KNHQweNCXFKRjYO3gjHrsBQnH8Yg9wnPQz1pHizgT0G+DqjdW3rcjMqBFF5IJVKMLCJM95sYIcfT97H+rOPcCokCmfv/YOxrV3xfuc6HJlERHxoTYvSfmjtVa/zcFZlxnbRjm2jWVV7aE2T8w9iMG7DJaRm5sDDwQzP49KQmF7wqDA5CgHnH8RgV2AoDt4IR1rWy6HE/Nyt0N/XGd297GFWCT+w+WCWdmwbzXRpl4dRyfh0/22cuKOccMraVB8fv+mBgU2cK+0wZnxojYiIykzLWtXx29jmGLnuAu68eDnPfO78FLn/JqVlY8Lvl/FmA3sEPYtHeOLLocTcrE3Q38cJb/k4wcWq/A0lRlTeuduYYv2YZjgZEon/7b2Fh9Ep+HjnNWy68AQLezdAk5ocxqwsMeElIqqEGjlbQC6TICNbe53cr/cO3QwHAFgY6aG3twP6+zrDxyX/uNhEVHQd69midS1rbDj3GN8fv4droQkY8Ms59PdxwqzuHrCrwsOYlSUmvEREldCB6y+KNPXpmFY1MadHfQ6lRFQK9OVSTGjnjr4+jvjqUAh2XAnFrqthOHQzHO91qo1xbdz43itl7JBDalavXo1ff/21xLe7YsUKbNq0qcS3S0SaHbkZAV27CUolQHhCBj9wiUqZrZkhvhrkjb/ebQ2fGpZIzczBl4dC8Mbyf3D0VgT4WFXp4R3eKmTt2rWIjo7G7Nmztdb5559/YGhoiLFjx5bovk+cOAFnZ+ciTe9cVBEREVi3bh2ePHmCOnXqYMKECbCwsNBaf+/evdi5c6dambGxMX7++ecib7eo+yYqbfGpmaq+uoVRCEB8WmbpBkREKt4ultg5uRX2BIXh84N38CQmFRN+v4y2dayxsLcnattWrLHuKwLe4a1Czp49i0OHDokdRqkICwuDj48PTp8+DQ8PD+zatQvNmzdHQkKC1nWCg4Nx5swZdOjQQfXTpk2bIm+3OPsmKm2WxvpFusNraaRfugERkRqpVIL+vs44MaMDJrevBX2ZFGfuRaPbd2fwv323kJCWVfhGSGe8w1vFnT17Ftu3b4eZmRm6deumsc7Tp0/x+++/IzQ0FO7u7hg9ejTs7F7OHrNhwwacPHkSAFC9enX4+flh0KBBZRJ/riVLlqB69erYv38/5HI5Jk6ciNq1a+O7777DwoULta5nY2ODMWPGvNZ2i7tvotL0RgM71cNohVEIwJtenBGKSAymBnLM7u4B/2Yu+HT/LRy7HYl1Zx9hz9UwzHyzHgY1deGY1yWAd3irsF27dqFjx46QSCSwsrLCxIkTcfToUbU6//77L3x8fPD8+XM0atQIt2/fRoMGDXD//n1Vnbp166rukNra2mLWrFmYMGFCkWMZM2ZMvp+xY8di3LhxGDt2LO7cuaN1/f3792PAgAGqWdRMTEzQu3dv7N27t8D9Pn/+HO+//z5mzpyJHTt25Os/pct2i7tvotLUo6EDzI3kKOxjUgLAwkiO7l4OZREWEWnham2CtaObYcPbzVHLxgQxKZmYves6+v50Fpcfx4odXoXHO7wlKCUzResymVQGQ7mh1rqqSQQUcsikMhjpGRW6XRN9k2LHqlAoMHPmTMybNw+LFi0CAPj7+8Pd3V2t3rhx47BgwQJMnTpVVTZ69GgsWrRI9RBay5Yt0bJlS9XyQYMGoXbt2li4cCGcnZ11isfNzQ0dOnTIVy4IAhQKBaRSKSwtLTWum56ejrCwMLi6uqqVu7q6YseOHQXut379+nB3d0d8fDzee+89rFq1CocPH4ZMJtNpu6+zb6LSZKgnw7eDGmPCxsuQCC+HIMtL8t9/vhnU+LWnICaiktG+rg0OfdhOOYzZsXu4EZaIgSvP463GjpjdvT7sLTiMWXEw4S1Bpsu0z5Xdo04P7B+2X/W77de2SM1K1Vi3fc32ODXmlOp31+9dEZ0ana+esLD4T3OGhobi4cOHGDBggKrMyckJrVu3Vv1+//59hISE4J9//sH169chCAIEQUBISAiSk5NV9RQKBfbs2YOAgABER0erEtSQkBCdE14fHx/4+PjkP0YdZhNLS0sDoLyzmpeZmZlqmSYTJ07E/PnzVb+PGjUKXl5eWLduHSZOnKjTdou7b6Ky0MXTDqtHNsWMHUFISNM809o3/820RkTlh55MivFt3fGWjxO+OhSC7VeeYU/Qcxy5FYF3OyqHMeMfqUXDhLeKioqKAgBYWVmplef9PSYmBgDg5+cHGxsbVXm7du1gavoyuR86dCiuXLmCkSNHok6dOtDT08OWLVuQlPRyhqfC7Nq1C3///bfGZbkJ9OzZs+Hh4ZFvuampKaRSKeLj49XKY2NjCxwpwdbWVu33WrVqwdfXFwEBAZg4caJO2y3uvonKSldPO1yY2wUHb7zAoRvhiEpIgY2FCbp52aO7lwM/NInKMWtTA3wxsBFG+NXEor03ceVJHL46HIJtl55hXs/6eMPTjhPE6IgJbwlKnpOsdZlMqv6hEjkjUu33vHcyX637eOrjEosxV40aNQAoH0hzcnJSlT958kTVdSD37qyHhwd69+6tcTtxcXHYvn07AgMDVXdoo6OjkZVVtKdLX6dLg56eHurVq4ebN2+qld+4cQNeXl5FiiM1NVXVj1eX7ZbkvolKi6GeDP18nNHX27HM57knotfX0NkCf05uib+CnmPZwdt4GpuKSRuvoG0dayzo5Yk6dhzGrDC84pUgE30TrT95++8WVjdv/92C6r4OGxsbtG3bFt99950qwfvnn39w+fJlVR0nJyd06tQJixcvVruDGRUVhWPHjgGA6i/LuLg41fKlS5cWOR4fHx+ND62NGTMGo0aNwpgxY2Bvb691/aFDh2Lbtm2IiIgAANy7dw8HDhzAsGHDVHX27NmDd955R/X7rl271B5S27t3L4KCgtCzZ88ibVeXOkRERK9DIpHgLR8nnJjeAe92zDOM2fdnsHjvTQ5jVggmvFXYihUrcPz4cfj6+qJPnz6qPqx5bdy4ETKZDPXq1UP//v3RsWNH+Pn5ITVV2f/Y0tIS7733Hvr164dBgwahSZMmOH36NAwMDMr0WGbMmIEGDRrAx8cHffv2RcuWLdGrVy+1IceCgoKwZcsW1e8nT56Eh4cHBgwYgPbt22Pw4MH45JNPMHDgwCJtV5c6REREJcHEQI6Zb3rg6LR26OpphxyFgF//fYyOX5/ClgtPkaPrjDNVjETgPHYaJSYmwsLCAgkJCTA3N1dblp6ejkePHsHNzQ2GhiXztKQuD2e9rrNnzyI5OVltvN24uDicOHECZmZmaNasGW7cuAGZTIZWrVqpxXb58mXcv38fjo6OaNasGYyNjdW2ffnyZdy7dw8ODg5o27Yttm7dirZt26q6Tpw4cQImJiZo0aJFkWIuSrsIgoBz587h6dOnqFOnDpo2baq2PCgoCLdu3VK78xoaGorLly/D2NgY3t7eauML67pdXeuUtLI4ZyoiQRCQnJyMZ8+ewd3dvcTeo5WBQqFglwYN2C7asW00K0/tcuZeFBbvvYX7kcpulQ0czbGoTwM0c7UqZM2SJ0a7FJSv5cWEV4vKmPBWRGwX7dg2mjHh1a48fUiXJ2wX7dg2mpW3dsnKUWDj+SdYfuwuktKzAQB9vB0xp4cHHCyMClm75JTnhFf8V4mIiIiIik1PJsXbbdxwakYHDG1eAxIJ8Hfwc3T6+jR+OH4P6Vk5YocoOia8RERERJVAdVMDLOvfEHvfa4OmNashLSsH3xy9iy7fnsahGy/yzSZalTDhJSIiIqpEvJwssGNyS3zv3xj25oYIjUvD5E2BGL72AkLCdR8jvzJhwktERERUyUgkEvRt7IQTM9rj/U61oS+X4tyDGPRYcQaL/r6JhNSqNYwZE14i+n979x6X4/3/Afx1392dzyWdpWQoo8RC1uQ05hAzy9icxtgMG0p+tq/sa2b7msNCM8yZVM4Wy2EoJTbKIXKqkKToJDrd9/v3R7uvdeu+K1Z33N7Px8Pa/Tlc1/v6XNfd/b6vPtd1McYY01AGOhLM6NMKR6a/hb7uNpDKCOvj09F90R/YfCrjlbmNGSe8jDHGGGMaztHCAD9/5IUt473xmrUR8h6X46vdFzEgNA6JNx80dngNjhNexhhjjLFXhI9rE0RPfRMhA91goifB5axCBPxyCpO3nkVm/pPGDq/BcMLLGGOMMfYKkWiJMcbHGccC/TDSuxnEIuC381no+eMxLDusmbcx44SXsXqyc+dO3Llzp9HWv3fvXmRkZDTa+hljjL1cLAx18O2Q17FvSje84WyBknIZlhy+ip4/Hkf0Bc26jZmksQNg6vHgwQMcOnRIZb25uTnefvttAEBiYiLS0tLQrVs3ODg4CG1yc3Nx+PBhDB48GHp6ekK7p5mZmSk8vri+7dixA507d4a9vX2DreN5jBs3DmvWrMF7771X5z71uS2fffYZFi5cCCcnp3+9LFXKysoQHx+PgoICdOrUCXZ2djW2P3bsGO7du6dQ5uDggG7dulVrGxcXhzt37sDf3x/6+tWfDPSs62aMMVY37nam2P5JZ+w/n4Xvoi8jM/8JPttyFp1dLBAyyB2tbVQ/wexlwQnvKyIvLw+7d++uVl5WVoZdu3ahS5cuQsIbFhaGDRs2wN/fX6HPlStX8MEHHyArKws2NjYICwtDdHQ0evToobBMR0fHBk14R48ejc2bN79wCe/zeJm2JT09Hb179wZQmbQmJiZi8eLFmDRpkso+8+fPx927d9GuXTuhrFOnTgoJ79atWzF//nyUl5fj+vXruH37tsIXreddN2OMsboTiUQY2N4OvdpYI+z4Daw6fgOnbj7EO8ti8WFnJ0zv/RrMDHQaO8zn9kIkvGVlZSgsLISlpSVEIlGd+5WXlyM7OxvGxsYwNTWtVl9aWoqysjIYGxvXZ7gvJVdXV4SHh1crnzBhAvT19REaGqpQ7uTkhH379uHkyZPw8fFRuVw3Nzely60JEeGvv/7CnTt34OLiopAMXb58GRcvXsS7774LLS0tAJXPyY6JiYGvry/Onj2LiooKxMXFoaSkBPr6+vD390dERAR8fX3x5MkTJCcnw9XVFW3btkV0dDQKCwshFothZ2cHT09PGBoaKsQj71teXo4LFy7A0tIS3t7e1eLOy8tDQkICZDIZOnfujCZNmtS4nbWte9++fUq3BQBKSkqQkJCAx48fo23btkrP2mZmZiIxMRHNmzdH+/bt674DntOkSZPg4OCAQ4cOQSKRYP369ZgwYQJ69eoFV1dXlf0GDRqEhQsXqqyvqKhAVFQU7t+/Dz8/v3pdN2OMsWejr6OF6b1fwzAvB3x34DKiL9zDxoQM7E2+ixm9X8MHbzSDROvlmxHbqAmvTCZDYGAgwsLCIBaLYWpqiuXLl2PIkCF16v/JJ59g/fr1mDZtGpYuXSqUJyYm4uuvv8bp06dRUVEBCwsLzJ07Fx9//HEDbcnLacWKFVizZg22bNkCLy8vhbrWrVvD19cXQUFBOHnyZL2tMzs7G/7+/sjNzYWbmxvOnz8PV1dX7N69G0ZGRrC0tMSUKVNw5coVfP311wCAyZMnIzU1FUOHDkVMTAykUikSExNx584dmJmZwd/fHyNGjEDv3r2RmpoKT09PfPDBB2jbti2OHDmCzMxMyGQyXL16Fbm5udi7dy86dOggxDRixAj06tULKSkpcHd3R2JiInx9fbFjxw4h6d6zZw8++ugjuLu7QyKR4OzZs/jll18wcuRIldta27pVbUt8fDzee+89ODg4oGnTpoiPj8f48ePxww8/CMsODw/H2LFj4eXlhYqKCohEIjx+/LjGsT9y5AhycnJqbDN8+HCl5ffv30dMTAyioqIgkVT+2vjoo48QFBSE7du3Y86cOSqXeffuXezevRvW1tZo3749DAwMFOpHjRolrKO+180YY+z5OFoYYOVIL8TfyMW8vSlIzS7C13suYUviLcwd6I4uLSyFtiXlUkRfyMLvl+4hJ78YVmZ38La7Dd553RZ62lqNuBVVUCP64YcfyNzcnM6dO0dSqZSWLVtG2tralJKSUmvfrVu3UqdOncjd3Z2mTZumUDdv3jyKjY2liooKkslktG7dOgJA8fHxdY6toKCAAFBBQUG1uidPnlBKSgo9efJEseLRo8p/Mtk/ZaWllWUlJcrbSqVERCSTyaisuJhkRUVEqpb7d1siIiorq/O2KHPs2DGSSCQUGBhYrW706NH09ttvU3p6Ounq6tKuXbuIiCg2NpYAUFZWltCuTZs2tG3bNoV/p0+fVrned955h8aNG0fSv7elpKSEfHx8aNasWUKbAwcOkLa2NiUkJNCGDRtIX1+fLl26JNQbGhoKMclpaWlR586d6fHjxzVud2BgIHXr1q1a3zZt2gj7Oj09nUxNTenXX38lIqL8/Hxq0qQJzZ8/X+izdOlSMjIyonv37gllpqamFBkZ+UzrfnpbioqKqGnTprRu3Tqh7NatW2Rubk4HDhwQ4jE3N6fFixdTWVkZyWQymjNnDgGgTZs2qVz/3LlzKSAgoMZ/qhw9epQAUGpqqkL5W2+9VWO/nj17kr29PfXv359cXV3JxsaGDh48qLTtH3/8QQDo9u3b/2rdMpmMCgsL6dKlS9Xfo684qVRKWVlZwvuPVeJxUY3HRrlXbVzKK6S0IT6N2oX8Tk6z9pPTrP306eY/6fbDYoq5dI9eDzlITrP2k3PwfoWfr4ccpEOX7tW+gn+hpnytqkY9w7tixQqMHz8eHh4eAICpU6fip59+wi+//IIlS5ao7Hfjxg3MmDEDx48fx7Bhw6rV/+c//1F4PWrUKEyYMAGXL19Gly5d6nUbFBgZVf68fx+wsqr8///9D/jqK2D8eGD16n/aNm0KPH4MpKUBzZsDAMRhYRDNnAmMGAFs2fJP2+bNgdxc4OJFwN29smz9emDChOcKMyMjA8OGDUPPnj3x3XffqWzn5OSEyZMnY/bs2Rg4cKDSNrm5udXmBvfo0QOdOnWq1vb+/fuIjo7Gd999h507d4KIQERwdnbGH3/8IbTr27cvPv30UwwfPhx5eXn4/vvv0aZNm1q3Sz4942lpaWm4cuUKCgsLYWhoiDNnzoCIFKbPTJw4ESYmJsJ2BwQEICIiAmPHjsXhw4dRVFSEGTNmCO0nT56MkJAQ/Pbbbxg3bpzKmOqy7qqio6NRUFAAQ0NDREZGAoDCGPXt2xeHDh1CaWkpPvvsM6FfUFAQFixYUOP4hISE1Fhfk4KCAgCAhYWFQrmlpSXy8/NV9gsKCkLPnj2hpaUFmUyGL774AsOHD8fVq1dhJX+PNNC6GWOM1Q+JlhijujTHwHZ2WHzoKrYkZiD6wj3EXMpGhYwg/0STP7RN/rPoSQUmbPoTv3zUEb3drBsldrlGS3jv37+PjIyMavNDu3XrhtOnT6vsV1ZWhuHDh+Obb75By5YtVbYrLS1FTk4OCgsLsXr1atjZ2WHAgAH1Fv/L6vHjxxg8eDDMzMwQHh4u/MlelTlz5mDt2rVYu3Yt3NzcqtU/yxze9PR0AEBCQgKSkpIU6p6eM/uf//wHYWFhcHZ2rvOFSba2tgqviQhjx47Fjh074O3tDQsLCxQUFKC0tBSFhYUK876b//2lQ87Z2RmxsbEAKr8g2NraQk9PT6iXSCRwcnJSeRuwZ1l3Venp6dDW1saOHTsUylu2bAlnZ2cAwK1bt2BnZwcdHR1UVFQAAExMTKolhE/7N1MadHV1AQCPHj1SmLv86NEjpV8y5Pr06SP8v1gsxrx58xAaGorY2Fi8++67Ncbyb9fNGGOsfpkb6uC/g9tihHczzN1zEafT8wAAqm5eRgBEBMyMTELi//Vq1OkNjZbwyj94n77wp0mTJoiPj1fZb/bs2XBwcMD48eNrXH5CQgI+/PBDPHz4ELq6utiwYQOaNm2qsn1paSlKS0uF14WFhQAq5xnLZDKFtjKZTDg7SVXvUVdUVPnTwACQl8+cCUybBkgk/5QBQHZ25U99faFcOmkSxBMnAlpaim3lt/6q0hajRyu2qaNx48bhxo0bOHXqFExNTWu8xx4RwdzcHEFBQQgJCcG6deuE8qr9alpGVfKLB4OCgtC1a1el65ObNWsWmjVrhoyMDGzfvh0jR46stk5l661advToUWzfvh3Xr18XbmF18OBBxMTECPtQ7uHDh9VeN2nSBEQES0vLavXyNpaWlkrjepZ1V90WY2NjVFRUYPPmzUq/jBARLCwskJeXp7C9UqkUhYWFKscFAE6cOIHU1FSldXIBAQFKy11cXABUJv9VL6DLyMhAv3796nwMGBgYQEtLC/fv36/WR/766W14nnXLy5S9f19l8mOPx0QRj4tqPDbKverj0sraCO93dBAS3poQgIInFYg+fxeDPev/jkR13QeNlvCKxZVX+MnPUMmVl5erPOt47NgxrFu3DkePHhVu8F9eXo5Hjx7hzp07Crcy6t69O+7cuQMiwsaNGzF06FD89ttvCmecqvruu+8wb968auU5OTkoKSmpFqNMJkNFRYVi/H+fiYK0yhNKxOJ/ypW1lcmAv984UrEY0NKq/HN3DW0BAE+3qYOFCxciIiICUVFRaNmyZbWxl5O/keX1n3/+OVasWIHFixf/vRmV2/10u9q0aNECzZs3R1hYGN544w2FuszMTOHWXHv27MGmTZsQFxeHY8eOYcqUKejSpQuaNWsGADAyMkJxcXG19UqlUoWyzMxMmJqawsrKSiiXTxN4et/t2rULH374obCcPXv2wN/fHxUVFejUqROKi4sRExMj3ILt9OnTuHPnDjp37qywHHkMdV3309vi5+eHsrIyrFu3DmPGjBGWW1ZWhoKCAlhZWaFTp07Iy8vDsWPH0LlzZwCVd3woLy+vNgZVffXVVzXsHQixKePi4gJXV1dEREQIX1aSk5ORmpqKZcuWCf3++OMP6OjowMfHB48ePRK2UW7nzp2QSqXo0KGD0v339Pg8y7rl5B9CMpkMDx48gLa2dq3b/aqQyWQoKCgAEQm/gxmPS014bJTjcQH2J92GWPTP9IWaiEXA3nO30NW+/n8fF8lPNtai0RJeeXLz9E3ps7OzVd6TND09HQYGBgpTE+7fv49bt27h4MGDyMjIqJYsi0QijB49GqtWrcL27dtVJryzZ8/G9OnThdeFhYVwdHSElZWVMLdTrqSkBEVFRZBIJMJV4/WloT6cT548iZCQELz55psoLS1FVFSUQr2WlpYwH1osFkMkEgnbZmxsjJCQEHzyyScAIGy3WCxGTk5OtWVpa2tj6NChSuNYu3YtBg0ahKKiIrzzzjvIy8vDgQMH0LdvXwQHByMrKwuTJk3C/Pnz0bFjR3h5eSEmJgYff/wxjhw5ArFYjI4dO2L16tUgIhgbGwu38tLS0lLYH7169cKTJ08wduxY9OjRAydOnMDevXsVtkEuISEB48aNQ7du3bBjxw4UFhYiMDAQEokEbdq0wZQpUzBixAgEBQVBIpHgf//7H8aMGVNtrrI8hrquW9m2LFiwAJMnT0ZycjI8PT2Rnp6OHTt2ICwsDLa2tnBzc8P48eMxfPhwTJ8+HUSE5cuXQ09Pr9oY1KfFixfj3Xffhba2NpydnbFs2TL4+/srvKcWLFgAMzMzvPXWWygoKMA777yDwYMHo0WLFkhJSUFYWBgmT56sMG4XLlzApUuXkJKSAqByHrOFhQW6dOkinNGty7qrEovFEIvFsLS0VJiK8qqTyWQQiUSwsrJ6ZT+kleFxUY3HRjkeF+CJNK1OyS5QmRQ/kYpr/Ev786rr7/hGS3hNTEzg4eGBQ4cOCX9GraiowJEjRzBlyhShXV5eHsrKymBtbY0xY8YonPUCAA8PD3Tv3l24LZn8T5lVLwoiIjx48KDa7ZCq0tXVFeYKViX/4Hy6TCQSCf/qQ9ULmeprmVVJpVIhod2zZ0+1eh0dHbz//vsAKufTFhQUKMQxbtw4nDlzBoWFhTAwMIBIJIK3tzdKSkqqLU9PT0/l08Z69OiBlJQUbNiwAfHx8bCzs8OCBQuEudz79+/Hhx9+iJkzZwrrX7t2LYKDg5GYmIiuXbti7dq1WLlyJQ4dOgQDAwMMHjwYAQEBsLOzU4jZzs4OiYmJWL16NU6cOAE3NzdMmzYNP/zwA3R1dRXarl27Frdu3cKff/4JT09P/PrrrwoXVS1evBg+Pj74/fffQUT48ccf8cEHHygsY+jQoWjWrBlEIlGd161sW2bNmoXu3bsjKioKsbGxaNmyJX777TdhDi8ArFy5El5eXoiLi0OzZs1w5MgR/PTTT3B2dm6Q4wcABg4ciPj4eGzevBlJSUkIDg7GuHHjFNbXo0cPGBoaQiQSoXnz5jhx4gTWr1+P+Ph42NjYICYmptpT1q5cuSIcQwEBAcLcaUdHR2FudV3WLVf1vaTs/fuqE4lEPC5K8LioxmOj3Ks+LuYGOs90htfcQKdBxqquyxRRXSffNYCdO3ciICAAy5cvR5cuXbBo0SIcOHAAKSkpQrIxfvx4nDp1ChcvXlS6jKcT3sePH6NPnz6YOXMm3NzckJ+fjxUrViAyMhIJCQl1vkG//MKigoICpWd409LS4OzsXG9nj+RTAyQSSYMlLC8jdYyLRCLB/v37G/TpcA2BjxnliAiPHj3C7du34eLiwmd4q5DJZLh//z6aNm36yn5IK8PjohqPjXI8LsDOs3cwPSK5zu2XBLTHEE+H2hs+o5rytaoadS+9++672Lx5MzZs2IAhQ4agsLAQx48fVzizZmFhARsbG5XLsLa2hpmZmfDawMAAoaGhiIiIgL+/Pz777DPo6Ojg7NmzankaFWOMMcaYpnvndVuY6EtQ2+kWEQBTfQn6tbWtpWXDavRHCwcEBKi8MhyAwtOllPn999+rlXl6emLr1q3/Ojb2aggICKh2SzPGGGOMqaanrYXFwzwwYdOfEJHyW5OJ/v7Pj8M8Gv2Ja6/meXjGqtiyZQuf/WeMMcaeUS83a/zyUUeY6FeePxX/fbpX/tNEX4LVH3VEr0Z+6ATwApzhZYwxxhhjL6febtZI/L9eOHAxCwcv3kNOQTGsTA3Rt60N+rW1bfQzu3Kc8DLGGGOMseemp62FIZ4O8G9v98JezPdiRfOSacQbXDDGGGOMsTrihPc5yB9uUVZW1siRMMaUKS8vBwCVT21kjDH2auEpDc9BIpHAwMAAOTk50NbWrpfT9nxPVeV4XFTjsVFOKpUiJycHBgYGDfbUOcYYYy8X/jR4DiKRCLa2tkhLS0NGRka9LJOIIJPJhKe4sUo8Lqrx2CgnHxcnJyceF8YYYwA44X1uOjo6aNmyZb1Na5DJZHjw4AEsLS1fuInejYnHRTUeG+WICPn5+dDR0WnsUBhjjL0gOOH9F8Ricb09tlQmk0FbWxt6enqcvFTB46Iaj41yMpmMz+wyxhhTwJ+SjDHGGGNMo3HCyxhjjDHGNBpPaVBBfo/dwsJCtaxPJpOhqKiI/zz9FB4X1XhslONxUY3HRjkeF9V4bJTjcVGuMcZFnqfV9mwETnhVKCoqAgA4Ojo2ciSMMcYYY6wmRUVFMDU1VVkvIn5cmFIymQx3796FsbGxWi6AKSwshKOjI27fvg0TE5MGX9/LgsdFNR4b5XhcVOOxUY7HRTUeG+V4XJRrjHEhIhQVFcHOzq7Gs8p8hlcFsVgMBwcHta/XxMSE3zxK8LioxmOjHI+Lajw2yvG4qMZjoxyPi3LqHpeazuzK8cQTxhhjjDGm0TjhZYwxxhhjGo0T3heErq4u5s6dC11d3cYO5YXC46Iaj41yPC6q8dgox+OiGo+Ncjwuyr3I48IXrTHGGGOMMY3GZ3gZY4wxxphG44SXMcYYY4xpNE54GWOMMcaYRuP78KpRRkYGbt++DS8vL+jr69epz82bN5GXl4fWrVvD0NCwgSNsHGVlZfjrr79gZWUFV1fXGtsWFhbi/Pnz1co9PT01bnxKS0uRmpoKMzMzODo61vkBKKmpqSguLoa7u/sLeeFAfbh9+zby8vLQokWLWvf7gwcPcPny5Wrl3t7e0NbWbqgQG0V5eTlSU1Ohq6sLZ2dnSCS1/4onIqSkpKCiogLu7u516vMyunfvHrKystC8eXOYm5vX2DYrKws3btyoVt6tW7eGCq/RXbt2DdnZ2fDw8ICRkVGNbaVSKS5dugSRSAR3d3eNfrTukydPhM+nVq1aqWx369Yt3Lp1S6FMW1sb3t7eDR2i2shkMsTHx1crf+2119C0adMa+5aXl+PixYvQ09NDmzZtGirEmhFrcMeOHaN+/fqRpaUlAaDLly/X2ic/P5/8/PzI2NiYXnvtNTI2NqYtW7aoIVr1yc/Pp9mzZ5O9vT0ZGhrSxx9/XGuf2NhYAkBdu3YlHx8f4d+1a9fUELF6FBQU0Oeff05mZmbUrl07atq0KbVr146SkpJq7Hf37l3y8vIic3NzcnFxIUtLS4qOjlZT1Oqxe/ducnd3JwcHB3r99dfJ0NCQ5s2bV2OfyMhI0tLSUjhefHx86MGDB2qKWj1CQkKoadOm1L59e3JwcCB7e3vat29fjX1SU1OpdevW1LRpU3J0dCR7e3uKj49XU8TqkZiYSF26dCEHBwdq37496enp0ahRo6i0tFRln9DQUNLX1692zGiqmzdvkrm5OQGgM2fO1Nj27Nmz5OTkRPb29mRjY0MtWrSgCxcuqClS9Rs7diyJxWIKCAiosd3cuXPJxMRE4Xjp37+/mqJUj6KiIgJA7dq1U9jO2j5njh49StbW1tS8eXOytLSkdu3aUXp6upqi/gcnvGoQGhpK+/fvp8TExDonvGPGjCE3NzfKz88nIqKwsDDS1tam69evN3S4anP58mX69ttv6d69e/TWW289U8L75MkTNUTYOK5evUqhoaHCNpaWltKwYcPI2dm5xn59+/alrl27Cv3kv4BzcnIaPGZ1Wbp0KaWkpAivjx49ShKJhHbs2KGyT2RkJJmamqohusZTUVFB33//PT169IiIiGQyGQUFBZGBgQGVlJSo7Ofp6UkDBw6kiooKIiKaOHEi2dnZadT7a/v27ZScnCy8vn79OhkbG9OSJUtU9gkNDaVWrVqpIbrGV1ZWRt7e3jRr1qxaE96ysjJycXGh0aNHE1HlcTZs2DBq3bo1SaVSNUWsPlu3bqWOHTtSjx496pTwavKXIqJ/Et6EhIQ69ykoKCBLS0sKCgoiospjyM/Pj958882GClMlTnjV6MyZM3VKeB8/fkx6enr0888/C2VSqZSsra1p7ty5DRxl43jWhDc5OZmSkpKouLhYDdE1voMHDxIAyszMVFqfmZlJIpGIdu/eLZQ9evSI9PX1KSwsTF1hNoq2bdvSl19+qbI+MjKSTExM6NKlS3ThwgWNSuZqEh0dTQDo3r17SuvPnj1LAOjUqVNC2e3bt0kkEtGuXbvUFGXjcHNzo5kzZ6qsDw0NJVdXVzp//jylpKRQWVmZGqNTr8DAQBo+fDhduHCh1oQ3JiaGACiceElKSiIAFBsbq45w1eb69etkY2NDqamp9Pbbb9cp4X3jjTfo3LlzlJqaSuXl5WqKVH3kCW9kZCT9+eeflJeXV2ufjRs3kra2tkJb+eeZuv8yq7kTb15ily9fRklJCby8vIQysVgMLy8vnDt3rhEje3EMGjQI77//PszNzREYGAipVNrYITWoM2fOwMjICNbW1krrk5KSQEQKx4yhoSHatGmj0cfMgwcPkJaWVqe53/7+/vD394eFhQUWLFigpgjVKy0tDbGxsQgPD0dgYCCmTp2q8piRHxcdOnQQyhwcHGBra6txx0xZWRni4uJw6NAhfPHFF3j06BEmTZpUY58bN27g/fffR9++fdGkSRP8/PPPaopWfWJiYhAREYGwsLA6tT937hxMTU3RokULoax9+/bQ0dHRqGOmvLwcw4cPx7x58/Daa6/Vud+ff/6JkSNHws/PD7a2tti6dWsDRtl4Pv30U4wZMwbW1tYICAhAfn6+yrbnzp2Di4sLzMzMhLI33nhDqFMnzbw64SX38OFDAIClpaVCuaWlJdLS0hojpBdGkyZNcPz4cfj6+gIATp48id69e6Np06YIDAxs5OgaRnJyMr777jt89dVX0NLSUtqmpmNGXqdpiAgTJkyAlZUVPvroI5XtnJyccPbsWXh6egIA9u/fj8GDB8PR0bHGfi+jffv2ITw8HOnp6WjSpAlGjhypsu3Dhw9hYmJS7cI9TTxmCgoKEBwcjMLCQty4cQNBQUFo3ry5yvZt27bFlStXhGRn3bp1GDduHFxcXNCnTx81Rd2wsrOzMWbMGGzbtg1mZma4c+dOrX0ePnxY7XcMoHnHTHBwMOzt7fHJJ5/UuY+3tzfS0tLQrFkzEBF+/PFHjBo1Ci1btkSnTp0aMFr1kUgk2Lhxo/B78+bNm+jVqxcmT56MLVu2KO2j7JgxMzODWCxW+zHDZ3hfQPIPoJKSEoXyJ0+eQEdHpzFCemG0bt1aSHYBwMfHB6NGjUJ4eHgjRtVwrl27hn79+mHo0KEIDg5W2e5VPGYmT56MEydOYN++fTA2NlbZrlOnTkKyCwADBgzAgAEDNPKYmTp1KuLj45GZmYmhQ4eiR48euHv3rtK22tra1Y4XQDOPGSsrK8TFxeH8+fNITk5GWFgYQkJCVLbv3r27wpm9sWPHwtvbG9u3b1dDtOoxZcoUdOjQAVpaWoiLixPOtiUnJyM1NVVpn1fhmElMTMTKlSsxZswYxMXFIS4uDvn5+cjNzUVcXBzKysqU9uvXrx+aNWsGABCJRJg5cyacnZ0RFRWlzvAblJ6ensJJAhcXFwQFBSEqKgoVFRVK+yg7ZsrKyiCTydR+zHDC+wJycnICAGRmZiqUZ2ZmCm8o9g9ra+tqY6UJrl+/Dj8/P/j5+WHdunU13pbsVTtmpkyZgoiICBw5cgRt27Z95v6aeszIyT9wi4uLceLECaVtnJycUFZWhtzcXKFMKpUiOztbI48ZOVdXVwwZMgQHDhx4pn6adsyYm5sjPz8fwcHBCA4OxpIlSwAAoaGh2LZtm9I+Tk5OyM3NVUj6iouLUVBQoDHHzJMnT+Dl5YVFixYJY5Oamork5GQEBwejoKCgzstq2rSpRh0zylhbW1f7PVKVk5OT0s8lAGo/ZjjhfUGkpKTg4sWLAIDmzZvD1dUVe/fuFeqzsrJw+vRp9O7du7FCbBQFBQWIi4tDcXExAAg/5YgIhw8ffq6k50V28+ZN+Pn5wdfXFxs3blQ6lSE5ORlXr14FAHh5ecHCwkLhmLlw4QLS0tI07piZOnUqtm7disOHD6N9+/bV6uVnYsrLywFUP2bKy8tx/PhxjTpmnt5GoPILE6A4zeXMmTNIT08HAPj6+kJHR0fhmDl69CiKioo06phRNTZVx+Xu3buIi4tT2aewsBCJiYkadcysWrVKOIMZFxeHjRs3AgDWrFmjcPY7Pj5emO7Qs2dPlJeX4+DBg0L93r17IRaL0aNHD7XG31C6d++uMC5xcXHw9vZGz549ERcXBysrKwCV991NTEwU+j19zGRnZ+P8+fMadcwoey/FxMTAyspKuA+vVCpFXFwc7t+/DwDo3bs3srOzcfr0aaHPnj17YGRkhC5duqgn8L/xHF41uHPnDtLT04U/E509exa5ublwdXWFjY0NACAoKAglJSU4fPgwAGDhwoUYPnw4bGxs0KZNGyxcuBDt27fH+++/32jb0RDkHzIFBQXIzs5GXFwc9PX1hYuvzp07Bz8/P5w7dw4eHh6YPn06dHV10b17d4jFYqxfvx5JSUnCuGmCrKws+Pn5wdLSEhMnTkRCQoJQV/Wm8B9//DFat26NzZs3Q1tbG//9738xY8YMGBkZwdbWFnPnzkWfPn005oMIAP7v//4PK1euxNKlS/Ho0SPh+Kl6U/jDhw/jgw8+QFZWFmxsbDB69Gi4urqia9euKCsrw8qVK5GTk4OvvvqqMTelXsXFxWHRokUYMWIEHB0dcf36dfzwww/w9fVV2P9DhgzB8OHDsWjRIlhYWGDWrFmYMWMGZDIZDAwMMGvWLIwaNQpubm6NuDX1q3///ujZsyc6dOiAiooKREVF4cSJE4iJiRHaRERE4MsvvwQRAQAGDhwIX19fdOrUCYWFhVi8eDG0tbUxffr0xtqMRtOjRw+EhIQgODgYzs7OmDRpEiZOnIiCggJIpVLMnDkT06ZNg62tbWOHqla//PILfv75Z+HM5ltvvYWhQ4fCw8MDOTk5+OGHH2BnZ1frxZEvk7Vr1yI+Ph6DBg2CmZkZoqOjsWbNGqxevVp4+EhRURHefPNNrFu3DmPGjIG3tzeGDBmCkSNHYv78+Xj48CG+/vprzJ07FwYGBmqNnxNeNTh+/LhwFayPjw9WrlwJAAgMDIS/vz8AwN3dXeHPREOHDsX+/fuxZs0aHD16FD169MCsWbM06ilIUqlUmJdqaGiIvLw8BAcHw8HBQZhfaWpqCh8fHyHJW7FiBTZs2IBt27ahpKQEbm5uWL58ORwcHBptO+pbZmYmHB0dAQBz5sxRqFu7dq2Q2Hl4eAhTGQDgs88+g5WVFbZs2YLHjx9jxIgRGvcBnZWVhc6dOyM8PFxhDm6vXr2Es1JWVlbw8fER5odt2bIFq1atwrp160BE6NatGyIiItCkSZPG2IQG8fbbb8PMzAzr1q3D1q1bYWNjg7lz52LkyJEKfx1444034OzsLLyeN28enJ2dsWPHDlRUVGD69On4/PPPG2MTGsy+ffuwcuVKrFq1CiKRCK1bt0ZqaqrCRWv29vbw8fERXu/Zs0foo6OjgyFDhuDzzz+HiYlJI2yBehgaGsLHx6fafHgfHx/h9xFQOeXBzc0NW7duhUgkwvz585/p4q6XUdu2bas9fc7JyQmdO3cWXsfExGD58uVYvnw5DA0NMXbsWHz22Wd1fqrqy2Dq1KlwdnZGZGQkcnJy4OLigj///FPhL20SiQQ+Pj4Kd4fZtm0bli5dil9//RW6urpYtWpVjRfUNhQRyb/SMsYYY4wxpoF4Di9jjDHGGNNonPAyxhhjjDGNxgkvY4wxxhjTaJzwMsYYY4wxjcYJL2OMMcYY02ic8DLGGGOMMY3GCS9jjDHGGNNonPAyxthTysrKEB4ejvz8/MYO5bnUZ/zXrl3Drl278Pvvv//7wNQoJycHv/32m/D6999/x/HjxyGVSqu1LSgowK5du9QZHmNMzTjhZYxpBCJCeHg4du7cWa0uMTERsbGxdV5WYWEhPvjgA6Snp9djhOpTX/H/+uuv6NSpEzZv3ow//vijXmIrKSlBeHg4CgoK6mV5qkyfPh1nzpwRXh86dAjDhw/H4MGDq7U1MTFBSEiI0mOHMaYZ+ElrjDGNUFFRAW1tbQCVj5MdMGCAUDdmzBjk5uZi//79dVpWUVERJkyYgO+//17h8c0vi9zcXFhZWeHcuXPw8PB47uV06dIFgwYNwuzZs+sttnv37sHW1hYXLlxA27Zt6225VV24cAGdO3fG3bt3YWpqKpQnJSXB09MTFy9ehLu7u0KfrVu34ptvvsHly5chEokaJC7GWOORNHYAjDFWn1xcXBAcHIx+/fpBS0tLZbt79+7h9OnT0NXVRdeuXWFsbCzU6erqYvDgwQrJUnl5OU6dOoXCwkK0b98eDg4OCssrLCxEQkICAMDDw0PhWfLK1La8oqIinDp1CkSELl26KMQXEREBmUwGLS0tODk5wdPTU0j2a1LXGMvLy7Fjxw6kpaXhxo0bCA8PR/v27dGmTZs6r1tZ/ESEPXv2AAAOHjyIixcvwsrKCj179gRQ8z4pLi4Wvsikp6fj6tWr8PLyUvqFZMWKFdX2n3ybvb29sWnTJixcuFChbsiQIZg4cSKOHDmCXr161TqWjLGXDDHGmAYoLy8nABQWFkYmJia0du1aoW706NHUv39/4XVoaCjp6+tT9+7dydPTkywsLOiPP/4Q6nNycggAnTt3joiIbt++TS4uLtS2bVsaNGgQubi40Lx584T2UVFRZG5uTr6+vtS3b18yNTWl5cuXq4y1tuVFRkaSqakpeXh4UJ8+fahly5Z06tQpoX7EiBEUEBBAQ4cOpZYtW5KbmxvdunVLZfzPGmNxcTEFBASQkZERdezYkQICAmjPnj11WndN8UulUvL39ycA1LdvXwoICKC5c+fWaZ+kpaURABowYAC1atWKhg0bRrGxsUrjd3BwoDVr1lQrl8lk1KZNG3JwcCCpVFqtvlevXjRt2jSly2SMvdw44WWMaQR5whsZGUn//e9/ycHBgR4/fkxEignvtWvXSFtbm8LDw4W+U6ZMoebNm1NJSQkRVU8YQ0JCqGvXrkJ7qVRKu3fvJiKimzdvkqGhIR07dkyoP3PmDOnp6dHly5eVxlrT8q5du0Y6Ojq0dOlSof7evXuUkJCgdFlSqZSGDh1KY8aMEcqejv95YiQiatGiBYWFhamsV7bu2uLPysoiAHThwgWFPrXtE3nC+/777ytNVuWys7MJAMXHx1erO3DgAAEgAHT06NFq9V9++aXCfmGMaQ6+aI0xpnGmT58OqVSKn376qVrdjh074OjoiICAAKFszpw5SE9PR2JiotLl6evr48GDB8jMzAQAiMVi+Pv7AwC2bdsGS0tL5OTkIDIyEhEREbh58yYsLCxUXihX2/JsbGwwdepUob21tTU6d+6ssIyUlBTs378fERERsLKywunTp1WOx/PEWJOa1l3X+Kt6ln0yefJkiMWqP7pyc3MBAObm5tXqli5dim7dusHDwwObNm2qVm9ubi70Z4xpFp7DyxjTOAYGBpg7dy6Cg4MxYcIEhbqMjAy4uLgolFlbW8PQ0BAZGRlKl/fpp58iKSkJLVu2hJubG3r37o3PP/8c9vb2SE9PR1lZGaKiohT6vPnmm2jSpMkzL+/WrVtwdXVVeeHUkydPMHDgQJw7dw6dOnWCqakpbt++jfv376scj+eJ8XnXXVv8yjzLPrG1ta1xWUZGRgAq5/xWdeXKFcTExGDv3r24efMmvv76a6xYsQL6+vpCm+LiYoV5w4wxzcEJL2NMI3388cdYsmQJvv32W4XyJk2aVDtrWFpaisePH6tM/oyNjbF161YUFxfj5MmTCA0NRceOHXH9+nWYmJjA3Nwc4eHhdY6tpuWZmZnhwYMHKvtu2rQJ165dQ0ZGhpDcLV++HCEhISr7PE+Mz7vu2uJX5ln2SW2JtJ2dHYyMjJCWlgYvLy+hfNmyZXB3d0f//v3x8OFDBAYGYu/evQpnldPS0tCqVatnip0x9nLgKQ2MMY0kkUjw7bffYsWKFQpnCbt164bk5GTcuHFDKIuKioKenh46dOigdFnyqQeGhobo06cPfvrpJ9y7dw8ZGRno27cvLl++jOPHjyv0KSoqQlFR0TMvr0+fPjh//jySkpIU+uTk5ACovJOBvb29kHAClVMCavI8MSpTl3XXFr+8b0lJiVD3PPtEFYlEAl9fX5w8eVIoy8vLw8aNGxEUFASRSARLS0sMGjSo2rSG+Ph4vkMDY5qqsScRM8ZYfah60VpVnTt3JgAKd2kYOHAgOTs707Jly+ibb74hQ0NDWrBggVD/9EVfc+bMoR49etCiRYtozZo15OfnR+3ataPy8nIiIvrkk0/IyMiIZs+eTWvWrKHAwEBydXWlmzdvKo21tuWNGjWKLCwsaN68eRQWFkZvv/02bdmyhYiI/vrrL5JIJDRt2jRavXo1vfPOO2RmZkaWlpYq43+eGImqX7RWl3XXFj8RUatWrei9996jLVu20OHDh+u0T+QXrV27dk1lvHK7du0ie3t7qqioICKihQsXUrNmzYTxJSKKjo4miURC9+/fJyKiuLg4MjExoaKiolqXzxh7+fAZXsaYRhCLxQgICICjo6NC+ZIlSxAQEABfX1+hbMeOHZgzZw6SkpJw9+5dbN++XeHhCrq6uggICBAufJo/fz6+/vprZGVl4dSpUxgyZAhiY2MhkVTOClu1ahWioqLw6NEjxMfHw9raGgkJCXB2dlYaa23LW79+PdasWYO7d+/i4sWLmDFjBkaMGAEA6NChA2JjY1FRUYGTJ0+if//+2LlzJ959912V8T9PjAAwYMAAuLq6Cq/rsu7a4geA/fv3w8XFBdHR0cJFc7XtE0NDQwQEBNRpju2gQYNgZWUlzFl+8OABFi1aJIwvUHkm+sMPP8SVK1cAAKGhofjiiy8Uzl4zxjQHP2mNMcaYxjl16hSio6PxzTff1No2Ly8PX375JcLCwhQuYmOMaQ5OeBljjDHGmEbjKQ2MMcYYY0yjccLLGGOMMcY0Gie8jDHGGGNMo3HCyxhjjDHGNBonvIwxxhhjTKNxwssYY4wxxjQaJ7yMMcYYY0yjccLLGGOMMcY0Gie8jDHGGGNMo3HCyxhjjDHGNBonvIwxxhhjTKP9PyeFlxHWyKi/AAAAAElFTkSuQmCC\n"
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "→ λ arttıkça gürültü birikir; extrapolation λ=0 noktasına geri döner.\n",
      "→ Bu örnekte folding sadece RY üzerinde; gerçek devrelerde tüm kapılar fold edilir.\n"
     ]
    }
   ],
   "source": "# Görselleştirme: Extrapolation eğrisi\nscales_plot = [1, 2, 3, 4, 5]\nmeasured_plot = []\nfor s in scales_plot:\n    qc_s = fold_ry_circuit(theta, s)\n    val = execute_with_noise(qc_s, shots=2048, depolarizing_prob=0.025)\n    measured_plot.append(val)\n\nplt.figure(figsize=(8, 5))\nplt.plot(scales_plot, measured_plot, 'o-', label='Ölçülen (gürültülü)', markersize=8)\nplt.axhline(ideal_value, color='green', linestyle='--', label=f'Ideal = {ideal_value:.3f}')\nplt.axhline(zne_value, color='red', linestyle=':', label=f'ZNE extrapolated = {zne_value:.3f}')\nplt.xlabel('Noise scale factor (λ)')\nplt.ylabel(r'$\\langle Z \\rangle$')\nplt.title('Zero-Noise Extrapolation (ZNE) — pure Qiskit')\nplt.legend()\nplt.grid(True, alpha=0.3)\nplt.show()\n\nprint(\"→ λ arttıkça gürültü birikir; extrapolation λ=0 noktasına geri döner.\")\nprint(\"→ Bu örnekte folding sadece RY üzerinde; gerçek devrelerde tüm kapılar fold edilir.\")"
  },
  {
   "cell_type": "markdown",
   "id": "49d7b3d6",
   "metadata": {
    "id": "49d7b3d6"
   },
   "source": "### Sunum notu (ZNE)\n\n> “VQC’de her parametre güncellemesinde expectation value hesaplanır.  \n> ZNE, bu değeri ‘gürültü yokmuş gibi’ tahmin ederek optimizer’a daha temiz bir  \n> gradient / loss sinyali verir. Özellikle shallow circuit’lerde etkilidir.  \n> Maliyet: her expectation için birden fazla (scale factor kadar) devre çalıştırılır.”"
  },
  {
   "cell_type": "markdown",
   "id": "db649c85",
   "metadata": {
    "id": "db649c85"
   },
   "source": "---\n# 2. Gürültüye Dayanıklı Optimizer Seçimi\n\nVQC = “Learn by tuning” → **nasıl** tune ettiğin kritik.\n\n| Optimizer | Tip | Gürültüye direnç | Kullanım senaryosu |\n|-----------|-----|------------------|--------------------|\n| **SPSA** | Stochastic, gradient-free | ★★★★★ | NISQ’ta varsayılan tercih |\n| **COBYLA** | Gradient-free (simplex) | ★★★★ | Az parametreli, shallow circuit |\n| Adam / SGD | Gradient-based | ★★ | Simülasyon / düşük gürültü |\n| L-BFGS-B | Gradient-based | ★ | Neredeyse sadece ideal simülasyon |\n\n**Neden SPSA?**  \nHer adımda sadece **2** expectation değeri yeter (tüm parametreleri aynı anda perturbe eder).  \nGürültülü ölçümleri “ortalama” gibi tolere eder."
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "da3f5d89",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "da3f5d89",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112024766,
     "user_tz": -180,
     "elapsed": 52,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "cf633758-577d-4afc-8f22-bf50ca6c4f89"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Ideal minimum noktası: theta = π, cost = -1\n"
     ]
    }
   ],
   "source": "# Basit bir VQC benzeri cost fonksiyonu (gürültülü)\n# Hedef: RY(θ) ile |1> durumuna yaklaşmak → <Z> = -1 olmalı\n\ndef noisy_cost(params, shots=1024, noise_level=0.04):\n    \"\"\"params[0] = theta. Cost = <Z>  (hedef -1)\"\"\"\n    theta = float(params[0])\n    qc = QuantumCircuit(1)\n    qc.ry(theta, 0)\n\n    # Depolarizing noise\n    noise_model = NoiseModel()\n    error = depolarizing_error(noise_level, 1)\n    noise_model.add_all_qubit_quantum_error(error, ['ry'])\n    backend = AerSimulator(noise_model=noise_model)\n\n    qc.measure_all()\n    counts = backend.run(qc, shots=shots).result().get_counts()\n    p0 = counts.get('0', 0) / shots\n    p1 = counts.get('1', 0) / shots\n    exp_z = p0 - p1\n    return exp_z   # minimize etmeye çalışacağız (hedef -1)\n\n\n# Ideal minimum: theta = π → <Z> = -1\nprint(\"Ideal minimum noktası: theta = π, cost = -1\")"
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "4fb34f01",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "4fb34f01",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112030543,
     "user_tz": -180,
     "elapsed": 524,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "35ebcc15-f2be-411c-fc4d-238dc726da5d"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "SPSA  final params: [3.16132812]  final cost: -0.9453125\n",
      "COBYLA final params: [3.3]  final cost: -0.955078125\n",
      "Evaluations — SPSA: 81, COBYLA: 23\n"
     ]
    }
   ],
   "source": "# SPSA vs COBYLA (gürültü altında) — Qiskit 2.x uyumlu\n# minimize(fun, x0) imzası; history cost wrapper ile tutulur.\n\nnp.random.seed(42)\ninitial_point = np.array([0.3], dtype=float)\n\nspsa_history: list = []\ncobyla_history: list = []\n\ndef make_tracked_cost(history_list, shots=1024, noise_level=0.05):\n    def cost(params):\n        val = float(noisy_cost(np.asarray(params, dtype=float), shots=shots, noise_level=noise_level))\n        history_list.append(val)\n        return val\n    return cost\n\nspsa_cost = make_tracked_cost(spsa_history)\ncobyla_cost = make_tracked_cost(cobyla_history)\n\n# --- SPSA (qiskit-algorithms) ---\nif SPSA is not None:\n    spsa = SPSA(maxiter=40, learning_rate=0.3, perturbation=0.15)\n    result_spsa = spsa.minimize(fun=spsa_cost, x0=initial_point.copy())\n    print(\"SPSA  final params:\", result_spsa.x, \" final cost:\", result_spsa.fun)\nelse:\n    # scipy fallback (SPSA yoksa basit Powell)\n    res = scipy_minimize(spsa_cost, initial_point.copy(), method=\"Powell\", options={\"maxiter\": 40})\n    result_spsa = type(\"R\", (), {\"x\": res.x, \"fun\": res.fun})()\n    print(\"SPSA(fallback Powell) final:\", result_spsa.x, result_spsa.fun)\n\n# --- COBYLA ---\nif COBYLA is not None:\n    cobyla = COBYLA(maxiter=40)\n    result_cobyla = cobyla.minimize(fun=cobyla_cost, x0=initial_point.copy())\n    print(\"COBYLA final params:\", result_cobyla.x, \" final cost:\", result_cobyla.fun)\nelse:\n    res = scipy_minimize(cobyla_cost, initial_point.copy(), method=\"COBYLA\", options={\"maxiter\": 40})\n    result_cobyla = type(\"R\", (), {\"x\": res.x, \"fun\": res.fun})()\n    print(\"COBYLA(scipy) final:\", result_cobyla.x, result_cobyla.fun)\n\nprint(f\"Evaluations — SPSA: {len(spsa_history)}, COBYLA: {len(cobyla_history)}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "fa335baf",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 622
    },
    "id": "fa335baf",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112035926,
     "user_tz": -180,
     "elapsed": 579,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "0c8f0058-44c0-4097-9474-f2426e88e93d"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 900x500 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAHVCAYAAACHataXAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAzOFJREFUeJzs3Xd8k9X+B/BPkibp3oNOKAVaNrKXgAiKDMGrgqBeLwqCFyd63QuvCl6vuO51gvpTUXEA4lURZYoKsjdllrbQ0r3bzOf3R5rkSZO0WW2a9PN+vXiZPHmek5PTtOab7/meIxEEQQAREREREZGLpN7uABERERER+TYGFURERERE5BYGFURERERE5BYGFURERERE5BYGFURERERE5BYGFURERERE5BYGFURERERE5BYGFURERERE5BYGFUQeMGLECNx8880AgPvuuw9ZWVnQ6XSt0s6lS5eQlZWF1atXe6WP9rjar9aQlZWF5cuXe7sbbmutMW1PPytfsnr1amRlZeHSpUve7orfe/LJJ3H77bd7uxsuu/nmm01/b/3ZXXfdheuuu87i2Ny5c/Hkk096qUfkTQwqiGzYsGED5s+fj5EjR6J///64+uqrMX/+fHz33XfQarVW5586dQrnz58HAFy4cAHZ2dlwZbN6R9rRaDTIzs5GeXm56Vhubi6ysrLw9ddfu9W2O1ztV2vIzs5GUVGRR9vU6/X4/PPPMXPmTAwaNAiDBw/G7NmzsWbNGrfGsbkxsjWmntBa7bqqrq4OWVlZeOyxx6we27ZtG/r27YsZM2agurraC70zKy8vR3Z2NjQaTau0//HHHyMrKwslJSWt0r6vOHHiBF566SXccsstAID6+npcdtllmDt3brPX3XHHHbjssstQX19vcfzYsWN44IEHcPnll6N///6YOHEinn/+eZSWltpt69y5c3jyySdx5ZVXon///rjiiiswd+5crF+/3qEvY86fP2/6e+vP8vLycO7cOYtjN998M1566SWcOHHCS70ib2FQQSRSUVGBSZMm4cYbb0RsbCyef/55fPLJJ3jwwQcRGBiIG2+80epbGQDYuXMnPvvsMwDAG2+8gePHjyMgIMDp53e1HbVajezsbFRUVHi8bXc40i9fUFpairFjx2LRokUYMmQI3n33Xbz11lvo06cP/va3v2HSpEkuf+Btbow6deqE48eP46abbnLzFbRNu67S6/XIzs5GQUGBxfG1a9di0qRJCA4OxooVKxAWFualHraNsrIyZGdn2/zioiN54YUX0Lt3b4wfPx4AEBQUhF69euGTTz5Bfn6+zWsKCgrwf//3f+jduzeCgoJMx5cvX46+ffuioKAATz31FD755BMsWLAA3333Hbp3746tW7datfXf//4XmZmZ2L9/P/7+97/j448/xpIlSxAfH4+bbroJCxYsaJXX7YveeecdrFu3zuLYhAkT0LNnT7zwwgve6RR5j0BEJldffbUQFhYmHDp0yObjJ06cEBYuXNjGvbKUl5cnABDefvtt07FTp04JAIT333+f/RIEAYDwyCOPeKy9CRMmCCEhIcKRI0esHvvzzz8FhUIh3HDDDS613R5+dt5WXV0tABBuu+0207H3339fkMlkwlVXXSXU1NR4r3Mib7/9tgBAyMvLa5X2X331VQGAUFBQ0Crt+4KSkhJBqVQKr7zyisXxLVu2CACEf/7znzave+GFFwQAwtatW03Hvv76awGA8Oijj1qdr1KphLFjxwoRERHCuXPnTMe/+eYbAYDwj3/8w+bznDhxQnjsscdafB2jRo0SRo0a1eJ5/upf//qXoFQqhZKSEm93hdoQgwqiRhs3bmz2f1pGWq3WdPvXX38VMjMzhV27dlmdk5mZKbz22mumYydPnhQyMzOF9evXCzt27BBmzJgh9O7dW/j999+daqfph/fff/9d6Nq1qwBA6NSpk5CZmSlkZmYKL730ktN9tPd6jW1mZmYKffv2FSZPnix89NFHgl6vd7lfhYWFQmZmpvDFF1/YHKOdO3cK1157rdC/f39h1qxZwokTJ6z6VltbKzzzzDPC0KFDheHDhwsvvfSSoNPprIIKR1+DLcb3xdNPP233nHvuuUcAIPz5559Wr2PLli3C5MmThf79+ws333yzcOzYMdN17o7Rtm3bhClTpggDBw4UFi9ebPrwvWXLFmHq1KlC//79hXnz5gnFxcUW/bXV7qxZsyzGSPzvvffes7j+yy+/FGbMmCH069dPGDVqlPDcc89ZfPBv7r1uS9OgwvgBcfbs2YJarbY495dffjH1KysrSxg4cKBw6623Cn/88YfFee+9956QmZkpVFZWCu+++64wZswYoX///oIgCEJ9fb2wfPlyYeLEicKAAQOEa6+9Vnj//fctfre/+OIL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\n"
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "\n",
      "Yorum:\n",
      "- SPSA gürültülü ölçümleri daha iyi tolere eder (stokastik pertürbasyon).\n",
      "- COBYLA de gradient-free olduğu için nispeten dayanıklıdır, ama\n",
      "  yüksek gürültüde SPSA genellikle daha stabil kalır.\n",
      "- Gradient-based yöntemler (Adam vb.) bu seviyede gürültüde\n",
      "  genellikle bozulur veya çok yavaşlar.\n",
      "\n"
     ]
    }
   ],
   "source": "plt.figure(figsize=(9, 5))\nplt.plot(spsa_history, label='SPSA', linewidth=2)\nplt.plot(cobyla_history, label='COBYLA', linewidth=2, alpha=0.8)\nplt.axhline(-1.0, color='green', linestyle='--', label='Ideal minimum (-1)')\nplt.xlabel('Iteration / Evaluation')\nplt.ylabel('Cost ⟨Z⟩')\nplt.title('Gürültü altında Optimizer Karşılaştırması (VQC-benzeri)')\nplt.legend()\nplt.grid(True, alpha=0.3)\nplt.show()\n\nprint(\"\"\"\nYorum:\n- SPSA gürültülü ölçümleri daha iyi tolere eder (stokastik pertürbasyon).\n- COBYLA de gradient-free olduğu için nispeten dayanıklıdır, ama\n  yüksek gürültüde SPSA genellikle daha stabil kalır.\n- Gradient-based yöntemler (Adam vb.) bu seviyede gürültüde\n  genellikle bozulur veya çok yavaşlar.\n\"\"\")"
  },
  {
   "cell_type": "markdown",
   "id": "90587f5c",
   "metadata": {
    "id": "90587f5c"
   },
   "source": "### Sunum notu (Optimizer)\n\n> “VQC’de ‘circuit’i ayarlayan’ optimizer’ın kendisi de gürültüye duyarlıdır.  \n> SPSA, klasik deep learning’teki Adam’ın kuantum karşılığı gibi düşünülebilir:  \n> gürültülü gradient tahminlerini tolere eder.  \n> QSVC tarafında ana optimizasyon classical SVM’de olduğu için  \n> bu sorun çok daha az kritiktir — bir başka VQC vs QSVC farkı.”"
  },
  {
   "cell_type": "markdown",
   "id": "a2fbc73d",
   "metadata": {
    "id": "a2fbc73d"
   },
   "source": "---\n# 3. Hardware-Efficient Ansatz & SWAP Maliyeti\n\nGerçek kuantum çiplerinde kübitler **sadece komşularıyla** doğrudan etkileşebilir  \n(connectivity / coupling map).\n\nUzak iki kübiti dolanıklaştırmak için araya **SWAP** kapıları eklenir:\n\n$$\\text{SWAP} = 3 \\times \\text{CNOT}$$\n\nHer ekstra CNOT → daha fazla gürültü + daha uzun devre → VQC training bozulur.\n\n**Hardware-Efficient Ansatz (HEA):**  \nCihazın fiziksel topolojisine göre tasarlanmış, gereksiz SWAP’lardan kaçınan ansatz."
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "24fa89ef",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "24fa89ef",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112045524,
     "user_tz": -180,
     "elapsed": 19,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "acb5334f-3125-45cf-caa5-f5e77b3af6d2"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Cihaz coupling map (kim kimle konuşabilir):\n",
      "EdgeList[(0, 1), (1, 0), (1, 2), (2, 1), (1, 3), (3, 1)]\n"
     ]
    }
   ],
   "source": "from qiskit.transpiler import CouplingMap\n\n# Örnek: IBM tarzı linear / heavy-hex benzeri küçük topoloji\n# 0 — 1 — 2\n#     |\n#     3\ncoupling_map = CouplingMap([\n    [0, 1], [1, 0],\n    [1, 2], [2, 1],\n    [1, 3], [3, 1]\n])\n\nprint(\"Cihaz coupling map (kim kimle konuşabilir):\")\nprint(coupling_map.get_edges())"
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "26e2ce7f",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "26e2ce7f",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112049700,
     "user_tz": -180,
     "elapsed": 28,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "8247ea78-d046-4b93-ff91-d05bc930d805"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "=== Naif (fully-connected) Ansatz ===\n",
      "CNOT sayısı: 6\n",
      "Derinlik:    7\n",
      "\n",
      "=== Hardware-Efficient Ansatz ===\n",
      "CNOT sayısı: 3\n",
      "Derinlik:    5\n"
     ]
    }
   ],
   "source": "def build_naive_entangling_circuit(n_qubits=4):\n    \"\"\"Naif ansatz: herkes herkesle CNOT (topolojiyi umursamaz)\"\"\"\n    qc = QuantumCircuit(n_qubits)\n    params = ParameterVector('θ', n_qubits * 2)\n\n    # Layer 1: rotation\n    for i in range(n_qubits):\n        qc.ry(params[i], i)\n\n    # Fully connected entanglement (pahalı!)\n    for i in range(n_qubits):\n        for j in range(i+1, n_qubits):\n            qc.cx(i, j)\n\n    # Layer 2\n    for i in range(n_qubits):\n        qc.ry(params[n_qubits + i], i)\n\n    return qc\n\n\ndef build_hardware_efficient_ansatz(n_qubits=4):\n    \"\"\"Hardware-efficient: sadece komşu CNOT’lar (linear)\"\"\"\n    qc = QuantumCircuit(n_qubits)\n    params = ParameterVector('θ', n_qubits * 2)\n\n    for i in range(n_qubits):\n        qc.ry(params[i], i)\n\n    # Sadece komşular\n    for i in range(n_qubits - 1):\n        qc.cx(i, i+1)\n\n    for i in range(n_qubits):\n        qc.ry(params[n_qubits + i], i)\n\n    return qc\n\n\nnaive_qc = build_naive_entangling_circuit()\nhea_qc = build_hardware_efficient_ansatz()\n\nprint(\"=== Naif (fully-connected) Ansatz ===\")\nprint(f\"CNOT sayısı: {naive_qc.count_ops().get('cx', 0)}\")\nprint(f\"Derinlik:    {naive_qc.depth()}\")\n\nprint(\"\\n=== Hardware-Efficient Ansatz ===\")\nprint(f\"CNOT sayısı: {hea_qc.count_ops().get('cx', 0)}\")\nprint(f\"Derinlik:    {hea_qc.depth()}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5e6baed3",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "5e6baed3",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787112055463,
     "user_tz": -180,
     "elapsed": 161,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "63474148-d651-497f-f507-00da923169ab"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Transpile sonrası (cihaz topolojisine map edilince):\n",
      "\n",
      "Naif ansatz  → CNOT: 12,  Derinlik: 20\n",
      "HEA ansatz   → CNOT: 6,  Derinlik: 18\n",
      "\n",
      "→ Naif ansatz, transpile sırasında birçok SWAP (3 CNOT) ekler.\n",
      "→ HEA zaten topolojiye uyumlu olduğu için ekstra SWAP maliyeti düşük kalır.\n"
     ]
    }
   ],
   "source": "# Transpile ile gerçek SWAP maliyetini görelim\nbasis_gates = ['rz', 'sx', 'x', 'cx']  # tipik IBM basis\n\nnaive_transpiled = transpile(\n    naive_qc,\n    coupling_map=coupling_map,\n    basis_gates=basis_gates,\n    optimization_level=1\n)\n\nhea_transpiled = transpile(\n    hea_qc,\n    coupling_map=coupling_map,\n    basis_gates=basis_gates,\n    optimization_level=1\n)\n\nprint(\"Transpile sonrası (cihaz topolojisine map edilince):\\n\")\nprint(f\"Naif ansatz  → CNOT: {naive_transpiled.count_ops().get('cx', 0)},  \"\n      f\"Derinlik: {naive_transpiled.depth()}\")\nprint(f\"HEA ansatz   → CNOT: {hea_transpiled.count_ops().get('cx', 0)},  \"\n      f\"Derinlik: {hea_transpiled.depth()}\")\n\nprint(\"\\n→ Naif ansatz, transpile sırasında birçok SWAP (3 CNOT) ekler.\")\nprint(\"→ HEA zaten topolojiye uyumlu olduğu için ekstra SWAP maliyeti düşük kalır.\")"
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "af5d43f1",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 954
    },
    "id": "af5d43f1",
    "executionInfo": {
     "status": "error",
     "timestamp": 1787112064050,
     "user_tz": -180,
     "elapsed": 373,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "c1f947e8-6594-422e-edef-f66bbf540460"
   },
   "outputs": [
    {
     "output_type": "error",
     "ename": "MissingOptionalLibraryError",
     "evalue": "\"The 'pylatexenc' library is required to use 'MatplotlibDrawer'. You can install it with 'pip install pylatexenc'.\"",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mMissingOptionalLibraryError\u001b[0m               Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_2544/512504839.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m14\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mnaive_qc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'mpl'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfold\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      5\u001b[0m \u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Naif Fully-Connected Ansatz\\n(Transpile öncesi)'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/circuit/quantumcircuit.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, output, scale, filename, style, interactive, plot_barriers, reverse_bits, justify, vertical_compression, idle_wires, with_layout, fold, ax, initial_state, cregbundle, wire_order, expr_len, measure_arrows, barrier_label_len)\u001b[0m\n\u001b[1;32m   4046\u001b[0m         \u001b[0;32mfrom\u001b[0m \u001b[0mqiskit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvisualization\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcircuit_drawer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4047\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4048\u001b[0;31m         return circuit_drawer(\n\u001b[0m\u001b[1;32m   4049\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4050\u001b[0m             \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mscale\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/visualization/circuit/circuit_visualization.py\u001b[0m in \u001b[0;36mcircuit_drawer\u001b[0;34m(circuit, scale, filename, style, output, interactive, plot_barriers, reverse_bits, justify, vertical_compression, idle_wires, with_layout, fold, ax, initial_state, cregbundle, wire_order, expr_len, measure_arrows, barrier_label_len)\u001b[0m\n\u001b[1;32m    366\u001b[0m         )\n\u001b[1;32m    367\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0moutput\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"mpl\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 368\u001b[0;31m         image = _matplotlib_circuit_drawer(\n\u001b[0m\u001b[1;32m    369\u001b[0m             \u001b[0mcircuit\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    370\u001b[0m             \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mscale\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/visualization/circuit/circuit_visualization.py\u001b[0m in \u001b[0;36m_matplotlib_circuit_drawer\u001b[0;34m(circuit, scale, filename, style, plot_barriers, reverse_bits, justify, idle_wires, with_layout, fold, ax, initial_state, cregbundle, wire_order, expr_len, measure_arrows, barrier_label_len)\u001b[0m\n\u001b[1;32m    774\u001b[0m         \u001b[0mfold\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m25\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    775\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 776\u001b[0;31m     qcd = _matplotlib.MatplotlibDrawer(\n\u001b[0m\u001b[1;32m    777\u001b[0m         \u001b[0mqubits\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    778\u001b[0m         \u001b[0mclbits\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/utils/classtools.py\u001b[0m in \u001b[0;36mout\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    109\u001b[0m         \u001b[0;32mdef\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    110\u001b[0m             \u001b[0;32mfor\u001b[0m \u001b[0mcallback\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_before\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 111\u001b[0;31m                 \u001b[0mcallback\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__get__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobjtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    112\u001b[0m             \u001b[0mretval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    113\u001b[0m             \u001b[0;32mfor\u001b[0m \u001b[0mcallback\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_after\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/utils/lazy_tester.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *_args, **_kwargs)\u001b[0m\n\u001b[1;32m     40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     41\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0m_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0m_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_tester\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequire_now\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_feature\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     43\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     44\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.12/dist-packages/qiskit/utils/lazy_tester.py\u001b[0m in \u001b[0;36mrequire_now\u001b[0;34m(self, feature)\u001b[0m\n\u001b[1;32m    220\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    221\u001b[0m             \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m         raise MissingOptionalLibraryError(\n\u001b[0m\u001b[1;32m    223\u001b[0m             \u001b[0mlibname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfeature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpip_install\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_install\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_msg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    224\u001b[0m         )\n",
      "\u001b[0;31mMissingOptionalLibraryError\u001b[0m: \"The 'pylatexenc' library is required to use 'MatplotlibDrawer'. You can install it with 'pip install pylatexenc'.\"",
      "",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0;32m\nNOTE: If your import is failing due to a missing package, you can\nmanually install dependencies using either !pip or !apt.\n\nTo view examples of installing some common dependencies, click the\n\"Open Examples\" button below.\n\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n"
     ],
     "errorDetails": {
      "actions": [
       {
        "action": "open_url",
        "actionText": "Open Examples",
        "url": "/notebooks/snippets/importing_libraries.ipynb"
       }
      ]
     }
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1400x500 with 2 Axes>"
      ],
      "image/png": "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IsIeAAAAgBQR9gAAAACkiLAHAAAAIEWEPQAAAAApIuwBAAAASBFhDwAAAECKCHsAAAAAUkTYAwAAAJAiwh4AAACAFBH2AAAAAKSIsAcAAAAgRYQ9AAAAACki7AEAAABIEWEPAAAAQIoIewAAAABSpMGRFJWUlMT69eujS5cu0bVr18Nuv2fPnli2bFls2rQpzjzzzOjTp0/Uq1fvSJ4aAOCEs3fv3liyZEls3rw5evfuHW3btj1szfbt22P58uWxdevW6Ny5c7XmXAAAETUMeyoqKmL8+PExb9686N27dxQXF8e4cePi4YcfrjK8Wb16dVx66aVRv3796Nq1a6xYsSKaNm0azz33XLRr1+6ovAgAgLpq06ZNMXz48Ni8eXN06tQpiouL46677orbbrutyprZs2fHV77ylejQoUOcccYZsXDhwjj//PPjt7/9bWRnZx/D7gGAE1GNvsY1adKkWLBgQaxYsSJefPHFWLhwYfzmN7+JRx99tMqaf/3Xf40zzzwzXnvttXjmmWfi9ddfjz179sRdd931iZsHAKjrbrnllsjKyorS0tKYO3duPProo/Htb387VqxYUWXNN77xjRg3blwsX748nn322fjzn/8cc+fOjV//+tfHsHMA4ERVo7BnypQpUVhYmFmR07179ygoKIgpU6ZUWbNz587o1KlTZGXtf6rGjRtHu3btYteuXZ+gbQCAum/Hjh0xffr0uPHGGzMrckaPHh25ubkxderUKut27twZZ599dub+GWecETk5OeZPAEC1VPtrXHv27Ik1a9bETTfdVGk8Ly8vHnjggSrr7rrrrhg/fnx873vfi27dusXixYtj48aN8eCDD1ZZs3v37ti9e3fm/tatW6vbJgBAnVFaWhoVFRWRl5dXaTwvLy9KSkqqrJs8eXL8j//xPyJJkmjTpk389re/je7du8c111xTZY35EwBwQLVX9mzbti327t0bLVq0qDTesmXL2LJlS5V1HTp0iP79+8djjz0WU6dOjaeeeiqGDBkSrVu3rrJm4sSJ0axZs8ytffv21W0TAKDOKC8vj4io8fzp3HPPjXbt2sWUKVNi6tSpsWTJkhg2bFg0adKkyhrzJwDggGqHPY0aNYqI/cuR/9G2bduicePGVdYVFhbGhx9+GK+99lo8++yzUVpaGq+++mrccMMNVdbcfvvtUV5enrlt2LCh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W7x4caxbty4uvfTSzNgLL7wQCxcurFENNTNy5Mh4/fXX49VXX82MPf7449GpU6c499xzI2J/knhg1cgB//N//s/4X//rf8Xs2bNj6NChx7rtVBo5cmTMmDEj8ya5c+fOmDVrVqXf7z//+c+ZT5369euX+UTqwK1Pnz5x/vnnR1FRUaX/7FJ9gwcPjpycnErHmtmzZ8f27dujoKAgM3Zg1UhExHnnnRdnnnlmrF27NvPvu3btinXr1kX79u2PXfMpM3LkyFi4cGFs3LgxM/b444/HZz7zmczy1vfeey+Kiorigw8+iIiI9u3bR2lpaaWJyZo1ayIiom3btsew+0+fpUuXxrPPPhsR+79ffvHFF1f6O9q8eXO88MIL3rM/gYsuuigaNGhQafXBk08+GQ0aNIiLLrooMzZ9+vRYvXp1jWqomZEjR8bzzz+fWXKfJEk88cQTcckll2S+untgpe3OnTsjYn/Q8+Uvfzn+9Kc/xZw5c4RtR0Hr1q2jb9++lY41b7/9dhQXF1c61syfPz/++Mc/RkTE2LFjPzZ/OvXUU2P8+PHxi1/84pi/hrQoKCiI8vLyeOGFFzJjjz/+eDRv3jwGDhwYEfs/PCsqKoq33norIiIuueSSOOmkkyrNnzZs2BDbt283f/oERo4cGTNnzsysaN6zZ0/MmDGj0t/E66+/HkVFRZn5Uvv27TPzpQPWrFkTbdu2jXr16h275j+FaiXzqPk5pI+uadOmJQ0aNEi+/e1vJ//xH/+RtG/fPiksLKy0zfnnn19prDo11NyYMWOS3NzcZNKkScmtt96a1K9fP3nqqacy//76668nEZHMmjUrSZIkefDBB5OISG644Ybksccey9yeeeaZ4/USUmH9+vXJaaedllx22WXJ/fffnwwdOjTp1KlT8v7772e2+eEPf5g0a9asysdwNa6j4/77708aNWqU3HHHHck999yTtGzZstJli5MkSTp27FhpbPr06UnTpk2TO+64I3nooYeS/Pz8pEOHDsl77713bJtPkT179iQXXHBB0r1792Ty5MnJddddlzRs2DCZP39+Zpt58+YlEZG5/HFJSUly8sknJ5dffnny8MMPJz/60Y+SZs2audrNJ7Ru3brkscceSx544IEkIpLvfe97yWOPPZaUlJRktvnnf/7n5JxzzsncLykpSZo0aZJ86UtfSu67776kb9++Sa9evaq8khrVc+eddyZNmjRJJkyYkEyYMCFp0qTJx64idMopp1Qaq04NNbN9+/akZ8+eyYABA5L7778/KSwsTHJycpJVq1ZltnnyySeTiEg2bNiQJEmSfP3rX0+ysrKSCRMmVJo//eMxjZqbM2dO0rBhw+Sf//mfk8mTJyddu3ZN8vPzK12VcdSoUcnQoUOrfAxX4zo6brzxxuS0005L/v3f/z35/ve/n5x00knJz3/+88y/f/jhh0lEJA899FBm7N/+7d+SM888M/nJT36S3HfffUm3bt2SQYMGJR999NHxeAmp8Pe//z3p2LFj8rnPfS65//77k4KCgqR169aZY1GSJMnkyZOTiMj8nJ988smkfv36yQ033JD88pe/TL75zW8mJ510UvLwww8fr5eRCsuXL08ee+yx5Lvf/W4SEcnPf/7z5LHHHqu0L2oj8ziuJ2iO2L9cb968eTF16tRYsWJF/OhHP4qvfvWrlba5+OKLK61OqE4NNff444/HI488EgsWLIicnJz405/+FAMGDMj8e05OThQWFlb6VLywsDA++OCDeOqppzJjbdq08YntJ9ChQ4dYvnx5PPDAA7Fo0aK46KKL4utf/3qlE3T16NGj0lLX/98FF1zwsRMLU3Nf//rXo0uXLjF9+vT4y1/+Evfdd18UFhZW2ubzn/98nHfeeZn7o0ePjvbt28fUqVNj48aNcdlll8V1110XTZs2Pdbtp0b9+vXjueeei5///OdRXFwcLVu2jFdeeaXSFQpOO+20KCwszPyd9OzZM0pLS+NXv/pVLFiwIJo3bx6PPvpoXHbZZcfrZaTChg0bMsf7wsLCeOONN+KNN96IrKyszNVW+vfvH6ecckqmpmfPnrF8+fJ46KGHYvHixVFYWBhf//rXnZ/kE/rBD34QvXr1imeeeSYiIqZOnRqXX355pW3Gjh0b3bt3r1ENNXPyySfHggUL4j//8z9j0aJFkZubG6+++mql1Trt27ePwsLCOPnkkyMiokWLFjFu3LgoKSmJkpKSzHaf+cxnYtCgQcf8NaTF0KFDo7i4OH71q1/F0qVL4xvf+EZcf/31kZX1X19kGDJkyCHPZThq1KhKfzMcmZ/97GcxePDgeOGFF6JRo0bx3HPPRX5+fubfTzrppCgsLMx8VSUi4vvf/36cd955MXPmzIiIuPXWW+OrX/1qlV834vBatWoVS5cujfvvvz8WLVoU/fr1i1/84heVvmL6T//0T1FYWJj5Oxk7dmwsW7YsHn/88Xj55ZejdevWsWDBgujfv//xehmpsGrVqpg1a1ZE7J8/vfjiixGx/6qYB66kXBuZR70k8eU7AAAAgLQ4rufsAQAAAODoEvYAAAAApIiwBwAAACBFhD0AAAAAKSLsAQAAAEgRYQ8AAABAigh7AAAAAFJE2AMAAACQIsIeAAAAgBQR9gAAAACkiLAHAAAAIEWEPQAAAAAp8n8BxquM6nLSPTcAAAAASUVORK5CYII=\n"
     },
     "metadata": {}
    }
   ],
   "source": "# Görsel karşılaştırma\nfig, axes = plt.subplots(1, 2, figsize=(14, 5))\n\nnaive_qc.draw('mpl', ax=axes[0], fold=30)\naxes[0].set_title('Naif Fully-Connected Ansatz\\n(Transpile öncesi)')\n\nhea_qc.draw('mpl', ax=axes[1], fold=30)\naxes[1].set_title('Hardware-Efficient Ansatz\\n(Linear nearest-neighbor)')\n\nplt.tight_layout()\nplt.show()"
  },
  {
   "cell_type": "markdown",
   "id": "b341e308",
   "metadata": {
    "id": "b341e308"
   },
   "source": "### Sunum notu (Hardware-Efficient Ansatz)\n\n> “VQC’de ansatz seçimi sadece ‘ifade gücü’ meselesi değildir.  \n> Gerçek cihazda her gereksiz SWAP, gürültüyü artırır ve  \n> optimizer’ın öğrendiği parametreleri bozar.  \n> Hardware-Efficient Ansatz, cihazın fiziksel haritasına göre  \n> tasarlandığı için hem daha az gürültü üretir hem de  \n> training’i daha stabil hale getirir.  \n> QSVC’de feature map de aynı mantıkla ‘cihaza uygun’ seçilmelidir.”"
  },
  {
   "cell_type": "markdown",
   "id": "abf78fad",
   "metadata": {
    "id": "abf78fad"
   },
   "source": "---\n# 4. VQC vs QSVC açısından özet\n\n| Konu | VQC üzerindeki etki | QSVC üzerindeki etki |\n|------|---------------------|----------------------|\n| **Readout Mitigation** | Her expectation value daha doğru → daha temiz loss | Kernel matrisindeki diagonal/off-diagonal terimler düzelir |\n| **ZNE** | Training sırasında her cost değerlendirmesini iyileştirir | Kernel tahminlerini iyileştirir (daha pahalı) |\n| **SPSA / COBYLA** | Doğrudan “learn by tuning” sürecini stabilleştirir | Ana optimizasyon classical SVM’de → daha az kritik |\n| **Hardware-Efficient Ansatz** | Devre derinliği ve SWAP maliyeti training’i belirler | Feature map’in topolojiye uyumu kernel kalitesini etkiler |\n\n### Pratik öneri (Product Design case’leri için)\n\n1. Önce **simülasyonda** (gürültüsüz) VQC/QSVC’yi dene.  \n2. Sonra **noise model** ekle (Aer) ve aynı pipeline’ı tekrar çalıştır.  \n3. Readout mitigation + ZNE + SPSA + HEA kombinasyonuyla  \n   “gerçek cihaza ne kadar yaklaşabileceğini” gözlemle.  \n4. QSVC genelde daha az parametre ayarı gerektirdiği için  \n   NISQ’ta bazen daha toleranslı sonuç verebilir —  \n   bu da önceki sunumdaki “representation vs learning” ayrımını destekler."
  },
  {
   "cell_type": "markdown",
   "id": "6ac3be59",
   "metadata": {
    "id": "6ac3be59"
   },
   "source": "---\n# 5. Hızlı referans – Sunumda kullanılabilecek cümleler\n\n**QEM:**\n> “Gürültüyü yok edemiyoruz ama etkisini matematiksel olarak geri alabiliyoruz.  \n> ZNE, bilerek gürültüyü artırıp ‘sıfır gürültü’ noktasına extrapolate eder.”\n\n**Optimizer:**\n> “VQC’nin ‘tuning’ sürecinde optimizer seçimi, klasik deep learning’teki  \n> optimizer seçimi kadar kritiktir. SPSA, NISQ gürültüsüne en dayanıklı seçeneklerden biridir.”\n\n**Hardware-Efficient Ansatz:**\n> “Ansatz’ı sadece matematiksel ifade gücüne göre değil,  \n> cihazın fiziksel topolojisine göre tasarlamak gerekir.  \n> Aksi halde SWAP kapıları gürültüyü çoğaltır ve öğrenmeyi bozar.”\n\n---\n\n*Bu notebook eğitim amaçlı basitleştirilmiş örnekler içerir.  \nGerçek donanım deneylerinde Qiskit Runtime, Mitiq’in gelişmiş factory’leri  \nve cihaz-spesifik kalibrasyon verileri kullanılmalıdır.*"
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.10.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}